/* Local fonts make the entire interface work offline. */
:root{--font-ui:"DengXian","PingFang SC","Noto Sans CJK SC",sans-serif;--font-display:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;--font-mono:"Bahnschrift","DIN Alternate","DengXian",sans-serif}
body{font-family:var(--font-ui);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.brand{font-family:var(--font-display);font-weight:700;font-size:23px;letter-spacing:2px;gap:12px}.brand small{font-family:var(--font-mono);font-size:8px;font-weight:400;letter-spacing:1.2px}.brand-icon{display:grid;place-items:center;width:37px;height:42px;border:1px solid #68776f;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%);font-family:var(--font-mono);font-size:16px;font-weight:600;letter-spacing:0;color:#dfe6dc}.bureau{font-family:var(--font-ui);font-size:12px}.topbar{height:80px;background:#0c1312}.icon-button{font-family:var(--font-ui)}
.story-copy h1{font-family:var(--font-display);font-weight:700;letter-spacing:1px}.story-copy h1 span,.story-lead,.chapter-text,.letter p,.story-meta{font-family:var(--font-ui)}.level-number,.result-score,.ending-score b,.level-grid button,.story-facts b{font-family:var(--font-mono);font-weight:600}.story-copy .eyebrow{font-family:var(--font-mono);font-size:11px}.story-photo span,.seal{font-family:var(--font-display);font-weight:700}.letter p{font-size:15px;line-height:2}.chapter-text{font-size:15px}.story-lead{font-size:15px}.field-rules b{font-weight:700}.field-rules span{font-size:13px}.story-small{font-size:12px}.modal-kicker,.photo-toolbar,.classified,.difficulty,.archive-count{font-family:var(--font-mono)}
#story-screen[data-mode="title"]{padding:0;max-width:none;min-height:calc(100svh - 80px);background:#090f10}
.game-cover{position:relative;isolation:isolate;min-height:760px;height:calc(100svh - 80px);max-height:1200px;overflow:hidden;background:#090f10;color:#e6e9df}
.cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:-3}
.cover-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#080e10b8 0%,#080e1077 30%,#080e1033 48%,transparent 70%),linear-gradient(0deg,#080e10f5 0%,#080e1044 15%,transparent 40%,#080e1022 82%,#080e1077 100%)}
.game-cover:after{content:"";pointer-events:none;position:absolute;inset:19px;border:1px solid #b8d6c012;z-index:-1}
.cover-topline{position:absolute;top:39px;left:6%;right:6%;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:#8c9c95}.cover-topline i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b74f47;margin-right:10px;box-shadow:0 0 10px #b74f4755}.cover-topline>span:last-child{font-family:var(--font-ui);font-size:11px;color:#84958c;letter-spacing:3px}
.cover-copy{position:relative;padding:clamp(130px,18vh,215px) 0 160px;margin-left:8%;width:50%;max-width:750px}
.cover-eyebrow{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:2px;color:#a4b4aa}.cover-eyebrow>span{background:#893d37;color:#ecd7cc;padding:7px 10px;font-size:10px;font-weight:700;letter-spacing:2px}.cover-eyebrow b{font-weight:400}
#story-screen[data-mode="title"] .cover-title{font-family:var(--font-display);font-size:clamp(67px,7.5vw,125px);font-weight:700;line-height:1.06;letter-spacing:-3px;color:#e9ece3;margin:26px 0 15px;white-space:nowrap;text-shadow:0 3px 24px #060a0a55;outline:none}
.cover-title span{color:inherit;margin-left:5px}.cover-english{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:4.6px;color:#869b94}
.cover-tagline{font-family:var(--font-ui);font-weight:400;font-size:18px;letter-spacing:3px;line-height:1.9;color:#c1c9bd;margin:36px 0 32px}
.cover-actions{width:310px;max-width:100%}.cover-actions .primary{padding:18px 21px;border-radius:1px;background:#dde6ce;color:#17231d;font-family:var(--font-ui);font-size:15px;font-weight:700;letter-spacing:1px;box-shadow:0 3px 20px #050a0944}.cover-actions .primary:hover{background:#f0f1df;transform:translateY(-2px)}.cover-actions .primary span{font-family:var(--font-mono);font-size:20px;line-height:18px}.cover-actions .secondary{padding:13px 17px;border-radius:1px;border-color:#52625888;background:#101b1766;color:#b7c3b7;font-family:var(--font-ui);font-size:13px;font-weight:400;display:flex;justify-content:space-between;margin-top:10px}
.cover-key{display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:9px;letter-spacing:1px;color:#7e9389;margin-top:18px}.cover-key>span{font-family:var(--font-ui);font-size:10px;letter-spacing:1px}.cover-key i{height:10px;width:1px;background:#4a5c52;margin:0 5px}
.cover-classification{position:absolute;right:7%;bottom:165px;border:2px solid #a6655877;padding:11px 23px 9px;transform:rotate(-8deg);color:#b27664bb;text-align:center;mix-blend-mode:screen;user-select:none}.cover-classification>span{font-size:10px;letter-spacing:5px}.cover-classification strong{font-family:var(--font-display);display:block;font-size:29px;font-weight:700;letter-spacing:3px;border-top:1px solid #a6655855;border-bottom:1px solid #a6655855;margin:7px 0;padding:4px 0}.cover-classification small{font-family:var(--font-mono);font-size:7px;letter-spacing:2px}
.cover-bottom{position:absolute;bottom:42px;left:8%;right:6%;display:flex;align-items:end;gap:35px;padding-top:25px;border-top:1px solid #8a9d8c2a}.cover-facts{display:flex;gap:34px}.cover-facts>span{display:flex;gap:8px;align-items:baseline;font-family:var(--font-ui);font-size:11px;color:#819489;white-space:nowrap}.cover-facts b{font:500 27px var(--font-mono);color:#a5b7ac}.cover-bottom p{font-size:10px;color:#697d71;margin:0 0 3px}.cover-bottom p i{font-style:normal;margin:0 10px;color:#47594d}.cover-file{margin-left:auto;font:10px var(--font-mono);letter-spacing:2px;color:#73897d;white-space:nowrap;margin-bottom:3px}
@media(min-width:1800px){.cover-copy{margin-left:10%;padding-top:21vh}.cover-tagline{margin:45px 0 36px}.cover-bottom{left:10%}}
@media(max-width:1100px){.cover-copy{margin-left:6%;width:63%;padding-top:150px}.cover-tagline{font-size:16px}.cover-english{font-size:10px;letter-spacing:3.5px}.cover-classification{right:5%;bottom:160px}.cover-bottom{left:6%;gap:22px}.cover-file{display:none}.cover-facts{gap:22px}}
@media(max-width:760px){.topbar{height:74px;padding:0 5%}.brand{font-size:20px;letter-spacing:1px;gap:9px}.brand small{font-size:6.4px;letter-spacing:.8px}.brand-icon{width:29px;height:35px;font-size:13px}.top-actions{gap:14px}.top-actions .icon-button{font-size:18px}#story-screen[data-mode="title"]{min-height:calc(100svh - 74px)}.game-cover{height:calc(100svh - 74px);min-height:770px;max-height:none}.cover-image{height:56%;object-position:87% center;opacity:.83}.cover-shade{background:linear-gradient(0deg,#080e10 0%,#080e10 44%,#080e10aa 61%,#080e1033 85%,#080e1022)}.game-cover:after{inset:12px}.cover-topline{top:25px;left:7%;right:7%;font-size:8px;letter-spacing:1px}.cover-topline>span:last-child{font-size:8px;letter-spacing:1px}.cover-copy{padding:310px 0 140px;margin-left:7%;width:86%;max-width:none}.cover-eyebrow{font-size:9px;gap:10px;letter-spacing:1px}.cover-eyebrow>span{font-size:8px;padding:6px 8px}#story-screen[data-mode="title"] .cover-title{font-size:clamp(42px,11.6vw,77px);letter-spacing:-1.5px;margin:21px 0 12px}.cover-title span{display:inline;margin-left:3px}.cover-english{font-size:8px;letter-spacing:1.6px}.cover-tagline{font-size:14px;line-height:1.85;letter-spacing:1.7px;margin:23px 0}.cover-actions{width:100%}.cover-actions .primary{padding:16px 19px;font-size:14px}.cover-actions .secondary{font-size:12px}.cover-key{font-size:8px;margin-top:13px}.cover-key>span{font-size:9px}.cover-classification{display:none}.cover-bottom{left:7%;right:7%;bottom:26px;display:block;padding-top:17px}.cover-facts{justify-content:space-between;gap:10px}.cover-facts>span{font-size:9px;gap:6px}.cover-facts b{font-size:22px}.cover-bottom p{font-size:9px;margin-top:14px}.letter p,.chapter-text{font-size:14px}}
@media(max-width:380px){.game-cover{min-height:770px}.cover-copy{padding-top:285px}.cover-image{height:50%}.cover-english{font-size:7px;letter-spacing:1.3px}.brand small{font-size:5.9px}.top-actions{gap:10px}}
@media(prefers-reduced-motion:reduce){.cover-actions .primary:hover{transform:none}}
/* Keep returning-player actions in normal flow on small screens. */
@media(max-width:760px){.game-cover{height:auto;min-height:max(770px,calc(100svh - 74px));display:flex;flex-direction:column}.cover-copy{padding-bottom:36px}.cover-bottom{position:relative;left:auto;right:auto;bottom:auto;margin:auto 7% 26px}}
