/* Hallmark · macrostructure: Workbench · theme: custom industrial · nav: N7 · footer: Ft4
 * paper: oklch(18.6% .005 250) · accent: oklch(86.1% .173 91.9)
 * fonts: Barlow Condensed + Noto Sans SC · axes: dark / condensed sans / yellow
 * audience: adult narrative RPG players · use: learn and download · tone: utilitarian
 */
@import './tokens.css?v=e1cb893062';
@import './fonts.css?v=e1cb893062';
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;background:var(--color-paper);color:var(--color-ink);font:400 var(--text-base)/1.8 var(--font-body);padding-bottom:80px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-style:normal;line-height:1.3;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display);font-weight:800;letter-spacing:-.04em}h2{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700}h3{font-size:var(--text-md);font-weight:700}p{color:var(--color-muted)}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}button:disabled,[aria-disabled=true]{opacity:.5;cursor:not-allowed}button[data-state=error]{border-color:var(--color-error)}button[data-state=loading]{cursor:progress}img{display:block;max-width:100%;height:auto}button img{width:100%}[hidden]{display:none!important}.wrap{width:min(1200px,calc(100% - 40px));margin-inline:auto}.skip{position:fixed;left:20px;top:-90px;background:var(--color-accent);color:var(--color-paper);padding:12px;z-index:var(--z-modal)}.skip:focus{top:10px}.topbar{position:fixed;top:0;left:0;right:0;height:76px;background:var(--color-paper);border-bottom:2px solid var(--color-rule);z-index:var(--z-sticky)}.nav-inner{height:100%;display:flex;align-items:center;gap:var(--space-xl)}.brand{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-ink);white-space:nowrap;font-weight:700;line-height:1.1}.brand img{width:34px;height:34px;border-left:3px solid var(--color-accent)}.brand small{display:block;font:600 13px/1.4 var(--font-display);letter-spacing:.15em;color:var(--color-muted)}.navlinks{display:flex;gap:var(--space-xl);margin-left:auto}.navlinks a{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;min-height:44px;display:flex;align-items:center;border-bottom:2px solid transparent}.navlinks a[aria-current=page]{color:var(--color-ink);border-color:var(--color-accent)}.btn{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-md);min-height:48px;padding:12px 24px;white-space:nowrap;background:var(--color-green);color:var(--color-accent-ink);font-weight:700;border:1px solid var(--color-green-hover);box-shadow:0 4px 0 var(--color-raised);position:relative;overflow:hidden;transition:transform var(--dur-micro) var(--ease-out)}.btn:hover{background:var(--color-green-hover);color:var(--color-accent-ink);text-decoration:none}.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--color-raised)}.btn::after{content:'';position:absolute;inset:-40% auto -40% -45%;width:30%;background:linear-gradient(100deg,var(--color-clear),var(--color-ink));opacity:.15;transform:skewX(-20deg)}.btn:hover::after{animation:sheen 700ms var(--ease-out)}@keyframes sheen{to{transform:translateX(650%) skewX(-20deg)}}.btn.small{min-height:44px;padding:8px 18px;font-size:var(--text-sm)}.secondary{display:inline-flex;align-items:center;min-height:48px;gap:var(--space-sm);color:var(--color-ink);border-bottom:1px solid var(--color-muted);white-space:nowrap}.menu-toggle{display:none;background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-rule);min-height:44px;padding:0 12px}.hero{margin-top:76px;position:relative;min-height:540px;display:flex;align-items:end;background:var(--color-paper);isolation:isolate;overflow:hidden}.hero-media{position:absolute;inset:0 0 0 22%;width:78%;height:100%;object-fit:cover;object-position:50% 18%;z-index:-2}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--color-paper) 10%,var(--color-clear) 95%);z-index:-1}.hero::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(0deg,var(--color-paper),var(--color-clear));z-index:-1}.hero-copy{padding:var(--space-3xl) 0 var(--space-2xl);max-width:640px}.hero-tags{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}.hero-tags strong{color:var(--color-accent);font-weight:500}.hero h1 span{display:block;color:var(--color-ink);font:800 clamp(3.5rem,7vw,6rem)/1 var(--font-display);letter-spacing:.01em;margin-top:8px}.hero-lead{font-size:var(--text-md);color:var(--color-ink);margin-top:var(--space-lg);max-width:30em}.hero-sub{max-width:29em;margin-top:var(--space-sm);font-size:var(--text-sm)}.actions{display:flex;gap:var(--space-lg);align-items:center;flex-wrap:wrap;margin-top:var(--space-xl)}.hero-note{position:absolute;right:40px;bottom:52px;color:var(--color-muted);font-size:var(--text-sm);writing-mode:vertical-rl;letter-spacing:.12em}.meta-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--color-surface);border-top:2px solid var(--color-accent);padding:var(--space-lg) var(--space-xl);gap:var(--space-lg)}.meta-strip div{border-right:1px solid var(--color-rule)}.meta-strip div:last-child{border:0}.meta-strip dt{color:var(--color-muted);font-size:var(--text-sm)}.meta-strip dd{margin:4px 0 0;font-weight:500;font-variant-numeric:tabular-nums}.section{padding-block:var(--space-3xl)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-xl);margin-bottom:var(--space-xl)}.section-head p{margin-top:var(--space-sm)}.section-head a{white-space:nowrap}.showcase-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:var(--space-xl)}.image-button{display:block;position:relative;width:100%;padding:0;border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink)}.image-button:hover{border-color:var(--color-accent)}.image-button::after{content:'全屏查看 ↗';position:absolute;right:12px;bottom:12px;background:var(--color-overlay);padding:4px 10px;color:var(--color-ink);font-size:12px}.thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.thumbs .image-button::after{display:none}.thumbs img{aspect-ratio:16/9;object-fit:contain}.caption{display:flex;justify-content:space-between;gap:var(--space-md);font-size:var(--text-sm);margin-top:var(--space-sm);color:var(--color-muted)}.intro-rail{padding:var(--space-lg);background:var(--color-surface);border-top:3px solid var(--color-rule)}.cover{width:100%;aspect-ratio:460/215;object-fit:cover;margin-bottom:var(--space-lg)}.tagline{font-size:var(--text-md);color:var(--color-ink);margin-bottom:var(--space-md)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-lg) 0}.tag{font-size:12px;padding:2px 8px;border:1px solid var(--color-rule);color:var(--color-muted)}.intro-rail .btn{width:100%}.minor{font-size:var(--text-sm);margin-top:var(--space-md)}.story{border-top:1px solid var(--color-rule);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-3xl)}.story p{margin-top:var(--space-lg)}.story h2{max-width:16em}.character{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-rule)}.character:first-child{padding-top:0}.character span{color:var(--color-accent);font-size:var(--text-sm)}.character p{margin-top:var(--space-sm)}.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl);margin-top:var(--space-2xl)}.feature{padding-top:var(--space-lg);border-top:2px solid var(--color-rule)}.feature p{margin-top:var(--space-sm)}.feature .number{font:700 42px/1 var(--font-display);color:var(--color-accent);margin-bottom:var(--space-md)}.download-band{padding:var(--space-xl);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);border-top:2px solid var(--color-green)}.download-band p{margin-top:var(--space-sm)}.download-band .btn{min-width:230px}.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl)}.plain-list{padding-left:20px;color:var(--color-muted)}.plain-list li+li{margin-top:var(--space-sm)}details{border-bottom:1px solid var(--color-rule)}summary{padding:var(--space-lg) 44px var(--space-lg) 0;list-style:none;cursor:pointer;color:var(--color-ink);font-weight:500;position:relative}summary::-webkit-details-marker{display:none}summary::after{content:'+';position:absolute;right:8px;top:22px;color:var(--color-accent);font-size:22px;line-height:1}details[open]>summary::after{content:'−'}details p{padding:0 0 var(--space-lg);line-height:1.9}.faq-layout{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:var(--space-3xl)}.faq-layout h2{position:sticky;top:110px}.footer{border-top:1px solid var(--color-rule);padding:var(--space-2xl) 0}.footer .brand{font-size:var(--text-md);margin-bottom:var(--space-md)}.footer-nav,.related{display:flex;gap:var(--space-md) var(--space-lg);flex-wrap:wrap;margin-top:var(--space-lg)}.footer-nav a,.related a{font-size:var(--text-sm);white-space:nowrap}.footer p{font-size:var(--text-sm);margin-top:var(--space-md)}.related a{color:var(--color-muted)}.sticky-bottom{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky);background:var(--color-paper);border-top:1px solid var(--color-rule);padding:10px 0 calc(10px + env(safe-area-inset-bottom))}.sticky-inner{display:flex;justify-content:space-between;gap:var(--space-md);align-items:center}.sticky-title{font-weight:500;line-height:1.4}.sticky-title small{display:block;color:var(--color-muted);font-size:12px;font-weight:400}.sticky-actions{display:flex;gap:var(--space-lg);align-items:center}.top-link{font-size:var(--text-sm);white-space:nowrap}.page-head{padding:132px 0 var(--space-2xl);border-bottom:1px solid var(--color-rule);margin-bottom:var(--space-2xl)}.breadcrumb{font-size:var(--text-sm);margin-bottom:var(--space-lg);display:flex;gap:var(--space-sm)}.page-head h1{font-size:clamp(2rem,4vw,3.3rem)}.page-head h1 span{display:block;color:var(--color-muted);font:700 26px/1.3 var(--font-display);letter-spacing:.03em;margin-top:var(--space-sm)}.page-head p{max-width:44em;margin-top:var(--space-lg)}.filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);flex-wrap:wrap}.filter{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-rule);padding:8px 24px;min-height:44px}.filter[aria-pressed=true]{color:var(--color-accent-ink);background:var(--color-accent);border-color:var(--color-accent)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl) var(--space-lg)}.gallery-grid .caption{display:block}.gallery-count{color:var(--color-muted);margin-bottom:var(--space-lg);font-size:var(--text-sm)}.gallery-grid .image-button img{aspect-ratio:16/9}.specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}.spec{background:var(--color-surface);padding:var(--space-lg)}.spec dl{margin:var(--space-lg) 0 0}.spec dl div{display:flex;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--color-rule);font-variant-numeric:tabular-nums}.spec dt{color:var(--color-muted)}.spec dd{margin:0;text-align:right}.platform{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:var(--space-2xl);background:var(--color-surface);padding:var(--space-xl);border-top:3px solid var(--color-green)}.platform h2 span{display:block;font:700 42px/1 var(--font-display);margin-top:var(--space-md)}.platform p{margin-top:var(--space-md)}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl);counter-reset:step;padding:0;list-style:none}.steps li{border-top:1px solid var(--color-rule);padding-top:var(--space-lg)}.steps li::before{counter-increment:step;content:counter(step,decimal-leading-zero);font:700 32px/1 var(--font-display);color:var(--color-accent);display:block;margin-bottom:var(--space-md)}.steps p{margin-top:var(--space-sm)}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.guide-card{padding:var(--space-lg);background:var(--color-surface);border-left:2px solid var(--color-rule)}.guide-card p{margin:var(--space-md) 0}.guide-card a{display:inline-block;min-height:44px;white-space:nowrap}.article-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:var(--space-3xl)}.toc{position:sticky;top:105px;height:fit-content;border-left:2px solid var(--color-accent);padding-left:var(--space-lg)}.toc a{display:block;padding:8px 0;min-height:44px;color:var(--color-muted);white-space:nowrap}.prose{max-width:800px}.prose section{margin-bottom:var(--space-3xl)}.prose p{margin-top:var(--space-lg)}.prose h3{margin-top:var(--space-xl)}.prose ul,.prose ol{padding-left:24px;color:var(--color-muted);line-height:1.95}.prose li+li{margin-top:var(--space-sm)}.notice{padding:var(--space-lg);border-top:2px solid var(--color-accent);background:var(--color-surface);color:var(--color-ink);margin:var(--space-xl) 0}.article-preview{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-rule)}.article-preview p{margin-top:var(--space-sm)}.article-preview a{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--space-sm);white-space:nowrap}.lightbox{position:fixed;inset:0;margin:auto;width:min(1200px,96%);max-width:96%;height:fit-content;max-height:94dvh;overflow:auto;padding:var(--space-md);background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-rule);z-index:var(--z-modal)}.lightbox::backdrop{background:var(--color-overlay)}.lightbox img{max-height:72dvh;width:100%;object-fit:contain}.lightbox-toolbar{display:flex;gap:var(--space-md);justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:var(--space-md)}.lightbox-toolbar button{min-height:44px;padding:8px 16px;border:1px solid var(--color-rule);background:var(--color-surface);color:var(--color-ink);white-space:nowrap}.lightbox-toolbar button:hover{border-color:var(--color-accent)}.lightbox-buttons{display:flex;gap:var(--space-sm)}.lb-status{font-size:var(--text-sm);color:var(--color-muted)}.media-error{color:var(--color-error);padding:var(--space-lg)}
@media(max-width:1023px){.navlinks{gap:var(--space-lg)}.nav-inner{gap:var(--space-lg)}.hero-note{display:none}.showcase-layout{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.intro-rail{padding:var(--space-md)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){body{font-size:15px}.wrap{width:calc(100% - 32px)}.topbar{height:68px}.nav-inner{gap:var(--space-sm)}.nav-inner>.btn{margin-left:auto}.menu-toggle{display:block}.brand{font-size:14px}.brand img{width:28px;height:28px}.brand small{font-size:11px}.navlinks{display:none;position:absolute;left:0;right:0;top:66px;background:var(--color-surface);padding:var(--space-lg);border-bottom:1px solid var(--color-rule)}.navlinks.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.hero{margin-top:68px;min-height:610px}.hero-media{inset:0 0 auto 0;width:100%;height:380px;object-position:60% 0}.hero::before{background:linear-gradient(0deg,var(--color-paper) 4%,var(--color-clear) 95%)}.hero::after{inset:32% 0 0;background:linear-gradient(0deg,var(--color-paper) 30%,var(--color-clear))}.hero-copy{padding:260px 0 var(--space-xl)}.hero h1{font-size:36px}.hero h1 span{font-size:58px}.hero-lead{font-size:18px}.hero-sub{font-size:14px;max-width:28em}.hero-tags{margin-bottom:var(--space-md);gap:var(--space-sm);font-size:12px}.actions{gap:var(--space-lg);margin-top:var(--space-lg)}.actions .btn{padding:12px 18px}.secondary{font-size:14px}.meta-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-lg);gap:var(--space-lg);font-size:14px}.meta-strip div:nth-child(2){border-right:0}.meta-strip dt{font-size:12px}.section{padding-block:var(--space-2xl)}.section-head{display:block}.section-head a{display:inline-flex;min-height:44px;align-items:center;margin-top:var(--space-sm)}.showcase-layout,.story,.duo,.faq-layout,.platform,.article-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.intro-rail{display:none}.story{gap:var(--space-2xl)}.story p{margin-top:var(--space-md)}.features{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.feature{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:var(--space-md)}.feature .number{grid-row:span 2;font-size:36px}.feature p{grid-column:2}.download-band{display:block;padding:var(--space-lg)}.download-band .btn{margin-top:var(--space-lg);width:100%}.sticky-title{font-size:13px}.sticky-title small{font-size:11px}.sticky-actions{gap:var(--space-sm)}.top-link{display:none}.sticky-inner .btn{padding:10px 18px}.page-head{padding-top:105px}.page-head h1{font-size:30px}.page-head h1 span{font-size:22px}.page-head p{margin-top:var(--space-md)}.specs,.guide-grid,.steps{grid-template-columns:minmax(0,1fr)}.gallery-grid{gap:var(--space-lg) var(--space-sm)}.gallery-grid .caption{font-size:12px}.gallery-grid .image-button::after{font-size:10px;right:5px;bottom:5px;padding:2px 4px}.toc{position:static;display:flex;gap:var(--space-md);flex-wrap:wrap}.toc a{font-size:14px}.prose section{margin-bottom:var(--space-2xl)}.lightbox-buttons{width:100%;justify-content:space-between}.lightbox-toolbar button{padding:8px 12px;font-size:14px}.footer .related{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.related a{min-height:36px;display:inline-flex;align-items:center}.faq-layout h2{position:static}.platform{padding:var(--space-lg)}}
@media(max-width:374px){.brand img{display:none}.nav-inner>.btn{padding:8px 12px;font-size:12px}.hero h1{font-size:32px}.hero h1 span{font-size:52px}.actions{gap:var(--space-md)}.actions .btn{font-size:14px;padding:12px 14px}.secondary{font-size:13px}.gallery-grid{grid-template-columns:minmax(0,1fr)}.hero-lead{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:active{transform:none}}

button:active:not(:disabled),summary:active{opacity:.8}a:active{opacity:.85}.filter:hover{color:var(--color-ink)}.filter[aria-pressed=true]:hover{color:var(--color-accent-ink)}.menu-toggle:hover{background:var(--color-raised)}.navlinks a:active{text-decoration:underline}
