:root{--paper:#e9e4d9;--sheet:#f3efe5;--ink:#262923;--mute:#6f7168;--line:#aaa89b;--red:#923e36;--gold:#9c7947;--dark:#18211e;--shadow:0 25px 80px #25231d16}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-height:100svh;color:var(--ink);background:var(--paper);font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}a{color:var(--red);text-underline-offset:3px}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.18' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar,.footer{position:relative;z-index:25;max-width:1440px;margin:auto;padding:0 clamp(24px,4.6vw,76px);display:flex;align-items:center;justify-content:space-between}.topbar{height:86px;border-bottom:1px solid #77776a33}.brand{border:0;background:none;color:var(--ink);display:flex;align-items:center;gap:12px;text-align:left;font-family:"Noto Serif SC","Songti SC",serif;font-size:17px;font-weight:700;letter-spacing:.09em}.brand-mark{color:var(--red);font-size:24px}.brand small{display:block;margin-top:3px;color:var(--mute);font:9px Arial,sans-serif;letter-spacing:.28em}.top-actions{display:flex;gap:22px;align-items:center}.era,.text-btn,.icon-btn{font-size:11px;letter-spacing:.1em;color:var(--mute)}.text-btn,.icon-btn{background:none;border:0;padding:10px 0}.text-btn:hover,.icon-btn:hover{color:var(--red)}.footer{min-height:62px;border-top:1px solid #77776a33;gap:12px;font-size:10px;letter-spacing:.06em;color:var(--mute)}#app{min-height:calc(100svh - 148px);display:grid;place-items:center;overflow:hidden}.screen{width:min(1440px,100%);min-height:calc(100svh - 148px);margin:auto;position:relative;animation:screen-in .55s both}.screen-leave{animation:screen-out .27s both}.home{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.95fr);align-items:center;gap:4vw;padding:54px clamp(24px,6vw,90px) 56px}.home-copy{position:relative;z-index:2;max-width:640px}.kicker{display:block;color:var(--red);font:11px Arial,sans-serif;letter-spacing:.28em;font-weight:700}.home h1{font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-weight:600;font-size:clamp(64px,8.4vw,132px);line-height:1.05;letter-spacing:.1em;margin:28px 0 12px}.home h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(20px,2.3vw,30px);font-weight:400;letter-spacing:.22em;margin:0}.home-desc{margin:34px 0 30px;max-width:440px;font-size:14px;line-height:2.1;color:#5e6058}.home-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.primary{background:var(--red);color:#fff8e9;border:1px solid var(--red);min-height:52px;padding:0 26px;letter-spacing:.17em;transition:transform .2s,background .2s,box-shadow .2s}.primary:hover{transform:translateY(-2px);background:#793129;box-shadow:0 12px 20px #923e3626}.primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.ghost{background:transparent;border:1px solid #9d9d8e;padding:13px 18px;color:var(--ink);font-size:12px;transition:background .2s}.ghost:hover{background:#fff8e766}.hidden-hint{font-size:11px;color:var(--gold);letter-spacing:.07em}.home-meta{display:flex;gap:24px;margin-top:58px;padding-top:20px;border-top:1px solid #84867958;font-size:11px;color:var(--mute)}.home-art{position:relative;min-height:550px;height:min(68vh,720px);display:grid;place-items:center}.map-paper{position:absolute;width:min(97%,610px);aspect-ratio:1/1.08;transform:rotate(-5deg);background:#ddd5c4;box-shadow:var(--shadow);border:1px solid #a9a28e;overflow:hidden}.map-paper:before{content:"";position:absolute;inset:16px;border:1px solid #b4ad9a;pointer-events:none;z-index:3}.map-svg{width:100%;height:100%;display:block}.map-path{stroke-dasharray:720;stroke-dashoffset:720;animation:draw-route 2.2s .25s ease forwards}.map-stamp{position:absolute;right:7%;bottom:10%;border:3px double #923e366b;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;transform:rotate(-13deg);color:#923e36a9;font:bold 16px "Songti SC",serif;letter-spacing:.1em;text-align:center}.art-caption{position:absolute;right:-1%;top:8%;writing-mode:vertical-rl;letter-spacing:.35em;color:var(--mute);font-size:11px}.level{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);gap:3vw;align-items:stretch;padding:28px clamp(24px,5vw,76px) 48px}.level-main{display:flex;flex-direction:column;min-width:0}.level-top{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--mute);font-size:11px;letter-spacing:.1em}.level-top b{color:var(--red);font-weight:500}.progress{height:2px;background:#aaa99a66;margin:18px 0 38px}.progress>span{height:100%;display:block;background:var(--red);transition:width .5s}.level-title{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(42px,5vw,72px);font-weight:500;letter-spacing:.08em;margin:0 0 18px}.level-place{font-size:12px;color:var(--red);letter-spacing:.14em}.narrative{max-width:610px;color:#4c5048;font-size:clamp(15px,1.4vw,18px);line-height:2.05;min-height:75px;margin:28px 0 22px}.board{max-width:680px;border-top:1px solid #aaa99a;border-bottom:1px solid #aaa99a;padding:24px 0;min-height:177px}.board-title{font-size:12px;letter-spacing:.1em;color:var(--gold);margin:0 0 16px}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice{padding:15px 14px;text-align:left;min-height:55px;background:#f5f0e68a;border:1px solid #aaa99a;line-height:1.6;color:var(--ink);font-size:13px;transition:border-color .2s,background .2s,transform .2s}.choice:hover{border-color:var(--red);background:#fff9ed;transform:translateY(-2px)}.choice.selected{border-color:var(--red);background:#efe1d9;color:var(--red)}.choice:disabled{cursor:default;opacity:.68;transform:none}.feedback{margin-top:15px;font-size:13px;line-height:1.8;color:var(--red);min-height:25px}.level-bottom{display:flex;gap:14px;align-items:center;margin-top:22px;flex-wrap:wrap}.level-bottom .ghost{border:0;padding-left:0;color:var(--mute)}.level-visual{min-width:0;display:flex;flex-direction:column}.art-frame{position:relative;flex:1;min-height:500px;background:#d3d0c1;overflow:hidden;border:1px solid #aba896;box-shadow:var(--shadow)}.art-frame svg{display:block;width:100%;height:100%;position:absolute;inset:0}.art-frame .visual-label{position:absolute;top:22px;left:24px;color:#fff8e7;font:11px Arial,sans-serif;letter-spacing:.18em;text-shadow:0 2px 8px #0008}.art-frame .visual-number{position:absolute;right:24px;bottom:20px;font:70px Georgia,serif;color:#fff8e744}.visual-note{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--mute);padding-top:14px;letter-spacing:.1em}.source-mini{font-size:11px;color:var(--mute);margin:12px 0 0}.source-mini a{color:var(--mute)}.end{display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:center;padding:52px clamp(24px,7vw,100px)}.end h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(45px,6vw,82px);font-weight:500;letter-spacing:.1em}.end p{font:clamp(16px,2vw,22px)/2 "Noto Serif SC","Songti SC",serif}.end-art{height:500px;position:relative;background:var(--dark);overflow:hidden}.end-art .map-svg{opacity:.65}.end-art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#0c171ab8)}.end-art span{position:absolute;bottom:35px;left:35px;color:#fff9e0;z-index:2;font:14px Georgia,serif;letter-spacing:.25em}.ending-text{margin:28px 0!important;color:var(--red);white-space:pre-line}.fiction{font-size:11px!important;line-height:1.7!important;color:var(--mute)}.end-actions{display:flex;gap:10px;flex-wrap:wrap}dialog{width:min(720px,calc(100% - 28px));max-height:min(85vh,850px);border:1px solid #aaa99a;background:var(--sheet);color:var(--ink);box-shadow:0 30px 100px #161b1880;padding:30px 36px;overflow:auto}dialog::backdrop{background:#17201dd0;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:start;justify-content:space-between;border-bottom:1px solid #aaa99a;padding-bottom:15px}.dialog-head h2{font:32px "Noto Serif SC","Songti SC",serif;margin:8px 0}.source-list{padding:0;list-style:none}.source-list li{padding:15px 0;border-bottom:1px solid #aaa99a66;font-size:13px;line-height:1.7}.source-list small{display:block;color:var(--mute);margin-top:5px}.source-note{color:var(--mute);font-size:13px;line-height:1.9}.cursor-ring,.cursor-glow,.cursor-trail{display:none;position:fixed;left:0;top:0;pointer-events:none;z-index:100;opacity:0}.cursor-ring{width:24px;height:24px;border:1px solid #923e3699;border-radius:50%;will-change:transform}.cursor-glow{width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,#a952321e,transparent 70%);will-change:transform}.cursor-trail{inset:0;overflow:hidden;contain:strict}.cursor-echo{position:absolute;left:0;top:0;width:22px;height:22px;border:1px solid #923e36;border-radius:50%;background:radial-gradient(circle,#923e3630,transparent 70%);opacity:0;will-change:transform,opacity}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-ring,.cursor-glow,.cursor-trail{display:block}}@keyframes draw-route{to{stroke-dashoffset:0}}@keyframes screen-in{from{opacity:0;filter:blur(5px);transform:translateY(8px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes screen-out{to{opacity:0;filter:blur(4px);transform:translateY(-5px)}}@media(max-width:850px){.home{grid-template-columns:1fr;padding-top:44px}.home-art{height:340px;min-height:340px;order:-1}.map-paper{width:min(78%,330px)}.art-caption{right:10%}.home h1{font-size:clamp(62px,13vw,100px)}.home-meta{margin-top:34px}.level{grid-template-columns:1fr;gap:18px}.level-visual{order:-1}.art-frame{height:230px;min-height:230px;flex:none}.level-title{font-size:48px}.progress{margin-bottom:20px}.narrative{margin:16px 0}.end{grid-template-columns:1fr}.end-art{height:280px;order:-1}}@media(max-width:540px){.topbar{height:68px;padding:0 18px}.top-actions{gap:11px}.era{display:none}.brand{font-size:15px}.footer{padding:16px 18px;min-height:52px;flex-wrap:wrap;line-height:1.5}.footer span:last-child{display:none}#app,.screen{min-height:calc(100svh - 120px)}.home{padding:18px 20px 40px;gap:8px}.home-art{height:250px;min-height:250px}.map-paper{width:230px}.map-stamp{width:65px;height:65px;font-size:10px}.home h1{margin-top:10px;font-size:61px}.home h2{font-size:18px}.home-desc{margin:22px 0;font-size:13px}.home-actions{gap:10px}.hidden-hint{width:100%;font-size:10px}.home-meta{gap:12px;flex-wrap:wrap;font-size:10px}.level{padding:17px 18px 38px}.art-frame{height:180px;min-height:180px}.level-title{font-size:40px;margin-bottom:8px}.level-place{font-size:10px}.narrative{font-size:14px;min-height:0;line-height:1.8}.board{padding:16px 0;min-height:0}.choices{gap:7px}.choice{min-height:52px;font-size:12px;padding:10px}.level-bottom{margin-top:12px}.primary{min-height:46px;padding:0 18px;font-size:12px}.visual-note{display:none}.end{padding:20px 22px 40px}.end-art{height:200px}.end h1{font-size:42px;margin:16px 0}.end p{font-size:16px}dialog{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
