/* Tokyo to Touge site design: one set of tokens, one header, one footer, flat colour chapters, photographs first.
   Built to the taste-skill rules: one typeface, five sizes, one pair of margins, no gradients/shadows/hairlines except a flat scrim over photographs. */
:root{--bg:#16181d;--surface:#1c1f26;--field:#23262e;--paper:#e7e6e2;--ink:#f1f0ec;--ink-dark:#16181d;--muted:#cfccc4;--muted-dark:#4a4d55;--accent:#FFD207;--accent-hi:#ffe14d;--focus:#f4c430;--m:clamp(16px,4vw,40px);--max:1320px;--gap:clamp(64px,8vw,128px);--h2:clamp(30px,3.8vw,54px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 Inter,system-ui,"Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
img,video,svg{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:4px}a:hover{color:#fff}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--m);padding-right:var(--m)}
h1,h2,h3{margin:0;font-weight:900;letter-spacing:-.04em;line-height:1}
h2{font-size:var(--h2);max-width:22ch;text-wrap:balance}h3{font-size:20px;letter-spacing:-.02em;line-height:1.2;margin-top:32px}
p{margin:0}p+p{margin-top:16px}.lead{font-size:20px;line-height:1.5}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--accent);color:#000;font:900 17px Inter,sans-serif;text-decoration:none;border:0;cursor:pointer;transition:transform .15s,background .15s}
.btn:hover{background:var(--accent-hi);color:#000;transform:translateY(-2px)}.btn:active{transform:none}
.btn.ghost{background:var(--field)}.btn.sm{min-height:44px;padding:0 18px}
/* header: a plain bar */
.bar{position:sticky;top:0;z-index:30;background:var(--bg)}
.bar .wrap{display:flex;align-items:center;gap:20px;min-height:64px}
.mark{font-weight:900;font-style:italic;letter-spacing:-.02em;font-size:20px;text-transform:uppercase;text-decoration:none;margin-right:auto;white-space:nowrap}
.bar nav{display:flex;gap:24px}.bar nav a{text-decoration:none;font-weight:600;color:var(--muted);white-space:nowrap}.bar nav a:hover,.bar nav a[aria-current=page]{color:#fff}
.bar nav a[aria-current=page]{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
.lang{display:flex;gap:2px}.lang button{min-height:44px;min-width:44px;padding:0 10px;border:0;background:var(--field);color:var(--muted);font:600 15px Inter,sans-serif;cursor:pointer}
.lang button[aria-pressed=true]{background:var(--ink);color:var(--ink-dark)}
@media(max-width:900px){.bar nav{display:none}.bar .wrap{gap:10px}.mark{font-size:17px}}
.sub{background:var(--surface)}.sub .wrap{display:flex;flex-wrap:wrap;gap:0 22px;padding-top:0;padding-bottom:0}.sub a{flex:none;display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;font-weight:600}.sub a[aria-current=page]{color:#fff;text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
@media(min-width:901px){.sub{display:none}}
/* page hero: a photograph with the title along the bottom edge */
.phero{position:relative;min-height:min(78svh,720px);display:flex;align-items:flex-end;background:#000;overflow:hidden}
.phero>img,.phero>picture>img,.phero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero .scrim{position:absolute;inset:0;background:rgba(0,0,0,.42)}
.phero .wrap{position:relative;width:100%;padding-bottom:clamp(36px,5vw,72px)}
.phero h1{font-size:clamp(48px,9.4vw,136px);line-height:.88;letter-spacing:-.045em;text-transform:uppercase;transform:skewX(-8deg);transform-origin:0 100%;max-width:13ch}
.phero p{margin-top:24px;max-width:50ch;font-size:20px;line-height:1.5}
.phero .cta{display:flex;gap:24px;flex-wrap:wrap;align-items:center;margin-top:28px}
.credit-line{margin-top:14px;font-size:14px;color:var(--muted)}
/* chapters: flat colour fields */
.chap{padding:var(--gap) 0}.c1{background:var(--bg)}.c2{background:var(--field)}.c3{background:var(--surface)}.paper{background:var(--paper);color:var(--ink-dark)}
.prose{max-width:68ch}.chap .prose p,.chap .prose li{color:inherit}
.chap h2{margin-bottom:28px}
.paper a:hover{color:#000}.paper .muted{color:var(--muted-dark)}
ul,ol{margin:16px 0 0;padding-left:22px;display:grid;gap:10px}li{padding-left:2px}
/* figures with credits */
figure{margin:32px 0 0}figure img{width:100%;height:auto}figcaption{margin-top:8px;font-size:14px;color:var(--muted);max-width:80ch}.paper figcaption{color:var(--muted-dark)}
figure.op img{aspect-ratio:3/2;object-fit:cover}
.imgs{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-top:32px}.imgs figure{margin:0}
/* tables: tone steps, not lines */
.tw{overflow-x:auto;margin-top:28px}table{border-collapse:collapse;width:100%;min-width:560px;font-size:17px}
th,td{text-align:left;vertical-align:top;padding:12px 14px}thead th,tr:first-child th{color:var(--muted);font-weight:600;font-size:14px}
tbody tr:nth-child(odd),table tr:nth-child(even){background:rgba(255,255,255,.04)}.paper table tr:nth-child(even){background:rgba(0,0,0,.05)}
table.cmp{font-size:14px;min-width:720px}.cmp .grp th{background:var(--field);color:var(--ink);font-size:14px}
th[scope=row]{font-weight:600;width:28%;color:var(--muted)}
/* simple blocks used inside articles */
.two{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));margin-top:28px}.card{background:var(--surface);padding:20px 22px}.card h3{margin:0 0 8px}.c3 .card{background:var(--field)}
.stats{display:grid;gap:clamp(16px,3vw,40px);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));margin-top:32px}.stat b{display:block;font-size:var(--h2);font-weight:900;letter-spacing:-.04em;line-height:1}.stat span{display:block;margin-top:8px;color:var(--muted);font-size:14px}
.chart{background:var(--surface);padding:16px;margin-top:28px}.chart svg{margin:0 auto;max-width:600px}
.note{background:var(--surface);padding:16px 18px;color:var(--muted);max-width:70ch;margin-top:24px;font-size:15px}
.src li{font-size:15px;color:var(--muted)}.src a{color:var(--ink)}
.small{font-size:14px;color:var(--muted)}.paper .small{color:var(--muted-dark)}
.cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
/* maps */
.map{background:var(--surface);padding:12px;margin-top:28px}.map img,.map iframe{width:100%;display:block;border:0}.map iframe{height:340px}.map .cap{font-size:14px;color:var(--muted);margin-top:8px}
.map button{margin-top:10px;min-height:44px;padding:0 18px;background:var(--field);border:0;color:var(--ink);font:600 15px Inter,sans-serif;cursor:pointer}
/* accordion */
details{background:var(--surface);margin-top:10px}summary{list-style:none;cursor:pointer;padding:18px 22px;font-size:20px;font-weight:600;display:flex;justify-content:space-between;gap:20px;min-height:44px}
summary::-webkit-details-marker{display:none}summary::after{content:"+";font-weight:900;font-size:20px;line-height:1;color:var(--accent)}details[open] summary::after{content:"−"}details p{padding:0 22px 20px;color:var(--muted);max-width:60ch}
/* places list (articles) */
.place{display:grid;gap:6px;padding:20px 22px;background:var(--surface);margin-top:10px}.c2 .place{background:var(--bg)}.place h3{margin:0}.place .tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.tag{background:var(--field);color:var(--muted);padding:3px 10px;font-size:14px}.c2 .tag{background:var(--surface)}
.place a{font-weight:600}
/* footer: the name returns at full width */
.foot{background:var(--paper);color:var(--ink-dark);padding:56px 0 0;overflow:hidden}
.foot a{color:var(--muted-dark);text-decoration:none}.foot a:hover{color:var(--ink-dark);text-decoration:underline}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;font-size:17px}.fcols b{display:block;margin-bottom:10px}.fcols a,.fcols span{display:block;margin:6px 0}
.fine{padding-top:40px;padding-bottom:12px;font-size:14px;color:var(--muted-dark)}
.word{font-weight:900;font-style:italic;letter-spacing:-.06em;line-height:.82;font-size:11.4vw;white-space:nowrap;text-transform:uppercase;padding:0 var(--m);margin:0}
@media(max-width:900px){.fcols{grid-template-columns:1fr 1fr}}@media(max-width:760px){.word{white-space:normal;font-size:17vw}.foot{padding-top:40px}}
[hidden]{display:none!important}
/* entrances: the parts rise in; content is never hidden if the script fails */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;transition-delay:var(--d,0ms)}.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.btn{transition:none}}

