@font-face{font-family:Heartbit;src:url('Heartbit-Bold.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#000;color:#fff;font-family:Heartbit,Arial,sans-serif;min-height:100vh;overflow-x:hidden;letter-spacing:.04em}.bg-video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;z-index:-4;opacity:.18;filter:grayscale(1) contrast(1.2)}.bg-grid{position:fixed;inset:0;z-index:-3;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(to bottom,black,transparent 90%);animation:gridmove 18s linear infinite}.noise{position:fixed;inset:0;z-index:-2;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.orb{position:fixed;width:420px;height:420px;border-radius:50%;filter:blur(100px);opacity:.12;z-index:-3}.orb-a{background:#fff;top:-200px;right:-100px}.orb-b{background:#555;bottom:-220px;left:-120px}@keyframes gridmove{to{background-position:55px 110px}}a{color:inherit;text-decoration:none}.site-header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(12px);background:rgba(0,0,0,.4)}.brand{display:flex;gap:12px;align-items:center;font-size:15px;line-height:.9}.brand small{font-size:9px;letter-spacing:.28em}.brand-mark{width:38px;height:38px;border:1px solid #fff;display:grid;place-items:center;font-size:12px}.nav{display:flex;gap:28px;align-items:center;font-size:13px;text-transform:uppercase}.nav a{opacity:.75;transition:.2s}.nav a:hover,.nav a.active{opacity:1;text-shadow:0 0 12px #fff}.nav-social{border:1px solid #fff;border-radius:30px;padding:10px 16px;opacity:1!important}.menu-btn{display:none;background:none;border:0;width:36px}.menu-btn span{display:block;height:1px;background:#fff;margin:7px 0}.hero{min-height:78vh;padding:10vh 8vw 12vh;display:flex;align-items:center;justify-content:space-between;gap:40px}.eyebrow{font-size:11px;letter-spacing:.25em;opacity:.55;margin:0 0 18px;text-transform:uppercase}.hero h1,.page-title h1{font-size:clamp(58px,10vw,150px);line-height:.78;margin:0;letter-spacing:-.06em}.hero h1 span,.page-title h1 span,h2 span{color:transparent;-webkit-text-stroke:1px #fff}.hero-text{max-width:470px;font-family:Arial,sans-serif;color:#bbb;line-height:1.6;margin:35px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:15px 22px;border-radius:30px;border:1px solid #fff;font-size:12px;letter-spacing:.12em;transition:.25s}.btn.primary{background:#fff;color:#000}.btn:hover{transform:translateY(-3px);box-shadow:0 0 25px rgba(255,255,255,.22)}.btn.ghost{background:transparent}.hero-badge{width:300px;height:300px;border:1px solid rgba(255,255,255,.4);border-radius:50%;display:grid;place-items:center;text-align:center;position:relative;animation:spin 18s linear infinite}.hero-badge .ring{position:absolute;inset:20px;border:1px dashed rgba(255,255,255,.3);border-radius:50%}.hero-badge strong{font-size:30px;line-height:.8}.hero-badge small{display:block;font-size:8px;letter-spacing:.3em;margin-top:16px;opacity:.6}@keyframes spin{to{transform:rotate(360deg)}}.ticker{overflow:hidden;border-block:1px solid rgba(255,255,255,.1);padding:13px 0;white-space:nowrap;font-size:11px;letter-spacing:.22em}.ticker div{display:inline-block;animation:marquee 20s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}section.showcase,.about,.socials{padding:110px 8vw}.section-head,.socials{display:flex;justify-content:space-between;gap:30px;align-items:end}.section-head h2,.socials h2,.about h2,.cta h2{font-size:clamp(38px,6vw,85px);line-height:.82;margin:0;letter-spacing:-.04em}.text-link{font-size:11px;border-bottom:1px solid #fff;padding-bottom:8px}.work-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin-top:45px}.work-card{min-height:420px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#080808}.work-card.tall{min-height:560px}.placeholder{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#292929,#050505 60%);transition:.4s}.placeholder:before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.12)}.placeholder span{font-size:28px;letter-spacing:.15em}.placeholder small{position:absolute;bottom:35px;font-size:9px;letter-spacing:.25em;opacity:.45}.work-card:hover .placeholder{transform:scale(1.04);filter:contrast(1.25)}.card-label{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-size:10px;letter-spacing:.2em}.about{display:grid;grid-template-columns:150px 1fr;gap:40px;border-top:1px solid rgba(255,255,255,.1)}.about-number{font-size:12px;opacity:.4}.about p:not(.eyebrow){max-width:650px;color:#aaa;font-family:Arial,sans-serif;line-height:1.7;margin:35px 0}.socials{border-top:1px solid rgba(255,255,255,.1);align-items:start}.social-grid{width:min(520px,100%);display:grid}.social-grid a,.contact-side a{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:20px;display:flex;justify-content:space-between}.social-grid a:hover,.contact-side a:hover{padding-left:10px}.inner{padding:8vh 8vw}.page-title{padding:70px 0 90px;max-width:900px}.page-title p:last-child{font-family:Arial,sans-serif;color:#aaa;max-width:620px;line-height:1.6;margin-top:35px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.gallery-item{margin:0;min-height:380px;position:relative;background:#080808;border:1px solid rgba(255,255,255,.12);overflow:hidden}.gallery-item.wide{grid-column:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-size:12px}.gallery-item figcaption small{display:block;opacity:.5;margin-top:6px}.missing-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(circle,#222,#050505 65%)}.missing-copy span{font-size:10px;opacity:.5}.missing-copy b{font-size:23px}.missing-copy small,.missing-copy em{font-size:9px;letter-spacing:.2em;opacity:.5;font-style:normal}.gallery-item:not(.missing) .missing-copy{display:none}.cta{text-align:center;padding:140px 0}.cta h2{margin:0 0 35px}.contact-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:80px}.contact-wrap form{display:grid;gap:28px}.contact-wrap label{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.contact-wrap input,.contact-wrap textarea{width:100%;margin-top:10px;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.4);padding:15px 0;color:#fff;outline:none;font:16px Arial}.contact-wrap textarea{resize:vertical}.contact-side{border-left:1px solid rgba(255,255,255,.15);padding-left:40px}.muted{font:12px Arial;color:#777;line-height:1.6;margin-top:35px}.audio{position:fixed;right:38px;bottom:30px;z-index:99999;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:150px;height:58px;padding:0 24px;border:2px solid #fff;border-radius:32px;background:rgba(0,0,0,.78);color:#fff;font:700 16px Arial,sans-serif;letter-spacing:.08em;cursor:pointer;box-shadow:0 0 0 rgba(255,255,255,0);transition:.2s}.audio:hover{background:#fff;color:#000;transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.35)}.audio.playing{background:#fff;color:#000}.audio span{font-weight:700}.audio:focus-visible{outline:2px solid #fff;outline-offset:4px}footer{display:flex;justify-content:space-between;padding:30px 5vw;border-top:1px solid rgba(255,255,255,.1);font-size:9px;letter-spacing:.18em;opacity:.5}@media(max-width:800px){.site-header{padding:18px 5vw}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:#000;padding:20px 5vw;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav-social{text-align:center}.menu-btn{display:block}.hero{min-height:82vh;padding:8vh 6vw;align-items:flex-start;flex-direction:column}.hero h1{font-size:18vw}.hero-badge{width:180px;height:180px;align-self:flex-end}.hero-badge strong{font-size:18px}.section-head,.socials{display:block}.text-link{display:inline-block;margin-top:25px}.work-grid{grid-template-columns:1fr}.work-card,.work-card.tall{min-height:390px}.about{grid-template-columns:1fr;padding:80px 6vw}.socials{padding:80px 6vw}.gallery{grid-template-columns:1fr}.gallery-item.wide{grid-column:span 1}.gallery-item{min-height:360px}.contact-wrap{grid-template-columns:1fr;gap:55px}.contact-side{border-left:0;border-top:1px solid rgba(255,255,255,.15);padding:40px 0 0}.inner{padding:5vh 6vw}.page-title{padding:50px 0 65px}.page-title h1{font-size:17vw}footer{padding:25px 5vw;gap:20px;flex-direction:column}}

.brand-logo{width:54px;height:54px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid rgba(255,255,255,.35)}.brand-name{display:inline-block}.hero-badge img{width:72%;height:72%;object-fit:contain;border-radius:50%;background:#fff;transform:rotate(-360deg)}.work-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.45s}.work-card:hover img{transform:scale(1.05);filter:contrast(1.08)}.showcase .work-card{background:#080808}.hero-badge{overflow:hidden}.hero-badge img{animation:logoCounter 18s linear infinite}@keyframes logoCounter{to{transform:rotate(-360deg)}}@media(max-width:800px){.brand-logo{width:44px;height:44px}.hero-badge img{width:70%;height:70%}}

/* Final polish: original black background + falling white logo marks */
body{background:#000;position:relative;overflow-x:hidden}
#snowfall{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.falling-logo{position:absolute;top:-80px;width:var(--size);height:auto;opacity:var(--opacity);pointer-events:none;user-select:none;will-change:transform;animation:logoFall var(--duration) linear var(--delay) infinite}
@keyframes logoFall{0%{transform:translate3d(0,-12vh,0) rotate(var(--rotation))}100%{transform:translate3d(var(--drift),112vh,0) rotate(calc(var(--rotation) + 120deg))}}
.site-header,main,footer{position:relative;z-index:2}
.audio{z-index:30;min-width:100px;font-size:12px}
.hero{padding-top:14vh;padding-bottom:14vh}
@media(max-width:800px){.hero{padding-top:11vh;padding-bottom:10vh}}

@media(max-width:800px){.audio{right:20px;bottom:20px;min-width:140px;height:52px;font-size:14px}}

/* Mobile navigation reliability fix */
.menu-btn{position:relative;z-index:10001;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(max-width:800px){
  .site-header{position:sticky;top:0;z-index:10000}
  .nav{z-index:10000;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s ease;display:flex}
  .nav.open{pointer-events:auto;opacity:1;visibility:visible;transform:translateY(0)}
  .nav a{display:block;width:100%;padding:16px 4px;min-height:48px;touch-action:manipulation}
  .nav-social{padding:14px 16px!important}
}

.contact-guidance{font:13px/1.65 Arial,sans-serif;color:#999;text-transform:none;letter-spacing:0;margin:12px 0 4px;max-width:760px}
.contact-guidance strong{color:#fff}
.contact-guidance a{text-decoration:underline;color:#fff}
.contact-wrap textarea::placeholder{color:#666}


body.vault-active{overflow:hidden}
.vault-intro{position:fixed;inset:0;z-index:99999;background:#030303;color:#fff;display:grid;place-items:center;overflow:hidden;isolation:isolate;transition:opacity .7s ease,visibility .7s ease}
.vault-intro:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.09),transparent 38%),linear-gradient(135deg,rgba(255,255,255,.035),transparent 45%,rgba(255,255,255,.025));z-index:-2}
.vault-intro:after{content:"";position:absolute;inset:0;opacity:.09;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(circle,#000,transparent 70%);z-index:-1}
.vault-intro.done{opacity:0;visibility:hidden;pointer-events:none}
.vault-status{position:absolute;top:6vh;left:6vw;font:10px/1 Arial,sans-serif;letter-spacing:.3em;opacity:.55}
.vault-warning{position:absolute;top:13vh;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;font:9px Arial,sans-serif;letter-spacing:.28em;opacity:.45}.vault-warning span{width:36px;height:1px;background:#777}.vault-warning b{font-weight:500;white-space:nowrap}
.vault-warning:before{content:"";position:absolute;left:50%;top:50%;width:180px;height:180px;border:1px solid rgba(255,255,255,.035);border-radius:50%;transform:translate(-50%,-50%);animation:warningRotate 5s linear infinite}
.vault-diagnostics{position:absolute;left:6vw;bottom:13vh;width:170px;display:grid;gap:8px;font:8px/1.1 Arial,sans-serif;letter-spacing:.12em;opacity:.6}.vault-diagnostics div{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center}.vault-diagnostics em{font-style:normal;color:#aaa}.vault-diagnostics strong{font-weight:500;color:#777;min-width:55px;text-align:right}.diag-light{width:5px;height:5px;border-radius:50%;background:#555;box-shadow:0 0 0 transparent}.vault-diagnostics div:nth-child(1) .diag-light{animation:diagBlink 1s infinite}.vault-diagnostics div:nth-child(2) .diag-light{animation:diagBlink 1s .7s infinite}.vault-diagnostics div:nth-child(3) .diag-light{animation:diagBlink 1s 1.4s infinite}.vault-diagnostics div:nth-child(4) .diag-light{animation:diagBlink 1s 2.1s infinite}
.vault-access{position:absolute;top:19vh;left:50%;transform:translateX(-50%) scale(.92);font:700 11px Arial,sans-serif;letter-spacing:.45em;color:#777;opacity:0;white-space:nowrap;animation:accessGranted .7s ease 3.9s forwards}.vault-access:after{content:"";position:absolute;inset:-10px -18px;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 24px rgba(255,255,255,.08);opacity:.7}
.vault-stage:after{content:"";position:absolute;inset:4%;border-radius:50%;border:1px solid rgba(255,255,255,.08);background:conic-gradient(from 0deg,transparent 0 78%,rgba(255,255,255,.16) 82%,transparent 86%);mask-image:radial-gradient(circle,transparent 0 62%,#000 63%);animation:securitySweep 2.2s linear infinite;pointer-events:none}
.vault-door{will-change:transform,filter,opacity;backface-visibility:hidden}
.bolt{will-change:transform,opacity}.b1,.b2,.b3,.b4,.b5,.b6,.b7,.b8{animation:boltUnlock .55s cubic-bezier(.2,.8,.2,1) 3.85s forwards}
@keyframes boltUnlock{0%{filter:brightness(.65)}45%{filter:brightness(2)}100%{filter:brightness(1.35);opacity:.95}}
@keyframes warningRotate{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes diagBlink{0%,100%{background:#555;box-shadow:none}50%{background:#fff;box-shadow:0 0 8px #fff}}
@keyframes accessGranted{0%{opacity:0;transform:translateX(-50%) scale(.92)}35%{opacity:1;transform:translateX(-50%) scale(1.03)}100%{opacity:.8;transform:translateX(-50%) scale(1)}}
@keyframes securitySweep{to{transform:rotate(360deg)}}
@media(max-width:600px){.vault-warning{top:10vh}.vault-diagnostics{left:5vw;bottom:13vh;width:155px}.vault-access{top:16vh;font-size:9px;letter-spacing:.3em}}

.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px #fff;margin-right:9px;animation:statusPulse 1s ease-in-out infinite}
.vault-stage{width:min(78vw,620px);aspect-ratio:1;position:relative;display:grid;place-items:center;perspective:1200px}
.vault-stage:before{content:"";position:absolute;width:94%;height:94%;border-radius:50%;border:1px solid rgba(255,255,255,.15);box-shadow:0 0 0 18px rgba(255,255,255,.015),0 0 100px rgba(255,255,255,.07);animation:ringPulse 2.8s ease-in-out infinite}
.vault-door{position:relative;width:78%;height:78%;border-radius:50%;border:5px solid #8b8b8b;background:radial-gradient(circle at 40% 32%,#555,#191919 38%,#080808 68%,#303030 100%);box-shadow:inset 0 0 0 7px #101010,inset 0 0 45px #000,0 25px 90px rgba(0,0,0,.8);transform-style:preserve-3d;animation:vaultOpen 3.9s cubic-bezier(.7,0,.15,1) 1.25s forwards}
.vault-door:before{content:"";position:absolute;inset:7%;border-radius:50%;border:2px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 14px rgba(0,0,0,.25),inset 0 0 25px #000}
.vault-door:after{content:"";position:absolute;inset:15%;border-radius:50%;border:1px dashed rgba(255,255,255,.18);transform:rotate(14deg);animation:doorRing 7s linear infinite}
.vault-wheel{position:absolute;inset:25%;border:4px solid #777;border-radius:50%;z-index:3;animation:wheelSpin 3.4s cubic-bezier(.2,.8,.2,1) 1.05s forwards}
.vault-wheel:before,.vault-wheel:after{content:"";position:absolute;left:50%;top:50%;width:115%;height:7px;background:#888;transform:translate(-50%,-50%);box-shadow:0 0 8px #000}
.vault-wheel:after{transform:translate(-50%,-50%) rotate(90deg)}
.vault-wheel span{position:absolute;left:50%;top:50%;width:10px;height:42%;background:#aaa;transform-origin:50% 100%;border-radius:5px;box-shadow:0 0 8px #000}
.vault-wheel span:nth-child(1){transform:translate(-50%,-100%) rotate(0deg)}
.vault-wheel span:nth-child(2){transform:translate(-50%,-100%) rotate(90deg)}
.vault-wheel span:nth-child(3){transform:translate(-50%,-100%) rotate(180deg)}
.vault-wheel span:nth-child(4){transform:translate(-50%,-100%) rotate(270deg)}
.vault-wheel b{position:absolute;inset:40%;display:grid;place-items:center;border-radius:50%;background:#0b0b0b;border:2px solid #777;font:18px Arial,sans-serif;letter-spacing:.1em}
.bolt{position:absolute;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#eee 0 8%,#777 18%,#111 65%);z-index:4;box-shadow:0 2px 5px #000}
.b1{top:10%;left:50%;transform:translateX(-50%)}.b2{top:18%;right:18%}.b3{top:50%;right:10%;transform:translateY(-50%)}.b4{bottom:18%;right:18%}.b5{bottom:10%;left:50%;transform:translateX(-50%)}.b6{bottom:18%;left:18%}.b7{top:50%;left:10%;transform:translateY(-50%)}.b8{top:18%;left:18%}
.vault-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font:10px/1.15 Arial,sans-serif;letter-spacing:.28em;opacity:.6;z-index:2;pointer-events:none}
.vault-center strong{font-size:clamp(25px,5vw,42px);letter-spacing:-.05em}.vault-center small{font-size:7px;letter-spacing:.4em;margin-top:10px}
.vault-light{position:absolute;width:45%;height:12%;background:#fff;filter:blur(35px);opacity:.08;border-radius:50%;animation:lightSweep 4.2s ease-out forwards}
.vault-progress{position:absolute;bottom:9vh;width:min(300px,55vw);height:1px;background:rgba(255,255,255,.16);overflow:hidden}
.vault-progress span{display:block;width:0;height:100%;background:#fff;box-shadow:0 0 12px #fff;animation:progress 4.6s linear forwards}
.vault-enter{position:absolute;bottom:11.5vh;font:10px Arial,sans-serif;letter-spacing:.3em;opacity:0;animation:enterHint .6s ease 3.5s forwards;cursor:pointer}
.vault-enter span{margin-left:8px}
@keyframes vaultOpen{0%{transform:rotateY(0) rotateZ(0) scale(1);filter:brightness(.8)}45%{transform:rotateY(0) rotateZ(-8deg) scale(1.01);filter:brightness(1.15)}100%{transform:rotateY(-82deg) rotateZ(-7deg) scale(1.08) translateX(-8%);opacity:.98}}
@keyframes wheelSpin{to{transform:rotate(720deg)}}
@keyframes doorRing{to{transform:rotate(374deg)}}
@keyframes ringPulse{50%{transform:scale(1.03);opacity:.7}}
@keyframes lightSweep{0%{transform:translateX(-130%) rotate(-20deg);opacity:0}45%{opacity:.12}100%{transform:translateX(130%) rotate(-20deg);opacity:0}}
@keyframes progress{to{width:100%}}
@keyframes enterHint{to{opacity:.5}}
@keyframes statusPulse{50%{opacity:.25;transform:scale(.7)}}
@media (prefers-reduced-motion:reduce){.falling-logo,.vault-door,.vault-wheel,.vault-intro:after,.vault-stage:before,.status-dot,.vault-progress span,.vault-light,.vault-enter,.vault-warning:before,.vault-stage:after,.diag-light,.vault-access,.b1,.b2,.b3,.b4,.b5,.b6,.b7,.b8{animation:none}.vault-door{transform:rotateY(-75deg) rotateZ(-5deg)}.vault-progress span{width:100%}.vault-enter{opacity:.5}.vault-access{opacity:.8}.diag-light{background:#777}}
@media(max-width:600px){.vault-status{top:4vh;left:5vw}.vault-stage{width:92vw}.vault-door{width:82%;height:82%}.vault-progress{bottom:7vh}.vault-enter{bottom:9.5vh}}
/* Work 19: keep the rear-window Locally Hated decal visible in the gallery crop. */
.gallery-item:last-child img{object-position:center 10%;}
