@font-face{font-family:Display;src:url('/assets/display.otf') format('opentype');font-display:swap;font-weight:700}@font-face{font-family:Body;src:url('/assets/body.otf') format('opentype');font-display:swap}@font-face{font-family:Mono;src:url('/assets/mono.otf') format('opentype');font-display:swap}
:root{--black:#0a0a0a;--white:#fafafa;--muted:#aaa;--line:#333;--pad:clamp(22px,5vw,88px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--black);color:var(--white);font-family:Body,Arial,sans-serif;font-size:18px;line-height:1.5}body,button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:#aaa;color:#000}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Display,'Arial Narrow',Arial,sans-serif;font-weight:700;text-transform:uppercase;line-height:.94;letter-spacing:-.025em}.eyebrow,.micro,.nav-link,.button,.section-index,.footer-bottom{font-family:Mono,monospace;text-transform:uppercase;font-size:14px;letter-spacing:.045em}.eyebrow{display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';width:26px;height:1px;background:currentColor}.skip{position:fixed;top:-100px;left:20px;background:white;color:black;padding:12px;z-index:100}.skip:focus{top:12px}.header{height:98px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--black)}.brand{display:flex;align-items:center;gap:14px}.brand img{width:53px;height:53px;object-fit:contain}.wordmark{font-family:Display,sans-serif;font-weight:700;font-size:25px;letter-spacing:.015em}.nav{display:flex;align-items:center;gap:32px}.nav-link{padding:9px 0;border-bottom:1px solid transparent}.nav-link:hover,.nav-link[aria-current=page]{border-color:currentColor}.booking{display:flex;align-items:center;gap:10px}.booking button{background:transparent;color:#d6d6d6;border:1px solid #666;padding:13px 18px;font:14px Mono,monospace;cursor:not-allowed}.booking small{font:12px Mono,monospace;color:#aaa}.hero{padding:40px var(--pad) 30px;min-height:calc(100svh - 98px);max-height:1000px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.hero-top,.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-top{color:#c5c5c5}.hero-main{display:grid;grid-template-columns:1.65fr 1fr;gap:5%;align-items:center;padding:48px 0}.hero h1{font-size:clamp(76px,9.7vw,165px);line-height:.92;letter-spacing:-.035em}.hero h1 .outline{color:transparent;-webkit-text-stroke:1.5px #eee}.hero-copy{max-width:400px;color:#b5b5b5;margin-top:26px;font-size:18px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:52px;padding:15px 22px;border:1px solid #666;transition:background .2s,color .2s,transform .2s}.button:hover{background:white;color:black;transform:translateY(-2px)}.button.solid{background:var(--white);color:var(--black);border-color:var(--white)}.button.solid:hover{background:#ccc;border-color:#ccc}.button.dark{background:var(--black);color:white;border-color:var(--black)}.button.dark:hover{background:#333}.arrow{font:25px Body,sans-serif;line-height:.8}.hero-mark{aspect-ratio:1/1.14;position:relative;display:flex;align-items:center;justify-content:center;background:#000;border:1px solid #2b2b2b;transform:rotate(3deg);animation:mark-in 1s ease both}.hero-mark:before,.hero-mark:after{content:'';height:1px;width:calc(100% + 32px);background:#666;position:absolute;left:-16px}.hero-mark:before{top:20px}.hero-mark:after{bottom:20px}.hero-mark img{width:80%;mix-blend-mode:screen}.mark-top,.mark-bottom{position:absolute;left:24px;right:24px;display:flex;justify-content:space-between;font:12px Mono,monospace;color:#aaa}.mark-top{top:36px}.mark-bottom{bottom:36px}.hero-bottom{border-top:1px solid var(--line);padding-top:23px;color:#b0b0b0}.hero-socials{display:flex;gap:24px}.hero-socials a:hover{text-decoration:underline}.star{display:inline-block;font-family:Arial,sans-serif;font-weight:normal;font-size:32px;line-height:1}.marquee{background:var(--white);color:var(--black);overflow:hidden;border-block:1px solid var(--white);padding:22px 0;user-select:none}.marquee-track{display:flex;width:max-content;animation:ticker 28s linear infinite}.marquee-group{display:flex;align-items:center;flex-shrink:0;gap:40px;padding-right:40px;font:700 clamp(28px,3vw,45px)/1 Display,sans-serif;white-space:nowrap}.marquee:hover .marquee-track{animation-play-state:paused}.section{padding:100px var(--pad)}.light{background:var(--white);color:var(--black)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:44px}.section-heading h2{font-size:clamp(58px,7.2vw,112px);margin-top:20px}.section-heading p{max-width:280px;color:#606060;font-size:17px}.section-index{color:#777}.reels{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.reel{min-width:0}.reel-poster{aspect-ratio:9/16;background:#111;color:white;position:relative;overflow:hidden;padding:24px;display:flex;align-items:center;justify-content:center;border:1px solid #353535}.reel-poster:after{content:'';position:absolute;inset:14px;border:1px solid #414141;pointer-events:none}.reel:nth-child(2) .reel-poster{background:#dedede;color:#111}.reel:nth-child(2) .reel-poster:after{border-color:#aaa}.reel:nth-child(3) .reel-poster{background:#242424}.reel-word{font:700 clamp(65px,8.1vw,130px)/.88 Display,sans-serif;text-transform:uppercase;letter-spacing:-.04em;position:relative;z-index:1}.reel-number{position:absolute;top:28px;left:28px;font:14px Mono,monospace}.reel-format{position:absolute;top:28px;right:28px;font:14px Mono,monospace}.reel-logo{position:absolute;width:130px;right:-14px;bottom:78px;opacity:.15;transform:rotate(-8deg);mix-blend-mode:screen}.reel:nth-child(2) .reel-logo{display:none}.reel-label{position:absolute;left:28px;bottom:29px;right:28px;font:12px Mono,monospace;display:flex;justify-content:space-between;gap:10px}.reel-caption{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font:14px Mono,monospace;text-transform:uppercase}.reels-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:35px}.reels-bottom p{color:#666;font-size:16px}.text-link{border-bottom:1px solid currentColor;padding-bottom:5px;white-space:nowrap}.philosophy{display:grid;grid-template-columns:1fr 1.25fr;gap:12%;border-top:1px solid #333}.philosophy h2{font-size:clamp(44px,4.5vw,76px);margin:24px 0 32px}.philosophy .intro{font-size:clamp(22px,2.3vw,34px);line-height:1.4;max-width:590px;margin-bottom:26px}.philosophy .muted{color:#aaa;max-width:460px}.philosophy .body{align-self:center}.service-strip{margin-top:35px;border-top:1px solid #444;border-bottom:1px solid #444;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0}.service-strip strong{font:700 42px Display,sans-serif}.visit{display:grid;grid-template-columns:1.6fr 1fr;gap:10%;align-items:end}.visit h2{font-size:clamp(78px,11.5vw,180px);margin:25px 0 30px}.visit .address{font-size:22px}.visit-info{padding-bottom:5px}.visit-info h3{font-size:40px;margin-bottom:20px}.visit-info p{color:#5d5d5d;margin-bottom:26px;max-width:320px}.visit-note{font:14px Mono,monospace;color:#666;margin-top:26px}.footer{padding:42px var(--pad) 26px}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:32px}.footer-socials{display:flex;gap:30px}.footer-bottom{border-top:1px solid #333;padding-top:22px;display:flex;justify-content:space-between;gap:25px;color:#999;font-size:12px}.footer-bottom span:last-child{text-align:right}.reveal{opacity:1;transform:none}.js .reveal.pending{opacity:0;transform:translateY(25px)}.js .reveal{transition:opacity .65s ease,transform .65s ease}.page-intro{padding:64px var(--pad) 48px}.back-link{display:inline-block;font:14px Mono,monospace;text-transform:uppercase;color:#666;margin-bottom:40px}.page-intro h1{font-size:clamp(95px,14vw,200px);margin-top:20px}.page-intro p{font-size:20px;color:#666;max-width:570px;margin-top:24px}.price-section{padding:10px var(--pad) 100px;display:grid;grid-template-columns:1.5fr 1fr;gap:7%;align-items:start}.price-list{margin:0}.price-row{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #b9b9b9;padding:26px 0}.price-row:last-child{border-bottom:1px solid #b9b9b9}.price-row dt{font:700 clamp(25px,2.7vw,39px)/1.1 Display,sans-serif;text-transform:uppercase}.price-row dt small{display:block;font:16px Body,sans-serif;text-transform:none;color:#666;margin-top:9px}.price-row dd{margin:0;font:700 clamp(35px,4vw,58px)/1 Display,sans-serif;white-space:nowrap}.package{background:#0a0a0a;color:#fafafa;padding:38px;position:relative;overflow:hidden}.package .star{font-size:45px;margin-bottom:30px}.package h2{font-size:clamp(44px,4.3vw,72px);margin:16px 0 22px}.package p{color:#aaa;max-width:280px}.package-price{display:flex;align-items:end;justify-content:space-between;border-top:1px solid #444;margin-top:40px;padding-top:24px}.package-price strong{font:700 110px/.9 Display,sans-serif}.package-price span{font:14px Mono,monospace;padding-bottom:8px}.price-walkin{display:flex;justify-content:space-between;gap:30px;padding:45px var(--pad);border-top:1px solid #333;align-items:center}.price-walkin h2{font-size:clamp(38px,4vw,58px)}.price-walkin p{color:#aaa;margin-top:10px}
@keyframes ticker{to{transform:translateX(-50%)}}@keyframes mark-in{from{opacity:0;transform:translateY(20px) rotate(0)}to{opacity:1;transform:translateY(0) rotate(3deg)}}
@media(min-width:1700px){.hero{min-height:850px}}@media(max-width:1000px){.nav{gap:20px}.booking small{display:none}.hero-main{grid-template-columns:1.55fr 1fr}.hero h1{font-size:clamp(76px,10vw,120px)}.reel-poster{padding:18px}.reel-label{flex-direction:column;gap:4px}.philosophy{gap:7%}.visit{gap:6%}.price-section{gap:5%}.package{padding:28px}}
@media(max-width:740px){.header{height:84px;gap:12px}.brand{gap:7px}.brand img{width:43px;height:43px}.wordmark{font-size:21px}.nav{gap:18px}.nav-link{font-size:13px}.nav .visit-nav{display:none}.booking{display:none}.hero{min-height:auto;max-height:none;padding-top:25px}.hero-top{align-items:start}.hero-top .micro{font-size:12px;max-width:100px;text-align:right}.eyebrow{font-size:12px}.hero-main{grid-template-columns:1fr;gap:42px;padding:45px 0 38px}.hero h1{font-size:clamp(54px,18vw,110px)}.hero-copy{max-width:330px;font-size:17px;margin-top:23px}.hero-mark{width:62%;max-width:300px;margin:2px auto 10px;aspect-ratio:1.12}.mark-top,.mark-bottom{font-size:10px;left:17px;right:17px}.mark-top{top:28px}.mark-bottom{bottom:28px}.hero-mark:before{top:14px}.hero-mark:after{bottom:14px}.hero-mark img{width:68%}.hero-bottom{font-size:12px;align-items:start}.hero-socials{gap:14px;font-size:12px}.hero-bottom>.micro{font-size:12px;max-width:135px}.marquee{padding:18px 0}.marquee-group{gap:24px;padding-right:24px}.section{padding:65px var(--pad)}.section-heading{align-items:start;flex-direction:column;gap:22px;margin-bottom:32px}.section-heading h2{font-size:clamp(40px,12.5vw,65px)}.section-heading p{max-width:360px}.reels{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:15px}.reel{flex:0 0 78%;scroll-snap-align:start}.reel:last-child{display:block}.reel-word{font-size:clamp(64px,18vw,110px)}.reel-poster:after{inset:8px}.reel-number{top:18px;left:18px;font-size:12px}.reel-format{top:18px;right:18px;font-size:12px}.reel-label{left:17px;right:17px;bottom:18px;font-size:10px}.reel-caption{font-size:12px;gap:5px}.reels-bottom{align-items:start;flex-direction:column;gap:22px}.philosophy{grid-template-columns:1fr;gap:20px}.philosophy h2{margin-bottom:10px;font-size:clamp(40px,12.5vw,70px)}.philosophy .intro{font-size:25px}.visit{grid-template-columns:1fr;gap:42px}.visit h2{font-size:clamp(64px,20.5vw,145px);margin:22px 0}.visit-info h3{font-size:35px}.visit-info p{max-width:400px}.footer-main{align-items:start;flex-direction:column;gap:25px}.footer-bottom{flex-direction:column;gap:10px}.footer-bottom span:last-child{text-align:left}.page-intro{padding:40px var(--pad) 40px}.page-intro h1{font-size:clamp(54px,18vw,100px)}.page-intro p{font-size:18px}.back-link{margin-bottom:30px}.price-section{grid-template-columns:1fr;gap:35px;padding-bottom:60px}.price-row{padding:22px 0}.price-row dt{font-size:29px}.price-row dd{font-size:45px}.package{padding:30px}.package h2{font-size:clamp(44px,13vw,70px)}.package .star{margin-bottom:15px}.package-price{margin-top:25px}.price-walkin{align-items:start;flex-direction:column}.button{font-size:13px;gap:22px;padding:14px 18px}.mobile-booking{display:flex!important;align-items:center;gap:12px;margin-top:22px}.mobile-booking small{font:12px Mono,monospace;color:#999}.mobile-booking button{font:13px Mono,monospace;background:none;color:#aaa;border:1px solid #555;padding:12px 16px}.hero-actions{gap:10px}}
.mobile-booking{display:none}

/* Photographic hero: the supplied image remains intact beneath CSS overlays. */
.hero{isolation:isolate;min-height:min(850px,calc(100svh - 98px));max-height:none}
.hero-background{position:absolute;inset:0;z-index:-2;background:#0a0a0a;pointer-events:none}
.hero-background img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero-background:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.53) 40%,rgba(0,0,0,.12) 100%),linear-gradient(0deg,#0a0a0a 0%,transparent 45%,rgba(0,0,0,.2) 100%)}
.hero-main{display:block;padding:80px 0 60px}
.hero h1{font-size:clamp(76px,9.7vw,150px);max-width:100%;text-shadow:0 2px 25px rgba(0,0,0,.2)}
.hero-copy{color:#e0e0e0}
.hero h1 .outline{-webkit-text-stroke:1.5px #fafafa}
.hero-top,.hero-bottom{color:#ddd}
.hero-bottom{border-color:#ffffff40}
.hero-actions .button:not(.solid){background:#0a0a0a70;border-color:#aaa}
.hero-actions .button:not(.solid):hover{background:#fff}
.hero-socials a,.footer-socials a{display:inline-flex;align-items:center;min-height:44px}
.philosophy{row-gap:26px;padding-bottom:0}
.team-photo{position:relative;grid-column:1/-1;margin:15px calc(-1 * var(--pad)) 0;overflow:hidden}
.team-photo img{width:100%;height:auto;filter:grayscale(1);display:block}
.team-photo:after{content:'';position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(0deg,#0a0a0a 0%,transparent 29%,transparent 87%,#0a0a0a 100%),linear-gradient(90deg,#0a0a0a55,transparent 12%,transparent 88%,#0a0a0a55)}
.menu-toggle{display:none}
.reels:focus-visible{outline:2px solid currentColor;outline-offset:6px}
.price-row dt,.price-row dd{min-width:0}
.price-row dd{flex-shrink:0}
.price-walkin .button{flex-shrink:0}

@media(max-width:900px){
  .header{height:auto;min-height:76px;display:grid;grid-template-columns:1fr auto;gap:0 20px;position:relative;z-index:5;padding-top:12px;padding-bottom:12px}
  .header .brand{justify-self:start}
  .header .brand img{width:43px;height:43px}
  .header .wordmark{font-size:24px}
  .header .booking{display:none}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;min-width:88px;padding:10px 0 10px 12px;border:0;background:transparent;color:#fafafa;cursor:pointer;font:14px Mono,monospace;text-transform:uppercase}
  .menu-icon{width:22px;height:16px;position:relative}
  .menu-icon:before,.menu-icon:after{content:'';height:1px;background:currentColor;position:absolute;width:22px;left:0;transition:transform .2s}
  .menu-icon:before{top:4px}.menu-icon:after{bottom:4px}
  .menu-toggle[aria-expanded=true] .menu-icon:before{transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-icon:after{transform:translateY(-3.5px) rotate(-45deg)}
  .header .nav{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;width:100%;border-top:1px solid #333;margin-top:10px;padding-top:8px}
  .js .header .nav{display:none}.js .header.menu-open .nav{display:flex}
  .header .nav .nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px;font-size:14px}
  .hero{min-height:680px}.hero-main{padding:105px 0 55px}
  .hero h1{font-size:clamp(72px,10.5vw,100px)}
  .mobile-booking{display:flex!important;align-items:center;gap:12px;margin-top:18px}
  .mobile-booking button{font:14px Mono,monospace;background:#0a0a0a70;color:#ddd;border:1px solid #666;min-height:44px;padding:10px 16px;cursor:not-allowed}
  .mobile-booking small{font:12px Mono,monospace;color:#ccc}
}
@media(max-width:740px){
  :root{--pad:clamp(20px,5.5vw,36px)}
  html{scroll-padding-top:24px}
  .hero{min-height:calc(100svh - 76px);padding-top:24px;padding-bottom:20px}
  .hero-background img{height:auto;aspect-ratio:1024/682;object-fit:contain;object-position:top;opacity:.95}
  .hero-background:after{background:linear-gradient(180deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.05) 16vw,rgba(10,10,10,.15) 34vw,#0a0a0a 68vw)}
  .hero-top{align-items:center;gap:14px}.hero-top .micro{display:none}
  .hero-top .eyebrow{font-size:13px;text-shadow:0 1px 6px black}
  .hero-main{padding:clamp(142px,43vw,275px) 0 28px}
  .hero h1{font-size:clamp(52px,17.8vw,112px);line-height:.98;letter-spacing:-.035em}
  .hero h1 .outline{-webkit-text-stroke:1px white}
  .hero-copy{margin-top:19px;font-size:17px;line-height:1.5;max-width:360px}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;max-width:470px}
  .hero-actions .button{font-size:14px;gap:12px;min-height:52px;padding:13px 16px}
  .hero-bottom{flex-wrap:wrap;gap:12px;padding-top:16px}
  .hero-bottom>.micro{font-size:12px;max-width:none}
  .hero-socials{gap:18px;font-size:13px}
  .section{padding-top:58px;padding-bottom:58px}
  .section-heading{gap:20px;margin-bottom:28px}
  .section-index{font-size:13px;letter-spacing:.025em}
  .section-heading h2,.philosophy h2{font-size:clamp(38px,12.3vw,74px);line-height:1.02;margin-top:18px}
  .reels{margin-right:calc(-1 * var(--pad));padding-right:var(--pad);gap:16px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#777 #ddd;overscroll-behavior-x:contain}
  .reel{flex-basis:82%}.reel-poster{padding:22px}
  .reel-word{font-size:clamp(55px,17vw,112px);line-height:.98}
  .reel-label{font-size:12px}.reel-caption{font-size:13px;flex-wrap:wrap}
  .philosophy{padding-bottom:0;gap:25px}
  .philosophy .intro{font-size:23px;line-height:1.45}
  .team-photo{margin-top:6px}.team-photo:after{background:linear-gradient(0deg,#0a0a0a 0,transparent 22%,transparent 89%,#0a0a0a 100%)}
  .service-strip{font-size:16px;gap:16px}
  .visit{gap:32px}.visit h2{font-size:clamp(60px,20vw,145px);line-height:1}
  .visit-info h3{font-size:clamp(28px,7.5vw,40px);line-height:1.05}
  .footer{padding-top:30px;padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .footer-socials{gap:24px;font-size:14px}
  .footer-bottom{line-height:1.7;letter-spacing:.02em}
  .page-intro{padding-top:30px;padding-bottom:32px}
  .page-intro h1{font-size:clamp(52px,17vw,100px);line-height:1}
  .page-intro .eyebrow{font-size:12px;letter-spacing:0;gap:8px}
  .page-intro .eyebrow:before{width:16px;flex-shrink:0}
  .price-section{padding-top:0;gap:28px}
  .price-row{gap:12px;padding:22px 0}
  .price-row dt{font-size:clamp(22px,5.4vw,32px);line-height:1.15;overflow-wrap:anywhere}
  .price-row dd{font-size:clamp(36px,9vw,48px)}
  .price-row dt small{font-size:15px;line-height:1.4}
  .package{padding:26px}.package h2{font-size:clamp(42px,12.8vw,72px)}
  .package-price{gap:16px;flex-wrap:wrap}
  .package-price strong{font-size:clamp(76px,20vw,110px)}
  .package-price span{font-size:12px}
  .price-walkin{padding-top:32px;padding-bottom:32px;gap:24px}
  .price-walkin h2{font-size:clamp(30px,8vw,48px);line-height:1.06}
  .price-walkin p{font-size:16px}
}
@media(max-width:420px){
  .hero-actions{grid-template-columns:1fr;max-width:none;gap:10px}
  .hero-actions .button{width:100%}
  .hero-bottom{align-items:center}
  .hero-socials{gap:14px;font-size:12px}
  .hero-bottom>.micro{font-size:12px;max-width:130px}
  .philosophy .button{width:100%;gap:12px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal.pending{opacity:1;transform:none}.marquee-track{transform:none}}
/* Vector stars never fall back to the platform's color emoji font. */
svg.star{width:32px;height:32px;flex-shrink:0;fill:currentColor;vertical-align:middle}
.marquee svg.star{color:#000}
.package svg.star{width:45px;height:45px;color:#fafafa}
