:root{--ink: #2b70e4;--ink-deep: #1a4fb3;--paper: #d3e7f7;--paper-hi: #ecf4fc;--paper-lo: #b8d6f2;--cream: #f5efe2;--off-white: #fafaf7;--charcoal: #141414;--accent: #ff5a3c;--f-display: "Space Grotesk", system-ui, sans-serif;--f-serif: "Instrument Serif", "Fraunces", Georgia, serif;--f-mono: "JetBrains Mono", "DM Mono", ui-monospace, monospace;--f-body: "Space Grotesk", system-ui, sans-serif;--slide-pad: clamp(28px, 4vw, 64px);--bg: var(--paper);--bg-hi: var(--paper-hi);--fg: var(--ink-deep);--fg-soft: #2b70e4cc;--line: #2b70e4;--muted: #5f7ea8}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-feature-settings:"ss01","ss02";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;cursor:none}a{color:inherit;text-decoration:none;cursor:none}button{font:inherit;color:inherit;background:none;border:0;cursor:none}.texture-layer{position:fixed;inset:0;pointer-events:none;z-index:0;mix-blend-mode:multiply;opacity:.55;background-image:radial-gradient(color-mix(in oklch,var(--line) 28%,transparent) 1.2px,transparent 1.4px);background-size:22px 22px}.cursor{position:fixed;top:0;left:0;width:72px;height:72px;pointer-events:none;z-index:9999;transform:translate3d(-50%,-50%,0);mix-blend-mode:multiply;will-change:transform}.cursor svg{width:100%;height:100%;overflow:visible}.cursor-dot{position:fixed;top:0;left:0;width:6px;height:6px;background:var(--fg);border-radius:50%;z-index:9999;pointer-events:none;transform:translate3d(-50%,-50%,0);opacity:.7}.deck{position:relative;z-index:1;height:100vh;scroll-snap-type:y mandatory;overflow-y:scroll;scroll-behavior:smooth}.slide{height:100vh;scroll-snap-align:start;scroll-snap-stop:always;position:relative;display:grid;padding:var(--slide-pad);overflow:hidden}.slide>*{position:relative;z-index:2}.slide.bg-alt{background:var(--bg-hi)}.slide.bg-invert{background:var(--fg);color:var(--bg)}.slide.bg-invert .project-stage,.slide.bg-invert .project-chips span,.slide.bg-invert .project-link{border-color:var(--bg)}.slide.bg-invert .project-link:hover{background:var(--bg);color:var(--fg)}.chrome{position:fixed;inset:0;pointer-events:none;z-index:50;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg)}.chrome>*{pointer-events:auto}.chrome .tl{position:absolute;top:24px;left:24px;display:flex;align-items:center;gap:12px}.chrome .tr{position:absolute;top:24px;right:24px;display:flex;align-items:center;gap:18px}.chrome .bl{position:absolute;bottom:24px;left:24px;display:flex;align-items:center;gap:10px}.chrome .br{position:absolute;bottom:24px;right:24px;display:flex;align-items:center;gap:10px}.chrome .mini-logo{width:28px;height:28px;border:1px solid var(--fg);border-radius:50%;display:grid;place-items:center;background:var(--bg)}.chrome .mini-logo svg{width:18px;height:18px}.chrome .dot{width:6px;height:6px;border-radius:50%;background:var(--fg)}.chrome .blink{animation:blink 1.4s infinite steps(2)}@keyframes blink{50%{opacity:0}}.chrome nav{display:flex;gap:14px;font-family:var(--f-mono)}.chrome nav a{opacity:.55;transition:opacity .2s}.chrome nav a:hover,.chrome nav a.active{opacity:1}.chrome nav a.active{text-decoration:underline;text-underline-offset:4px}.rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:60;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;color:var(--fg)}.rail button{display:flex;align-items:center;gap:10px;padding:2px 0;opacity:.45;transition:opacity .2s}.rail button:hover,.rail button.active{opacity:1}.rail .mark{width:22px;height:1px;background:currentColor;transition:width .25s ease}.rail button.active .mark{width:44px}.rail .label{transform:translate(6px);white-space:nowrap}.rail button:not(.active):not(:hover) .label{opacity:0;transform:translate(-8px)}.intro{grid-template-rows:1fr auto;padding-top:6vh;padding-bottom:6vh}.intro-stage{display:grid;place-items:center;position:relative;min-height:0;overflow:hidden}.intro-tetra{width:min(62vh,54vw);aspect-ratio:1;position:relative;visibility:hidden}.wordmark{position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;gap:clamp(16px,2vw,36px)}.wordmark .left{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;line-height:1.6;max-width:38ch;opacity:.8}.wordmark .left b{font-weight:500}.wordmark .word{display:grid;justify-items:end;line-height:.88}.wordmark .word .ac{font-family:var(--f-serif);font-style:italic;font-weight:400;font-size:clamp(28px,4vw,56px);color:var(--fg-soft)}.wordmark .word .aw{font-family:var(--f-display);font-weight:700;font-size:clamp(60px,9vw,140px);letter-spacing:-.02em}.wordmark .word .lb{font-family:var(--f-display);font-weight:500;font-size:clamp(28px,4vw,58px);letter-spacing:.05em}.intro.animate .aw,.intro.animate .ac,.intro.animate .lb,.intro.animate .left,.intro.animate .intro-tetra{opacity:0;transform:translateY(14px);animation:rise .9s cubic-bezier(.2,.8,.2,1) forwards}.intro.animate .intro-tetra{animation-delay:.05s}.intro.animate .ac{animation-delay:1.1s}.intro.animate .aw{animation-delay:1.25s}.intro.animate .lb{animation-delay:1.4s}.intro.animate .left{animation-delay:1.6s}@keyframes rise{to{opacity:1;transform:none}}.scroll-hint{position:absolute;bottom:60px;left:50%;transform:translate(-50%);font-family:var(--f-mono);font-size:10px;letter-spacing:.25em;text-transform:uppercase;opacity:.6;display:flex;flex-direction:column;align-items:center;gap:8px}.scroll-hint .bar{width:1px;height:40px;background:currentColor;animation:drip 2s infinite;transform-origin:top}@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}to{transform:scaleY(0);transform-origin:bottom}}.intro:before,.intro:after{content:"";position:absolute;border:1px dashed var(--line);opacity:.35}.intro:before{top:12vh;left:6vw;width:14vw;height:14vw;border-radius:50%}.intro:after{bottom:10vh;right:6vw;width:18vw;height:10vh}.manifesto{grid-template-columns:1fr 1fr;gap:48px;align-items:end}.manifesto h2{grid-column:1 / -1;font-family:var(--f-display);font-weight:700;font-size:clamp(44px,7vw,104px);letter-spacing:-.02em;line-height:.95;max-width:16ch;align-self:start;margin-top:8vh}.manifesto h2 i{font-family:var(--f-serif);font-weight:400}.manifesto .col{font-size:clamp(15px,1.1vw,18px);line-height:1.55;max-width:50ch;padding-bottom:4vh}.manifesto .col b{font-weight:600}.manifesto .col h4{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;opacity:.6;font-weight:400}.manifesto .tags{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:18px;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.manifesto .tags span{padding:4px 8px;border:1px solid var(--fg)}.project{grid-template-columns:minmax(200px,3fr) 7fr;grid-template-rows:auto 1fr auto;gap:20px 32px}.project-num{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6;grid-column:1 / -1}.project-num .sep{margin:0 10px;opacity:.5}.project-meta{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:18px;padding-top:20px}.project-title{font-family:var(--f-display);font-weight:700;font-size:clamp(38px,5vw,80px);line-height:.95;letter-spacing:-.02em;max-width:14ch}.project-title i{font-family:var(--f-serif);font-weight:400}.project-desc{font-family:var(--f-body);font-size:clamp(14px,1.05vw,17px);line-height:1.5;max-width:40ch;opacity:.85}.project-chips{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.project-chips span{padding:4px 8px;border:1px solid var(--fg)}.project-link{margin-top:auto;display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:10px 14px;border:1px solid var(--fg);align-self:flex-start;transition:background .2s,color .2s}.project-link:hover{background:var(--fg);color:var(--bg)}.project-link .arr{transition:transform .2s}.project-link:hover .arr{transform:translate(4px)}.project-stage{grid-column:2;grid-row:2;position:relative;border:1px solid var(--fg);background:repeating-linear-gradient(-45deg,transparent 0 12px,color-mix(in oklch,var(--line) 8%,transparent) 12px 13px);display:grid;place-items:center;overflow:hidden}.project-stage .ph-label{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;background:var(--bg);border:1px dashed var(--fg);color:var(--fg)}.project-stage .corner{position:absolute;width:18px;height:18px;border:1px solid var(--fg)}.project-stage .corner.tl{top:10px;left:10px;border-right:0;border-bottom:0}.project-stage .corner.tr{top:10px;right:10px;border-left:0;border-bottom:0}.project-stage .corner.bl{bottom:10px;left:10px;border-right:0;border-top:0}.project-stage .corner.br{bottom:10px;right:10px;border-left:0;border-top:0}.project-stage .dim{position:absolute;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;color:var(--fg);opacity:.55}.project-stage .dim.top{top:-10px;left:50%;transform:translate(-50%);background:var(--bg);padding:0 6px}.project-stage .dim.side{top:50%;right:-1px;transform:translate(50%,-50%) rotate(-90deg);transform-origin:center;background:var(--bg);padding:0 6px}.project-stage.media-a{background:radial-gradient(circle at 30% 30%,color-mix(in oklch,var(--fg) 25%,transparent) 0 20%,transparent 22%),radial-gradient(circle at 70% 60%,color-mix(in oklch,var(--fg) 18%,transparent) 0 30%,transparent 32%),repeating-linear-gradient(-45deg,transparent 0 14px,color-mix(in oklch,var(--line) 10%,transparent) 14px 15px)}.project-stage.media-b{background:linear-gradient(135deg,color-mix(in oklch,var(--fg) 35%,transparent),color-mix(in oklch,var(--fg) 8%,transparent)),repeating-linear-gradient(0deg,transparent 0 20px,color-mix(in oklch,var(--line) 10%,transparent) 20px 21px)}.project-stage.media-c{background:conic-gradient(from 45deg at 60% 50%,color-mix(in oklch,var(--fg) 22%,transparent),transparent 60%),repeating-linear-gradient(90deg,transparent 0 16px,color-mix(in oklch,var(--line) 12%,transparent) 16px 17px)}.project-stage.media-d{background:radial-gradient(ellipse at 50% 100%,color-mix(in oklch,var(--fg) 30%,transparent),transparent 60%),repeating-linear-gradient(45deg,transparent 0 18px,color-mix(in oklch,var(--line) 12%,transparent) 18px 19px)}.project-footer{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:end;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.project-footer .qr{width:44px;height:44px;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:1px}.project-footer .qr i{background:var(--fg);opacity:.8}.project-footer .qr i.off{background:transparent}.contact{grid-template-rows:auto 1fr auto;gap:40px;padding-top:10vh;padding-bottom:10vh}.contact h2{font-family:var(--f-display);font-weight:700;font-size:clamp(60px,12vw,200px);line-height:.85;letter-spacing:-.03em}.contact h2 .em{font-family:var(--f-serif);font-weight:400;font-style:italic}.contact h2 .out{-webkit-text-stroke:2px var(--fg);color:transparent}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;align-items:end;font-size:14px}.contact-grid h4{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;font-weight:400;margin-bottom:10px}.contact-grid .email{font-family:var(--f-display);font-size:clamp(22px,2.4vw,38px);font-weight:500;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:12px;position:relative}.contact-grid .email .dot{width:8px;height:8px;border-radius:50%;background:var(--fg);animation:pulse 1.6s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.3}}.contact-grid ul{list-style:none;display:grid;gap:8px;font-family:var(--f-mono);font-size:12px;letter-spacing:.04em}.contact-grid ul a{display:inline-flex;align-items:center;gap:8px;position:relative}.contact-grid ul a:before{content:"→";opacity:.4;transition:transform .2s}.contact-grid ul a:hover:before{transform:translate(4px);opacity:1}.contact-foot{display:flex;justify-content:space-between;align-items:end;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.6}.hero-tetra{position:fixed;pointer-events:none;z-index:40;mix-blend-mode:multiply;top:0;left:0;width:1px;height:1px;will-change:transform;color:var(--fg)}.hero-tetra svg{width:100%;height:100%;overflow:visible;display:block}.hero-tetra .box{position:absolute;top:0;left:0;transform-origin:center center;will-change:transform,width,height}.hero-tetra .spin{width:100%;height:100%;transform-origin:50% 50%;will-change:transform}@media(max-width:780px){.wordmark{grid-template-columns:1fr}.wordmark .word{justify-items:start}.manifesto{grid-template-columns:1fr}.project{grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto}.project-stage{grid-column:1;grid-row:3;min-height:40vh}.project-meta{grid-column:1;grid-row:2}.contact-grid{grid-template-columns:1fr}.rail{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}body{cursor:auto}.cursor,.cursor-dot{display:none!important}a,button{cursor:pointer}.deck{scroll-behavior:auto;scroll-snap-type:none}.slide{scroll-snap-stop:normal}.scroll-hint .bar{animation:none;transform:scaleY(1)}.contact-grid .email .dot{animation:none}.chrome .blink{animation:none;opacity:1}.intro.animate .aw,.intro.animate .ac,.intro.animate .lb,.intro.animate .left,.intro.animate .intro-tetra{opacity:1;transform:none;animation:none}.hero-tetra{display:none}}
