/* Hallmark · macrostructure: Workbench / guild recruitment dossier · tone: tactile midnight · anchor hue: warm gold
 * custom: ivory paper / Chinese roman-serif / warm gold · real tutorial UI only
 * 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:calc(var(--nav-height) + 1rem)}body{margin:0;background:var(--color-page);color:var(--color-ink);font:var(--text-base)/1.85 var(--font-body);padding-bottom:5rem}a{color:inherit;text-underline-offset:.25em}img{display:block;max-width:100%;height:auto}figure{margin:0}button,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:var(--color-clear)}h1,h2,h3{font-family:var(--font-display);font-style:normal;line-height:1.35;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display);margin:.6rem 0 1rem}h2{font-size:clamp(1.65rem,3vw,2.55rem);margin:0 0 1rem}h3{font-size:var(--text-xl);margin:0 0 .7rem}p{margin:0 0 1rem}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}button{cursor:pointer}a.button,.nav-links a,.menu nav a,.footer-links a,.related a,.filters button,.crumb a{white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:48px;padding:.7rem 1.25rem;text-decoration:none;background:var(--color-accent);color:var(--color-accent-ink);font-weight:650;border:1px solid var(--color-accent);box-shadow:4px 4px 0 var(--color-dark);transition:transform var(--dur-fast) var(--ease-out);border-radius:var(--radius-sm)}.button.secondary{background:var(--color-paper);color:var(--color-ink);border-color:var(--color-rule);box-shadow:none}.button:active,button:active{transform:translateY(2px)}:is(button,.button)[aria-disabled=true],button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}[data-state=loading]{opacity:.7}[data-state=error]{border-color:var(--color-error)}[data-state=success]{border-color:var(--color-success)}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin:1.6rem 0}.skip{position:fixed;top:-10rem;left:1rem;z-index:2000;background:var(--color-paper);padding:1rem}.skip:focus{top:1rem}.masthead{position:sticky;top:0;z-index:100;height:var(--nav-height);background:var(--color-dark);color:var(--color-on-dark);border-bottom:1px solid var(--color-accent)}.nav-inner{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:100%;padding:0 1.25rem}.wordmark{font-weight:650;font-size:.9rem;text-decoration:none;white-space:nowrap}.wordmark small{display:block;font:10px/1.2 var(--font-mono);letter-spacing:.12em;color:var(--color-dark-muted)}.nav-links{display:none;gap:1.6rem;align-items:center}.nav-links a{text-decoration:none;font-size:.9rem}.nav-links [aria-current=page]{color:var(--color-accent)}.menu{position:relative}.menu summary{list-style:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-rule);min-width:44px;min-height:44px;padding:.4rem .75rem;cursor:pointer;font-size:.85rem}.menu summary::-webkit-details-marker{display:none}.menu nav{position:absolute;right:0;top:calc(100% + .8rem);width:220px;background:var(--color-dark);color:var(--color-on-dark);border:1px solid var(--color-accent);padding:.75rem;box-shadow:5px 5px 0 var(--color-half-shade)}.menu nav a{display:block;padding:.55rem .7rem;text-decoration:none}.hero{position:relative;min-height:calc(100svh - var(--nav-height));color:var(--color-on-dark);background:var(--color-dark);isolation:isolate;display:flex;align-items:center}.hero-art{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:65% center;z-index:-2}.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--color-overlay),var(--color-shade) 46%,var(--color-half-shade)),linear-gradient(0deg,var(--color-dark),var(--color-clear) 60%)}.hero-inner{width:min(100% - 2.5rem,1200px);margin:2rem auto 3rem}.hero-copy{max-width:620px}.game-logo{width:240px;height:auto;max-width:72vw;margin-bottom:1.25rem}.hero h1{max-width:10em}.original{display:block;font:400 clamp(.85rem,2vw,1rem)/1.65 var(--font-body);color:var(--color-dark-muted);margin-top:.8rem}.hero-lead{font-size:var(--text-lg);max-width:31rem;line-height:1.75}.hero-note{font-size:var(--text-sm);color:var(--color-dark-muted)}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.tags span{font-size:.8rem;border:1px solid var(--color-rule);padding:.25rem .65rem}.hero .tags span{border-color:var(--color-dark-muted)}.paper{max-width:1060px;margin:0 auto;background:var(--color-paper);color:var(--color-ink);box-shadow:10px 10px 0 var(--color-dark)}.sheet{padding:2.2rem 1.2rem}.sheet + .sheet{padding-top:0}.section-gap{margin-top:3rem}.info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;margin:0;border-bottom:1px solid var(--color-rule);padding-bottom:1.5rem}.info div{padding:.75rem 0;border-top:1px solid var(--color-rule)}dt{font-size:.75rem;color:var(--color-muted);margin:0 0 .35rem}dd{font-size:.95rem;margin:0;overflow-wrap:anywhere}.note{font-size:var(--text-sm);color:var(--color-muted)}.prose{max-width:720px}.intro-quote{border-left:3px solid var(--color-accent);padding:.3rem 0 .3rem 1rem;margin:1.5rem 0;font-family:var(--font-display);font-size:1.35rem}.spread{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-top:2rem}.spread figure{background:var(--color-paper-2);color:var(--color-ink);border:1px solid var(--color-rule);padding:.5rem}.spread figcaption,.gallery-grid figcaption{font-size:var(--text-sm);padding:.6rem .3rem;color:var(--color-muted)}.spread img,.gallery-main img,.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--color-dark)}.media-link{display:block;position:relative}.media-link:after{content:'查看大图';position:absolute;bottom:.6rem;right:.6rem;font-size:.72rem;line-height:1.3;background:var(--color-dark);color:var(--color-on-dark);padding:.4rem .6rem}.gallery-main{border:1px solid var(--color-rule);padding:.5rem;background:var(--color-paper-2);color:var(--color-ink)}.gallery-main figcaption{padding:.5rem .3rem;font-size:.85rem}.thumbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.75rem}.thumbs img{aspect-ratio:16/9;object-fit:contain;background:var(--color-dark)}.thumbs .media-link:after{display:none}.thumbs figcaption{font-size:.75rem;color:var(--color-muted);margin-top:.3rem}.linkline{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.linkline a{display:inline-flex;align-items:center;min-height:44px}.notice{border:1px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink);padding:1.2rem;margin:1.5rem 0}.updates{margin:0;list-style:none;padding:0}.updates li{border-bottom:1px solid var(--color-rule);padding:1rem 0}.updates time{font:var(--text-sm) var(--font-mono);color:var(--color-muted)}.updates h3{font-size:1.15rem;margin:.5rem 0}.get-game{background:var(--color-dark);color:var(--color-on-dark);padding:2rem 1.25rem;border-top:4px solid var(--color-accent)}.get-game .note{color:var(--color-dark-muted)}.faq details{border-bottom:1px solid var(--color-rule);padding:.75rem 0}.faq summary{cursor:pointer;min-height:44px;padding:.55rem 1.8rem .55rem 0;font-weight:600}.faq .answer{padding:.5rem 0 .75rem}.faq .answer p:last-child{margin-bottom:0}.closing{padding:2.5rem 1.25rem;border-top:1px solid var(--color-rule)}.site-footer{max-width:1060px;margin:3rem auto 0;padding:0 1.25rem 2rem;color:var(--color-on-dark)}.site-footer h2{font-size:1.25rem}.footer-links,.related{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem 1.25rem;margin:1rem 0 1.4rem}.footer-links a,.related a{font-size:.85rem;display:inline-flex;align-items:center;min-height:44px}.site-footer .note{color:var(--color-dark-muted)}.foot-logo{width:145px;height:auto;margin-bottom:1rem}.sticky-cta{position:fixed;bottom:0;inset-inline:0;z-index:80;background:var(--color-dark);color:var(--color-on-dark);border-top:1px solid var(--color-accent);padding:.6rem max(1rem,env(safe-area-inset-left)) max(.6rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:1rem}.sticky-cta small{font-size:.72rem;line-height:1.4}.sticky-cta .button{font-size:.85rem;box-shadow:none;padding:.6rem .9rem;min-height:44px}.crumb{font-size:.8rem;margin:0 0 1.75rem;display:flex;flex-wrap:wrap;gap:.55rem;color:var(--color-muted)}.page-head{background:var(--color-dark);color:var(--color-on-dark);padding:2.5rem 1.25rem;margin:0}.page-head-inner{max-width:930px;margin:auto}.page-head h1{font-size:clamp(2rem,4.4vw,3.5rem)}.page-head .crumb{color:var(--color-dark-muted)}.page-head p{max-width:42rem}.chapter-nav{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding:0;margin:0 0 2.5rem;list-style:none}.chapter-nav a{display:block;padding:1.1rem;border:1px solid var(--color-rule);text-decoration:none}.chapter-nav strong{display:block;margin-bottom:.5rem}.chapter-nav small{color:var(--color-muted);line-height:1.65;display:block}.guide-section{margin:3rem 0;scroll-margin-top:calc(var(--nav-height) + 1rem)}.guide-section h2{border-bottom:1px solid var(--color-rule);padding-bottom:1rem}ol.steps{padding-left:1.5rem}.steps li{margin:.8rem 0;padding-left:.3rem}.role-list{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin:1.5rem 0}.role-list article{border-top:2px solid var(--color-accent);padding-top:1rem}.role-list h3{font-size:1.25rem}.role-list p{font-size:.95rem}.filters{display:none;flex-wrap:wrap;gap:.7rem;margin:1.5rem 0}.js-ready .filters{display:flex}.filters button{min-height:44px;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);padding:.5rem 1rem}.filters button[aria-pressed=true]{background:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-dark)}.gallery-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.3rem}.gallery-grid figure{border:1px solid var(--color-rule);padding:.5rem}.gallery-grid figure[hidden]{display:none}.gallery-status{font-size:.8rem;color:var(--color-muted)}.lightbox{position:fixed;inset:0;margin:auto;width:min(95vw,1280px);max-width:none;height:fit-content;max-height:94dvh;border:1px solid var(--color-accent);padding:.75rem;background:var(--color-dark);color:var(--color-on-dark)}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.lightbox button{background:var(--color-dark);color:var(--color-on-dark);border:1px solid var(--color-rule);min-height:44px;padding:.4rem .75rem;white-space:nowrap}.lightbox figure{margin:0}.lightbox img{width:100%;height:auto;max-height:65dvh;object-fit:contain;background:var(--color-dark)}.lightbox figcaption{font-size:.85rem;line-height:1.5;margin:.75rem 0}.lightbox-bottom{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.image-status{font-size:.8rem;margin:.4rem 0;min-height:1.5em}.image-status[data-state=error]{color:var(--color-on-dark)}.error-page{text-align:center;padding:4rem 1.2rem}.error-page h1{font-size:2.5rem}.error-page img{margin:0 auto 2rem;width:250px}.back-top{display:inline-flex;align-items:center;min-height:44px}.article-meta{font-size:.85rem;color:var(--color-muted)}code{font: .9em var(--font-mono);overflow-wrap:anywhere}main :target{scroll-margin-top:calc(var(--nav-height) + 1rem)}
@media(hover:hover){.button:hover{background:var(--color-accent-hover);color:var(--color-accent-ink)}.button.secondary:hover{background:var(--color-paper-2);color:var(--color-ink)}.nav-links a:hover,.menu nav a:hover,.footer-links a:hover,.related a:hover{color:var(--color-accent)}.media-link:hover{outline:2px solid var(--color-accent);outline-offset:2px}.filters button:hover{border-color:var(--color-ink)}.chapter-nav a:hover{background:var(--color-paper-2);color:var(--color-ink)}}
@media(min-width:40rem){.sheet{padding:3rem}.info{grid-template-columns:repeat(3,minmax(0,1fr))}.thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-nav,.role-list{grid-template-columns:repeat(2,minmax(0,1fr))}.get-game,.closing{padding:3rem}.hero-inner{margin:3rem auto}.hero .game-logo{width:280px}.sticky-cta{padding-inline:calc((100% - min(100% - 2.5rem, 1200px))/2)}}
@media(min-width:60rem){body{padding-bottom:0}.nav-links{display:flex}.menu{display:none}.nav-inner{padding:0 2.5rem}.hero{min-height:690px}.hero-inner{margin:3rem auto}.hero .game-logo{width:300px}.hero-art{object-position:center}.hero-copy{max-width:630px}.hero-lead{max-width:31rem}.spread{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:2rem;align-items:center}.spread.reverse{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.spread.reverse figure{order:-1}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sticky-cta{display:none}.paper{margin-top:0}.sheet{padding:4rem 4.5rem}.get-game,.closing{padding:3rem 4.5rem}.site-footer{padding-inline:0}.section-gap{margin-top:4rem}}
@media(max-width:25rem){.hero-inner{margin:1.5rem auto 2rem}.hero h1{font-size:2rem}.hero .game-logo{width:200px}.hero-lead{font-size:1rem}.hero .actions{gap:.8rem;margin:1.2rem 0}.hero .button{padding:.6rem .9rem;font-size:.9rem}.hero-note{font-size:.73rem}.hero .tags{gap:.4rem}.hero{min-height:650px}.info{grid-template-columns:minmax(0,1fr)}.lightbox-top{flex-wrap:wrap}.lightbox-top span{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover,.button:active{transform:none}}

/* Dual focus ring: dark inner ring contrasts with gold, ivory outer ring with dark surfaces. */
.button:focus-visible{outline-color:var(--color-accent-ink);box-shadow:0 0 0 7px var(--color-paper)}
.site-footer a:focus-visible{outline-color:var(--color-on-dark)}

a:active,summary:active{opacity:.8}
