
:root{--bg:#0c1212;--panel:#14201e;--panel2:#1c2b27;--line:#34423b;--ink:#eee9d9;--muted:#b2bcad;--gold:#d4ac68;--rust:#b86b4e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}p{max-width:72ch}h1,h2,h3,.serif{font-family:'Libre Baskerville',Georgia,serif;line-height:1.27;font-weight:400}h1{font-size:clamp(2.6rem,6vw,5.8rem);letter-spacing:-.04em}h2{font-size:clamp(1.8rem,3vw,3.2rem)}h3{font-size:1.25rem}.eyebrow{color:var(--gold);letter-spacing:.21em;text-transform:uppercase;font-size:.72rem;font-weight:700}.muted{color:var(--muted)}.wrap{width:min(1200px,calc(100% - 48px));margin:auto}.narrow{max-width:820px}.nav{position:sticky;top:0;background:#0b1312eb;backdrop-filter:blur(18px);border-bottom:1px solid var(--line);z-index:15}.nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:22px}.logo{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;white-space:nowrap;letter-spacing:.04em}.logo i{display:grid;place-items:center;border:1px solid var(--gold);width:39px;height:39px;color:var(--gold);font-style:normal;font-size:26px}.links{display:flex;gap:22px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.links a:hover,.footer a:hover{color:var(--gold)}.hero{min-height:630px;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.hero:before,.scene:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 38%,#9f815245,transparent 32%),linear-gradient(90deg,#0c1212 0%,#0c1212ea 40%,#14232155),repeating-linear-gradient(115deg,transparent 0 70px,#d9c6a50a 71px 72px);pointer-events:none}.hero-art{position:absolute;right:8%;top:10%;height:82%;width:43%;opacity:.7;filter:drop-shadow(0 0 54px #c5a0673c)}.hero-copy{position:relative;max-width:680px}.hero h1 em{font-style:normal;color:var(--gold)}.hero p{font-size:1.1rem;color:#c6c9be}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 21px;border:1px solid var(--gold);background:var(--gold);color:#141a17;font-size:.84rem;font-weight:700;min-height:46px}.btn.alt{background:transparent;color:var(--ink);border-color:#68766c}.btn:hover{filter:brightness(1.1)}section.block{padding:84px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:27px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{display:block;border:1px solid var(--line);background:linear-gradient(150deg,#1c2b27,#111b19);padding:27px;min-height:190px;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-4px);border-color:var(--gold)}.card h3{margin:14px 0}.card p{color:var(--muted);font-size:.9rem}.number{color:var(--gold);font-size:.78rem;letter-spacing:.15em}.feature{background:#172520;border-block:1px solid var(--line)}.feature-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.illustration{min-height:420px;background:radial-gradient(circle at 50% 38%,#8e684842,#13211d 53%);border:1px solid #4a5345;display:grid;place-items:center;position:relative;overflow:hidden}.illustration .hanzi{font-family:serif;font-size:clamp(7rem,16vw,14rem);opacity:.55;color:var(--gold)}.illustration:after{content:'';position:absolute;inset:25px;border:1px solid #a28c5848;pointer-events:none}.footer{border-top:1px solid var(--line);padding:38px 0;color:var(--muted);font-size:.85rem}.footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.page-hero{padding:84px 0 52px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 80% 0%,#594d2a39,transparent 54%)}.page-hero h1{margin:12px 0}.catalog{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0}.pill{border:1px solid var(--line);background:#172420;color:var(--ink);padding:9px 13px;font-size:.8rem}.pill[aria-pressed=true],.pill:hover{border-color:var(--gold);color:var(--gold)}.article{max-width:820px;margin:65px auto 100px}.article h2{font-size:1.8rem;margin-top:48px}.article p{font-size:1.05rem;line-height:1.9}.article aside{padding:20px 24px;border-left:3px solid var(--gold);background:var(--panel);margin:36px 0}.crumb{color:var(--muted);font-size:.83rem}.crumb a{color:var(--gold)}.story-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;margin:35px auto 80px}.scene{min-height:620px;border:1px solid var(--line);position:relative;background:linear-gradient(135deg,#2b3a33,#0d1918 65%);overflow:hidden}.scene-inner{position:relative;padding:clamp(20px,4vw,48px);z-index:1}.chapter-count{color:var(--gold);letter-spacing:.15em;font-size:.8rem;text-transform:uppercase}.scene h2{margin:20px 0 22px}.story-text{background:#0b1512c9;border:1px solid #5f604c;padding:26px;min-height:170px;font-family:Georgia,serif;font-size:1.17rem;line-height:1.9}.choice-list{display:grid;gap:10px;margin-top:19px}.choice{width:100%;text-align:left;border:1px solid #58675a;background:#1a2a23ed;color:var(--ink);padding:14px 18px;min-height:55px}.choice:hover{border-color:var(--gold);background:#263a2e}.choice[disabled]{opacity:.42;cursor:not-allowed}.panel{border:1px solid var(--line);background:var(--panel);padding:22px;margin-bottom:14px}.panel h3{margin:0 0 14px}.stat{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #ffffff12;font-size:.88rem}.tiny{font-size:.82rem}.save-controls{display:grid;gap:9px}.save-controls button{background:#20302a;color:var(--ink);border:1px solid #4f5d52;padding:9px;text-align:left}.chapter-map{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.chapter-map span{border:1px solid var(--line);padding:9px;text-align:center;font-size:.73rem;color:var(--muted)}.chapter-map .active{color:var(--gold);border-color:var(--gold)}.mapnode{display:inline-block;border:1px solid var(--line);padding:15px;margin:7px;cursor:pointer;background:#1b2924}.mapnode:hover{color:var(--gold)}.tool-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px}.tool-panel{border:1px solid var(--line);padding:30px;background:var(--panel)}.tool-output{font:italic 1.35rem Georgia,serif;line-height:1.6;color:var(--gold);min-height:80px}label{display:block;margin:12px 0 4px}.input{width:100%;padding:12px;background:#0a1512;color:var(--ink);border:1px solid #59695e}.search{width:100%;background:#14231e;border:1px solid #5b6a5c;padding:16px;color:white;font-size:1.1rem}.hidden{display:none!important}@media(max-width:800px){.links{overflow:auto;gap:12px;max-width:67vw}.links a{white-space:nowrap}.nav .wrap{min-height:62px}.logo span{display:none}.hero{min-height:620px}.hero-art{width:80%;right:-25%;top:20%;opacity:.18}.grid,.feature-layout,.story-shell,.tool-layout{grid-template-columns:1fr}.story-shell aside{order:2}.scene{min-height:540px}.wrap{width:min(100% - 30px,1200px)}section.block{padding:54px 0}.page-hero{padding:50px 0 30px}.article{margin:40px auto 70px}.feature-layout{gap:25px}.illustration{min-height:280px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}/* V2 editorial / narrative visual system: no unlicensed external images. */


:root{--bg:#101715;--panel:#1b2621;--panel2:#26342b;--ink:#eee8d9;--muted:#b9b9ab;--gold:#e5bb79;--line:#48594d}
body{font-family:"Segoe UI",Arial,sans-serif;background:var(--bg)}
.logo{font-family:Georgia,serif;font-size:.9rem;letter-spacing:.09em}
.nav{background:#101715f5}.links a{position:relative}.links a[aria-current=page]{color:var(--gold)}
.btn,.pill,.game-action,.game-choice{border-radius:3px}.btn{transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}
.hero{background:linear-gradient(90deg,#0b1212 0%,#101716e2 45%,#10171663 100%),url('folios/ef43206aeee259.webp') center/cover no-repeat;min-height:min(90vh,800px)}
.hero:before{background:linear-gradient(0deg,#101715 0%,transparent 45%),radial-gradient(circle at 78% 24%,#ccb37d20,transparent 24%)}
.hero-art{display:none}.hero-copy{max-width:780px}.hero h1{font-size:clamp(3.4rem,7vw,7rem)}
.hero h1 em,.game-top h1 em{font-style:italic;color:var(--gold);font-family:Georgia,serif}
.card{border-radius:2px;background:linear-gradient(145deg,#28392f,#131b18);position:relative;overflow:hidden}
.card:before{content:'卷';position:absolute;right:-8px;bottom:-60px;color:#c1ae7b0b;font-size:11rem;font-family:serif;pointer-events:none}
.article{background:#ede5d2;color:#1e2b26;border:1px solid #bba885;padding:clamp(24px,5vw,76px);max-width:960px;box-shadow:0 20px 60px #0006}
.article h2,.article h3{color:#314735}.article a{color:#764927;text-decoration:underline;text-underline-offset:3px}
.article aside{background:#ded3b9;color:#26342b;border-left-color:#9f633f}.article p{max-width:68ch}
.skip-link{position:absolute;top:-100px;left:10px;background:#e5bb79;color:#101715;padding:8px;z-index:90}.skip-link:focus{top:10px}
.game-page{padding:46px 0 100px;background:radial-gradient(ellipse at 50% 7%,#33463757,transparent 45%)}
.game-top{display:flex;justify-content:space-between;gap:25px;align-items:center;margin:12px 0 40px}
.game-top h1{font-family:Georgia,serif;font-size:clamp(3rem,5.5vw,6.1rem);margin:0;letter-spacing:-.055em}
.game-top p{font-size:1.07rem;color:#c5c3b3;max-width:720px}
.era-stamp{min-width:120px;aspect-ratio:1;display:grid;align-content:center;text-align:center;border:1px solid #a48456;color:var(--gold);font-size:2.9rem;font-family:serif;line-height:1.2;transform:rotate(5deg)}
.era-stamp small{font:9px "Segoe UI",Arial,sans-serif;letter-spacing:.2em}
.begin-layout{display:grid;grid-template-columns:1.14fr 1fr;min-height:590px;border:1px solid #756b51}
.begin-art{min-height:510px;position:relative;background:linear-gradient(0deg,#111a18a0,transparent 60%),url('folios/ef43206aeee259.webp') center/cover}
.begin-art span{position:absolute;bottom:20px;left:30px;color:#e7c894;writing-mode:vertical-rl;font:5rem serif;text-shadow:0 5px 15px #141916}
.begin-form{padding:clamp(24px,4vw,58px);background:#1c2922}.begin-form h2{font-size:clamp(2rem,3vw,3.3rem)}.begin-form p{color:#cbc8b7}
.begin-form .btn{margin-top:25px}.begin-form .input{background:#101b18;color:#eee9d9}
.progress-track{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin:0 0 20px}
.progress-track span{padding:10px 6px;border-top:2px solid #4c5c4e;color:#aab6a6;text-align:center;letter-spacing:.2em;font-size:.75rem}
.progress-track .complete{border-color:#cfad75;background:#caa46b16;color:#e5c38b}.progress-track .current{border-color:#f3cf8f;background:#caa46b2f;color:#fff}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:19px;align-items:start}
.game-stage{min-width:0;background:#e9e1cd;color:#22332c;border:1px solid #a4a18d}
.story-visual{height:clamp(230px,31vw,430px);position:relative;overflow:hidden;background:#122321}
.story-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)}
.story-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0a1311aa,transparent 45%);pointer-events:none}
.visual-caption{position:absolute;left:25px;right:25px;bottom:22px;display:flex;justify-content:space-between;gap:15px;align-items:end;color:#f2e5ca;font:700 .75rem AtlasInter;letter-spacing:.14em;text-transform:uppercase;z-index:2}
.story-paper{padding:clamp(20px,4vw,54px)}.story-paper h2{color:#20372c;font-size:clamp(2.25rem,4vw,4.4rem);margin:8px 0 22px}.story-paper h3{font-size:1.4rem;color:#314e3a}
.story-copy{white-space:pre-line;font:1.18rem/1.93 Georgia,serif;max-width:70ch}
.story-phase{border-top:1px solid #bcb39d;padding-top:18px;margin-top:36px}.story-phase p{color:#5e685d;font-size:.91rem}
.game-actions{display:grid;gap:9px}.game-action,.game-choice{font:600 .95rem/1.5 AtlasInter,sans-serif;min-height:54px;text-align:left;border:1px solid #acb0a1;padding:15px 18px;cursor:pointer}
.game-action{background:#d9d6c8;color:#283a30}.game-choice{background:#1e3629;color:#efdfc6;border-color:#526c59}
.game-action:hover:not([disabled]){background:#c9c9b4}.game-choice:hover:not([disabled]){background:#355840}
.game-action:disabled,.game-choice:disabled{opacity:.48;cursor:not-allowed}
.game-aside{background:#19251e;border:1px solid #4f654f;padding:23px;position:sticky;top:92px;max-height:calc(100vh - 108px);overflow-y:auto}
.record-header{display:flex;gap:18px;align-items:center;padding-bottom:20px;border-bottom:1px solid #435847}.record-header>span{font:2.1rem serif;color:#d8ae75;writing-mode:vertical-rl}.record-header strong{font-size:.97rem}
.record-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #3b5140;font-size:.85rem}.record-line strong{text-align:right;font-size:.78rem}
.record-details{padding:20px 0;border-bottom:1px solid #3d5145}.record-details>summary{cursor:pointer;font-family:Georgia,serif;font-size:1.15rem;color:#f0d6ad}.record-details h3{font-size:1rem;margin:4px 0 12px}
.record-details ul,.record-details ol{padding-left:20px;font-size:.75rem;line-height:1.65;max-height:190px;overflow:auto}
.person{padding:10px 0;border-bottom:1px solid #ffffff13}.person summary{cursor:pointer;font-size:.84rem}.person-stance{font:italic .85rem/1.6 Georgia,serif;color:#d4c7b0}.person .tiny{color:#abb9aa;margin:.4em 0}.memory{color:#e4c996!important}
.slot{display:flex;flex-wrap:wrap;gap:5px;border:1px solid #415544;padding:9px;margin-bottom:8px}.slot strong{flex-basis:100%;font-size:.75rem}.slot button,.save-tools button{background:#2b3d30;color:#e9dec5;border:1px solid #6e7967;padding:5px 9px;font-size:.8rem;min-height:35px}.slot button:disabled{opacity:.45}
.save-tools{display:grid;gap:8px}.save-tools input{width:100%;font-size:.75rem}.save-tools label{font-size:.75rem}
.history-boundary p{font-size:.83rem;color:#c6bfb1}.history-boundary a{font-size:.8rem;color:#edc387;text-decoration:underline}
.consequence-list{line-height:1.75;padding-left:20px}.consequence-list li{padding-bottom:10px;border-bottom:1px solid #bfb49b}
.below-game-actions{padding:20px 0;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.below-game-actions #save-status{font-size:.86rem;color:#e9c897}
[hidden]{display:none!important}
@media(max-width:980px){.game-layout{grid-template-columns:minmax(0,1fr)}.game-aside{position:static;max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 23px}.record-header,.record-line{grid-column:1/-1}}
@media(max-width:680px){.hero{min-height:670px;background-position:58% center}.begin-layout{grid-template-columns:1fr}.begin-art{min-height:260px}.begin-art span{font-size:3.2rem}.game-top{align-items:start}.era-stamp{display:none}.game-aside{grid-template-columns:1fr}.game-page{padding-top:22px}.progress-track{gap:3px}.progress-track span{letter-spacing:0}.story-visual{height:250px}.visual-caption{font-size:.62rem;left:15px;right:15px}.story-paper{padding:25px 20px}.story-copy{font-size:1.05rem}.article{border:0;padding:30px 20px}.page-hero{padding:45px 0}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}.btn:hover{transform:none}}
.article-banner{background:linear-gradient(90deg,#121e1bd9,#13211dc9 60%,#15211e75),var(--cover) center/cover;padding:90px 0 74px;min-height:390px}.article-banner h1{max-width:880px;margin:12px 0;font:clamp(2.6rem,5vw,5.2rem)/1.14 Georgia,serif}.article-banner p{font:1.1rem/1.7 Georgia,serif;max-width:680px}.article-banner small{color:#dfc494}.article-id{font-size:.74rem;letter-spacing:.18em;color:#866a47}.article-section h2{font-size:1.8rem}.article-sources{line-height:1.85}.article-related{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}.related-pill{border:1px solid #b8a88e;padding:9px 12px}.small-notice{font-size:.86rem!important;color:#5d685d}.entry-card[hidden]{display:none!important}
.exhibition{background:#1b2a22;border-top:1px solid #52634f;border-bottom:1px solid #52634f}.lens-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.lens-columns article{background:#dfd7c3;color:#213329;padding:30px;min-height:250px}.lens-columns article:nth-child(2){background:#d0b78e}.lens-columns article:nth-child(3){background:#344937;color:#f1e4cf}.lens-columns span{letter-spacing:.14em;font-size:.72rem;font-weight:700}.lens-columns h3{font-size:1.8rem}.lens-columns p{line-height:1.8}.motion-controls{display:flex;align-items:center;gap:15px;margin:22px 0}.motion-controls input{flex:1;accent-color:#d4ac68}.film-stage{position:relative;min-height:410px;background:linear-gradient(#21373b,#506155 70%,#162b29);border:1px solid #9f9073;overflow:hidden}.film-stage>span{position:absolute;bottom:12px;left:20px;letter-spacing:.17em;font-size:.67rem;color:#dec39b}.film-moon{position:absolute;top:45px;right:85px;width:100px;height:100px;background:#e6d0ab;border-radius:50%;box-shadow:0 0 100px #e7d6b858}.film-roof{position:absolute;bottom:58px;left:-20%;width:140%;height:120px;background:#172c29;clip-path:polygon(0 70%,25% 50%,48% 65%,70% 40%,100% 62%,100% 100%,0 100%)}.film-human{position:absolute;left:calc(18% + var(--jump)*20%);bottom:calc(155px + (1 - (var(--jump) - 1.5)*(var(--jump) - 1.5))*80px);height:110px;width:30px;background:#171e1a;border-radius:16px 16px 8px 8px;transform:rotate(calc(var(--jump)*13deg - 9deg));transition:left .35s,bottom .35s,transform .35s}.film-human:before{content:'';position:absolute;width:38px;height:38px;border-radius:50%;background:#191d18;top:-28px;left:-4px}.film-human:after{content:'';position:absolute;width:104px;height:45px;background:#222a24;top:42px;left:-36px;clip-path:polygon(0 20%,85% 0,100% 20%,85% 70%,5% 100%);transform:rotate(12deg)}.sound-panel{background:#2a3e32;border:1px solid #879179;padding:35px}.sound-keys{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.sound-key{min-height:145px;border:1px solid #a4aa96;border-radius:4px;background:linear-gradient(#e1d6bb,#a8a78f);color:#293d31;font-weight:700}.sound-key:hover{background:#f3d7a2}.sound-panel p{font-size:.82rem;color:#e5d9b7}
@media(max-width:800px){.lens-columns{grid-template-columns:1fr}.lens-columns article{min-height:0}.sound-keys{grid-template-columns:repeat(5,minmax(0,1fr))}.sound-key{font-size:.68rem;min-height:100px}.article-banner{min-height:300px;padding:55px 0}}
@media(prefers-reduced-motion:reduce){.film-human{transition:none}}

/* Network of concepts — thematic editorial connections, not an ancient geographic map. */
.atlas-network-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.atlas-network-heading h2{font-size:clamp(27px,3.8vw,51px);margin:12px 0}.atlas-network{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:20px;align-items:stretch}.graph-shell,.graph-info{border:1px solid rgba(217,185,130,.2);background:linear-gradient(150deg,#101918,#182422);border-radius:13px;padding:20px}.graph-shell svg{width:100%;height:auto;display:block}.graph-lines line{stroke:#788577;stroke-width:1.4;opacity:.3;transition:opacity .3s,stroke-width .3s}.graph-lines line.active{stroke:#d7ac70;opacity:.92;stroke-width:2.7}.graph-node{outline:none;cursor:pointer;transition:opacity .2s}.graph-node circle{fill:#1c2927;stroke:#819082;stroke-width:1.6;transition:stroke .2s,fill .2s}.graph-node text{pointer-events:none;fill:#e7dfc9;font:700 20px Georgia,serif}.graph-node .graph-six{font:11px Arial,sans-serif;letter-spacing:1px;fill:#a6b0a1}.graph-node.active circle{fill:#7b3e31;stroke:#ebbf76;stroke-width:3}.graph-node.adjacent circle{stroke:#d1a870}.graph-node:focus-visible circle{stroke:#fff;stroke-width:5}.graph-info{display:flex;flex-direction:column;justify-content:center;padding:clamp(20px,3vw,38px)}.graph-info h3{font-size:clamp(30px,3vw,48px);margin:14px 0}.graph-info h4{margin:15px 0 12px}.graph-related{display:grid;gap:10px}.graph-related button{cursor:pointer;background:#293731;color:#e9dbbf;border:1px solid #6b7563;border-radius:7px;padding:12px;text-align:left}.graph-related button:hover,.graph-related button:focus-visible{border-color:#ecd1a6;background:#38433a}.graph-index{display:flex;justify-content:space-between;margin-top:24px;padding-top:12px;border-top:1px solid #526058;font-size:12px;letter-spacing:1px;color:#b8bcb4}@media(max-width:800px){.atlas-network{grid-template-columns:1fr}.atlas-network-heading{align-items:flex-start;flex-direction:column}.graph-shell{padding:4px 8px}.graph-info{min-height:260px}}

.reader-state{border:1px solid #baaa8e;background:#f3ead7;margin:24px 0;padding:19px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:#293b2c}.reader-state button,.route-progress button{border:1px solid #506852;background:#243c2c;color:#f9e8c5;cursor:pointer;padding:8px 14px;min-height:42px}.reader-state #reader-feedback{font-size:.8rem}.reader-state .eyebrow{color:#836d45}.reading-status{display:block;margin-top:10px;font-size:.75rem;color:#d6b883}.route-progress{border:1px solid #506450;padding:20px 24px;margin:24px 0;background:#1e3027}.route-progress p{margin:8px 0}.reading-track{background:#09130e;height:9px;border-radius:20px;overflow:hidden;margin:14px 0}.reading-track div{height:100%;background:#c8a46e;transition:width .25s}.route-progress button{margin-top:8px;background:transparent}

/* V2.1 field interaction — actual scene hotspots, itinerary, evidence reasoning. */
.scene-hotspots{position:absolute;inset:0;z-index:3;pointer-events:none}.scene-hotspot{pointer-events:auto;position:absolute;max-width:39%;border:1px solid #f5d89c;background:#182d24ef;color:#fff2d7;border-radius:3px;padding:9px 12px;font:.78rem/1.3 "Segoe UI",Arial,sans-serif;box-shadow:0 7px 25px #0007;text-align:left}.scene-hotspot:hover:not(:disabled),.scene-hotspot:focus-visible{background:#395840;z-index:5}.scene-hotspot:disabled{display:none}.visual-caption{pointer-events:none}.latest-event{padding:18px 22px;margin:22px 0 8px;background:#d6d0ba;border-left:4px solid #95754e}.latest-event p{color:#34443c;margin:4px 0 0;line-height:1.65}.story-paper .latest-event .eyebrow{color:#664e28}.route-actions{display:flex;flex-wrap:wrap;gap:10px}.route-action{border:1px solid #698273;background:#f5f1e6;color:#284335;padding:10px 16px;min-height:46px}.route-action:disabled{opacity:.6;cursor:default}.puzzle-card{border:1px solid #b2a07b;padding:25px;background:#f1e9d6}.puzzle-card h4{font:1.5rem/1.3 Georgia,serif;margin:8px 0 14px;color:#283a2e}.puzzle-card p{max-width:62ch}.puzzle-answer{background:#fffaf0;color:#293b2e;border:1px solid #9aab99;min-height:48px;text-align:left;padding:13px 16px}.puzzle-answer:hover{background:#dce7d8}.puzzle-hint{font-style:italic}.story-visual{isolation:isolate}.story-phase{scroll-margin-top:95px}
@media(max-width:650px){.story-visual{height:310px}.scene-hotspot{max-width:57%;font-size:.7rem;padding:8px;min-height:43px}.scene-hotspot:nth-child(2){left:42%!important}.scene-hotspot:nth-child(3){left:12%!important;top:68%!important}.route-action,.puzzle-answer{width:100%}.puzzle-card{padding:18px}.game-stage,.game-aside{min-width:0}.story-paper h2{font-size:clamp(1.9rem,7vw,3rem)}}
@media(prefers-reduced-motion:reduce){.scene-hotspot,.puzzle-answer,.route-action{transition:none!important}}

.dialogue-action{background:#f7f2e4;border:1px solid #a4ad9a;min-height:50px;color:#2b4233;padding:13px 17px;text-align:left;font:600 .91rem/1.45 "Segoe UI",Arial,sans-serif}.dialogue-action:hover:not(:disabled){background:#e0e6d6}.dialogue-action:disabled{opacity:.54;cursor:default}

/* Fictional orientation map: native buttons atop decorative roads, keyboard and touch accessible. */
.city-map{margin:22px 0 19px;background:#1b2d26;color:#e9dfc7;padding:17px;border:1px solid #6d775f}.city-map-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:13px}.city-map-head .eyebrow{color:#e9bd73}.map-board{position:relative;width:100%;height:350px;background:radial-gradient(ellipse at 40% 40%,#304535,#192922 74%);border:1px solid #4a6a4f;overflow:hidden}.map-roads{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-roads path{fill:none;stroke:#b7a17a;stroke-width:3;stroke-dasharray:4 7;opacity:.65}.map-node{position:absolute;transform:translate(-50%,-50%);border:1px solid #a3ae8f;background:#233a2c;color:#efe4cb;border-radius:40px;min-width:53px;min-height:42px;padding:8px 12px;max-width:124px;line-height:1.25;font-size:.72rem;box-shadow:0 5px 12px #0006;cursor:pointer}.map-node.here{background:#a16e37;color:#100f0c;border-color:#f2cb82;font-weight:800}.map-node.selected{outline:3px solid #efcb8e;outline-offset:3px;z-index:3}.map-node:hover,.map-node:focus-visible{background:#d6bd90;color:#15251d;z-index:4}.map-detail{padding:17px 6px 6px;line-height:1.6;font-size:.9rem}.map-detail strong{color:#f0c783;font:1.3rem Georgia,serif}.map-detail p{color:#e2ddca;margin:8px 0}.map-detail .tiny{color:#c2b69d}.map-visit{min-height:46px;border:1px solid #e0c08a;background:#d9b77e;color:#1d291d;padding:9px 19px;margin-top:6px;cursor:pointer}.map-visit:disabled{opacity:.5;cursor:default}
@media(max-width:640px){.city-map{padding:12px}.map-board{height:360px}.map-node{padding:7px 8px;font-size:.61rem;min-width:42px;max-width:94px}.city-map-head{align-items:flex-start;flex-direction:column}.map-detail{padding:15px 2px 3px}}
/* Two independently playable, era-specific historical fiction campaigns. */
.era-game{--era-accent:#bd915e}.era-game[data-era="dynasties"]{--era-accent:#8ca8a4}
.era-game .game-top h1{font-size:clamp(2.8rem,5.2vw,5.65rem);line-height:1.08}
.era-switch{display:flex;gap:12px;flex-wrap:wrap;margin:-15px 0 28px}
.era-switch a{padding:12px 18px;border:1px solid #6e705e;color:#e5dfc9;text-decoration:none;border-radius:2px;min-height:44px}
.era-switch a[aria-current="page"],.era-switch a:hover{background:#f0d19d;color:#18292b;border-color:#e9cb92}
.era-intro{display:grid;grid-template-columns:1.15fr .85fr;min-height:530px;border:1px solid #696d64;background:#172725}
.era-intro-scene{position:relative;min-height:450px;overflow:hidden}
.era-intro-scene img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.era-intro-scene:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(transparent,#0c1b1de0)}
.era-intro-scene span{position:absolute;z-index:1;bottom:30px;left:30px;right:30px;font-size:.76rem;letter-spacing:.21em;color:#eee0ca}
.era-intro-form{padding:clamp(24px,4vw,62px);display:flex;flex-direction:column;justify-content:center;gap:14px}
.era-intro-form h2{font-family:Georgia,serif;font-size:clamp(2rem,3vw,3rem);font-weight:400;line-height:1.12;margin:0}
.era-intro-form p{line-height:1.7;color:#c4c4b9;margin:0 0 10px}
.era-intro-form label{font-size:.83rem;color:#eee1c7;font-weight:600}
.era-intro-form .btn{margin-top:14px}
.era-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,325px);align-items:start;gap:20px}
.era-stage{min-width:0;background:#efeee7;color:#182d2d;border:1px solid #7d7a6b}
.era-scene{margin:0;height:clamp(230px,34vw,450px);position:relative;overflow:hidden;background:#1f3b42}
.era-scene img{width:100%;height:100%;object-fit:cover}
.era-scene figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;padding:36px 26px 19px;color:#fff;font-size:.72rem;letter-spacing:.07em;background:linear-gradient(transparent,#0c191ce9)}
.era-paper{padding:clamp(22px,4vw,52px)}
.era-paper h2{font-size:clamp(2rem,4vw,3.6rem);font-weight:400;line-height:1.14;font-family:Georgia,serif;margin:0 0 20px;scroll-margin-top:94px}
.era-lede{font-size:1.15rem;line-height:1.85;max-width:75ch}
.era-objective{padding:16px 21px;border-left:3px solid #b18b53;background:#dfdfd1;margin:26px 0}.era-objective strong{font-size:.71rem;letter-spacing:.13em}.era-objective p{margin:8px 0 0;line-height:1.6}
.era-feedback{color:#445e57;font-size:.91rem;line-height:1.6;min-height:1.4em}
.era-paper h3{font:400 1.46rem/1.3 Georgia,serif;margin:30px 0 10px}
.era-paper h4{font:600 1.14rem/1.35 Georgia,serif}
.era-paper section:not(#era-ending){border-top:1px solid #c5c8bf;padding:11px 0 14px}
.era-locations{display:flex;gap:10px;flex-wrap:wrap}.era-place-button{font:600 .9rem/1.3 AtlasInter,sans-serif;background:transparent;border:1px solid #617b72;min-height:48px;cursor:pointer;color:#284b46;padding:11px 15px}.era-place-button:hover{background:#dbdfd6}.era-place-button.active{background:#334f49;color:#fff}.era-place-button:disabled{cursor:default;opacity:1}
.era-actions>div{display:grid;gap:10px}.era-action{font:500 .98rem/1.5 AtlasInter,sans-serif;padding:14px 17px;min-height:50px;border:1px solid #a6aba5;background:#fffef9;text-align:left;color:#233f3b;cursor:pointer}.era-action:hover:not(:disabled){background:#e4e8de;border-color:#53776c}.era-action:disabled{color:#7b827e;cursor:not-allowed;background:#e8e8e1}
.era-action.era-decision{border-left:4px solid #9b754c;background:#eae2d0}
.era-deduction{padding:13px 16px;border:1px solid #a6a99f;background:#e2e6df}.era-deduction .era-action{display:block;width:100%;margin:9px 0}.era-deduction p{line-height:1.6}
.era-ledger{background:#192c2c;border:1px solid #626e64;color:#e8e6db;padding:25px 21px;position:sticky;top:90px;max-height:calc(100vh - 110px);overflow:auto}
.era-ledger h3{font:400 1.35rem Georgia,serif;margin:15px 0}.era-ledger details{border-top:1px solid #58635a;padding:15px 0}.era-ledger summary{cursor:pointer;font-weight:600;min-height:30px}.era-ledger ul,.era-ledger ol{padding-left:20px;font-size:.87rem;line-height:1.7}.era-ledger li{margin:9px 0}.era-ledger details details{padding:9px 0}.era-ledger details p{line-height:1.55}
.era-save{border-top:1px solid #58635a;padding:14px 0}.era-slot{border:1px solid #657369;padding:10px;margin:9px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.era-slot strong{display:block;flex-basis:100%;font-size:.8rem}.era-slot button,.era-save>button{cursor:pointer;background:#d4c7a9;color:#1c302c;border:0;min-height:40px;padding:8px 12px}.era-slot button:disabled{opacity:.4;cursor:default}.era-save label{display:block;margin:16px 0 7px;font-size:.82rem}.era-save input{max-width:100%;font-size:.8rem}
.era-source{border-top:1px solid #58635a;line-height:1.65;font-size:.88rem}.era-source a{color:#f2d5a2}
.era-game button:focus-visible,.era-game a:focus-visible,.era-game summary:focus-visible{outline:3px solid #e1b267;outline-offset:4px}
.era-game [hidden]{display:none!important}
@media(max-width:980px){.era-layout{grid-template-columns:1fr}.era-ledger{position:static;max-height:none}}
@media(max-width:680px){.era-intro{grid-template-columns:1fr}.era-intro-scene{min-height:270px}.era-intro-scene img{height:100%}.era-switch a{flex:1;text-align:center;font-size:.8rem;padding:12px 6px}.era-paper{padding:25px 18px}.era-scene{height:230px}.era-scene figcaption{font-size:.62rem;padding:35px 14px 14px}.era-ledger{padding:18px}.era-lede{font-size:1.04rem}.era-game .game-top{margin-bottom:32px}}
@media(prefers-reduced-motion:reduce){.era-game *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.era-home-entry{padding:70px 0;background:#1e3331;color:#eee5d5}.era-home-entry h2{font:400 clamp(2.2rem,4vw,4rem)/1.1 Georgia,serif;margin:15px 0}.era-home-entry>div>p{max-width:780px;line-height:1.8}.era-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:25px 0}.era-home-grid a{display:flex;flex-direction:column;min-height:275px;padding:26px;border:1px solid #788479;text-decoration:none;color:#e9e2d3;background:#142623}.era-home-grid a:nth-child(2){background:linear-gradient(145deg,#524239,#1a3130)}.era-home-grid a:nth-child(3){background:linear-gradient(145deg,#273f49,#15282d)}.era-home-grid span{letter-spacing:.13em;font-size:.75rem;color:#e0bd8a}.era-home-grid h3{font:400 1.8rem Georgia,serif;margin:22px 0 5px}.era-home-grid p{color:#d0ccc0;line-height:1.7;flex:1}.era-home-grid strong{font-size:.84rem;color:#f1d397}.era-home-grid a:hover,.era-home-grid a:focus-visible{border-color:#f2d49d;transform:translateY(-2px)}@media(max-width:780px){.era-home-grid{grid-template-columns:1fr}.era-home-grid a{min-height:180px}}@media(prefers-reduced-motion:reduce){.era-home-grid a:hover{transform:none}}
/* Keep every navigation destination visible at narrow widths without hidden sideways scrolling. */
@media(max-width:680px){.nav .wrap{display:flex;flex-wrap:wrap;gap:0;padding:5px 0 9px}.nav .logo{flex-basis:100%;height:40px}.nav .links{max-width:none;width:100%;overflow:visible;justify-content:space-between;gap:5px;font-size:.66rem;letter-spacing:0}.nav .links a{white-space:nowrap;padding:6px 0}.nav .logo i{width:31px;height:31px;font-size:22px}}
@media(max-width:360px){.nav .links{font-size:.6rem;gap:3px}}


/* Original fictional night-city panorama; semantic text and links stay in the document. */
.hero{background:linear-gradient(90deg,#0b1415fa 0%,#0b1415e6 21%,#0b1415b9 38%,#0b14157b 58%,#0b141522 80%),url('scenes/jianghu-night-city-hero.webp') center 49%/cover no-repeat;}
.hero:before{background:linear-gradient(0deg,#091213e6 0%,transparent 33%),linear-gradient(180deg,#09121370,transparent 38%);}
@media(max-width:800px){.hero{background:linear-gradient(0deg,#0a1313f5 0%,#0a1313bc 45%,#0a131346 100%),url('scenes/jianghu-night-city-mobile.webp') center 48%/cover no-repeat;}.hero h1{text-shadow:0 3px 25px #0006}}

/* Release: locally navigable route diagrams and an actual source-labelled evidence notebook. */
.era-map-caption{font-size:.66rem;letter-spacing:.13em;color:#65776f;margin:15px 0 8px}
.era-route-map{position:relative;width:100%;height:220px;overflow:hidden;border:1px solid #b6b39d;background:radial-gradient(ellipse at 34% 35%,#e1e1d3,#c6d0bf 55%,#adbcab);color:#667965}
.era-route-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.era-route-node{position:absolute;transform:translate(-50%,-50%);max-width:132px;min-width:80px;min-height:44px;border:1px solid #617a71;border-radius:30px;background:#e9ebdc;color:#2a443e;font:600 .78rem/1.25 "Segoe UI",Arial,sans-serif;padding:7px 10px;cursor:pointer;box-shadow:0 3px 10px #192c2336}
.era-route-node.current{background:#273f38;color:#fff0d8;cursor:default;border-color:#b69156}
.era-route-node:hover:not(:disabled){background:#ffe3ab}
.era-route-node:focus-visible{outline:3px solid #a46d26;outline-offset:4px}
.era-evidence-item{border-left:2px solid #c7aa72;margin:11px 0!important;padding-left:12px}
.era-evidence-item strong{display:block;color:#f1ddbb;text-transform:capitalize}
.era-evidence-item span{display:block;color:#cad6ce;font-size:.79rem;line-height:1.6;margin-top:5px}
@media(max-width:390px){.era-route-node{min-width:62px;max-width:86px;font-size:.66rem}.era-route-map{height:230px}}
@media(prefers-reduced-motion:reduce){.era-route-node{transition:none!important}}

/* Original scene and portrait integration — keep the text as the primary reading layer. */
.era-person-portrait{float:left;width:64px;height:90px;object-fit:cover;object-position:50% 18%;margin:4px 12px 8px 0;border:1px solid #a99b7d;border-radius:6px;background:#e2d3b3}
.era-people details::after,.person::after{content:"";display:block;clear:both}
.story-visual img,.era-scene img{object-fit:cover;object-position:center center}
@media(max-width:390px){.era-person-portrait{width:52px;height:70px;margin-right:9px}}
@media(prefers-reduced-motion:reduce){.story-visual img,.era-scene img{transition:none!important}}

/* Project-original, inspectable object gallery. Natural keyboard buttons and link targets. */
.object-study{max-width:1110px}.object-hero{display:grid;grid-template-columns:minmax(230px,45%) 1fr;gap:clamp(18px,4vw,42px);align-items:center;background:#f3efe6;color:#172a25;border:1px solid #b4ac9a;padding:clamp(18px,4vw,34px);margin:0 0 36px}.object-hero img{width:100%;height:290px;object-fit:contain}.object-hero h2,.object-hero p{color:#172a25}.object-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:14px;margin:22px 0 40px}.object-thumb{background:#f4f0e7;border:1px solid #8d8f82;min-height:160px;padding:12px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;color:#132b25;cursor:pointer}.object-thumb img{height:104px;max-width:100%;object-fit:contain}.object-thumb[aria-pressed=true]{outline:3px solid #ae8038;outline-offset:2px}.object-thumb:focus-visible{outline:3px solid #176a52;outline-offset:3px}.sketch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.sketch-grid figure{margin:0;background:#f4f0e7;padding:12px;color:#172a25}.sketch-grid img{width:100%;height:200px;object-fit:contain}.sketch-grid figcaption{font-size:.87rem;padding:8px 0}
.era-route-map{background-image:linear-gradient(90deg,#e6ecdfb5,#e2e9d9a8),var(--map-asset);background-position:center;background-size:cover}.map-board{background-image:linear-gradient(#10291ac4,#10291ac4),url('art/maps/warring_map_schematic.svg');background-size:cover;background-position:center}
@media(max-width:660px){.object-hero{grid-template-columns:1fr}.object-hero img{height:215px}.sketch-grid{grid-template-columns:1fr}.sketch-grid img{height:175px}}
