@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{--ink:#e9e2d0;--muted:#9f9b8d;--panel:#111913eF;--panel2:#18231b;--line:#ffffff16;--gold:#d7aa57;--green:#7da36e;--red:#c76b58;--blue:#78a7a2;--shadow:0 24px 70px #0008}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden}body{font-family:Inter,system-ui,sans-serif;background:#0a100c;color:var(--ink);letter-spacing:.01em}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.topbar{height:76px;display:flex;align-items:center;padding:0 22px;background:linear-gradient(180deg,#172219,#101811);border-bottom:1px solid var(--line);position:relative;z-index:20;box-shadow:0 8px 30px #0005}.brand{display:flex;align-items:center;gap:13px;min-width:325px}.sigil{width:43px;height:49px;display:grid;place-items:center;background:linear-gradient(145deg,#c9a456,#77592c);color:#172016;font:700 27px/1 'Cormorant Garamond';clip-path:polygon(50% 0,94% 14%,87% 75%,50% 100%,13% 75%,6% 14%);filter:drop-shadow(0 4px 7px #0008)}.eyebrow{font-size:9px;letter-spacing:.22em;color:var(--gold);font-weight:700;margin:0 0 3px;text-transform:uppercase}.brand h1{font:600 24px/1 'Cormorant Garamond';margin:0}.resources{height:100%;display:flex;align-items:center;margin:auto}.resources>div{display:grid;grid-template-columns:26px 54px;grid-template-rows:20px 15px;align-items:center;padding:0 15px;border-left:1px solid var(--line)}.resource-icon{grid-row:1/3;color:var(--gold);font-size:16px}.resources strong{font-size:15px}.resources small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.time-controls{display:flex;align-items:center;gap:6px}.clock{text-align:right;margin-right:10px;min-width:75px}.clock span{display:block;font-size:9px;color:var(--gold);text-transform:uppercase;letter-spacing:.14em}.clock strong{font:600 18px/1.2 'Cormorant Garamond'}.icon-button,.speed-button{height:32px;min-width:32px;border:1px solid var(--line);background:#ffffff08;border-radius:4px;cursor:pointer;font-size:11px}.speed-button.active,.icon-button:hover,.speed-button:hover{background:#d7aa5722;border-color:#d7aa5766;color:#edc77b}.game-shell{height:calc(100% - 76px);position:relative;display:grid;grid-template-columns:minmax(0,1fr) 355px}.world-wrap{position:relative;overflow:hidden;background:#223424}.world-wrap canvas{display:block;width:100%;height:100%;cursor:grab}.world-wrap canvas:active{cursor:grabbing}.world-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 48% 48%,transparent 42%,#07100a8c 100%);box-shadow:inset 0 0 90px #0007}.weather{position:absolute;top:16px;left:18px;padding:8px 11px;border:1px solid var(--line);background:#111912b8;backdrop-filter:blur(8px);border-radius:4px;font:600 11px 'Cormorant Garamond';color:#d8d5c7}.hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#0a100cbb;border:1px solid var(--line);padding:8px 14px;border-radius:20px;color:#b7b4aa;font-size:9px;white-space:nowrap;transition:opacity .5s}.side-panel{background:var(--panel);border-left:1px solid var(--line);box-shadow:-10px 0 40px #0005;z-index:10;overflow:hidden;backdrop-filter:blur(14px)}.panel-tabs{height:49px;display:flex;border-bottom:1px solid var(--line);padding:0 12px}.tab{border:0;background:transparent;color:#777f76;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:0 13px;cursor:pointer;border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-color:var(--gold)}.close-panel{display:none;margin-left:auto;border:0;background:transparent;font-size:22px}.tab-view{display:none;height:calc(100% - 49px);overflow:auto;padding:20px 18px 26px;scrollbar-width:thin;scrollbar-color:#526351 #111}.tab-view.active{display:block}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.panel-heading h2{font:600 25px 'Cormorant Garamond';margin:0}.live-dot{font-size:8px;color:#90bb77;letter-spacing:.15em}.live-dot:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#8eba75;box-shadow:0 0 8px #8eba75;margin-right:6px}.panel-copy{color:#969c91;font-size:11px;line-height:1.6;margin:0 0 19px}.event-feed{display:flex;flex-direction:column;gap:2px}.event{position:relative;padding:13px 10px 13px 38px;border-top:1px solid var(--line);animation:slideIn .35s ease}.event:before{content:"";position:absolute;left:13px;top:18px;width:7px;height:7px;border:1px solid var(--event-color,var(--gold));transform:rotate(45deg)}.event time{font-size:8px;color:#767d74;letter-spacing:.08em}.event p{font:500 13px/1.35 'Cormorant Garamond';margin:4px 0;color:#d7d4c9}.event .tag{font-size:8px;color:var(--event-color,var(--gold));text-transform:uppercase;letter-spacing:.12em}.people-list{display:flex;flex-direction:column;gap:7px}.person-row{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:10px;background:#ffffff05;border:1px solid transparent;border-radius:5px;cursor:pointer;text-align:left}.person-row:hover{background:#ffffff0a;border-color:var(--line)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 17px 'Cormorant Garamond';background:linear-gradient(145deg,var(--avatar),#1b241c);border:1px solid #ffffff20}.person-row strong{font:600 14px 'Cormorant Garamond';display:block}.person-row small{font-size:9px;color:var(--muted)}.mood-orb{width:8px;height:8px;border-radius:50%;background:var(--mood);box-shadow:0 0 8px var(--mood)}.filter-row{display:flex;gap:5px;margin:14px 0}.filter{background:#ffffff07;border:1px solid var(--line);font-size:9px;padding:6px 10px;border-radius:3px;color:#989c94;cursor:pointer}.filter.active{color:#e5c582;border-color:#9d7d40;background:#d7aa5712}.decrees{display:flex;flex-direction:column;gap:9px}.decree{text-align:left;background:linear-gradient(135deg,#ffffff09,#ffffff03);border:1px solid var(--line);border-radius:5px;padding:12px;cursor:pointer;transition:.2s}.decree:hover:not(:disabled){transform:translateY(-1px);border-color:#d7aa5755;background:#d7aa570d}.decree:disabled{opacity:.42;cursor:not-allowed}.decree strong{font:600 15px 'Cormorant Garamond';display:block}.decree p{font-size:9px;line-height:1.45;color:#92988f;margin:5px 0 8px}.cost{font-size:8px;color:var(--gold);letter-spacing:.08em}.world-truth{margin-top:18px;padding:14px;border-left:2px solid var(--gold);background:#d7aa5709}.world-truth span{font-size:8px;color:var(--gold);text-transform:uppercase;letter-spacing:.15em}.world-truth strong{display:block;font:600 16px 'Cormorant Garamond';margin:5px 0}.world-truth p{font-size:9px;color:#9fa399;line-height:1.5;margin:0}.detail-card{position:absolute;left:20px;bottom:46px;width:285px;z-index:9;background:#101812eF;border:1px solid #ffffff1c;box-shadow:var(--shadow);padding:18px;backdrop-filter:blur(12px);border-radius:6px;animation:rise .25s ease}.detail-card.hidden{display:none}.detail-card>button{position:absolute;right:8px;top:7px;background:transparent;border:0;color:#8e948b;font-size:18px;cursor:pointer}.detail-title{display:flex;align-items:center;gap:11px;margin-bottom:12px}.detail-title h3{font:600 21px 'Cormorant Garamond';margin:0}.detail-title p{margin:2px 0 0;color:var(--gold);font-size:8px;text-transform:uppercase;letter-spacing:.12em}.need{display:grid;grid-template-columns:70px 1fr 28px;align-items:center;gap:7px;margin:7px 0;font-size:8px;color:#a7aaa2}.need-bar{height:3px;background:#ffffff12}.need-bar i{display:block;height:100%;background:var(--bar);width:var(--value)}.thought{margin-top:12px;padding:10px;background:#ffffff06;border-left:1px solid var(--gold);font:italic 13px/1.35 'Cormorant Garamond';color:#d6d0c1}.relation{font-size:9px;color:#969c92;margin-top:9px}.intro-modal{position:fixed;inset:76px 0 0;background:#07100ad6;z-index:40;display:grid;place-items:center;backdrop-filter:blur(8px);transition:.5s}.intro-modal.closed{opacity:0;pointer-events:none}.intro-card{width:min(620px,calc(100% - 32px));padding:38px 42px;background:linear-gradient(145deg,#18241bF5,#0e1611F5);border:1px solid #d7aa5738;box-shadow:0 30px 100px #000b;position:relative}.intro-card:before,.intro-card:after{content:"";position:absolute;width:45px;height:45px;border-color:#d7aa5766}.intro-card:before{left:10px;top:10px;border-left:1px solid;border-top:1px solid}.intro-card:after{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}.intro-card h2{font:600 39px/1 'Cormorant Garamond';margin:8px 0 13px}.intro-card>p:not(.eyebrow){font:500 16px/1.55 'Cormorant Garamond';color:#b8b5aa;max-width:500px}.intro-features{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:25px 0}.intro-features div{border-top:1px solid var(--line);padding-top:10px}.intro-features span{font-size:9px;color:var(--gold)}.intro-features strong{display:block;font:600 14px 'Cormorant Garamond';margin:5px 0}.intro-features small{display:block;font-size:8px;line-height:1.4;color:#858b83}.primary-button{background:linear-gradient(135deg,#c69a4c,#8d6731);color:#172015;border:0;padding:12px 17px;font-weight:700;font-size:11px;letter-spacing:.06em;cursor:pointer}.primary-button span{margin-left:20px}.text-button{background:transparent;border:0;color:#858b83;font-size:9px;margin-left:12px;cursor:pointer}.toast{position:fixed;top:92px;left:50%;z-index:60;transform:translate(-50%,-20px);opacity:0;padding:10px 16px;background:#18231d;border:1px solid #d7aa5755;box-shadow:var(--shadow);font:600 12px 'Cormorant Garamond';transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-panel-button{display:none}.empty{color:#747b72;font:italic 13px 'Cormorant Garamond';padding:20px;text-align:center}@keyframes slideIn{from{opacity:0;transform:translateX(8px)}}@keyframes rise{from{opacity:0;transform:translateY(10px)}}
@media(max-width:980px){.brand{min-width:225px}.brand h1{font-size:20px}.resources>div{grid-template-columns:20px 40px;padding:0 8px}.resources small{display:none}.game-shell{grid-template-columns:1fr 310px}.side-panel{width:310px}}
@media(max-width:760px){.topbar{height:64px;padding:0 10px}.brand{min-width:auto}.brand .eyebrow,.brand h1{display:none}.sigil{width:36px;height:41px}.resources{margin-left:6px}.resources>div{grid-template-columns:16px auto;padding:0 6px}.resources>div:nth-child(3){display:none}.resource-icon{font-size:11px}.resources strong{font-size:12px}.clock{margin:0;min-width:51px}.clock strong{font-size:14px}.time-controls{gap:3px}.speed-button{display:none}.game-shell{height:calc(100% - 64px);display:block}.side-panel{position:absolute;right:0;top:0;height:100%;width:100vw;transform:translateX(101%);transition:.3s;z-index:30}.side-panel.open{transform:none}.panel-tabs{padding:0 6px}.panel-tabs .tab{flex:1;padding:0 4px}.close-panel{display:block;flex:0 0 34px;margin-left:0}.mobile-panel-button{display:block;position:absolute;right:12px;bottom:14px;background:#131d16dd;border:1px solid #d7aa5744;padding:9px 12px;border-radius:4px;font-size:10px;z-index:8}.mobile-panel-button span{display:inline-grid;place-items:center;background:var(--gold);color:#172015;width:17px;height:17px;border-radius:50%;font-size:8px;margin-left:5px}.detail-card{left:10px;bottom:58px;width:calc(100% - 20px);max-width:300px}.hint{display:none}.intro-modal{inset:64px 0 0}.intro-modal.closed{visibility:hidden;transition:opacity .35s,visibility 0s .35s}.intro-card{padding:27px 23px}.intro-card h2{font-size:31px}.intro-features{grid-template-columns:1fr}.intro-features small{display:none}.intro-features div{display:flex;gap:8px}.text-button{display:block;margin:12px 0 0}}

/* Interactive council campaign */
.weather{left:auto;right:18px}
.case-banner{position:absolute;left:18px;top:18px;width:min(430px,calc(100% - 36px));z-index:8;display:flex;align-items:center;gap:16px;padding:13px 14px;background:linear-gradient(110deg,#111a14f2,#1d2a20e8);border:1px solid #d7aa5755;border-left:3px solid var(--gold);border-radius:7px;box-shadow:0 12px 35px #0007;backdrop-filter:blur(10px)}.case-banner>div{min-width:0;flex:1}.case-banner .eyebrow{margin-bottom:4px}.case-banner strong,.case-banner small{display:block}.case-banner strong{font:600 18px/1.1 'Cormorant Garamond'}.case-banner small{color:var(--muted);font-size:10px;line-height:1.35;margin-top:3px}.case-banner button{flex:0 0 auto;border:1px solid #d7aa5766;background:#d7aa5717;color:#ecd397;border-radius:4px;padding:10px 12px;font-size:10px;font-weight:700;cursor:pointer}.case-banner button:hover{background:#d7aa572d}.case-banner button:disabled{opacity:.55;cursor:default}.campaign-strip{padding:12px 14px;margin-bottom:17px;background:#d7aa570d;border:1px solid #d7aa5730;border-radius:5px}.campaign-strip>span,.campaign-strip>strong,.campaign-strip>small{display:block}.campaign-strip>span{color:var(--gold);font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.campaign-strip>strong{font:600 18px 'Cormorant Garamond';margin:2px 0 8px}.campaign-strip>div{height:4px;border-radius:3px;background:#ffffff10;overflow:hidden}.campaign-strip i{display:block;width:0;height:100%;background:linear-gradient(90deg,#947238,var(--gold));transition:.5s}.campaign-strip small{color:var(--muted);font-size:9px;margin-top:7px}.campaign-strip b{color:var(--ink)}.council-case-card{border:1px solid #ffffff16;border-left:3px solid var(--red);background:#0b110dcc;padding:15px;margin:16px 0 12px;border-radius:5px}.council-case-card .case-number{color:var(--red);font-size:8px;font-weight:700;letter-spacing:.15em}.council-case-card h3{font:600 22px 'Cormorant Garamond';margin:5px 0}.council-case-card p,.council-case-card small{color:var(--muted);font-size:10px;line-height:1.5}.council-case-card small{display:block;margin-top:8px;color:#cfc7b3}.council-open{width:100%;margin-bottom:16px}.council-modal{position:absolute;inset:0;z-index:70;display:grid;place-items:center;padding:22px}.council-modal.hidden{display:none}.council-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,#334333aa,#070b08f5);backdrop-filter:blur(6px)}.council-stage{position:relative;width:min(1020px,96vw);height:min(760px,92%);display:grid;grid-template-rows:auto auto minmax(190px,1fr) auto;overflow:hidden;background:linear-gradient(145deg,#17221afc,#0e1510fc);border:1px solid #d7aa5745;border-radius:9px;box-shadow:0 35px 100px #000c}.council-stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,#d7aa5708,transparent)}.council-header{position:relative;display:flex;justify-content:space-between;padding:22px 25px 15px;border-bottom:1px solid var(--line)}.council-header h2{font:600 32px/1.05 'Cormorant Garamond';margin:2px 0 4px}.council-header>div>p:last-child{margin:0;color:#b8b3a5;font-size:11px}.council-header button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#ffffff08;cursor:pointer;font-size:22px}.stance-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 25px;border-bottom:1px solid var(--line)}.stance{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:5px;background:#ffffff05}.stance.pro{border-bottom-color:#7da36e99}.stance.contra{border-bottom-color:#c76b5899}.stance strong,.stance small{display:block}.stance strong{font-size:10px}.stance small{font-size:8px;color:var(--muted);margin-top:2px}.dialogue-feed{position:relative;overflow-y:auto;padding:17px 25px;scroll-behavior:smooth}.dialogue-line{display:flex;gap:12px;max-width:78%;padding:11px 13px;margin:0 0 10px;background:#ffffff07;border:1px solid var(--line);border-radius:6px;opacity:0;transform:translateY(8px);transition:.3s}.dialogue-line:nth-child(even){margin-left:auto}.dialogue-line.visible{opacity:1;transform:none}.dialogue-line.intervention-line{max-width:88%;border-color:#d7aa5755;background:#d7aa5710}.dialogue-avatar{flex:0 0 32px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--speaker);font:700 16px 'Cormorant Garamond'}.dialogue-line>div{min-width:0}.dialogue-line header{display:flex;align-items:center;gap:8px}.dialogue-line header strong{font-size:10px}.dialogue-line header em{font-style:normal;color:var(--gold);font-size:7px;letter-spacing:.1em;text-transform:uppercase}.dialogue-line p{font:500 17px/1.3 'Cormorant Garamond';margin:4px 0 0;color:#eee6d3}.council-controls{position:relative;padding:13px 25px 20px;border-top:1px solid var(--line);background:#0b110ddf}.control-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}.control-label b{color:var(--muted);font-size:8px}.intervention-choices,.decision-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.intervention-choices button,.decision-choices button{min-height:58px;text-align:left;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:#ffffff07;cursor:pointer}.intervention-choices button:hover,.decision-choices button:hover{border-color:#d7aa5777;background:#d7aa5713}.intervention-choices button:disabled{opacity:.38;cursor:default}.intervention-choices strong,.intervention-choices small,.decision-choices span,.decision-choices strong,.decision-choices small{display:block}.intervention-choices strong,.decision-choices strong{font-size:10px}.intervention-choices small,.decision-choices small{font-size:8px;color:var(--muted);margin-top:4px}.decision-choices button{border-top:2px solid var(--gold);min-height:72px}.decision-choices span{font-size:7px;color:var(--green);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.decision-block.hidden,.outcome-block.hidden,#skipDialogue.hidden{display:none}.council-controls>.text-button{position:absolute;right:25px;top:-29px;margin:0;font-size:8px}.outcome-block{text-align:center;padding:3px 12%}.outcome-block h3{font:600 25px 'Cormorant Garamond';margin:3px 0}.outcome-block>p:not(.eyebrow){color:#c8c1af;font-size:11px;line-height:1.5}.impact-row{display:flex;justify-content:center;gap:22px;margin:10px}.impact-row span{color:var(--muted);font-size:9px}.impact-row b{color:var(--gold);font-size:13px}.outcome-block .primary-button{width:auto;margin:auto;padding:10px 20px}
@media(max-width:760px){.case-banner{left:9px;top:9px;width:calc(100% - 18px);padding:10px}.case-banner strong{font-size:15px}.case-banner small{display:none}.case-banner button{padding:9px;font-size:9px}.council-modal{padding:0}.council-stage{width:100vw;height:100%;max-height:none;border:0;border-radius:0;grid-template-rows:auto auto minmax(170px,1fr) auto}.council-header{padding:15px 14px 10px}.council-header h2{font-size:22px;max-width:300px;padding-right:6px}.council-header>div>p:last-child{font-size:9px;max-width:280px}.stance-row{padding:8px 10px;grid-template-columns:repeat(2,1fr);gap:5px}.stance{padding:5px}.stance .avatar{width:25px;height:25px}.dialogue-feed{padding:11px 10px}.dialogue-line,.dialogue-line.intervention-line{max-width:94%;padding:9px;margin-bottom:7px}.dialogue-line p{font-size:15px}.council-controls{padding:10px}.intervention-choices,.decision-choices{grid-template-columns:1fr;gap:5px;max-height:190px;overflow:auto}.intervention-choices button,.decision-choices button{min-height:48px}.decision-choices button{min-height:55px}.council-controls>.text-button{right:10px;top:-27px}.outcome-block{padding:2px 3%}.outcome-block h3{font-size:22px}.campaign-strip{margin-bottom:12px}}
