/* Hallmark · macrostructure: bespoke cinematic game shelf · tone: tactical fantasy storefront · anchor hue: warning yellow
 * custom: coal / gunmetal / yellow · paper oklch(18.6% .006 250) · accent oklch(85.2% .18 94) · Oswald + Noto Sans SC
 * nav: N1 adapted compact navigation · footer: Ft2 expanded related links · enrichment: real map and tactical UI
 * pre-emit critique: P4 H5 E4 S5 R4 V4 */
@import url('tokens.css?v=20260915');
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:clip}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:15px;line-height:1.85;overflow-x:clip;padding-bottom:84px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:none;border:0}button,a,summary{-webkit-tap-highlight-color:transparent}img{display:block;width:100%;height:auto;max-width:100%}figure,p,h1,h2,h3,dl{margin:0}h1,h2,h3{font-style:normal;overflow-wrap:anywhere;min-width:0;line-height:1.35;font-weight:700}h2{font-size:clamp(1.5rem,2.8vw,2rem);letter-spacing:-.025em}h3{font-size:var(--text-lg)}p+p{margin-top:var(--space-lg)}ul,ol{padding-left:var(--space-xl)}li+li{margin-top:var(--space-sm)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}a:active,button:active,summary:active{opacity:.85}button:disabled,[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}[data-state=loading]{cursor:progress}[data-state=error]{outline:2px solid var(--color-error)}[data-state=success]{border-color:var(--color-action)}[hidden]{display:none!important}.wrap{width:min(1184px,calc(100% - 40px));margin-inline:auto}.small{font-size:var(--text-sm);color:var(--color-muted)}.muted{color:var(--color-muted)}.text-link,.back-link,.top-link{color:var(--color-link);display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.skip{position:fixed;left:16px;top:-80px;z-index:1000;background:var(--color-accent);color:var(--color-accent-ink);padding:var(--space-md)}.skip:focus{top:12px}.site-header{position:fixed;inset:0 0 auto;z-index:50;background:var(--color-paper);border-bottom:1px solid var(--color-rule)}.nav-wrap{height:var(--nav-height);width:min(1280px,calc(100% - 32px));margin:auto;display:flex;align-items:center;gap:var(--space-lg)}.brand{font-weight:700;font-size:var(--text-lg);display:inline-flex;align-items:center;gap:var(--space-md);white-space:nowrap;line-height:1}.brand img{width:32px;height:32px;object-fit:cover}.brand-tail{display:none}.desktop-nav{display:none;align-items:center;gap:var(--space-xl);margin-left:auto}.desktop-nav a{position:relative;white-space:nowrap;display:flex;align-items:center;min-height:72px;font-size:.88rem;color:var(--color-muted);line-height:1}.desktop-nav a[aria-current]{color:var(--color-ink)}.desktop-nav a[aria-current]:after{content:"";height:3px;background:var(--color-accent);position:absolute;left:0;right:0;bottom:0}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xl);min-height:52px;padding:var(--space-md) var(--space-xl);font-weight:700;white-space:nowrap;font-size:var(--text-md);line-height:1;border-radius:var(--radius-sm);transition:transform var(--dur-fast) var(--ease-out);isolation:isolate}.btn span{font-size:1.3em;font-weight:400}.btn-primary{overflow:clip;background:var(--color-action);color:var(--color-accent-ink);box-shadow:0 4px 0 var(--color-rule);border:1px solid var(--color-action)}.btn-primary:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent,color-mix(in oklch,var(--color-ink) 35%,transparent),transparent);transform:translateX(-80%)}.btn-primary:hover:after{animation:shine 700ms var(--ease-out) 1}.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--color-rule);opacity:1}.btn-secondary{border:1px solid var(--color-rule);background:var(--color-panel);color:var(--color-ink)}.nav-cta{min-height:40px;padding:var(--space-md) var(--space-lg);font-size:.8rem;margin-left:auto;gap:var(--space-sm);box-shadow:none}.menu-toggle{font-size:.82rem;min-height:44px;padding:var(--space-sm)}.mobile-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-md) var(--space-xl);border-top:1px solid var(--color-rule)}.mobile-menu a{min-height:44px;display:flex;align-items:center;white-space:nowrap}.hero{position:relative;margin-top:var(--nav-height);min-height:630px;display:flex;align-items:center;background:var(--color-paper);color:var(--color-ink)}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% center;opacity:.65}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-paper),color-mix(in oklch,var(--color-paper) 45%,transparent))}.hero:after{position:absolute;content:"";inset:0;background:linear-gradient(0deg,var(--color-paper),transparent 65%);pointer-events:none}.hero-content{position:relative;z-index:1;padding-block:var(--space-3xl) var(--space-4xl)}.hero-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--text-sm);margin-bottom:var(--space-xl)}.hero-tags span{border:1px solid var(--color-rule);padding:var(--space-xs) var(--space-md);background:var(--color-paper)}.hero h1{font-size:var(--text-display);letter-spacing:-.035em;line-height:1.18;max-width:850px}.hero-subtitle{display:block;font-size:.66em;margin-top:var(--space-md);color:var(--color-ink);line-height:1.4}.hero-english{display:block;font-family:var(--font-display);font-size:1.65rem;line-height:1.3;color:var(--color-accent);letter-spacing:.015em;font-weight:400;margin-top:var(--space-xl)}.hero-english span{font-size:.75rem;display:block;color:var(--color-muted);letter-spacing:.01em;margin-top:var(--space-xs)}.hero-lede{font-size:var(--text-md);line-height:1.85;margin-top:var(--space-xl);color:var(--color-ink)}.hero-actions{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;margin-top:var(--space-xl)}.hero-actions .btn{font-size:.9rem;padding-inline:var(--space-lg);gap:var(--space-md)}.hero-note{font-size:.7rem;color:var(--color-muted);margin-top:var(--space-xl)}.hero-caption{position:absolute;right:32px;bottom:48px;z-index:2;display:none;font-size:.8rem;color:var(--color-muted)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--color-rule);background:var(--color-panel);color:var(--color-ink)}.facts>div{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-rule)}.facts>div:last-child{grid-column:1/-1;border-bottom:0}.facts span{display:block;font-size:.75rem;color:var(--color-muted);margin-bottom:var(--space-xs)}.facts strong{font-weight:500;font-size:.9rem}.section{padding-block:var(--space-4xl)}.section+.section{border-top:1px solid var(--color-rule)}.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-lg);margin-bottom:var(--space-xl)}.section-head p{color:var(--color-muted);margin-top:var(--space-md)}.section-head .text-link{flex-shrink:0}.media-shelf{display:grid;gap:var(--space-xl)}.shot{display:block;position:relative;padding:0;aspect-ratio:16/9;width:100%;background:var(--color-raised);color:var(--color-ink);overflow:clip;border:1px solid var(--color-rule)}.shot img{width:100%;height:100%;object-fit:cover}.shot-zoom{position:absolute;right:8px;bottom:8px;width:28px;height:28px;background:var(--color-paper);color:var(--color-ink);line-height:28px;font-size:20px}.thumb-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.thumb-row .shot-zoom{display:none}.game-summary{background:var(--color-panel);color:var(--color-ink)}.cover{aspect-ratio:460/215;object-fit:cover}.summary-copy{padding:var(--space-xl)}.summary-copy>p{font-size:.85rem;color:var(--color-muted)}.summary-copy .mini-heading{font-size:var(--text-lg);color:var(--color-ink);font-weight:700}.summary-copy dl{margin-block:var(--space-xl);font-size:.8rem}.summary-copy dl div{display:flex;gap:var(--space-lg);margin-top:var(--space-sm)}.summary-copy dt{color:var(--color-muted);flex-shrink:0;min-width:70px}.summary-copy dd{margin:0}.summary-copy .text-link{font-size:.8rem}.story-section{padding-block:var(--space-4xl);background:var(--color-panel);color:var(--color-ink)}.story-layout{display:grid;gap:var(--space-3xl);align-items:center}.story-text{max-width:65ch}.story-text h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-bottom:var(--space-xl)}.story-text p{color:var(--color-muted)}.story-text .text-link{margin-top:var(--space-xl)}figcaption{font-size:.8rem;color:var(--color-muted);margin-top:var(--space-md);line-height:1.6}.feature-list{display:grid;margin-top:var(--space-2xl);gap:var(--space-2xl)}.feature-list article{border-top:1px solid var(--color-rule);padding-top:var(--space-xl)}.feature-list p{margin-top:var(--space-md);color:var(--color-muted)}.split-section{display:grid;gap:var(--space-3xl)}.audience{padding:var(--space-2xl);background:var(--color-panel);color:var(--color-ink)}.audience>p{margin-top:var(--space-lg)}.audience li{color:var(--color-muted)}.faq-list{margin-top:var(--space-xl);border-top:1px solid var(--color-rule)}details{border-bottom:1px solid var(--color-rule)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);min-height:68px;padding:var(--space-lg) 0;font-weight:500;line-height:1.7}summary::-webkit-details-marker{display:none}summary>span{position:relative;flex-shrink:0;width:20px;height:20px}summary>span:before,summary>span:after{content:"";position:absolute;inset:9px 3px;height:2px;background:var(--color-accent)}summary>span:after{transform:rotate(90deg)}details[open] summary>span:after{display:none}.faq-answer{padding:0 var(--space-2xl) var(--space-xl) 0;color:var(--color-muted);max-width:80ch}.final-cta{padding-block:var(--space-3xl);background:var(--color-panel);color:var(--color-ink);border-block:1px solid var(--color-rule)}.final-inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xl)}.final-inner p{color:var(--color-muted);margin-top:var(--space-md)}.final-cta>.small{margin-top:var(--space-xl)}.site-footer{padding-block:var(--space-3xl);color:var(--color-muted)}.footer-brand{display:flex;flex-direction:column;gap:var(--space-lg);align-items:flex-start}.footer-brand .brand{color:var(--color-ink)}.footer-brand p{font-size:.85rem}.footer-nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-xl);padding-block:var(--space-xl);border-bottom:1px solid var(--color-rule)}.footer-nav a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:.82rem}.related{padding-block:var(--space-xl)}.related h2{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-md)}.related>div{display:flex;align-items:center;flex-wrap:wrap;column-gap:var(--space-xl)}.related a{display:inline-flex;align-items:center;min-height:44px;font-size:.75rem;white-space:nowrap}.legal{font-size:.72rem;border-top:1px solid var(--color-rule);padding-top:var(--space-xl)}.legal p+p{margin-top:var(--space-xs)}.mobile-cta{position:fixed;bottom:0;inset-inline:0;background:var(--color-paper);color:var(--color-ink);z-index:40;padding:var(--space-md) var(--space-xl);padding-bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-rule);gap:var(--space-md)}.mobile-cta>span{font-size:.76rem;line-height:1.6}.mobile-cta-small{display:block;color:var(--color-muted);font-size:.7rem}.mobile-cta .btn{min-height:44px;font-size:.88rem;gap:var(--space-lg)}.page-intro{padding-top:calc(var(--nav-height) + 32px);padding-bottom:var(--space-3xl)}.back-link{font-size:.8rem;margin-bottom:var(--space-xl)}.page-intro h1{font-size:clamp(2rem,4vw,3.5rem);max-width:850px;letter-spacing:-.035em}.lede{max-width:68ch;color:var(--color-muted);margin-top:var(--space-xl);font-size:var(--text-lg)}.gallery-section{padding-bottom:var(--space-4xl)}.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.filter{min-width:64px;min-height:44px;padding:var(--space-sm) var(--space-xl);border:1px solid var(--color-rule);font-size:.85rem;white-space:nowrap}.filter[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.gallery-grid{display:grid;gap:var(--space-2xl) var(--space-xl);margin-top:var(--space-xl)}.gallery-item figcaption span{color:var(--color-accent);margin-right:var(--space-md)}.gallery-help{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:.85rem}.download-layout{display:grid;gap:var(--space-2xl)}.download-card{padding:var(--space-2xl);background:var(--color-panel);color:var(--color-ink);border:1px solid var(--color-rule)}.platform-symbol{font-family:var(--font-display);font-size:2rem;color:var(--color-accent)}.download-card h2{margin-top:var(--space-lg)}.download-card p{color:var(--color-muted);font-size:.85rem;margin-top:var(--space-lg)}.download-spec{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xl);font-size:.8rem;color:var(--color-muted)}.download-card .btn{width:100%;margin-top:var(--space-2xl)}.download-aside{padding-block:var(--space-xl);max-width:65ch}.download-aside p{margin-top:var(--space-xl);color:var(--color-muted)}.download-aside .text-link{margin-top:var(--space-lg)}.steps{counter-reset:steps;list-style:none;padding:0;display:grid;gap:var(--space-xl);margin-top:var(--space-2xl)}.steps li{counter-increment:steps;margin:0;border-top:1px solid var(--color-rule);padding-top:var(--space-xl)}.steps li:before{content:'0' counter(steps);font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-accent);display:block;line-height:1;margin-bottom:var(--space-xl)}.steps p{margin-top:var(--space-md);color:var(--color-muted);font-size:.9rem}.config-table{margin-top:var(--space-2xl)}table{width:100%;border-collapse:collapse;text-align:left;font-size:.78rem;table-layout:fixed}caption{text-align:left;font-weight:700;padding-bottom:var(--space-lg)}th,td{padding:var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-rule);overflow-wrap:anywhere;vertical-align:top}thead{background:var(--color-panel);color:var(--color-ink)}th:first-child{width:25%}tbody th{font-weight:400;color:var(--color-muted)}.guide-layout{display:grid;gap:var(--space-2xl);padding-bottom:var(--space-4xl)}.guide-toc{padding:var(--space-xl);border:1px solid var(--color-rule);align-self:start}.guide-toc p{font-weight:700;margin-bottom:var(--space-md)}.guide-toc a{display:flex;align-items:center;min-height:44px;font-size:.88rem;color:var(--color-muted);white-space:nowrap}.guide-cards{display:grid;gap:var(--space-lg);margin-bottom:var(--space-3xl)}.guide-cards article{background:var(--color-panel);color:var(--color-ink);padding:var(--space-xl)}.guide-cards h2{font-size:var(--text-lg)}.guide-cards p{margin-top:var(--space-md);font-size:.85rem;color:var(--color-muted)}.guide-cards .text-link{margin-top:var(--space-lg);font-size:.85rem}.guide-body section{padding-block:var(--space-2xl);border-top:1px solid var(--color-rule)}.guide-body p{margin-top:var(--space-xl);max-width:70ch;color:var(--color-muted)}.guide-body ul{color:var(--color-muted)}.guide-body figure{margin-top:var(--space-2xl)}.reading-next{margin-top:var(--space-2xl);padding:var(--space-xl);background:var(--color-panel);color:var(--color-ink)}.reading-next h2{font-size:var(--text-lg)}.reading-next p{margin-top:var(--space-md);color:var(--color-muted)}.requirements-article{max-width:960px;padding-bottom:var(--space-4xl)}.article-intro{max-width:70ch;font-size:var(--text-lg)}.article-columns{display:grid;gap:var(--space-2xl);margin-top:var(--space-3xl)}.article-columns h2,.article-section h2{font-size:1.5rem;margin-bottom:var(--space-xl)}.article-columns p,.article-section li{color:var(--color-muted)}.article-section{margin-top:var(--space-3xl)}.article-bottom{display:flex;align-items:center;gap:var(--space-xl);flex-wrap:wrap;margin-top:var(--space-3xl)}.lightbox{position:fixed;inset:0;margin:auto;width:calc(100% - 24px);max-width:1300px;max-height:94dvh;padding:var(--space-lg);background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-rule);overflow-y:auto}.lightbox::backdrop{background:color-mix(in oklch,var(--color-paper) 95%,transparent)}.lightbox-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.lightbox button{min-width:44px;min-height:44px;border:1px solid var(--color-rule);padding:var(--space-sm) var(--space-md);white-space:nowrap}.lightbox-stage{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:var(--space-sm)}.lightbox-stage img{max-height:72dvh;width:100%;object-fit:contain;touch-action:pan-y}.lightbox-stage button{padding:var(--space-sm)}#lightbox-caption{font-size:.85rem;margin-top:var(--space-lg);color:var(--color-muted)}#image-status{font-size:.85rem;color:var(--color-error)}
@keyframes shine{0%{opacity:0;transform:translateX(-80%)}50%{opacity:1}100%{opacity:0;transform:translateX(80%)}}
@media(hover:hover){.text-link:hover,.back-link:hover,.top-link:hover,.footer-nav a:hover,.related a:hover,.desktop-nav a:hover{color:var(--color-accent)}.shot:hover{filter:brightness(1.1)}.filter:hover,.menu-toggle:hover{background:var(--color-raised);color:var(--color-ink)}summary:hover{color:var(--color-accent)}}
@media(min-width:640px){.thumb-row{grid-template-columns:repeat(4,minmax(0,1fr))}.brand-tail{display:inline}.wrap{width:min(1184px,calc(100% - 64px))}.hero h1{font-size:3rem}.hero-subtitle br{display:none}.hero-actions .btn{font-size:1rem;padding-inline:var(--space-xl)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.article-columns{grid-template-columns:repeat(2,minmax(0,1fr))}table{font-size:.9rem}th,td{padding:var(--space-lg)}.final-inner{flex-direction:row;align-items:center;justify-content:space-between}.final-inner .btn{flex-shrink:0}.section-head{flex-direction:row;align-items:center;justify-content:space-between}.lightbox{padding:var(--space-xl)}.footer-brand{flex-direction:row;align-items:center;flex-wrap:wrap}.footer-brand .top-link{margin-left:auto}}
@media(min-width:768px){.hero{min-height:650px}.hero h1{font-size:var(--text-display)}.hero-subtitle{font-size:.58em}.hero-image{opacity:.85;object-position:center}.hero-shade{background:linear-gradient(90deg,var(--color-paper),color-mix(in oklch,var(--color-paper) 12%,transparent))}.hero-content{padding-block:var(--space-3xl) var(--space-4xl)}.hero-caption{display:block}.facts{grid-template-columns:repeat(5,minmax(0,1fr))}.facts>div{padding:var(--space-xl) var(--space-lg);border-bottom:0;border-right:1px solid var(--color-rule)}.facts>div:last-child{grid-column:auto;border:0}.facts strong{font-size:.8rem}.story-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.feature-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2xl)}.download-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3xl)}.split-section{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.download-aside{align-self:center}}
@media(min-width:1024px){body{padding-bottom:0}.desktop-nav{display:flex}.nav-cta{margin-left:var(--space-xl);min-height:44px}.menu-toggle,.mobile-menu,.mobile-cta{display:none!important}.hero{min-height:600px}.hero h1{font-size:3.8rem}.hero-english{font-size:2rem}.hero-lede{font-size:var(--text-lg)}.media-shelf{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr)}.summary-copy{padding:var(--space-xl)}.section{padding-block:var(--space-4xl)}.story-section{padding-block:var(--space-4xl)}.guide-layout{grid-template-columns:220px minmax(0,1fr);gap:var(--space-3xl)}.guide-toc{position:sticky;top:96px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-intro{padding-top:calc(var(--nav-height) + 48px);padding-bottom:var(--space-3xl)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.btn:active{transform:none}}

.btn-primary:focus-visible,.filter[aria-pressed=true]:focus-visible{outline-color:var(--color-focus-action)}

.block{display:block}.flex{display:flex}.table{display:table}.hidden{display:none}.w-full{width:100%}.min-w-0{min-width:0}.flex-wrap{flex-wrap:wrap}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}