/* Hallmark · macrostructure: Photographic / midnight match folio · tone: tactile indie luxury · anchor hue: warm gold
 * theme: custom user-locked midnight · paper: oklch(95.6% .013 80) · accent: oklch(76.6% .142 90)
 * display: Songti SC roman · body: PingFang SC · axes: dark scene / classical Chinese serif / warm gold
 * nav: N12 retracting update banner · footer: Ft6 letter close · context: user-provided
 */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4 */
@import url('tokens.css');
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{background:var(--color-wine);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.8}h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.3;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display);margin:.8rem 0}h2{font-size:clamp(1.65rem,3vw,2.45rem);margin:0 0 var(--space-lg)}h3{font-size:var(--text-xl);margin:0 0 var(--space-sm)}p{margin:0 0 var(--space-md)}a{color:inherit;text-underline-offset:4px}a,button,summary{touch-action:manipulation}button{font:inherit;cursor:pointer}button,a{transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}img{display:block;max-width:100%;height:auto}figure{margin:0}figcaption{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-sm)}[hidden]{display:none!important}.skip{position:fixed;top:-100px;z-index:1000;background:var(--color-paper);padding:var(--space-md)}.skip:focus{top:0}.site-header{position:sticky;top:0;z-index:30;background:var(--color-ground);color:var(--color-paper)}.announcement{padding:var(--space-xs) var(--space-md);text-align:center;font-size:var(--text-sm);background:var(--color-panel);color:var(--color-ink)}.site-header.compact{transform:translateY(calc(-1 * var(--announcement-height,33px)))}.nav-row{max-width:1152px;margin:auto;min-height:68px;display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg)}.brand{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;white-space:nowrap;font-size:var(--text-sm);font-weight:700}.brand img{width:36px;height:36px}.nav-links{display:flex;gap:var(--space-lg);margin-left:auto}.nav-links a,.footer-links a,.related a,.breadcrumb a,.toc a{white-space:nowrap}.nav-links a{display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:.9rem;color:var(--color-light-muted)}.nav-links a[aria-current]{color:var(--color-accent)}.mobile-nav{display:none}.btn{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-md);padding:.65rem 1.2rem;min-height:48px;background:var(--color-accent);color:var(--color-ground);border:1px solid var(--color-ground);box-shadow:4px 4px 0 var(--color-ground);font-weight:700;text-decoration:none;white-space:nowrap;line-height:1.3;font-size:.9375rem}.btn.secondary{background:var(--color-transparent);color:inherit;box-shadow:none;border-color:var(--color-rule)}.btn:active,button:active{transform:translate(1px,2px);box-shadow:none}.btn[aria-disabled=true],button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn[data-state=loading],button[data-state=loading]{cursor:progress}.btn[data-state=error],button[data-state=error]{outline:2px solid var(--color-error)}.btn[data-state=success],button[data-state=success]{outline:2px solid var(--color-success)}.hero{position:relative;min-height:690px;height:calc(100svh - 101px);max-height:860px;background:var(--color-ground);color:var(--color-paper);isolation:isolate}.hero-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--color-hero-veil),var(--color-veil)),linear-gradient(0deg,var(--color-ground),var(--color-transparent) 55%);z-index:-1}.hero-inner{width:min(1152px,100%);height:100%;margin:auto;padding:var(--space-3xl) var(--space-lg) var(--space-2xl);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.game-logo{width:232px!important;height:auto;max-height:none!important;margin-bottom:var(--space-lg);border:1px solid var(--color-rule);transform:rotate(-2deg)}.eyebrow{font-size:var(--text-sm);letter-spacing:.12em;color:var(--color-accent);margin:0 0 var(--space-sm)}.hero h1{max-width:650px;margin:var(--space-md) 0}.original{display:block;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;margin-top:var(--space-md);font-weight:400;color:var(--color-light-muted);letter-spacing:0}.lede{max-width:42ch;font-size:var(--text-lg);line-height:1.75}.tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-md) 0}.tags span{border:1px solid var(--color-rule);padding:2px 10px;font-size:var(--text-sm)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-lg)}.hero-note{font-size:var(--text-sm);color:var(--color-light-muted);margin-top:var(--space-lg)}.paper{width:min(1024px,calc(100% - 64px));margin:0 auto;background:var(--color-paper);box-shadow:12px 12px 0 var(--color-shadow)}.section{padding:var(--space-2xl) clamp(1.25rem,5vw,4rem);scroll-margin-top:7rem}.section+.section{border-top:1px solid var(--color-rule)}.section p{max-width:65ch}.section-label{font-size:var(--text-sm);color:var(--color-wine);margin-bottom:var(--space-sm);letter-spacing:.08em}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;gap:var(--space-lg)}.facts div{border-top:1px solid var(--color-rule);padding-top:var(--space-sm)}dt{font-size:var(--text-sm);color:var(--color-muted)}dd{margin:var(--space-xs) 0 0;font-weight:700;font-size:.9375rem}.split{display:grid;grid-template-columns:2fr 3fr;gap:var(--space-2xl);align-items:start}.split>*{min-width:0}.margin-note{border-left:3px solid var(--color-accent);padding-left:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}.feature-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-xl);align-items:center;margin-top:var(--space-xl)}.feature-row figure{background:var(--color-ground)}.feature-row figure figcaption{padding:0 var(--space-md) var(--space-md);color:var(--color-light-muted)}.feature-row:nth-child(odd){direction:rtl}.feature-row>*{direction:ltr}.frame{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--color-ground)}.gallery-main{background:var(--color-ground);padding:var(--space-sm)}.gallery-main img{max-width:720px;margin:auto}.gallery-main figcaption{padding:0 var(--space-sm) var(--space-sm);color:var(--color-light-muted)}.thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-md)}.thumbs a{display:block;padding:3px;border:2px solid var(--color-transparent)}.thumbs a.selected{border-color:var(--color-wine)}.thumbs span{display:block;font-size:var(--text-sm);margin-top:var(--space-xs)}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.gallery-grid a{display:block;border:1px solid var(--color-rule)}.filter-row{display:none;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-lg) 0}.js .filter-row{display:flex}.filter-row button{border:1px solid var(--color-rule);padding:.4rem .85rem;background:var(--color-transparent);min-height:44px}.filter-row button[aria-pressed=true]{background:var(--color-ground);color:var(--color-paper);border-color:var(--color-ground)}.gallery-count{font-size:var(--text-sm);color:var(--color-muted)}.chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);margin:var(--space-xl) 0}.chapter-link{border-block:1px solid var(--color-rule);padding:var(--space-lg) 0;text-decoration:none;min-width:0}.chapter-link strong{display:block;font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-sm)}.chapter-link span{display:block;font-size:var(--text-sm);color:var(--color-muted)}.toc{display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md) 0;border-block:1px solid var(--color-rule);font-size:var(--text-sm)}.toc a{min-height:44px;display:flex;align-items:center}.subhead{background:var(--color-ground);color:var(--color-paper);padding:var(--space-2xl) max(1.5rem,calc((100% - 896px)/2));}.subhead h1{font-size:clamp(1.8rem,4vw,3.1rem);max-width:22ch}.subhead .summary{color:var(--color-light-muted);max-width:62ch}.breadcrumb{font-size:var(--text-sm);display:flex;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg);color:var(--color-light-muted)}.spec-table{border-collapse:collapse;width:100%;font-size:.9375rem;text-align:left;margin:var(--space-lg) 0}.spec-table th,.spec-table td{border-bottom:1px solid var(--color-rule);padding:.85rem .75rem;vertical-align:top}.spec-table th{font-weight:700}.spec-table thead{background:var(--color-panel)}.spec-table caption{text-align:left;font-weight:700;margin-bottom:var(--space-sm)}ol,ul{padding-left:1.35rem;margin:var(--space-lg) 0}li{margin:var(--space-sm) 0}.notice{background:var(--color-panel);border-left:3px solid var(--color-wine);padding:var(--space-lg);margin:var(--space-xl) 0}.notice p:last-child{margin:0}details{border-top:1px solid var(--color-rule);padding:var(--space-sm) 0}summary{font-weight:700;cursor:pointer;min-height:48px;padding:var(--space-sm) 0;line-height:1.6}details p,details ul{margin:var(--space-sm) 0 var(--space-lg);padding-right:var(--space-sm)}.update-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-xl);padding:var(--space-lg) 0;border-top:1px solid var(--color-rule)}.update-row time{font-size:var(--text-sm);color:var(--color-muted)}.update-row strong{display:block}.final{background:var(--color-ground);color:var(--color-paper);padding:var(--space-2xl);margin:var(--space-xl) 0 0}.final p{color:var(--color-light-muted)}.footer{width:min(1024px,calc(100% - 64px));margin:0 auto;padding:var(--space-2xl) clamp(1.25rem,5vw,4rem) var(--space-3xl);background:var(--color-ground);color:var(--color-light-muted);font-size:var(--text-sm)}.footer-sign{font-family:var(--font-display);color:var(--color-paper);font-size:var(--text-xl)}.footer-brand{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.footer-brand img{width:110px}.footer-links,.related{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);margin:var(--space-lg) 0}.footer-links a,.related a{display:inline-flex;align-items:center;min-height:44px}.legal{border-top:1px solid var(--color-muted);padding-top:var(--space-lg);margin-top:var(--space-xl)}.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--color-ground);color:var(--color-paper);border-top:1px solid var(--color-accent);padding:var(--space-sm) var(--space-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.sticky-cta small{display:block;font-size:var(--text-sm);color:var(--color-light-muted)}.sticky-cta .btn{min-height:44px;box-shadow:none}.lightbox{width:min(1100px,calc(100% - 24px));max-height:calc(100svh - 24px);padding:var(--space-lg);background:var(--color-ground);color:var(--color-paper);border:1px solid var(--color-accent);overflow:auto}.lightbox::backdrop{background:var(--color-backdrop)}.lightbox-head,.lightbox-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.lightbox-head p{margin:0;font-size:var(--text-sm)}.lightbox-image{width:100%;max-height:68svh;object-fit:contain;margin:var(--space-lg) 0}.icon-btn{background:var(--color-ground);color:var(--color-paper);border:1px solid var(--color-rule);min-height:44px;padding:.4rem .8rem;white-space:nowrap}.lightbox-status{font-size:var(--text-sm);margin:0;text-align:center}.lightbox[data-state=loading] .lightbox-status{color:var(--color-accent)}.lightbox[data-state=error] .lightbox-status{color:var(--color-paper);border-bottom:2px solid var(--color-error)}.lightbox[data-state=success] .lightbox-image{outline:1px solid var(--color-success)}body:has(dialog[open]){overflow-y:hidden}body{padding-bottom:76px}.small{font-size:var(--text-sm);color:var(--color-muted)}
@media(hover:hover){.btn:hover{background:var(--color-panel)}.btn.secondary:hover{color:var(--color-accent);background:var(--color-ground)}.nav-links a:hover,.footer a:hover{color:var(--color-accent)}.chapter-link:hover{color:var(--color-wine)}.thumbs a:hover{border-color:var(--color-accent)}.filter-row button:hover{background:var(--color-panel);color:var(--color-ink)}.icon-btn:hover{background:var(--color-wine)}}
@media(min-width:961px){.sticky-cta{justify-content:center;gap:var(--space-2xl)}}
@media(max-width:960px){.hero{min-height:650px;height:auto}.hero-inner{padding-block:var(--space-2xl)}.paper,.footer{width:calc(100% - 40px)}.hero-scene{object-position:65% center}.hero:after{background:linear-gradient(90deg,var(--color-hero-veil),var(--color-shadow))}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.nav-row{padding-inline:var(--space-md);gap:var(--space-md)}.nav-links{gap:var(--space-md)}}
@media(max-width:640px){.announcement{font-size:.72rem;padding:5px var(--space-sm)}.nav-row{min-height:60px;flex-wrap:wrap;justify-content:space-between}.nav-links,.header-cta{display:none}.mobile-nav{display:block}.mobile-nav summary{min-height:44px;padding:8px}.mobile-nav[open]{width:100%}.mobile-nav[open] summary{border-bottom:1px solid var(--color-muted)}.mobile-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);padding-block:var(--space-sm)}.mobile-nav nav a{min-height:44px;display:flex;align-items:center;white-space:nowrap;text-decoration:none}.brand img{width:30px;height:30px}.hero{min-height:0}.hero-inner{padding:var(--space-xl) var(--space-lg)}.hero h1{font-size:1.95rem;max-width:none}.hero .game-logo{width:174px!important;max-width:100%!important;margin-bottom:var(--space-md)}.hero .lede{font-size:1rem;max-width:31ch}.hero-scene{object-position:66% center}.hero:after{background:linear-gradient(0deg,var(--color-ground),var(--color-hero-veil) 50%,var(--color-shadow))}.actions{gap:var(--space-md);margin-top:var(--space-md)}.actions .btn{width:100%}.hero-note{margin-top:var(--space-md)}.original{font-size:var(--text-sm)}.paper,.footer{width:100%;box-shadow:none}.section{padding:var(--space-xl) var(--space-lg)}.feature-row{grid-template-columns:minmax(0,1fr);gap:var(--space-lg);direction:ltr!important}.feature-row figure{order:2}.gallery-grid{grid-template-columns:minmax(0,1fr)}.thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}.chapters{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}.subhead{padding:var(--space-xl) var(--space-lg)}.subhead h1{font-size:1.95rem}.update-row{grid-template-columns:minmax(0,1fr);gap:var(--space-sm)}.spec-table{font-size:.82rem}.spec-table th,.spec-table td{padding:.65rem .4rem}.footer{padding:var(--space-xl) var(--space-lg) var(--space-2xl)}.sticky-cta{padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.sticky-cta>div{font-size:.8rem}.sticky-cta .btn{font-size:.85rem;padding:.65rem .7rem;gap:.3rem}.sticky-cta small{font-size:.7rem}.final{padding:var(--space-lg);margin-top:var(--space-lg)}.final .btn{width:100%}.lightbox{padding:var(--space-md)}.lightbox-head{align-items:flex-start}.lightbox-head p{font-size:.75rem}.lightbox-nav{flex-wrap:wrap}.lightbox-status{order:3;width:100%}.icon-btn{font-size:.85rem}.breadcrumb{font-size:.75rem}body{padding-bottom:72px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.hero :focus-visible,.site-header :focus-visible,.footer :focus-visible,.sticky-cta :focus-visible,.lightbox :focus-visible{outline-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-ground)}
