:root{color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:#1f2430;color:#f2f4f8;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}#app{min-height:100%;display:flex;flex-direction:column}.screen{flex:1;display:flex;flex-direction:column}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:10px;padding:.7rem 1.1rem;font-size:1rem;font-weight:600;color:#f2f4f8;background:#4f8cff;cursor:pointer;transition:filter .15s ease,opacity .15s ease}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:not-allowed}.setup{max-width:480px;width:100%;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:flex;flex-direction:column;gap:1rem}.setup__title{margin:.5rem 0 0;font-size:2.4rem;letter-spacing:.02em}.setup__subtitle{margin:0;color:#a7b0c0}.setup__section-title{font-size:1.05rem;margin:.5rem 0;color:#a7b0c0;text-transform:uppercase;letter-spacing:.06em}.setup__slots,.setup__options,.setup__import{background:#2a3040;border-radius:14px;padding:1rem}.setup__resume{background:#2fa84f}.setup__start{background:#2fa84f;font-size:1.15rem;padding:.9rem}.setup__error{color:#ff8b8b;min-height:1.2em;margin:0}.setup__import-field{width:100%;min-height:72px;resize:vertical;border-radius:10px;border:1px solid #3a4256;background:#1b2030;color:#f2f4f8;padding:.6rem;font-family:inherit;margin-bottom:.75rem}.slot{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .75rem;padding:.4rem 0}.slot__swatch{width:20px;height:20px;border-radius:50%;flex:0 0 auto}.slot__swatch[data-color=red]{background:#e23b3b}.slot__swatch[data-color=blue]{background:#2f6fed}.slot__swatch[data-color=green]{background:#2fa84f}.slot__swatch[data-color=yellow]{background:#e8b62c}.slot__name{flex:1;font-weight:600}.slot__role,.slot__difficulty{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1b2030;color:#f2f4f8;border:1px solid #3a4256;border-radius:8px;padding:.5rem .75rem;font-size:.95rem}.slot__difficulty{color:#a7b0c0}.toggle{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;cursor:pointer}.toggle input{width:18px;height:18px;accent-color:#4f8cff}.game{gap:.5rem}.hud{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem 1rem;background:#2a3040}.hud__turn{font-size:1.15rem;font-weight:700}.hud__turn[data-color=red]{color:#e23b3b}.hud__turn[data-color=blue]{color:#2f6fed}.hud__turn[data-color=green]{color:#2fa84f}.hud__turn[data-color=yellow]{color:#e8b62c}.hud__message{flex:1 1 100%;color:#a7b0c0;min-height:1.2em}.hud__controls{display:flex;gap:.5rem;margin-left:auto}.hud__roll{background:#2fa84f}.hud__log,.hud__export,.hud__newgame{background:#3a4256}.board-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:.75rem;min-height:0}.board-canvas{width:min(92vw,92vh,720px);height:min(92vw,92vh,720px);touch-action:none;border-radius:16px;box-shadow:0 8px 30px #00000059}@media (min-width: 900px){.hud{padding:1rem 1.5rem}}.turnlog{position:fixed;top:0;right:0;z-index:20;height:100%;width:min(360px,92vw);display:flex;flex-direction:column;background:#2a3040;box-shadow:-8px 0 30px #0006;transform:translate(100%);transition:transform .25s ease}.turnlog--open{transform:translate(0)}.turnlog__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #3a4256}.turnlog__title{margin:0;font-size:1.25rem}.turnlog__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#f2f4f8;font-size:1.75rem;line-height:1;padding:0 .25rem;cursor:pointer}.turnlog__close:hover{color:#4f8cff}.turnlog__list{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.turnlog__entry{margin:0;line-height:1.4}.turnlog__label[data-color=red]{color:#e23b3b}.turnlog__label[data-color=blue]{color:#2f6fed}.turnlog__label[data-color=green]{color:#2fa84f}.turnlog__label[data-color=yellow]{color:#e8b62c}.turnlog__empty{margin:0;color:#a7b0c0}@media (min-width: 1100px){.screen.game.log-open .board-wrap{margin-right:min(360px,92vw)}}.win-popover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:none;align-items:center;justify-content:center;background:#0f121aa6;padding:1.5rem}.win-popover--open{display:flex}.win-popover__card{position:relative;background:#2a3040;border-radius:16px;padding:2rem 1.75rem;max-width:min(420px,100%);width:100%;text-align:center;box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;gap:1.5rem}.win-popover__dismiss{position:absolute;top:.5rem;right:.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#a7b0c0;font-size:1.75rem;line-height:1;padding:0 .25rem;cursor:pointer}.win-popover__dismiss:hover{color:#f2f4f8}.win-popover__title{margin:0;font-size:1.75rem;font-weight:700}.win-popover__title[data-color=red]{color:#e23b3b}.win-popover__title[data-color=blue]{color:#2f6fed}.win-popover__title[data-color=green]{color:#2fa84f}.win-popover__title[data-color=yellow]{color:#e8b62c}.win-popover__actions{display:flex;flex-direction:column;gap:.75rem}.win-popover__continue{background:#4f8cff}.win-popover__newgame{background:#2fa84f}.capture-popover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:none;align-items:center;justify-content:center;background:#0f121aa6;padding:1.5rem}.capture-popover--open{display:flex}.capture-popover__card{background:#2a3040;border-radius:16px;padding:2rem 1.75rem;max-width:min(420px,100%);width:100%;text-align:center;box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;gap:1.5rem}.capture-popover__title{margin:0;font-size:1.5rem;font-weight:700}.capture-popover__title[data-color=red]{color:#e23b3b}.capture-popover__title[data-color=blue]{color:#2f6fed}.capture-popover__title[data-color=green]{color:#2fa84f}.capture-popover__title[data-color=yellow]{color:#e8b62c}.capture-popover__next{background:#4f8cff}.setup__speed{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem 0}.hud__speed{min-width:8.5rem}.setup__debug-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#3a4256;font-size:.75rem;align-self:flex-end;margin-top:.5rem;padding:.25rem .4rem;cursor:pointer}.setup__debug-link:hover{color:#a7b0c0}.debug__back{background:#3a4256;align-self:flex-start}.debug__field{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem 0}.debug__field input{width:120px;background:#1b2030;color:#f2f4f8;border:1px solid #3a4256;border-radius:8px;padding:.4rem .6rem}.debug__run{background:#4f8cff}.debug__results{display:flex;flex-direction:column;gap:.5rem}.debug__table{width:100%;border-collapse:collapse;background:#2a3040;border-radius:10px;overflow:hidden}.debug__table th,.debug__table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #3a4256;font-size:.9rem}.debug__table th{color:#a7b0c0;font-weight:600}.debug__table td[data-color=red]{color:#e23b3b}.debug__table td[data-color=blue]{color:#2f6fed}.debug__table td[data-color=green]{color:#2fa84f}.debug__table td[data-color=yellow]{color:#e8b62c}.debug__caption{margin:0;color:#a7b0c0;font-size:.85rem}.online__code{font-size:2.2rem;font-weight:700;letter-spacing:.35em;text-indent:.35em;text-align:center;background:#2a3040;border-radius:14px;padding:.75rem}.online__row{display:flex;gap:.5rem;align-items:center}.online__field{flex:1;width:100%;min-width:0;border-radius:10px;border:1px solid #3a4256;background:#1b2030;color:#f2f4f8;padding:.65rem .75rem;font:inherit}.online__code-input{text-transform:uppercase;letter-spacing:.25em;font-weight:700}.online__players{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.online__player{background:#1b2030;border-radius:999px;padding:.35rem .8rem;font-size:.95rem}.online__player:before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:#2fa84f;margin-right:.5em}.online__player[data-away=true]{opacity:.55}.online__player[data-away=true]:before{background:#a7b0c0}.online__status{color:#a7b0c0;margin:0;text-align:center}.online__leave,.online__copy,.online__join{background:#555c6e}.online__join{background:#2fa84f}.setup__online{background:#7c5cff}.slot__occupant{color:#a7b0c0;font-size:.9rem;margin-left:auto}.slot__sit{padding:.4rem .7rem;font-size:.85rem;margin-left:auto}
