:root{--ink:#142c43;--blue:#28648b;--gold:#b38a57;--paper:#f7f5f0;--line:#d8dedf;--muted:#617181;--shadow:0 24px 70px rgba(19,45,61,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans CJK SC","Microsoft YaHei",system-ui,sans-serif;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 88% 4%,#dce8eb 0,transparent 35%),radial-gradient(circle at 8% 94%,#e7e1d5 0,transparent 42%);pointer-events:none}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}.topbar{height:74px;max-width:1500px;margin:auto;padding:0 clamp(18px,4vw,48px);display:flex;align-items:center;gap:25px}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-weight:700;letter-spacing:.13em}.brand-mark{border:1px solid var(--blue);color:var(--blue);padding:8px;font-family:Georgia,serif;letter-spacing:.08em}.stage-track{display:flex;gap:8px;margin-left:auto;align-items:center}.stage-track i{width:19px;height:3px;background:#cbd6d9;display:block;border-radius:6px;transition:background .3s,width .3s}.stage-track i.active{width:29px;background:var(--blue)}.source-link{background:none;border:0;color:var(--ink);padding:8px 2px;border-bottom:1px solid var(--gold);white-space:nowrap}#app{min-height:calc(100vh - 74px)}.page{max-width:1400px;margin:0 auto;padding:clamp(24px,3vw,44px) clamp(18px,4vw,48px) 80px;animation:appear .45s ease both}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--blue);font-weight:700;text-transform:uppercase}.title{font-family:"Noto Serif CJK SC","SimSun",serif;font-weight:500;font-size:clamp(38px,5vw,72px);line-height:1.15;letter-spacing:.03em;margin:15px 0 20px}.lead{max-width:760px;color:var(--muted);font-size:clamp(15px,1.45vw,19px);line-height:1.8}.intro{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(30px,5vw,78px);align-items:center;min-height:calc(100vh - 120px)}.intro-photo{position:relative;aspect-ratio:1.24;transform:rotate(-2deg);padding:15px 15px 48px;background:#fff;box-shadow:var(--shadow)}.intro-photo img{height:100%;width:100%;object-fit:cover;object-position:center}.intro-photo span{position:absolute;right:20px;bottom:17px;color:var(--gold);font-family:Georgia,serif;letter-spacing:.13em}.intro-copy .title{font-size:clamp(54px,7vw,104px)}.intro-note{color:var(--muted);font-size:14px;margin:25px 0}.buttons{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:4px;padding:14px 22px;min-height:47px;font-weight:700;letter-spacing:.04em;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 9px 25px rgba(20,44,67,.18)}.btn:active{transform:translateY(0) scale(.98)}.btn.light{background:transparent;color:var(--ink)}.btn.ghost{border-color:transparent;background:transparent;color:var(--blue)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px}.section-head .title{margin-bottom:8px}.chapter-count{font-family:Georgia,serif;color:var(--gold);font-size:17px;white-space:nowrap}.game-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);gap:25px;align-items:start}.media{position:relative;background:#d7ddd9;border-radius:9px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:1.55}.media img{width:100%;height:100%;object-fit:cover}.media .caption{position:absolute;left:18px;bottom:17px;background:rgba(14,35,52,.8);color:#fff;border-radius:3px;padding:8px 11px;font-size:13px;letter-spacing:.08em}.panel{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:9px;padding:clamp(20px,3vw,34px);box-shadow:0 14px 40px rgba(32,52,64,.05)}.panel h2{font:500 clamp(24px,2.6vw,37px)/1.3 "Noto Serif CJK SC","SimSun",serif;margin:6px 0 16px}.panel p{line-height:1.8;color:var(--muted)}.panel .fact{background:#edf3f3;border-left:3px solid var(--gold);padding:13px 16px;border-radius:0 4px 4px 0;color:var(--ink);margin:14px 0}.step-row{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.step-pill{font-size:12px;letter-spacing:.06em;border:1px solid var(--line);color:var(--muted);padding:7px 10px;border-radius:99px}.step-pill.done{border-color:#83a9a7;background:#e4f0ec;color:#236b65}.hotspot{position:absolute;width:54px;height:54px;border:1px solid #fff;border-radius:50%;background:rgba(15,45,63,.4);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 8px rgba(255,255,255,.22);transition:transform .2s,background .2s}.hotspot:hover{transform:scale(1.12);background:var(--blue)}.hotspot.found{background:#699e97}.hotspot:nth-of-type(1){left:13%;top:26%}.hotspot:nth-of-type(2){left:48%;top:45%}.hotspot:nth-of-type(3){left:79%;top:23%}.story-card{min-height:125px}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice-card{min-height:76px;text-align:left;padding:13px 16px;background:#fff;border:1px solid var(--line);border-radius:5px;color:var(--ink);transition:transform .2s,border-color .2s,background .2s}.choice-card:hover{transform:translateY(-2px);border-color:var(--blue)}.choice-card.selected{background:#e8f2f2;border-color:var(--blue)}.choice-card .small{font-size:12px;color:var(--muted);display:block;margin-top:6px}.timeline-tray{display:flex;align-items:stretch;gap:7px;flex-wrap:wrap;padding:14px;background:#e9efed;border-radius:6px;min-height:94px}.timeline-slot{flex:1 1 130px;min-height:73px;background:#fff;border:1px dashed #9baeb5;border-radius:5px;padding:10px;color:var(--muted);text-align:center}.timeline-slot.filled{border-style:solid;border-color:#8cacaa;color:var(--ink);background:#f5faf8}.timeline-slot strong{display:block;font-size:13px}.timeline-slot small{display:block;color:var(--blue);margin-top:5px}.puzzle{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#142c43;padding:3px;border-radius:8px;overflow:hidden;aspect-ratio:1.54}.puzzle-tile{border:0;background-repeat:no-repeat;background-size:300% 300%;position:relative;transition:filter .18s,transform .18s;outline-offset:-3px}.puzzle-tile:hover{filter:brightness(1.13)}.puzzle-tile.selected{outline:4px solid #e4b86b;z-index:1}.puzzle-tile small{position:absolute;top:5px;left:6px;background:#fff;padding:2px 6px;border-radius:3px;color:var(--ink);font-weight:700}.puzzle.done .puzzle-tile small{display:none}.plan-map{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;max-width:660px;margin:auto;aspect-ratio:1.48}.map-cell{border:1px solid #aac0bd;background:#e7f0ee;border-radius:6px;color:var(--ink);font-size:13px;min-width:0;transition:background .18s,transform .18s}.map-cell:hover{transform:scale(.97)}.map-cell.wall{background:#c9d0cc;color:#64716e}.map-cell.path{background:#80b4a4;color:#fff}.map-cell.start,.map-cell.end{background:#315d77;color:#fff;font-weight:700}.map-cell.current{outline:3px solid var(--gold);outline-offset:-3px}.emblem-area{display:grid;place-items:center;min-height:375px;background:radial-gradient(circle,#eff7f8,#d9e8ed);border-radius:9px;border:1px solid #c5d7db;overflow:hidden}.emblem-svg{width:min(80%,390px);overflow:visible}.emblem-part{opacity:.08;transform-origin:center;transition:opacity .55s,transform .55s}.emblem-part.on{opacity:1}.emblem-parts{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px}.emblem-part-btn{border:1px solid var(--line);padding:12px;background:#fff;border-radius:4px;text-align:left}.emblem-part-btn.done{background:#e7f1f0;border-color:#7ba9a5}.motto-stage{min-height:405px;border-radius:9px;background:linear-gradient(145deg,#102b42,#305c73);color:#fff;padding:25px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}.motto-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.motto-tile{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;min-height:105px;border-radius:5px;font:500 clamp(30px,4vw,54px) "Noto Serif CJK SC","SimSun",serif;transition:transform .2s,background .2s}.motto-tile:hover{transform:translateY(-3px);background:rgba(255,255,255,.2)}.motto-tile.open{background:rgba(191,150,91,.56);border-color:#e3c58f}.motto-caption{font-size:13px;margin-top:19px;color:#c9dfec;line-height:1.7}.origin-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.origin-item{padding:11px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);text-align:left}.origin-item:hover{border-color:var(--blue)}.origin-item.done{background:#e8f3f1;border-color:#7ba9a5}.origin-item span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.selected-origin{font-size:14px;color:var(--blue);min-height:60px;margin:12px 0}.flow-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#142c43;color:white;padding:11px 18px;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;z-index:30;box-shadow:var(--shadow);font-size:14px}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:9px;padding:0;max-width:min(660px,calc(100vw - 30px));box-shadow:0 26px 90px rgba(12,31,47,.28);background:#fbfaf6;color:var(--ink)}dialog::backdrop{background:rgba(10,31,45,.62);backdrop-filter:blur(3px)}.dialog-inner{padding:32px;max-height:80vh;overflow:auto}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-top h2{font:500 29px "Noto Serif CJK SC","SimSun",serif}.icon-btn{width:34px;height:34px;border:0;background:#edf0ed;border-radius:50%;font-size:21px}.source-list{line-height:1.8;color:var(--muted)}.source-list li{margin-bottom:12px}.credits-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:24px;align-items:start}.credits-box{height:min(62vh,680px);min-height:460px;background:#142c43;color:#f8f5eb;border-radius:7px;overflow:hidden;position:relative;box-shadow:var(--shadow)}.credits-box::before,.credits-box::after{content:"";position:absolute;left:0;right:0;height:58px;z-index:2;pointer-events:none}.credits-box::before{top:0;background:linear-gradient(#142c43,transparent)}.credits-box::after{bottom:0;background:linear-gradient(transparent,#142c43)}.credits-scroll{height:100%;overflow-y:hidden;scrollbar-width:none}.credits-scroll.unlocked{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#7795a7 #142c43}.credits-inner{padding:220px clamp(24px,5vw,70px) 260px}.credit-entry{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.15)}.credit-year{color:#e2b778;font:700 18px Georgia,serif;letter-spacing:.08em}.credit-entry h3{font:500 23px "Noto Serif CJK SC","SimSun",serif;margin:0 0 10px}.credit-entry p{line-height:1.75;font-size:14px;color:#d3dde3;margin:0}.credit-entry img{width:100%;height:145px;object-fit:cover;border-radius:3px;margin:14px 0 0}.credit-end{font:500 clamp(25px,3vw,43px) "Noto Serif CJK SC","SimSun",serif;text-align:center;margin:95px 0 0}.player{background:rgba(255,255,255,.75);border:1px solid var(--line);border-radius:8px;padding:25px;position:sticky;top:20px}.player h2{font:500 28px "Noto Serif CJK SC","SimSun",serif;margin:8px 0 2px}.player small{color:var(--muted)}.player-meter{height:4px;background:#d7e1e2;border-radius:5px;margin:22px 0 13px;overflow:hidden}.player-meter span{display:block;height:100%;background:var(--blue);width:0}.time-row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.lyric{min-height:115px;margin:19px 0;color:var(--blue);font:500 20px/1.65 "Noto Serif CJK SC","SimSun",serif}.player .btn{width:100%}.player-status{font-size:13px;color:var(--muted);line-height:1.6;margin-top:15px}.cursor-dot{position:fixed;width:7px;height:7px;border-radius:50%;background:#4e95b4;pointer-events:none;z-index:100;opacity:0;mix-blend-mode:multiply;will-change:transform,opacity}.cursor-dot.visible{opacity:.4}.success-banner{margin:16px 0;padding:16px;border-radius:5px;background:#e4f2ed;border:1px solid #8bb9a8;color:#1d655d}.hint{font-size:13px!important;color:#557e94!important}.muted{color:var(--muted)}@media(max-width:850px){.intro,.game-layout,.credits-layout{grid-template-columns:1fr}.intro{min-height:unset}.intro-photo{max-height:430px}.section-head{align-items:flex-end}.credits-box{height:56vh;min-height:400px}.player{position:static}.stage-track{display:none}.topbar{height:65px}.page{padding-bottom:45px}.motto-stage{min-height:300px}.motto-tile{min-height:82px}}@media(max-width:520px){.title{font-size:38px}.intro-copy .title{font-size:58px}.choice-grid,.origin-list{grid-template-columns:1fr}.game-layout{gap:16px}.media{aspect-ratio:1.25}.panel{padding:18px}.section-head{display:block}.chapter-count{margin-top:10px}.plan-map{gap:3px}.map-cell{font-size:10px}.credit-entry{grid-template-columns:60px 1fr}.credit-entry h3{font-size:18px}.credits-inner{padding-left:20px;padding-right:20px}.motto-row{gap:5px}.motto-tile{font-size:30px}.topbar{padding:0 16px}.brand{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
