:root,:root[data-theme=light]{--paper:#fff;--surface:#f4f5f6;--ink:#17191b;--ink-dim:#4b5054;--ink-mute:#868c91;--line:#e8eaec;--line-2:#d3d6d9;--accent:#6b7783;--status-live:#16a34a;--danger:#d64545;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--maxw:1080px;--sans:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "SFMono-Regular", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#121314;--surface:#1a1c1e;--ink:#eef0f1;--ink-dim:#adb2b6;--ink-mute:#797e83;--line:#26282b;--line-2:#34373a;--accent:#9aa6ae;--status-live:#4ade80;--danger:#ff8a8a}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#121314;--surface:#1a1c1e;--ink:#eef0f1;--ink-dim:#adb2b6;--ink-mute:#797e83;--line:#26282b;--line-2:#34373a;--accent:#9aa6ae;--status-live:#4ade80;--danger:#ff8a8a}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:auto;scroll-padding-top:84px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65;overflow-x:hidden}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,6vw,44px)}.mono{font-family:var(--mono)}.label{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);font-size:11.5px}.hr{background:var(--line);border:0;height:1px;margin:0}.nav{z-index:100;background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-in{justify-content:space-between;align-items:center;height:66px;display:flex}.brand{align-items:center;display:inline-flex}.logo{color:var(--ink);align-items:center;gap:9px;display:inline-flex}.logo-badge{background:#17191b;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;display:grid}.logo-badge svg{width:22px;height:22px}.logo-text{flex-direction:column;line-height:1;display:inline-flex}.logo-mark{letter-spacing:.04em;color:var(--ink);font-size:20px;font-weight:800}.logo-word{letter-spacing:.115em;color:var(--ink-dim);margin-top:3px;font-size:8.5px;font-weight:600}.nav-links{align-items:center;gap:30px;display:flex}.nav-links a{color:var(--ink-dim);font-size:13.5px;transition:color .2s}.nav-links a:hover{color:var(--ink)}.nav-cta{font-family:var(--mono);letter-spacing:.08em;color:var(--ink);border:1px solid var(--line-2);border-radius:999px;padding:8px 14px;font-size:12px;transition:border-color .2s,color .2s}.nav-cta:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:700px){.nav-links a:not(.nav-cta){display:none}}.hero{padding:clamp(40px,6vw,96px) 0 clamp(32px,5vw,64px)}.hero .label{align-items:center;gap:10px;display:inline-flex}.hero .label:before{content:"";background:var(--accent);width:26px;height:1px}.hero h1{letter-spacing:-.04em;text-wrap:balance;margin:22px 0 0;font-size:clamp(42px,8.6vw,100px);font-weight:680;line-height:.98}.hero h1 em{color:var(--ink);font-style:normal}.hero .sub{max-width:30em;color:var(--ink-dim);margin:clamp(20px,3vw,32px) 0 0;font-size:clamp(17px,2vw,21px);line-height:1.7}.btn{background:var(--ink);color:var(--paper);border-radius:999px;align-items:center;gap:9px;padding:14px 26px;font-size:15px;font-weight:500;transition:transform .16s,opacity .2s;display:inline-flex}.btn:hover{opacity:.9;transform:translateY(-2px)}.btn.accent{background:var(--ink);color:var(--paper)}.caps{flex-wrap:wrap;gap:8px 10px;margin-top:clamp(28px,4vw,40px);display:flex}.cap{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-dim);border:1px solid var(--line-2);border-radius:999px;padding:7px 13px;font-size:11.5px}.cap.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--line-2))}.block{padding:clamp(64px,11vw,132px) 0}.sec-top{gap:10px;margin-bottom:clamp(34px,6vw,60px);display:grid}.sec-top h1,.sec-top h2{letter-spacing:-.025em;margin:0;font-size:clamp(26px,4.4vw,46px);font-weight:640}.sec-top h1{font-size:clamp(32px,5.4vw,58px)}.sec-top .note{color:var(--ink-mute);max-width:44ch;margin:0;font-size:14.5px}.btn.more{color:var(--ink);border:1px solid var(--line-2);background:0 0;margin-top:clamp(28px,4vw,40px);transition:border-color .2s,transform .16s}.btn.more:hover{border-color:var(--ink-mute);opacity:1}.work-tabs{flex-wrap:wrap;gap:8px 10px;margin-bottom:clamp(24px,4vw,36px);display:flex}.work-tab{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-dim);border:1px solid var(--line-2);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:12px;transition:border-color .2s,color .2s,background-color .2s}.work-tab:hover{border-color:var(--ink-mute);color:var(--ink)}.work-tab.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.works{grid-template-columns:repeat(2,1fr);gap:clamp(20px,3.4vw,40px) clamp(20px,3vw,36px);display:grid}@media (max-width:640px){.works{grid-template-columns:1fr}}.work{display:block}.work .frame{aspect-ratio:16/10;background:var(--surface);border:1px solid var(--line);border-radius:10px;transition:border-color .25s;position:relative;overflow:hidden}.work:hover .frame{border-color:var(--line-2)}.work .ph{position:absolute;inset:0}.site-card{background:var(--surface);background-image:linear-gradient(to right, var(--line) 1px, transparent 1px), linear-gradient(to bottom, var(--line) 1px, transparent 1px);background-size:22px 22px;justify-content:center;align-items:center;display:flex}.site-domain{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-dim);background:var(--paper);border:1px solid var(--line-2);border-radius:999px;padding:8px 16px;font-size:15px}.work .arrow{background:var(--paper);width:40px;height:40px;color:var(--ink);opacity:0;border-radius:50%;place-items:center;transition:opacity .25s,transform .25s;display:grid;position:absolute;bottom:14px;right:14px;transform:translateY(6px)}.work:hover .arrow{opacity:1;transform:translateY(0)}.work .meta{justify-content:space-between;align-items:baseline;gap:14px;margin-top:15px;display:flex}.work .meta h3{letter-spacing:-.005em;margin:0;font-size:16.5px;font-weight:550}.work .meta .k{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);white-space:nowrap;font-size:11px}.work-main{display:block}.work-summary{color:var(--ink-dim);margin:10px 0 0;font-size:13.5px;line-height:1.85}.work-stack{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.work-stack li{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-mute);border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:10.5px}.work-article{color:var(--accent);margin-top:12px;font-size:13px;transition:opacity .2s;display:inline-block}.work-article:hover{opacity:.7}.about .big{letter-spacing:-.02em;text-wrap:balance;max-width:22em;margin:0;font-size:clamp(23px,3.6vw,38px);font-weight:560;line-height:1.4}.about .big b{color:var(--accent);font-weight:560}.about .body{max-width:50em;color:var(--ink-dim);margin:22px 0 0;line-height:1.9}.fact-badges{flex-wrap:wrap;align-content:flex-start;gap:10px;margin-top:18px;display:flex}.fact-badge{border:1px solid var(--line-2);background:var(--paper);border-radius:999px;align-items:center;gap:8px;padding:9px 15px;font-size:13.5px;display:inline-flex}.fact-badge .fb-k{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-size:10.5px}.fact-badge .fb-v{color:var(--ink);font-weight:500}.fact-badge.accent{border-color:color-mix(in srgb, var(--status-live) 45%, var(--line-2))}.fact-badge.accent .fb-v{color:var(--status-live)}.fact-badge .fb-dot{background:var(--status-live);border-radius:50%;flex:none;width:7px;height:7px}.socs{gap:10px;margin-top:26px;display:flex}.socs a{border:1px solid var(--line-2);width:40px;height:40px;color:var(--ink-dim);border-radius:50%;place-items:center;transition:color .2s,border-color .2s,transform .2s;display:grid}.socs a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.socs svg{fill:currentColor;width:17px;height:17px}.career{border:1px solid var(--line);background:var(--surface);border-radius:12px;max-width:50em;margin-top:30px;padding:20px 22px}.career .label{margin-bottom:6px;display:block}.career .body{margin-top:0;font-size:14.5px;line-height:1.85}.career .career-note{color:var(--ink-mute);margin:14px 0 0;font-size:12.5px;line-height:1.8}.operator{border:1px solid var(--line);border-radius:12px;max-width:50em;margin-top:30px;padding:20px 22px}.operator .label{margin-bottom:14px;display:block}.operator-rows{gap:10px;margin:0;display:grid}.operator-row{grid-template-columns:minmax(84px,110px) 1fr;gap:4px 18px;font-size:14px;line-height:1.8;display:grid}@media (max-width:560px){.operator-row{grid-template-columns:1fr}}.operator-row dt{color:var(--ink-mute)}.operator-row dd{color:var(--ink-dim);margin:0}.operator-row dd a{color:var(--accent);transition:opacity .2s}.operator-row dd a:hover{opacity:.7}.run-sites{max-width:50em;margin-top:28px}.run-sites .label{margin-bottom:10px;display:block}.run-sites ul{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:480px){.run-sites ul{grid-template-columns:1fr}}.run-sites a{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:4px;height:100%;padding:14px 40px 14px 16px;transition:border-color .2s,transform .2s;display:flex;position:relative}.run-sites a:hover{border-color:var(--line-2);transform:translateY(-1px)}.run-sites .rs-name{font-size:15px;font-weight:600}.run-sites .rs-note{color:var(--ink-mute);font-size:12.5px}.run-sites .rs-arrow{color:var(--ink-mute);position:absolute;top:14px;right:14px}.run-sites a:hover .rs-arrow{color:var(--ink)}.skill-levels{gap:0;display:grid}.skill-level{border-top:1px solid var(--line);grid-template-columns:minmax(120px,160px) 1fr;align-items:start;gap:8px 24px;padding:20px 0;display:grid}.skill-level:last-child{border-bottom:1px solid var(--line)}@media (max-width:700px){.skill-level{grid-template-columns:1fr}}.skill-level h3{letter-spacing:.01em;align-items:center;gap:9px;margin:0;font-size:15px;font-weight:600;display:flex}.skill-level h3:before{content:"";background:var(--accent);border-radius:2px;flex:none;width:8px;height:8px}.skill-level.minor h3:before{background:var(--ink-mute)}.skill-level ul{flex-wrap:wrap;gap:8px 10px;margin:0;padding:0;list-style:none;display:flex}.skill-level li{color:var(--ink-dim);font-size:14.5px}.skill-level.major li{color:var(--ink);font-weight:550}.skill-level .lv-note{color:var(--ink-dim);grid-column:1/-1;margin:4px 0 0;font-size:12.5px}.contact h1,.contact h2{letter-spacing:-.045em;text-wrap:balance;margin:24px 0 26px;font-size:clamp(34px,8vw,92px);font-weight:660;line-height:.98}.contact h1 em,.contact h2 em{color:var(--accent);font-style:normal}.contact-lead{color:var(--ink-dim);max-width:42ch;margin:0 0 clamp(28px,5vw,44px);font-size:16px}.cform{gap:22px;max-width:560px;display:grid}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.cfield{gap:8px;display:grid}.cfield label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);font-size:11.5px}.cfield input,.cfield textarea{font-family:var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:8px;width:100%;padding:12px 14px;font-size:15.5px;transition:border-color .2s,box-shadow .2s}.cfield textarea{resize:vertical;min-height:120px;line-height:1.7}.cfield input:focus,.cfield textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.cerr{color:var(--danger);font-size:12.5px}.cactions{flex-wrap:wrap;align-items:center;gap:16px 22px;display:flex}.cactions .btn[disabled]{opacity:.6;pointer-events:none}.cmsg{margin:0;font-size:14px}.cmsg.ok{color:var(--accent)}.cmsg.err{color:var(--danger)}.footer{border-top:1px solid var(--line);padding:30px 0}.foot{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-mute);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font-size:11.5px;display:flex}.foot-links{flex-wrap:wrap;gap:10px 20px;display:flex}.foot-links a{color:var(--ink-dim);transition:color .2s}.foot-links a:hover{color:var(--ink)}.rise{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(14px)}.rise.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.rise{opacity:1;transition:none;transform:none}}.legal{max-width:46em}.legal h1{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(28px,4vw,40px)}.legal .lead{color:var(--ink-dim);margin:0 0 8px;line-height:1.9}.legal h2{letter-spacing:-.01em;border-top:1px solid var(--line);margin:40px 0 0;padding-top:20px;font-size:17px;font-weight:650}.legal p{color:var(--ink-dim);margin:12px 0 0;line-height:1.95}.legal ul{color:var(--ink-dim);margin:12px 0 0;padding-left:1.2em;line-height:1.95}.legal li+li{margin-top:8px}.legal strong{color:var(--ink);font-weight:600}.legal a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.legal a:hover{text-decoration:none}.legal-rows{gap:10px;margin:14px 0 0;display:grid}.legal-row{grid-template-columns:minmax(84px,110px) 1fr;gap:4px 18px;line-height:1.8;display:grid}@media (max-width:560px){.legal-row{grid-template-columns:1fr}}.legal-row dt{color:var(--ink-mute)}.legal-row dd{color:var(--ink-dim);margin:0}.theme-toggle{border:1px solid var(--line-2);width:34px;height:34px;color:var(--ink-dim);cursor:pointer;background:0 0;border-radius:999px;flex:none;place-items:center;transition:color .2s,border-color .2s;display:inline-grid}.theme-toggle:hover{color:var(--ink);border-color:var(--ink-mute)}.theme-toggle svg{width:17px;height:17px}.theme-toggle-placeholder{border-color:#0000}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-badge{box-shadow:inset 0 0 0 1px var(--line-2)}}:root[data-theme=dark] .logo-badge{box-shadow:inset 0 0 0 1px var(--line-2)}
