:root{--black: #000000;--surface: #0d0d0d;--surface2: #181818;--line: rgba(240, 240, 250, .1);--line-2: rgba(240, 240, 250, .18);--ink: #f0f0fa;--ink-mid: rgba(240, 240, 250, .6);--ink-dim: rgba(240, 240, 250, .52);--gold: #5ba3e8;--gold-dark: #1549c5;--gold-text: var(--gold);--ghost-bg: rgba(240, 240, 250, .07);--font-display: "Space Grotesk", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--nav-h: 72px;--max-w: 1320px;--pad-x: clamp(20px, 4vw, 56px);--ease-out: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);background:var(--black);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;background:#000000bf;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-bottom:1px solid var(--line)}.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 var(--pad-x);height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:14px}.brand img{height:34px;width:auto}.brand-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:.32em;color:var(--ink-dim);text-transform:uppercase;padding-left:14px;border-left:1px solid var(--line)}.cta{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-family:var(--font-mono);font-size:10px;letter-spacing:.25em;text-transform:uppercase;font-weight:500;border:1px solid var(--gold);color:var(--gold-text);transition:background .3s var(--ease-out),color .3s var(--ease-out)}.cta:hover{background:var(--gold);color:var(--black)}.cta:after{content:"↗"}.hero{padding:calc(var(--nav-h) + 56px) var(--pad-x) 64px;max-width:var(--max-w);margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:28px}.hero-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-text)}.hero-logo{width:min(90vw,720px);height:auto;filter:drop-shadow(0 0 40px rgba(91,163,232,.35))}.hero-sub{max-width:620px;font-size:clamp(15px,1.6vw,18px);color:var(--ink-mid)}.showcase{padding:0 var(--pad-x) 64px}.showcase-card{max-width:var(--max-w);margin:0 auto;height:420px;border-radius:24px;overflow:hidden;border:1px solid var(--line)}@media(max-width:640px){.showcase-card{height:320px;border-radius:16px}}.gallery-section{padding:24px 0 96px}.gallery-heading{max-width:var(--max-w);margin:0 auto;padding:0 var(--pad-x) 32px}.gallery-heading h2{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(28px,3.8vw,44px);text-transform:uppercase;letter-spacing:.01em}.gallery-grid{max-width:var(--max-w);margin:0 auto;padding:0 var(--pad-x);display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px}.gallery-tile{position:relative;display:block;width:100%;aspect-ratio:3 / 4;padding:0;border:0;overflow:hidden;cursor:pointer;background:var(--surface)}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease-out),filter .4s var(--ease-out);filter:grayscale(1) brightness(.85)}.gallery-tile:hover img,.gallery-tile:focus-visible img{transform:scale(1.04);filter:grayscale(0) brightness(1)}.gallery-tile-label{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:linear-gradient(to top,rgba(0,0,0,.65),transparent);opacity:0;transition:opacity .3s var(--ease-out)}.gallery-tile:hover .gallery-tile-label,.gallery-tile:focus-visible .gallery-tile-label{opacity:1}.gallery-tile:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}@media(max-width:520px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:3px}.gallery-tile-label{opacity:1;background:linear-gradient(to top,rgba(0,0,0,.75),transparent)}}.footer{padding:40px var(--pad-x) 56px;max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-dim);border-top:1px solid var(--line)}.footer a{color:var(--gold-text);text-decoration:none}@media(max-width:640px){.footer{flex-direction:column;text-align:center}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;gap:16px;padding:24px;background:#000000eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lightbox-in .2s var(--ease-out)}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-figure{margin:0;max-width:min(88vw,900px);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:12px}.lightbox-image{max-width:100%;max-height:76vh;width:auto;height:auto;object-fit:contain;border:1px solid var(--line-2)}.lightbox-caption{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mid)}.lightbox-counter{color:var(--gold-text)}.lightbox-close,.lightbox-nav{flex-shrink:0;display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-2);background:var(--ghost-bg);color:var(--ink);font-family:var(--font-body);font-size:22px;line-height:1;transition:border-color .25s var(--ease-out),background .25s var(--ease-out)}.lightbox-close:hover,.lightbox-nav:hover{border-color:var(--gold);background:#5ba3e81f}.lightbox-close{position:absolute;top:20px;right:20px}@media(max-width:640px){.lightbox{padding:16px;gap:8px}.lightbox-nav{width:36px;height:36px;font-size:18px}}.drift-wall{position:relative;width:100%;height:100%;overflow:hidden;perspective:var(--dw-perspective, 1200px);perspective-origin:50% 50%;--dw-tile-w: 200px;--dw-tile-h: 132px;--dw-gap: 18px;--dw-radius: 14px;--dw-lift: 64px;--dw-dim: .55;--dw-gray: 0;--dw-overlay: #060010;--dw-edge: 40%;transform:translateZ(0);will-change:transform;-webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 46%,#000 var(--dw-edge),transparent 100%),linear-gradient(to top,#000 var(--dw-edge),transparent 100%);-webkit-mask-composite:source-in;mask-image:radial-gradient(ellipse 78% 82% at 50% 46%,#000 var(--dw-edge),transparent 100%),linear-gradient(to top,#000 var(--dw-edge),transparent 100%);mask-composite:intersect}.drift-wall__plane{position:absolute;top:50%;left:50%;display:flex;flex-direction:row;transform-style:preserve-3d;cursor:pointer;transform-origin:50% 50%;will-change:transform}.drift-wall__col{position:relative;width:calc(var(--dw-tile-w) + var(--dw-gap));transform-style:preserve-3d}.drift-wall__track{display:flex;flex-direction:column;will-change:transform;transform-style:preserve-3d}.drift-wall__tile{position:relative;display:block;width:100%;height:calc(var(--dw-tile-h) + var(--dw-gap));flex:0 0 auto;outline:none;transform-style:preserve-3d}.drift-wall__inner{position:absolute;inset:calc(var(--dw-gap) / 2);display:block;border-radius:var(--dw-radius);overflow:hidden;background:#0b0b12;opacity:var(--dw-dim);transform:translateZ(0);pointer-events:none;transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .42s cubic-bezier(.22,1,.36,1),box-shadow .42s cubic-bezier(.22,1,.36,1)}.drift-wall__tile img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(var(--dw-gray)) saturate(.92);transition:filter .42s cubic-bezier(.22,1,.36,1);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.drift-wall__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--dw-overlay);opacity:.42;pointer-events:none;transition:opacity .42s cubic-bezier(.22,1,.36,1)}.drift-wall__tile.is-active .drift-wall__inner,.drift-wall__tile:focus-visible .drift-wall__inner{opacity:1;transform:translateZ(var(--dw-lift));box-shadow:0 24px 60px -18px #000000b3}.drift-wall__tile.is-active img,.drift-wall__tile:focus-visible img{filter:grayscale(0) saturate(1.05)}.drift-wall__tile.is-active .drift-wall__overlay,.drift-wall__tile:focus-visible .drift-wall__overlay{opacity:0}.drift-wall__tile:focus-visible .drift-wall__inner{box-shadow:0 24px 60px -18px #000000b3,0 0 0 2px #ffffffe6}@media(prefers-reduced-motion:reduce){.drift-wall__plane,.drift-wall__track{will-change:auto}}
