:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#40243a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--surface:#fffbf6d1;--surface-strong:#fffdfaf2;--ink:#40243a;--ink-soft:#73566b;--border:#522d4a1f;--shadow:0 20px 48px #5b2c4f1f;--shadow-soft:0 10px 24px #5b2c4f14;--radius-lg:28px;--radius-md:20px;--radius-sm:14px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;background:radial-gradient(circle at top,#fff1e4eb,#0000 38%),linear-gradient(135deg,#ffe8d6 0%,#ffd7ec 46%,#dff1cc 100%);font-family:Noto Serif TC,PingFang TC,Microsoft JhengHei,serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#app{min-height:100vh}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit}#app{width:min(1480px,100vw - 32px);margin:0 auto}.app-shell{gap:var(--space-5);flex-direction:column;padding:28px 0 40px;display:flex}.topbar,.hero-panel,.online-panel,.panel-card,.board-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar,.hero-panel,.online-panel,.panel-card{padding:22px 24px}.topbar{justify-content:space-between;gap:var(--space-6);align-items:flex-start;display:flex}.topbar__title h1,.panel-header h2,.hero-panel h2,.online-panel h3,.dialog-header h2{color:var(--ink);margin:0;line-height:1.08}.topbar__title h1{letter-spacing:.04em;font-size:clamp(2.4rem,4vw,4rem)}.topbar__desc,.panel-note,.hero-panel p,.online-panel__status,.player-card p,.auth-text{color:var(--ink-soft)}.topbar__actions,.hero-panel__meta,.panel-actions,.online-panel__actions,.buy-panel__actions,.preset-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.topbar__actions{justify-content:flex-end}.eyebrow,.meta-chip__label{letter-spacing:.16em;text-transform:uppercase;color:#8f6d82;font-size:.78rem}.auth-bar,.meta-chip,.player-card,.card-editor,.preset-panel,.board-center__block,.inline-field,.board-tile{background:var(--surface-strong);box-shadow:var(--shadow-soft);border:1px solid #522d4a1a}.auth-bar,.meta-chip{border-radius:999px;padding:10px 14px}.auth-bar{align-items:center;gap:12px;max-width:360px;display:inline-flex}.auth-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-text--warn{color:#a83c4e}.back-link,.pill-btn,.primary-btn,.secondary-btn,.danger-btn,.icon-btn{cursor:pointer;border:none;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s}.pill-btn,.primary-btn,.secondary-btn,.danger-btn{border-radius:999px;padding:10px 16px}.back-link,.primary-btn{color:#fff8fb;background:linear-gradient(135deg,#8f47d8,#ff5a8f);box-shadow:0 10px 20px #8f47d83d}.back-link--secondary,.secondary-btn,.pill-btn,.icon-btn{color:var(--ink);background:#ffffffc7;border:1px solid #522d4a1f}.pill-btn--ghost,.danger-btn{color:#a33e4b;background:#fff2f4eb;border:1px solid #a33e4b2e}.icon-btn{border-radius:50%;place-items:center;width:36px;height:36px;padding:0;display:inline-grid}.primary-btn--wide{justify-content:center;width:100%}.back-link:hover,.pill-btn:hover,.primary-btn:hover,.secondary-btn:hover,.danger-btn:hover,.icon-btn:hover{filter:brightness(1.02);transform:translateY(-1px)}.hero-panel{justify-content:space-between;gap:var(--space-6);align-items:flex-end;display:flex}.hero-panel__intro{max-width:64ch}.hero-panel__meta{justify-content:flex-end}.meta-chip{flex-direction:column;gap:4px;max-width:360px;display:flex}.online-panel{gap:var(--space-4);flex-direction:column;display:flex}.online-panel__status{gap:var(--space-2);word-break:break-all;flex-direction:column;display:flex}.workspace-grid{gap:var(--space-5);grid-template-columns:minmax(0,2.1fr) minmax(320px,.9fr);display:grid}.board-panel{padding:20px}.board-scroll{overflow-x:auto}.board-grid{grid-template-rows:repeat(7,minmax(108px,auto));grid-template-columns:repeat(7,minmax(120px,1fr));gap:12px;min-width:920px;display:grid}.board-center{grid-area:2/2/7/7;grid-template-columns:1.3fr .8fr 1fr;gap:14px;display:grid}.board-center__block{border-radius:var(--radius-md);gap:var(--space-4);flex-direction:column;padding:18px;display:flex}.board-center__block--dice{justify-content:center}.board-tile{border-radius:18px;flex-direction:column;gap:10px;min-height:108px;padding:12px;display:flex}.board-tile__header{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.board-tile__label,.board-tile__num,.board-tile__icon{color:var(--ink)}.board-tile__num{font-size:.82rem}.board-tile__input,.card-editor__input,.card-editor__textarea,.rules-textarea,.inline-field input,.inline-field select{width:100%;color:var(--ink);background:#ffffffe6;border:1px solid #522d4a1f;border-radius:12px;padding:10px 12px}.board-tile__owner{font-size:.82rem}.board-tile__pawns{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.board-tile__pawn,.player-token{color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.9rem;display:inline-grid;box-shadow:0 8px 18px #49214029}.inline-field{border-radius:16px;align-items:center;gap:12px;padding:10px 12px;display:inline-flex}.inline-field--stacked{flex-direction:column;align-items:stretch}.player-list,.cards-grid{gap:12px;display:grid}.player-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.player-card{border-radius:18px;flex-direction:column;gap:12px;padding:12px;display:flex}.player-card--active{outline:2px solid #8f47d847}.player-card__identity{align-items:center;gap:12px;display:flex}.dice-shell{background:linear-gradient(135deg,#ffffffe6,#fff2f9f2);border:1px solid #522d4a14;border-radius:24px;place-items:center;gap:8px;min-height:120px;display:grid}.dice-shell strong{font-size:2.5rem}.dice-shell--rolling{animation:.75s linear infinite pulse}.dice-shell__emoji{font-size:1.8rem}.draw-actions{flex-wrap:wrap;gap:12px;display:flex}.turn-log{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow:auto}.turn-log p{color:var(--ink-soft);background:#fff7fbd1;border-radius:12px;margin:0;padding:10px 12px}.side-panel{gap:var(--space-5);align-content:start;display:grid}.panel-card{gap:var(--space-4);flex-direction:column;display:flex}.panel-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.rules-textarea{resize:vertical;min-height:220px}.rules-textarea--dialog{min-height:320px}.preset-panel{border-radius:20px;flex-direction:column;gap:12px;padding:16px;display:flex}.cards-grid{grid-template-columns:1fr}.card-column{flex-direction:column;gap:14px;display:flex}.card-column__header,.card-editor__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-column__title--chance{color:#b28400}.card-column__title--fate{color:#2c69d8}.card-column__list{gap:12px;display:grid}.card-editor{border-radius:18px;flex-direction:column;gap:10px;padding:14px;display:flex}.card-editor__textarea{resize:vertical;min-height:110px}.dialog-root{z-index:1000;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#2c162866;position:absolute;inset:0}.dialog-panel{background:#fffaf5f5;border:1px solid #522d4a1f;border-radius:28px;width:min(100%,720px);position:relative;overflow:hidden;box-shadow:0 30px 60px #2c16282e}.dialog-panel--narrow{max-width:520px}.dialog-panel--wide{max-width:860px}.dialog-header,.dialog-body{padding:18px 22px}.dialog-header{border-bottom:1px solid #522d4a14;justify-content:space-between;align-items:center;display:flex}.medal-card,.buy-panel{flex-direction:column;gap:18px;display:flex}.medal-card h3,.buy-panel p{margin:0}.medal-card--chance h3{color:#b28400}.medal-card--fate h3{color:#2c69d8}.toast{z-index:1200;color:#fff4f8;background:#371e31e6;border-radius:999px;padding:12px 18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 18px 36px #371e312e}.toast-fade-enter-active,.toast-fade-leave-active{transition:opacity .2s,transform .2s}.toast-fade-enter-from,.toast-fade-leave-to{opacity:0;transform:translate(-50%,10px)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@media (width<=1180px){.workspace-grid{grid-template-columns:1fr}}@media (width<=920px){#app{width:min(100vw,100vw - 16px)}.topbar,.hero-panel,.panel-header{flex-direction:column}.board-center{grid-template-columns:1fr}}
