:root{color-scheme:dark;--sea:#081e2b;--ink:#dce6e7;--muted:#92adb5;--line:#294653;--warm:#e8bf87;--panel:#102936;--accent:#9bd6d3;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--sea);color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0%,#173d4b66,transparent 55%),var(--sea);min-height:100vh}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#173642;color:var(--ink);border-radius:7px;padding:10px 16px;min-height:44px}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--warm);border-color:var(--warm);color:#162a31}.quiet{background:transparent}.danger{color:#f6b4a6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{width:100%;background:#061b25;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:12px;min-height:44px}textarea{resize:vertical;line-height:1.9}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--warm);outline-offset:3px}label{display:block;color:var(--muted);font-size:13px;margin:14px 0 6px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,5vw,56px);font-family:"Songti SC","Noto Serif CJK SC",serif;font-weight:400;letter-spacing:.09em}h2{font-size:23px;font-weight:500}h3{font-size:17px;font-weight:500}.brand{font-size:22px;letter-spacing:.1em;color:var(--ink)}.eyebrow{color:var(--warm);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.muted,small{color:var(--muted)}header{border-bottom:1px solid var(--line);padding:23px 5vw;display:flex;justify-content:space-between;align-items:center;gap:20px}header .right{display:flex;align-items:center;gap:20px;font-size:13px}main{max-width:1240px;margin:auto;padding:40px 5vw 80px}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:10%;padding:8vh 0;min-height:72vh}.hero p{line-height:2;color:var(--muted);max-width:440px}.hero .tagline{font-family:"Songti SC",serif;font-size:24px;color:var(--ink)}.card{border:1px solid var(--line);background:linear-gradient(145deg,#132e3bc9,#0c2430);border-radius:10px;padding:24px}.auth{max-width:430px}.auth button{width:100%;margin-top:18px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:18px 0}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.heading h1{font-size:36px;margin-bottom:8px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.save-card{min-height:240px;display:flex;flex-direction:column;justify-content:space-between}.save-card p{line-height:1.8}.badge{font-size:12px;color:var(--warm)}.nav{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:26px;white-space:nowrap}.nav a{padding:10px 14px;color:var(--muted);border-radius:6px}.nav a.active{background:#23414d;color:var(--ink)}.studio{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:26px}.prose{font-family:"Songti SC","STSong",serif;font-size:18px;line-height:2.1;white-space:pre-wrap}.segment{padding:20px 0 28px;border-bottom:1px solid var(--line)}.segment:first-child{padding-top:0}.segment h2{font-size:21px;color:var(--warm)}.segment .actions{font-family:system-ui;font-size:13px}.side p{line-height:1.8;color:var(--muted)}.reading{max-width:780px}.empty{padding:30px;color:var(--muted);line-height:1.9}.saving{font-size:12px;color:var(--accent)}.editor textarea{min-height:260px;font-family:"Songti SC",serif;font-size:17px}.list-item{border-bottom:1px solid var(--line);padding:16px 0}.list-item p{margin:8px 0;line-height:1.7}.notice-inline{border-left:3px solid var(--warm);padding:16px;background:#32444066;line-height:1.8;margin:20px 0}.guidance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.guidance textarea{min-height:140px}.world-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px}.map{width:100%;height:auto;display:block;min-height:280px;background:radial-gradient(ellipse at center,#124052,#061724);border-radius:9px}.map .ring{stroke:#427181;fill:none;stroke-width:1}.map text{fill:#afcbd0;font-size:12px}.map .marker{fill:var(--warm);stroke:#e8bf8766;stroke-width:8}.map .location{fill:#74a1ad}.clock{font-size:48px;font-weight:300;font-variant-numeric:tabular-nums}.ambient{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.character{padding:20px 0;border-bottom:1px solid var(--line)}.character h3{color:var(--warm)}.character p{margin-bottom:6px}.timeline{padding:0;list-style:none}.timeline li{display:flex;gap:24px;padding:16px 0;border-bottom:1px solid var(--line);line-height:1.7}.timeline time{color:var(--warm);min-width:95px;font-size:13px}.message{border-left:2px solid var(--line);padding:16px 20px;margin-bottom:14px}.message strong{color:var(--warm);font-weight:500}.message p{margin:8px 0 0;line-height:1.8}details{margin-top:20px}summary{cursor:pointer;color:var(--accent);padding:10px 0;min-height:44px}.location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 0}.location-list div{border:1px solid var(--line);padding:14px;border-radius:6px;font-size:13px}.scene-card p{line-height:1.8;color:var(--muted)}dialog{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(720px,94vw);max-height:88vh;padding:28px}dialog::backdrop{background:#020e18b8}dialog .prose{padding-top:20px}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#e8bf87;color:#102b35;border-radius:7px;padding:14px 22px;box-shadow:0 8px 40px #0005;max-width:90vw;display:none;z-index:5}.loading{text-align:center;padding:25vh 20px}.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.page-note{font-size:12px;line-height:1.8;color:var(--muted);margin-top:30px}#scene-content h2{margin-top:24px}.error{color:#f0baa6}.new-save{max-width:580px}.history button{font-size:13px}.ring-decoration{width:100%;aspect-ratio:1;border:1px solid #356171;border-radius:50%;box-shadow:0 0 0 40px #173e4a33,0 0 0 80px #173e4a22;position:relative}.ring-decoration:after{content:'此后';position:absolute;inset:0;display:grid;place-items:center;font:36px "Songti SC",serif;color:#a5c1c7}.grid{display:grid;gap:20px}@media(max-width:760px){header{padding:18px 20px}header .right{gap:10px}header .email{display:none}main{padding:28px 20px 80px}.hero,.studio,.world-grid,.guidance{grid-template-columns:1fr}.hero{gap:32px;padding:20px 0}.auth{max-width:100%}.hero .tagline{font-size:21px}.heading{display:block}.heading .actions{margin-top:15px}.nav{margin-left:-20px;margin-right:-20px;padding:0 12px 10px;position:sticky;top:0;background:var(--sea);z-index:2}.nav a{padding:10px 12px}.card{padding:20px}.prose{font-size:17px}.map{min-height:240px}.fieldrow{grid-template-columns:1fr}.timeline li{gap:14px}.timeline time{min-width:80px}.clock{font-size:42px}.ring-decoration{display:none}h1{font-size:40px}.location-list{grid-template-columns:1fr}}
/* Shared novel reader: one accepted segment at a time, scoped by save. */
.novel-reader{display:grid;grid-template-columns:250px minmax(0,1fr);gap:24px;align-items:start}.novel-reader>*{min-width:0}.chapter-sidebar{position:sticky;top:20px;padding:20px}.chapter-drawer{margin:0}.chapter-drawer nav{display:grid;gap:4px;max-height:58vh;overflow:auto}.chapter-drawer button{display:flex;gap:12px;text-align:left;background:transparent;border-color:transparent;line-height:1.5;padding:12px 8px}.chapter-drawer button small{color:var(--muted);font-variant-numeric:tabular-nums}.chapter-drawer button[aria-current=true]{background:#244653;border-color:var(--line);color:var(--warm)}.chapter-drawer span{overflow-wrap:anywhere}.novel-page{max-width:820px;padding:44px 54px;background:linear-gradient(140deg,#18333d,#122b35);box-shadow:0 22px 70px #0002}.novel-page .segment{border:0;padding:0}.novel-page h2{font-family:"Songti SC","STSong",serif;font-size:28px;line-height:1.5;margin:28px 0 38px}.novel-page .prose{font-size:19px;line-height:2.05;overflow-wrap:anywhere}.chapter-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:40px}.chapter-pagination span{font-size:12px;color:var(--muted)}.chapter-tools{border-top:1px solid var(--line);margin-top:30px;padding-top:10px}.reader-categories button[aria-pressed=true]{color:var(--warm);border-color:var(--warm)}
/* Theme tokens apply only inside the active save's world surfaces. */
#app[data-world-theme="deep-ring-v1"]{min-height:100vh;background:radial-gradient(ellipse at 62% 4%,#14607844,transparent 42%),linear-gradient(155deg,#062c3a,#021520 80%);color:var(--ink)}
#app[data-world-theme="deep-ring-v1"] main{max-width:1440px}#app[data-world-theme="deep-ring-v1"] .card{background:linear-gradient(130deg,#0b3342d9,#041d29eb);border:1px solid #76bed34d;box-shadow:inset 0 1px #a8e6f40a,0 12px 44px #0002;border-radius:16px}
.world-time{margin:20px 0 26px}.world-time .eyebrow{font-size:18px;letter-spacing:2px;margin-bottom:10px}.world-time .eyebrow span{font-size:13px;letter-spacing:0;color:var(--muted)}.world-time .badge{font-size:15px}.world-time .clock{font-size:76px;line-height:1.1;letter-spacing:-3px;font-weight:300;color:#c5f2f5}.world-time .ambient{justify-content:flex-end;max-width:480px;padding-top:18px;font-size:13px;line-height:1.8}.world-wordmark{width:100%;text-align:right;font:35px "Songti SC",serif;letter-spacing:12px;color:#8dbcc9;margin-top:20px}.world-wordmark small{display:block;font:9px system-ui;letter-spacing:4px;margin-top:10px}.world-grid{grid-template-columns:minmax(0,2.15fr) minmax(280px,.95fr);gap:20px;align-items:start}.city-column{min-width:0}.city-panel{padding:16px!important;overflow:hidden}.map-heading{display:flex;justify-content:space-between;align-items:center;padding:10px 10px 8px;gap:12px}.map-heading h2{font-size:17px;letter-spacing:3px;margin-bottom:8px}.map-heading .eyebrow{font-size:9px;letter-spacing:3px}.map-heading button{font-size:12px;padding:8px 12px;white-space:nowrap}.city-map{border-radius:10px;min-height:0;background:transparent}.city-building{fill:#123e4d;stroke:#4c85943d;stroke-width:.7}.city-building.shade-1{fill:#215260}.city-building.shade-2{fill:#0c3442}.city-building.shade-3{fill:#2b5965}.city-window{fill:#90dae3aa;stroke:none}.city-window.warm{fill:#e2b473bb}.city-transit{fill:none;stroke:#84d0dd66;stroke-width:2}.city-foundation{fill:#062735;stroke:#497381;stroke-width:6}.city-corridor{stroke:#254d5b;stroke-width:9}.city-track{stroke:#b0e5e99c;stroke-width:1}.city-centre{stroke:#80cfdb66;stroke-width:3}.city-map .city-title{font:17px "Songti SC",serif;letter-spacing:4px;fill:#c5f5f7}.city-map .city-subtitle{font:5px system-ui;letter-spacing:2px;fill:#a3d6de}.marine{fill:#315e6d44}.seabed{fill:#020f19a6;stroke:#27556355;stroke-width:3}.map-node circle{fill:#7ccdd8;stroke:#193e4d;stroke-width:4}.map-node.domestic circle{fill:#ebc488;stroke:#698882}.map-node rect{fill:#052734dd;stroke:#64a9bd44;stroke-width:.7}.city-map text.location-label{fill:#def5f7;font-size:12px;font-weight:500}.person-marker{fill:#f2c787;stroke:#f4cd8677;stroke-width:5}.city-map text.people-label{font-size:11px;fill:#ffdeb0;paint-order:stroke;stroke:#062533;stroke-width:4}.city-map .together-label{font-size:9px;fill:#aed0d9;paint-order:stroke;stroke:#062533;stroke-width:3}.city-map .compass{font-size:9px}.north{fill:none;stroke:#a0cdd7;stroke-width:1}.scale path{stroke:#b5d5dc;fill:none}.city-map .scale text{font-size:7px}.map-caption{display:flex;justify-content:space-between;padding:10px 10px 0;margin:0;font-size:11px;letter-spacing:2px;color:var(--muted)}.city-locations{margin-top:18px;padding:18px 22px!important}.city-locations details{margin:0}.city-locations summary{font-size:18px;font-weight:500}.location-list{gap:10px}.location-list article{display:flex;align-items:center;gap:16px;border:1px solid #77bbca44;border-radius:10px;padding:16px;background:#0c304055;min-width:0}.location-list article div{border:0;padding:0}.location-list strong{font-size:16px;font-weight:500}.location-list p{color:var(--muted);line-height:1.7;margin:5px 0 0}.location-icon{font-size:34px;line-height:1;color:#8fcbd5;min-width:36px;text-align:center}.status-panel{padding:28px 24px!important}.status-panel>h2{font-size:29px;letter-spacing:2px;margin:2px 0 8px}.status-panel>.eyebrow{font-size:10px;letter-spacing:4px}.character-cards{border:1px solid #73b6c42b;border-radius:12px;padding:0 16px;background:#011a2577;margin-top:24px}.character{padding:22px 0}.character:last-child{border-bottom:0}.character-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.character-heading h3{font:25px "Songti SC",serif;margin:0 0 12px}.presence{font-size:11px;color:#9edcce;white-space:nowrap}.current-location{font-size:17px}.current-location span{color:var(--accent);margin-right:8px}.current-activity{font-size:15px;padding-left:24px}.next-movement{font-size:13px;line-height:1.7;color:var(--muted);margin-top:14px}.time-control-title{padding-top:24px;border-top:1px solid var(--line);margin:22px 0 16px;font-size:19px}.time-control-title small{font:8px system-ui;letter-spacing:2px;color:var(--muted);margin-left:8px}.advance-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.advance-controls button{display:flex;align-items:center;gap:12px;text-align:left;background:linear-gradient(120deg,#114455aa,#0c3043aa);border:1px solid #6cb6cc88;padding:16px 14px;min-height:60px;font-size:16px}.advance-controls button:nth-child(n+3){grid-column:1/-1}.advance-controls button span{font-size:24px;line-height:1;color:#beeef0}.time-note{font-size:13px;margin:26px 0 0;letter-spacing:1px}.world-secondary{justify-content:center;margin:28px 0}.world-secondary button{min-width:120px}.device-chat{max-width:720px;margin:auto}.chat-top{text-align:center;padding:12px 0 22px;border-bottom:1px solid var(--line)}.chat-top h2{font-size:22px;letter-spacing:4px}.chat-thread{display:flex;flex-direction:column;gap:20px;padding:28px 8px}.chat-message{max-width:82%;align-self:flex-start}.chat-message.outgoing{align-self:flex-end}.chat-message small{font-size:11px;color:var(--muted)}.chat-message p{border-radius:4px 16px 16px 16px;padding:12px 18px;background:#204c5a;line-height:1.7;margin:6px 0 0;white-space:pre-wrap}.chat-message.outgoing p{background:#315f60;border-radius:16px 4px 16px 16px}.world-media{margin:12px 0}.world-media img{max-width:100%;height:auto;border-radius:8px}.world-media figcaption{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.world-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}.novel-reader{grid-template-columns:220px minmax(0,1fr)}.novel-page{padding:30px}.location-list article{padding:12px;gap:10px}.location-icon{font-size:26px}.world-time .ambient{max-width:360px}}
@media(max-width:760px){.novel-reader{grid-template-columns:1fr;gap:14px}.chapter-sidebar{position:static;padding:12px 16px}.chapter-sidebar>.history{display:none}.chapter-sidebar>#own-write{margin-top:10px}.chapter-drawer nav{max-height:48vh}.novel-page{padding:24px 22px}.novel-page h2{font-size:24px;margin:18px 0 26px}.novel-page .prose{font-size:17px;line-height:2}.reader-categories{margin-top:0}.chapter-pagination{gap:8px}.chapter-pagination button{padding:10px 14px}.world-grid{grid-template-columns:1fr;gap:16px}.world-time .clock{font-size:60px}.world-time .ambient{max-width:none;justify-content:flex-start;padding-top:12px;gap:5px 12px}.world-time .eyebrow{font-size:16px}.world-time .eyebrow span{display:block;margin-top:6px}.world-wordmark{display:none}.city-panel{padding:10px!important}.map-heading{padding:6px}.map-heading h2{font-size:14px;letter-spacing:1px}.map-heading button{font-size:11px;padding:7px}.city-map text.location-label:not(.key-label){display:none}.city-map .map-node rect{display:none}.city-map text.location-label{font-size:16px;paint-order:stroke;stroke:#072431;stroke-width:4}.city-map text.people-label{font-size:16px}.city-map .together-label{display:none}.map-caption{font-size:9px;letter-spacing:1px}.map-caption span{display:none}.city-locations{margin-top:12px}.city-locations .location-list{grid-template-columns:1fr 1fr;padding-bottom:0}.location-list article{align-items:flex-start;gap:8px;padding:12px 8px}.location-list strong{font-size:14px}.location-list p{font-size:12px}.location-icon{font-size:23px;min-width:23px}.status-panel{padding:22px 20px!important}.status-panel>h2{font-size:25px}.character-cards{margin-top:16px}.character{padding:18px 0}.character-heading h3{font-size:23px}.advance-controls button{font-size:16px}.world-secondary{flex-wrap:nowrap;gap:8px}.world-secondary button{min-width:0;flex:1}.device-chat{padding:18px!important}.chat-thread{padding:22px 0}.chat-message{max-width:88%}.chat-message p{padding:10px 14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.city-footprint{fill:#041e2b;stroke:#5a899655;stroke-width:1.5}
@media(max-width:760px){.world-grid .city-column{display:contents}.city-panel{grid-row:1}.status-panel{grid-row:2}.city-locations{grid-row:3;margin-top:0}.city-locations .location-list{grid-template-columns:1fr}.city-locations .location-list article{padding:14px}.city-locations .location-list strong{font-size:16px}#app[data-world-theme="deep-ring-v1"] main>.heading{margin-bottom:12px}#app[data-world-theme="deep-ring-v1"] main>.heading h1{font-size:28px}#app[data-world-theme="deep-ring-v1"] main>.heading>.actions{margin:8px 0}#app[data-world-theme="deep-ring-v1"] .world-time{margin:16px 0}.world-time .badge{font-size:13px}.world-time .clock{font-size:56px}.world-time .ambient{font-size:11px}}

.continuity-foundations { margin-top: 1.5rem; }
.continuity-foundations > .card { margin-bottom: 1rem; }
.continuity-foundations .prose { max-width: 52rem; white-space: pre-wrap; }
.continuity-foundations .event-choice { display:flex; align-items:flex-start; gap:.5rem; font-size:.9rem; }
.continuity-foundations .event-choice input { width:auto; flex:none; margin-top:.3rem; }
.continuity-foundations .work-segment { padding:.75rem 0; border-bottom:1px solid var(--muted); }
.continuity-foundations summary { cursor:pointer; font-weight:600; }
.continuity-foundations form { margin-top:1rem; }
.timeline button { justify-self:start; }

.navigation-menu>summary{display:none}.navigation-menu>.nav{display:flex}.life-management{margin-top:1.5rem}.life-management>summary{cursor:pointer;font-weight:600}.management-editors{padding-top:1rem}@media(max-width:760px){.navigation-menu>summary{display:list-item;cursor:pointer;padding:1rem}.navigation-menu:not([open])>.nav{display:none}.navigation-menu>.nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;white-space:normal}.world-secondary{flex-wrap:wrap}}
