:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292339;background:#f7f5ef;font-synthesis:none;--purple:#6746b6;--ink:#292339;--muted:#787382}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,.token:focus-visible{outline:3px solid #996bdf;outline-offset:5px}button{transition:transform .15s,background .15s}button:not(:disabled):active{transform:translateY(2px)}[hidden]{display:none!important}.shell{max-width:1060px;margin:auto;padding:30px 40px 20px}.brand{display:flex;align-items:center;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid #e7e2d9}.brand a{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-size:21px;font-weight:750;letter-spacing:-.7px}.brand-mark{display:grid;grid-template-columns:repeat(2,10px);gap:4px;transform:rotate(-10deg)}.brand-mark i{width:10px;height:10px;border-radius:4px;background:#d56c65}.brand-mark i:nth-child(2){background:#69a486}.brand-mark i:nth-child(3){background:#6e91c5}.brand-mark i:nth-child(4){background:#e1b757}.brand-sub{display:block;font-size:8px;letter-spacing:1.7px;margin-top:5px;font-weight:650;color:var(--muted)}.guest-badge{border:1px solid #ded8e9;border-radius:100px;padding:8px 13px;font-size:11px;color:#6d607f}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:750;color:var(--purple)}h1{font-size:clamp(34px,5vw,56px);line-height:1.1;letter-spacing:-2.1px;font-weight:650;margin:17px 0 18px}.intro{font-size:16px;color:var(--muted);line-height:1.7}.landing{text-align:center;padding:49px 0 20px}.landing h1{font-size:54px}.primary{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--purple);color:white;border:0;border-radius:14px;min-height:54px;padding:0 22px;font-weight:650;font-size:14px;box-shadow:0 5px 0 #57369f}.primary:not(:disabled):hover{background:#7552c6}.landing>.primary{width:290px;margin:18px auto 0}.small{font-size:12px;color:var(--muted);margin-top:20px}.hero-board{display:grid;grid-template-columns:1fr 1fr;gap:30px;border:9px solid white;outline:1px solid #dfd8e8;width:200px;height:200px;margin:35px auto 30px;transform:rotate(-8deg);border-radius:21px;position:relative;background:repeating-linear-gradient(0deg,#fff 0 9px,#ebe6f0 10px 11px);box-shadow:0 20px 35px #55406e16}.hero-home{display:grid;grid-template-columns:1fr 1fr;padding:9px;border:6px solid;border-radius:10px;background:#fff}.hero-home b{font-size:15px}.red{color:#d56c65;background:#f8e6df}.green{color:#69a486;background:#e0eee5}.blue{color:#6e91c5;background:#e4eaf7}.gold{color:#d8a541;background:#fcf1d6}.hero-die{position:absolute;left:61px;top:58px;background:var(--purple);color:white;width:60px;height:60px;line-height:58px;font-size:50px;border-radius:14px;box-shadow:0 7px 0 #523596;transform:rotate(18deg)}.home{padding:56px 0 32px}.home h1{margin-bottom:12px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}.mode-card{border:1px solid #e1d7f1;border-radius:24px;background:#eee7f8;text-align:left;padding:28px;color:var(--ink);position:relative;overflow:hidden;min-height:280px}.mode-card.party{background:#e8eee8;border-color:#d2e0d6}.mode-card:hover{box-shadow:0 8px 20px #57456a0d}.mode-card>span,.mode-card>strong{display:block}.mode-count{font-size:10px;font-weight:750;letter-spacing:1.7px;color:#786391;margin-top:24px}.party .mode-count{color:#60856c}.mode-card>strong{font-size:28px;font-weight:650;letter-spacing:-.8px;margin:10px 0}.mode-card>span:not([class]){font-size:13px;color:#7f728f}.mode-card.party>span:not([class]){color:#6a7e70}.mode-bottom{border-top:1px solid #d9cde8;margin-top:27px;padding-top:18px;font-size:13px;font-weight:700}.party .mode-bottom{border-color:#cddcd0}.mode-bottom b{float:right;font-size:22px;line-height:14px}.mode-art{display:flex!important;gap:9px;height:40px}.mode-art i{width:32px;height:32px;background:#9570c8;border:4px solid #f7f1ff;border-radius:100%;box-shadow:0 4px 0 #6f4a9e;transform:translateY(3px)}.mode-art i:nth-child(2){background:#d98e80;box-shadow:0 4px 0 #b6756a;transform:translateY(-4px)}.mode-art i:nth-child(3){background:#e2ba5c;box-shadow:0 4px 0 #b99749}.mode-art i:nth-child(4){background:#6c9f81;box-shadow:0 4px 0 #4d805f;transform:translateY(-4px)}.home-note{font-size:12px;color:var(--muted);text-align:center;margin-top:30px}.home-note span{margin-right:8px;color:#aa91c5}footer{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#a6a0ad;border-top:1px solid #e7e2d9;padding-top:20px;margin-top:32px}footer span{font-size:15px;color:#aa91c5}.loading,.finding,.result{text-align:center;padding:82px 0;min-height:550px}.loading h1,.finding h1,.result h1{font-size:40px;letter-spacing:-1.4px}.loading p,.finding p,.result>p{color:var(--muted);font-size:14px;line-height:1.6}.spinner{display:inline-block;width:22px;height:22px;border:2px solid #d8cae9;border-top-color:var(--purple);border-radius:100%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}progress{appearance:none;height:5px;border:0;width:180px;border-radius:5px;margin:18px auto;display:block;overflow:hidden}progress::-webkit-progress-bar{background:#e5dced}progress::-webkit-progress-value{background:var(--purple)}.secondary{min-height:42px;background:transparent;border:1px solid #d9cde7;color:var(--purple);padding:10px 20px;border-radius:12px;font-size:13px;font-weight:650}.finding>.secondary{margin-top:22px}.search-orbit{margin:0 auto 40px;position:relative;width:100px;height:100px;border:1px dashed #d1c1e6;border-radius:100%;animation:spin 15s linear infinite}.search-orbit span{position:absolute;left:35px;top:26px;font-size:34px;color:#a485c4}.search-orbit i{position:absolute;width:20px;height:20px;border:4px solid #fff;border-radius:100%;background:#d56c65;top:-10px;left:40px}.search-orbit i:nth-child(2){background:#69a486;left:88px;top:40px}.search-orbit i:nth-child(3){background:#6e91c5;left:40px;top:88px}.search-orbit i:nth-child(4){background:#e1b757;left:-10px;top:40px}.game{padding-top:27px}.game-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.game h1{font-size:30px;letter-spacing:-1px;margin:7px 0 0}.text-button{border:0;background:none;color:#8d8195;font-size:12px;padding:12px 0 12px 14px}.text-button span{margin-left:8px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;align-items:start}.board-wrap{background:#fff;border:1px solid #e4ddeb;border-radius:22px;padding:12px;box-shadow:0 12px 30px #3f2d5c08}.board-wrap svg{display:block;width:100%;height:auto;touch-action:manipulation}.token[data-legal=true]{cursor:pointer}.seats{display:grid;gap:8px}.seat{display:grid;grid-template-columns:31px 1fr auto;gap:10px;align-items:center;border:1px solid #e6dfee;background:#fffdfa;border-radius:12px;padding:10px;font-size:12px}.seat.active{border-color:var(--seat-color);background:#fff}.seat-avatar{width:29px;height:29px;background:var(--seat-color);border:5px solid #fff;border-radius:100%;box-shadow:0 0 0 1px #e9e3ee}.seat-name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-name small{font-size:9px;color:var(--muted);font-weight:500;margin-left:5px}.seat-score{font-size:10px;color:var(--muted)}.turn-card{padding:20px;background:#eee7f6;border:1px solid #e2d8ed;border-radius:20px;margin-top:17px}.turn-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.turn-heading strong{font-size:13px}.turn-heading>span{font-size:13px;font-variant-numeric:tabular-nums;color:var(--purple);font-weight:700;min-width:25px;text-align:right}.timer-track{height:4px;background:#ded2eb;border-radius:3px;margin-top:11px;overflow:hidden}.timer-track span{height:100%;display:block;background:#9572c3;transition:width .15s linear}.dice-row{display:flex;align-items:center;gap:15px;margin:20px 0}.die{width:58px;height:58px;flex-shrink:0;background:white;border-radius:13px;box-shadow:0 4px 0 #d8cae7;display:grid;place-items:center;font-size:43px;line-height:1;color:var(--purple)}.dice-row p{font-size:12px;line-height:1.6;color:#7f6f92;margin:0}.turn-card .primary{width:100%;min-height:47px;font-size:13px}.decisions{display:flex;gap:8px;margin-top:12px}.decisions:has(>[hidden]):not(:has(>button:not([hidden]))){display:none}.decisions .secondary{flex:1;padding:8px;font-size:11px}.board-note{text-align:center;font-size:10px;color:#9b90a6;line-height:1.8;margin:16px 0 0}.recovery,.uncertain,.notice{padding:13px 17px;border-radius:12px;background:#eee7f7;color:#6d538b;font-size:12px;margin:16px 0}.recovery{display:flex;align-items:center;gap:12px}.uncertain{display:flex;align-items:center;justify-content:space-between;gap:10px}.uncertain p{margin:0}.uncertain .secondary{font-size:11px;background:white}.result-icon{display:inline-block;width:83px;height:83px;line-height:83px;font-size:55px;background:#eee4f6;color:#ab87c9;border-radius:24px;transform:rotate(-10deg);margin-bottom:32px}.placements{max-width:380px;list-style:none;margin:28px auto;padding:0;text-align:left}.placements li{display:flex;align-items:center;gap:14px;padding:15px 5px;border-bottom:1px solid #e7e1ec;font-size:13px}.placements li b{background:#ece4f4;color:var(--purple);width:30px;height:30px;border-radius:9px;display:grid;place-items:center}.placements li span{flex:1}.placements li small{color:var(--muted)}.result>.primary,.loading>.primary{margin:25px auto;width:280px}
@media(min-width:1100px){.shell{padding-top:38px}.home{padding-top:65px}.home h1{font-size:58px}.mode-card{padding:30px}.game{padding-top:34px}}@media(max-width:680px){.shell{padding:22px 20px 20px}.brand{padding-bottom:21px}.brand a{font-size:19px}.brand-sub{font-size:7px;letter-spacing:1.3px}.guest-badge{font-size:9px;padding:6px 10px}.landing{padding-top:42px}.landing h1{font-size:40px;letter-spacing:-1.7px}.intro{font-size:14px}.hero-board{margin:28px auto}.home{padding-top:39px}.home h1{font-size:38px;letter-spacing:-1.7px}.mode-grid{gap:12px;margin-top:27px}.mode-card{padding:19px 16px;border-radius:19px;min-height:250px}.mode-card>strong{font-size:23px;line-height:1.1;margin:11px 0}.mode-count{font-size:8px;letter-spacing:1px}.mode-card>span:not([class]){font-size:11px;line-height:1.6;min-height:36px}.mode-bottom{font-size:11px;padding-top:15px;margin-top:15px}.mode-art{gap:4px}.mode-art i{width:25px;height:25px;border-width:3px}.party .mode-art i{width:21px;height:21px}.home-note{font-size:10px;line-height:1.8}.game-layout{display:flex;flex-direction:column;gap:15px}.game-side{display:contents}.board-wrap{width:100%;order:2;padding:8px;border-radius:18px}.seats{width:100%;grid-template-columns:1fr 1fr;gap:7px;order:1}.seat{padding:8px;gap:6px;grid-template-columns:23px minmax(0,1fr) auto;font-size:11px}.seat-avatar{width:22px;height:22px;border-width:4px}.seat-score{font-size:9px}.turn-card{order:3;width:100%;margin:0;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.turn-heading,.timer-track{grid-column:1/-1}.dice-row{margin:16px 0 0;grid-row:3/5}.die{width:47px;height:47px;font-size:37px}.dice-row p{font-size:11px}.turn-card .primary{margin-top:14px;align-self:center;font-size:12px;gap:10px}.decisions{gap:5px;margin-top:9px}.decisions .secondary{font-size:10px;min-height:34px}.board-note{order:4;width:100%;font-size:10px;margin:0}.board-note br{display:none}.game h1{font-size:28px}.game-top{margin-bottom:18px}.loading,.finding,.result{padding:65px 0;min-height:520px}.finding h1,.loading h1,.result h1{font-size:31px}.uncertain{align-items:flex-start}.uncertain p{line-height:1.6}.uncertain .secondary{min-width:115px}footer{margin-top:22px;font-size:7px;letter-spacing:1.4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.token-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.token-choices .secondary{padding:10px 5px;background:#fff;font-size:12px;min-height:42px}@media(max-width:680px){.token-choices{grid-column:2;gap:5px}.token-choices .secondary{font-size:11px;padding:9px 3px;min-height:40px}}

.loading:has(#progress[hidden]) > .spinner{display:none}
.die.rolling{animation:dice-roll .4s ease-in-out;will-change:transform}
@keyframes dice-roll{0%,100%{transform:rotate(0) translateY(0)}20%{transform:rotate(-20deg) translateY(-5px)}45%{transform:rotate(22deg) translateY(1px)}70%{transform:rotate(-14deg) translateY(-3px)}}

.network-demo{margin-top:28px;padding:16px 20px;border:1px solid var(--line,#e5dfeb);border-radius:16px;color:var(--muted,#797c91);font-size:13px}.network-demo summary{cursor:pointer;color:var(--ink,#252437);font-weight:700}.network-options{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.network-options label{display:grid;gap:6px;flex:1;min-width:130px}.network-options select{padding:10px;border:1px solid #d8c9e9;border-radius:10px;background:#fff;color:#29233b}.network-demo small{line-height:1.6}
.recovery:not([hidden]),.uncertain:not([hidden]){position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:20;width:min(calc(100% - 32px),650px);margin:0;box-shadow:0 12px 40px #34214d24;border:1px solid #d5c5e8}
