:root{--navy:#102f51;--navy-deep:#0b2340;--blue:#1e5b89;--blue-soft:#e8f0f5;--red:#ae2431;--red-dark:#8e1724;--cream:#f4f0e8;--ink:#17212b;--muted:#66727e;--line:#d8dfe4;--green:#3f8750;--white:#fff;--shadow:0 24px 60px #102f5114;--radius:16px}*{box-sizing:border-box}html{min-height:100%}body{background:var(--cream);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}.screen{min-height:100dvh}.hidden{display:none!important}.button{cursor:pointer;border:0;border-radius:10px;padding:14px 20px;font-weight:800;transition:transform .18s,background .18s,box-shadow .18s,border-color .18s}.button:hover:not(:disabled){transform:translateY(-2px)}.button:focus-visible,.stepper-button:focus-visible,.name-randomizer:focus-visible,.profile-randomizer:focus-visible{outline-offset:3px;outline:3px solid #1e5b8966}.mode-option:has(input:focus-visible){outline-offset:3px;outline:3px solid #1e5b8966}.button:disabled{cursor:not-allowed;opacity:.5}.button-primary{background:var(--red);color:var(--white);box-shadow:0 10px 20px #ae243126}.button-primary:hover:not(:disabled){background:var(--red-dark);box-shadow:0 14px 26px #ae243135}.button-secondary{color:var(--navy);background:#e6edf1}.button-secondary:hover:not(:disabled){background:#d7e3e9}.button-plain{color:var(--navy);background:0 0}.button-small{border-radius:8px;padding:8px 12px;font-size:.85rem}.button-share{color:var(--navy);background:#f4f0e8}.button-share:hover:not(:disabled){background:#fff}.eyebrow{color:var(--red);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:.76rem;font-weight:900}.menu-screen{isolation:isolate;background:radial-gradient(circle at 50% 42%,#fffdf9 0,#f4f0e8 48%,#e5edf1 100%);place-items:center;padding:28px;display:grid;position:relative;overflow:hidden}.menu-screen:before,.menu-screen:after{z-index:-1;content:"";border:1px solid #102f5112;border-radius:50%;width:36vw;min-width:260px;height:36vw;min-height:260px;display:block;position:absolute}.menu-screen:before{top:-18vw;left:-14vw;box-shadow:0 0 0 30px #102f5104,0 0 0 60px #102f5103}.menu-screen:after{bottom:-20vw;right:-18vw;box-shadow:0 0 0 30px #ae24310a,0 0 0 60px #ae243105}.menu{text-align:center;width:min(100%,920px);padding:clamp(28px,6vw,64px)}.menu-kicker{justify-items:center;gap:8px;display:grid}.domain-mark{color:var(--navy);letter-spacing:.12em;font-size:clamp(1rem,2vw,1.35rem);font-weight:950}.menu h1{width:100%;color:var(--navy);letter-spacing:-.045em;text-align:center;text-transform:uppercase;justify-items:center;margin:14px auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.15rem,6.2vw,6rem);line-height:.88;display:grid}.menu h1 span{width:max-content;max-width:100%;display:block}.menu-description{max-width:510px;color:var(--muted);margin:30px auto 28px;font-size:clamp(.98rem,2vw,1.15rem);line-height:1.55}.menu-actions{gap:10px;width:min(100%,380px);margin:0 auto;display:grid}.menu-actions .button{width:100%}.menu-authors{color:var(--muted);align-items:center;gap:9px;font-size:.72rem;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.menu-authors span{letter-spacing:.08em;text-transform:uppercase;margin-right:2px;font-weight:800}.menu-authors a{color:var(--blue);font-weight:800;text-decoration:none}.menu-authors a:hover{color:var(--red);text-underline-offset:3px;text-decoration:underline}.creator-screen{background:radial-gradient(circle at 50% 0, #fffdf9 0, var(--cream) 58%, #e7eef1 100%)}.creator-shell{width:min(100%,1120px);margin:0 auto;padding:clamp(28px,6vw,68px) 22px 56px}.screen-heading{text-align:center;margin:0 auto 28px}.screen-heading h2,.game-main h2,.sidebar h2{color:var(--navy);margin:0}.screen-heading h2{letter-spacing:-.04em;font-size:clamp(2rem,5vw,3.4rem)}.screen-heading>p:not(.eyebrow){max-width:620px;color:var(--muted);margin:10px auto 0;font-size:1.05rem;line-height:1.55}.start-mode{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,930px);margin:0 auto 18px;display:grid}.mode-option{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#ffffffb8;grid-template-columns:42px 1fr 20px;align-items:center;gap:13px;min-height:96px;padding:18px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:grid;position:relative}.mode-option:hover{border-color:#1e5b8955;transform:translateY(-1px)}.mode-option.is-active{border-color:var(--blue);background:var(--white);box-shadow:0 12px 28px #102f5112}.mode-option input{opacity:0;width:1px;height:1px;position:absolute}.mode-icon{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:12px;place-items:center;font-size:1.25rem;display:grid}.mode-option.is-active .mode-icon{color:var(--red);background:#f8e6e8}.mode-copy{gap:5px;display:grid}.mode-copy strong{color:var(--navy);font-size:.96rem;line-height:1.2}.mode-copy small{color:var(--muted);font-size:.78rem;line-height:1.35}.mode-indicator{border:2px solid #aebbc4;border-radius:50%;width:16px;height:16px}.mode-option.is-active .mode-indicator{border:5px solid var(--red)}.creator-form{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff2;border-radius:22px;padding:clamp(20px,4vw,38px)}.custom-fields{gap:18px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.field{min-width:0;color:var(--ink);gap:8px;display:grid;position:relative}.field-title{color:var(--navy);letter-spacing:.02em;align-items:baseline;gap:7px;font-size:.82rem;font-weight:850;display:flex}.field-hint{color:var(--muted);font-size:.72rem;font-weight:600}.field-control{display:block;position:relative}.field-control input,.field-control select{background:var(--white);width:100%;min-height:49px;color:var(--ink);border:1px solid #bcc9d1;border-radius:11px;outline:0;padding:12px 14px;transition:border-color .18s,box-shadow .18s,background .18s;display:block}.field-control select{cursor:pointer}.field-control input::placeholder{color:#9aa8b1}.field-control input:hover,.field-control select:hover{border-color:#8ea4b1}.field-control input:focus,.field-control select:focus{border-color:var(--blue);box-shadow:0 0 0 4px #1e5b8918}.field-control input:invalid:not(:placeholder-shown),.field-control select:invalid:not(:focus){border-color:#c9838b}.age-control{background:var(--white);border:1px solid #bcc9d1;border-radius:11px;grid-template-columns:49px 1fr 49px;display:grid;overflow:hidden}.age-control input{text-align:center;min-width:0;box-shadow:none;border:0;border-left:1px solid #e2e8eb;border-right:1px solid #e2e8eb;border-radius:0}.age-control input:focus{box-shadow:inset 0 0 0 2px var(--blue)}.age-control input::-webkit-inner-spin-button{opacity:1}.age-control input::-webkit-outer-spin-button{opacity:1}.stepper-button{color:var(--navy);cursor:pointer;background:#f1f5f7;border:0;font-size:1.35rem;font-weight:500}.stepper-button:hover{background:var(--blue-soft);color:var(--blue)}.field-search{z-index:2}.search-control input{padding-right:42px}.search-icon{z-index:1;color:var(--muted);pointer-events:none;font-size:1.25rem;line-height:1;position:absolute;top:50%;right:14px;transform:translateY(-53%)}.selection-hint{min-height:15px;color:var(--green);font-size:.72rem;font-weight:750}.search-results{z-index:10;border:1px solid var(--line);background:var(--white);border-radius:12px;max-height:220px;padding:6px;display:none;position:absolute;top:calc(100% + 7px);left:0;right:0;overflow:auto;box-shadow:0 16px 32px #102f5124}.search-results.is-visible{display:block}.search-result{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.search-result:hover,.search-result:focus-visible{background:var(--blue-soft);color:var(--blue);outline:0}.search-result strong{font-size:.86rem}.search-result small{color:var(--muted);font-size:.74rem}.search-empty{color:var(--muted);margin:0;padding:12px;font-size:.8rem}.creator-randomizers{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;display:flex}.name-randomizer,.profile-randomizer{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:.78rem;font-weight:800}.name-randomizer:hover{color:var(--red)}.profile-randomizer{background:var(--blue-soft);border:1px solid #b9cbd6;border-radius:10px;padding:9px 13px}.profile-randomizer:hover{border-color:var(--blue);color:var(--red);background:#dceaf2}.name-randomizer span,.profile-randomizer span{margin-right:4px;font-size:1.05rem;display:inline-block}.politician-picker{background:linear-gradient(135deg,#f5f9fb,#fff);border:1px solid #cbd9e1;border-radius:16px;gap:20px;padding:clamp(18px,4vw,30px);display:grid}.picker-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.picker-heading p{color:var(--muted);margin:6px 0 0;font-size:.82rem;line-height:1.45}.picker-badge{color:var(--blue);letter-spacing:.1em;background:#dfeaf1;border-radius:99px;padding:6px 9px;font-size:.65rem;font-weight:900}.search-control-large input{min-height:56px;font-size:1rem}.search-results-large{top:calc(100% + 8px)}.politician-preview{color:var(--ink);background:#f3faf4;border:1px solid #bbd7c0;border-radius:12px;gap:5px;padding:15px 17px;display:grid}.politician-preview strong{color:var(--navy)}.politician-preview span{color:var(--muted);font-size:.82rem}.form-message{min-height:20px;color:var(--red);margin:18px 0 0;font-size:.82rem;font-weight:700}.form-actions{justify-content:flex-end;gap:12px;margin-top:18px;display:flex}.game-header{background:var(--navy);min-height:62px;color:var(--white);align-items:center;gap:20px;padding:10px 24px;display:flex}.game-header .button-plain{color:var(--white)}.brand{white-space:nowrap;letter-spacing:.08em;font-size:.86rem;font-weight:950}.player-label{margin-left:auto;font-weight:700}.time-stat{color:#dce8ef;font-size:.86rem}#electionCountdown{color:#dce8ef;max-width:360px;font-size:.76rem;line-height:1.3}.game-layout{grid-template-columns:330px minmax(0,1fr);min-height:calc(100dvh - 62px);display:grid}.sidebar{border-right:1px solid var(--line);background:var(--white);padding:24px}.sidebar h2{margin-bottom:14px;font-size:1rem}.sidebar h2:not(:first-child){margin-top:28px}.sidebar h3{margin:0}.sidebar-section-heading{justify-content:space-between;align-items:center;gap:12px;margin-top:28px;display:flex}.sidebar-section-heading h2{margin:0}.journal-toggle{border:1px solid var(--line);color:var(--blue);cursor:pointer;background:#f3f6f7;border-radius:7px;padding:5px 8px;font-size:.7rem;font-weight:800}.journal-toggle:hover{border-color:var(--blue);background:var(--blue-soft)}.muted,.location{color:var(--muted);margin:4px 0;font-size:.85rem}.stat{margin-top:16px}.stat>span{font-size:.78rem}.stat strong{float:right}.stat-bar{background:#e6ecef;border-radius:5px;height:7px;margin-top:6px;overflow:hidden}.stat-bar i{background:var(--blue);height:100%;display:block}.details{border-top:1px solid var(--line);margin:18px 0 0;padding-top:12px;font-size:.82rem}.details div{justify-content:space-between;gap:12px;margin:7px 0;display:flex}.details dd{text-align:right;margin:0;font-weight:700}.log-list{color:var(--muted);margin:0;padding-left:18px;font-size:.8rem;line-height:1.45}.log-list li{margin-bottom:8px}.game-main{width:100%;max-width:900px;padding:42px}.event-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.career-badge{color:var(--navy);background:#dfeaf1;border-radius:20px;padding:7px 12px;font-size:.8rem;font-weight:750}.event-box{border-left:5px solid var(--red);background:var(--white);border-radius:10px;min-height:170px;padding:26px;box-shadow:0 8px 20px #102f5112}.event-box h3{color:var(--navy);margin:4px 0 12px;font-size:1.45rem}.event-copy,.dialog-content{color:var(--ink);gap:11px;line-height:1.55;display:grid}.event-copy p,.dialog-content p{margin:0}.event-copy h4,.dialog-content h4{color:var(--navy);letter-spacing:.02em;margin:7px 0 -2px;font-size:.84rem}.result-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.result-list li{color:#274057;background:#f2f7f9;border:1px solid #d8e5ec;border-radius:8px;padding:9px 11px;font-size:.84rem}.outcome-metrics{border-top:1px solid var(--line);flex-wrap:wrap;gap:7px;margin-top:18px;padding-top:14px;display:flex}.outcome-metrics span{background:var(--blue-soft);color:var(--blue);letter-spacing:.01em;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:850}.event-type{color:var(--red);letter-spacing:.11em;margin:0;font-size:.72rem;font-weight:800}.choices{margin:18px 0}.choice-wrap{margin:10px 0}.choice-button{border:1px solid var(--line);background:var(--white);width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:8px;margin:0;padding:15px;display:block}.choice-button:hover{border-color:var(--blue);color:var(--blue)}.choice-effects{color:var(--muted);padding:5px 8px 0;font-size:.76rem;line-height:1.35;display:block}.next-week{background:var(--green)}.dialog{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#06111c99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog-card{background:var(--white);border:1px solid #fff6;border-radius:20px;gap:18px;width:min(100%,680px);max-height:calc(100dvh - 40px);padding:clamp(22px,4vw,34px);display:grid;overflow:auto;box-shadow:0 24px 70px #0004}.dialog-card h1,.dialog-card h2{color:var(--navy);margin-top:0}.dialog-card h2{letter-spacing:-.025em;margin-bottom:0;font-size:clamp(1.4rem,4vw,2rem)}.dialog-card .button{justify-self:end;min-width:132px}.toast{z-index:30;max-width:min(430px,100% - 32px);color:var(--white);background:#173f27;border:1px solid #6ca77a;border-radius:12px;align-items:center;gap:11px;padding:14px 17px;font-size:.84rem;font-weight:750;animation:.22s both toast-in;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 18px 42px #08180e4d}.toast[data-type=error]{background:var(--red-dark);border-color:#d78f96}.toast-icon{background:#ffffff20;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;font-weight:950;display:grid}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fatal-error{max-width:600px;margin:14vh auto;padding:24px}.party-poll{grid-template-columns:54px minmax(0,1fr);grid-template-areas:"name bar"".meta";align-items:center;gap:3px 8px;margin:10px 0;font-size:.76rem;display:grid}.party-poll-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;font-weight:850;overflow:hidden}.party-poll-bar{background:#e6ecef;border-radius:5px;grid-area:bar;height:7px;overflow:hidden}.party-poll-bar i{background:var(--blue);height:100%;display:block}.party-poll-meta{color:var(--muted);text-align:right;grid-area:meta;justify-self:end;font-size:.68rem;font-weight:750}.government-info{border-top:1px solid var(--line);color:var(--muted);margin-top:13px;padding-top:8px;font-size:.78rem;line-height:1.4}.government-info p{margin:5px 0}.government-info strong{color:var(--ink)}.party-leader-panel{background:linear-gradient(145deg,#f5f9fb,#e8f1f5);border:1px solid #cbdde6;border-radius:12px;margin-top:18px;padding:15px;box-shadow:0 8px 18px #102f510a}.party-leader-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.party-leader-kicker{color:var(--blue);letter-spacing:.1em;background:#d9e8f0;border-radius:999px;padding:4px 7px;font-size:.58rem;font-weight:900}.party-leader-panel h2{font-size:1rem;margin:0!important}.party-leader-panel h3{color:var(--navy);letter-spacing:.06em;text-transform:uppercase;margin:14px 0 7px;font-size:.74rem}.party-leader-panel p{color:var(--muted);margin:5px 0;font-size:.76rem}.party-leader-panel strong{color:var(--ink)}.party-leader-name{margin:8px 0 10px!important;font-size:.86rem!important}.party-leader-stats{border-top:1px solid #cfdee6;border-bottom:1px solid #cfdee6;grid-template-columns:1fr;gap:3px;padding:9px 0;display:grid}.party-leader-stats p{justify-content:space-between;gap:9px;margin:0;display:flex}.nomination-list{gap:5px;margin:0 0 12px;padding:0;list-style:none;display:grid}.nomination-list li{background:#ffffffb8;border-radius:7px;gap:2px;padding:7px 8px;font-size:.68rem;display:grid}.nomination-list span{color:var(--muted)}.party-leader-panel .button{background:var(--navy);width:100%;color:var(--white)}.summary-card{max-width:760px;margin:0 auto}@media (width<=760px){.creator-shell{padding-inline:14px}.start-mode,.form-grid{grid-template-columns:1fr}.mode-option{min-height:84px}.creator-form{border-radius:16px}.picker-heading{flex-direction:column}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}.game-header{flex-wrap:wrap;gap:10px 14px}.player-label{order:4;width:100%;margin-left:0}.game-layout{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.game-main{padding:28px 18px}.dialog{padding:12px}.dialog-card{max-height:calc(100dvh - 24px)}.toast{bottom:16px;right:16px}}@media (width<=420px){.menu-screen{padding:16px}.menu{padding-inline:8px}.menu h1{font-size:clamp(2.85rem,15vw,4.5rem)}.mode-option{grid-template-columns:36px 1fr 16px;gap:9px;padding:14px}.mode-icon{width:34px;height:34px}.menu-screen{padding-bottom:70px}.menu-authors{flex-wrap:wrap;justify-content:center;width:calc(100% - 32px);bottom:16px}}
