/* Hallmark · macrostructure: Full-screen dossier scene · tone: noir ryokan case-file · anchor hue: warm gold
 * nav: N4 split-ribbon · footer: Ft6 closing dossier · contrast: pass (40–41)
 * honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (49)
 * mobile: pass (34, 49, 50–57) · icons: pass (30)
 */
/* Hallmark · pre-emit critique: P5 H5 E4 S5 R4 V5 */
@import url("tokens.css");
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{background:var(--color-night);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.72}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-thickness:var(--rule-hair);text-underline-offset:.22em}button,a,summary{font:inherit}.skip{position:fixed;left:var(--space-sm);top:-5rem;z-index:999;background:var(--color-gold);color:var(--color-gold-ink);padding:var(--space-xs) var(--space-sm)}.skip:focus{top:var(--space-sm)}
h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.08;margin:0;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display-s)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{max-width:var(--measure)}
.site-header{position:sticky;top:0;z-index:var(--z-sticky-nav);background:var(--color-night);color:var(--color-on-dark);box-shadow:0 4px 0 var(--color-gold)}.header-top{height:4rem;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);max-width:90rem;margin:auto}.brand{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-display);font-weight:800;text-decoration:none;white-space:nowrap;line-height:1}.brand img{width:2rem;height:2rem}.header-ticket{display:flex;align-items:center;gap:var(--space-md);font-family:var(--font-outlier);font-size:var(--text-xs);line-height:1}.site-nav{min-height:3.5rem;background:var(--color-wine);display:flex;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-xs) var(--gutter);box-shadow:inset 0 -1px 0 var(--color-gold-dark)}.site-nav a{font-size:var(--text-sm);font-weight:700;text-decoration:none;white-space:nowrap;line-height:1;padding:var(--space-xs) var(--space-2xs)}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-gold)}.nav-mobile{display:none}.nav-mobile summary{cursor:pointer;list-style:none;border:var(--rule-hair) solid var(--color-gold);padding:var(--space-2xs) var(--space-xs);white-space:nowrap;line-height:1}.nav-mobile summary::-webkit-details-marker{display:none}.nav-mobile nav{position:absolute;right:var(--space-sm);top:3.4rem;background:var(--color-night-2);border:var(--rule-hair) solid var(--color-gold);padding:var(--space-xs);display:grid;gap:var(--space-2xs);min-width:11rem;box-shadow:6px 6px 0 var(--color-wine)}.nav-mobile a{padding:var(--space-xs);text-decoration:none;white-space:nowrap;line-height:1}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:var(--space-xs) var(--space-md);background:var(--color-gold);color:var(--color-gold-ink);border:var(--rule-bold) solid var(--color-night);box-shadow:6px 6px 0 var(--color-wine);font-weight:900;text-decoration:none;white-space:nowrap;line-height:1;transition:transform var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.btn:hover{background:var(--color-paper)}.btn:active,.btn.is-active{transform:translate(4px,4px);box-shadow:2px 2px 0 var(--color-wine)}.btn:focus-visible,.text-link:focus-visible,.site-nav a:focus-visible,.nav-mobile summary:focus-visible,.filter-btn:focus-visible,.lightbox button:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none}.btn[aria-busy=true],.btn.is-loading{cursor:progress}.btn.is-error{background:var(--color-error);color:var(--color-on-dark)}.btn.is-success{background:var(--color-success);color:var(--color-on-dark)}.btn-dark{border-color:var(--color-gold);box-shadow:6px 6px 0 var(--color-wine-dark)}.text-link{display:inline-flex;align-items:center;font-weight:800;color:var(--color-wine);white-space:nowrap;line-height:1.25}.text-link:hover{color:var(--color-gold-dark)}
.hero{position:relative;min-height:calc(100vh - var(--nav-height));min-height:calc(100svh - var(--nav-height));display:grid;align-items:end;color:var(--color-on-dark);isolation:isolate;overflow:hidden;padding:var(--space-xl) var(--gutter) var(--space-3xl)}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:-3}.hero:after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(to bottom,var(--color-clear) 8%,var(--color-overlay) 100%)}.hero-mist{position:absolute;inset:auto -10% 10% auto;width:42rem;height:8rem;z-index:-1;background:var(--color-paper);opacity:.06;filter:blur(2.5rem);animation:mist 18s var(--ease-in-out) infinite alternate;pointer-events:none}.hero-grid{width:min(86rem,100%);margin:auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr);gap:var(--space-xl);align-items:end}.hero-copy{max-width:58rem}.hero-kicker{font-family:var(--font-outlier);color:var(--color-gold);font-size:var(--text-xs);letter-spacing:.12em;margin:0 0 var(--space-sm)}.hero h1{font-size:var(--text-display);text-shadow:0 4px 20px var(--color-shadow)}.hero h1 span{display:block;font-size:.23em;letter-spacing:.2em;color:var(--color-gold);font-family:var(--font-outlier);margin-top:var(--space-xs)}.hero-lede{font-size:var(--text-md);max-width:54ch}.hero-actions,.actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-md)}.hero .text-link{color:var(--color-on-dark)}.dossier-card{background:var(--color-paper);color:var(--color-ink);padding:var(--space-md);border:var(--rule-bold) solid var(--color-gold);box-shadow:12px 12px 0 var(--color-wine);transform:rotate(1deg)}.dossier-card strong{display:block;font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2}.dossier-card dl{display:grid;gap:var(--space-xs);margin:var(--space-md) 0 0}.dossier-card div{display:flex;justify-content:space-between;gap:var(--space-md);border-bottom:var(--rule-hair) dashed var(--color-line);padding-bottom:var(--space-2xs)}.dossier-card dt{font-size:var(--text-xs);color:var(--color-mute)}.dossier-card dd{margin:0;font-weight:800;text-align:right}
.paper{background:var(--color-paper);max-width:90rem;margin:auto;box-shadow:0 0 4rem var(--color-shadow)}.info-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--color-wine);color:var(--color-on-dark);border-top:var(--rule-bold) solid var(--color-gold);border-bottom:var(--rule-bold) solid var(--color-gold)}.info-rail div{padding:var(--space-md);border-right:var(--rule-hair) solid var(--color-gold-dark)}.info-rail dt{font-size:var(--text-xs);font-family:var(--font-outlier);color:var(--color-gold)}.info-rail dd{margin:var(--space-3xs) 0 0;font-weight:800}.content{padding:var(--space-2xl) var(--gutter)}.section{padding:var(--space-2xl) 0;border-bottom:var(--rule-hair) solid var(--color-line);scroll-margin-top:var(--nav-height)}.section:last-child{border-bottom:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.section-head h2{max-width:18ch}.lede{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.35}.story-grid,.split,.download-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:var(--space-xl);align-items:start}.case-note{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-line);padding:var(--space-md);box-shadow:7px 7px 0 var(--color-wood)}.case-note h3{font-size:var(--text-md);font-family:var(--font-outlier)}.case-note ul{padding-left:1.2rem}.facts{margin:0}.facts div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:var(--rule-hair) solid var(--color-line)}.facts dt{color:var(--color-mute)}.facts dd{margin:0;font-weight:700}.mechanics{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--space-md)}.mechanic-main,.mechanic-side{background:var(--color-night-2);color:var(--color-on-dark);padding:var(--space-lg);border:var(--rule-hair) solid var(--color-gold-dark)}.mechanic-main{grid-row:span 2}.mechanic-main h3,.mechanic-side h3{color:var(--color-gold)}.mechanic-main img{margin-top:var(--space-md);width:100%;aspect-ratio:16/9;object-fit:cover}.mechanic-side:nth-child(3){background:var(--color-wine)}
.gallery-lead{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:var(--space-sm)}.media{display:block;background:var(--color-night);border:var(--rule-bold) solid var(--color-night);box-shadow:6px 6px 0 var(--color-gold-dark);position:relative}.media img{width:100%;aspect-ratio:16/9;object-fit:cover}.media:hover{box-shadow:9px 9px 0 var(--color-wine)}figure{margin:0}figcaption{font-size:var(--text-sm);color:var(--color-mute);margin-top:var(--space-xs)}.thumb-stack{display:grid;gap:var(--space-sm);grid-template-rows:repeat(2,minmax(0,1fr))}.thumb-stack .media,.thumb-stack img{height:100%}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.gallery-item[hidden]{display:none}.gallery-item .media{height:auto}.gallery-item figcaption{padding-right:var(--space-sm)}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);margin:var(--space-lg) 0}.filter-btn{border:var(--rule-hair) solid var(--color-night);background:var(--color-paper-2);color:var(--color-ink);padding:var(--space-2xs) var(--space-sm);font-weight:800;white-space:nowrap;line-height:1.2;cursor:pointer}.filter-btn:hover,.filter-btn[aria-pressed=true]{background:var(--color-wine);color:var(--color-on-dark)}.filter-btn:active{transform:translateY(2px)}.filter-btn:disabled{opacity:.55;cursor:not-allowed}.filter-btn.is-error{border-color:var(--color-error)}.filter-btn.is-success{border-color:var(--color-success)}
.route-list{display:grid;gap:var(--space-sm);margin-top:var(--space-lg)}.route{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--space-md);padding:var(--space-md);border:var(--rule-hair) solid var(--color-line);background:var(--color-paper-2)}.route b{font-family:var(--font-outlier);color:var(--color-wine)}.update{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--space-lg);background:var(--color-night-2);color:var(--color-on-dark);padding:var(--space-lg);border-top:var(--rule-bold) solid var(--color-gold)}.version{font-family:var(--font-outlier);color:var(--color-gold);font-weight:900}.update time{color:var(--color-gold)}.known{border:var(--rule-bold) solid var(--color-wine);padding:var(--space-md);background:var(--color-paper-2)}.audience{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-lg)}.audience article{padding:var(--space-md);border-top:var(--rule-bold) solid var(--color-gold-dark)}.faq{display:grid;gap:var(--space-xs);max-width:60rem}.faq details{border:var(--rule-hair) solid var(--color-line);background:var(--color-paper-2)}.faq summary{cursor:pointer;font-weight:800;padding:var(--space-sm);list-style-position:inside}.faq details p,.faq details ol{padding:0 var(--space-md) var(--space-sm);margin-top:0}.faq details[open]{box-shadow:5px 5px 0 var(--color-gold-dark)}
.subhero{background:var(--color-indigo);color:var(--color-on-dark);padding:var(--space-xl) var(--gutter) var(--space-3xl);border-bottom:var(--rule-bold) solid var(--color-gold)}.subhero-inner{max-width:84rem;margin:auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr);gap:var(--space-xl);align-items:end}.subhero h1{max-width:16ch}.breadcrumbs{display:flex;align-items:center;gap:var(--space-2xs);font-size:var(--text-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.breadcrumbs a{white-space:nowrap}.subhero-card{background:var(--color-paper);color:var(--color-ink);padding:var(--space-md);box-shadow:9px 9px 0 var(--color-wine);border:var(--rule-bold) solid var(--color-gold)}.toc{position:sticky;top:calc(var(--nav-height) + var(--space-md));background:var(--color-night-2);color:var(--color-on-dark);padding:var(--space-md);border-top:var(--rule-bold) solid var(--color-gold);z-index:var(--z-sticky)}.toc a{display:block;padding:var(--space-2xs) 0}.guide-layout{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:var(--space-xl)}.steps{counter-reset:step;display:grid;gap:var(--space-md);padding:0;list-style:none}.steps li{counter-increment:step;padding:var(--space-md);background:var(--color-paper-2);border-left:var(--rule-bold) solid var(--color-wine)}.steps li:before{content:counter(step,decimal-leading-zero);font-family:var(--font-outlier);font-weight:900;color:var(--color-wine);display:block;margin-bottom:var(--space-xs)}.platform-card{padding:var(--space-lg);background:var(--color-night-2);color:var(--color-on-dark);border:var(--rule-bold) solid var(--color-gold);box-shadow:10px 10px 0 var(--color-wine)}.platform-card h2{color:var(--color-gold)}.platform-card dl div{display:flex;justify-content:space-between;gap:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-gold-dark);padding:var(--space-xs) 0}.platform-card dd{margin:0;font-weight:800}.download-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);list-style:none;padding:0;counter-reset:download}.download-flow li{counter-increment:download;padding:var(--space-md);background:var(--color-paper-2);border-top:var(--rule-bold) solid var(--color-wine)}.download-flow li:before{content:counter(download);display:grid;place-items:center;width:2rem;height:2rem;background:var(--color-wine);color:var(--color-on-dark);font-weight:900;margin-bottom:var(--space-sm)}
.final-cta{background:var(--color-wine);color:var(--color-on-dark);padding:var(--space-2xl) var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);border-block:var(--rule-bold) solid var(--color-gold)}.final-cta h2{max-width:20ch}.final-cta p{margin-bottom:0}.footer{background:var(--color-night);color:var(--color-on-dark);padding:var(--space-2xl) var(--gutter) calc(var(--space-3xl) + 4rem)}.footer-inner{max-width:84rem;margin:auto}.footer-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-gold);max-width:18ch}.footer-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xl);margin-top:var(--space-xl)}.footer-nav,.related{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md)}.footer-nav a,.related a{white-space:nowrap;line-height:1}.legal{font-size:var(--text-xs);color:var(--color-line);margin-top:var(--space-xl);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-wood)}.sticky-cta{position:fixed;z-index:var(--z-sticky);left:50%;bottom:var(--space-sm);transform:translateX(-50%);width:min(42rem,calc(100% - 2rem));display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);background:var(--color-night);color:var(--color-on-dark);padding:var(--space-xs);border:var(--rule-hair) solid var(--color-gold);box-shadow:0 10px 30px var(--color-shadow)}.sticky-cta span{font-weight:800;padding-left:var(--space-xs)}
.lightbox{width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;background:var(--color-overlay);color:var(--color-on-dark)}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:var(--space-sm);gap:var(--space-sm)}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);max-width:90rem;width:100%;margin:auto}.lightbox img{max-width:min(90vw,90rem);max-height:76vh;margin:auto;object-fit:contain}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.lightbox button{background:var(--color-gold);color:var(--color-gold-ink);border:var(--rule-bold) solid var(--color-night);padding:var(--space-xs) var(--space-sm);font-weight:800;white-space:nowrap;line-height:1;cursor:pointer}.lightbox button:hover{background:var(--color-paper)}.lightbox button:active{transform:translateY(2px)}.lightbox button:disabled{opacity:.55;cursor:not-allowed}.empty-state{display:none;padding:var(--space-lg);border:var(--rule-hair) solid var(--color-error)}
@keyframes mist{from{transform:translateX(-3rem);opacity:.03}to{transform:translateX(3rem);opacity:.08}}
@media(max-width:62rem){:root{--nav-height:4rem}.site-nav,.header-ticket{display:none}.nav-mobile{display:block;position:relative}.hero-grid,.subhero-inner,.story-grid,.split,.download-grid,.audience{grid-template-columns:minmax(0,1fr)}.hero{min-height:calc(100svh - 4rem);padding-bottom:var(--space-3xl)}.dossier-card{max-width:28rem}.info-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.mechanics{grid-template-columns:minmax(0,1fr)}.mechanic-main{grid-row:auto}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-layout{grid-template-columns:minmax(0,1fr)}.toc{position:static}.download-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:42rem){.hero{padding-top:var(--space-lg)}.hero-grid{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:clamp(2.9rem,16vw,4.7rem)}.dossier-card{display:none}.info-rail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.info-rail div{padding:var(--space-sm)}.content{padding-top:var(--space-xl)}.section{padding:var(--space-xl) 0}.section-head{align-items:flex-start;flex-direction:column}.gallery-lead{grid-template-columns:minmax(0,1fr)}.thumb-stack{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.gallery-grid{grid-template-columns:minmax(0,1fr)}.route,.update{grid-template-columns:minmax(0,1fr)}.facts div{grid-template-columns:6rem minmax(0,1fr)}.download-flow{grid-template-columns:minmax(0,1fr)}.final-cta{align-items:flex-start;flex-direction:column}.footer{padding-bottom:8rem}.sticky-cta span{display:none}.sticky-cta .btn{width:100%}.footer-nav,.related{align-items:flex-start;flex-direction:column}.lightbox-controls{justify-content:space-between}.lightbox button{padding:var(--space-xs)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.hero-mist{animation:none}}
