:root{color-scheme:light;--paper:#fbf8ee;--ink:#064b38;--green:#078153;--orange:#ff7b0b;--muted:#737f6c;--line:#dedfce;--shadow:0 8px 24px #174b3010;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#fffefa,transparent 70%),var(--paper);color:var(--ink)}button,input{font:inherit}button{cursor:pointer;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}[hidden]{display:none!important}.site-header{max-width:650px;margin:auto;min-height:68px;padding:8px 24px;display:flex;align-items:center;justify-content:space-between}.brand{display:block;width:166px}.brand img{display:block;width:100%;height:auto}.header-tools{display:flex;gap:7px}.icon-button{border:1px solid var(--line);background:#fffaf5;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:23px;font-weight:700;line-height:1}.icon-button[aria-pressed=true]{background:#dceaca;border-color:#91b176}.app-shell{max-width:650px;padding:0 18px;margin:auto}.game-screen{height:calc(var(--visible-height,100dvh) - var(--header-height,68px));min-height:620px;max-height:1060px;display:grid;grid-template-rows:auto auto auto minmax(180px,1fr) auto;gap:10px;padding:5px 0 14px}.intro{text-align:center}.eyebrow{font-size:9px;letter-spacing:3px;font-weight:800;margin:0 0 9px}.eyebrow>span{display:inline-block;width:6px;height:6px;background:var(--orange);border-radius:50%;margin-right:4px;vertical-align:1px}h1{font-size:clamp(38px,7vw,58px);letter-spacing:-2px;font-weight:1000;line-height:.95;margin:0;text-wrap:balance}h1 span{color:#00513a}.tagline{font-size:14px;font-weight:700;margin:9px 0 0}.selection-button{display:flex;align-items:center;gap:9px;min-width:0;width:100%;border:1px solid #dae1ce;background:#f0f3e5;border-radius:13px;padding:9px 12px;text-align:left;min-height:55px}.selection-button:disabled{opacity:.8}.location-icon{font-size:26px;color:var(--orange);flex:none}.selection-text{min-width:0;flex:1;display:block}.selection-text strong{display:block;font-size:14px;line-height:1.3;overflow-wrap:anywhere}.selection-text small{display:block;color:#74816c;font-size:11px;line-height:1.4;margin-top:2px}.change-label{font-size:11px;font-weight:700;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stats>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 7px;background:#eff2e3;border-radius:17px;min-width:0}.stats svg{width:27px;height:30px;fill:none;stroke:var(--orange);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;flex:none}.stats p{font-size:8px;font-weight:800;letter-spacing:1.4px;margin:0}.stats strong{display:block;font-size:28px;line-height:1.08;letter-spacing:-1px;margin-top:3px;font-variant-numeric:tabular-nums}.stats small{font-size:18px;letter-spacing:0}.arena-viewport{position:relative;min-height:0;overflow:hidden;border-radius:22px;display:flex;align-items:center;justify-content:center;background:#e5dec8;isolation:isolate}.arena-viewport:before{content:'';position:absolute;inset:-16px;background:linear-gradient(#fff6,#fff3),url(assets/townhall-v1.png) center/cover;filter:blur(12px);z-index:-1;pointer-events:none}.scene{position:relative;width:var(--scene-width,100%);height:var(--scene-height,100%);max-width:100%;flex:none;isolation:isolate;overflow:hidden;border-radius:15px;container-type:inline-size}.townhall{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.windows{position:absolute;inset:0}.window{position:absolute;border:0;background:none;padding:0;touch-action:manipulation;-webkit-touch-callout:none;user-select:none;border-radius:4px;min-width:36px;min-height:44px;overflow:visible}.window:nth-child(3n+1){left:19%}.window:nth-child(3n+2){left:42%}.window:nth-child(3n+3){left:65%}.window:nth-child(-n+3){top:28%}.window:nth-child(n+4){top:50%}.window{width:16%;height:16%}.window:focus-visible{outline:3px solid #ff8a23;outline-offset:3px;z-index:8}.mayor{display:block;position:absolute;bottom:0;left:50%;width:124%;height:120%;object-fit:contain;object-position:center bottom;transform:translateX(-50%) scale(.7);transform-origin:center bottom;opacity:0;pointer-events:none;filter:drop-shadow(0 2px 1px #493c2c33)}.window.is-active{z-index:5}.window.is-active .mayor{opacity:1;transform:translateX(-50%) scale(1);animation:peek-in .12s ease-out}.window-glow{position:absolute;inset:-4px;border:3px solid #ffb43e;border-radius:5px;box-shadow:0 0 0 2px #fff8,0 0 15px #ffb43e90;opacity:0;pointer-events:none}.window.is-active .window-glow{opacity:1}.window-clock{position:absolute;bottom:-4px;left:0;height:3px;width:100%;background:#ffe09b;transform-origin:left;transform:scaleX(var(--window-left,1));opacity:0;border-radius:3px;pointer-events:none}.window.is-active .window-clock{opacity:1}.tap-flash{position:absolute;top:5%;left:50%;transform:translateX(-50%);font-size:clamp(18px,9cqw,30px);font-weight:900;line-height:1;color:#fff;text-shadow:0 2px 2px #056b49;opacity:0;pointer-events:none}.window.was-hit .tap-flash{animation:hit-points .38s ease-out}.window.was-missed:after{content:'×';position:absolute;inset:0;display:grid;place-items:center;font-size:30px;font-weight:700;color:#ffab8b;animation:hit-points .3s ease-out;pointer-events:none}.scene-label{position:absolute;top:2.5%;left:4%;right:4%;text-align:center;background:#fff7e6eb;padding:5px 9px;border-radius:99px;font-size:clamp(7px,2.8cqw,11px);font-weight:700;pointer-events:none;box-shadow:0 2px 6px #2221;overflow-wrap:anywhere}.speed-badge{position:absolute;bottom:2.5%;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;font-weight:900;letter-spacing:1px;background:#fff7e7;color:#bf601d;border-radius:99px;padding:7px 10px;pointer-events:none}.control-deck{text-align:center}.status{font-size:13px;font-weight:700;line-height:1.4;min-height:19px;margin:0 0 9px;overflow-wrap:anywhere}.primary-button{display:flex;align-items:center;justify-content:center;gap:25px;width:100%;min-height:61px;border:1px solid #006847;border-radius:99px;background:linear-gradient(105deg,#079c61,#007c4e);box-shadow:0 5px 0 #00583c,0 9px 20px #0c694222;color:#fffdf1;font-size:25px;line-height:1.1;font-weight:900;padding:9px 18px;touch-action:manipulation;user-select:none}.primary-button>span:last-child{font-size:30px;font-weight:400}.primary-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 3px 0 #00583c}.primary-button:disabled{background:#80937a;border-color:#6d8168;box-shadow:0 4px 0 #566b52}.deck-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:33px;padding:9px 3px 0}.dataset-badge{font-size:9px;font-weight:700;color:#75836b;text-align:left}.text-button{border:0;background:none;font-size:11px;color:var(--ink);font-weight:700;padding:3px 0;min-height:25px}.text-button:disabled{opacity:.4}.share-status{font-size:11px;line-height:1.4;margin:3px 0 0;overflow-wrap:anywhere}.share-status:empty{display:none}.result-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#f8f4e7a8;backdrop-filter:blur(5px);padding:16px;overflow:auto}.result-card{width:100%;max-width:330px;text-align:center;border:1px solid #dde3c9;border-radius:20px;background:#fffdf5f5;box-shadow:0 12px 35px #21573b1f;padding:20px 16px}.result-icon{font-size:37px;line-height:1}.result-card .eyebrow{font-size:8px;margin:12px 0 6px;letter-spacing:2px;color:#7a8968}.result-card h2{font-size:29px;letter-spacing:-1px;margin:0}.result-candidate{font-size:12px;margin:9px 0;color:#5f7957;line-height:1.4}.result-number strong{font-size:68px;line-height:1.1;display:block;letter-spacing:-3px}.result-number>span{display:block;font-size:12px;font-weight:700}.result-detail{font-size:11px;line-height:1.5;color:#7a856e;margin:10px 0 0}.record-badge{display:inline-block;padding:7px 11px;margin-top:12px;background:#dfeecb;border-radius:99px;font-size:11px;font-weight:700}.screen-confetti{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:none}.game-screen[data-phase=running] .intro .eyebrow,.game-screen[data-phase=running] .tagline{display:none}.game-screen[data-phase=running] h1{font-size:24px;line-height:1.05;letter-spacing:-.7px}.game-screen[data-phase=running] .selection-button{min-height:43px;padding:5px 10px}.game-screen[data-phase=running] .selection-text small{font-size:10px}.game-screen[data-phase=running] .change-label{display:none}.game-screen[data-phase=running] .primary-button:disabled{background:#056948;border-color:#056948;box-shadow:0 4px 0 #004c34}.about-game{padding:26px 3px 28px;border-top:1px solid var(--line);margin-top:23px;color:#708066}.about-game .eyebrow{font-size:9px}.about-game h2{font-size:27px;letter-spacing:-1px;margin:9px 0 15px;color:var(--ink)}.about-game p{font-size:13px;line-height:1.75;margin:10px 0}.about-game a{display:inline-block;font-size:12px;margin-top:8px;font-weight:700}footer{max-width:650px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:21px 20px 30px;font-size:11px;color:#819078}footer a{text-decoration:none}footer a:first-child{font-weight:900;color:var(--ink)}dialog{background:var(--paper);border:1px solid #dbddcc;border-radius:22px;width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 30px);padding:0;color:var(--ink);box-shadow:0 20px 80px #093e3140}dialog::backdrop{background:#143c326e;backdrop-filter:blur(5px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:19px 21px;position:sticky;top:0;background:var(--paper);z-index:2}.dialog-header .eyebrow{font-size:8px;color:#879170;margin-bottom:6px}.dialog-header h2{font-size:25px;line-height:1.1;letter-spacing:-.8px;margin:0}.dialog-header .icon-button{flex:none}.dialog-content,.help-content{padding:20px 21px 26px}.field-label{font-size:13px;font-weight:700;display:block;margin-bottom:8px}.search-box{display:flex;align-items:center;gap:8px;background:#fffefa;border:1px solid #bfcdb2;border-radius:12px;padding:0 12px;box-shadow:0 3px 8px #31553106}.search-box>span{font-size:26px;color:#7a8f6b}input[type=search]{font-size:17px;min-width:0;width:100%;color:var(--ink);background:none;border:0;min-height:49px;padding:10px 0}input[type=search]:focus{outline:none}.search-box:focus-within{outline:3px solid #f7af5c;outline-offset:1px}.field-hint{font-size:11px;line-height:1.5;color:#7b886d;margin:9px 0 17px}.results-count{font-size:11px;color:#79876d;margin:0 0 8px}.municipality-results,.candidate-results{display:grid;gap:8px}.municipality-result,.candidate-result{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:57px;padding:12px 13px;background:#fffdf5;border:1px solid #dcdcc8;border-radius:12px;text-align:left}.municipality-result:hover,.candidate-result:hover{background:#edf3dd;border-color:#99b27f}.municipality-result strong{display:block;font-size:15px;line-height:1.25}.municipality-result small{display:block;font-size:10px;color:#7b8d6d;margin-top:4px}.municipality-result>span:last-child,.candidate-result>span:last-child{font-size:22px;color:#7a9765}.candidate-result strong{display:block;font-size:16px;line-height:1.25;overflow-wrap:anywhere}.candidate-result small{display:block;font-size:11px;color:#728264;line-height:1.5;margin-top:5px;overflow-wrap:anywhere}.back-button{background:none;border:0;border-bottom:1px solid #b5c5a5;padding:5px 0;color:#5b7951;font-size:12px;font-weight:700;margin:0 0 17px;min-height:32px}#candidate-municipality{font-size:25px;margin:0 0 8px;letter-spacing:-.7px}.candidate-intro{font-size:13px;line-height:1.6;color:#77836b;margin:0 0 17px}.archive-note{font-size:10px;line-height:1.5;color:#8a937d;margin:20px 0 0;text-align:center}.no-results{padding:17px 0;color:#6f8063;line-height:1.6;font-size:14px}.help-content{font-size:14px;line-height:1.75}.help-content ol{padding-left:21px;margin:0 0 18px}.help-content li{margin-bottom:13px}.help-content p{font-size:12px;color:#718268;line-height:1.7}noscript{display:block;text-align:center;padding:20px}
@keyframes peek-in{from{opacity:0;transform:translateX(-50%) translateY(15%) scale(.9)}to{opacity:1;transform:translateX(-50%) scale(1)}}@keyframes hit-points{0%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -18px}}
@media(max-width:650px){.site-header{min-height:50px;padding:5px max(14px,env(safe-area-inset-left))}.brand{width:128px}.header-tools{gap:5px}.header-tools .icon-button{height:33px;width:33px;font-size:20px}.app-shell{padding:0 max(10px,env(safe-area-inset-left))}.game-screen{min-height:480px;gap:7px;padding:3px 0 max(10px,env(safe-area-inset-bottom))}h1{font-size:clamp(30px,9.3vw,40px);line-height:.98;letter-spacing:-1.6px}.eyebrow{font-size:7px;letter-spacing:2.5px;margin-bottom:6px}.tagline{font-size:12px;margin-top:6px}.selection-button{min-height:47px;padding:6px 10px;border-radius:11px;gap:7px}.selection-text strong{font-size:12px}.selection-text small{font-size:10px}.location-icon{font-size:23px}.change-label{font-size:10px}.stats{gap:5px}.stats>div{padding:7px 5px;gap:7px;border-radius:13px}.stats svg{width:21px;height:26px}.stats p{font-size:7px;letter-spacing:.8px}.stats strong{font-size:24px}.stats small{font-size:14px}.arena-viewport{border-radius:17px}.scene{border-radius:12px}.status{font-size:11px;line-height:1.4;margin-bottom:7px;min-height:16px}.primary-button{min-height:52px;font-size:21px;gap:22px}.primary-button>span:last-child{font-size:27px}.deck-bottom{min-height:28px;padding-top:8px}.dataset-badge{font-size:8px}.text-button{font-size:10px;min-height:20px}.result-overlay{padding:10px}.result-card{padding:13px 12px;border-radius:17px}.result-icon{font-size:28px}.result-card .eyebrow{margin-top:8px;font-size:7px}.result-card h2{font-size:25px}.result-candidate{font-size:11px;margin:7px 0}.result-number strong{font-size:57px}.result-detail{font-size:10px;margin-top:8px}.record-badge{font-size:10px;padding:6px 9px;margin-top:8px}.about-game{margin-top:17px;padding:23px 6px}.about-game h2{font-size:25px}.about-game p{font-size:13px}.dialog-header{padding:15px 16px}.dialog-header h2{font-size:24px}.dialog-content,.help-content{padding:17px 16px 23px}}
@media(max-height:700px) and (max-width:650px){.intro .eyebrow{display:none}.tagline{font-size:11px;margin-top:4px}h1{font-size:clamp(28px,8.6vw,34px)}.game-screen{gap:5px;min-height:460px}.selection-button{min-height:43px}.stats>div{padding-top:5px;padding-bottom:5px}.stats strong{font-size:22px}.result-icon{display:none}.result-card .eyebrow{margin-top:0}.result-number strong{font-size:45px}.result-detail{margin-top:6px}.result-card h2{font-size:22px}.result-candidate{font-size:10px}.record-badge{margin-top:6px;padding:4px 8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* The ruined and restored facades share the same coordinate system. */
.scene-art{position:absolute;inset:0;transform-origin:50% 42%;transition:transform .7s ease}
.townhall{position:absolute;inset:0}
.townhall-restored{opacity:var(--repair,0);transition:opacity .8s ease;pointer-events:none}
.game-screen[data-phase=running] .scene-art{transform:scale(1.52)}
.window{min-width:0;min-height:0}
.window:before{content:'';position:absolute;inset:-3px;border-radius:5px}
.window-portrait{position:absolute;overflow:hidden;pointer-events:none}
.window .mayor{top:0;left:0;bottom:auto;width:100%;height:auto;max-width:none;object-fit:initial;transform:translateY(20%);transform-origin:center bottom;filter:none}
.window.is-active .mayor{transform:translateY(0);animation:window-peek .12s ease-out}
.window-glow{inset:auto;border-width:2px;box-shadow:0 0 0 1px #fff8,0 0 12px #ffbc3490}
.window-clock{bottom:auto}
.game-screen[data-phase=finished] .stats>div:nth-child(2){background:#dceecb}
.game-screen[data-phase=finished] .status{color:#086e48}
@keyframes window-peek{from{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.scene-art,.townhall-restored,.window .mayor{transition:none;animation:none}}

/* Keep the search and results inside the actual visible area above a phone keyboard. */
#selection-dialog[open]{display:flex;flex-direction:column;position:fixed;top:calc(var(--visible-top,0px) + 10px);bottom:auto;left:0;right:0;margin:0 auto;height:min(720px,calc(var(--visible-height,100dvh) - 20px));max-height:calc(var(--visible-height,100dvh) - 20px)}
#selection-dialog .dialog-header{flex:none;position:relative}
#selection-dialog .dialog-content{display:flex;flex:1;min-height:0;flex-direction:column;padding-bottom:12px;overflow:hidden}
#municipality-panel,#candidate-panel{display:flex;flex:1;min-height:0;flex-direction:column}
#selection-dialog .field-label,#selection-dialog .search-box,#selection-dialog .field-hint,#selection-dialog .results-count,#selection-dialog .back-button,#candidate-municipality,.candidate-intro,.avatar-picker{flex:none}
#selection-dialog .municipality-results,#selection-dialog .candidate-results{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;padding:3px 3px 5px;margin:0 -3px;scroll-padding:4px}
#selection-dialog .archive-note{flex:none;margin:9px 0 0;font-size:9px}
.avatar-picker{display:flex;gap:8px;margin:0 0 12px}
.avatar-picker button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:44px;overflow:hidden;border:1px solid #cad3b9;background:#fffdf5;border-radius:10px;font-size:12px;font-weight:700;padding:3px 8px}
.avatar-picker button[aria-pressed=true]{background:#e0edcb;border-color:#6d9461;box-shadow:inset 0 0 0 1px #6d9461}
.avatar-thumb{width:29px;height:36px;object-fit:cover;object-position:center top;flex:none}
#counting-status:empty{display:none}
:root[data-compact-viewport=true] #selection-dialog .dialog-header{padding:10px 14px}
:root[data-compact-viewport=true] #selection-dialog .dialog-header .eyebrow{display:none}
:root[data-compact-viewport=true] #selection-dialog .dialog-header h2{font-size:21px}
:root[data-compact-viewport=true] #selection-dialog .dialog-content{padding:10px 14px 8px}
:root[data-compact-viewport=true] #selection-dialog .field-hint,:root[data-compact-viewport=true] #selection-dialog .candidate-intro{display:none}
:root[data-compact-viewport=true] #selection-dialog .field-label{margin-bottom:5px;font-size:12px}
:root[data-compact-viewport=true] #selection-dialog input{min-height:44px;padding:7px 0}
:root[data-compact-viewport=true] #selection-dialog .results-count{margin:7px 0 5px}
:root[data-compact-viewport=true] #selection-dialog .municipality-result,:root[data-compact-viewport=true] #selection-dialog .candidate-result{min-height:48px;padding:8px 10px}
:root[data-compact-viewport=true] #selection-dialog .back-button{align-self:flex-start;margin-bottom:5px;min-height:32px}
:root[data-compact-viewport=true] #candidate-municipality{font-size:20px;margin-bottom:6px}
:root[data-compact-viewport=true] .avatar-picker{margin-bottom:7px}

/* A plane tows the selected candidature into view, then keeps it readable. */
.victory-flight{position:absolute;inset:9px 8px auto;z-index:15;pointer-events:none;container-type:inline-size;filter:drop-shadow(0 6px 8px #12392e30)}
.victory-rig{display:grid;grid-template-columns:minmax(0,1fr) 18px 65px;align-items:center;animation:flight-arrival 1.5s cubic-bezier(.16,.7,.22,1) both}
.victory-banner{position:relative;background:linear-gradient(110deg,#fffef5,#fff4ce);border:2px solid #075a40;border-left:6px solid #ff891d;border-radius:5px 9px 9px 5px;padding:10px 11px 11px;text-align:center;min-width:0;transform-origin:right center;animation:banner-breeze 3.6s ease-in-out 1.5s 2}
.victory-kicker{display:block;color:#af5c15;font-size:9px;font-weight:900;letter-spacing:1.5px;margin-bottom:5px}
#victory-name{display:block;font-size:clamp(22px,7cqw,36px);font-weight:900;line-height:1.04;letter-spacing:-.8px;overflow-wrap:anywhere;text-wrap:balance;color:#064b38}
.victory-party-label{display:block;color:#657453;font-size:7px;font-weight:700;letter-spacing:.7px;margin:9px 0 3px}
#victory-party{display:block;color:#285c42;font-size:clamp(10px,3cqw,14px);font-weight:800;line-height:1.3;overflow-wrap:anywhere;text-wrap:balance}
.victory-rope{width:100%;height:50px;overflow:visible}
.victory-plane{width:100%;height:auto;overflow:visible;animation:plane-hover 2.4s ease-in-out 1.5s 3}
.plane-propeller{transform-origin:118px 54px;animation:propeller-spin .12s linear 75}
.game-screen[data-phase=finished]:has(.victory-flight:not([hidden])) .scene-label{top:auto;bottom:2.5%;left:8%;right:8%}
@keyframes flight-arrival{0%{transform:translateX(-115%) rotate(-3deg);opacity:0}12%{opacity:1}82%{transform:translateX(2%) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes banner-breeze{0%,100%{transform:rotate(-.6deg) skewY(.3deg)}50%{transform:rotate(.6deg) skewY(-.3deg)}}
@keyframes plane-hover{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes propeller-spin{from{transform:scaleY(1)}50%{transform:scaleY(.08)}to{transform:scaleY(1)}}
@media(max-width:350px){.victory-rig{grid-template-columns:minmax(0,1fr) 12px 49px}.victory-flight{inset:7px 6px auto}.victory-banner{padding:9px 8px}.victory-kicker{font-size:8px;letter-spacing:1px}.victory-party-label{font-size:6px;letter-spacing:.3px}}
@media(prefers-reduced-motion:reduce){.victory-rig,.victory-banner,.victory-plane,.plane-propeller{animation:none;transform:none}}

.avatar-tile{display:block;position:relative;width:100%;aspect-ratio:2/3;overflow:hidden}
.avatar-tile>img{display:block;position:absolute;max-width:none;object-fit:fill;pointer-events:none}
.window .mayor{transform:none;animation:none;object-fit:fill}
.window.is-active .mayor{transform:none;animation:none}
.window .avatar-tile{transform:translateY(20%);opacity:0}
.window.is-active .avatar-tile{transform:translateY(0);opacity:1;animation:window-peek .12s ease-out}
.candidate-face{position:relative;display:block;flex:none;width:44px;height:48px;overflow:hidden;border-radius:9px;background:#edf0de}
.candidate-face .avatar-tile{width:150%;margin-left:-25%;margin-top:-8%}
.candidate-result>span:not(.candidate-face):first-of-type{min-width:0}
.candidate-result>span:has(strong){flex:1;min-width:0}
.avatar-picker button{min-width:0;gap:4px;padding:3px 5px;font-size:11px}
#portrait-hint{font-size:10px;line-height:1.4;margin:0 0 10px;flex:none}
:root[data-compact-viewport=true] #portrait-hint{display:none}
@media(prefers-reduced-motion:reduce){.window .avatar-tile,.window.is-active .avatar-tile{animation:none;transform:none}}
