@font-face{font-family:Clash Display;src:url(/fonts/clash-display/ClashDisplay-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Clash Display;src:url(/fonts/clash-display/ClashDisplay-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans/GeneralSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans/GeneralSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans/GeneralSans-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--bg: #07070b;--surface: #0e0e16;--surface-2: #14141f;--surface-3: #1c1c2b;--hairline: #262636;--ink: #f2f2f7;--ink-mid: #9e9eb2;--ink-low: #86869c;--signal-a: #7b61ff;--signal-b: #2ee6c5;--signal-grad: linear-gradient(115deg, #7b61ff 0%, #2ee6c5 100%);--alert: #ff5c7a;--glow-a: rgba(123, 97, 255, .45);--glow-b: rgba(46, 230, 197, .35);--grain: .035;--elevate-1: inset 0 1px 0 0 rgba(255, 255, 255, .03), 0 0 0 1px var(--hairline);--elevate-glow: 0 0 32px -8px var(--glow-a);--r-sm: 8px;--r-md: 14px;--r-lg: 22px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--sp-9: 96px;--sp-10: 128px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .18s;--dur-ui: .32s;--dur-reveal: .7s;--text-scrim: rgba(7, 7, 11, .8);--on-signal: #07070b;--nav-h: 88px;--font-display: "Clash Display", "Space Grotesk", sans-serif;--font-body: "General Sans", "Geist", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}[data-theme=light]{--bg: #f5f6fa;--surface: #ffffff;--surface-2: #fbfbfe;--surface-3: #f0f1f7;--hairline: #e2e3ef;--ink: #12121a;--ink-mid: #4a4a5c;--ink-low: #6b6b82;--signal-a: #5b3fe0;--signal-b: #0b7a68;--signal-grad: linear-gradient(115deg, #5b3fe0 0%, #0b7a68 100%);--alert: #e23a5c;--glow-a: rgba(91, 63, 224, .22);--glow-b: rgba(18, 179, 154, .2);--grain: .02;--text-scrim: rgba(245, 246, 250, .85);--on-signal: #ffffff;--elevate-1: 0 1px 2px 0 rgba(18, 18, 26, .04), 0 0 0 1px var(--hairline);--elevate-glow: 0 12px 32px -12px rgba(18, 18, 26, .14)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}main{position:relative;z-index:1}.section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:var(--sp-9) clamp(var(--sp-5),7vw,var(--sp-10));max-width:1280px;margin:0 auto}.hero{min-height:100svh}.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mid);margin-bottom:var(--sp-4)}h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2.6rem,7.5vw,5.6rem);line-height:1.04;letter-spacing:-.02em;max-width:16ch;text-shadow:0 2px 24px var(--text-scrim)}.hero-line{display:block}.hero-word{display:inline-block;opacity:0;transform:translateY(.55em);animation:word-rise var(--dur-reveal) var(--ease-out) forwards}h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.01em;margin-bottom:var(--sp-6)}.accent{background:var(--signal-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{color:var(--ink-mid);max-width:52ch;margin-top:var(--sp-4);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.65}.stats{display:flex;gap:var(--sp-7);margin-top:var(--sp-7);flex-wrap:wrap}.stat-value{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;background:var(--signal-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-label{color:var(--ink-low);font-size:.82rem;margin-top:var(--sp-1)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--sp-4)}.card{background:color-mix(in srgb,var(--surface) 78%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-md);box-shadow:var(--elevate-1);padding:var(--sp-5);transition:transform var(--dur-ui) var(--ease-out),box-shadow var(--dur-ui) var(--ease-out)}.card:hover{transform:translateY(-4px);box-shadow:var(--elevate-1),var(--elevate-glow)}.card h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin-bottom:var(--sp-2);line-height:1.3}.card p{color:var(--ink-mid);font-size:.92rem;line-height:1.6}.card--work img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--r-sm);margin-bottom:var(--sp-4);background:var(--surface-2);opacity:.9;filter:saturate(.85);transition:transform .5s var(--ease-out),opacity .5s var(--ease-out),filter .5s var(--ease-out)}.card--work:hover img{transform:scale(1.03);opacity:1;filter:saturate(1)}.result{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:var(--sp-4)}.result__value{flex-shrink:0;font-family:var(--font-mono);font-size:.94rem;font-weight:500;color:var(--signal-b)}.result__label{font-size:.75rem;color:var(--ink-low);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result__arrow{margin-left:auto;flex-shrink:0;color:var(--signal-a);opacity:0;transform:translate(-4px);transition:transform var(--dur-ui) var(--ease-out),opacity var(--dur-ui) var(--ease-out)}.card--work:hover .result__arrow{opacity:1;transform:none}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}.chip{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-mid);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--hairline)}.hero-ctas{display:flex;gap:var(--sp-4);margin-top:var(--sp-7);flex-wrap:wrap}.cta{--mx: 0px;--my: 0px;--lift: 0px;display:inline-block;font-family:var(--font-body);font-weight:600;font-size:.95rem;padding:var(--sp-4) var(--sp-6);border-radius:var(--r-pill);border:none;cursor:pointer;text-decoration:none;color:var(--on-signal);background:var(--signal-grad);transform:translate3d(var(--mx),calc(var(--my) + var(--lift)),0);transition:transform var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}.cta:hover{--lift: -2px;box-shadow:var(--elevate-glow)}.cta--sm{padding:var(--sp-3) var(--sp-5);font-size:.85rem}.cta:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.cta--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline)}.section--contact{min-height:80vh}.contact__grid{display:grid;grid-template-columns:1fr;gap:var(--sp-8);align-items:start}@media (min-width: 900px){.contact__grid{grid-template-columns:minmax(0,1fr) 420px;gap:var(--sp-9)}}.contact__form{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6) var(--sp-6) var(--sp-6) var(--sp-7);border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface-2) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--elevate-1)}.contact__honeypot{display:none}.contact__fields{display:flex;flex-direction:column;gap:var(--sp-7)}.field{position:relative}.field__control{width:100%;padding:var(--sp-5) 0 var(--sp-2);border:none;border-bottom:1px solid var(--hairline);border-radius:0;background:transparent;color:var(--ink);font-family:var(--font-body);font-size:.95rem;transition:border-color var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}textarea.field__control{resize:none;line-height:1.6}.field__control:focus,.field__control:focus-visible{outline:none}.field__control:focus,.field__control:not(:placeholder-shown){border-bottom-color:var(--signal-a)}.field__control:focus{box-shadow:0 1px 0 0 var(--signal-a),0 3px 14px -5px var(--glow-a)}.field__control:disabled{opacity:.6}.field__label{position:absolute;left:0;top:0;pointer-events:none;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-low);transform-origin:left top;--label-rest-scale: 1.38;transform:translateY(var(--sp-5)) scale(var(--label-rest-scale));width:calc(100% / var(--label-rest-scale));white-space:normal;transition:transform var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.field__control:focus~.field__label,.field__control:not(:placeholder-shown)~.field__label{transform:none;color:var(--signal-b);width:100%}.field__dot{position:absolute;left:calc(var(--sp-4) * -1);top:calc(var(--sp-5) + .5rem);width:6px;height:6px;border-radius:var(--r-pill);background:var(--hairline);transition:background-color var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}.field__control:focus~.field__dot,.field__control:not(:placeholder-shown)~.field__dot{background:var(--signal-b);box-shadow:0 0 8px var(--glow-b)}.contact__submit{margin-top:var(--sp-2);text-align:center}.contact__submit:disabled{opacity:.6;cursor:default}.contact__error{font-size:.88rem;color:var(--alert)}.contact__error a{color:inherit}.contact__done{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-5) 0}.contact__done-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--signal-b);box-shadow:0 0 12px var(--glow-b)}.contact__done-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--ink)}.contact__done-body{font-size:.9rem;color:var(--ink-mid)}.booking{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-8);padding:var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface-2) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.booking__label{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-low)}.booking__dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--signal-b);box-shadow:0 0 8px var(--glow-b)}.booking__widget{position:relative;width:100%;max-width:720px;min-width:min(280px,100%);height:700px;margin:0 auto;border-radius:var(--r-md);overflow:hidden}.booking__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-low)}.section--work{min-height:auto;justify-content:flex-start}.work-filters{display:flex;flex-direction:column;gap:var(--sp-5);margin-top:var(--sp-4)}.work-filters__row{display:flex;flex-direction:column;gap:var(--sp-4)}.work-filters__chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}@media (min-width: 640px){.work-filters__row{flex-direction:row;align-items:center;justify-content:space-between}}.chip--interactive{display:inline-flex;align-items:center;gap:var(--sp-2);background:none;border:none;cursor:pointer;color:var(--ink-mid);transition:color var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.chip--interactive:hover{color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--signal-a) 55%,transparent)}.chip--interactive[aria-pressed=true]{color:var(--ink);background:color-mix(in srgb,var(--signal-a) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--signal-a) 70%,transparent)}.chip--interactive:focus-visible{outline:2px solid var(--signal-b);outline-offset:2px}.chip__count{color:var(--ink-low);font-size:.68rem}.chip--interactive[aria-pressed=true] .chip__count{color:var(--ink-mid)}.work-search{position:relative;width:100%}@media (min-width: 640px){.work-search{width:16rem}}.work-search__icon{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--ink-low);pointer-events:none}.work-search__input{width:100%;font-family:var(--font-mono);font-size:.85rem;color:var(--ink);background:color-mix(in srgb,var(--surface-2) 82%,transparent);border:1px solid var(--hairline);border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-8);transition:border-color var(--dur-micro) var(--ease-out)}.work-search__input::placeholder{color:var(--ink-low)}.work-search__input:focus{outline:none;border-color:color-mix(in srgb,var(--signal-a) 60%,transparent)}.work-search__input:focus-visible{outline:2px solid var(--signal-b);outline-offset:2px}.work-filters__tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.work-filters__label,.work-filters__count{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-low)}.work-filters__label{margin-right:var(--sp-1)}.work-filters__clear{display:inline-flex;align-items:center;gap:var(--sp-1);background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-low);padding:var(--sp-1) var(--sp-2);transition:color var(--dur-micro) var(--ease-out)}.work-filters__clear:hover{color:var(--signal-b)}.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--sp-4);margin-top:var(--sp-6)}.work-empty{color:var(--ink-mid);text-align:center;margin-top:var(--sp-8)}.work-more{display:flex;justify-content:center;margin-top:var(--sp-7)}.work-item{display:flex;opacity:0;animation:rise var(--dur-ui) var(--ease-out) var(--stagger, 0ms) both}.card--work{display:flex;flex:1;flex-direction:column;text-decoration:none;color:inherit;min-width:0}.card--work:focus-visible{outline:2px solid var(--signal-b);outline-offset:3px}.card--work .card__platform{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;line-height:1.4;color:var(--ink-mid);margin-bottom:var(--sp-2)}.card__platform-dot{width:6px;height:6px;flex-shrink:0;border-radius:var(--r-pill);background:var(--signal-a);transition:background-color var(--dur-ui) var(--ease-out),box-shadow var(--dur-ui) var(--ease-out)}.card--work:hover .card__platform-dot{background:var(--signal-b);box-shadow:0 0 8px var(--glow-b)}.card--work h3,.card--work .card__summary{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.card--work h3{-webkit-line-clamp:2}.card--work .card__summary{-webkit-line-clamp:3}.card--work .chips{margin-top:auto;padding-top:var(--sp-4)}.card--work .result{margin-top:var(--sp-3)}.reveal{opacity:0;transform:translateY(16px);animation:rise var(--dur-reveal) var(--ease-out) forwards}@keyframes rise{to{opacity:1;transform:none}}@keyframes word-rise{to{opacity:1;transform:none}}.case{padding:var(--sp-9) 0 var(--sp-10)}.case__shell{max-width:1280px;margin:0 auto;padding:0 clamp(var(--sp-5),7vw,var(--sp-10))}.case__back{display:inline-flex;align-items:center;gap:var(--sp-2);margin:calc(var(--sp-3) * -1) 0;padding:var(--sp-3) 0;font-family:var(--font-mono);font-size:.85rem;color:var(--ink-mid);text-decoration:none;transition:color var(--dur-micro) var(--ease-out)}.case__back:hover{color:var(--signal-b)}.case__head{margin-top:var(--sp-6);max-width:60rem}.case__tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.case__platform{font-family:var(--font-mono);font-size:.72rem;color:var(--signal-b);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:color-mix(in srgb,var(--surface-2) 82%,transparent);box-shadow:inset 0 0 0 1px var(--hairline)}.case__kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-low)}.case__title{font-family:var(--font-display);font-weight:600;font-size:clamp(2.25rem,5vw,4rem);line-height:1.05;letter-spacing:-.02em;margin-top:var(--sp-5);text-shadow:0 2px 24px var(--text-scrim)}.case__summary{margin-top:var(--sp-5);max-width:46ch;font-size:1.1rem;line-height:1.65;color:var(--ink-mid)}.case__figure{margin-top:var(--sp-7);border-radius:var(--r-lg);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.case__figcaption{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--hairline)}.case__figlabel{display:flex;align-items:center;gap:var(--sp-2);min-width:0;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-mid)}.case__figdot{width:6px;height:6px;flex-shrink:0;border-radius:var(--r-pill);background:var(--signal-b)}.case__figtext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case__figmeta{flex-shrink:0;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-low)}.case__figure img{display:block;width:100%;height:auto;aspect-ratio:2.35 / 1;object-fit:contain}.case__layout{display:grid;grid-template-columns:1fr;gap:var(--sp-7);margin-top:var(--sp-8)}@media (min-width: 1024px){.case__layout{grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp-8)}}.guide-step{position:relative;border-left:1px solid var(--hairline);padding-left:var(--sp-6);padding-bottom:var(--sp-7)}.guide-step:last-child{padding-bottom:0}.guide-step__node{position:absolute;left:-5px;top:2px;width:10px;height:10px;border-radius:var(--r-pill);background:var(--signal-b);box-shadow:0 0 10px var(--glow-b)}.guide-step__eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--signal-b);margin-bottom:0}.guide-step__body{margin-top:var(--sp-4);font-size:1.05rem;line-height:1.7;color:var(--ink-mid);max-width:68ch}.case__results{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:var(--sp-4)}.case__result{display:flex;flex-direction:column;padding:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 82%,transparent)}.case__result .stat-value{font-size:clamp(1.3rem,1.9vw,1.75rem);line-height:1.2;overflow-wrap:anywhere}.case__result .stat-label{margin-top:var(--sp-2)}.case__more{margin-top:var(--sp-7)}.case__gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--sp-4);margin-top:var(--sp-4)}.case__shot{border-radius:var(--r-md);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 82%,transparent);overflow:hidden}.case__shot img{display:block;width:100%;height:auto;aspect-ratio:2.35 / 1;object-fit:contain}.case__spec{display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-lg);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media (min-width: 1024px){.case__spec{position:sticky;top:var(--sp-6)}}.case__spec-label{font-family:var(--font-mono);font-size:.66rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-low);margin-bottom:0}.case__spec-value{margin-top:var(--sp-2);font-family:var(--font-mono);font-size:.85rem;color:var(--ink)}.case__spec .chips{margin-top:var(--sp-3)}.case__links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);margin-top:var(--sp-3)}.case__links a{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:.85rem;color:var(--ink-mid);text-decoration:none;transition:color var(--dur-micro) var(--ease-out)}.case__links a:hover{color:var(--signal-b)}.case__cta{border-top:1px solid var(--hairline);padding-top:var(--sp-5)}.case__cta p{font-size:.9rem;color:var(--ink-mid)}.case__cta .cta{display:flex;justify-content:center;margin-top:var(--sp-4)}.case__nav{display:grid;grid-template-columns:1fr;gap:var(--sp-4);margin-top:var(--sp-9);padding-top:var(--sp-6);border-top:1px solid var(--hairline)}@media (min-width: 640px){.case__nav{grid-template-columns:1fr 1fr}.case__navlink--next{grid-column:2;text-align:right;align-items:flex-end}}.case__navlink{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5);border-radius:var(--r-lg);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 82%,transparent);text-decoration:none;transition:border-color var(--dur-ui) var(--ease-out)}.case__navlink:hover{border-color:color-mix(in srgb,var(--signal-a) 50%,transparent)}.case__navlink:focus-visible{outline:2px solid var(--signal-b);outline-offset:3px}.case__navlabel{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:.72rem;color:var(--ink-low)}.case__navlink svg{transition:transform var(--dur-micro) var(--ease-out)}.case__navlink:hover svg{transform:translate(-2px)}.case__navlink--next:hover svg{transform:translate(2px)}.case__navtitle{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--ink);transition:color var(--dur-ui) var(--ease-out)}.case__navlink:hover .case__navtitle{color:var(--signal-b)}.chain{display:flex;flex-direction:column;gap:var(--sp-5)}.chain__branch{display:flex;flex-direction:column;gap:var(--sp-3)}.chain__label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-b)}.chain__steps{display:flex;flex-direction:column;align-items:flex-start;gap:0;list-style:none}.chain__item{display:flex;flex-direction:column;align-items:flex-start;gap:0}.chain__step{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--hairline);background:color-mix(in srgb,var(--surface-2) 88%,transparent);font-size:.85rem;color:var(--ink)}.chain__edge{width:1px;height:var(--sp-5);margin-left:var(--sp-4);flex-shrink:0;background:var(--signal-grad)}.chain__item--row-end .chain__edge{visibility:hidden}@media (min-width: 640px){.chain__steps{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-3) 0}.chain__item{flex-direction:row;align-items:center;gap:var(--sp-1)}.chain__edge{width:var(--sp-6);height:1px;margin-left:0}}.fallback-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(60% 50% at 20% 80%,rgba(123,97,255,.22),transparent 70%),radial-gradient(50% 45% at 80% 30%,rgba(46,230,197,.16),transparent 70%),var(--bg)}.fallback-bg--poster{background:url(/fallback-poster.jpg) center / cover no-repeat,var(--bg)}.skip-link{position:fixed;top:var(--sp-3);left:var(--sp-3);z-index:300;padding:var(--sp-3) var(--sp-4);border:1px solid var(--signal-a);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-family:var(--font-mono);font-size:.8125rem;text-decoration:none;transform:translateY(calc(-100% - var(--sp-5)));transition:transform var(--dur-ui) var(--ease-out)}.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--signal-b);outline-offset:2px}main:focus{outline:none}@media (prefers-reduced-motion: reduce){.skip-link{transition:none}}.icon-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);cursor:pointer;transition:border-color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.icon-button:hover{border-color:color-mix(in srgb,var(--signal-a) 60%,var(--hairline))}.icon-button:focus-visible,.navlink:focus-visible,.logo:focus-visible,.menu__link:focus-visible{outline:2px solid var(--signal-a);outline-offset:3px}.nav{position:fixed;inset:0 0 auto 0;z-index:50;transform:translateY(0);transition:transform var(--dur-ui) var(--ease-out)}.nav--hidden{transform:translateY(-130%)}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);max-width:1280px;margin:0 auto;padding:var(--sp-4) clamp(var(--sp-5),7vw,var(--sp-10));contain:layout;transition:padding-block var(--dur-ui) var(--ease-out),background-color var(--dur-ui) var(--ease-out),backdrop-filter var(--dur-ui) var(--ease-out)}.nav--condensed .nav__inner{padding-block:var(--sp-3)}.nav--condensed{background-color:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav__edge{position:absolute;inset:auto 0 0 0;height:1px;opacity:0;transition:opacity var(--dur-ui) var(--ease-out);background:linear-gradient(90deg,transparent,var(--hairline) 18%,color-mix(in srgb,var(--signal-a) 45%,var(--hairline)) 42%,color-mix(in srgb,var(--signal-b) 45%,var(--hairline)) 58%,var(--hairline) 82%,transparent)}.nav--condensed .nav__edge{opacity:1}.logo{display:flex;align-items:center;gap:var(--sp-2);text-decoration:none;border-radius:var(--r-sm)}.logo__edge,.logo__node{transition:stroke var(--dur-ui) var(--ease-out),fill var(--dur-ui) var(--ease-out)}.logo:hover .logo__edge{stroke:var(--signal-b)}.logo:hover .logo__node{fill:var(--signal-b);stroke:var(--signal-b)}.logo__word{font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}.logo__dot{color:var(--signal-b)}.nav__links{position:relative;display:none;align-items:center;gap:var(--sp-1);list-style:none}.navlink{--mx: 0px;--my: 0px;display:block;padding:var(--sp-2) var(--sp-4);font-family:var(--font-mono);font-size:13px;color:var(--ink-mid);text-decoration:none;border-radius:var(--r-sm);transform:translate3d(var(--mx),var(--my),0);transition:transform var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.navlink:hover,.navlink[aria-current=page]{color:var(--ink)}.nav__underline{position:absolute;bottom:-1px;left:0;height:1px;width:1px;transform-origin:left center;transform:translate(var(--ul-x, 0)) scaleX(var(--ul-w, 0));opacity:var(--ul-opacity, 0);background:var(--signal-grad);transition:transform var(--dur-ui) var(--ease-out),opacity var(--dur-micro) var(--ease-out)}.nav__actions{display:flex;align-items:center;gap:var(--sp-3)}.nav__toggle,.nav__cta{display:none}.theme-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);cursor:pointer;transition:border-color var(--dur-micro) var(--ease-out)}.theme-toggle:hover{border-color:color-mix(in srgb,var(--signal-a) 60%,var(--hairline))}.theme-toggle:focus-visible{outline:2px solid var(--signal-a);outline-offset:3px}.theme-toggle__icon{position:absolute;transition:opacity var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}:root[data-theme=dark] .theme-toggle__icon--sun,:root[data-theme=light] .theme-toggle__icon--moon{opacity:0;transform:rotate(90deg) scale(.6)}:root[data-theme=dark] .theme-toggle__icon--moon,:root[data-theme=light] .theme-toggle__icon--sun{opacity:1;transform:rotate(0) scale(1)}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:menu-in var(--dur-ui) var(--ease-out) both}.menu__bar{display:flex;justify-content:flex-end;padding:var(--sp-4) clamp(var(--sp-5),7vw,var(--sp-8))}.menu__nav{display:flex;flex:1;flex-direction:column;justify-content:center;padding:0 clamp(var(--sp-5),7vw,var(--sp-8))}.menu__link{padding:var(--sp-4) 0;border-bottom:1px solid var(--hairline);font-family:var(--font-display);font-size:clamp(1.75rem,8vw,2.25rem);font-weight:600;color:var(--ink);text-decoration:none;animation:menu-rise var(--dur-reveal) var(--ease-out) both}.menu__link[aria-current=page]{background:var(--signal-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.menu__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:clamp(var(--sp-5),7vw,var(--sp-8))}@keyframes menu-in{0%{opacity:0}to{opacity:1}}@keyframes menu-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.has-signal-cursor,.has-signal-cursor *:not(input):not(textarea):not(select){cursor:none}.cursor{--ring-scale: .173;position:fixed;top:0;left:0;z-index:200;pointer-events:none;opacity:0;transform:translate3d(var(--cx, -100px),var(--cy, -100px),0);transition:opacity var(--dur-micro) var(--ease-out)}.cursor--visible{opacity:1}.cursor--hidden{opacity:0}.cursor--open{--ring-scale: 1}.cursor--down{--ring-scale: .14}.cursor--open.cursor--down{--ring-scale: .86}.cursor__ring{position:absolute;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin:-26px 0 0 -26px;border:1px solid transparent;border-radius:var(--r-pill);background:var(--signal-b);transform:scale(var(--ring-scale));transition:transform var(--dur-ui) var(--ease-out),background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.cursor--open .cursor__ring{background:color-mix(in srgb,var(--signal-a) 12%,transparent);border-color:var(--signal-a)}.cursor__label{position:absolute;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity var(--dur-micro) var(--ease-out)}.cursor--open.cursor--labelled .cursor__label{opacity:1}.chat-launcher{--mx: 0px;--my: 0px;position:fixed;right:var(--sp-5);bottom:var(--sp-5);z-index:40;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);cursor:pointer;box-shadow:var(--elevate-glow);transition:border-color var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}.chat-launcher{translate:var(--mx) var(--my)}.chat-launcher:hover{border-color:color-mix(in srgb,var(--signal-a) 60%,var(--hairline))}.chat-launcher:focus-visible{outline:2px solid var(--signal-a);outline-offset:3px}.chat-launcher__glyph{display:flex;align-items:center;justify-content:center}.chat-launcher__badge{position:absolute;top:4px;right:4px;width:10px;height:10px;border-radius:var(--r-pill);background:var(--signal-b);box-shadow:0 0 0 2px var(--bg),0 0 10px var(--glow-b)}.chat-panel{position:fixed;z-index:40;inset:calc(var(--nav-h) + var(--sp-2)) var(--sp-3) calc(var(--sp-8) + var(--sp-5));display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-2);box-shadow:var(--elevate-1),var(--elevate-glow);transform-origin:bottom right}@media (min-width: 640px){.chat-panel{inset:auto var(--sp-6) calc(var(--sp-8) + var(--sp-6)) auto;width:380px;height:min(560px,calc(100vh - var(--nav-h) - var(--sp-9)))}}.chat-panel__title{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chat-panel__head{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:var(--surface-3)}.chat-panel__edge{position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,transparent,var(--hairline) 18%,color-mix(in srgb,var(--signal-a) 45%,var(--hairline)) 42%,color-mix(in srgb,var(--signal-b) 45%,var(--hairline)) 58%,var(--hairline) 82%,transparent)}.chat-avatar{width:48px;height:48px;flex-shrink:0;border-radius:var(--r-pill);object-fit:cover;background:var(--surface)}.chat-identity{min-width:0;flex:1}.chat-identity__name{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-identity__status{display:flex;align-items:center;gap:var(--sp-2);margin-top:2px;font-family:var(--font-mono);font-size:.68rem;color:var(--ink-low)}.chat-identity__dot{width:6px;height:6px;flex-shrink:0;border-radius:var(--r-pill);background:var(--signal-b);box-shadow:0 0 8px var(--glow-b)}.chat-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border:none;border-radius:var(--r-pill);background:transparent;color:var(--ink-mid);cursor:pointer;transition:color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.chat-close:hover{color:var(--signal-b);background:color-mix(in srgb,var(--surface) 70%,transparent)}.chat-close:focus-visible{outline:2px solid var(--signal-a);outline-offset:2px}.chat-log{display:flex;flex:1;flex-direction:column;gap:var(--sp-3);overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-4) var(--sp-5)}.chat-msg{max-width:85%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:.9rem;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.chat-msg--user{align-self:flex-end;background:var(--signal-grad);color:var(--on-signal);font-weight:500}.chat-msg--bot{align-self:flex-start;border:1px solid var(--hairline);background:var(--surface);color:var(--ink)}.chat-msg--typing{color:var(--ink-low)}.chat-typing{display:flex;align-items:center;gap:var(--sp-1)}.chat-typing__dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--ink-low)}.chat-form{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-top:1px solid var(--hairline)}.chat-input{flex:1;min-width:0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--hairline);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:.9rem;transition:border-color var(--dur-micro) var(--ease-out)}.chat-input::placeholder{color:var(--ink-low)}.chat-input:focus,.chat-input:focus-visible{outline:none;border-color:var(--signal-a)}.chat-send{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:none;border-radius:var(--r-pill);background:var(--signal-grad);color:var(--on-signal);cursor:pointer;transition:box-shadow var(--dur-micro) var(--ease-out),opacity var(--dur-micro) var(--ease-out)}.chat-send:hover:not(:disabled){box-shadow:var(--elevate-glow)}.chat-send:disabled{opacity:.4;cursor:default}.chat-send:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.footer{position:relative;border-top:1px solid var(--hairline);background:var(--surface)}.footer__inner{display:flex;flex-direction:column;gap:var(--sp-7);max-width:1280px;margin:0 auto;padding:var(--sp-8) clamp(var(--sp-5),7vw,var(--sp-10))}.footer__top{display:flex;flex-direction:column;gap:var(--sp-7)}.footer__brand{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start}.footer__oneliner{max-width:34ch;color:var(--ink-mid);font-size:.9rem;line-height:1.6}.footer__nav{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-6)}.footer__link{font-family:var(--font-mono);font-size:.81rem;color:var(--ink-mid);text-decoration:none;border-radius:var(--r-sm);transition:color var(--dur-micro) var(--ease-out)}.footer__link:hover{color:var(--signal-b)}.footer__link:focus-visible,.footer__social:focus-visible,.footer__totop:focus-visible{outline:2px solid var(--signal-a);outline-offset:3px}.footer__socials{display:flex;gap:var(--sp-3)}.footer__social{color:var(--ink-mid);transition:border-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.footer__social:hover{color:var(--signal-b)}.footer__base{display:flex;flex-direction:column-reverse;align-items:center;gap:var(--sp-5);padding-top:var(--sp-6);border-top:1px solid var(--hairline)}.footer__copy{font-family:var(--font-mono);font-size:.72rem;line-height:1.6;color:var(--ink-low);text-align:center}.footer__totop{position:relative}.footer__ping{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);background:var(--signal-grad);opacity:0;transition:opacity var(--dur-micro) var(--ease-out)}.footer__totop:hover .footer__ping,.footer__totop:focus-visible .footer__ping{opacity:.4;animation:footer-ping 1.4s var(--ease-in-out) infinite}.footer__arrow{position:relative}@keyframes footer-ping{0%{transform:scale(1);opacity:.4}75%,to{transform:scale(1.9);opacity:0}}@media (min-width: 768px){.footer__top{flex-direction:row;justify-content:space-between;gap:var(--sp-8)}.footer__base{flex-direction:row;justify-content:space-between}.footer__copy{text-align:left}}@media (min-width: 900px){.nav__links,.nav__toggle,.nav__cta{display:flex}.nav__burger{display:none}}@media (prefers-reduced-motion: reduce){.reveal,.hero-word,.work-item,.menu,.menu__link{animation-duration:1ms;animation-delay:0ms!important}.nav,.nav__inner,.nav__edge,.nav__underline,.navlink,.logo__edge,.logo__node,.icon-button,.theme-toggle,.theme-toggle__icon,.cursor,.cursor__ring,.cursor__label,.card,.cta,.card--work img,.card__platform-dot,.result__arrow,.chip--interactive,.case__navlink,.case__navlink svg,.case__navtitle,.chat-launcher,.chat-close,.chat-input,.chat-send,.field__control,.field__label,.field__dot,.footer__link,.footer__social,.footer__ping{transition:none}.footer__totop:hover .footer__ping,.footer__totop:focus-visible .footer__ping{animation:none}.card:hover,.card--work:hover img{transform:none}.case__navlink:hover svg,.case__navlink--next:hover svg{transform:none}}
