:root{--bg:#f5f5f8;--bg-rgb:245, 245, 248;--surface:#fff;--surface-rgb:255, 255, 255;--border:#00000012;--text:#0a0a0a;--text-rgb:10, 10, 10;--text-muted:#5c6878;--accent:#d04708;--accent-rgb:208, 71, 8;--accent-glow:#d0470826;--radius:16px;--font-main:"Outfit", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:32px;--space-xl:64px;--space-2xl:120px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, 1, .6)}body:before{content:"";z-index:9999;pointer-events:none;opacity:.02;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}.glass{isolation:isolate;border-radius:var(--radius);transition:box-shadow .3s var(--ease-out), transform .3s var(--ease-out), border-color .3s ease;background:#fff;border:1px solid #00000012;position:relative;box-shadow:0 2px 16px #0000000f,0 1px 4px #0000000a}.glass>*{z-index:1;position:relative}.glass:hover{border-color:#0000001c;box-shadow:0 8px 40px #0000001a,0 2px 8px #0000000f}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;align-items:center;gap:10px;padding:14px 28px;font-size:.72rem;font-weight:700;text-decoration:none;transition:opacity .25s,transform .25s;display:inline-flex}.btn-primary:hover{opacity:.88;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{color:var(--text);border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;border:1.5px solid #00000029;align-items:center;gap:10px;padding:13px 24px;font-size:.72rem;font-weight:400;text-decoration:none;transition:background .25s,border-color .25s,transform .25s;display:inline-flex}.btn-ghost:hover{background:#0000000a;border-color:#00000052;transform:translateY(-2px)}.btn-ghost:active{transform:translateY(0)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}:focus:not(:focus-visible){outline:none}.section-label{font-family:var(--font-mono);letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:.65rem;display:inline-block}.reveal{opacity:0;will-change:opacity, transform;transform:translateY(40px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.sw{display:inline-block}.sw__i{opacity:0;display:inline-block;transform:translateY(22px)}.text-muted{color:var(--text-muted)}.text-mono{font-family:var(--font-mono)}.text-upper{text-transform:uppercase;letter-spacing:2px}.text-center{text-align:center}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,60px)}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.section{padding:var(--space-2xl) 0;z-index:1;position:relative}.divider{background:var(--border);width:100%;height:1px;margin:var(--space-xl) 0}#site-nav{z-index:1000;-webkit-backdrop-filter:blur(20px)saturate(160%);background:#f5f5f8d1;border:1px solid #00000012;border-radius:14px;transition:box-shadow .3s,background .3s;position:fixed;top:24px;left:clamp(16px,4vw,56px);right:clamp(16px,4vw,56px);box-shadow:0 4px 32px #00000014}#site-nav.nav--scrolled{background:#f5f5f8f0;box-shadow:0 6px 40px #0000001f}.nav{width:100%;box-shadow:none;background:0 0;border:none;justify-content:space-between;align-items:center;padding:10px 20px;display:flex;position:relative}.nav.glass,.nav.glass:hover{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none}.nav.glass:after{display:none}.nav__brand{font-family:var(--font-main);letter-spacing:3px;text-transform:uppercase;color:var(--text);flex-shrink:0;font-size:.95rem;font-weight:700;text-decoration:none}.nav__brand-dot{color:var(--accent)}.nav__links{align-items:center;gap:26px;display:flex}.nav__links a{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);padding-bottom:3px;font-size:.66rem;text-decoration:none;transition:color .25s;position:relative}.nav__links a:after{content:"";background:var(--accent);width:0;height:1.5px;transition:width .35s var(--ease-out);position:absolute;bottom:0;left:0}.nav__links a:hover,.nav__links a.is-active{color:var(--text)}.nav__links a:hover:after,.nav__links a.is-active:after{width:100%}.nav__actions{align-items:center;gap:12px;display:flex}.nav__cta{padding:8px 16px;font-size:.63rem}.nav__hamburger{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:0;display:none}.nav__hamburger span{background:var(--text);width:18px;height:1px;transition:transform .3s,opacity .3s;display:block}.nav__hamburger.is-open span:first-child{transform:translateY(6px)rotate(45deg)}.nav__hamburger.is-open span:nth-child(2){opacity:0}.nav__hamburger.is-open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (width<=768px){.nav__links{display:none}.nav__links.is-open{border:1px solid var(--border);z-index:999;background:#fff;border-radius:14px;flex-direction:column;gap:20px;padding:24px 28px;display:flex;position:fixed;top:80px;left:clamp(16px,4vw,56px);right:clamp(16px,4vw,56px);box-shadow:0 8px 40px #0000001a}.nav__hamburger{display:flex}.nav__cta{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal-group>*{opacity:1!important;will-change:auto!important;transform:none!important}.sw__i{opacity:1!important;transform:none!important}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0000003d}::-webkit-scrollbar-corner{background:0 0}*{scrollbar-width:thin;scrollbar-color:#0000001f transparent}@media (hover:hover) and (pointer:fine){*{cursor:none!important}.cursor{pointer-events:none;z-index:99999;will-change:transform;position:fixed;top:0;left:0}.cursor__dot{background:var(--text);border-radius:50%;width:8px;height:8px;transition:transform .12s,background .2s;position:absolute;top:-4px;left:-4px}.cursor__ring{border:1.5px solid rgba(var(--text-rgb), .25);border-radius:50%;width:40px;height:40px;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .2s;position:absolute;top:-20px;left:-20px}.cursor--hover .cursor__dot{transform:scale(0)}.cursor--hover .cursor__ring{border-color:rgba(var(--accent-rgb), .5);transform:scale(1.6)}.cursor--click .cursor__ring{transition-duration:80ms;transform:scale(.8)}}:root{--accent-strong:var(--accent);--overlay:#0000000d;--grid-dot:var(--text)}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;margin:0;padding:0;overflow-x:hidden}a{color:inherit;text-decoration:none}.grid-overlay{background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);opacity:.07;pointer-events:none;z-index:0;background-size:40px 40px;position:fixed;inset:0}.hero{z-index:1;flex-direction:column;justify-content:center;min-height:100vh;padding:0 8%;display:flex;position:relative}.hero__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:4px;color:var(--text-muted);margin:0 0 32px;font-size:.7rem}.title-container{border-left:2px solid var(--text);padding-left:40px}.hero h1{font-family:var(--font-main);text-transform:uppercase;letter-spacing:-.02em;margin:0;font-size:clamp(3rem,12vw,9rem);font-weight:900;line-height:.9}.hero .subtitle{font-family:var(--font-main);color:var(--text-muted);text-transform:uppercase;letter-spacing:-.02em;margin:0;font-size:clamp(2rem,8vw,7rem);font-weight:900}.hero .description{max-width:480px;color:var(--text-muted);text-align:right;align-self:flex-end;margin-top:56px;font-size:.85rem;line-height:1.7}.hero__meta{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;font-size:.65rem;display:flex;position:absolute;bottom:36px;left:8%;right:8%}canvas:not(#bg-canvas){pointer-events:none;z-index:10;width:100%;height:100vh;position:fixed;top:0;left:0}#bg-canvas{pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0}#app{z-index:1;flex-direction:column;align-items:flex-end;gap:26px;padding:50vh 4vw;display:flex;position:relative}.row{opacity:0;justify-content:flex-end;align-items:center;gap:3vw;width:72vw;transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);display:flex;transform:translateY(40px)}.row.is-ready{opacity:1;transform:translateY(0)}.label{pointer-events:none;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;min-width:160px;transition:opacity .4s;display:flex}.label__index{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:2px;font-size:.65rem}.label__title{font-family:var(--font-main);color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:1rem;font-weight:900;transition:transform .5s cubic-bezier(.2,.7,.2,1),color .3s}.label__sub{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;font-size:.6rem}.strip{cursor:pointer;z-index:11;background:0 0;flex-shrink:0;width:52vw;height:14vh;position:relative}#app.is-hovering .row:not(.is-hover) .label{opacity:.35}.row.is-hover .label__title{transform:translate(-8px)}#gallery-overlay{z-index:100;background:var(--bg);pointer-events:none;opacity:0;flex-direction:column;justify-content:center;display:flex;position:fixed;inset:0;overflow:hidden}#gallery-overlay.is-open{pointer-events:all}#gallery-close{border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;z-index:110;background:0 0;padding:10px 18px;font-size:.65rem;transition:background .25s,color .25s;position:fixed;top:32px;right:4vw}#gallery-close:hover{background:var(--text);color:var(--bg);border-color:var(--text)}#gallery-header{border-left:2px solid var(--text);max-width:720px;margin-left:6vw;padding:0 6vw 2vh}#gallery-index{font-family:var(--font-mono);letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;font-size:.7rem}#gallery-title{font-family:var(--font-main);text-transform:uppercase;color:var(--text);letter-spacing:-.02em;margin-bottom:10px;font-size:clamp(1.2rem,3vw,2.6rem);font-weight:900;line-height:.95}#gallery-desc{font-family:var(--font-mono);color:var(--text-muted);max-width:480px;font-size:.75rem;line-height:1.6}#gallery-track{will-change:transform;gap:2vw;padding:0 6vw;display:flex}#gallery-track img{object-fit:cover;will-change:transform, opacity;opacity:.3;flex-shrink:0;width:58vw;height:55vh;transition:opacity .45s,transform .45s;transform:scale(.93)}#gallery-track img.active{opacity:1;transform:scale(1)}#project-prev,#project-next{border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);cursor:pointer;z-index:110;background:0 0;width:52px;height:52px;font-size:1.4rem;transition:background .25s,color .25s,border-color .25s,opacity .25s;position:absolute;top:50%;transform:translateY(-50%)}#project-prev{left:4vw}#project-next{right:4vw}#project-prev:hover,#project-next:hover{background:var(--text);color:var(--bg);border-color:var(--text)}#project-prev:disabled,#project-next:disabled{opacity:.18;pointer-events:none}#gallery-dots{justify-content:center;gap:10px;min-height:24px;padding:10px 0 0;display:flex}#gallery-dots button{border:1px solid var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;width:7px;height:7px;padding:0;transition:background .2s,border-color .2s,transform .2s}#gallery-dots button.active{background:var(--text);border-color:var(--text);transform:scale(1.3)}#gallery-nav{font-family:var(--font-mono);letter-spacing:2px;color:var(--text);align-items:center;gap:14px;font-size:.7rem;display:flex;position:absolute;bottom:36px;right:4vw}#gallery-nav button{border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;width:42px;height:42px;font-size:.9rem;transition:background .25s,color .25s,border-color .25s,opacity .25s}#gallery-nav button:hover{background:var(--text);color:var(--bg);border-color:var(--text)}#gallery-nav button:disabled{opacity:.18;pointer-events:none}#gallery-counter{color:var(--text-muted);text-align:center;min-width:80px}.tw-cursor{background:var(--text);vertical-align:text-bottom;width:1px;height:.85em;margin-left:2px;animation:.75s step-start infinite tw-blink;display:inline-block}.tw-cursor.is-done{animation-iteration-count:4}@keyframes tw-blink{50%{opacity:0}}.gallery-open #site-nav,.gallery-open .nav{opacity:0;visibility:hidden;pointer-events:none}@media (width<=1024px){.strip{height:12vh}#gallery-track img{width:65vw;height:52vh}.row{width:80vw}}@media (width<=768px){#app{gap:14px;padding:40vh 3vw}.row{gap:2vw;width:96vw}.label{min-width:70px}.label__title{font-size:.78rem}.label__sub{font-size:.5rem}.label__index{font-size:.52rem}.strip{width:64vw;height:10vh}#gallery-close{padding:8px 12px;font-size:.58rem;top:18px;right:3vw}#gallery-header{margin-left:4vw;padding:0 4vw 2vh}#gallery-title{font-size:clamp(1rem,5vw,1.8rem)}#gallery-track{gap:4vw;padding:0 4vw}#gallery-track img{width:88vw;height:46vh}#project-prev{left:2vw}#project-next{right:2vw}#project-prev,#project-next{width:40px;height:40px;font-size:1.1rem}#gallery-nav{gap:10px;font-size:.6rem;bottom:20px;right:3vw}#gallery-nav button{width:36px;height:36px;font-size:.8rem}}
