:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f2e7;--surface:#fffcf4;--surface-2:#eeecdf;--surface-3:#e3dfcc;--ink:#263c30;--sub:#5f695e;--line:#dcdcc9;--line-strong:#bdbda4;--accent:#b54d2e;--accent-ink:#fff8ed;--accent-text:#a4442a;--accent-text-on-ink:#a4442a;--accent-2:#315c46;--accent-2-ink:#fff9ed;--gold:#e8b548;--gold-ink:#493912;--gold-edge:#ae8538;--good:#286347;--bad:#b33634;--warn:#8f560e;--focus:#1d5fa8;--overlay:#262c1e73;--shadow:0 10px 28px #3043241a;--shadow-sm:0 4px 12px #3043241a;--shadow-lg:0 25px 60px #31412d2b;--board-edge:#315c46;--city-sky:#e2edce;--die-face:#fffcf3;--die-edge:#cab990;--die-pip:#315440;--terrain:#bfd4a7;--terrain-2:#d9d7b7;--terrain-glow:#edf0d0;--water:#8bbfc5;--board-base:#b6975b;--board-base-shadow:#7c6840;--scene-shadow:#1e362b3b}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#172921;--surface:#21382c;--surface-2:#2c4535;--surface-3:#36513f;--ink:#f6f1df;--sub:#b9cbb8;--line:#435d47;--line-strong:#5d7a61;--accent:#efac82;--accent-ink:#253728;--accent-text:#efac82;--accent-text-on-ink:#b54d2e;--accent-2:#8fc79d;--accent-2-ink:#173c29;--gold:#ebc263;--gold-ink:#3e2f0c;--gold-edge:#b18a3a;--good:#a0d4ad;--bad:#ffaba5;--warn:#edc884;--focus:#9cc8ff;--overlay:#040c0899;--shadow:0 12px 30px #0000002e;--shadow-sm:0 4px 12px #00000038;--shadow-lg:0 25px 60px #00000059;--board-edge:#8fc79d;--city-sky:#294c3a;--die-face:#f8f1dd;--die-edge:#a8986d;--die-pip:#24412f;--terrain:#294638;--terrain-2:#20372e;--terrain-glow:#3c5444;--water:#305b62;--board-base:#6f5c3a;--board-base-shadow:#392f20;--scene-shadow:#030c0873}:root{--font-heading:Georgia, "Times New Roman", "Noto Serif", serif;--font-ui:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--radius:20px;--radius-md:16px;--radius-sm:12px;--radius-xs:7px;--touch:44px;--z-header:20;--z-sticky:30;--z-fx:50;--z-drawer:60;--z-modal:70;--z-toast:80;--dur:.18s;--dur-panel:.31s;--dur-flip:.48s;--dur-camera:.32s;--ease:cubic-bezier(.2, .8, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-pop:cubic-bezier(.2, 1.5, .4, 1);--safe-top:max(env(safe-area-inset-top,0px), calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px)));--safe-bottom:max(env(safe-area-inset-bottom,0px), calc(var(--tg-safe-area-inset-bottom,0px) + var(--tg-content-safe-area-inset-bottom,0px)));--safe-left:max(env(safe-area-inset-left,0px), var(--tg-safe-area-inset-left,0px));--safe-right:max(env(safe-area-inset-right,0px), var(--tg-safe-area-inset-right,0px));--app-height:var(--tg-viewport-stable-height,100dvh)}:root[data-motion=reduced]{--dur:0s;--dur-panel:0s;--dur-flip:0s;--dur-camera:0s}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]){--dur:0s;--dur-panel:0s;--dur-flip:0s;--dur-camera:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button,a,input,select{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}a{color:var(--accent-text);text-underline-offset:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.02em;margin:0;line-height:1.1}h1{font-size:clamp(27px,4.4vw,38px);font-weight:600}h2{font-size:clamp(20px,3.4vw,27px);font-weight:600}h3{font-size:17px}p{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--s3);z-index:100;background:var(--surface);color:var(--ink);padding:var(--s2) var(--s3);border-radius:var(--radius-xs);box-shadow:var(--shadow-sm);position:absolute;top:-60px}.skip-link:focus{top:calc(var(--safe-top) + var(--s2))}.muted{color:var(--sub)}.small{font-size:13px}.tiny{font-size:12px}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.stack{gap:var(--s3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s2);display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.spacer{flex:1}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) *,:root:not([data-motion=full]) :before,:root:not([data-motion=full]) :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-motion=reduced] *,:root[data-motion=reduced] :before,:root[data-motion=reduced] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.app{min-height:var(--app-height);padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex}.app-head{z-index:var(--z-header);align-items:center;gap:var(--s5);min-height:64px;padding:calc(var(--safe-top) + 6px) var(--s5) 6px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand{color:var(--ink);white-space:nowrap;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand strong{font-family:var(--font-heading);letter-spacing:-.04em;font-size:24px;font-weight:800}.brand-mark{width:38px;height:38px;transition:transform var(--dur) var(--ease);flex:none}@media (hover:hover){.brand:hover .brand-mark{transform:rotate(-6deg)translateY(-1px)}}.app-nav{gap:4px;display:flex}.app-nav a{min-height:40px;color:var(--sub);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:10px;align-items:center;padding:0 12px;font-size:14px;font-weight:750;text-decoration:none;display:inline-flex}.app-nav a[aria-current=page]{color:var(--accent-2);background:var(--surface-2)}.head-right{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.avatar{background:var(--surface-2);width:40px;height:40px;color:var(--accent-2);border:2px solid var(--line);border-radius:14px;place-items:center;font-size:14px;font-weight:900;text-decoration:none;display:grid;box-shadow:0 3px #0000000f}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}.footer-nav{display:none}.page{width:100%;max-width:1180px;padding:var(--s5);animation:fade-in var(--dur-panel) var(--ease-out) both;margin:0 auto}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}}.page-title{margin-bottom:var(--s2)}.subtitle{color:var(--sub);margin:6px 0 var(--s5);max-width:60ch;line-height:1.55}.two-col{gap:var(--s4);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;display:grid}.overline{letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:850}.tag{letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);color:var(--accent-2);border-radius:99px;align-self:flex-start;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:850;display:inline-flex}.tag.warm{background:color-mix(in srgb, var(--gold) 45%, var(--surface));color:var(--gold-ink)}:root[data-theme=dark] .tag.warm{background:color-mix(in srgb, var(--gold) 22%, var(--surface));color:var(--gold)}.tag.live:before{content:"";background:var(--good);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 18%, transparent);border-radius:50%}.btn{--lift:color-mix(in srgb, var(--line-strong) 75%, transparent);min-height:var(--touch);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);white-space:nowrap;box-shadow:0 3px 0 var(--lift);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), filter var(--dur) var(--ease);justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}@media (hover:hover){.btn:hover:not(:disabled){filter:brightness(1.025);box-shadow:0 5px 0 var(--lift);transform:translateY(-2px)}}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--lift);transform:translateY(2px)}.btn:disabled{opacity:.55;box-shadow:none}.btn.primary{--lift:color-mix(in srgb, var(--accent) 66%, #302d1c);background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.secondary{--lift:color-mix(in srgb, var(--accent-2) 66%, #172d21);background:var(--accent-2);border-color:var(--accent-2);color:var(--accent-2-ink)}.btn.gold{--lift:var(--gold-edge);background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.btn.ghost{color:var(--accent-2);box-shadow:none;background:0 0;border-color:#0000}@media (hover:hover){.btn.ghost:hover:not(:disabled){background:var(--surface-2);box-shadow:none}}.btn.danger{--lift:color-mix(in srgb, var(--bad) 35%, transparent);color:var(--bad);border-color:var(--bad);background:0 0}.btn.danger.solid{background:var(--bad);color:var(--surface)}.btn.block{width:100%}.btn.lg{min-height:52px;padding:13px 20px;font-size:15px}.btn.sm{min-height:36px;padding:6px 10px;font-size:13px}.btn.icon{width:var(--touch);padding:0}.btn[aria-busy=true]:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.btn-row{gap:var(--s2);flex-wrap:wrap;display:flex}.btn-row>.btn{flex:auto}@keyframes spin{to{transform:rotate(360deg)}}.field{margin-bottom:var(--s4);display:block}.field>span,.field>label>span{margin-bottom:6px;font-size:13px;font-weight:800;display:block}.field input,.field select{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-height:46px;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-radius:11px;padding:11px 12px;font-size:16px;font-weight:500}.field input:focus-visible,.field select:focus-visible{border-color:var(--accent-2)}.field input[aria-invalid=true]{border-color:var(--bad)}.field input.code-input{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase}.helper{color:var(--sub);margin-top:6px;font-size:13px;line-height:1.5}.field-error{color:var(--bad);margin-top:6px;font-size:13px;font-weight:700}.switch{border:1px solid var(--line-strong);background:var(--surface-3);width:50px;height:30px;transition:background var(--dur) var(--ease);border-radius:99px;flex:none;padding:0;position:relative}.switch:after{content:"";background:var(--surface);width:20px;height:20px;transition:transform var(--dur) var(--ease);border-radius:50%;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #0003}.switch[aria-checked=true]{background:var(--accent-2);border-color:var(--accent-2)}.switch[aria-checked=true]:after{background:var(--accent-2-ink);transform:translate(20px)}.segmented{background:var(--surface-2);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:40px;color:var(--sub);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:0;border-radius:9px;padding:6px 12px;font-size:14px;font-weight:750}.segmented button[aria-pressed=true]{background:var(--accent-2);color:var(--accent-2-ink);box-shadow:0 2px 4px #213c2526}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4) calc(var(--s4) + 2px);box-shadow:var(--shadow)}.panel.raised{box-shadow:var(--shadow-lg)}.panel-title{font-family:var(--font-heading);letter-spacing:-.02em;margin-bottom:var(--s3);font-size:20px;font-weight:600}.kv{justify-content:space-between;align-items:center;gap:var(--s3);border-bottom:1px solid var(--line);padding:10px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:0}.kv b{font-variant-numeric:tabular-nums;text-align:right}.list-row{align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--line);display:flex}.list-row:first-child{border-top:0}.list-row strong{font-size:14px;display:block}.list-row small{color:var(--sub);font-size:13px}.badge{background:var(--surface-2);color:var(--ink);white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.badge.good{background:color-mix(in srgb, var(--good) 14%, var(--surface));color:var(--good)}.badge.warn{background:color-mix(in srgb, var(--warn) 14%, var(--surface));color:var(--warn)}.badge.bad{background:color-mix(in srgb, var(--bad) 13%, var(--surface));color:var(--bad)}.badge.accent{background:var(--accent);color:var(--accent-ink)}.banner{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);font-size:14px;display:flex}.banner.bad{background:color-mix(in srgb, var(--bad) 12%, var(--surface));color:var(--bad);border-color:color-mix(in srgb, var(--bad) 35%, var(--surface))}.banner.warn{background:color-mix(in srgb, var(--warn) 12%, var(--surface));color:var(--warn)}.toasts{z-index:var(--z-toast);right:calc(var(--s4) + var(--safe-right));bottom:calc(var(--s4) + var(--safe-bottom));gap:var(--s2);pointer-events:none;flex-direction:column;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{pointer-events:auto;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--accent-2);animation:toast-in var(--dur-panel) var(--ease-out);border-radius:13px;align-items:flex-start;font-size:14px;line-height:1.45;display:flex;box-shadow:0 7px 23px #10291c33}.toast.error{border-left-color:var(--bad)}.toast.warn{border-left-color:var(--warn)}.toast.success{border-left-color:var(--good)}.toast .close{margin-left:auto}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.center-screen{padding:var(--s6) var(--s4);text-align:center;flex:1;place-items:center;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--accent);width:32px;height:32px;margin:0 auto var(--s3);border-radius:50%;animation:.9s linear infinite spin}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;min-height:18px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.empty{text-align:center;padding:var(--s5) var(--s3);color:var(--sub);line-height:1.6}.overlay{z-index:var(--z-drawer);background:var(--overlay);animation:fade-in var(--dur-panel) var(--ease);justify-content:flex-end;align-items:stretch;display:flex;position:fixed;inset:0}.overlay.modal{z-index:var(--z-modal);padding:var(--s4);justify-content:center;align-items:center}@keyframes fade-in{0%{opacity:0}}.drawer{background:var(--surface);width:min(420px,100%);height:100%;color:var(--ink);padding-top:var(--safe-top);animation:drawer-in var(--dur-panel) var(--ease-out) both;flex-direction:column;display:flex;box-shadow:-15px 0 40px #1026192b}@keyframes drawer-in{0%{opacity:.4;transform:translate(40px)}}.drawer-head{gap:var(--s3);padding:var(--s5) var(--s5) var(--s2);align-items:flex-start;display:flex}.drawer-head h2{letter-spacing:-.03em;margin-top:7px;font-size:27px}.drawer-body{padding:var(--s2) var(--s5) calc(var(--s4) + var(--safe-bottom));gap:var(--s3);overscroll-behavior:contain;flex-direction:column;flex:1;display:flex;overflow:auto}.drawer-actions{gap:var(--s2);padding:var(--s3) var(--s5) calc(var(--s4) + var(--safe-bottom));border-top:1px solid var(--line);background:var(--surface);display:flex}.drawer-actions .btn{flex:1}.close-btn{width:var(--touch);height:var(--touch);background:var(--surface-2);transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);border:0;border-radius:12px;flex:none;margin-left:auto;font-size:22px;line-height:1}@media (hover:hover){.close-btn:hover{background:var(--surface-3);transform:rotate(90deg)}}.dialog{background:var(--surface);border-radius:var(--radius);width:min(440px,100%);box-shadow:var(--shadow-lg);padding:var(--s5);gap:var(--s3);animation:pop-in var(--dur-panel) var(--ease-out);flex-direction:column;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}.hero{gap:var(--s5);padding:var(--s3) 0 var(--s4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.hero-copy{gap:var(--s4);flex-direction:column;min-width:0;display:flex}.hero-copy h1{letter-spacing:-.035em;font-size:clamp(37px,4.6vw,61px);font-weight:500;line-height:1.05}.hero-copy h1 em{color:var(--accent-text);white-space:nowrap;font-style:normal;position:relative}.hero-copy h1 em:after{content:"";background:var(--gold);border-radius:50%;height:5px;position:absolute;bottom:-5px;left:0;right:0;transform:rotate(-2deg)}.hero-copy>p{color:var(--sub);max-width:42ch;font-size:15px;line-height:1.65}.hero-proof{color:var(--sub);align-items:center;gap:10px;font-size:13px;display:flex}.piece-stack{display:flex}.piece-stack .piece+.piece{margin-left:-8px}.hero-scene{background:radial-gradient(ellipse, var(--city-sky) 0 60%, transparent 61%);place-items:center;min-width:0;height:345px;display:grid;position:relative}.hero-scene .city{filter:drop-shadow(0 16px 12px #18392117);width:100%;height:100%;transform:rotate(-3deg)}.city-house{transform-box:fill-box;transform-origin:bottom;animation:.7s cubic-bezier(.2,.9,.2,1.2) both city-up;animation-delay:var(--delay,0s)}.coin-float{transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out 3 bob}@keyframes city-up{0%{opacity:0;transform:translateY(20px)scale(.8)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-8deg)}50%{transform:translateY(-11px)rotate(8deg)}}.hero-art{border-radius:var(--radius);background:radial-gradient(ellipse, var(--city-sky) 0 62%, transparent 63%);place-items:center;min-height:220px;display:grid;position:relative;overflow:hidden}.hero-art svg{width:min(100%,360px);height:auto}.feature-strip{gap:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.feature{border:1px solid var(--line);background:var(--surface);transition:transform .2s var(--ease);border-radius:15px;align-items:center;gap:12px;padding:14px 16px;display:flex}@media (hover:hover){.feature:hover{transform:translateY(-4px)}}.feature-icon{background:var(--surface-2);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:21px;display:grid;transform:rotate(-6deg)}.feature b{font-size:14px;display:block}.feature small{color:var(--sub);margin-top:2px;font-size:12px;display:block}.active-room{background:var(--accent-2);color:var(--accent-2-ink);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:22px;display:flex;position:relative;overflow:hidden}.active-room:after{content:"✦";opacity:.08;pointer-events:none;font-size:150px;position:absolute;bottom:-70px;right:8px}.active-room h2{margin:6px 0;font-size:23px;font-weight:500}.active-room p{opacity:.9;font-size:13px}.active-room .btn{--lift:#0000002e;background:var(--accent-2-ink);color:var(--accent-2);border-color:#0000}.room-mini{background:color-mix(in srgb, var(--accent-2-ink) 16%, transparent);border-radius:18px;flex:none;place-items:center;width:64px;height:64px;display:grid;transform:rotate(-4deg)}.invite-code,.list-row .invite-code{font-family:var(--font-mono);letter-spacing:.18em;font-size:clamp(26px,6vw,34px);font-weight:900;display:block}.code-box{padding:var(--s4);background:var(--surface-2);border:2px dashed var(--line-strong);border-radius:var(--radius-md)}.player-grid{gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.player-card{align-items:center;gap:var(--s3);padding:var(--s3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line);min-width:0;animation:ready-pop .4s var(--ease-out) both;display:flex}.player-card.is-ready{border-color:color-mix(in srgb, var(--good) 45%, var(--line))}.player-card.empty-slot{border:1px dashed var(--line-strong);background:0 0;min-height:66px;animation:none}.player-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.player-card small{color:var(--sub);font-size:12px}@keyframes ready-pop{0%{transform:scale(.96)}65%{transform:scale(1.02)}}.option-tiles{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(78px,1fr));display:grid}.avatar-choice{border:2px solid var(--line);background:var(--surface);min-height:84px;color:var(--ink);transition:transform .2s var(--ease), border-color var(--dur) var(--ease), box-shadow .2s var(--ease);border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px 6px;display:flex}.avatar-choice[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface));box-shadow:0 5px 0 color-mix(in srgb, var(--accent) 30%, transparent);transform:translateY(-4px)}@media (hover:hover){.avatar-choice:hover:not(:disabled):not([aria-pressed=true]){transform:translateY(-3px)}}.avatar-choice:disabled{opacity:.6;cursor:not-allowed}.choice-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:750;line-height:1.25;overflow:hidden}.result-hero{text-align:center;padding:var(--s5);border-radius:var(--radius);background:var(--accent-2);color:var(--accent-2-ink);box-shadow:var(--shadow);position:relative;overflow:hidden}.result-hero:before{content:"";background:repeating-conic-gradient(transparent 0 20deg, #ffffff12 20deg 40deg);pointer-events:none;border-radius:50%;width:280px;height:280px;position:absolute;top:-50px;left:50%;transform:translate(-50%)}.result-hero>*{position:relative}.result-hero h1{margin:var(--s2) 0;font-weight:500}.trophy{background:var(--gold);width:92px;height:92px;color:var(--gold-ink);box-shadow:0 6px 0 var(--gold-edge);animation:win-pop .8s var(--ease-pop) both;border-radius:50%;place-items:center;display:inline-grid}@keyframes win-pop{0%{opacity:0;transform:scale(.3)rotate(-20deg)}}.ranking-row{animation:page-in .4s var(--ease-out) both;animation-delay:var(--delay,0s)}.rank{width:32px;color:var(--accent-2);font-size:20px;font-weight:900}.settings-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s4) 0;border-top:1px solid var(--line);display:flex}.settings-row:first-of-type{border-top:0}.settings-row strong{font-size:14px;display:block}.settings-row small{color:var(--sub);margin-top:3px;font-size:13px;display:block}.help-list details{border-top:1px solid var(--line);padding:var(--s3) 0}.help-list details:first-child{border-top:0}.help-list summary{cursor:pointer;align-items:center;min-height:44px;font-weight:800;display:flex}.help-list p,.help-list li{color:var(--sub);margin-top:var(--s2);line-height:1.6}.fx-layer{z-index:var(--z-fx);pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{top:-14px;left:var(--left);width:var(--size);height:calc(var(--size) * .55);background:var(--color);animation:confetti-fall var(--duration) ease-in var(--delay) both;border-radius:2px;position:absolute}@keyframes confetti-fall{0%{transform:translateY(-20px)rotate(0)}to{transform:translate3d(var(--drift), 100vh, 0) rotate(650deg);opacity:0}}.floating-coin{left:var(--left);top:var(--top);width:26px;height:26px;animation:.95s ease-in both coin-flight;animation-delay:var(--delay);background:#efc765;border:3px solid #b48330;border-radius:50%;position:absolute;box-shadow:0 2px #946729}@keyframes coin-flight{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx,60px), -180px) scale(.35)}}@keyframes balance-bump{40%{color:var(--good);transform:scale(1.18)}}@media (max-width:1023px){.two-col,.hero{grid-template-columns:1fr}.hero-scene{order:-1;height:280px}}@media (max-width:599px){.app-head{min-height:56px;padding:calc(var(--safe-top) + 4px) var(--s4) 4px;gap:var(--s2)}.brand strong{font-size:21px}.brand-mark{width:34px;height:34px}.app-nav{display:none}.page{padding:var(--s4)}.hero-copy h1{font-size:clamp(34px,10vw,42px)}.hero-scene{height:220px}.feature-strip{grid-template-columns:1fr}.hero-art{min-height:150px}.active-room{flex-wrap:wrap}.footer-nav{z-index:var(--z-sticky);padding:6px 6px calc(8px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--line);justify-content:space-around;gap:2px;display:flex;position:sticky;bottom:0}.footer-nav a{min-height:48px;color:var(--sub);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:800;text-decoration:none;display:flex}.footer-nav a[aria-current=page]{color:var(--accent-2);background:var(--surface-2)}.footer-nav svg{width:20px;height:20px}.drawer{width:100%}.overlay:not(.modal){align-items:flex-end}.overlay:not(.modal) .drawer{border-radius:22px 22px 0 0;height:auto;max-height:88%;padding-top:0;animation-name:sheet-in}.overlay:not(.modal) .drawer:before{content:"";background:var(--line-strong);border-radius:3px;width:40px;height:4px;margin:10px auto 0;display:block}.drawer-head{padding:var(--s3) var(--s4) var(--s2)}.drawer-body,.drawer-actions{padding-left:var(--s4);padding-right:var(--s4)}.player-grid{grid-template-columns:1fr}.toasts{left:var(--s3);right:var(--s3);width:auto;bottom:calc(80px + var(--safe-bottom))}}@media (min-width:600px) and (max-width:1023px){.overlay:not(.modal){justify-content:center;align-items:flex-end}.overlay:not(.modal) .drawer{border-radius:22px 22px 0 0;width:min(560px,100%);height:auto;max-height:86%;animation-name:sheet-in}}@keyframes sheet-in{0%{opacity:.4;transform:translateY(60px)}}:root[data-platform=telegram] .app-head .brand strong{display:none}.game{gap:var(--s3);padding:var(--s3) var(--s4) var(--s4);flex-direction:column;flex:1;min-height:0;display:flex}.game-top{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.game-top h1{font-size:22px}.game-layout{gap:var(--s4);flex:1;grid-template-columns:minmax(0,1fr) 300px;align-items:start;min-height:0;display:grid}.board-column{gap:var(--s3);flex-direction:column;min-width:0;display:flex;position:relative}.players-strip{gap:var(--s2);scrollbar-width:thin;padding:4px 2px 6px;display:flex;overflow-x:auto}.player-chip{background:var(--surface);min-width:150px;max-width:260px;min-height:56px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-md);text-align:left;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex:1 0 auto;align-items:center;gap:10px;padding:9px 11px;display:flex;position:relative}@media (hover:hover){.player-chip:hover{transform:translateY(-2px)}}.player-chip.current{border:2px solid var(--accent-2);background:color-mix(in srgb, var(--accent-2) 8%, var(--surface));padding:8px 10px}.player-chip[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent), 0 5px 12px #183c241a}.player-chip.bankrupt{opacity:.62}.player-chip.bankrupt .chip-name{text-decoration:line-through}.chip-text{flex-direction:column;min-width:0;display:flex}.chip-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;overflow:hidden}.chip-money{color:var(--sub);font-size:13px;font-weight:700}.chip-flag{background:var(--accent-2);color:var(--accent-2-ink);letter-spacing:.04em;border-radius:5px;padding:2px 6px;font-size:10px;font-weight:900;position:absolute;top:-9px;right:8px}.chip-flag.you{background:var(--accent);color:var(--accent-ink)}.chip-status{color:var(--warn);font-size:11px;font-weight:800}.chip-status.bad{color:var(--bad)}.cash-pops{pointer-events:none;z-index:1;flex-direction:column;align-items:flex-end;gap:3px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.cash-pop{font-variant-numeric:tabular-nums;white-space:nowrap;animation:cash-pop 2.4s var(--ease-out) both;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:900;line-height:1.3;box-shadow:0 2px 6px #183c2424}.cash-pop+.cash-pop{animation-delay:.2s}.cash-pop.gain{color:var(--good);background:color-mix(in srgb, var(--good) 15%, var(--surface))}.cash-pop.loss{color:var(--bad);background:color-mix(in srgb, var(--bad) 13%, var(--surface))}@keyframes cash-pop{0%{opacity:0;transform:translateY(8px)scale(.85)}12%{opacity:1;transform:translateY(0)scale(1.1)}22%{transform:translateY(0)scale(1)}80%{opacity:1;transform:translateY(-4px)}to{opacity:0;transform:translateY(-12px)}}.cash-with-pops{align-items:center;display:inline-flex;position:relative}.cash-with-pops>.cash-pops{flex-direction:row;align-items:center;gap:4px;right:calc(100% + 6px)}.cash-with-pops.above>.cash-pops{top:auto;bottom:calc(100% + 4px);right:0;transform:none}:root[data-motion=reduced] .cash-pop{animation:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .cash-pop{animation:none}}@media (max-width:599px){.scene-roster .cash-pops{top:3px;right:3px;transform:none}.scene-roster .cash-pop{padding:1px 5px;font-size:11px}}.board-area{align-items:center;gap:var(--s2);flex-direction:column;min-width:0;display:flex}.board-viewport{width:100%;max-width:min(100%, calc(var(--app-height) - 230px));touch-action:pan-x pan-y;overscroll-behavior:contain;scrollbar-width:thin;border-radius:18px;min-width:0;overflow:auto}.board{--cell-font:clamp(6px, .74vw, 10px);width:calc(100% * var(--zoom,1));aspect-ratio:1;background:var(--line);border:2px solid var(--board-edge);box-shadow:inset 0 0 0 3px var(--surface), var(--shadow);transition:width var(--dur) var(--ease);border-radius:16px;grid-template-rows:1.45fr repeat(9,1fr) 1.45fr;grid-template-columns:1.45fr repeat(9,1fr) 1.45fr;gap:2px;padding:5px;display:grid;position:relative}.cell{background:var(--surface);min-width:0;min-height:0;font-size:calc(var(--cell-font) * var(--zoom,1));text-align:center;color:var(--ink);transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:0;border-radius:4px;flex-direction:column;justify-content:space-between;padding:1px;line-height:1.12;display:flex;position:relative;overflow:hidden}@media (hover:hover){.cell:hover{background:color-mix(in srgb, var(--gold) 12%, var(--surface))}}.cell[aria-current=true]{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent)}.cell.selected{box-shadow:inset 0 0 0 3px var(--accent-2);z-index:1}.cell.located{box-shadow:inset 0 0 0 2px var(--accent);background:color-mix(in srgb, var(--gold) 18%, var(--surface));z-index:1}.cell.selected.located{box-shadow:inset 0 0 0 2px var(--accent), inset 0 0 0 4px var(--accent-2)}.cell .stripe{background:var(--tile);border-radius:3px 3px 0 0;flex:none;justify-content:center;align-items:center;height:19%;min-height:4px;font-size:.85em;line-height:1;display:flex}.cell[data-side=top]{flex-direction:column-reverse}.cell[data-side=top] .stripe{border-radius:0 0 3px 3px}.cell[data-side=left],.cell[data-side=right]{flex-direction:row}.cell[data-side=left]{flex-direction:row-reverse}.cell[data-side=left] .stripe,.cell[data-side=right] .stripe{width:19%;min-width:4px;height:auto}.cell[data-side=left] .stripe{border-radius:0 3px 3px 0}.cell[data-side=right] .stripe{border-radius:3px 0 0 3px}.cell .cell-body{flex-direction:column;flex:1;justify-content:space-between;align-items:center;gap:1px;min-width:0;padding:1px;display:flex}.cell .cell-name{word-break:break-word;-webkit-hyphens:auto;hyphens:auto;font-weight:800}.cell .cell-price{color:var(--sub);font-variant-numeric:tabular-nums;font-weight:800}.cell.corner{background:var(--surface-2);justify-content:center;align-items:center;gap:2px;font-weight:900}.cell.corner .corner-icon{width:40%;height:auto;color:var(--accent-text)}.cell.mortgaged:after{content:"";background:repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--ink) 16%, transparent) 4px 6px);pointer-events:none;position:absolute;inset:0}.owner-chip{background:var(--owner);min-width:1.6em;height:1.6em;color:var(--owner-ink);border:1px solid var(--surface);border-radius:99px;justify-content:center;align-items:center;padding:0 .3em;font-size:.95em;font-weight:900;display:inline-flex}.buildings{justify-content:center;gap:1px;display:inline-flex}.buildings .house{width:.9em;height:.9em;color:var(--good)}.buildings .hotel{width:1.2em;height:1.1em;color:var(--bad)}.mort-label{color:var(--bad);font-size:.9em;font-weight:900}.piece{--size:22px;width:var(--size);height:var(--size);background:color-mix(in srgb, var(--piece) 24%, var(--surface));color:var(--piece-ink);border:2px solid var(--piece);box-shadow:0 0 0 1.5px color-mix(in srgb, var(--ink) 55%, transparent), 0 2px 3px #132b2740;border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.piece img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:118%;max-width:none;height:118%;margin-top:12%}.piece.active{box-shadow:0 0 0 2px var(--accent), 0 2px 3px #132b2740}.owner-piece{border-width:1px;--size:1.75em!important}.piece-layer{--marker-size:26px;pointer-events:none;z-index:3;position:absolute;inset:0}.token-guides{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.token-guides line{stroke:var(--accent-2);stroke-width:1.3px;opacity:.5}.token-guides circle{fill:var(--accent-2);opacity:.8}.token-guides .is-located line{stroke:var(--accent);stroke-width:2px;opacity:1}.token-guides .is-located circle{fill:var(--accent);opacity:1}.marker{pointer-events:auto;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:left .12s linear,top .12s linear;display:grid;position:absolute;transform:translate(-50%,-50%)}.marker .piece{filter:drop-shadow(0 2px 2px #142d2840)}.marker.is-located{z-index:2}.marker.is-located .piece{outline:2px solid var(--accent);outline-offset:2px}.marker:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;z-index:3}.marker.flying{z-index:4;transition:left .65s cubic-bezier(.45,0,.25,1),top .65s cubic-bezier(.45,0,.25,1)}.marker.flying .piece{animation:.65s ease-in-out token-fly}@keyframes token-fly{50%{transform:translateY(-16px)scale(1.3)}}.marker.hop .piece{animation:.16s ease-out token-hop}@keyframes token-hop{50%{transform:translateY(-5px)scale(1.06)}}.board-center{background:radial-gradient(circle at 50% 42%, var(--surface), var(--surface-2));text-align:center;border-radius:8px;flex-direction:column;grid-area:2/2/11/11;justify-content:center;align-items:center;gap:2.4%;min-width:0;min-height:0;padding:16%;display:flex;position:relative;overflow:hidden}.board-center:before{content:"";border:1px dashed color-mix(in srgb, var(--accent-2) 25%, transparent);pointer-events:none;border-radius:50%;position:absolute;inset:4%}.center-city{opacity:.55;pointer-events:none;width:52%;position:absolute;top:6%}.center-city .city{width:100%;height:auto}.board-word{font-family:var(--font-heading);font-weight:900;font-size:calc(clamp(18px, 2.6vw, 38px) * var(--zoom,1));letter-spacing:-.02em;color:var(--accent-2);margin-top:14%;position:relative}.center-tag{font-size:calc(clamp(9px, .9vw, 12px) * var(--zoom,1));letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);color:var(--accent-2);text-overflow:ellipsis;white-space:nowrap;border-radius:99px;max-width:100%;padding:.45em .9em;font-weight:850;position:relative;overflow:hidden}.center-turn{font-weight:800;font-size:calc(clamp(11px, 1.1vw, 14px) * var(--zoom,1));position:relative}.center-event{color:var(--sub);font-size:calc(clamp(10px, .95vw, 13px) * var(--zoom,1));max-width:100%;position:relative}.dice-pair{--die-size:calc(clamp(30px, 3.6vw, 50px) * var(--zoom,1));gap:calc(var(--die-size) * .4);display:flex;position:relative}.cube-die{width:calc(var(--die-size) * 1.2);height:calc(var(--die-size) * 1.2);perspective:calc(var(--die-size) * 9);isolation:isolate;position:relative}.cube-die:nth-child(2){margin-top:calc(var(--die-size) * .18)}.cube-die:after{content:"";filter:blur(4px);z-index:-1;background:#27362930;border-radius:50%;height:26%;position:absolute;bottom:-12%;left:14%;right:4%}.die-cube{width:var(--die-size);height:var(--die-size);transform-style:preserve-3d;transform:rotateX(var(--die-rx)) rotateY(var(--die-ry));transition-property:none;position:absolute;top:10%;left:10%}.die-face{border:1px solid var(--die-edge);background:var(--die-face);color:var(--die-pip);backface-visibility:hidden;box-shadow:inset 0 0 calc(var(--die-size) * .15) #c5b89140;border-radius:18%;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:8%;padding:16%;display:grid;position:absolute;inset:0}.die-face[data-side=front]{transform:translateZ(calc(var(--die-size) / 2))}.die-face[data-side=back]{transform:rotateY(180deg) translateZ(calc(var(--die-size) / 2));background:color-mix(in srgb, var(--die-face) 86%, var(--die-edge))}.die-face[data-side=right]{transform:rotateY(90deg) translateZ(calc(var(--die-size) / 2));background:color-mix(in srgb, var(--die-face) 84%, var(--die-edge))}.die-face[data-side=left]{transform:rotateY(-90deg) translateZ(calc(var(--die-size) / 2));background:color-mix(in srgb, var(--die-face) 92%, var(--die-edge))}.die-face[data-side=top]{transform:rotateX(90deg) translateZ(calc(var(--die-size) / 2))}.die-face[data-side=bottom]{transform:rotateX(-90deg) translateZ(calc(var(--die-size) / 2));background:color-mix(in srgb, var(--die-face) 76%, var(--die-edge))}.pip{opacity:0;background:currentColor;border-radius:50%}.pip.on{opacity:1}.dice-pair.rolling .cube-die{animation:.68s ease-out both die-bounce}.dice-pair.rolling .die-cube{animation:.68s cubic-bezier(.2,.75,.25,1) both cube-tumble}.dice-pair.rolling .cube-die:nth-child(2),.dice-pair.rolling .cube-die:nth-child(2) .die-cube{animation-duration:.64s;animation-delay:40ms}.dice-pair.waiting .cube-die{animation:.42s ease-in-out infinite dice-shake}@keyframes cube-tumble{0%{transform:rotateX(calc(var(--die-rx) - 540deg)) rotateY(calc(var(--die-ry) - 360deg))}}@keyframes die-bounce{30%{transform:translateY(-45%)}64%{transform:translateY(3%)}80%{transform:translateY(-12%)}}@keyframes dice-shake{50%{transform:rotate(-3deg)translateY(-3px)}}.roll-caption{min-height:1.4em;position:relative}.board-tools-row{align-items:center;gap:var(--s2) var(--s3);flex-wrap:wrap;display:flex}.board-tools{align-items:center;gap:var(--s2);display:flex}.player-locator{border:1px solid var(--line);background:var(--surface);border-radius:13px;flex:220px;align-items:center;gap:10px;min-width:0;min-height:52px;padding:8px 12px;display:flex}.player-locator b{font-size:13px;display:block}.player-locator small{color:var(--sub);font-size:12px;display:block}.players-hint{color:var(--sub);font-size:12px}.game-side{gap:var(--s3);flex-direction:column;min-width:0;min-height:0;display:flex}.action-dock{gap:var(--s3);flex-direction:column;min-width:0;scroll-margin-top:80px;display:flex}.dock-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);min-width:0;animation:dock-in .22s var(--ease-out) both;border-radius:17px;padding:16px;position:relative}@keyframes dock-in{0%{opacity:0;transform:translateY(8px)}}.dock-card:focus{outline:none}.dock-card:focus-visible{outline:3px solid var(--focus)}.dock-kicker{letter-spacing:.05em;text-transform:uppercase;color:var(--accent-2);justify-content:space-between;align-items:center;gap:9px;font-size:11px;font-weight:850;display:flex}.dock-heading{justify-content:space-between;align-items:flex-start;gap:10px;margin:10px 0 4px;display:flex}.dock-heading h2{min-width:0;font-size:23px;line-height:1.15}.dock-heading>strong{white-space:nowrap;letter-spacing:-.02em;font-size:20px}.dock-heading .close-btn{width:40px;height:40px;margin-top:-4px}.dock-meta{color:var(--sub);margin-bottom:12px;font-size:13px}.purchase-card{border-top:5px solid var(--tile,var(--accent-2))}.purchase-money{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;padding:10px 0;display:grid}.purchase-money span{color:var(--sub);font-size:12px}.purchase-money b{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:3px;font-size:15px;display:block}.decision-actions{grid-template-columns:1fr;gap:10px;display:grid}.decision-actions .btn{white-space:normal;min-width:0}.dock-details{color:var(--sub);margin-top:12px;font-size:13px}.dock-details summary{cursor:pointer;min-height:44px;color:var(--accent-2);align-items:center;font-weight:750;display:flex}.dock-details summary:before{content:"＋";margin-right:7px}.dock-details[open] summary:before{content:"−"}.dock-details .kv{padding:8px 0;font-size:13px}.dock-note{color:var(--sub);margin-top:10px;font-size:12px}.purchase-success{align-items:center;gap:10px;padding:12px;display:flex}.purchase-success b{display:block}.purchase-success small{color:var(--sub);margin-top:2px;font-size:12px;line-height:1.35;display:block}.stamp{border:3px double var(--good);color:var(--good);letter-spacing:.03em;background:color-mix(in srgb, var(--surface) 70%, transparent);animation:stamp-in .42s var(--ease-pop) both;border-radius:5px;flex:none;padding:5px 8px;font-size:12px;font-weight:900;display:inline-block;transform:rotate(-8deg)}@keyframes stamp-in{0%{opacity:0;transform:rotate(-20deg)scale(1.8)}}.result-card{align-items:center;gap:10px;display:flex}.result-card small{color:var(--sub);font-size:12px;display:block}.turn-card{border-radius:var(--radius);background:var(--accent-2);color:var(--accent-2-ink);box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}.turn-card.waiting{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.turn-card:after{content:"✦";opacity:.07;pointer-events:none;font-size:106px;position:absolute;top:-20px;right:-12px}.turn-card .label{text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.turn-card .turn-name{font-family:var(--font-heading);margin:8px 0 6px;font-size:25px;font-weight:500;line-height:1.15;display:block}.turn-card>.btn{width:100%;margin-top:var(--s3)}.turn-meta{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.timer{font-variant-numeric:tabular-nums;font-size:22px;font-weight:900}.timer.warning{animation:1s ease-in-out infinite pulse}.timer-chip{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-weight:900;display:inline-flex}.timer-chip.warning{color:var(--bad)}@keyframes pulse{50%{opacity:.6}}.side-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--s3) var(--s4);min-height:0}.side-panel h2{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--sub);margin-bottom:var(--s2);font-size:12px}.score-row{align-items:center;gap:var(--s2);width:100%;min-height:var(--touch);border:0;border-top:1px solid var(--line);color:var(--ink);text-align:left;background:0 0;padding:6px 0;font-size:14px;display:flex}li:first-child>.score-row{border-top:0}.score-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.score-row.current .name{font-weight:900}.score-row.bankrupt{opacity:.6;text-decoration:line-through}.event-log{max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.event-log li{color:var(--sub);border-top:1px dashed var(--line);padding:6px 0;font-size:13px}.event-log li:first-child{border-top:0}.event-log li:first-child:not(:only-child){color:var(--ink)}.game-actions{gap:var(--s2);flex-wrap:wrap;display:flex}.game-actions .btn{flex:auto}.mobile-tabs,.action-bar{display:none}.flip-card{perspective:800px;background:0 0;border:0;border-radius:17px;width:100%;height:150px;margin:4px 0 6px;padding:0;display:block}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform var(--dur-flip) cubic-bezier(.2, .7, .2, 1);display:block;position:relative}.flip-card[aria-pressed=true] .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{transition:visibility 0s linear calc(var(--dur-flip) / 2)}.flip-back,.flip-card[aria-pressed=true] .flip-front{visibility:hidden}.flip-card[aria-pressed=true] .flip-back{visibility:visible}.flip-face{background:var(--tile,#bad1b0);color:var(--tile-ink,#1b2421);backface-visibility:hidden;border:1px solid #0000000f;border-radius:17px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.flip-front .city{width:190px;height:auto;margin-top:18px}.flip-back{background:var(--surface-2);color:var(--ink);border:4px solid var(--tile,#bad1b0);flex-direction:column;gap:4px;padding:12px;font-size:13px;line-height:1.45;transform:rotateY(180deg)}.flip-back strong{font-size:15px}.street-badge{letter-spacing:.06em;background:color-mix(in srgb, var(--surface) 82%, transparent);color:var(--ink);border-radius:7px;padding:4px 8px;font-size:11px;font-weight:900;position:absolute;top:10px;left:12px}.flip-face .stamp{position:absolute;bottom:14px;right:12px;transform:rotate(-13deg)}.flip-hint{text-align:center;color:var(--sub);margin-bottom:6px;font-size:12px}.property-band{background:var(--tile);min-height:84px;color:var(--tile-ink);padding:var(--s3);letter-spacing:.04em;border-radius:12px;flex-direction:column;justify-content:flex-end;font-size:20px;font-weight:900;display:flex}.rent-table .kv.active{background:var(--surface-2);border-radius:8px;padding-left:8px;padding-right:8px}.auction-price{text-align:center;background:var(--surface-2);border-radius:16px;margin:4px 0 10px;padding:14px;position:relative}.auction-price small{color:var(--sub);font-size:12px;display:block}.auction-price strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:900;display:block}.auction-price.bumped strong{animation:balance-bump .6s var(--ease-out)}.auction-clock{color:var(--accent-text);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:900;line-height:1}.quick-bids{gap:6px;margin-bottom:8px;display:flex}.quick-bids .btn{flex:1;min-height:40px;padding:6px}.bid-card{background:var(--surface-2);padding:var(--s3);border-radius:12px}.debt-alert{background:color-mix(in srgb, var(--bad) 12%, var(--surface));color:var(--bad);padding:var(--s3);border-radius:12px;font-weight:800}.trade-side{border:1px solid var(--line);padding:var(--s3);border-radius:15px}.trade-direction{text-align:center;color:var(--accent-text);font-size:22px;line-height:1}.check-row{align-items:center;gap:var(--s2);min-height:var(--touch);border-top:1px solid var(--line);padding:4px 0;font-size:14px;display:flex}.check-row input{width:20px;height:20px;accent-color:var(--accent-2)}.tile-list{margin:0;padding:0;list-style:none}.tile-list button{border:0;border-top:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:10px;padding:6px 4px;font-size:14px;display:flex}.tile-list li:first-child button{border-top:0}.tile-list .tile-swatch{background:var(--tile,var(--line-strong));border-radius:3px;flex:none;width:6px;height:30px}.tile-list small{color:var(--sub);font-size:12px;display:block}.conn-banner{top:calc(var(--safe-top) + 64px);z-index:var(--z-sticky);position:sticky}@media (max-width:1023px){.game-layout{grid-template-columns:1fr}.board-viewport{max-width:640px;margin:0 auto}.game-side{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.game-side .action-dock,.game-side .side-section[data-section=turn]{grid-column:1/-1}.board{--cell-font:clamp(6px, 1.25vw, 10px)}}@media (min-width:600px){.side-section[data-section=players]{display:none}}@media (max-width:599px){.game{padding:var(--s2) var(--s2) 0;gap:var(--s2)}.game-top h1{font-size:17px}.player-chip{min-width:132px;min-height:50px}.board-viewport{max-width:100%;max-height:calc(var(--app-height) * .6)}.board{--cell-font:6px;border-width:2px;border-radius:12px;gap:1px;padding:3px}.piece-layer{--marker-size:23px}.center-city,.center-event,.center-tag{display:none}.board-word{margin-top:0}.board:not(.zoomed) .cell .cell-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.game-side{padding-bottom:92px;display:block}.game-side .side-section{margin-top:var(--s2);display:none}.game-side[data-tab=turn] .side-section[data-section=turn],.game-side[data-tab=props] .side-section[data-section=props],.game-side[data-tab=players] .side-section[data-section=players],.game-side[data-tab=history] .side-section[data-section=history]{display:block}.action-dock{margin-bottom:var(--s2)}.turn-card{padding:14px}.turn-card .turn-name{font-size:20px}.turn-card>.btn{display:none}.decision-actions{grid-template-columns:1.25fr 1fr}.dock-heading h2{font-size:21px}.mobile-tabs{background:var(--surface-2);border-radius:12px;gap:4px;padding:3px;display:flex}.mobile-tabs button{min-height:44px;color:var(--sub);background:0 0;border:0;border-radius:9px;flex:1;font-size:12px;font-weight:800}.mobile-tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.action-bar{z-index:var(--z-sticky);gap:var(--s2);padding:var(--s2) calc(var(--s3) + var(--safe-right)) calc(var(--s2) + var(--safe-bottom)) calc(var(--s3) + var(--safe-left));background:var(--surface);border-top:1px solid var(--line);align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #00000014}.action-bar .btn{white-space:normal;flex:1;min-height:50px}.app[data-screen=game] .footer-nav{display:none}}.scene-bar{justify-content:flex-end;align-items:center;gap:var(--s3);display:flex}.camera-controls,.engine-controls{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:13px;gap:3px;padding:4px;display:flex}.camera-controls button,.engine-controls button{min-width:44px;min-height:44px;color:var(--sub);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:800;display:inline-flex}.camera-controls button svg{flex:none;width:18px;height:18px}.camera-controls button[aria-pressed=true],.engine-controls button[aria-pressed=true]{background:var(--accent-2);color:var(--accent-2-ink)}.camera-controls button:disabled{opacity:.45;cursor:not-allowed}.camera-controls .camera-follow{padding:6px 10px}.board-area.scene{border:1px solid var(--line);background:radial-gradient(ellipse at 104% 100%, transparent 0 17%, var(--water) 18% 22%, transparent 23%), radial-gradient(ellipse at 0 0, var(--terrain-glow) 0 17%, transparent 55%), linear-gradient(145deg, var(--terrain), var(--terrain-2));width:100%;box-shadow:inset 0 0 45px #324b2212, 0 5px 0 color-mix(in srgb, var(--accent-2) 16%, var(--surface));border-radius:23px;padding:16px 16px 24px;position:relative}:root[data-theme=dark] .board-area.scene{box-shadow:inset 0 0 55px #0c1f2145,0 5px #172b22}.board-area.scene .board-viewport{padding:4px 4px 14px}.board-area.scene .board{--cam-dist:2000px;transform-origin:50%;border-color:color-mix(in srgb, var(--accent-2) 75%, var(--ink));background:color-mix(in srgb, var(--accent-2) 22%, var(--line));box-shadow:0 7px 0 var(--board-base), 0 11px 0 var(--board-base-shadow), 0 23px 24px var(--scene-shadow), inset 0 0 0 4px var(--surface);transition:width var(--dur) var(--ease), transform var(--dur-camera) var(--ease), box-shadow var(--dur-camera) var(--ease);border-radius:13px}.board-area[data-camera=scene] .board{transform:perspective(var(--cam-dist)) translate3d(var(--cam-x,0px), var(--cam-y,0px), 0) rotateX(var(--cam-pitch,14deg)) rotateZ(var(--cam-yaw,0deg)) scale(.94)}.board-area[data-camera=map] .board{box-shadow:0 3px 0 var(--board-base), 0 7px 15px var(--scene-shadow), inset 0 0 0 4px var(--surface);transform:none}.board-area.scene .cell{box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--line) 60%, transparent)}.board-area.scene .cell[aria-current=true]{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent)}.board-area.scene .cell.selected{box-shadow:inset 0 0 0 3px var(--accent-2)}.board-area.scene .cell.located{box-shadow:inset 0 0 0 2px var(--accent)}.board-area.scene .cell.selected.located{box-shadow:inset 0 0 0 2px var(--accent), inset 0 0 0 4px var(--accent-2)}.board-area.scene .marker .piece{filter:none;box-shadow:0 0 0 1.5px color-mix(in srgb, var(--ink) 55%, transparent), 0 3px 0 color-mix(in srgb, var(--piece) 72%, #594f37), 0 5px 4px #1d36282b;position:relative}.board-area.scene .marker .piece.active{box-shadow:0 0 0 2px var(--accent), 0 3px 0 color-mix(in srgb, var(--piece) 72%, #594f37), 0 5px 4px #1d36282b}.board-area.scene .board-center{background:radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--accent-2) 5%, var(--surface)), var(--surface-2));justify-content:flex-end;gap:1.6%;padding:52px 52px 50px}.board-area.scene .board-center:before{border-style:solid;border-color:color-mix(in srgb, var(--accent-2) 11%, transparent);border-radius:16%;inset:7%;transform:rotate(-4deg)}.board-area.scene .center-city{opacity:1;width:84%;top:4%;left:50%;transform:translate(-50%)}.board-area.scene .center-city .city{filter:saturate(.95)drop-shadow(0 8px 5px #24433014)}:root[data-theme=dark] .board-area.scene .center-city .city{filter:brightness(.85)saturate(.9)drop-shadow(0 8px 7px #0719114d)}:root[data-theme=dark] .center-city .city [fill=\#fff2bc]{fill:#fd7;filter:drop-shadow(0 0 3px #e4ac45)}:root[data-theme=dark] .center-city .city-fountain{filter:drop-shadow(0 0 4px #85d9d05c)}.board-area.scene .board-word{display:none}.board-area.scene .center-tag{background:var(--surface);box-shadow:0 3px 8px #2035200f}.board-area.scene .roll-caption{background:color-mix(in srgb, var(--surface) 88%, transparent);max-width:100%;color:var(--ink);border-radius:9px;padding:.45em .8em}.board-area.scene .center-event{background:color-mix(in srgb, var(--surface) 80%, transparent);border-radius:7px;max-width:100%;padding:.2em .6em}.roster-heading{display:none}@media (min-width:1024px){.game-layout{grid-template-rows:auto 1fr}.game-layout>.board-column{grid-area:1/1/span 2}.game-layout>.scene-roster{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;grid-area:1/2;padding:14px 12px}.game-layout>.game-side{grid-area:2/2}.roster-heading{justify-content:space-between;align-items:baseline;margin:0 2px 12px;display:flex}.roster-heading h2{font-size:15px}.roster-heading span{color:var(--sub);font-size:12px}.scene-roster .players-strip{flex-direction:column;gap:8px;padding:0;overflow:visible}.scene-roster .player-chip{background:var(--bg);border-color:#0000;flex:none;min-width:0;max-width:none}.scene-roster .player-chip.current{border-color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 8%, var(--surface))}.scene-roster .player-chip .piece{box-shadow:0 0 0 1.5px color-mix(in srgb, var(--ink) 55%, transparent), 0 3px 0 color-mix(in srgb, var(--piece) 70%, #665c41)}}.purchase-success{border-top:4px solid var(--tile,var(--accent-2));animation:.42s cubic-bezier(.2,1,.35,1) both deed-arrive;overflow:hidden}.purchase-success .stamp{margin-bottom:6px}.deed-seal{background:var(--tile,var(--accent-2));width:39px;height:45px;color:var(--tile-ink,var(--accent-2-ink));border-radius:8px 8px 4px 4px;flex:none;place-items:center;display:grid;transform:rotate(-8deg);box-shadow:0 3px #25443121}.deed-seal svg{width:22px;height:22px}.collection-unlocked{background:color-mix(in srgb, var(--tile) 14%, var(--surface));overflow:hidden}.collection-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);gap:6px;font-size:11px;font-weight:850;display:inline-flex}.collection-unlocked h3{font-family:var(--font-heading);margin:8px 0 12px;font-size:21px;font-weight:500;line-height:1.15}.collection-cards{gap:7px;display:flex}.mini-deed{border:1px solid var(--line);border-top:7px solid var(--tile);background:var(--surface);min-width:0;min-height:70px;animation:deed-arrive .4s var(--ease-out) both;animation-delay:var(--delay,0s);border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 4px;display:flex;box-shadow:0 3px #16382214}.mini-deed:nth-child(2){transform:translateY(-4px)}.mini-deed svg{width:22px;height:22px;color:var(--accent-2)}.mini-deed b{text-align:center;overflow-wrap:anywhere;font-size:11px}@keyframes deed-arrive{0%{opacity:0;translate:0 12px;scale:.94}}@media (max-width:1023px){.board-area.scene{padding:12px 12px 20px}}@media (max-width:599px){.scene-bar{justify-content:stretch}.camera-controls{gap:4px;width:100%;padding:3px}.camera-controls button{flex:1;padding:6px 8px;font-size:12px}.camera-controls .camera-follow{flex:0 0 48px}.board-area.scene{border-radius:18px;padding:8px 6px 14px}.board-area.scene .board-viewport{padding:2px 2px 9px}.board-area.scene .board{box-shadow:0 4px 0 var(--board-base), 0 7px 0 var(--board-base-shadow), 0 13px 14px var(--scene-shadow), inset 0 0 0 3px var(--surface);border-radius:10px}.board-area.scene .board-center{padding:50px 50px 48px}.board-area.scene .piece-layer{--marker-size:25px}.board-area.scene .center-city{width:100%;display:block;top:3%}.board-area.scene .board-word{letter-spacing:.1em;font-size:15px;bottom:40%}.board-area.scene .roll-caption{padding:.35em .5em}.scene-roster .players-strip{grid-auto-columns:minmax(76px,1fr);grid-auto-flow:column;gap:6px;padding:9px 1px 4px;display:grid}.scene-roster .player-chip{text-align:center;flex-direction:column;gap:4px;min-width:0;min-height:0;padding:7px 4px}.scene-roster .player-chip.current{padding:6px 3px}.scene-roster .chip-text{align-items:center;max-width:100%}.scene-roster .chip-name{max-width:100%;font-size:11px}.scene-roster .chip-money{font-size:12px}.scene-roster .chip-status{font-size:10px}.scene-roster .chip-flag{font-size:9px;top:-9px;right:50%;transform:translate(50%)}}.board3d-slot{width:100%}.board3d-slot[hidden]{display:none}.board-area.board3d-area{border:1px solid var(--line);background:radial-gradient(ellipse at 50% 40%, var(--terrain-glow), transparent 68%), linear-gradient(145deg, var(--terrain), var(--terrain-2));width:100%;box-shadow:0 5px 0 color-mix(in srgb, var(--accent-2) 16%, var(--surface));border-radius:23px;padding:8px;position:relative}:root[data-theme=dark] .board-area.board3d-area{box-shadow:0 5px #172b22}.board3d{aspect-ratio:6/5;width:100%;max-height:max(300px, calc(var(--app-height) - 330px));border-radius:16px;position:relative;overflow:clip}.board3d[data-view=map]{aspect-ratio:1}.board3d-canvas{touch-action:pan-y;cursor:grab;-webkit-tap-highlight-color:transparent;width:100%;height:100%;display:block;position:absolute;inset:0}.board3d-canvas:active{cursor:grabbing}.board3d-hits,.board3d-figures{pointer-events:none;position:absolute;inset:0}.board3d-tile,.board3d-figure{pointer-events:none;background:0 0;border:0;border-radius:9px;min-width:44px;min-height:44px;padding:0;position:absolute;top:0;left:0}.board3d-figure{border-radius:50%;width:44px;height:44px}.board3d-figure[data-visible=false]{visibility:hidden}.board3d-tile:focus-visible,.board3d-figure:focus-visible{outline:3px solid var(--focus);outline-offset:1px;background:color-mix(in srgb, var(--focus) 14%, transparent)}.board3d-hud{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;padding:8px 12px;display:flex}.board3d-hud .dice-pair{--die-size:30px}.board3d-hud .center-tag{font-size:11px}.board3d-hud .center-turn{font-size:14px}.board3d-hud .center-event{flex-basis:100%;font-size:13px}.dice-slot{display:inline-flex}.dice-slot.tossing{visibility:hidden}.dice-slot.arrived .dice-pair{animation:.26s ease-out dice-arrive}@keyframes dice-arrive{0%{transform:scale(1.14)}}.dice-toss{z-index:5;pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.dice-toss .dice-pair{--die-size:clamp(34px, 4.6vw, 48px)}.dice-toss .cube-die:after{display:none}.dice-toss .dice-pair.rolling .cube-die{animation:none}.dice-toss-drop{animation:.7s both dice-toss-drop}.dice-toss-shadow{background:radial-gradient(closest-side,#16261a73,#0000);border-radius:50%;width:135%;height:36%;animation:.7s both dice-toss-shadow;position:absolute;top:100%;left:50%;transform:translate(-50%,-62%)}.dice-toss.is-flying .dice-toss-shadow{animation:.18s ease-out forwards dice-toss-shadow-out}@keyframes dice-toss-shadow-out{to{opacity:0}}@keyframes dice-toss-drop{0%{transform:translateY(var(--toss-fall,-200px)) scale(1.45);opacity:0;animation-timing-function:cubic-bezier(.55,0,1,.6)}10%{opacity:1}56%{animation-timing-function:cubic-bezier(.2,.6,.4,1);transform:translateY(0)scale(1)}70%{animation-timing-function:cubic-bezier(.6,0,1,.6);transform:translateY(-26%)scale(1)}82%{animation-timing-function:cubic-bezier(.2,.6,.4,1);transform:translateY(0)scale(1)}91%{animation-timing-function:cubic-bezier(.6,0,1,.6);transform:translateY(-8%)scale(1)}to{transform:translateY(0)scale(1)}}@keyframes dice-toss-shadow{0%{opacity:0;transform:translate(-50%,-62%)scale(.3)}56%{opacity:1;transform:translate(-50%,-62%)scale(1)}70%{opacity:.75;transform:translate(-50%,-62%)scale(.86)}82%,to{opacity:1;transform:translate(-50%,-62%)scale(1)}}.board3d-status{color:var(--sub);margin:0;font-size:13px}.board3d-failed{align-items:center}.engine-controls button{font-variant-numeric:tabular-nums;min-width:48px}@media (min-width:600px) and (max-width:1023px){.board3d{max-height:max(300px, calc(var(--app-height) - 440px))}}@media (max-width:599px){.scene-bar{flex-wrap:wrap}.scene-bar .engine-controls{flex:none;gap:4px;padding:3px}.scene-bar .engine-controls button{padding:6px 8px;font-size:12px}.scene-bar .camera-controls{flex:220px;width:auto}.board-area.board3d-area{border-radius:18px;padding:4px}.board3d{border-radius:14px}}
