@view-transition{navigation:auto}
::view-transition-group(root){animation-duration:.45s}
:root{
  --ink:#0B0F19;--blue:#1450FF;--paper:#fff;--mist:#EEF1F5;--sub:#565E6E;--line:#DCDFE3;
  --gutter:clamp(20px,5.6vw,88px);
  --sans:"Noto Sans JP",system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --num:"Inter Tight","Noto Sans JP",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{touch-action:manipulation;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-feature-settings:"palt";font-weight:700;line-height:1.32;word-break:auto-phrase}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* header */
.hd{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gutter);pointer-events:none;transition:color .4s,transform .35s}
.hd.is-hidden{transform:translateY(-110%)}
.hd a{pointer-events:auto}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-feature-settings:"palt";font-size:17px;letter-spacing:.04em}
.logo-ring{width:24px;height:24px;color:var(--blue);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.logo:hover .logo-ring{transform:rotate(90deg)}
.hd-nav{display:flex;gap:30px;font-size:13px;font-weight:500;font-feature-settings:"palt";letter-spacing:.03em}
.hd-nav a{position:relative;padding:6px 0}
.hd-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}
.hd-nav a:hover::after{transform:scaleX(1)}
.on-photo .hd{color:#fff}
.on-photo .logo-ring{color:#fff}
.on-blue .hd{color:#fff}
.on-blue .logo-ring{color:#fff}

/* acuity scale */
.scale{position:fixed;z-index:30;right:calc(var(--gutter) * .32);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;font-family:var(--num);font-size:12px;font-weight:500;text-align:right;color:var(--sub);transition:color .4s}
.scale a{display:block;line-height:1;padding:3px 0;opacity:.55;transition:opacity .3s,transform .3s;transform-origin:right center}
.scale a.is-on{opacity:1;color:var(--blue);transform:scale(1.5)}
.on-photo .scale,.on-blue .scale{color:#fff}
.on-photo .scale a.is-on,.on-blue .scale a.is-on{color:#fff}

/* reserve ring */
.reserve{position:fixed;z-index:31;right:calc(var(--gutter) * .5);bottom:24px;width:92px;height:92px;display:grid;place-items:center;color:var(--blue)}
.reserve svg{position:absolute;inset:0;width:100%;height:100%;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.reserve::before{content:"";position:absolute;inset:20%;border-radius:50%;background:#fff}
.reserve span{position:relative;font-weight:700;font-size:15px;font-feature-settings:"palt";color:var(--ink);letter-spacing:.06em}
.reserve:hover svg{transform:rotate(180deg)}
.reserve{transition:opacity .3s,transform .3s}
.reserve.is-rest{opacity:0;transform:scale(.8);pointer-events:none}
.on-blue .reserve{color:#fff}

/* hero */
.hero{height:280svh;position:relative;background:#cfd8df}
.stage{position:sticky;top:0;height:100svh;overflow:hidden}
.w{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sharp{clip-path:ellipse(0 0 at 50% 50%);will-change:clip-path}
.lens{position:absolute;left:0;top:0;width:1200px;height:1200px;margin:-600px 0 0 -600px;color:#fff;will-change:transform;pointer-events:none}
.hero-copy{position:absolute;left:var(--gutter);bottom:clamp(28px,6.5vh,64px);color:#fff;max-width:min(1100px,78vw);will-change:opacity,transform}
.hero-copy h1{font-size:clamp(30px,5.8vw,96px);letter-spacing:-.005em;line-height:1.24;text-wrap:balance}
.hero-copy p{margin-top:18px;font-size:clamp(14px,1.15vw,17px);font-weight:500;line-height:1.7}
.hero-after{position:absolute;left:var(--gutter);bottom:clamp(28px,6.5vh,64px);color:#fff;font-size:clamp(17px,1.9vw,28px);font-weight:700;font-feature-settings:"palt";line-height:1.55;opacity:0;will-change:opacity}
.hero::after{content:"";position:absolute;left:0;right:0;top:0;height:100%;pointer-events:none}
.stage::after{content:"";position:absolute;inset:auto 0 0 0;height:56%;background:linear-gradient(to top,rgba(6,14,30,.55),rgba(6,14,30,.2) 50%,rgba(6,14,30,0));pointer-events:none;z-index:1}
.stage::before{content:"";position:absolute;inset:0 0 auto 0;height:24%;background:linear-gradient(to bottom,rgba(6,14,30,.42),rgba(6,14,30,0));pointer-events:none;z-index:1}
.hero-copy,.hero-after,.lens{z-index:2}

/* eye chart */
.chart{padding:clamp(88px,13vw,200px) var(--gutter) clamp(80px,10vw,160px);background:var(--paper)}
.chart-title{font-size:clamp(15px,1.25vw,18px);font-weight:500;color:var(--sub);margin-bottom:clamp(36px,5vw,76px)}
.rows{list-style:none}
.row{display:grid;grid-template-columns:clamp(40px,4.4vw,72px) 1fr minmax(240px,23vw);align-items:baseline;column-gap:clamp(12px,1.6vw,28px);padding:clamp(10px,1.4vw,22px) 0;cursor:default;transition:color .25s}
.row h3{letter-spacing:-.01em;line-height:1.12;white-space:nowrap}
.r1 h3{font-size:clamp(46px,10.2vw,176px)}
.r2 h3{font-size:clamp(40px,8vw,136px)}
.r3 h3{font-size:clamp(34px,6vw,104px)}
.r4 h3{font-size:clamp(30px,4.3vw,76px)}
.r5 h3{font-size:clamp(26px,3vw,54px)}
.va{font-family:var(--num);font-size:13px;font-weight:500;color:var(--sub)}
.row p{font-size:14.5px;line-height:1.8;color:var(--sub);font-weight:400}
.row:hover{color:var(--blue)}
.row:hover .va,.row:hover p{color:var(--ink)}
.js .row{filter:blur(9px);opacity:.42;transition:filter 1.1s cubic-bezier(.2,.7,.2,1),opacity 1.1s,color .25s}
.js .row.is-focus{filter:none;opacity:1}

/* try */
.try{background:var(--blue);color:#fff;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(72px,9vw,140px) var(--gutter);min-height:100svh}
.try h2{font-size:clamp(21px,3.7vw,62px);line-height:1.28}
.try-sub{margin-top:24px;font-size:15px;line-height:1.8;font-weight:500;max-width:30em}
.try-status{margin-top:40px;font-size:clamp(17px,1.5vw,22px);font-weight:700;font-feature-settings:"palt";min-height:2em}
.try-again{margin-top:6px;font-size:15px;font-weight:700;padding:10px 0;text-decoration:underline;text-underline-offset:5px}
.try-note{margin-top:28px;font-size:12.5px;line-height:1.8;font-weight:500;opacity:.9;max-width:34em}
.try-pad{position:relative;aspect-ratio:1;width:min(100%,62svh);justify-self:center;display:grid;place-items:center}
.try-ring{width:60%;height:60%;color:#fff;transition:width .5s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1),transform .5s cubic-bezier(.2,.8,.2,1)}
.dir{position:absolute;width:56px;height:56px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.75);border-radius:50%;transition:background .2s,color .2s}
.dir svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dir:hover{background:#fff;color:var(--blue)}
.dir.up{top:0;left:50%;margin-left:-28px}
.dir.down{bottom:0;left:50%;margin-left:-28px}
.dir.left{left:0;top:50%;margin-top:-28px}
.dir.right{right:0;top:50%;margin-top:-28px}

/* first visit */
.first{padding:clamp(88px,12vw,190px) var(--gutter)}
.first>h2{font-size:clamp(23px,4.5vw,76px);line-height:1.26}
.steps{margin-top:clamp(40px,6vw,96px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(14px,2vw,32px);align-items:start}
.step h3{margin-top:clamp(14px,1.6vw,24px);font-size:clamp(21px,2.1vw,31px);display:flex;align-items:baseline;gap:10px}
.step h3 span{font-family:var(--num);font-size:.62em;font-weight:600;color:var(--blue)}
.step p{margin-top:6px;font-size:15px;line-height:1.85;max-width:27em}
.disc{border-radius:50%;overflow:hidden;aspect-ratio:1;width:100%}
.s1{grid-column:1/6}
.s2{grid-column:6/10;margin-top:clamp(40px,8vw,130px)}
.s3{grid-column:10/13;margin-top:clamp(70px,14vw,230px)}
.duo{background:var(--blue);isolation:isolate}
.duo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(1.08);mix-blend-mode:screen}
.s1 .duo img{filter:grayscale(1) contrast(1.15) brightness(.8)}

/* inside */
.inside{position:relative;background:var(--mist);padding-bottom:clamp(80px,10vw,160px)}
.inside-photo{width:100%;height:min(86svh,62vw);overflow:hidden}
.inside-photo img{width:100%;height:100%;object-fit:cover}
.inside-text{padding:clamp(40px,5vw,80px) var(--gutter) 0;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(20px,4vw,64px);align-items:end}
.inside-text h2{font-size:clamp(26px,3.5vw,58px);line-height:1.28}
.inside-text p{font-size:15.5px;line-height:1.9;max-width:28em}

/* hours */
.hours{position:relative;overflow:hidden;padding:clamp(88px,11vw,170px) var(--gutter) clamp(88px,10vw,150px)}
.hours h2{font-size:clamp(28px,4.5vw,76px);line-height:1.24;position:relative}
.hours-ring{position:absolute;right:-16vw;top:-12vw;width:60vw;height:60vw;color:var(--mist);transform:rotate(45deg)}
.hours-grid{position:relative;margin-top:clamp(40px,5vw,80px);display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.time{width:100%;border-collapse:collapse;font-size:14.5px;background:rgba(255,255,255,.72)}
.time th,.time td{padding:15px 4px;text-align:center;border-bottom:1px solid var(--line);font-weight:500}
.time thead th{font-size:13px;color:var(--sub)}
.time tbody th{text-align:left;font-family:var(--num);font-weight:600;white-space:nowrap;padding-right:14px;font-size:15px}
.time td{color:var(--sub);font-size:13px}
.time td.y{color:var(--blue);font-weight:700}
.info{display:grid;grid-template-columns:4em 1fr;row-gap:16px;font-size:15.5px;line-height:1.8}
.info dt{font-weight:700}
.info dd a{font-family:var(--num);font-weight:600;font-size:clamp(26px,2.6vw,38px);line-height:1.2;color:var(--blue)}

/* compare how the same street looks */
.sight{background:var(--mist);padding:clamp(72px,9vw,140px) var(--gutter);display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(14px,2vw,32px);align-items:center}
.sight-text{grid-column:1/7}
.sight h2{font-size:clamp(23px,3.5vw,58px);line-height:1.28}
.sight-tabs{margin-top:clamp(24px,3vw,44px);display:grid;gap:2px;border-top:1px solid var(--line)}
.st{display:flex;align-items:center;gap:14px;text-align:left;padding:clamp(10px,1vw,15px) 0;font-size:clamp(18px,1.8vw,27px);font-weight:700;font-feature-settings:"palt";border-bottom:1px solid var(--line);color:var(--sub);transition:color .25s,padding .35s cubic-bezier(.2,.8,.2,1)}
.st svg{flex:none;width:.86em;height:.86em;color:var(--line);transition:color .25s,transform .6s cubic-bezier(.2,.8,.2,1)}
.st:hover{color:var(--ink)}
.st[aria-pressed="true"]{color:var(--ink);padding-left:6px}
.st[aria-pressed="true"] svg{color:var(--blue);transform:rotate(90deg)}
.sight-desc{margin-top:18px;min-height:3.8em;font-size:15.5px;font-weight:500;line-height:1.85}
.sight-note{margin-top:4px;font-size:13px;line-height:1.75;color:var(--sub)}
.sight-view{grid-column:7/13;position:relative;aspect-ratio:1;border-radius:50%;overflow:hidden;isolation:isolate;background:#cfd8df;box-shadow:0 0 0 clamp(6px,.7vw,10px) #fff}
.sv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.sv-base{transition:filter .9s cubic-bezier(.2,.7,.2,1)}
.sv-soft{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1)}
.sv-glare{position:absolute;inset:0;background:radial-gradient(circle at 68% 20%,rgba(255,250,232,.96),rgba(255,250,232,.42) 26%,rgba(255,250,232,0) 56%);mix-blend-mode:screen;opacity:0;transition:opacity .9s}
.sv-lid{position:absolute;left:-2%;right:-2%;height:51%;background:var(--ink);transform:translateY(-101%);z-index:2}
.sv-lid-t{top:0}
.sv-lid-b{bottom:0;transform:translateY(101%)}
[data-state="myopia"] .sv-soft{opacity:1;-webkit-mask-image:linear-gradient(to bottom,#000 42%,transparent 82%);mask-image:linear-gradient(to bottom,#000 42%,transparent 82%)}
[data-state="cataract"] .sv-base{filter:contrast(.72) brightness(1.12) saturate(.7) sepia(.42) blur(1.6px)}
[data-state="cataract"] .sv-soft{opacity:.38}
[data-state="cataract"] .sv-glare{opacity:1}
[data-state="glaucoma"] .sv-soft{opacity:1;filter:brightness(.66) saturate(.5);-webkit-mask-image:radial-gradient(circle at 56% 50%,transparent 26%,#000 56%);mask-image:radial-gradient(circle at 56% 50%,transparent 26%,#000 56%)}
[data-state="dry"] .sv-soft{animation:dry-haze 4.4s linear infinite}
[data-state="dry"] .sv-lid-t{animation:dry-top 4.4s linear infinite}
[data-state="dry"] .sv-lid-b{animation:dry-bottom 4.4s linear infinite}
@keyframes dry-haze{0%,6%{opacity:0}78%,88%{opacity:.92}92%,100%{opacity:0}}
@keyframes dry-top{0%,84%,96%,100%{transform:translateY(-101%)}90%{transform:none}}
@keyframes dry-bottom{0%,84%,96%,100%{transform:translateY(101%)}90%{transform:none}}

/* questions */
.faq{padding:0 var(--gutter) clamp(88px,11vw,170px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(14px,2vw,32px);align-items:start}
.faq>h2{grid-column:1/6;position:sticky;top:96px;font-size:clamp(23px,3.1vw,52px);line-height:1.3}
.faq-list{grid-column:6/13;border-top:1px solid var(--ink)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:flex;align-items:center;gap:14px;padding:clamp(14px,1.4vw,22px) 0;font-size:clamp(17px,1.5vw,22px);font-weight:700;font-feature-settings:"palt";line-height:1.45;cursor:pointer;list-style:none;transition:color .2s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--blue)}
.faq-list summary svg{flex:none;width:22px;height:22px;color:var(--blue);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.faq-list details[open] summary svg{transform:rotate(90deg)}
.faq-list details p{padding:0 0 clamp(18px,1.8vw,28px) 36px;font-size:15.5px;line-height:1.9;max-width:38em}

/* book button shared by sections */
.first-cta{margin-top:clamp(36px,5vw,70px);text-align:right}
.book-open{display:inline-flex;align-items:center;gap:12px;font-size:clamp(19px,2vw,30px);font-weight:700;font-feature-settings:"palt";color:var(--blue);padding:8px 0;border-bottom:2px solid currentColor;transition:gap .35s cubic-bezier(.2,.8,.2,1)}
.book-open svg{width:1em;height:1em;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.book-open:hover{gap:18px}
.book-open:hover svg{transform:rotate(180deg)}

/* director */
.director{margin:clamp(56px,7vw,110px) var(--gutter) 0;display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(14px,2vw,32px);padding-top:0;border-top:0;align-items:center}
.director-photo{grid-column:1/6;aspect-ratio:1;border-radius:50%;overflow:hidden}
.director-photo img{width:100%;height:100%;object-fit:cover}
.director-body{grid-column:7/13}
.director-body h2{font-size:clamp(22px,2.7vw,44px);line-height:1.34}
.director blockquote{margin-top:clamp(18px,2vw,30px);font-size:clamp(16px,1.35vw,20px);font-weight:500;line-height:1.85;font-feature-settings:"palt"}
.director-name{margin-top:12px;font-size:15px;font-weight:700}
.career{margin-top:clamp(18px,2vw,30px);padding-top:clamp(14px,1.4vw,20px);border-top:1px solid var(--line);display:grid;grid-template-columns:4.4em 1fr;row-gap:6px;font-size:14.5px;line-height:1.75}
.career dt{font-family:var(--num);font-weight:600;color:var(--blue)}

/* today and map */
.hours-now{position:relative;margin-top:clamp(28px,3.4vw,52px);padding-top:clamp(18px,2vw,28px);border-top:1px solid var(--ink);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 28px}
.hours-now p{font-size:clamp(17px,1.6vw,24px);font-weight:700;font-feature-settings:"palt";line-height:1.5}
.time .is-today{background:rgba(20,80,255,.08)}
.time thead th.is-today{color:var(--blue);font-weight:700}
.map{position:relative;margin-top:clamp(36px,5vw,76px);background:#fff;overflow:hidden}
.map svg{width:100%;height:auto}
.m-sea{fill:var(--mist)}
.m-shore{fill:none;stroke:var(--line);stroke-width:1.5}
.m-rail{fill:none;stroke:var(--ink);stroke-width:5;stroke-dasharray:22 14}
.m-street{fill:none;stroke:var(--line);stroke-width:12}
.m-route{fill:none;stroke:var(--blue);stroke-width:6;stroke-dasharray:1 13;stroke-linecap:round}
.m-station{fill:var(--ink)}
.m-t-st{fill:#fff;font-size:18px;font-weight:700}
.m-t{fill:var(--ink);font-size:17px;font-weight:500;paint-order:stroke;stroke:#fff;stroke-width:6px}
.m-t-sea{fill:var(--sub);stroke:var(--mist)}
.m-t-walk{fill:var(--blue);font-weight:700}
.m-pin{color:var(--blue)}
.m-t-name{fill:var(--blue);font-size:26px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:8px;text-anchor:end}

/* booking dialog */
html.is-modal{overflow:hidden}
.book{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;margin:0;background:#fff;color:var(--ink);overflow-y:auto;overscroll-behavior:contain}
.book::backdrop{background:transparent}
.book-in{width:min(100%,760px);margin:0 auto;padding:clamp(18px,3vh,32px) var(--gutter) 40px;min-height:100%;display:flex;flex-direction:column}
.book-hd{display:flex;align-items:center;justify-content:space-between}
.book-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;font-feature-settings:"palt"}
.book-title svg{width:24px;height:24px;color:var(--blue)}
.book-x{width:48px;height:48px;margin-right:-12px;display:grid;place-items:center}
.book-x svg,.cal-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.book-prog{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:clamp(10px,2vh,18px)}
.book-prog li{height:4px;background:var(--line);transition:background .35s}
.book-prog li.is-on{background:var(--blue)}
.bstep{border:0;margin-top:clamp(24px,5vh,48px);min-width:0}
.bstep legend{padding:0;font-size:clamp(22px,3vw,34px);font-weight:700;font-feature-settings:"palt";line-height:1.35;word-break:auto-phrase;text-wrap:balance;outline:0}
.bopts{margin-top:clamp(18px,3vh,30px);border-top:1px solid var(--line)}
.bopt{position:relative;display:flex;align-items:center;gap:14px;padding:clamp(14px,2vh,20px) 0;border-bottom:1px solid var(--line);font-size:clamp(18px,2vw,23px);font-weight:700;font-feature-settings:"palt";cursor:pointer}
.bopt input{position:absolute;opacity:0;width:1px;height:1px}
.bopt svg{flex:none;width:24px;height:24px;color:var(--line);transition:color .2s,transform .5s cubic-bezier(.2,.8,.2,1)}
.bopt:hover svg{color:var(--sub)}
.bopt input:checked+svg{color:var(--blue);transform:rotate(90deg)}
.bopt input:checked~span{color:var(--blue)}
.bopt input:focus-visible+svg{outline:2px solid var(--blue);outline-offset:3px}
.cal-nav{margin-top:clamp(14px,2.4vh,24px);display:flex;align-items:center;justify-content:space-between}
.cal-nav p{font-family:var(--num);font-size:20px;font-weight:600}
.cal-nav button{width:48px;height:48px;display:grid;place-items:center}
.cal-nav button:disabled{opacity:.25;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-family:var(--num)}
.cal-grid span{font-family:var(--sans);font-size:12.5px;color:var(--sub);padding-bottom:6px}
.d{position:relative;aspect-ratio:1;max-height:62px;width:100%;display:grid;place-items:center;font-size:clamp(15px,2vw,18px);font-weight:600;font-feature-settings:"tnum"}
.d:disabled{color:#AEB3BC;cursor:default;font-weight:500}
.d:not(:disabled):hover{color:var(--blue)}
.d svg{position:absolute;inset:6%;width:88%;height:88%;color:var(--blue);display:none}
.d b{position:relative;font-weight:inherit}
.d.is-sel svg{display:block}
.d.is-sel{color:var(--blue);font-weight:700}
.bhint{margin-top:10px;font-size:13.5px;color:var(--sub)}
.bsel{margin-top:10px;font-size:15.5px;font-weight:700;color:var(--blue)}
.slots{margin-top:clamp(14px,2.4vh,24px);display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slot{min-height:52px;border:1px solid var(--line);font-family:var(--num);font-size:17px;font-weight:600;transition:background .15s,color .15s,border-color .15s}
.slot:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.slot:disabled{background:var(--mist);color:#AEB3BC;cursor:default;font-weight:500}
.slot.is-sel{background:var(--blue);color:#fff;border-color:var(--blue)}
.slot-group{grid-column:1/-1;font-size:13.5px;font-weight:700;color:var(--sub);margin-top:6px}
.bfield{margin-top:clamp(16px,2.6vh,24px)}
.bfield label{display:block;font-size:14px;font-weight:700;margin-bottom:4px}
.bfield input{width:100%;font:inherit;font-size:18px;padding:10px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;outline:0;background:transparent;color:inherit}
.bfield input:focus{box-shadow:inset 0 -1px 0 var(--blue);border-color:var(--blue)}
.berr{min-height:1.8em;margin-top:12px;font-size:14.5px;font-weight:700;color:#C21F1F}
.bnav{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:8px}
.bback{font-size:16px;font-weight:700;padding:12px 0;text-decoration:underline;text-underline-offset:5px}
.bnext{margin-left:auto;background:var(--blue);color:#fff;font-size:17px;font-weight:700;min-height:56px;padding:0 34px;transition:background .2s}
.bnext:hover{background:var(--ink)}
#bookForm{flex:1;display:flex;flex-direction:column}
.bdone{margin-top:clamp(36px,8vh,80px);outline:0}
.bdone svg{width:clamp(90px,14vw,130px);height:clamp(90px,14vw,130px);color:var(--blue);margin-bottom:18px}
.bdone-h{font-size:clamp(25px,3.8vw,42px);font-weight:700;font-feature-settings:"palt";line-height:1.3}
#bookDoneText{margin-top:12px;font-size:16px;line-height:1.85}
.bdone .bnext{margin-top:clamp(22px,4vh,36px);flex:none}
.bnote{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;line-height:1.7;color:var(--sub)}

/* footer */
.ft{background:var(--blue);color:#fff;padding:clamp(48px,6vw,96px) var(--gutter) 32px;overflow:hidden}
.ft-name{font-weight:700;font-feature-settings:"palt";font-size:13.4vw;line-height:1.1;letter-spacing:-.02em;white-space:nowrap;margin-left:-.04em}
.ft-note{margin-top:clamp(20px,3vw,44px);font-size:13px;font-weight:500}

/* cursor peek */
.peek{position:fixed;left:0;top:0;width:clamp(220px,22vw,340px);aspect-ratio:1;margin:calc(clamp(220px,22vw,340px) / -2) 0 0 calc(clamp(220px,22vw,340px) / -2);border-radius:50%;overflow:hidden;pointer-events:none;z-index:20;opacity:0;transition:opacity .25s;will-change:transform}
.peek.is-on{opacity:1}

.ft-back{display:inline-block;margin-top:6px;padding:6px 0;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
@media (max-width:1024px){
  .hd-nav,.scale{display:none}
  .row{grid-template-columns:clamp(32px,6vw,48px) 1fr}
  .row p{grid-column:2;margin-top:6px;max-width:34em}
  .r1 h3{font-size:clamp(40px,11.2vw,120px)}
  .r2 h3{font-size:clamp(36px,9.6vw,100px)}
  .r3 h3{font-size:clamp(32px,8vw,84px)}
  .r4 h3{font-size:clamp(28px,6.4vw,66px)}
  .r5 h3{font-size:clamp(24px,5vw,52px)}
  .peek{display:none}
  .hours-grid{grid-template-columns:1fr}
  .sight-text{grid-column:1/-1}
  .sight-view{grid-column:3/11;margin-top:32px}
}
@media (max-width:768px){
  .hero{height:240svh}
  .hero-copy{max-width:none;right:var(--gutter);bottom:116px}
  .hero-copy h1{font-size:clamp(21px,6.7vw,48px);line-height:1.3}
  .hero-copy p{font-size:13.5px;margin-top:12px}
  .hero-after{right:var(--gutter);bottom:116px;font-size:clamp(13.5px,3.9vw,20px)}
  .first>h2{font-size:clamp(18px,5.8vw,44px);line-height:1.34}
  .inside-text h2{font-size:clamp(20px,6.3vw,44px)}
  .hero-after br{display:none}
  .reserve{width:72px;height:72px;right:12px;bottom:14px}
  .reserve span{font-size:13px}
  .try{grid-template-columns:1fr;min-height:0}
  .try-pad{width:min(100%,360px);order:2}
  .try-text{display:contents}
  .try h2{order:0;font-size:clamp(21px,7vw,40px)}
  .try-sub{order:1;margin-top:-4px}
  .try-status{order:3;margin-top:8px}
  .try-again{order:4;justify-self:start;margin-top:-16px}
  .try-note{order:5;margin-top:-8px}
  .steps{display:block}
  .step{margin:0 0 44px!important}
  .s1 .disc{width:78vw}
  .s2 .disc{width:62vw;margin-left:auto}
  .s3 .disc{width:46vw}
  .inside-photo{height:64vw}
  .inside-text{grid-template-columns:1fr}
  .director{display:block}
  .director-photo{width:62vw;margin-bottom:24px}
  .sight{display:flex;flex-direction:column}
  .sight-text{display:contents}
  .sight-view{order:1;margin:clamp(18px,5vw,30px) auto 0;width:min(100%,430px)}
  .sight-tabs{order:2}
  .sight-desc{order:3}
  .sight-note{order:4}
  .st{font-size:18px}
  .faq{display:block}
  .faq>h2{position:static;margin-bottom:22px;font-size:clamp(20px,6vw,40px)}
  .first-cta{text-align:left}
  .hours-now{flex-direction:column;align-items:flex-start}
  .m-t{font-size:28px;stroke-width:8px}
  .m-t-st{font-size:24px}
  .m-t-name{font-size:38px}
  .bnext{flex:1}
  .time th,.time td{padding:12px 2px}
  .time tbody th{font-size:13px;padding-right:6px}
  .time td{font-size:12px}
  .ft{padding-bottom:116px}
  .ft-name{font-size:14vw}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero{height:100svh}
  .js .row{filter:none;opacity:1;transition:none}
  [data-state="dry"] .sv-soft{animation:none;opacity:.7}
  [data-state="dry"] .sv-lid{animation:none}
}
