/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-100:oklch(96.7% .003 264.542);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[2px\]{height:2px}.h-auto{height:auto}.h-full{height:100%}.max-h-\[120px\]{max-height:120px}.min-h-\[calc\(100vh-56px\)\]{min-height:calc(100vh - 56px)}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-\[400px\]{width:400px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[960px\]{max-width:960px}.max-w-full{max-width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-t-transparent{border-top-color:#0000}.bg-\[var\(--civic-blue\)\]{background-color:var(--civic-blue)}.bg-current{background-color:currentColor}.bg-gray-100{background-color:var(--color-gray-100)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pr-24{padding-right:calc(var(--spacing) * 24)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.opacity-60{opacity:.6}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:scale-\[1\.01\]:hover{scale:1.01}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:scale-\[1\.03\]:hover{scale:1.03}}.active\:scale-\[0\.97\]:active{scale:.97}.active\:scale-\[0\.98\]:active{scale:.98}.active\:scale-\[0\.99\]:active{scale:.99}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}}@font-face{font-family:Cinzel;src:url(./cinzel-latin-BE-iBFH_.woff2)format("woff2");font-style:normal;font-weight:400 900;font-display:swap}@font-face{font-family:Inter;src:url(./inter-latin-bPa_la71.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--bg-cream:#f5ede0;--bg-warm:#ede4d3;--bg-paper:#faf6ef;--bg-card:#fff;--shadow-soft:0 2px 12px #78644614;--shadow-hover:0 4px 20px #78644621;--township-bg:var(--bg-cream);--township-paper:var(--bg-warm);--township-ink:#2c2520;--township-ink-muted:#6b5e52;--text-primary:#2c2520;--text-secondary:#6b5e52;--text-muted:#73675a;--gold-accent:#c4a35a;--gold-ink:#765a1f;--gold-light:#d9c48e;--gold-glow:#c4a35a40;--color-success:#32733e;--color-warning:#865018;--color-danger:#b85050;--color-live:#b5493a;--text-on-accent:#fff;--text-on-gold:#2c2520;--text-on-overlay:#fff8e0;--overlay-ink:#14100c8c;--pixel-canvas-mat:#e8dcc8;--civic-blue:#3b5998;--civic-blue-light:#5b7ec0;--undecided:#d1d5db;--card-bg:var(--bg-card);--card-border:#e8e0d4;--card-shadow:var(--shadow-soft);--ease-genshin:cubic-bezier(.22, 1, .36, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--font-display:"Cinzel", serif;--font-body:"Inter", -apple-system, sans-serif;--warm-glass:#fffcf5b8;--warm-glass-strong:#fffcf5cc;--warm-glass-border:#b4a0782e;--warm-glass-blur:12px;--pixel-frame-spacer:#faf6efe6;--pixel-frame-gold:#c4a35a73;--pixel-frame-shadow:0 0 0 2px var(--pixel-frame-spacer), 0 0 0 4px var(--pixel-frame-gold), 0 6px 18px #64503229;--pixel-frame-shadow-quiet:0 0 0 1px var(--pixel-frame-spacer), 0 0 0 2px var(--pixel-frame-gold)}*{box-sizing:border-box}canvas{image-rendering:pixelated;image-rendering:crisp-edges}.warm-glass{background:var(--warm-glass);-webkit-backdrop-filter:blur(var(--warm-glass-blur));border:1px solid var(--warm-glass-border);box-shadow:var(--shadow-soft);border-radius:12px}body{font-family:var(--font-body);background:var(--bg-cream);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.route-loading{min-height:calc(100dvh - 56px);color:var(--text-secondary);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.route-loading-mark{border:3px solid var(--gold-light);border-top-color:var(--gold-ink);border-radius:2px;width:16px;height:16px;animation:1.2s steps(4,end) infinite minimap-loading-turn}.scenario-bootstrap-state{background:radial-gradient(circle at 50% 15%, #c4a35a24, transparent 34%), var(--bg-cream);place-items:center;min-height:100dvh;padding:32px 20px;display:grid}.scenario-bootstrap-state>div{border:1px solid var(--warm-glass-border);background:var(--bg-paper);width:min(100%,560px);box-shadow:var(--shadow-soft);text-align:center;border-radius:16px;padding:32px}.scenario-bootstrap-state .route-loading-mark{margin-bottom:12px;display:inline-block}.scenario-bootstrap-state h1{margin:0 0 10px;font-size:clamp(24px,5vw,38px)}.scenario-bootstrap-state p{color:var(--text-secondary);line-height:1.6}.scenario-bootstrap-eyebrow{letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700;color:var(--gold-ink)!important}.scenario-bootstrap-state button{border:1px solid var(--gold-ink);background:var(--gold-accent);color:var(--text-on-gold);font:600 13px var(--font-body);cursor:pointer;border-radius:999px;margin-top:8px;padding:9px 18px}.responsible-use-notice{z-index:35;color:#5f351f;min-height:38px;font-family:var(--font-body);background:#fff4df;border-bottom:1px solid #995b3642;justify-content:center;align-items:center;gap:10px 16px;padding:7px 20px;font-size:12px;line-height:1.45;display:flex;position:relative}.responsible-use-notice__core{margin:0;font-weight:650}.responsible-use-notice__details{flex:none}.responsible-use-notice__details summary{color:#70452a;cursor:pointer;text-underline-offset:2px;font-weight:700;text-decoration:underline}.responsible-use-notice__expanded{width:min(620px,100vw - 24px);color:var(--text-primary);background:#fffaf1;border:1px solid #995b3652;border-radius:10px;padding:14px 16px;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 12px 28px #4a301b33}.responsible-use-notice__expanded p{margin:0 0 8px}.responsible-use-notice__expanded a{color:#70452a;font-weight:700}h1,h2,h3{font-family:var(--font-display)}@keyframes agent-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 4px)}50%{filter:drop-shadow(0 0 12px)}}@keyframes opinion-shift{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes typing-dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@keyframes pin-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes ripple{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(2.4)}}@keyframes particle-float-0{0%{opacity:0;transform:translate(0)scale(.8)}10%{opacity:.22}90%{opacity:.12}to{opacity:0;transform:translate(25px,-180px)scale(.3)}}@keyframes particle-float-1{0%{opacity:0;transform:translate(0)scale(.6)}12%{opacity:.18}88%{opacity:.1}to{opacity:0;transform:translate(-20px,-200px)scale(.35)}}@keyframes particle-float-2{0%{opacity:0;transform:translate(0)scale(.9)}15%{opacity:.2}85%{opacity:.15}to{opacity:0;transform:translate(35px,-160px)scale(.4)}}@keyframes particle-float-3{0%{opacity:0;transform:translate(0)scale(.7)}8%{opacity:.15}92%{opacity:.1}to{opacity:0;transform:translate(-15px,-220px)scale(.25)}}@keyframes cloud-drift{0%{transform:translate(0)}to{transform:translate(80px)}}@keyframes compass-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes waypoint-burst{0%{opacity:.3;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}@keyframes badge-pop-in{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes sparkle{0%{opacity:0;transform:scale(0)}50%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes stagger-in{0%{transform:translateY(12px)}to{transform:translateY(0)}}@keyframes gold-border-flash{0%{box-shadow:inset 0 0 0 2px var(--gold-accent)}to{box-shadow:inset 0 0 0 2px #0000}}.canvas-vignette{pointer-events:none;z-index:5;position:absolute;inset:0;box-shadow:inset 0 0 100px #503c1e14}.canvas-vignette:after{content:"";background:radial-gradient(#0000 60%,#f0e6d21f);position:absolute;inset:0}.ornamental-sep{justify-content:center;align-items:center;gap:0;width:140px;height:12px;margin:0 auto;display:flex}.ambient-particles{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.ambient-particle{background:var(--gold-accent);will-change:transform, opacity;border-radius:50%;width:4px;height:4px;position:absolute}.chat-bubble{max-width:80%;font-size:13.5px;line-height:1.55;font-family:var(--font-body);color:var(--text-primary);border-radius:12px;padding:12px 14px;animation:.25s ease-out fade-in-up}.chat-bubble--agent{background:var(--bg-cream);border:1px solid #b4a07826;border-radius:2px 12px 12px;align-self:flex-start}.chat-bubble--user{background:#4a8fbf1a;border-radius:12px 2px 12px 12px;align-self:flex-end}.chat-bubble--system{color:var(--text-muted);text-align:center;background:0 0;align-self:center;font-size:.8rem;font-style:italic}.chat-gesture{color:var(--text-muted,#4a3c289e);opacity:.78;letter-spacing:.01em;padding:0 .15em;font-size:.88em;font-style:italic;font-weight:400;display:inline}.chat-gesture:before{content:" ⟨";opacity:.55;margin-right:.1em}.chat-gesture:after{content:"⟩ ";opacity:.55;margin-left:.1em}.town-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.opinion-badge{border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c4a35a33;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#c4a35a59}.slide-panel-enter{animation:slide-in-right .35s var(--ease-genshin) forwards}.slide-panel-exit{animation:.25s ease-in forwards slide-out-right}.district-map-pin{cursor:pointer;transition:transform .3s var(--ease-genshin)}.district-map-pin:hover{transform:scale(1.12)}.district-map-pin:hover .pin-details{opacity:1;transform:translateY(0)}.pin-details{opacity:0;transition:all .25s var(--ease-genshin);transform:translateY(6px)}.pin-ripple{animation:2s ease-out infinite ripple}.waypoint-marker:hover .waypoint-pulse{animation-duration:1.5s!important}.waypoint-marker:hover .waypoint-core{filter:brightness(1.2);transition:filter .2s}.mobile-menu-btn{cursor:pointer;color:var(--township-ink);background:0 0;border:none;padding:6px;display:none}.nav-links{align-items:center;gap:4px;display:flex}@media (width<=768px){.mobile-menu-btn{display:block}.nav-links{border-bottom:1px solid var(--card-border);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#faf7f2fa;flex-direction:column;gap:4px;padding:8px 16px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.nav-links--open{display:flex}.nav-links a{text-align:center;width:100%;padding:10px 12px!important}}.dashboard-town-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.dashboard-town-card{align-self:start}.dashboard-town-issue{padding-block:1px;line-height:1.25}.dashboard-town-issue>span{margin-top:.38em}.dashboard-town-issue>.dashboard-town-issue-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:0;display:-webkit-box;overflow:hidden}@media (width<=1280px){.dashboard-town-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.dashboard-town-grid{grid-template-columns:1fr}}.dashboard-agent-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.dashboard-town-grid>[role=button]:focus-visible{outline:2px solid var(--gold-accent);outline-offset:3px}.resident-card:focus-visible{outline:2px solid var(--gold-accent);outline-offset:2px}.resident-card--compact:focus-visible{outline-offset:-2px}@media (width<=1280px){.dashboard-agent-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.dashboard-agent-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.dashboard-agent-grid{grid-template-columns:1fr}}.town-view-layout{height:calc(100vh - 56px);display:flex}.town-view-sidebar{background:var(--bg-paper);border-left:1px solid #b4a07826;flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden}@media (width<=768px){.town-view-layout{flex-direction:column;height:calc(100dvh - 56px)}.town-view-sidebar{border-left:none;border-top:1px solid var(--card-border);width:100%;height:160px;max-height:160px}.town-view-sidebar>.border-t{display:none}.town-canvas-wrapper{min-height:min(48dvh,420px);max-height:none}.demo-mode .town-view-layout>.flex-1,.demo-mode .town-canvas-wrapper{min-height:0}.dashboard-overview{flex-direction:column;align-items:stretch;gap:14px;padding:18px}.dashboard-overview>:first-child{align-self:center}}.chat-panel-backdrop{display:none}@media (width<=768px){.chat-panel-backdrop{z-index:49;background:#0006;display:block;position:fixed;inset:0}.chat-panel{border-radius:16px 16px 0 0;border-left:none!important;width:100%!important;max-width:100%!important;height:85vh!important;animation:.3s ease-out forwards slide-up-mobile!important;position:fixed!important;inset:auto 0 0!important}.chat-panel--expanded{height:85vh!important}}@keyframes slide-up-mobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.district-map-pin circle{cursor:pointer}.district-map-pin{touch-action:manipulation}.district-map-pin>circle:first-of-type{r:24}.district-map-pin-hit-area{r:32;fill:#0000;cursor:pointer}}.district-town-cards{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=768px){.district-town-cards{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.district-town-cards{grid-template-columns:1fr}}@media (width<=768px){.gods-view-container,.max-w-7xl{padding-left:16px;padding-right:16px}.dashboard-overview{flex-direction:column;gap:16px}.dashboard-overview>div:first-child{align-self:center}}.player-sidebar-card{border-left:3px solid var(--civic-blue);background:#3b59980a;border-radius:8px;position:relative}.player-badge{letter-spacing:.06em;color:#fff;background:var(--civic-blue);border-radius:9999px;padding:1px 6px;font-size:7px;font-weight:700;line-height:1.4;position:absolute;top:4px;right:6px}.chat-mode-toggle{border:1px solid var(--card-border);background:var(--township-paper);border-radius:9999px;gap:1px;padding:2px;display:flex;box-shadow:inset 0 1px 2px #0000000a}.chat-mode-toggle-btn{color:var(--township-ink-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9999px;align-items:center;gap:3px;padding:3px 8px;font-size:10px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.chat-mode-toggle-btn--active{background:var(--civic-blue);color:#fff;box-shadow:0 1px 3px #3b59984d}.chat-mode-toggle-btn:not(.chat-mode-toggle-btn--active):hover{color:var(--township-ink);background:#0000000a}.overlay-agent-label{transform-origin:50%;color:#fff;text-shadow:0 1px 3px #0009,0 0 1px #0000004d;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Inter,system-ui,sans-serif;font-size:9px;font-weight:700;position:absolute;top:0;left:0;translate:-50% -50%}.overlay-landmark-label{transform-origin:50%;color:#fff;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;background:#00000075;border-radius:5px;padding:2px 8px;font-family:Inter,system-ui,sans-serif;font-size:9px;font-weight:600;position:absolute;top:0;left:0;translate:-50% -50%}.keyboard-hint{z-index:40;animation:.4s cubic-bezier(.22,1,.36,1) forwards keyboard-hint-enter;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.keyboard-hint-inner{-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);background:#faf7f2e0;border:1px solid #e8e0d499;border-radius:16px;align-items:center;gap:14px;padding:10px 18px;display:flex;box-shadow:0 4px 20px #00000014,0 1px 4px #0000000a}.keyboard-hint-group{flex-direction:column;align-items:center;gap:4px;display:flex}.keyboard-hint-keys{gap:3px;display:flex}.keyboard-hint-keys kbd{min-width:22px;height:22px;color:var(--township-ink);background:#fff;border:1px solid #d4cfc6;border-radius:5px;justify-content:center;align-items:center;padding:0 5px;font-family:Inter,sans-serif;font-size:10px;font-weight:600;display:inline-flex;box-shadow:0 1px 0 1px #0000000f,inset 0 -1px #0000000a}.keyboard-hint-click{padding:0 8px!important;font-size:9px!important}.keyboard-hint-label{color:var(--township-ink-muted);font-size:9px;font-weight:500}.keyboard-hint-divider{background:var(--card-border);width:1px;height:28px}@keyframes keyboard-hint-enter{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.onboarding-layout{background:#f6f0e5;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:calc(100vh - 112px);display:grid}.onboarding-art{background:#d7c7ab;border-right:1px solid #4a3a262e;min-height:680px;position:relative;overflow:hidden}.onboarding-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.onboarding-art:after{content:"";pointer-events:none;background:linear-gradient(#241c120a,#0000 42%),linear-gradient(#0000 67%,#18130dad);position:absolute;inset:0}.onboarding-art-caption{z-index:3;color:#fffaf0;text-shadow:0 2px 16px #181109b8;gap:8px;display:grid;position:absolute;bottom:clamp(28px,6vw,68px);left:clamp(24px,5vw,68px);right:clamp(24px,5vw,68px)}.onboarding-art-caption strong{max-width:620px;font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(25px,3.4vw,48px);line-height:1.05}.onboarding-art-kicker,.onboarding-eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:800}.onboarding-form-panel{background:radial-gradient(circle at 100% 0,#dbbb7f2e,#0000 32%),#f8f3ea;justify-content:center;padding:clamp(32px,5vw,72px) clamp(22px,4vw,58px);display:flex}.onboarding-form{align-content:start;gap:24px;width:min(100%,660px);display:grid}.onboarding-form-heading{gap:8px;padding-bottom:6px;display:grid}.onboarding-eyebrow{color:var(--civic-blue)}.onboarding-form-heading h1{color:var(--township-ink);font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(30px,4vw,44px);line-height:1}.onboarding-form-heading p{max-width:56ch;color:var(--township-ink-muted);margin:4px 0 0;font-size:14px;line-height:1.65}.onboarding-field,.onboarding-fieldset{gap:8px;min-width:0;display:grid}.onboarding-fieldset{border:0;margin:0;padding:0}.onboarding-field>span,.onboarding-fieldset>legend{color:var(--township-ink);padding:0;font-size:13px;font-weight:750}.onboarding-field>small,.onboarding-field-hint{color:var(--township-ink-muted);margin:-4px 0 2px;font-size:11px;line-height:1.45}.onboarding-field input,.onboarding-field select,.onboarding-field textarea{width:100%;min-height:46px;color:var(--township-ink);background:#fffdf8f0;border:1px solid #4e3f2c3d;border-radius:9px;outline:none;padding:11px 13px;font-family:inherit;font-size:16px;transition:border-color .14s,box-shadow .14s;box-shadow:0 1px #4a3a260a}.onboarding-field textarea{resize:vertical;min-height:90px}.onboarding-field input:focus-visible,.onboarding-field select:focus-visible,.onboarding-field textarea:focus-visible{border-color:var(--civic-blue);box-shadow:0 0 0 3px #3b59982e}.onboarding-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.onboarding-choice-grid--towns{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.onboarding-choice{min-width:0;position:relative}.onboarding-choice>input,.onboarding-avatar-choice>input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.onboarding-choice-card{min-height:72px;color:var(--township-ink);cursor:pointer;background:#fffdf8bf;border:1px solid #4e3f2c30;border-radius:10px;grid-template-columns:10px minmax(0,1fr);gap:2px 9px;padding:12px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:grid}.onboarding-choice-card i{border-radius:999px;grid-row:1/span 2;align-self:stretch;min-height:28px}.onboarding-choice-card strong{text-overflow:ellipsis;align-self:end;font-size:12px;line-height:1.25;overflow:hidden}.onboarding-choice-card small{color:var(--township-ink-muted);text-overflow:ellipsis;font-size:10px;line-height:1.25;overflow:hidden}.onboarding-choice-card--compact{grid-template-columns:8px minmax(0,1fr);align-items:center;min-height:48px}.onboarding-choice-card--compact i{grid-row:auto;min-height:22px}.onboarding-choice-card--compact strong{align-self:center}.onboarding-choice:hover .onboarding-choice-card{transform:translateY(-1px)}.onboarding-choice>input:checked+.onboarding-choice-card{border-color:var(--civic-blue);box-shadow:inset 0 0 0 1px var(--civic-blue), 0 5px 16px #3b599817;background:#f2f6fff2}.onboarding-choice>input:focus-visible+.onboarding-choice-card,.onboarding-avatar-choice>input:focus-visible+span{outline-offset:2px;outline:3px solid #3b599859}.onboarding-personalize-grid{grid-template-columns:minmax(0,1.6fr) minmax(120px,.8fr);align-items:end;gap:18px;display:grid}.onboarding-avatar-grid{grid-template-columns:repeat(6,minmax(38px,1fr));gap:6px;display:grid}.onboarding-avatar-choice{color:var(--township-ink-muted);cursor:pointer;justify-items:center;gap:4px;display:grid;position:relative}.onboarding-avatar-choice span{color:#57432c;width:42px;height:42px;font-family:var(--font-display);background:linear-gradient(145deg,#f1d8ae,#d6b682);border:1px solid #4e3f2c33;border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid;box-shadow:inset 0 -5px #6444251a}.onboarding-avatar-choice b{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden}.onboarding-avatar-choice>input:checked+span{border-color:var(--civic-blue);box-shadow:0 0 0 2px #f8f3ea, 0 0 0 4px var(--civic-blue), inset 0 -5px 0 #6444251a}.onboarding-submit--primary{background:var(--civic-blue);color:#fff;cursor:pointer;border:1px solid #263e73;border-radius:10px;width:100%;min-height:50px;margin-top:2px;font-size:14px;font-weight:750;box-shadow:0 7px 18px #2a3d6933}.onboarding-submit--primary:hover{background:var(--civic-blue-light);transform:translateY(-1px)}.onboarding-submit--primary:focus-visible{outline-offset:3px;outline:3px solid #3b599857}@media (width<=900px){.onboarding-layout{grid-template-columns:1fr}.onboarding-art{border-bottom:1px solid #4a3a262e;border-right:0;min-height:clamp(260px,42vh,430px)}.onboarding-art-caption strong{max-width:16ch}.onboarding-form-panel{padding-block:34px 56px}}@media (width<=520px){.onboarding-choice-grid,.onboarding-choice-grid--towns,.onboarding-personalize-grid{grid-template-columns:1fr}.onboarding-avatar-grid{grid-template-columns:repeat(3,1fr);row-gap:12px}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] :before,html[data-reduced-motion=true] :after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}html.high-contrast{--text-primary:#000;--text-secondary:#222;--text-muted:#444;--bg-cream:#fff;--bg-warm:#f5f0e8;--bg-paper:#fff;--card-border:#555}.player-hud{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.player-hud--compact{gap:8px;margin-bottom:16px;padding:4px 0}.player-hud-chip{background:var(--warm-glass);-webkit-backdrop-filter:blur(6px);border:1px solid var(--warm-glass-border);color:var(--text-primary);font-family:var(--font-body);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.player-hud-chip strong{color:var(--gold-ink);font-weight:700}.player-hud-chip--persuaded strong{color:var(--gold-ink)}.player-hud-chip--countdown strong{color:var(--color-danger)}.town-hud-top-left{z-index:22;flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;left:12px}.town-minimap-wrapper{z-index:22;position:absolute;top:12px;right:12px}@media (width<=600px){.town-minimap-wrapper{transform-origin:100% 0;top:8px;right:8px;transform:scale(.76)}.town-hud-top-left{max-width:48%;top:8px;left:8px}.world-clock-chip,.town-canvas-title{display:none}.gossip-toast{max-width:calc(100% - 24px);font-size:11px;bottom:10px}}.minimap{border:1.5px solid var(--gold-accent);-webkit-backdrop-filter:blur(6px);background:#fffcf5d9;border-radius:8px;justify-content:center;align-items:center;width:180px;height:120px;display:flex;overflow:hidden;box-shadow:0 4px 14px #503c1e2e}.minimap-loading-mark{border:2px solid var(--gold-light);border-top-color:var(--gold-accent);border-radius:2px;width:13px;height:13px;animation:1.2s steps(4,end) infinite minimap-loading-turn}.minimap-loading-label{color:var(--text-muted);font-family:var(--font-display);letter-spacing:.8px;text-transform:uppercase;margin-left:8px;font-size:9px;font-weight:600}@keyframes minimap-loading-turn{to{transform:rotate(360deg)}}.minimap-player-halo{transform-box:fill-box;transform-origin:50%;animation:1.8s steps(2,end) infinite minimap-player-pulse}@keyframes minimap-player-pulse{50%{opacity:.25;transform:scale(1.35)}}.tutorial-backdrop{z-index:80;-webkit-backdrop-filter:blur(2px);background:#140e0880;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tutorial-modal{background:var(--bg-paper);border:1px solid var(--gold-accent);text-align:center;width:90%;max-width:360px;animation:stagger-in .4s var(--ease-genshin) backwards;border-radius:16px;padding:28px 32px;box-shadow:0 20px 60px #00000040}.tutorial-modal-icon{margin-bottom:8px;font-size:36px}.tutorial-modal-title{font-family:var(--font-display);letter-spacing:.5px;color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.tutorial-modal-body{font-family:var(--font-body);color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.5}.tutorial-modal-dots{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.tutorial-dot{background:var(--card-border);border-radius:999px;width:6px;height:6px;transition:all .3s}.tutorial-dot--active{background:var(--gold-accent);width:18px}.tutorial-modal-actions{justify-content:center;gap:12px;display:flex}.tutorial-skip,.tutorial-next{font-family:var(--font-body);cursor:pointer;border:1px solid var(--card-border);color:var(--text-muted);background:0 0;border-radius:8px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .2s}.tutorial-next{background:var(--gold-accent);color:var(--text-on-gold);border-color:var(--gold-accent)}.tutorial-skip:hover{color:var(--text-primary)}.tutorial-next:hover{filter:brightness(1.1)}.journal-backdrop{z-index:60;background:#0000002e;position:fixed;inset:0}.journal-panel{background:var(--bg-paper);border-left:1px solid var(--gold-accent);z-index:65;width:420px;max-width:100%;height:100dvh;animation:slide-from-right .3s var(--ease-genshin);flex-direction:column;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 30px #503c1e2e}@keyframes slide-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}.journal-header{border-bottom:1px solid var(--warm-glass-border);background:var(--bg-warm);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.journal-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:1px;font-size:18px;font-weight:600}.journal-header-actions{align-items:center;gap:4px;display:flex}.journal-refresh,.journal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;width:30px;height:30px;font-size:18px;transition:all .2s}.journal-refresh:disabled{cursor:wait;opacity:.55}.journal-refresh--loading{animation:1s steps(8,end) infinite journal-refresh-turn}@keyframes journal-refresh-turn{to{transform:rotate(360deg)}}.journal-refresh:hover,.journal-close:hover{color:var(--text-primary);background:#c4a35a14}.journal-close{font-size:22px}.journal-body{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.journal-empty{text-align:center;font-size:13px;font-family:var(--font-body);color:var(--text-muted);padding:24px 8px}.journal-state{text-align:center;min-height:210px;color:var(--text-muted);font-family:var(--font-body);flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:30px 20px;font-size:12.5px;line-height:1.5;display:flex}.journal-state strong{color:var(--text-primary);font-family:var(--font-display);letter-spacing:.5px;font-size:14px}.journal-state small{max-width:28ch;color:var(--text-muted);overflow-wrap:anywhere}.journal-state-mark{width:34px;height:34px;color:var(--gold-ink);background:var(--bg-warm);border:1px solid var(--gold-light);box-shadow:var(--pixel-frame-shadow-quiet);font-family:var(--font-display);border-radius:3px;place-items:center;margin-bottom:5px;font-size:19px;font-weight:600;display:grid}.journal-state-mark--loading{border-color:var(--gold-light);border-top-color:var(--gold-accent);animation:1.1s steps(8,end) infinite journal-refresh-turn}.journal-state--error .journal-state-mark{color:var(--color-danger);border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.journal-state--error .journal-state-mark{border-color:color-mix(in srgb, var(--color-danger) 45%, transparent)}}.journal-state button,.dashboard-empty-actions button,.town-canvas-error button{border:1px solid var(--gold-accent);background:var(--bg-paper);color:var(--text-primary);font-family:var(--font-body);cursor:pointer;border-radius:4px;margin-top:6px;padding:7px 12px;font-size:12px;font-weight:600;transition:background .16s,color .16s,transform .16s}.journal-state button:hover,.dashboard-empty-actions button:hover,.town-canvas-error button:hover{background:var(--gold-accent);color:var(--text-on-gold)}.journal-state button:focus-visible,.dashboard-empty-actions button:focus-visible,.town-canvas-error button:focus-visible{outline:2px solid var(--civic-blue);outline-offset:2px}.journal-entry{border:1px solid var(--card-border);background:var(--bg-card);border-radius:10px;transition:all .2s;overflow:hidden}.journal-entry:hover{box-shadow:var(--shadow-soft)}.journal-entry--shifted{border-left:3px solid var(--gold-accent)}.journal-entry-head{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);font-family:var(--font-body);background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.journal-entry-head:hover{background:#c4a35a0d}.journal-entry-head-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.journal-entry-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.journal-entry-ts{color:var(--text-muted);font-size:10.5px}.journal-entry-caret{color:var(--text-muted);text-align:center;width:14px;font-size:13px}.journal-entry-meta{color:var(--text-secondary);font-size:11.5px;font-family:var(--font-body);flex-wrap:wrap;gap:14px;padding:6px 12px 10px;display:flex}.journal-entry-meta-item strong{color:var(--text-primary)}.journal-entry-transcript{border-top:1px solid var(--card-border);background:#f5ede066;flex-direction:column;gap:6px;max-height:240px;padding:10px 12px;display:flex;overflow-y:auto}.journal-line{font-size:12px;line-height:1.4;font-family:var(--font-body);grid-template-columns:38px 1fr;gap:6px;display:grid}.journal-line-role{color:var(--gold-ink);text-transform:uppercase;letter-spacing:.5px;padding-top:2px;font-size:10px;font-weight:600}.journal-line--agent .journal-line-role{color:var(--civic-blue)}.journal-line--user .journal-line-role{color:var(--gold-ink)}.journal-state--demo span:not(.journal-state-mark){max-width:34ch}.journal-state--demo a{color:var(--gold-ink);text-underline-offset:3px;margin-top:8px;font-weight:700}.journal-line-content{color:var(--text-primary)}.proximity-card{width:240px;max-width:calc(100% - 20px);display:block}.proximity-card-inner{background:var(--bg-paper);border:1px solid var(--gold-accent);font-family:var(--font-body);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;display:flex;box-shadow:0 6px 20px #281e0a33}.proximity-card-row{color:var(--text-primary);align-items:center;gap:6px;font-size:11.5px;display:flex}.proximity-card-name{font-weight:600;font-family:var(--font-display);letter-spacing:.3px;font-size:12.5px}.proximity-card-town{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-left:auto;font-size:10px;font-weight:500}.proximity-card-activity{color:var(--text-muted);font-size:11px;font-style:italic}.proximity-card-dot{border-radius:50%;width:6px;height:6px}.proximity-card-pill{text-transform:uppercase;letter-spacing:.6px;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.proximity-card-trust{background:#9a8e802e;border-radius:2px;flex:1;height:4px;overflow:hidden}.proximity-card-trust-fill{background:var(--gold-accent);height:100%;transition:width .4s var(--ease-genshin);display:block}.proximity-card-tail{background:var(--bg-paper);border-right:1px solid var(--gold-accent);border-bottom:1px solid var(--gold-accent);width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.mood-indicator{flex-shrink:0;display:inline-flex}.mood-indicator--positive{box-shadow:0 0 8px #4a9b5c2e}.mood-indicator--negative{box-shadow:0 0 8px #b850502e}.trust-badge{-webkit-user-select:none;user-select:none}.debug-overlay{z-index:90;color:#cfd8e0;background:#140e08d9;border:1px solid #444;border-radius:6px;min-width:200px;max-width:320px;padding:8px 10px;font-family:ui-monospace,SF Mono,monospace;font-size:11px;position:fixed;bottom:12px;left:12px}.debug-overlay-row{align-items:baseline;gap:6px;padding:1px 0;display:flex}.debug-overlay-row strong{color:#f2c071;font-weight:600}.debug-overlay-row--list{flex-direction:column;gap:2px}.debug-overlay-row--list ul{border-left:1px solid #555;margin:4px 0 0;padding:0 0 0 4px;list-style:none}.debug-overlay-row--list li{padding:1px 0 1px 6px}.weather-widget{-webkit-user-select:none;user-select:none}.topic-chips-row{flex-wrap:wrap;gap:6px;padding:8px 16px 0;display:flex}.topic-chip{border:1px solid var(--card-border);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;text-transform:capitalize;background:0 0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.topic-chip:hover:not(:disabled){background:var(--bg-warm);transform:translateY(-1px)}.topic-chip:disabled{opacity:.45;cursor:not-allowed}.memory-peek{border-top:1px solid var(--warm-glass-border);font-family:var(--font-body);background:#f5ede04d}.memory-peek-toggle{cursor:pointer;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;padding:8px 16px;font-size:11px;font-weight:600;list-style:none}.memory-peek-toggle::-webkit-details-marker{display:none}.memory-peek-toggle::marker{display:none}.memory-peek-toggle:before{content:"▸ ";margin-right:4px;transition:transform .2s;display:inline-block}.memory-peek[open] .memory-peek-toggle:before{transform:rotate(90deg)}.memory-peek-body{padding:0 16px 10px}.memory-peek-empty{color:var(--text-muted);font-size:11.5px;font-style:italic}.memory-peek-list{color:var(--text-secondary);margin:0;padding:0;font-size:11.5px;list-style:inside}.memory-peek-list li{padding:2px 0}.pixel-frame{image-rendering:pixelated;box-shadow:var(--pixel-frame-shadow);border-radius:3px}.pixel-frame--quiet{box-shadow:var(--pixel-frame-shadow-quiet)}.pixel-frame img,.pixel-frame canvas,.pixel-frame image{image-rendering:pixelated}.pixel-frame--inset:after{content:"";pointer-events:none;z-index:6;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #c4a35a66,inset 0 0 0 4px #faf6ef59}.sprite-portrait{-webkit-user-select:none;user-select:none;transition:border-color .6s}.sprite-portrait canvas,.sprite-portrait>span{transition:opacity .2s}.pixel-portrait{image-rendering:pixelated;box-shadow:0 0 0 1px var(--pixel-frame-spacer), 0 0 0 3px #c4a35a80;border-radius:3px}.map-hover-card{pointer-events:none;z-index:10;background:var(--bg-paper);width:168px;box-shadow:var(--pixel-frame-shadow), 0 10px 26px #64503238;animation:map-hover-card-in .26s var(--ease-genshin) backwards;border:1px solid #c4a35a80;border-radius:4px;flex-direction:column;gap:6px;margin-top:-26px;padding:6px;display:flex;position:absolute;transform:translate(-50%,-100%)}@keyframes map-hover-card-in{0%{opacity:0;transform:translate(-50%,-100%)translateY(6px)}to{opacity:1;transform:translate(-50%,-100%)translateY(0)}}@media (prefers-reduced-motion:reduce){.map-hover-card{animation:none}}.map-hover-card-preview-frame{background:var(--bg-warm);border:1px solid #c4a35a8c;border-radius:2px;width:100%;height:74px;position:relative;overflow:hidden}.map-hover-card-preview{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;display:block;position:absolute;inset:0}.map-hover-card-preview-fallback{background:linear-gradient(135deg, transparent 48%, #c4a35a1f 49% 51%, transparent 52%), var(--bg-warm);color:var(--text-muted);font-family:var(--font-display);letter-spacing:.7px;text-align:center;text-transform:uppercase;background-size:12px 12px;place-items:center;padding:8px;font-size:8px;font-weight:600;display:grid;position:absolute;inset:0}.district-map-pin:focus{outline:none}.district-map-pin:focus-visible{filter:drop-shadow(0 0 5px var(--gold-accent))}.map-hover-card-row{align-items:center;gap:6px;min-width:0;display:flex}.map-hover-card-name{font-family:var(--font-display);letter-spacing:.3px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.map-hover-card-chip{font-family:var(--font-body);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-self:flex-start;align-items:center;gap:5px;padding:2px 8px;font-size:9.5px;font-weight:600;display:inline-flex}.map-hover-card-chip-dot{border-radius:1px;flex-shrink:0;width:5px;height:5px}@media (width<=600px){.keyboard-hint{display:none}.proximity-card{width:min(210px,100% - 20px)}.proximity-card-inner{gap:3px;padding:7px 8px}.proximity-card-town{display:none}.map-hover-card{gap:5px;width:152px;margin-top:-14px}.map-hover-card-preview-frame{height:62px}.map-hover-card-name{font-size:11px}.map-hover-card-chip{text-overflow:ellipsis;max-width:100%;font-size:8.5px;overflow:hidden}}.town-canvas-skeleton{z-index:4;background:linear-gradient(100deg, #f5ede000 32%, #faf6efd9 50%, #f5ede000 68%) no-repeat, var(--bg-warm);pointer-events:none;background-size:240% 100%;justify-content:center;align-items:center;animation:1.8s ease-in-out infinite parchment-shimmer;display:flex;position:absolute;inset:0}@keyframes parchment-shimmer{0%{background-position:130% 0}to{background-position:-110% 0}}.town-canvas-skeleton-label{font-family:var(--font-display);letter-spacing:2.5px;text-transform:uppercase;color:var(--text-muted);opacity:.75;font-size:12px;font-weight:600}.town-canvas-error{z-index:35;background:var(--bg-warm);color:var(--text-muted);text-align:center;font-family:var(--font-body);flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:24px;font-size:12px;display:flex;position:absolute;inset:0}.town-canvas-error strong{color:var(--text-primary);font-family:var(--font-display);font-size:15px}.town-canvas-error-mark{width:34px;height:34px;color:var(--color-danger);border:1px solid var(--color-danger);place-items:center;margin-bottom:4px;display:grid}@supports (color:color-mix(in lab, red, red)){.town-canvas-error-mark{border:1px solid color-mix(in srgb, var(--color-danger) 45%, transparent)}}.town-canvas-error-mark{box-shadow:var(--pixel-frame-shadow-quiet);font-family:var(--font-display);border-radius:3px;font-size:18px;font-weight:700}@media (prefers-reduced-motion:reduce){.town-canvas-skeleton{background-size:100% 100%;animation:none}}.dashboard-empty-illustration{object-fit:cover;object-position:center 30%;width:200px;height:96px;image-rendering:pixelated;opacity:.92;border-radius:3px;margin:0 auto 14px;display:block}.dashboard-empty-actions{justify-content:center;gap:8px;margin-top:8px;display:flex}@media (width<=480px){.dashboard-empty-state{padding:24px 16px}.dashboard-empty-illustration{width:min(200px,78vw)}}.dashboard-inline-error{color:var(--color-danger)}.dashboard-data-note{color:var(--text-muted);font-family:var(--font-body);margin:-4px 0 10px;font-size:10px;font-style:italic}.mic-btn:hover:not(:disabled){color:var(--text-primary)!important;background:#c4a35a1a!important}.listen-in-chip{background:var(--warm-glass);-webkit-backdrop-filter:blur(8px);border:1px solid var(--gold-accent);font-family:var(--font-body);color:var(--text-primary);z-index:24;pointer-events:none;border-radius:999px;padding:6px 14px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.listen-in-chip kbd{border:1px solid var(--card-border);background:var(--bg-card);color:var(--text-primary);border-radius:4px;margin:0 2px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:10px;display:inline-block}.listen-in-panel{background:var(--bg-paper);border:1px solid var(--gold-accent);z-index:25;border-radius:10px;flex-direction:column;width:320px;max-height:240px;display:flex;position:absolute;bottom:60px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #281e0a2e}.listen-in-panel-header{border-bottom:1px solid var(--warm-glass-border);background:var(--bg-warm);font-family:var(--font-display);border-radius:10px 10px 0 0;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.listen-in-panel-header button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:18px;line-height:1}.listen-in-panel-body{flex-direction:column;gap:4px;padding:8px 12px;display:flex;overflow-y:auto}.listen-in-line{font-family:var(--font-body);color:var(--text-primary);font-size:12px;line-height:1.4}.dashboard-scoreboard{background:var(--bg-card);border:1px solid var(--card-border);box-shadow:var(--shadow-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:18px;padding:12px 16px;display:flex}.dashboard-scoreboard-towns{flex-wrap:wrap;flex:1;gap:10px;display:flex}.dashboard-scoreboard-town{font-family:var(--font-body);color:var(--text-secondary);flex-direction:column;gap:2px;padding:4px 10px;font-size:11px;display:flex}.dashboard-scoreboard-town strong{color:var(--text-primary);font-size:12.5px}.dashboard-timeline{background:var(--bg-card);border:1px solid var(--card-border);box-shadow:var(--shadow-soft);border-radius:12px;margin-bottom:24px;padding:16px 18px}.dashboard-timeline-title{font-family:var(--font-display);letter-spacing:.7px;color:var(--gold-ink);margin:0 0 10px;font-size:14px;font-weight:600}.dashboard-timeline-list{border-left:1px solid var(--card-border);flex-direction:column;gap:6px;max-height:260px;margin:0;padding:0 0 0 12px;list-style:none;display:flex;overflow-y:auto}.dashboard-timeline-row{font-family:var(--font-body);color:var(--text-primary);align-items:center;gap:10px;font-size:12px;display:flex;position:relative}.dashboard-timeline-dot{border:2px solid var(--bg-card);border-radius:999px;flex-shrink:0;width:9px;height:9px;margin-left:-17px}.dashboard-timeline-content{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.dashboard-timeline-meta{color:var(--text-muted);margin-left:auto;font-size:10.5px}.prediction-widget{background:var(--bg-card);border:1px solid var(--card-border);box-shadow:var(--shadow-soft);border-radius:12px;margin-bottom:18px;padding:16px}.prediction-widget-pair{justify-content:center;align-items:center;gap:24px;display:flex}.prediction-widget-chart{flex-direction:column;align-items:center;gap:6px;display:flex}.prediction-widget-label{font-family:var(--font-display);color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:600}.prediction-widget-arrow{color:var(--gold-accent);font-size:28px;font-weight:600}.prediction-widget-summary{text-align:center;font-family:var(--font-body);color:var(--text-primary);margin-top:12px;font-size:13px}.header-icon-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.header-icon-btn:hover{color:var(--text-primary);border-color:var(--warm-glass-border);background:#c4a35a14}.header-settings-wrapper{position:relative}.header-settings-menu{background:var(--bg-paper);border:1px solid var(--gold-accent);z-index:70;border-radius:10px;flex-direction:column;gap:8px;width:220px;padding:10px 12px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #281e0a33}.header-settings-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:1.2px;color:var(--gold-ink);margin:0 0 4px;font-size:12px;font-weight:600}.header-settings-row{font-family:var(--font-body);color:var(--text-primary);cursor:pointer;justify-content:space-between;align-items:center;padding:2px 0;font-size:12.5px;display:flex}.header-settings-reset{border:1px solid var(--color-danger);color:var(--color-danger);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:6px;margin-top:6px;padding:6px 10px;font-size:12px;transition:all .2s}.header-settings-reset:hover{background:var(--color-danger);color:var(--text-on-accent)}.header-icon-btn:focus-visible,.mobile-menu-btn:focus-visible,.journal-refresh:focus-visible,.journal-close:focus-visible{outline:2px solid var(--civic-blue);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.world-clock-chip{background:var(--overlay-ink);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex;position:absolute;top:12px;right:200px}@supports (color:color-mix(in lab, red, red)){.world-clock-chip{background:color-mix(in srgb, var(--overlay-ink) 82%, transparent)}}.world-clock-chip{color:var(--text-on-overlay);font-family:var(--font-display);letter-spacing:.5px;-webkit-backdrop-filter:blur(6px);z-index:20;pointer-events:none;border:1px solid #ffeaa82e;font-size:12px;font-weight:600;box-shadow:0 2px 10px #0000002e}.world-clock-chip-icon{font-size:14px;line-height:1}.world-clock-chip-time{font-variant-numeric:tabular-nums}.gossip-toast{background:var(--overlay-ink);color:var(--text-on-overlay);font-family:var(--font-body);z-index:30;pointer-events:none;border:1px solid #ffd76459;border-radius:999px;align-items:center;gap:8px;max-width:min(80%,480px);padding:8px 14px;font-size:12px;animation:.22s ease-out backwards gossip-pop;display:inline-flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.gossip-toast-dot{background:var(--gold-light);width:6px;height:6px;box-shadow:0 0 8px var(--gold-glow);border-radius:50%}@keyframes gossip-pop{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.demo-banner{font-family:var(--font-body);color:var(--text-secondary);animation:demo-banner-in .4s var(--ease-genshin,ease-out) backwards;background:linear-gradient(#c4a35a24,#c4a35a14);border-bottom:1px solid #b4a07840;justify-content:center;align-items:center;gap:12px;padding:6px 40px 6px 16px;font-size:12.5px;display:flex;position:relative}@keyframes demo-banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.demo-banner-text strong{color:var(--text-primary);font-weight:600}.demo-banner-star{background:var(--gold-accent);color:var(--text-on-gold);letter-spacing:.04em;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:11.5px;font-weight:600;text-decoration:none;transition:filter .15s,box-shadow .15s;display:inline-flex;box-shadow:0 1px 4px #c4a35a59}.demo-banner-star:hover{filter:brightness(1.08);box-shadow:0 2px 8px #c4a35a80}.demo-banner-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:16px;line-height:1;transition:color .15s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.demo-banner-dismiss:hover{color:var(--text-primary)}.demo-timeline{z-index:40;background:var(--warm-glass);width:min(720px,100vw - 24px);-webkit-backdrop-filter:blur(var(--warm-glass-blur));box-shadow:var(--pixel-frame-shadow), 0 8px 28px #64503238;font-family:var(--font-body);animation:demo-timeline-in .5s var(--ease-genshin,ease-out) backwards;border:1px solid #b4a07866;border-radius:4px;align-items:center;gap:12px;padding:9px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.demo-timeline-space{padding-bottom:88px}.demo-mode{height:100dvh;overflow:hidden;min-height:0!important}.demo-mode>main{min-height:0;overflow:auto}.demo-mode>main.demo-timeline-space{padding-bottom:0}.demo-mode>.demo-timeline{flex:none;align-self:center;margin:8px 12px 12px;animation-name:demo-timeline-dock-in;position:relative;bottom:auto;left:auto;transform:none}.demo-mode .town-view-layout{height:100%;min-height:0}@keyframes demo-timeline-dock-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes demo-timeline-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.demo-timeline--error{color:var(--text-secondary);justify-content:center;font-size:12px}.demo-timeline--error a{color:var(--gold-ink);font-weight:600}.demo-timeline--loading{color:var(--text-secondary);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;justify-content:center;font-size:10.5px;font-weight:600}.demo-timeline-loading-mark{border:2px solid var(--gold-light);border-top-color:var(--gold-accent);border-radius:2px;width:12px;height:12px;animation:1.2s steps(4,end) infinite minimap-loading-turn}.demo-timeline-badge{border-right:1px solid #b4a07840;align-items:center;gap:6px;min-width:0;max-width:210px;padding-right:10px;display:flex}.demo-timeline-badge-dot{background:var(--color-live);width:6px;height:6px;box-shadow:0 0 6px var(--color-live);border-radius:1px}@supports (color:color-mix(in lab, red, red)){.demo-timeline-badge-dot{box-shadow:0 0 6px color-mix(in srgb, var(--color-live) 55%, transparent)}}.demo-timeline-badge-dot{flex-shrink:0;animation:2.4s ease-in-out infinite pulse-glow}.demo-timeline-badge-text{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:600;overflow:hidden}.demo-timeline-badge-text em{color:var(--text-secondary);letter-spacing:.06em;font-style:normal}.demo-timeline-play{background:var(--gold-accent);width:30px;height:30px;color:var(--text-on-gold);cursor:pointer;box-shadow:0 1px 0 #785f2d73, 0 2px 8px var(--gold-glow,#c4a35a4d);border:1px solid #c4a35a8c;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;transition:filter .15s,transform .1s;display:flex}.demo-timeline-play:hover{filter:brightness(1.08)}.demo-timeline-play:active{transform:translateY(1px)}.demo-timeline-play--replay{animation:2.2s ease-in-out infinite demo-replay-breathe}@keyframes demo-replay-breathe{0%,to{box-shadow:0 1px #785f2d73,0 0 #c4a35a66}50%{box-shadow:0 1px #785f2d73,0 0 0 6px #c4a35a00}}.demo-timeline-scrubber{flex:1;min-width:100px;height:30px;position:relative}.demo-timeline-track{cursor:pointer;touch-action:none;outline-offset:3px;position:absolute;inset:0}.demo-timeline-rail{background:#b4a07847;border-radius:1px;height:5px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:inset 0 1px 1px #6450322e}.demo-timeline-fill{background:linear-gradient(90deg, #c4a35abf, var(--gold-accent));pointer-events:none;border-radius:1px;height:5px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.demo-timeline-playhead{background:var(--gold-accent);pointer-events:none;border:1px solid #faf6efe6;width:9px;height:9px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 5px #c4a35a8c}.demo-timeline-tick{cursor:pointer;background:0 0;border:none;width:24px;height:24px;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.demo-timeline-tick:after{content:"";background:#7864418c;width:2px;height:11px;transition:background .15s,height .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.demo-timeline-tick:hover:after,.demo-timeline-tick:focus-visible:after{background:var(--gold-accent);height:14px}.demo-timeline-tooltip{background:var(--bg-paper);color:var(--text-primary);white-space:nowrap;pointer-events:none;border:1px solid #c4a35a73;border-radius:3px;padding:4px 10px;font-size:11px;font-weight:500;position:absolute;bottom:calc(100% + 8px);transform:translate(-50%);box-shadow:0 0 0 2px #faf6efcc,0 3px 10px #64503233}.demo-timeline-elapsed{text-align:right;font-variant-numeric:tabular-nums;min-width:118px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:11.5px}.demo-timeline-speed{min-width:40px;color:var(--text-secondary);font-family:var(--font-body);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #b4a07866;border-radius:3px;flex-shrink:0;padding:4px 8px;font-size:11.5px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.demo-timeline-speed:hover{color:var(--gold-accent);background:#c4a35a14;border-color:#c4a35a99}.demo-locked-note{background:var(--bg-card);font-family:var(--font-body);color:var(--text-secondary);text-align:center;border:1px dashed #b4a07873;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-size:12.5px;display:flex}.demo-locked-note strong{color:var(--text-primary)}.demo-locked-note a{color:var(--gold-ink);font-weight:600;text-decoration:none}.demo-locked-note a:hover{text-decoration:underline}@media (width<=640px){.responsible-use-notice{justify-content:space-between;align-items:flex-start;padding:8px 12px;font-size:11px}.responsible-use-notice__core{max-width:76%}.demo-timeline-space{padding-bottom:0}.demo-timeline{bottom:max(10px, env(safe-area-inset-bottom));gap:8px;padding:8px 10px}.demo-mode>.demo-timeline{margin:6px 10px max(8px, env(safe-area-inset-bottom))}.demo-timeline-badge{display:none}.demo-timeline-elapsed{min-width:0;font-size:10.5px}.demo-banner{gap:8px;padding-right:34px;font-size:11.5px}.gossip-toast{max-width:calc(100% - 24px);font-size:11px;bottom:10px}}@media (width<=420px){.demo-timeline-elapsed{display:none}}:root[data-reduced-motion=true] .demo-timeline,:root[data-reduced-motion=true] .demo-banner,:root[data-reduced-motion=true] .demo-timeline-play--replay,:root[data-reduced-motion=true] .demo-timeline-badge-dot{animation:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
