:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{margin:0}:root{--paper:#fdf6e7;--paper-deep:#f6e9cf;--paper-edge:#efdcbb;--board-felt:#e7efd6;--ink:#3b2b22;--ink-soft:#7d6555;--ink-faint:#a8927e;--line:#dcc7a6;--red:#e24a3c;--red-dark:#ad3227;--orange:#f0932b;--orange-dark:#c06d15;--yellow:#f7c73f;--yellow-dark:#cb9c19;--green:#5ca84a;--green-dark:#417c33;--teal:#2f9e8f;--teal-dark:#1f7368;--blue:#2f66b8;--blue-dark:#204b92;--grape:#8a5ab6;--grape-dark:#6a3f92;--pink:#e4699a;--pink-dark:#bc4576;--bg-color:var(--paper);--text-color:var(--ink);--surface-color:#fffdf6;--border-color:var(--ink);--muted-bg:var(--paper-deep);--muted-text:var(--ink-soft);--accent-bg:#dcebff;--accent-text:var(--blue-dark);--accent-contrast:#fffdf6;--danger-bg:#fde3df;--danger-text:var(--red-dark);--success-bg:#e2f3dc;--success-text:var(--green-dark);--warn-bg:#fdeecb;--warn-text:#92620a;--info-bg:#dcf0f0;--info-text:var(--teal-dark);--ink-shadow:#3b2b2238;--shadow-flat:0 2px 0 var(--ink-shadow);--shadow-card:0 4px 0 var(--ink-shadow);--shadow-lift:0 8px 0 var(--ink-shadow);--radius-sm:8px;--radius:14px;--radius-lg:20px;--stroke:2px;--stroke-bold:3px;--font-ui:"Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN W4", "Zen Maru Gothic", "M PLUS Rounded 1c", "Quicksand", "Yu Gothic Medium", "Yu Gothic", "Meiryo", system-ui, sans-serif;--font-num:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Trebuchet MS", system-ui, sans-serif}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;overflow-x:hidden}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-text-size-adjust:100%;background-image:radial-gradient(circle at 1px 1px,#3b2b220b 1px,#0000 0),radial-gradient(circle at 1px 1px,#3b2b2208 1px,#0000 0);background-position:0 0,3px 4px;background-size:18px 18px,7px 7px;margin:0;font-weight:500;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:.02em;color:var(--ink);margin:0 0 .5em;font-weight:800}h1{font-size:clamp(1.5rem,6vw,2.25rem);line-height:1.2}input,select,textarea{border:var(--stroke) solid var(--ink);border-radius:var(--radius-sm);background:var(--surface-color);color:var(--ink);width:100%;min-height:44px;padding:10px 12px;font-family:inherit;font-weight:600;box-shadow:inset 0 2px #3b2b221a}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:var(--stroke-bold) solid var(--blue);outline-offset:2px}textarea{resize:vertical;min-height:72px}::placeholder{color:var(--ink-faint);font-weight:500}button{cursor:pointer;min-height:44px;color:var(--ink);background:var(--paper-deep);border:var(--stroke) solid var(--ink);border-radius:var(--radius);box-shadow:0 4px 0 var(--line);padding:10px 16px;font-family:inherit;font-weight:700;transition:transform 80ms ease-out,box-shadow 80ms ease-out,filter .12s ease-out}button:hover:not(:disabled){filter:brightness(1.04)}button:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(3px)}button:disabled{cursor:not-allowed;color:var(--ink-faint);border-color:var(--line);box-shadow:none;background:#efe6d4;transform:none}.btn-primary{background:var(--yellow);box-shadow:0 4px 0 var(--yellow-dark)}.btn-primary:active:not(:disabled){box-shadow:0 1px 0 var(--yellow-dark)}.btn-go{background:var(--green);color:#fffdf6;box-shadow:0 4px 0 var(--green-dark)}.btn-go:active:not(:disabled){box-shadow:0 1px 0 var(--green-dark)}.btn-danger{background:var(--red);color:#fffdf6;box-shadow:0 4px 0 var(--red-dark)}.btn-danger:active:not(:disabled){box-shadow:0 1px 0 var(--red-dark)}.btn-quiet{background:var(--surface-color);box-shadow:0 3px 0 var(--line)}a{color:var(--blue-dark);text-underline-offset:3px;font-weight:700;text-decoration-thickness:2px}.panel,.card-surface{background:var(--surface-color);border:var(--stroke) solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-card)}.tape-label{background:var(--yellow);border:var(--stroke) solid var(--ink);box-shadow:var(--shadow-flat);border-radius:999px;padding:2px 10px 3px;font-size:.8rem;font-weight:800;display:inline-block}.screen{box-sizing:border-box;width:100%;min-height:100dvh}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.title-page{background-color:var(--board-felt);background-image:linear-gradient(0deg,#3b2b220d 1px,#0000 1px),linear-gradient(90deg,#3b2b220d 1px,#0000 1px);background-size:44px 44px;justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex;position:relative;overflow:hidden}.title-page:before{content:"";pointer-events:none;opacity:.85;background-image:radial-gradient(circle 13px at 8% 14%, var(--red) 96%, transparent 100%), radial-gradient(circle 10px at 17% 26%, var(--yellow) 96%, transparent 100%), radial-gradient(circle 15px at 6% 78%, var(--teal) 96%, transparent 100%), radial-gradient(circle 11px at 15% 88%, var(--grape) 96%, transparent 100%), radial-gradient(circle 14px at 92% 20%, var(--blue) 96%, transparent 100%), radial-gradient(circle 10px at 84% 31%, var(--pink) 96%, transparent 100%), radial-gradient(circle 16px at 94% 76%, var(--green) 96%, transparent 100%), radial-gradient(circle 11px at 86% 88%, var(--orange) 96%, transparent 100%), radial-gradient(circle 16px at 8% 14%, var(--ink) 96%, transparent 100%), radial-gradient(circle 13px at 17% 26%, var(--ink) 96%, transparent 100%), radial-gradient(circle 18px at 6% 78%, var(--ink) 96%, transparent 100%), radial-gradient(circle 14px at 15% 88%, var(--ink) 96%, transparent 100%), radial-gradient(circle 17px at 92% 20%, var(--ink) 96%, transparent 100%), radial-gradient(circle 13px at 84% 31%, var(--ink) 96%, transparent 100%), radial-gradient(circle 19px at 94% 76%, var(--ink) 96%, transparent 100%), radial-gradient(circle 14px at 86% 88%, var(--ink) 96%, transparent 100%);background-repeat:no-repeat;position:absolute;inset:0}.title-page__panel{z-index:1;text-align:center;background:var(--surface-color);border:var(--stroke-bold) solid var(--ink);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lift);flex-direction:column;gap:16px;padding:28px 22px 24px;display:flex;position:relative}.title-page__heading{letter-spacing:.03em;margin:0;font-size:1.75rem;font-weight:800;line-height:1.25}.title-page__heading:after{content:"";background:var(--yellow);border:2px solid var(--ink);border-radius:999px;width:72px;height:6px;margin:12px auto 0;display:block}.title-page__tagline{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.6}.title-page__name-field{text-align:left;color:var(--ink-soft);flex-direction:column;gap:6px;font-size:.85rem;font-weight:700;display:flex}.title-page__name-field input{text-align:left;font-size:1rem}.title-page__cta{letter-spacing:.05em;background:var(--yellow);color:var(--ink);border:var(--stroke-bold) solid var(--ink);border-radius:var(--radius);box-shadow:0 5px 0 var(--yellow-dark);padding:16px;font-size:1.1rem;font-weight:800}.title-page__cta:active:not(:disabled){box-shadow:0 1px 0 var(--yellow-dark);transform:translateY(4px)}.title-page__settings-link{background:var(--surface-color);border:var(--stroke) solid var(--ink);color:var(--ink);box-shadow:0 3px 0 var(--line);font-size:.9rem}.title-page__dev-link{color:var(--ink-faint);min-height:auto;box-shadow:none;background:0 0;border:none;padding:4px;font-size:.75rem;text-decoration:underline}.title-page__dev-link:active{box-shadow:none;transform:none}@media (width>=640px){.title-page__heading{font-size:2.25rem}.title-page__panel{padding:34px 30px 28px}}.settings-panel{flex-direction:column;gap:20px;display:flex}.settings-panel__group{border-bottom:var(--stroke) solid var(--border-color);flex-direction:column;gap:10px;padding-bottom:14px;display:flex}.settings-panel__group:last-of-type{border-bottom:none}.settings-panel__group-title{color:var(--muted-text);margin:0;font-size:.95rem}.settings-panel__row{align-items:center;gap:10px;font-size:.9rem;display:flex}.settings-panel__row>span:first-child{flex:none;min-width:96px}.settings-panel__row input[type=range]{background:0 0;border:none;flex:auto;width:auto;min-height:44px;padding:0}.settings-panel__row select{flex:auto}.settings-panel__value{text-align:right;min-width:3.2em;color:var(--muted-text);font-variant-numeric:tabular-nums;flex:none}.settings-panel__checkbox-row{align-items:center;gap:8px;min-height:44px;font-size:.9rem;display:flex}.settings-panel__checkbox-row input[type=checkbox]{flex:none;width:20px;height:20px;min-height:auto}.settings-panel__hint{color:var(--muted-text);margin:0;font-size:.78rem}.settings-panel__test-se{align-self:flex-start}.settings-panel__actions{justify-content:flex-end;display:flex}@media (width>=640px){.settings-panel__row>span:first-child{min-width:130px}}.settings-page{flex-direction:column;min-height:100dvh;display:flex}.settings-page__header{border-bottom:var(--stroke) solid var(--border-color);background:var(--surface-color);align-items:center;gap:12px;padding:12px 16px;display:flex}.settings-page__back{min-height:44px;color:var(--accent-text);background:0 0;border:none;padding:8px;font-size:.95rem}.settings-page__heading{margin:0;font-size:1.1rem}.settings-page__body{box-sizing:border-box;flex:auto;width:100%;max-width:640px;margin:0 auto;padding:16px}@media (width>=640px){.settings-page__body{padding:24px}}.create-room-form{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);flex-direction:column;gap:10px;padding:14px;display:flex}.create-room-form__heading{margin:0;font-size:1rem}.create-room-form__field{color:var(--muted-text);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.create-room-form__field input,.create-room-form__field select{color:var(--text-color);font-size:1rem}.create-room-form__row{gap:10px;display:flex}.create-room-form__row .create-room-form__field{flex:1}.create-room-form__advanced-toggle{color:var(--accent-text);background:0 0;border:none;align-self:flex-start;min-height:auto;padding:4px 0;font-size:.85rem;text-decoration:underline}.create-room-form__error{color:var(--danger-text);margin:0;font-size:.85rem}@media (width>=640px){.create-room-form__submit{align-self:flex-start}}.room-card{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.room-card__main{flex:1;min-width:0}.room-card__name{overflow-wrap:anywhere;margin:0 0 4px;font-size:1rem;font-weight:700}.room-card__meta{align-items:center;gap:8px;margin:0 0 4px;font-size:.85rem;display:flex}.room-card__status{background:var(--muted-bg);color:var(--muted-text);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.room-card__status--waiting{background:var(--accent-bg);color:var(--accent-text)}.room-card__status--playing{background:var(--warn-bg);color:var(--warn-text)}.room-card__status--finished{background:var(--muted-bg);color:var(--muted-text)}.room-card__sub{color:var(--muted-text);overflow-wrap:anywhere;margin:0;font-size:.75rem}.room-card__join-button{flex-shrink:0}.room-card{background:var(--surface-color);border:var(--stroke-bold) solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:transform .11s ease-out,box-shadow .11s ease-out;position:relative}.room-card:before{content:"";background:var(--teal);border-right:2px solid var(--ink);border-radius:12px 0 0 12px;width:8px;position:absolute;inset:0 auto 0 0}.room-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.room-list-page{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:16px;display:flex}.room-list-page__header{align-items:center;gap:12px;display:flex}.room-list-page__back{color:var(--muted-text);background:0 0;border:none;min-height:auto;padding:4px}.room-list-page__heading{margin:0;font-size:1.2rem}.room-list-page__list-section{flex-direction:column;gap:10px;display:flex}.room-list-page__error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-text);margin:0;padding:10px 12px;font-size:.85rem}.room-list-page__hint{color:var(--muted-text);text-align:center;padding:24px 0;font-size:.85rem}.room-list-page__grid{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}@media (width>=720px){.room-list-page__grid{grid-template-columns:repeat(2,1fr);display:grid}}.player-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.player-list__row{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.player-list__identity{flex-direction:column;gap:4px;min-width:0;display:flex}.player-list__name{overflow-wrap:anywhere;font-weight:600}.player-list__you{color:var(--muted-text);font-weight:400}.player-list__badges{flex-wrap:wrap;gap:4px;display:flex}.player-list__badge{background:var(--muted-bg);color:var(--muted-text);border-radius:999px;padding:2px 8px;font-size:.7rem}.player-list__badge--host{background:var(--accent-bg);color:var(--accent-text)}.player-list__badge--cpu{background:var(--info-bg);color:var(--info-text)}.player-list__badge--disconnected{background:var(--danger-bg);color:var(--danger-text)}.player-list__badge--ready{background:var(--success-bg);color:var(--success-text)}.player-list__actions{flex-shrink:0;gap:8px;display:flex}.cpu-slot-controls{flex-wrap:wrap;align-items:center;gap:10px;font-size:.85rem;display:flex}.cpu-slot-controls__hint{color:var(--danger-text);font-size:.8rem}.chat-panel{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);flex-direction:column;min-height:0;display:flex;overflow:hidden}.chat-panel__messages{flex-direction:column;flex:1;gap:6px;min-height:160px;max-height:320px;margin:0;padding:10px 12px;list-style:none;display:flex;overflow-y:auto}.chat-panel__message{overflow-wrap:anywhere;flex-direction:column;font-size:.85rem;display:flex}.chat-panel__message--system{color:var(--muted-text);align-self:center;font-size:.78rem;font-style:italic}.chat-panel__meta{color:var(--muted-text);gap:6px;font-size:.7rem;display:flex}.chat-panel__author{font-weight:600}.chat-panel__error{color:var(--danger-text);margin:0;padding:4px 12px;font-size:.8rem}.chat-panel__form{border-top:var(--stroke) solid var(--border-color);align-items:center;gap:8px;padding:8px 10px;display:flex}.chat-panel__input{flex:1;min-width:0}.chat-panel__counter{color:var(--muted-text);white-space:nowrap;font-size:.7rem}.room-waiting-page{flex-direction:column;gap:14px;max-width:960px;margin:0 auto;padding:16px;display:flex}.room-waiting-page__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.room-waiting-page__heading{overflow-wrap:anywhere;margin:0;font-size:1.2rem}.room-waiting-page__leave{border:var(--stroke) solid var(--border-color);color:var(--danger-text);background:0 0;flex-shrink:0}.room-waiting-page__error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-text);margin:0;padding:10px 12px;font-size:.85rem}.room-waiting-page__hint{color:var(--muted-text);font-size:.85rem}.room-waiting-page__capacity{color:var(--muted-text);margin:0;font-size:.85rem}.room-waiting-page__body{flex-direction:column;gap:16px;display:flex}.room-waiting-page__main{flex-direction:column;gap:12px;display:flex}.room-waiting-page__start-button{background:var(--accent-text);color:var(--accent-contrast);border-radius:var(--radius);border:none;padding:14px;font-size:1rem;font-weight:700}.room-waiting-page__start-button:disabled{background:var(--muted-bg);color:var(--muted-text)}.room-waiting-page__chat{flex-direction:column;display:flex}@media (width>=860px){.room-waiting-page__body{flex-direction:row;align-items:flex-start}.room-waiting-page__main{flex:2}.room-waiting-page__chat{flex:1;position:sticky;top:16px}}.effect-selector{flex-direction:column;gap:12px;display:flex}.effect-selector__notice{color:var(--muted-text);margin:0;font-size:.8rem}.effect-selector__group{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);padding:8px 10px 10px}.effect-selector__group legend{color:var(--muted-text);padding:0 4px;font-size:.8rem;font-weight:700}.effect-selector__chips{flex-wrap:wrap;gap:8px;display:flex}.effect-selector__chip{border:var(--stroke) solid var(--border-color);background:var(--muted-bg);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:8px 10px;font-size:.8rem;display:inline-flex}.effect-selector__chip--selected{background:var(--accent-bg);border-color:var(--accent-text);color:var(--accent-text)}.effect-selector__chip input{width:16px;height:16px;margin:0}.effect-selector__chip-cost{opacity:.8;font-weight:700}.card-preview{border-radius:var(--radius);border:2px solid var(--accent-text);background:var(--surface-color);flex-direction:column;gap:8px;width:100%;max-width:280px;padding:14px;display:flex;box-shadow:0 4px 10px #00000014}.card-preview__timing{color:var(--muted-text);margin:0;font-size:.7rem}.card-preview__name{overflow-wrap:anywhere;margin:0;font-size:1.1rem;font-weight:700}.card-preview__description{color:var(--muted-text);overflow-wrap:anywhere;margin:0;font-size:.85rem}.card-preview__effects{margin:0;padding-left:18px;font-size:.85rem}.card-preview__effect-empty{color:var(--muted-text);margin-left:-18px;padding-left:-18px;list-style:none}.card-preview__cost{text-align:right;margin:0;font-size:.9rem;font-weight:700}.card-creation-page{flex-direction:column;gap:16px;max-width:960px;margin:0 auto;padding:16px;display:flex}.card-creation-page__heading{margin:0 0 6px;font-size:1.2rem}.card-creation-page__notice{color:var(--muted-text);margin:0;font-size:.85rem}.card-creation-page__error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-text);margin:0;padding:10px 12px;font-size:.85rem}.card-creation-page__submitted{text-align:center;color:var(--success-text);background:var(--success-bg);border-radius:var(--radius);padding:20px}.card-creation-page__body{flex-direction:column-reverse;gap:20px;display:flex}.card-creation-page__form{flex-direction:column;gap:12px;display:flex}.card-creation-page__field{color:var(--muted-text);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.card-creation-page__field input,.card-creation-page__field textarea{color:var(--text-color);resize:vertical;font-size:1rem}.card-creation-page__timing{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);flex-wrap:wrap;gap:10px;padding:8px 10px;display:flex}.card-creation-page__timing legend{color:var(--muted-text);padding:0 4px;font-size:.8rem}.card-creation-page__timing-option{align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.card-creation-page__budget{margin:0;font-size:.85rem;font-weight:600}.card-creation-page__violations{color:var(--danger-text);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:.8rem;display:flex}.card-creation-page__submit{background:var(--accent-text);color:var(--accent-contrast);border-radius:var(--radius);border:none;padding:14px;font-size:1rem;font-weight:700}.card-creation-page__submit:disabled{background:var(--muted-bg);color:var(--muted-text)}.card-creation-page__preview{justify-content:center;display:flex}@media (width>=860px){.card-creation-page__body{flex-direction:row;align-items:flex-start}.card-creation-page__form{flex:2}.card-creation-page__preview{flex:1;position:sticky;top:16px}}.game-modal-backdrop{padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));box-sizing:border-box;z-index:40;background:#3b2b2280;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.game-modal{overscroll-behavior:contain;background:var(--surface-color);width:100%;max-width:420px;max-height:90dvh;color:var(--ink);border:var(--stroke-bold) solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);box-sizing:border-box;padding:20px 18px 18px;overflow-y:auto}.game-modal__title{background:var(--yellow);border-bottom:var(--stroke-bold) solid var(--ink);border-radius:16px 16px 0 0;margin:-20px -18px 14px;padding:12px 18px;font-size:1.05rem;font-weight:800}.game-modal__body{flex-direction:column;gap:10px;display:flex}@media (width<=640px){.game-modal-backdrop{align-items:flex-end;padding:0}.game-modal__title{border-radius:16px 16px 0 0}.game-modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%;max-height:85dvh;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-bottom:none}}.topbar{background:var(--surface-color);border-bottom:var(--stroke-bold) solid var(--ink);box-shadow:0 3px 0 var(--ink-shadow);flex-wrap:wrap;grid-area:top;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.topbar__main{flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem;font-weight:700;display:flex}.topbar__my-turn{background:var(--yellow);border:var(--stroke) solid var(--ink);color:var(--ink);box-shadow:var(--shadow-flat);border-radius:999px;margin-left:4px;padding:2px 10px 3px;font-size:.82rem;font-weight:800}.topbar__phase{color:var(--ink-soft);font-weight:600}.topbar__turn{font-weight:800;font-family:var(--font-num)}.topbar__side{align-items:center;gap:8px;display:flex}.topbar__status{background:var(--muted-bg);border:2px solid var(--ink);color:var(--ink-soft);border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.topbar__status--ok{background:var(--success-bg);color:var(--success-text)}.topbar__status--warn{background:var(--warn-bg);color:var(--warn-text)}.topbar__status--danger{background:var(--danger-bg);color:var(--danger-text)}.topbar__settings-button{padding:6px 10px;font-size:.8rem}.topbar__menu-button{display:none}@media (width<=720px){.topbar__menu-button{display:inline-flex}}.route-choice-banner{box-sizing:border-box;background:var(--surface-color);border:var(--stroke) solid var(--border-color);border-radius:var(--radius);max-width:calc(100% - 24px);box-shadow:var(--shadow-card);z-index:20;padding:10px 14px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.route-choice-banner__title{margin:0 0 6px;font-size:.85rem}.route-choice-banner__options{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.route-choice-banner__options button{white-space:normal;overflow-wrap:anywhere}.decision-dialog__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.decision-dialog__list button{text-align:left;overflow-wrap:anywhere;width:100%}.decision-dialog__hint{color:var(--muted-text);overflow-wrap:anywhere;font-size:.85rem}.card-use-banner{background:var(--info-bg);color:var(--info-text);border-radius:var(--radius-sm);flex-direction:column;grid-area:banner;gap:6px;margin:0 12px;padding:8px 12px;display:flex}.space-creation-seam{flex-direction:column;gap:8px;display:flex}.decision-list button,.route-choice__option{background:var(--surface-color);border:var(--stroke) solid var(--ink);border-radius:var(--radius-sm);box-shadow:0 3px 0 var(--line);text-align:left;font-weight:700}.decision-list button:active:not(:disabled),.route-choice__option:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.card-use-banner{background:var(--warn-bg);border:var(--stroke) solid var(--ink);border-radius:var(--radius-sm);box-shadow:var(--shadow-flat);font-weight:700}.board-area{background:var(--board-felt);border-bottom:var(--stroke) solid var(--ink);grid-area:board;min-width:0;min-height:320px;position:relative}.board-area__canvas{width:100%;height:100%}@media (height<=480px) and (orientation:landscape){.board-area{min-height:140px}}.hand-panel{padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));background:var(--paper-deep);border-top:var(--stroke-bold) solid var(--ink);flex-direction:column;grid-area:hand;gap:8px;min-width:0;display:flex}.hand-panel__cards{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:8px;min-width:0;margin:0;padding:0 0 4px;scroll-padding-inline:4px;list-style:none;display:flex;overflow:auto hidden}.hand-panel__cards li{scroll-snap-align:start;flex:none}.hand-card{text-align:left;background:var(--surface-color);border:var(--stroke) solid var(--ink);min-width:148px;max-width:184px;box-shadow:var(--shadow-card);box-sizing:border-box;border-radius:10px;flex-direction:column;gap:4px;padding:14px 10px 10px;transition:transform .11s ease-out,box-shadow .11s ease-out;display:flex;position:relative}.hand-card:before{content:"";background:var(--line);border-bottom:2px solid var(--ink);border-radius:8px 8px 0 0;height:6px;position:absolute;inset:0 0 auto}.hand-card--playable{border-color:var(--ink);box-shadow:var(--shadow-lift);transform:translateY(-3px)}.hand-card--playable:before{background:var(--yellow)}.hand-card--playable:hover{transform:translateY(-6px)}.hand-card--playable:active{box-shadow:var(--shadow-flat);transform:translateY(0)}.hand-card--disabled{color:var(--ink-faint);box-shadow:none;filter:saturate(.35);background:#f3ebda;transform:none}.hand-card--disabled:before{background:var(--line)}.hand-card__name{overflow-wrap:anywhere;font-size:.85rem;font-weight:700}.hand-card__desc{color:var(--muted-text);overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:.72rem;display:-webkit-box;overflow:hidden}.hand-card__target-list{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.hand-card__target-list button{overflow-wrap:anywhere;width:100%}.hand-panel__actions{justify-content:center;display:flex}.hand-panel__roll-button{letter-spacing:.04em;color:#fffdf6;background:var(--green);border:var(--stroke-bold) solid var(--ink);border-radius:var(--radius);min-width:210px;box-shadow:0 5px 0 var(--green-dark);padding:14px 22px;font-size:1.05rem;font-weight:800}.hand-panel__roll-button:active:not(:disabled){box-shadow:0 1px 0 var(--green-dark);transform:translateY(4px)}.hand-panel__roll-button:disabled{color:var(--ink-faint);border-color:var(--line);box-shadow:none;background:#e8dfcd}@media (height<=480px) and (orientation:landscape){.hand-panel{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));flex-direction:row;align-items:center;gap:8px}.hand-panel__cards{flex:auto;padding-bottom:0}.hand-card{min-width:124px;max-width:152px;padding:12px 8px 8px}.hand-card__desc{display:none}.hand-panel__actions{flex:none}.hand-panel__roll-button{min-width:124px;padding:10px 12px;font-size:.95rem}}.assets-panel{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.assets-panel__row{border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);padding:8px}.assets-panel__name{justify-content:space-between;font-size:.82rem;font-weight:700;display:flex}.assets-panel__category{color:var(--muted-text);font-size:.7rem;font-weight:400}.assets-panel__meta{color:var(--muted-text);flex-wrap:wrap;gap:8px;margin-top:4px;font-size:.72rem;display:flex}.assets-panel__empty{color:var(--muted-text);font-size:.8rem}.career-panel__summary{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.career-panel__summary dt{color:var(--muted-text);font-size:.7rem}.career-panel__summary dd{margin:0;font-size:.85rem;font-weight:700}.career-panel__unemployed{color:var(--muted-text);font-size:.85rem}.career-panel__business{border-top:var(--stroke) solid var(--border-color);margin-top:10px;padding-top:8px;font-size:.78rem}.career-panel__business h3{margin:0 0 4px;font-size:.82rem}.career-panel__meta{color:var(--muted-text);margin-top:10px;font-size:.75rem}.players-panel{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.players-panel__row{border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);padding:8px}.players-panel__row--current{border-color:var(--accent-text);background:var(--accent-bg)}.players-panel__name{align-items:center;gap:6px;font-size:.85rem;font-weight:700;display:flex}.players-panel__me-badge{background:var(--muted-bg);border-radius:999px;padding:1px 6px;font-size:.7rem}.players-panel__disconnected{color:var(--danger-text);font-size:.7rem}.players-panel__meta{color:var(--muted-text);flex-wrap:wrap;gap:8px;margin-top:4px;font-size:.72rem;display:flex}.players-panel__finished{color:var(--success-text)}.bank-panel__summary{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.bank-panel__summary dt{color:var(--muted-text);font-size:.7rem}.bank-panel__summary dd{margin:0;font-weight:700}.bank-panel__section-title{margin:12px 0 4px;font-size:.85rem}.bank-panel__debt-list{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.bank-panel__empty{color:var(--muted-text);font-size:.8rem}.insurance-panel{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.insurance-panel__row{border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;padding:6px 8px;display:flex}.insurance-panel__name{font-size:.82rem;font-weight:700}.insurance-panel__meta{color:var(--muted-text);font-size:.7rem}.insurance-panel__empty{color:var(--muted-text);font-size:.8rem}.log-panel{flex-direction:column;gap:4px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.log-panel__entry{border-radius:var(--radius-sm);background:var(--muted-bg);padding:4px 6px;font-size:.78rem}.log-panel__entry--warning{background:var(--warn-bg);color:var(--warn-text)}.log-panel__entry--system{background:var(--info-bg);color:var(--info-text)}.log-panel__entry--success{background:var(--success-bg);color:var(--success-text)}.log-panel__empty{color:var(--muted-text);font-size:.8rem}.side-panel-tabs{flex-direction:column;height:100%;min-height:0;display:flex}.side-panel-tabs__tablist{border-bottom:var(--stroke) solid var(--border-color);flex-wrap:wrap;gap:4px;padding:8px;display:flex}.side-panel-tabs__tab{background:var(--muted-bg);min-height:36px;padding:4px 10px;font-size:.78rem}.side-panel-tabs__tab--active{background:var(--accent-bg);color:var(--accent-text)}.side-panel-tabs__body{flex:1;padding:10px;overflow-y:auto}.board-edit{z-index:30;background:var(--surface-color);max-height:60dvh;color:var(--text-color);border-top:var(--stroke) solid var(--border-color);padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));box-sizing:border-box;border-radius:16px 16px 0 0;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 16px #00000040}.board-edit--narrow{max-height:70dvh}.board-edit__header{flex-direction:column;gap:4px;display:flex}.board-edit__title{margin:0;font-size:1rem}.board-edit__progress{color:var(--muted-text);margin:0;font-size:.85rem}.board-edit__steps{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.board-edit__steps li{background:var(--muted-bg);color:var(--muted-text);border-radius:999px;padding:4px 8px;font-size:.78rem}.board-edit__steps li[aria-current=step]{background:var(--accent-bg);color:var(--accent-text);font-weight:600}.board-edit__hint{color:var(--muted-text);margin:0;font-size:.85rem}.board-edit__candidate-summary{margin:0;font-weight:600}.board-edit__coords{flex-wrap:wrap;gap:10px;display:flex}.board-edit__coords label{flex-direction:column;flex:1;gap:4px;min-width:100px;font-size:.8rem;display:flex}.board-edit__actions{flex-wrap:wrap;gap:8px;display:flex}.candidate-tray{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:40dvh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.candidate-tray__button{text-align:left;border-width:2px;align-items:flex-start;gap:8px;width:100%;min-height:44px;padding:8px;display:flex}.candidate-tray__icon{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;display:flex}.candidate-tray__body{flex-direction:column;gap:2px;min-width:0;display:flex}.candidate-tray__title{font-size:.85rem;font-weight:600}.candidate-tray__kind{color:var(--muted-text);font-size:.7rem}.candidate-tray__description,.candidate-tray__effect{color:var(--muted-text);font-size:.75rem}.connection-picker{flex-direction:column;gap:10px;display:flex}.connection-picker__group{border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);padding:8px}.connection-picker__list{flex-direction:column;gap:6px;max-height:30dvh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.connection-picker__option{align-items:center;gap:8px;min-height:44px;display:flex}.connection-picker__shortcut,.connection-picker__road-type{align-items:center;gap:8px;display:flex}.board-edit__placed-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.board-edit__placed-list li{justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;display:flex}.board-edit__bulk-actions{gap:8px;margin-top:6px;display:flex}.board-edit__violations{color:var(--danger-text);background:var(--danger-bg);border-radius:var(--radius-sm);margin:0;padding:8px 8px 8px 24px;font-size:.8rem}.board-edit__ok-hint{color:var(--success-text);background:var(--success-bg);border-radius:var(--radius-sm);margin:0;padding:6px 10px;font-size:.8rem}.board-edit__footer{justify-content:flex-end;gap:8px;display:flex}.board-edit__confirm{background:var(--accent-bg);color:var(--accent-text);font-weight:600}@media (width>=720px){.board-edit{border-radius:16px 16px 0 0;width:min(720px,92vw);max-height:55dvh;left:50%;right:auto;transform:translate(-50%)}}@media (width>=960px){.board-edit{max-height:48dvh}}.game-screen{background:var(--bg-color);height:100dvh;color:var(--text-color);grid-template:"top top""board side"1fr"banner banner""hand hand"/minmax(0,1fr) 280px;display:grid;overflow:hidden}.game-screen>*{min-width:0}.game-screen__side{border-left:var(--stroke) solid var(--border-color);background:var(--surface-color);grid-area:side;min-height:0;overflow-y:auto}.game-screen__host-lost{color:#fff;text-align:center;z-index:60;background:#0f1116d9;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.game-screen__toasts{z-index:50;flex-direction:column;gap:8px;max-width:min(320px,100vw - 24px);display:flex;position:fixed;top:12px;right:12px}.game-toast{border-radius:var(--radius-sm);background:var(--muted-bg);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:.82rem;display:flex;box-shadow:0 2px 8px #0003}.game-toast--error{background:var(--danger-bg);color:var(--danger-text)}.game-toast--info{background:var(--info-bg);color:var(--info-text)}.game-toast button{background:0 0;border:none;min-width:auto;min-height:auto;padding:2px 6px}.game-drawer{z-index:45;background:var(--surface-color);flex-direction:column;display:flex;position:fixed;inset:0}.game-drawer__close{align-self:flex-end;margin:8px}@media (width<=720px){.game-screen{grid-template:"top""board"1fr"banner""hand"/minmax(0,1fr)}}.placeholder-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100dvh;padding:24px 16px;display:flex}.placeholder-page__heading{margin:0;font-size:1.3rem}.placeholder-page__body{max-width:480px;color:var(--muted-text);overflow-wrap:anywhere;margin:0}.placeholder-page__error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger-text);overflow-wrap:anywhere;max-width:480px;margin:0;padding:10px 12px;font-size:.85rem}.result-screen{flex-direction:column;gap:20px;max-width:960px;margin:0 auto;padding:16px;display:flex}.result-screen__heading{text-align:center}.result-screen__section h2{border-bottom:var(--stroke) solid var(--border-color);padding-bottom:4px;font-size:1rem}.result-screen__ranking,.result-screen__goal-ranking{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.result-screen__ranking li{border:var(--stroke) solid var(--border-color);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px;display:flex}.result-screen__winner{background:var(--success-bg);border-color:var(--success-text)!important}.result-screen__rank-number{min-width:44px;font-weight:700}.result-screen__winner-badge{background:var(--success-text);color:var(--surface-color);border-radius:999px;padding:2px 8px;font-size:.7rem}.result-screen__net-worth{margin-left:auto;font-weight:700}.result-screen__settlements{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.result-screen__settlement-card{border:var(--stroke) solid var(--border-color);border-radius:var(--radius);background:var(--surface-color);padding:12px}.result-screen__breakdown{grid-template-columns:1fr auto;gap:2px 8px;margin:8px 0;font-size:.8rem;display:grid}.result-screen__breakdown dt{color:var(--muted-text)}.result-screen__breakdown dd{text-align:right;margin:0}.result-screen__final-net-worth{font-weight:700;display:contents}.result-screen__stats{color:var(--muted-text);grid-template-columns:1fr auto;gap:2px 8px;margin:4px 0 0;padding:0;font-size:.75rem;list-style:none;display:grid}.result-screen{background-color:var(--board-felt)}.result-screen__rank{font-family:var(--font-num);font-weight:800}.result-screen__row:first-child .result-screen__rank{color:#a9821c}.result-screen__row:nth-child(2) .result-screen__rank{color:#7c7c85}.result-screen__row:nth-child(3) .result-screen__rank{color:#96603a}.result-screen__amount,.result-screen__net-worth,.result-screen__stat-value{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:800}
