:root{--ink:#2c463f;--muted:#829087;--paper:#f8f7ed;--line:rgba(55,78,64,.13);--rust:#b66c4f;--gold:#bca06a;--shadow:0 12px 38px #344d3c0b}*{box-sizing:border-box}body{margin:0;background:#e8eddf;color:var(--ink);font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:13px;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;transition:background .18s,transform .18s,box-shadow .18s}button:active{transform:translateY(1px) scale(.97)}button:focus-visible,a:focus-visible{outline:2px solid var(--rust);outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.42}button:hover:not(:disabled){background:#345c4510}#world{width:100vw;height:100dvh;display:block;touch-action:none;cursor:grab}#world.building{cursor:crosshair}#world.dragging{cursor:grabbing}.grain{position:fixed;inset:0;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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%3Cpath fill='%23000' opacity='.3' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.topbar{position:fixed;left:32px;right:32px;top:23px;display:flex;align-items:center;gap:25px;z-index:3}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:Georgia,serif;letter-spacing:3px;font-size:18px;font-weight:bold;flex-shrink:0}.brand-mark{border:1px solid #6b8071;width:39px;height:42px;display:grid;place-items:center;font-size:30px;border-radius:13px 13px 3px 3px;letter-spacing:0}.brand-small{display:block;font:8px "Segoe UI",sans-serif;letter-spacing:3px;margin-top:3px}.brand i{height:29px;width:1px;background:var(--line);margin:0 3px}.village-name{font:14px "Microsoft YaHei",sans-serif;letter-spacing:3px}.village-name small{display:block;font-size:7px;letter-spacing:1.3px;margin-top:5px;color:#7a897c}.resources{display:flex;align-items:center;justify-content:center;gap:0;background:#fbfbf1ed;border:1px solid #fff9;box-shadow:var(--shadow);border-radius:13px;padding:10px 7px;margin:auto}.resource{min-width:107px;padding:0 17px;border-right:1px solid var(--line);display:grid;grid-template-columns:25px auto;gap:0 9px;position:relative}.resource:last-child{border:0}.resource-icon{grid-row:1/3;align-self:center;width:26px;height:31px}.resource .value{font-family:Georgia,serif;font-size:22px;font-variant-numeric:tabular-nums;line-height:24px}.resource .rate{font-size:9px;color:#79917b;margin-top:3px;white-space:nowrap}.resource .rate.negative{color:#b67551}.resource .resource-name{font-size:9px;color:#929486;margin-left:4px}.resource.bump .value{animation:bump .45s ease}.top-actions{display:flex;gap:7px}.icon-btn{width:33px;height:33px;border:1px solid var(--line);border-radius:50%;background:#f9faef80;font-size:17px;position:relative}.sound-off{position:absolute;left:8px;top:15px;width:17px;height:1px;background:var(--ink);transform:rotate(-45deg)}.chapter-panel{position:fixed;left:34px;top:122px;width:235px;padding:0 0 10px;z-index:2}.eyebrow{font-size:8px;letter-spacing:2px;color:#6c8174;display:flex;align-items:center;gap:7px}.live-dot{width:5px;height:5px;border-radius:50%;background:#719771;box-shadow:0 0 0 3px #7e9c6c15}h1{font-family:Georgia,"STSong","SimSun",serif;font-size:30px;line-height:1.55;font-weight:500;letter-spacing:1px;margin:16px 0 22px}h1 span{color:var(--rust)}.chapter-divider{height:1px;background:linear-gradient(90deg,#6b867c44,transparent);margin-bottom:22px}.chapter-heading{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:#9a895f}h2{font-family:Georgia,"STSong","SimSun",serif;font-size:20px;font-weight:500;letter-spacing:1px;margin:12px 0 9px}#goal-text{font-size:11px;color:#6d7e72;line-height:1.9;margin:0 0 13px}.progress-track{height:3px;background:#45664612;border-radius:4px;overflow:hidden}.progress-track>div{height:100%;background:#a58b53;transition:width .6s}.goal-foot{font-size:10px;color:#8e9683;margin:11px 0 22px;line-height:1.7}.population{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;justify-content:space-between}.mini-label{font-size:10px;color:#7d8c7e;letter-spacing:1px}.population p{margin:7px 0}.population strong{font-family:Georgia,serif;font-size:27px;font-weight:400}.population p>span{color:#8c9787;font-size:12px}.people-glyph{margin-left:14px;letter-spacing:1px;opacity:.5;font-size:15px!important}.happiness{display:flex;flex-direction:column;align-items:center;gap:3px}.happiness>span{font-size:22px;color:#a39551}.happiness strong{font:10px "Segoe UI",sans-serif;color:#7b8879}.labor-row{display:flex;justify-content:space-between;font-size:10px;color:#829081;margin:5px 0 12px}.warning{font-size:10px;line-height:1.7;color:#a65e42;background:#f5e5d6aa;padding:8px 10px;margin:10px 0;border-radius:6px}.calendar{position:fixed;right:35px;top:120px;display:flex;gap:12px;align-items:center}.season-emblem{font-size:32px;color:#a39c63;font-family:Georgia,serif}.calendar>div:nth-child(2){font-size:13px;letter-spacing:2px}.calendar-sub{font-size:9px;color:#849083;letter-spacing:.5px;margin-top:6px}.dot{padding:0 7px}.clock{border:1px solid #9aa88b55;width:29px;height:29px;border-radius:50%;margin-left:3px;position:relative}.clock:after{content:'';position:absolute;top:12px;left:12px;width:3px;height:3px;border-radius:50%;background:#8e997c}#clock-hand{position:absolute;left:13px;top:4px;height:10px;width:1px;background:#8e997c;transform-origin:bottom}.world-caption{position:fixed;right:39px;bottom:213px;text-align:right;pointer-events:none}.world-caption>span{font:11px Georgia,serif;letter-spacing:4px;color:#738773}.world-caption small{display:block;font-size:9px;color:#95a08c;letter-spacing:1px;margin-top:8px}.map-home-control{position:fixed;right:35px;top:44%;width:34px;height:34px;border:1px solid #fff8;border-radius:10px;background:#f9fbefcc;box-shadow:var(--shadow);font-size:18px;z-index:2}.bottom-area{position:fixed;bottom:17px;left:50%;transform:translateX(-50%);width:min(830px,calc(100% - 56px));z-index:4}.dock-label{display:flex;align-items:center;font-size:10px;margin:0 10px 10px;gap:18px;color:#697f6d;letter-spacing:1px}.dock-label>span:first-child{display:flex;align-items:center;gap:7px;white-space:nowrap}.dock-label i{width:4px;height:4px;background:#a78658;transform:rotate(45deg)}#dock-tip{font-size:9px;color:#8f9988;letter-spacing:0}.dock-label button{margin-left:auto;font-size:10px}.build-dock{display:grid;grid-template-columns:repeat(7,1fr);background:#f9f9efed;border:1px solid #ffffffe6;border-radius:16px;padding:10px;box-shadow:0 8px 45px #36523e13;backdrop-filter:blur(18px);gap:5px}.build-card{position:relative;min-width:0;border-radius:9px;padding:2px 5px 10px;text-align:center;border:1px solid transparent}.build-card:hover:not(:disabled){background:#e9eee0;transform:translateY(-4px);box-shadow:0 7px 14px #4662460a}.build-card.selected{background:#e6ebda;border-color:#92a282;box-shadow:inset 0 0 0 2px #f7f8ed}.build-card.locked{opacity:.48}.build-card canvas{height:51px;width:72px;display:block;margin:auto}.build-name{font-size:11px;letter-spacing:2px}.build-cost{font:9px "Segoe UI",sans-serif;color:#999c8a;margin-top:5px;white-space:nowrap}.build-key{position:absolute;left:6px;top:4px;font-size:8px;color:#acb19c}.lock{position:absolute;right:5px;top:4px;font-size:8px;color:#a99b77}.footer-line{display:flex;align-items:center;gap:17px;font-size:9px;color:#909c87;padding:10px 6px 0}.input-hint b{font-weight:400;margin:0 7px;color:#b6bfaa}.footer-line>button{letter-spacing:2px}#save-state{font-size:8px;white-space:nowrap;margin-left:auto}.placement-hint{position:fixed;bottom:204px;left:50%;transform:translateX(-50%);background:#f9f8eee8;border:1px solid #fff9;padding:10px 20px;border-radius:30px;font-size:11px;color:#617360;box-shadow:var(--shadow);pointer-events:none;z-index:3}.placement-hint.invalid{color:#aa6348}.tooltip{position:fixed;width:230px;padding:17px 19px;border-radius:12px;background:#faf9f0f5;border:1px solid white;box-shadow:0 10px 35px #263c3526;pointer-events:none;z-index:9}.tooltip h3{font-size:14px;margin:0 0 7px;letter-spacing:1px}.tooltip small{font-size:8px;letter-spacing:2px;color:#a19473}.tooltip p{font-size:11px;line-height:1.9;color:#7d8779;margin:9px 0 0}.tooltip .labor{font-size:10px;color:#b08858;margin-top:9px}.inspector{position:fixed;right:85px;top:210px;width:240px;background:#faf9f0f0;border:1px solid #fff;border-radius:13px;padding:20px;box-shadow:var(--shadow);z-index:5}.inspector .close{position:absolute;right:8px;top:8px;color:#899580}.inspector h2{margin-top:5px}.inspector p{line-height:1.9;font-size:11px;color:#7b877a}.inspector .tag{font-size:8px;letter-spacing:2px;color:#b19765}.inspector button.action{display:block;width:100%;border:1px solid var(--line);border-radius:5px;padding:9px;margin-top:7px;font-size:10px}.inspector .danger{color:#af7359}.inspector .status{padding:7px 9px;background:#e7eddf;border-radius:5px;font-size:10px}.inspector .status.off{background:#f0e2cd;color:#9d6a4a}#toasts{position:fixed;top:91px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:7px;z-index:12;pointer-events:none;align-items:center}.toast{padding:10px 18px;border:1px solid #fff8;background:#f9faeee8;box-shadow:0 5px 22px #36543817;border-radius:12px;font-size:11px;animation:toast-in .35s;max-width:min(560px,90vw);white-space:pre-line;text-align:center;line-height:1.6}.toast.error{color:#a75f43}.toast.fade{opacity:0;transform:translateY(-7px);transition:.4s}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#203b344a;backdrop-filter:blur(6px);padding:20px}.modal{background:#f6f5e9;border:1px solid #fff9;border-radius:20px;padding:38px;box-shadow:0 30px 100px #143b3540;max-width:480px;width:100%;position:relative;animation:toast-in .35s;max-height:90dvh;overflow:auto}.modal .eyebrow{color:#b0915c;justify-content:center;font-size:9px}.modal h2{font:32px Georgia,"STSong","SimSun",serif;line-height:1.5;text-align:center;margin:16px 0}.modal .intro{font-size:12px;color:#798678;line-height:2;text-align:center}.modal .hero-icon{font-size:48px;text-align:center;color:#a68e5c;margin:15px 0}.primary{display:block;width:100%;padding:13px 17px;border-radius:7px;background:#3e6250;color:#f3f5e8;letter-spacing:1px;font-size:12px;margin-top:18px}.primary:hover:not(:disabled){background:#2f503f}.primary.small{font-size:10px;padding:9px;margin:0 0 18px}.secondary{display:block;width:100%;padding:10px;margin-top:9px;font-size:11px;color:#8a937f;border-radius:6px}.choice{display:block;text-align:left;padding:13px 17px;border:1px solid #cbd3bb;border-radius:8px;width:100%;margin-top:10px}.choice strong{font-size:12px;font-weight:500}.choice small{display:block;color:#979982;font-size:10px;margin-top:6px}.modal .fine{color:#a0a38e;font-size:9px;text-align:center;line-height:1.8;margin-top:17px}.guide-list{display:grid;gap:14px;margin:24px 0}.guide-list>div{display:flex;gap:13px;font-size:11px;line-height:1.9;color:#7e8879}.guide-list b{display:block;color:#435f4b;font-size:12px;font-weight:500}.guide-list em{font:19px Georgia,serif;color:#b39865;min-width:24px}.hidden{display:none!important}@keyframes bump{50%{color:#b59243;transform:translateY(-3px)}}@keyframes toast-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.chapter-panel{left:50px;top:150px;width:255px}.topbar{left:48px;right:48px}.bottom-area{bottom:26px;width:910px}.build-card canvas{height:60px;width:84px}.build-card{padding-bottom:13px}h1{font-size:34px}}
@media(max-width:1100px){.village-name,.brand i{display:none}.topbar{left:22px;right:22px;gap:14px}.resource{min-width:90px;padding:0 11px}.chapter-panel{width:200px;left:24px}h1{font-size:26px}.calendar{right:24px}.world-caption{display:none}}
@media(max-width:760px){.topbar{left:14px;right:14px;top:14px;gap:8px;flex-wrap:wrap}.brand{font-size:13px;letter-spacing:2px;gap:8px}.brand-small{font-size:6px;letter-spacing:2px}.brand-mark{height:30px;width:28px;font-size:21px}.resources{order:3;width:100%;padding:8px 2px;border-radius:9px;margin-top:5px}.resource{flex:1;min-width:0;padding:0 9px;gap:0 6px;grid-template-columns:21px auto}.resource .value{font-size:19px;line-height:21px}.resource-icon{width:22px;height:26px}.resource .rate{font-size:8px}.resource-name{display:none}.top-actions{margin-left:auto}.icon-btn{height:27px;width:27px;font-size:14px}.sound-off{left:5px;top:12px}.chapter-panel{top:132px;left:16px;width:178px}.chapter-panel .eyebrow,.chapter-panel h1,.chapter-divider{display:none}.chapter-heading{font-size:8px}.chapter-panel h2{font-size:18px;margin:8px 0}.chapter-panel #goal-text{font-size:10px;margin-bottom:8px}.goal-foot{font-size:9px;margin:7px 0 10px}.population{padding-top:9px}.population strong{font-size:22px}.mini-label{font-size:9px}.people-glyph{display:none}.labor-row{font-size:9px;margin-bottom:7px}.calendar{right:16px;top:132px;gap:7px}.calendar>div:nth-child(2){font-size:10px;letter-spacing:1px}.season-emblem{font-size:25px}.calendar-sub{font-size:8px}.clock{display:none}.map-home-control{right:15px;top:46%;width:30px;height:30px}.bottom-area{width:calc(100% - 20px);bottom:10px}.dock-label{font-size:9px;margin:0 5px 7px;gap:9px}#dock-tip{display:none}.build-dock{padding:6px;gap:2px;border-radius:12px;overflow-x:auto;grid-template-columns:repeat(7,minmax(62px,1fr))}.build-card{padding:0 2px 7px}.build-card canvas{width:60px;height:43px}.build-name{font-size:10px;letter-spacing:0}.build-cost{font-size:8px;letter-spacing:-.3px}.build-key{display:none}.footer-line{gap:9px;font-size:8px;padding-top:6px}.input-hint{display:none}.footer-line #save-state{margin-left:auto}.placement-hint{bottom:155px;max-width:calc(100% - 30px);width:max-content;font-size:10px;text-align:center;padding:9px 15px}.inspector{right:14px;top:auto;bottom:165px;width:226px;padding:16px}.tooltip{display:none!important}#toasts{top:110px;width:100%}.toast{font-size:10px;white-space:pre-line;text-align:center}.modal{padding:26px}.modal h2{font-size:28px}.warning{font-size:9px;padding:6px}.build-card:hover:not(:disabled){transform:none}}
@media(max-height:700px) and (min-width:761px){.chapter-panel{top:105px}.chapter-panel h1{font-size:23px;margin:10px 0}.chapter-divider{margin-bottom:13px}.goal-foot{margin-bottom:12px}.population{padding-top:12px}.bottom-area{bottom:10px}.build-card canvas{height:42px;width:60px}.calendar{top:106px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Polish 1: compact journal, readable ink, clearer interaction hierarchy. */
.resource .rate{font-size:10px}.resource .resource-name{color:#6c7969}.goal-foot,.labor-row{color:#65795f}.calendar-sub{color:#627960}.footer-line{color:#677d60}.build-cost{color:#7b856d}.build-card.locked .build-cost{color:#67745f}.placement-hint{max-width:600px;line-height:1.6}.chapter-panel{padding:0 0 12px}.build-card.selected:after{content:'';position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#789163}
@media(max-height:800px) and (min-width:761px){.chapter-panel{top:118px;width:220px}h1{font-size:27px;line-height:1.45;margin:12px 0 15px}.chapter-divider{margin-bottom:15px}.chapter-panel h2{margin:9px 0 7px}.goal-foot{margin:8px 0 13px}.population{padding-top:12px}.population strong{font-size:24px}.population p{margin:4px 0}.labor-row{margin:4px 0 9px}}
@media(max-width:760px){.resource .rate{font-size:8px}.placement-hint{max-width:calc(100% - 30px)}.chapter-panel{padding:10px 12px 12px;left:10px;top:126px;width:188px;border-radius:10px;background:linear-gradient(120deg,#f6f6eada,#f6f6ea90);backdrop-filter:blur(5px)}.calendar{padding:9px;background:#f5f6e4b8;border-radius:10px;top:126px;right:10px}}
/* The ledger is part of the village, not a separate management dashboard. */
.resource .value{white-space:nowrap}
@media(max-width:760px){.resource .value{font-size:14px}}
.resource{cursor:pointer;border-radius:4px}.resource:hover{background:#e8ecd9}.resource:focus-visible{outline:2px solid #a28d5b;outline-offset:4px}.ledger{margin:20px 0}.ledger-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.ledger-row small{color:#8b9781;margin-left:5px;font-size:9px}.ledger-row strong{font-family:Georgia,serif;font-size:16px;color:#63855d;font-weight:400}.ledger-row .debit{color:#b0724d}.ledger-row.total{border-bottom:0;margin-top:5px;font-weight:600}.inspector .status{line-height:1.85}.build-card.locked{opacity:.64}.build-dock{scrollbar-width:thin;scrollbar-color:#a9b99b transparent}.calendar{cursor:help}.modal .hero-icon{line-height:1}.warning{border-left:2px solid #ba8058}.goal-foot{font-variant-numeric:tabular-nums}#claim{box-shadow:0 3px 10px #45634522}.chapter-panel #goal-text{color:#586f57}.eyebrow{color:#587257}.world-caption small{color:#71856d}.build-name{color:#3b593f}

/* High-value theatrical moments stay over the map and then get out of the way. */
.cinematic{position:fixed;z-index:18;left:50%;top:42%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;color:#f8f2d8;text-shadow:0 2px 18px #17392f;pointer-events:none;animation:cinematic-in 3.2s both}.cinematic:before{content:'';position:absolute;left:50%;top:50%;width:520px;height:240px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#25483eaa 0,#25483e55 40%,transparent 72%);z-index:-1}.cinematic span{font-size:9px;letter-spacing:5px;color:#e2cf91}.cinematic strong{font:42px Georgia,"STSong","SimSun",serif;font-weight:400;letter-spacing:4px;margin:14px 0}.cinematic small{font-size:11px;letter-spacing:2px}.cinematic[data-kind="season"] strong{font-size:36px}.cinematic.leaving{opacity:0;transform:translate(-50%,-57%);transition:.6s}.season-wash{position:fixed;inset:0;z-index:17;pointer-events:none;opacity:0}.season-wash.play{animation:season-turn 1.8s ease}.season-wash.winter{background:#e8f4f5}.season-wash.autumn{background:#d6a85a}.season-wash.summer{background:#f4cf72}.season-wash.spring{background:#d6e7b4}
body[data-modal="event"] .modal-backdrop{background:#19382f70;transition:background .4s}body[data-modal="event"] .modal{overflow:hidden;border-color:#e9dfb4;box-shadow:0 35px 120px #102d2855,0 0 0 1px #fff8;animation:event-rise .45s cubic-bezier(.2,.8,.2,1)}body[data-modal="event"] .modal>*:not(.event-art){position:relative;z-index:1}.event-art{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.28}.event-art:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,#f6f5e9 62%)}.event-art i{position:absolute;border-radius:50%;animation:event-drift 4s ease-in-out infinite}.event-art i:nth-child(1){width:180px;height:180px;left:-45px;top:-65px}.event-art i:nth-child(2){width:110px;height:110px;right:-25px;top:32px;animation-delay:-1.2s}.event-art i:nth-child(3){width:70px;height:70px;left:45%;top:-22px;animation-delay:-2.1s}body[data-event="harvest"] .event-art i{background:#d4ae4f}body[data-event="fire"] .event-art i{background:#c76242}body[data-event="drought"] .event-art i{background:#d4a765}body[data-event="merchant"] .event-art i{background:#629083}body[data-event="fire"] .modal-backdrop{background:#4f241f70}body[data-event="drought"] .modal-backdrop{background:#6a512a66}.choice:hover:not(:disabled){border-color:#9bac88;background:#edf0df;transform:translateX(4px);box-shadow:-4px 0 0 #9aac82}.choice:disabled{filter:grayscale(.7)}

.happiness-status{font-size:9px;line-height:1.5;color:#829081;margin-top:3px}.run-summary strong{font-size:16px;max-width:62%;text-align:right;overflow-wrap:anywhere}
@media(max-width:760px){.happiness-status{font-size:8px;margin-top:1px}}
@keyframes cinematic-in{0%{opacity:0;transform:translate(-50%,-42%) scale(.92)}14%,76%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-56%) scale(1.03)}}@keyframes season-turn{0%,100%{opacity:0}45%{opacity:.22}}@keyframes event-rise{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}@keyframes event-drift{50%{transform:translate(12px,9px) scale(1.12)}}
@media(max-width:760px){.cinematic{top:45%;width:90%}.cinematic strong{font-size:31px}.cinematic:before{width:360px}.cinematic small{font-size:9px}.choice:hover:not(:disabled){transform:none}}

/* Data-driven event families and the compact end-of-run scorecard. */
body[data-event="beneficial"] .event-art i{background:#b6b85c}body[data-event="harmful"] .event-art i{background:#c76242}body[data-event="tradeoff"] .event-art i{background:#629083}body[data-event="memorable"] .event-art i{background:#a385b5}body[data-event="harmful"] .modal-backdrop{background:#4f241f70}body[data-event="memorable"] .modal-backdrop{background:#342b5375}.run-summary{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:22px 0;background:#cbd3bb;border:1px solid #cbd3bb;border-radius:10px;overflow:hidden}.run-summary>div{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f6f5e9;font-size:10px;color:#7c8979}.run-summary strong{font:20px Georgia,serif;color:#415f4c;font-weight:400}.run-summary .wide{grid-column:1/-1}
body[data-event="neutral"] .event-art i{background:#82977e}

.crisis-card{position:fixed;z-index:6;right:78px;top:194px;width:min(236px,calc(100vw - 120px));padding:15px 16px;background:#f8f8edee;border:1px solid #fff;border-radius:12px;box-shadow:var(--shadow);backdrop-filter:blur(10px);font-size:11px;line-height:1.7;color:#586d57}
.crisis-card h2{font-size:17px;line-height:1.45;margin:0 0 7px;color:#3e5944}
.crisis-card p{margin:5px 0;overflow-wrap:anywhere}
.crisis-card .crisis-text{color:#7b8676}
.crisis-card .crisis-missing{color:#aa6246}
.crisis-card .crisis-action{width:100%;margin-top:9px;padding:8px;border:1px solid #9cac8e;border-radius:6px;background:#e9eddf;color:#456148;font-size:11px}
.crisis-card .crisis-action:disabled{opacity:.48}
.crisis-card:not(.hidden)~.inspector{right:404px}
@media(max-width:760px){.crisis-card{right:10px;top:184px;width:min(190px,calc(100vw - 220px));max-height:33vh;overflow-y:auto;padding:10px 11px;font-size:10px}.crisis-card h2{font-size:15px;margin-bottom:5px}.crisis-card p{margin:4px 0}.crisis-card .crisis-action{padding:7px;margin-top:6px}.crisis-card:not(.hidden)~.inspector{right:14px}.map-home-control{top:58%}}

/* The title is a separate, frozen entry surface. */
body[data-screen="title"] #game-ui{visibility:hidden;pointer-events:none}
body[data-screen="title"] #world{filter:blur(2px) saturate(.65);opacity:.48;pointer-events:none}
.title-screen{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:28px;background:linear-gradient(180deg,rgba(238,240,225,.48),rgba(238,240,225,.8));text-align:center}
.title-screen.hidden{display:none}
.title-content{width:min(100%,480px);color:#405447;transform:translateY(-16px)}
.title-mark{display:block;font-size:64px;font-weight:300;line-height:1;color:#6e8069;margin-bottom:26px}
.title-english{font-size:12px;letter-spacing:.3em;margin:0 0 20px}
.title-content h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:clamp(40px,6vw,64px);font-weight:400;letter-spacing:.18em;margin:0 0 22px;padding-left:.18em}
.title-tagline{font-size:15px;letter-spacing:.12em;color:#6b7967;margin:0 0 48px}
.title-content .primary{display:block;width:260px;max-width:100%;margin:auto;padding:17px 24px;font-size:15px;letter-spacing:.08em}
.title-content .primary span{margin-left:18px}
@media(max-width:760px){.title-screen{padding:24px}.title-content{transform:translateY(-20px)}.title-mark{font-size:52px}.title-english{font-size:10px;letter-spacing:.22em}.title-tagline{font-size:13px;margin-bottom:38px}}
