/* Hallmark · macrostructure: Workbench / pixel combat folio · tone: editorial-action · anchor hue: wine
 * theme: custom user-locked midnight · paper: oklch(95.68159% .0119292 79.78424) · accent: oklch(76.65278% .1386772 91.05935)
 * fonts: Songti SC + PingFang SC · axes: ivory paper / upright Chinese serif / warm gold
 * pre-emit critique: P4 H4 E4 S5 R5 V4 */
@import url('tokens.css');
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--color-wine);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.8}body::before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,var(--color-clear) 0 47px,var(--color-shadow) 48px);opacity:.1;z-index:-1}a{color:inherit;text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button{font:inherit;cursor:pointer;border-radius:var(--radius-none)}a,button,summary{-webkit-tap-highlight-color:var(--color-accent)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.25;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display);margin:0 0 var(--space-lg)}h2{font-size:var(--text-title);margin:0 0 var(--space-lg)}h3{font-size:1.4rem;margin:0 0 var(--space-md)}p{margin:0 0 var(--space-md)}img{max-width:100%;height:auto;display:block}figure{margin:0}figcaption{font-size:var(--text-small);color:var(--color-muted);padding:var(--space-sm) 0}ul,ol{padding-left:1.4rem}li{margin-bottom:var(--space-sm)}.skip{position:fixed;left:16px;top:-80px;background:var(--color-accent);padding:12px;z-index:100}.skip:focus{top:12px}.masthead{position:sticky;top:0;background:var(--color-ink);color:var(--color-paper);border-bottom:var(--rule-bold) solid var(--color-accent);z-index:20}.mast-inner{max-width:1200px;margin:auto;padding:var(--space-md) var(--space-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.brand{display:flex;gap:var(--space-sm);align-items:center;font-weight:700;text-decoration:none;white-space:nowrap}.brand img{width:32px;height:32px}.desktop-nav{display:flex;gap:var(--space-lg);align-items:center;font-size:var(--text-small)}.desktop-nav a{text-decoration:none;white-space:nowrap}.desktop-nav [aria-current]{color:var(--color-accent);border-bottom:2px solid}.mobile-nav{display:none;position:relative}.mobile-nav summary{white-space:nowrap;cursor:pointer}.mobile-nav nav{position:absolute;right:0;top:45px;min-width:200px;background:var(--color-ink);padding:var(--space-md);box-shadow:6px 6px 0 var(--color-shadow)}.mobile-nav a{display:block;padding:8px;text-decoration:none;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:var(--color-accent);color:var(--color-accent-ink);border:var(--rule-bold) solid var(--color-ink);font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:4px 4px 0 var(--color-ink);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn:hover{box-shadow:6px 6px 0 var(--color-ink)}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--color-ink)}.btn.secondary{background:var(--color-paper)}.hero .btn.secondary{background:var(--color-clear);color:var(--color-paper);border-color:var(--color-paper);box-shadow:4px 4px 0 var(--color-shadow)}.btn:disabled,.btn[aria-disabled="true"],button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn[data-state="loading"]{opacity:.65;cursor:progress}.btn[data-state="error"]{outline:2px solid var(--color-error)}.btn[data-state="success"]{outline:2px solid var(--color-success)}.paper{max-width:1120px;margin:var(--space-xl) auto var(--space-3xl);background:var(--color-paper);border:var(--rule-bold) solid var(--color-ink);box-shadow:12px 12px 0 var(--color-ink)}.hero{position:relative;min-height:690px;height:calc(100svh - 110px);max-height:850px;display:flex;align-items:flex-end;isolation:isolate;color:var(--color-paper);background:var(--color-ink)}.hero>img.scene{position:absolute;width:100%;height:100%;object-fit:cover;object-position:60% center;z-index:-2}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--color-clear) 4%,var(--color-shadow) 40%,var(--color-scrim) 95%);z-index:-1}.hero-copy{width:100%;padding:var(--space-2xl)}.game-logo[data-game-logo]{width:266px;height:auto;max-width:90%;display:block;margin-bottom:var(--space-md)}.hero h1{margin-bottom:var(--space-md)}.hero h1 small{display:block;font:1.2rem var(--font-body);margin-top:var(--space-sm);color:var(--color-on-wine)}.hero-lead{font-size:1.15rem;max-width:40rem}.tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.tags span{border:var(--rule-thin) solid var(--color-rule);padding:2px 10px;font-size:var(--text-small)}.hero-ctas{display:flex;gap:var(--space-md);flex-wrap:wrap;margin:var(--space-lg) 0}.notice{font-size:var(--text-small);line-height:1.6}.section{padding:var(--space-3xl) var(--space-2xl);scroll-margin-top:100px}.info{padding:var(--space-xl) var(--space-2xl);border-bottom:var(--rule-bold) solid var(--color-ink)}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);margin:0}.facts dt{font-size:var(--text-small);color:var(--color-muted)}.facts dd{margin:0;font-weight:700}.lead{font-size:1.15rem;max-width:45rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-lg)}.section-head h2{margin:0}.section-head a{font-size:var(--text-small);white-space:nowrap}.feature-shot{border:var(--rule-thin) solid var(--color-ink);background:var(--color-ink)}.feature-shot img{width:100%;aspect-ratio:16/9;object-fit:contain}.feature-shot figcaption{padding:var(--space-md);color:var(--color-paper)}.filmstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-lg)}.filmstrip a{display:block;border:2px solid var(--color-ink);transition:transform var(--dur-fast) var(--ease-out)}.filmstrip a:hover{transform:translateY(-3px)}.filmstrip img{width:100%;aspect-ratio:16/9;object-fit:contain}.filmstrip figcaption{font-size:.8rem;line-height:1.5}.combat-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.combat-notes article{border-top:var(--rule-bold) solid var(--color-wine);padding-top:var(--space-lg)}.combat-notes h3{font-family:var(--font-body);font-size:1.15rem}.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-xl);align-items:start}.split .character{max-height:520px;margin:auto;object-fit:contain}.quote-note{border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);padding:var(--space-md) var(--space-lg);background:var(--color-faint);margin:var(--space-xl) 0}.cast-note{margin-top:var(--space-xl)}.cast-note h3 small{display:block;font-family:var(--font-body);font-size:.8rem;color:var(--color-muted);margin-top:8px}.dark-section{background:var(--color-ink);color:var(--color-paper)}.dark-section .notice{color:var(--color-on-wine)}.dark-section a:not(.btn){color:var(--color-accent)}.reader{max-width:740px}.timeline{list-style:none;padding:0}.timeline li{display:grid;grid-template-columns:135px minmax(0,1fr);gap:var(--space-lg);padding:var(--space-lg) 0;border-top:var(--rule-thin) solid var(--color-rule)}.timeline time{font-family:var(--font-mono);font-size:var(--text-small)}details.faq{border-top:var(--rule-thin) solid var(--color-rule);padding:var(--space-md) 0}details.faq:last-child{border-bottom:var(--rule-thin) solid var(--color-rule)}summary{cursor:pointer;font-weight:700}details.faq summary{padding:var(--space-sm) 0}details.faq>div{padding:var(--space-md) 0 var(--space-sm);max-width:50rem}.cta-band{padding:var(--space-2xl);background:var(--color-ink);color:var(--color-paper);border-top:var(--rule-bold) solid var(--color-accent)}.cta-band .btn{background:var(--color-accent);color:var(--color-accent-ink);box-shadow:4px 4px 0 var(--color-wine)}.footer{color:var(--color-paper);max-width:1120px;margin:auto;padding:0 var(--space-lg) var(--space-3xl)}.footer-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:var(--rule-thin) solid var(--color-on-wine)}.footer-brand{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.footer-brand img{width:48px;height:48px}.footer h2{font-family:var(--font-body);font-size:1rem;margin:0 0 var(--space-md)}.footer a{white-space:nowrap;font-size:var(--text-small)}.footer-links{display:flex;flex-wrap:wrap;gap:8px 24px}.legal{font-size:.8rem;margin-top:var(--space-xl);color:var(--color-on-wine)}.mobile-cta{display:none}.page-head{padding:var(--space-2xl);border-bottom:var(--rule-bold) solid var(--color-ink)}.breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:.8rem;color:var(--color-muted);margin-bottom:var(--space-xl)}.breadcrumb a,.breadcrumb span{white-space:nowrap}.page-head h1{font-size:clamp(2rem,4vw,3.25rem)}.page-head .lead{margin:0}.contents{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);padding:var(--space-lg) 0}.contents a{white-space:nowrap}.edition{border:var(--rule-bold) solid var(--color-ink);padding:var(--space-xl);margin-top:var(--space-lg)}.edition h3{font-family:var(--font-body)}.edition .facts{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:var(--space-lg)}.specs{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;table-layout:fixed}.specs th,.specs td{padding:var(--space-md);text-align:left;border-bottom:var(--rule-thin) solid var(--color-rule);vertical-align:top;overflow-wrap:anywhere}.specs th{font-weight:700}.specs caption{font-weight:700;text-align:left}.specs th:first-child{width:26%}.steps li{padding:var(--space-sm) 0}.steps strong{display:block}.toc-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.toc-cards article{border:var(--rule-thin) solid var(--color-rule);padding:var(--space-lg)}.toc-cards h2{font:700 1.05rem var(--font-body)}.toc-cards a{white-space:nowrap}.guide-section{padding-top:0}.guide-section h2{padding-top:100px;margin-top:-36px}.key{font-family:var(--font-mono);border:var(--rule-thin) solid var(--color-ink);background:var(--color-faint);padding:2px 8px;white-space:nowrap}.filters{display:none;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xl)}.js .filters{display:flex}.filters button{background:var(--color-paper);border:var(--rule-thin) solid var(--color-ink);padding:8px 16px;white-space:nowrap}.filters button[aria-pressed="true"]{background:var(--color-ink);color:var(--color-paper)}.filters button:hover{box-shadow:2px 2px 0 var(--color-wine)}.filters button:active{transform:translateY(1px)}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg)}.gallery-grid figure[hidden]{display:none}.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--color-ink);border:var(--rule-thin) solid var(--color-ink)}.gallery-grid .portrait img{aspect-ratio:404/715;background:var(--color-paper)}.gallery-grid figcaption{line-height:1.6}.gallery-status{font-size:var(--text-small);color:var(--color-muted);margin-bottom:var(--space-lg)}.gallery-grid a{display:block}.article-nav{border-top:var(--rule-thin) solid var(--color-rule);padding-top:var(--space-xl);margin-top:var(--space-xl)}.article-nav a{display:inline-block;white-space:nowrap}.lightbox{background:var(--color-ink);color:var(--color-paper);border:var(--rule-thin) solid var(--color-accent);padding:var(--space-md);width:min(96vw,1320px);max-width:96vw;max-height:94svh}.lightbox::backdrop{background:var(--color-veil)}.dialog-tools{display:flex;justify-content:space-between;gap:var(--space-sm);align-items:center}.dialog-tools button,.lightbox-controls button{color:var(--color-paper);background:var(--color-ink);border:var(--rule-thin) solid var(--color-rule);padding:8px 12px;white-space:nowrap}.lightbox button:hover{background:var(--color-wine)}.lightbox button:active{transform:translateY(1px)}.lightbox img{margin:var(--space-md) auto;max-height:65svh;width:100%;object-fit:contain}.lightbox-controls{display:flex;gap:var(--space-md);justify-content:center}.lightbox [data-caption]{text-align:center;font-size:var(--text-small)}.lightbox[data-state="loading"] img{opacity:.35}.lightbox[data-state="error"]{border-color:var(--color-error)}.lightbox[data-state="success"] [data-status]{color:var(--color-on-wine)}.lightbox [data-status]{font-size:var(--text-small);text-align:center}.no-page{min-height:45svh}.fallback{font-size:.9rem}
@media(max-width:1190px){.paper{margin:var(--space-xl) var(--space-lg) var(--space-2xl)}.desktop-nav{gap:var(--space-md)}}
@media(max-width:850px){.desktop-nav{display:none}.mobile-nav{display:block}.hero{min-height:650px;height:calc(100svh - 85px)}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}.section{padding:var(--space-2xl) var(--space-xl)}.hero-copy,.info,.page-head,.cta-band{padding:var(--space-xl)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toc-cards{grid-template-columns:minmax(0,1fr)}.mobile-cta{position:fixed;bottom:0;left:0;right:0;padding:10px 16px max(10px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--color-ink);color:var(--color-paper);border-top:2px solid var(--color-accent);z-index:25}.mobile-cta span{font-size:.8rem;white-space:nowrap}.mobile-cta .btn{font-size:.8rem;padding:9px 14px;box-shadow:none}.footer{padding-bottom:120px}.paper{box-shadow:7px 7px 0 var(--color-ink)}}
@media(max-width:600px){.paper{margin:0 0 var(--space-xl);border-left:0;border-right:0;box-shadow:none}.mast-inner{padding:12px 16px}.hero{min-height:590px;height:auto}.hero>img.scene{object-position:60% top}.hero-copy{padding:180px var(--space-lg) var(--space-xl)}.hero h1{font-size:2.6rem}.hero-lead{font-size:1rem}.hero .game-logo{width:230px}.hero-ctas{gap:var(--space-md)}.hero-ctas .btn{padding:10px 16px;font-size:.9rem}.section,.info,.page-head,.cta-band{padding:var(--space-xl) var(--space-lg)}.section-head{display:block}.section-head h2{margin-bottom:var(--space-md)}.combat-notes,.split{grid-template-columns:minmax(0,1fr)}.combat-notes{gap:var(--space-md)}.split .character{max-height:420px}.filmstrip{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.timeline li{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}.footer-top{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.edition{padding:var(--space-lg)}.specs th,.specs td{padding:12px 6px;font-size:.85rem}.specs th:first-child{width:22%}.facts{gap:16px 12px}.guide-section{padding-top:0}.lightbox img{max-height:60svh}.gallery-grid{gap:var(--space-md)}.brand{font-size:.9rem}.mobile-cta span{font-size:.75rem}.dialog-tools button{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:0ms!important}.btn:hover,.filmstrip a:hover{transform:none}}
@media print{.masthead,.mobile-cta,.lightbox,.filters{display:none}body{background:var(--color-paper)}.paper{margin:0;box-shadow:none;max-width:none}.hero{height:auto;min-height:450px}}

/* Explicit interaction state vocabulary, only activated by real component state. */
button[data-state="loading"],a[data-state="loading"]{opacity:.65;cursor:progress}button[data-state="error"],a[data-state="error"]{outline:2px solid var(--color-error)}button[data-state="success"],a[data-state="success"]{outline:2px solid var(--color-success)}

.dark-section .cast-note h3 small{color:var(--color-on-wine)}.hero-ctas,.footer-links,.contents{align-items:center}.hero-copy{padding-top:32px;padding-bottom:48px}.hero-lead,.reader{max-width:65ch}