/* film cards: thumbnail, muted preview on scroll, flat overlay, sound toggle, full-player button */
.vgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-top:28px}
.vid{background:var(--surface);padding:0 0 12px}.c2 .vid{background:var(--bg)}
.vid p{margin:6px 12px;font-size:17px;color:var(--muted)}.vid a{margin-left:12px;font-size:17px}.vid a+a{margin-left:0}
.vid-m{margin:10px 12px 0;font-size:14px;color:var(--muted)}.vid-m b{color:var(--ink)}
.vid-stage{position:relative;aspect-ratio:16/9;background:#0e1013;overflow:hidden;isolation:isolate}
.vid-poster,.vid-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;display:block}.vid-poster{z-index:0}
.vid-stage iframe{z-index:1;pointer-events:none}.vid-stage.full iframe{pointer-events:auto;z-index:3}
.vid-ov{position:absolute;inset:0;z-index:2;background:rgba(0,0,0,.2);color:#fff;font:600 14px/1.2 Inter,sans-serif;pointer-events:none;overflow:hidden}
.vid-stage.full .vid-ov{display:none}.vhs-lines,.vhs-tint,.vhs-noise,.vhs-band,.vhs-vig,.vhs-ch{display:none}
.vhs-rec{position:absolute;left:12px;top:12px;background:rgba(22,24,29,.78);padding:4px 10px;display:inline-flex;align-items:center;gap:6px}
.vhs-rec i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#FFD207;animation:blink 1.2s steps(1) infinite}
.vhs-hint{position:absolute;left:12px;top:46px;background:rgba(22,24,29,.78);padding:4px 10px}
.vhs-title{position:absolute;left:0;right:0;bottom:0;padding:12px 70px 12px 12px;font:600 17px/1.25 Inter,sans-serif;background:rgba(22,24,29,.78)}
.vid-snd,.vid-full-btn{pointer-events:auto;cursor:pointer;color:#fff;font:600 14px Inter,sans-serif;border:2px solid #fff;background:rgba(22,24,29,.78)}
.vid-snd{position:absolute;right:10px;bottom:8px;width:46px;height:46px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;z-index:3}
.vid-snd::before{content:'';width:22px;height:22px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;--ico:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 9v6h4l5 4V5L7 9H3zm13.6 3l2.4-2.4-1.4-1.4-2.4 2.4-2.4-2.4-1.4 1.4 2.4 2.4-2.4 2.4 1.4 1.4 2.4-2.4 2.4 2.4 1.4-1.4z'/></svg>")}
.vid-snd[aria-pressed=true]::before{--ico:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 9v6h4l5 4V5L7 9H3zm13.5 3A4.5 4.5 0 0014 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z'/></svg>")}
.vid-snd:hover,.vid-snd[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}
.vid-full-btn{position:absolute;right:12px;top:12px;z-index:3;padding:6px 12px;min-height:36px}.vid-full-btn:hover{background:#fff;color:var(--ink-dark)}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}@media(prefers-reduced-motion:reduce){.vhs-rec i{animation:none}}
@media(max-width:760px){.vid p,.vid-m,.vid>a{display:none}.vgrid{grid-template-columns:1fr 1fr;gap:10px}.vid-full-btn,.vhs-hint{display:none}.vhs-title{font-size:14px;padding-right:56px}.vid-snd{width:40px;height:40px}}
/* reading measure: on desktop the text of a chapter runs in two columns; headings, figures, tables and grids span both */
.chap .wrap>p,.chap .wrap>ul,.chap .wrap>ol,.chap .wrap>h3,.chap .wrap>details,.chap .wrap>.lead{max-width:68ch}
@media(min-width:900px){
  .chap .wrap{column-count:2;column-gap:clamp(32px,5vw,72px)}
  .chap .wrap>p,.chap .wrap>ul,.chap .wrap>ol,.chap .wrap>h3,.chap .wrap>details,.chap .wrap>.lead{max-width:none}
  .chap .wrap>h2,.chap .wrap>figure,.chap .wrap>.tw,.chap .wrap>.two,.chap .wrap>.stats,.chap .wrap>.chart,.chap .wrap>.map,.chap .wrap>.vgrid,.chap .wrap>.imgs,.chap .wrap>.cta-row,.chap .wrap>.note,.chap .wrap>.cta,.chap .wrap>.place,.chap .wrap>.scene{column-span:all}
  .chap .wrap>h3{break-after:avoid}.chap .wrap>details,.chap .wrap>li{break-inside:avoid}
  figure.op{max-width:none}figure.op img{aspect-ratio:2/1;object-position:50% 40%}
}
.credit{margin-top:8px;font-size:14px;color:var(--muted)}.cap{font-size:14px;color:var(--muted);margin-top:8px}
h3:first-child{margin-top:0}
.card{background:none;padding:0}.c3 .card,.c2 .card{background:none}
.two .card h3{margin:0 0 6px}
.phero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.bar .lang button{white-space:nowrap}
@media(max-width:900px){.bar .lang{display:none}.sub .lang{margin-left:auto}.bar .btn.sm{white-space:nowrap}}
table.facts{min-width:0}table.facts th[scope=row]{width:38%}

/* legal and information pages: one reading column, no hero photo */
.ptitle{padding:clamp(40px,6vw,88px) 0 clamp(28px,4vw,48px)}
.ptitle h1{font-size:clamp(34px,6vw,76px);line-height:.95;text-transform:uppercase;transform:skewX(-8deg);transform-origin:0 100%;max-width:18ch}
.ptitle h1:lang(ja),.ptitle h1:lang(zh-CN),.ptitle [lang=ja],.ptitle [lang=zh-CN]{text-transform:none;transform:none;font-style:normal}
.ptitle .small{margin-top:20px}
.legal-nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:24px}.legal-nav a{color:var(--muted);text-decoration:none;font-weight:600;min-height:32px;display:inline-flex;align-items:center}
.legal-nav a[aria-current=page]{color:#fff;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.legal .wrap{column-count:1!important;max-width:880px}.legal .wrap>*{max-width:none!important}
.legal h2{font-size:24px;letter-spacing:-.02em;margin:48px 0 12px;max-width:none}.legal h2:first-child{margin-top:0}
.legal p,.legal li{color:var(--ink)}.legal .lead{color:var(--muted)}
.legal table.gt{min-width:520px}

/* forms and payment pages */
.narrow{max-width:760px}.narrow h1{font-size:clamp(34px,5vw,56px);line-height:.95;text-transform:uppercase;transform:skewX(-8deg);transform-origin:0 100%;margin-bottom:20px}
.narrow h1:lang(ja){text-transform:none;transform:none}
.narrow p{color:var(--ink)}.mu{color:var(--muted);font-size:15px}
label{display:block;font-weight:600;margin:20px 0 6px}
input{width:100%;font:inherit;padding:12px 14px;background:var(--field);color:var(--ink);border:2px solid transparent;border-radius:0;min-height:52px}
input:focus{border-color:var(--focus);outline:none}
button.go,a.go,.narrow .btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:0;background:var(--accent);color:#000;font:900 17px Inter,sans-serif;text-decoration:none;cursor:pointer;margin-top:22px}
button.go:hover,a.go:hover,.narrow .btn:hover{background:var(--accent-hi);color:#000}button.go:disabled{opacity:.5}
.narrow .ghost{display:inline-flex;align-items:center;min-height:52px;margin:22px 0 0 18px;color:var(--ink)}
.box{background:var(--surface);padding:18px 20px;margin:24px 0}.err{color:#ff9a86}.ok{color:#8fe0a8}

/* area cards: a photograph, a name and one line, no box */
.areas{display:grid;gap:clamp(16px,2.4vw,32px);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));margin-top:36px}
.area{display:grid;gap:8px;text-decoration:none;color:var(--ink);align-content:start}.area img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .5s}.area:hover img{transform:scale(1.03)}
.area{overflow:hidden}.area-t{font-size:20px;font-weight:900;letter-spacing:-.02em;margin-top:4px}.area-d{color:var(--muted);font-size:17px}
.phero .cta a:not(.btn){font-weight:600;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.area img{transition:none}}

/* ===== home page (the approved proposal) ===== */
.hhero{position:relative;min-height:max(calc(100svh - 64px),600px);display:flex;align-items:flex-end;background:#000 url(assets/hero-onboard.jpg) center/cover;overflow:hidden}
.hhero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.hhero .scrim{position:absolute;inset:0;background:rgba(0,0,0,.42)}
.hhero .wrap{position:relative;width:100%;padding-bottom:clamp(40px,6vw,88px)}
.hhero h1{font-size:clamp(56px,11vw,150px);line-height:.86;letter-spacing:-.045em;text-transform:uppercase;transform:skewX(-8deg);transform-origin:0 100%;max-width:12ch}
.hhero .when{margin-top:28px;font-size:20px;font-weight:900;letter-spacing:-.01em}.hhero .sub{margin-top:10px;max-width:46ch;font-size:20px;line-height:1.5}
.hhero .cta{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-top:32px}.hhero .cta a:not(.btn){font-weight:600;font-size:17px;text-underline-offset:5px}
.pstat{height:max(88svh,520px);overflow:hidden;background:#000;position:relative}
.pstat>img,.pstat>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 60%}.pstat .cover{position:absolute;inset:0;background:rgba(0,0,0,.38)}
.pstat .wrap{position:relative;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:56px;padding-bottom:28px}
.pstat .lead{font-weight:600;max-width:34ch}
.big{font-weight:900;font-size:clamp(120px,17vw,280px);line-height:.8;letter-spacing:-.06em;display:flex;align-items:flex-end;gap:.12em}
.big small{font-size:20px;letter-spacing:0;line-height:1.2;font-weight:600;max-width:12ch;padding-bottom:.35em}
.figs{background:var(--field)}.figs .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);padding-top:40px;padding-bottom:40px}
.figs b{display:block;font-size:var(--h2);font-weight:900;letter-spacing:-.03em;line-height:1}.figs .wrap>div>span{display:block;margin-top:8px;color:var(--muted)}.figs .wrap{align-items:start}
.head2{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end;margin-bottom:40px}.head2 h2{grid-column:1/8;margin-bottom:0}.head2 .lead{grid-column:9/13}
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.mosaic figure{margin:0;position:relative;overflow:hidden;background:#000}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.mosaic figure:hover img{transform:scale(1.04)}
.mosaic figcaption{position:absolute;left:0;bottom:0;margin:0;padding:14px 16px;font-weight:600;font-size:17px;background:rgba(22,24,29,.78);color:var(--ink)}
.m1{grid-column:1/8;grid-row:1/3;min-height:480px}.m2{grid-column:8/13;aspect-ratio:16/10}.m3{grid-column:8/13;aspect-ratio:16/10}.m4{grid-column:1/5;aspect-ratio:4/3}.m5{grid-column:5/9;aspect-ratio:4/3}
.m6{grid-column:9/13;aspect-ratio:4/3;background:var(--surface)!important;display:flex;align-items:flex-end;padding:20px}.m6 p{font-size:20px;font-weight:600;line-height:1.3}
.day{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-top:48px;align-items:start}
.step{margin:0}.step img{width:100%;object-fit:cover}.step h3{margin-top:18px}.step p{margin-top:8px;color:var(--muted);max-width:34ch}
.s1{grid-column:1/5}.s1 img{aspect-ratio:3/4}.s2{grid-column:6/9;margin-top:140px}.s2 img{aspect-ratio:1/1}.s3{grid-column:9/13;margin-top:280px}.s3 img{aspect-ratio:3/4}
.day-wrap{padding-bottom:120px}
.menu{display:grid;grid-template-columns:repeat(12,1fr);gap:48px}.menu .intro{grid-column:1/6}.menu .intro .lead{margin-top:24px;color:var(--muted-dark)}.menu .list{grid-column:7/13}
.group{margin-bottom:48px}.group h3{margin:0 0 12px}
.row{display:grid;grid-template-columns:1fr auto;gap:4px 24px;padding:16px 0}.row+.row{margin-top:2px}
.row .name{font-size:20px;font-weight:600;letter-spacing:-.02em}.row .price{font-size:20px;font-weight:900}.row .desc{grid-column:1/2;color:var(--muted-dark)}
.row .ctl{grid-column:2/3;justify-self:end;display:flex;align-items:center;gap:10px}
.step-btn{width:44px;height:44px;border:2px solid var(--ink-dark);background:transparent;color:var(--ink-dark);font:900 20px Inter,sans-serif;cursor:pointer}.step-btn:hover{background:var(--ink-dark);color:var(--paper)}
.qty{min-width:28px;text-align:center;font-size:20px;font-weight:900}
.extra{display:flex;align-items:flex-start;gap:14px;padding:14px 0;cursor:pointer}.extra input{width:26px;height:26px;min-height:0;margin-top:3px;accent-color:var(--accent)}
.extra .n{font-weight:600;font-size:20px;display:block}.extra .d{display:block;color:var(--muted-dark)}.extra .p{margin-left:auto;font-weight:900;font-size:20px;white-space:nowrap}
.total{position:sticky;bottom:12px;background:var(--ink-dark);color:var(--paper);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.total .sum{font-size:var(--h2);font-weight:900;letter-spacing:-.04em;line-height:1}.total small{display:block;font-size:14px;color:var(--muted);margin-top:6px;font-weight:400;letter-spacing:0}
.total .btn{margin-top:0}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);margin:40px 0 44px}.stats-row b{display:block;font-size:var(--h2);font-weight:900;letter-spacing:-.04em;line-height:1;color:#fff}.stats-row>div>span{display:block;margin-top:10px;color:var(--muted);max-width:26ch}.stats-row{align-items:start}
.split{display:grid;grid-template-columns:repeat(12,1fr);gap:48px;align-items:start}.split .left{grid-column:1/6}.split .right{grid-column:7/13}
.facts{margin-top:28px;display:grid;gap:12px;font-size:20px}.facts b{font-weight:900}
.tall{margin-top:40px}.tall img{width:100%;aspect-ratio:4/5;object-fit:cover}
.last{height:max(90svh,560px);overflow:hidden;background:#000;position:relative}.last>img,.last>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:25% 100%}
.last .cover{position:absolute;inset:0;background:rgba(0,0,0,.3)}.last .wrap{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:clamp(40px,6vw,88px)}
.last .box{width:min(100%,520px);display:grid;gap:22px;background:rgba(22,24,29,.82);padding:28px;margin:0}
@media(max-width:900px){.head2{grid-template-columns:1fr}.head2 h2,.head2 .lead{grid-column:1}.menu{display:block}.menu .list{margin-top:40px}.split{display:block}.split .right{margin-top:40px}.figs .wrap,.stats-row{grid-template-columns:1fr 1fr}.day-wrap{padding-bottom:0}}
@media(max-width:760px){
  .pstat{height:max(66svh,420px)}.pstat .wrap{padding-top:32px}
  .mosaic{grid-template-columns:1fr 1fr}.m1{grid-column:1/3;aspect-ratio:16/10;min-height:0}.m2,.m3,.m4,.m5{grid-column:auto;aspect-ratio:4/3}.m6{display:none}
  .day{display:grid;grid-template-columns:1fr;gap:24px;margin-top:28px}.s1,.s2,.s3{grid-column:1;display:grid;grid-template-columns:40% 1fr;column-gap:16px;align-content:start;width:auto;margin:0}
  .step>img,.step>picture>img{grid-column:1;grid-row:1/5;aspect-ratio:1/1!important;height:auto}.step>*:not(img){grid-column:2;margin-top:0}.step p{margin-top:6px;max-width:none}
  .tall{display:none}.last{height:auto}.last>img,.last>picture>img{position:static;height:44svh}.last .cover{display:none}.last .wrap{padding:0;display:block}.last .box{width:100%;background:var(--bg);padding:32px var(--m)}
  .figs .wrap{padding-top:28px;padding-bottom:28px}.stats-row{margin:28px 0 32px}
}
@media(prefers-reduced-motion:reduce){.mosaic img{transition:none}}
/* home sections lay themselves out: no article columns */
.chap.home .wrap{column-count:1!important}.chap.home .wrap>*{max-width:none}.chap.home .wrap>.lead{max-width:44ch}
.chap.home .wrap>.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.menu .intro h2,.split .left h2{max-width:none}
.extra input{flex:none}
.btn.ghost{background:transparent;border:2px solid currentColor;color:inherit}
@media(max-width:760px){
  .big{font-size:clamp(88px,26vw,120px);white-space:nowrap}
  .total{padding:12px 16px;gap:10px;flex-wrap:nowrap;bottom:0}.total .sum{font-size:28px}.total .btn{padding:12px 16px;white-space:nowrap}
}
@media(max-width:760px){.big{flex-direction:column;align-items:flex-start;gap:14px}.big small{padding-bottom:0;max-width:none}}
/* legal, payment: working pages, so a quiet title that never exceeds two lines */
.ptitle h1,.narrow h1{font-size:clamp(26px,2.8vw,38px);line-height:1.1;transform:none;max-width:none;text-transform:none;letter-spacing:-.03em}
.legal .wrap,.legal table{font-variant-numeric:tabular-nums}
/* the day: timeline, course, paddock strip, kit, access */
.dayhead{display:grid;grid-template-columns:repeat(12,1fr);gap:48px;margin-top:40px;align-items:start}
.timeline{grid-column:1/7;list-style:none;margin:0;padding:0;display:grid;gap:22px}
.timeline li{display:grid;grid-template-columns:130px 1fr;gap:20px}.timeline b{font-size:20px;font-weight:900;letter-spacing:-.02em}
.timeline strong{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px}.timeline span{color:var(--muted)}
.course{grid-column:8/13;background:var(--surface);padding:24px}.course h3{margin:0 0 16px}.course img{width:100%;height:auto;display:block;background:var(--field)}.course p{color:var(--muted);margin-top:16px}
.cstats{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:20px 0 0}.cstats dt{color:var(--muted);font-size:14px}.cstats dd{margin:2px 0 0;font-size:20px;font-weight:900;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.strip-h{margin:72px 0 20px}.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.strip figure{margin:0;position:relative;overflow:hidden;background:#000}.strip img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.strip figcaption{position:absolute;left:0;bottom:0;max-width:90%;margin:0;padding:10px 14px;background:rgba(22,24,29,.82);font-size:15px}
.info3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:64px}.info3 h3{margin:0 0 8px}.info3 p{color:var(--muted);max-width:40ch}
.acc-h{margin-top:88px}.access{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start;margin-top:32px}.access img{width:100%;height:auto;background:var(--surface)}
.routes{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:18px}.routes b{display:block;font-size:20px;letter-spacing:-.02em}.routes em{font-style:normal;margin-left:10px;padding:2px 10px;background:var(--accent);color:#000;font-size:14px;font-weight:600}.routes p{color:var(--muted);margin-top:4px}
@media(max-width:900px){.dayhead{display:block}.course{margin-top:40px}.strip{grid-template-columns:1fr 1fr}.info3{grid-template-columns:1fr;gap:28px}.access{display:block}.access img{margin-bottom:28px}.timeline li{grid-template-columns:96px 1fr;gap:14px}}
@media(max-width:560px){.strip{gap:8px}.strip figcaption{display:none}.strip img{aspect-ratio:1/1}}
.gmap{margin:28px 0 36px}.gmap-canvas{display:none;width:100%;height:min(70vh,560px);background:var(--surface)}.gmap.on .gmap-canvas{display:block}
.gmap-go{min-height:48px;padding:0 22px;background:var(--accent);color:#000;border:0;font:600 17px Inter,sans-serif;cursor:pointer;margin-right:16px}.gmap-go:hover{background:var(--accent-hi)}
.gmap-note{margin-top:12px}.gmap-note.err{color:#ff8279}
@media(min-width:901px){.chap .wrap>.gmap{column-span:all}}
.sub a[href="./"]{display:none}
picture{display:contents}
@media(min-width:901px){.menu .intro,.split .left{position:sticky;top:96px;align-self:start}}
.team{padding:clamp(40px,6vw,72px) 0;margin-bottom:8px}.team h2{font-size:clamp(26px,3vw,40px);max-width:24ch}.team>p{max-width:60ch;margin-top:16px;color:var(--muted-dark)}
.team-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.team-cards>div{background:rgba(22,24,29,.06);padding:20px;display:grid;gap:6px;align-content:start}
.team-cards img{width:56px;height:56px;object-fit:contain;margin-bottom:6px}.team-cards b{font-size:20px;letter-spacing:-.02em}.team-cards span{color:var(--muted-dark)}.team-cards p{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px}
@media(max-width:760px){.team-cards{grid-template-columns:1fr}}
.pks{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}.pk img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.pk-tag{margin-top:16px;color:var(--muted)}.pk h3{margin-top:6px}.pk ul{margin:12px 0 18px;padding-left:20px;display:grid;gap:6px;color:var(--muted)}.pk .btn{margin-top:0}
@media(max-width:900px){.pks{grid-template-columns:1fr}.pk img{aspect-ratio:16/9}}
/* team block: a plain list of three, no boxes */
.team-cards>div{background:none;padding:0;grid-template-columns:56px 1fr;column-gap:16px;align-items:start}.team-cards img{grid-row:1/4;margin:0}.team-cards p{grid-column:2}

/* team block sits on its own dark band so the black-backed logos belong to it */
.teamband{background:var(--surface);color:var(--ink)}.teamband .team{padding:clamp(48px,6vw,88px) 0}
.teamband .team>p{color:var(--muted)}.teamband .team-cards{margin-top:36px;gap:clamp(24px,3vw,48px)}
.teamband .team-cards>div{grid-template-columns:64px 1fr;column-gap:20px}.teamband .team-cards img{width:64px;height:64px;grid-row:1/4}
.teamband .team-cards span{color:var(--muted)}.teamband .team-cards p{flex-wrap:wrap;gap:4px 18px}.teamband .team-cards a{color:var(--ink)}
.teamband+.foot{padding-top:48px}

.teamband .team-cards{align-items:start}.teamband .team-cards>div{grid-template-columns:96px 1fr}.teamband .team-cards img{width:96px;height:64px;object-fit:contain;object-position:left center;background:none}
/* payment pages: one column, no article columns */
.chap .wrap.narrow{column-count:1;max-width:760px;margin-left:auto;margin-right:auto}.chap .wrap.narrow>*{max-width:none}
.chap .wrap.narrow form{display:grid;gap:10px;margin-top:20px}.chap .wrap.narrow label{margin-top:8px;font-weight:600}

.chap.home .wrap>h2+.lead{margin-top:-8px;max-width:46ch}
/* big hub map */
.gmap.bigmap{margin:8px 0 0}.gmap.bigmap .gmap-wrap{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.gmap.bigmap .gmap-pane{position:relative}.gmap.bigmap .gmap-canvas{display:block;height:min(72vh,640px);min-height:420px}
.gmap.bigmap .gmap-go{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
.gmap-list{list-style:none;margin:0;padding:0;max-height:min(72vh,640px);overflow:auto;display:grid;gap:2px}
.gmap-item{width:100%;display:grid;grid-template-columns:34px 1fr;column-gap:12px;text-align:left;padding:12px 14px;background:var(--surface);border:0;color:var(--ink);font:600 16px Inter,sans-serif;cursor:pointer;min-height:56px}
.gmap-item:hover,.gmap-item.cur{background:var(--field)}.gmap-item .num{grid-row:1/3;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#000;display:grid;place-items:center;font-size:14px;font-weight:900}
.gmap-item small{color:var(--muted);font-weight:400;font-size:14px}
@media(max-width:900px){.gmap.bigmap .gmap-wrap{grid-template-columns:1fr}.gmap.bigmap .gmap-canvas{height:60vh;min-height:360px}.gmap-list{max-height:none}}
.gmap.bigmap{display:block}.gmap.bigmap .gmap-wrap{width:100%}

@media(max-width:900px){.gmap-list{max-height:420px}}

/* ticket comparison */
.cmp{margin-top:72px}.cmp h3{margin:0 0 16px;color:var(--ink-dark)}.cmp .tw{background:none}.cmp table{width:100%;border-collapse:collapse;min-width:560px;color:var(--ink-dark)}
.cmp th,.cmp td{padding:14px 12px;text-align:left;font-size:17px}.cmp thead th{font-weight:900}.cmp tbody tr:nth-child(odd){background:rgba(22,24,29,.06)}.cmp td{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.cmp th{color:var(--ink-dark)}.cmp table{min-width:0}.cmp thead th{font-size:17px}
@media(max-width:760px){.cmp th,.cmp td{padding:10px 6px;font-size:15px}.cmp thead th{font-size:15px}}

[id]{scroll-margin-top:76px}
/* ticket rows: one clear action each */
.menu .row .ctl{align-self:center}.row .pick{min-height:48px;padding:0 22px;font-size:16px;margin:0}
.row .price{white-space:nowrap}
/* Japanese and Chinese headlines: no slant, no forced capitals */
html:lang(ja) .phero h1,html:lang(zh-CN) .phero h1,html:lang(ja) .hhero h1,html:lang(zh-CN) .hhero h1,html:lang(ja) .mark,html:lang(zh-CN) .big{transform:none;font-style:normal;text-transform:none;letter-spacing:-.02em}
