/* Hallmark · macrostructure: Photographic / war chronicle · tone: restrained tactical journal · anchor hue: wine · nav: N6 · footer: Ft4 · user-locked midnight palette */
/* Hallmark · pre-emit critique: P5 H4 E4 S5 R5 V4 */
@import url('tokens.css');
*{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:124px}body{margin:0;overflow-x:clip;background:var(--color-page);color:var(--color-ink);font-family:var(--font-body);line-height:1.8;padding-bottom:var(--space-3xl)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:4px}h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.22;overflow-wrap:anywhere;min-width:0}h2{font-size:clamp(1.65rem,3vw,2.6rem);margin:0 0 var(--space-lg)}h3{font-size:var(--text-xl)}p{margin:0 0 var(--space-md)}p:last-child{margin-bottom:0}button{font:inherit;cursor:pointer}a,button,summary{touch-action:manipulation}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.dark :focus-visible,.mast :focus-visible,.sticky :focus-visible{outline-color:var(--color-paper)}[hidden]{display:none!important}.skip{position:fixed;top:-120px;left:var(--space-md);z-index:100;background:var(--color-paper);padding:var(--space-sm)}.skip:focus{top:var(--space-sm)}.sheet{max-width:1100px;margin:0 auto;background:var(--color-paper);box-shadow:12px 12px 0 var(--color-shadow)}
.mast{position:sticky;top:0;z-index:30;background:var(--color-dark);color:var(--color-paper);padding:var(--space-xs) var(--space-md);border-bottom:4px double var(--color-accent);text-align:center}.mast-name{font-family:var(--font-display);font-size:1.35rem;text-decoration:none;display:inline-block;line-height:1.3;font-weight:700;letter-spacing:.1em}.mast-name small{font-family:var(--font-body);font-weight:400;font-size:.68rem;letter-spacing:.15em;margin-left:var(--space-sm);color:var(--color-light-muted)}.mast nav{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);flex-wrap:wrap}.mast nav a{font-size:.88rem;line-height:1;min-height:44px;display:flex;align-items:center;text-decoration:none;white-space:nowrap}.mast nav a[aria-current]{color:var(--color-accent)}.mast .nav-cta{color:var(--color-accent);border-bottom:1px solid var(--color-accent)}
.hero{position:relative;min-height:610px;isolation:isolate;background:var(--color-dark);color:var(--color-paper);display:flex;align-items:end;padding:var(--space-xl) var(--space-2xl) var(--space-3xl)}.hero-art{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--color-hero-top) 0%,var(--color-hero-mid) 28%,var(--color-overlay) 64%,var(--color-dark) 100%)}.hero-copy{max-width:690px}.hero .game-logo{position:absolute;top:var(--space-xl);right:var(--space-xl);left:auto;width:160px;height:auto;box-shadow:4px 4px 0 var(--color-shadow);transform:rotate(-2deg)}.hero h1{font-size:var(--text-display);margin:0 0 var(--space-lg);line-height:1.04}.hero h1 span{display:block;font-family:var(--font-body);font-size:.85rem;letter-spacing:.12em;color:var(--color-light-muted);margin-top:var(--space-md);line-height:1.5}.hero .lede{font-size:1.05rem;max-width:42em;color:var(--color-paper);margin-bottom:var(--space-lg)}.tags{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-md)}.tags span{font-size:var(--text-sm);border:1px solid var(--color-light-muted);padding:0 var(--space-xs);color:var(--color-paper)}.actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;background:var(--color-accent);color:var(--color-accent-ink);padding:var(--space-sm) var(--space-lg);font-weight:700;line-height:1.2;text-decoration:none;border:1px solid var(--color-accent-ink);box-shadow:4px 4px 0 var(--color-dark);white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out)}.btn.secondary{background:var(--color-clear);color:inherit;border-color:currentColor;box-shadow:none}.btn:active,button:active{transform:translateY(2px)}.btn:disabled,button:disabled,[aria-disabled=true]{opacity:.5;cursor:not-allowed}.fine{font-size:var(--text-sm);color:var(--color-muted)}.dark{background:var(--color-dark);color:var(--color-paper)}.dark .fine{color:var(--color-light-muted)}.hero .fine{color:var(--color-light-muted);margin-top:var(--space-md)}.section{padding:var(--space-2xl)}.section>p{max-width:65ch}.info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);margin:0;padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--color-rule);background:var(--color-paper-2)}.info dt{font-size:var(--text-sm);color:var(--color-muted)}.info dd{margin:var(--space-2xs) 0 0;font-weight:600;font-size:.93rem;line-height:1.6}.story{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--space-xl);align-items:start}.story aside{border:1px solid var(--color-rule);padding:var(--space-md);transform:rotate(1deg);background:var(--color-paper-2)}.story aside p{font-size:.9rem;margin-top:var(--space-md)}.editor-note{border-top:1px solid var(--color-rule);margin-top:var(--space-lg);padding-top:var(--space-md)}.photo-band{padding:0}.photo-band figure{margin:0}.photo-band img{width:100%}.photo-band figcaption{padding:var(--space-sm) var(--space-xl);background:var(--color-dark);color:var(--color-light-muted);font-size:var(--text-sm)}.mechanics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.mechanics article{border-top:2px solid var(--color-ink);padding-top:var(--space-sm)}.mechanics h3{margin:var(--space-sm) 0 var(--space-md)}.mechanics p{font-size:.96rem}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-bottom:var(--space-lg)}.section-head h2{margin:0}.section-head a{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.media{margin:0}.media a{display:block}.media img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--color-dark)}figcaption{font-size:var(--text-sm);padding-top:var(--space-xs);color:var(--color-muted)}.thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);margin-top:var(--space-lg)}.thumbs a{text-decoration:none}.thumbs img{aspect-ratio:16/9;object-fit:contain;width:100%}.thumbs span{font-size:.8rem;display:block;margin-top:var(--space-xs)}.character-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.character-list article{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--space-md);border-bottom:1px solid var(--color-rule);padding-bottom:var(--space-lg)}.character-list img{width:100px;height:100px;object-fit:cover}.character-list h3{margin:0 0 var(--space-sm)}.character-list p{font-size:.9rem}.fit p{margin-bottom:var(--space-lg)}details{border-top:1px solid var(--color-rule);padding:var(--space-sm) 0}summary{font-weight:600;cursor:pointer;min-height:44px;padding:var(--space-xs) var(--space-2xs)}details p,details ul,details ol{margin:var(--space-md) var(--space-2xs)}details[open] summary{color:var(--color-page)}.dark details[open] summary{color:var(--color-accent)}.final{border-top:1px solid var(--color-rule);text-align:left;background:var(--color-paper-2)}.final h2{max-width:650px}.final .actions{margin-top:var(--space-lg)}.foot{padding:var(--space-xl) var(--space-2xl);background:var(--color-dark);color:var(--color-paper);font-size:.8rem}.foot .brand{font-family:var(--font-display);font-size:1.2rem;font-weight:700}.foot-links{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap;margin:var(--space-sm) 0}.foot-links a{min-height:44px;display:flex;align-items:center;white-space:nowrap}.foot p{max-width:85ch}.foot .copyright{color:var(--color-light-muted);margin-top:var(--space-lg)}.sticky{position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--color-dark);color:var(--color-paper);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--color-accent)}.sticky>div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);max-width:1010px;margin:auto}.sticky p{line-height:1.2;margin:0}.sticky small{font-size:.75rem;color:var(--color-light-muted);display:block;margin-top:var(--space-xs)}.sticky .btn{min-height:44px;font-size:.85rem;padding:var(--space-sm) var(--space-md)}
.breadcrumb{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap;font-size:.83rem;color:var(--color-muted);margin-bottom:var(--space-xl)}.breadcrumb a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.page-head{padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--color-rule);background:var(--color-paper-2)}.page-head h1{font-size:clamp(2rem,4.6vw,3.25rem);margin:0 0 var(--space-lg)}.page-head p{max-width:65ch}.download-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-xl);padding:var(--space-xl);border:1px solid var(--color-accent)}.download-card img{width:100%;align-self:center}.download-card h2{margin-bottom:var(--space-md)}.specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.specs article{border-top:2px solid var(--color-ink)}.specs dl{margin:0}.specs dl>div{display:grid;grid-template-columns:5em minmax(0,1fr);gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-rule);font-size:.88rem}.specs dt{font-weight:700}.specs dd{margin:0}.step-list{padding-left:var(--space-lg);max-width:65ch}.step-list li{padding-left:var(--space-sm);margin-bottom:var(--space-lg)}.step-list strong{display:block}.toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);margin:var(--space-lg) 0 0}.toc a{display:block;border:1px solid var(--color-rule);padding:var(--space-md);text-decoration:none}.toc a strong{display:block}.toc a span{display:block;font-size:.85rem;color:var(--color-muted);margin-top:var(--space-xs)}.chapter{padding-top:var(--space-xl);margin-top:var(--space-xl);border-top:1px solid var(--color-rule);scroll-margin-top:120px}.chapter h2{font-size:2rem}.chapter p,.chapter ol,.chapter ul{max-width:65ch}.callout{background:var(--color-paper-2);padding:var(--space-lg);margin:var(--space-lg) 0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl) var(--space-md)}.filters{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-xl)}.filters button,.lightbox button{min-height:44px;min-width:44px;padding:var(--space-xs) var(--space-md);border:1px solid currentColor;background:var(--color-clear);color:inherit}.filters button[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper)}.lightbox{padding:var(--space-lg);border:1px solid var(--color-accent);max-width:min(96vw,1480px);width:96vw;max-height:94dvh;background:var(--color-dark);color:var(--color-paper)}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.lightbox-top p{margin:0}.lightbox figure{margin:var(--space-md) 0}.lightbox img{width:100%;object-fit:contain;max-height:65dvh;aspect-ratio:16/9}.lightbox figcaption{color:var(--color-light-muted)}.lightbox [data-status]{font-size:.8rem;min-height:1.8em}.lightbox[data-state=loading] [data-status]{color:var(--color-accent)}.lightbox[data-state=error] [data-status]{color:var(--color-error)}.lightbox[data-state=success] [data-status]{color:var(--color-success)}.btn[data-state=loading]{opacity:.7}.btn[data-state=error]{outline:2px solid var(--color-error)}.btn[data-state=success]{outline:2px solid var(--color-success)}
@media(hover:hover){.btn:hover{transform:translateY(-2px)}.mast nav a:hover,.foot-links a:hover{color:var(--color-accent)}.media a:hover,.thumbs a:hover{opacity:.87}.toc a:hover{background:var(--color-paper-2)}summary:hover{background:var(--color-paper-2)}.dark summary:hover{background:var(--color-clear)}}
@media(max-width:800px){.hero{padding:var(--space-xl) var(--space-xl) var(--space-2xl);min-height:580px}.section{padding:var(--space-xl)}.info{padding:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}.story{grid-template-columns:minmax(0,1fr)}.story aside{max-width:460px;transform:none}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot,.page-head{padding:var(--space-xl)}.character-list{grid-template-columns:minmax(0,1fr)}.section-head{display:block}.section-head a{margin-top:var(--space-sm)}.hero h1{font-size:3.5rem}}
@media(max-width:520px){html{scroll-padding-top:112px}.mast{padding:var(--space-xs) var(--space-sm)}.mast-name{font-size:1.12rem}.mast-name small{display:none}.mast nav{gap:var(--space-sm)}.mast nav a{font-size:.75rem;min-height:44px}.mast .nav-cta{display:none}.hero{min-height:600px;padding:var(--space-lg) var(--space-lg) var(--space-xl);align-items:end}.hero-art{height:300px;object-fit:cover}.hero:after{background:linear-gradient(180deg,var(--color-hero-top),var(--color-hero-mid) 24%,var(--color-dark) 49%)}.hero .game-logo{top:var(--space-lg);left:var(--space-lg);right:auto;width:130px}.hero h1{font-size:2.9rem}.hero .lede{font-size:.94rem}.hero .fine{font-size:.75rem}.tags span{font-size:.74rem}.actions{gap:var(--space-sm)}.btn{font-size:.88rem;padding:var(--space-sm) var(--space-md)}.section,.foot,.page-head{padding:var(--space-xl) var(--space-lg)}.info{padding:var(--space-lg);gap:var(--space-md)}.info dd{font-size:.83rem}.mechanics,.specs,.download-card,.toc{grid-template-columns:minmax(0,1fr)}.thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.gallery-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.download-card{padding:var(--space-lg)}.sticky{padding:var(--space-sm)}.sticky strong{font-size:.85rem}.sticky small{font-size:.67rem}.sticky .btn{font-size:.79rem;padding:var(--space-sm)}.character-list article{grid-template-columns:80px minmax(0,1fr)}.character-list img{width:80px;height:80px}.page-head h1{font-size:clamp(1.7rem,6.8vw,2rem)}.chapter h2{font-size:1.55rem}.lightbox{padding:var(--space-sm)}.lightbox-top p{font-size:.8rem}.lightbox button{padding:var(--space-xs);font-size:.8rem}.photo-band figcaption{padding:var(--space-sm) var(--space-lg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.btn:hover,.btn:active,button:active{transform:none}}
