:root{--bg: #f4f1ea;--surface: #ffffff;--ink: #1d2433;--muted: #5b6373;--line: #d9d3c6;--accent: #6b4fbb;--accent-ink: #ffffff;--danger: #b3261e;--focus: #0a6cff;--white-tok: #fbfbf7;--blue-tok: #3b6fd8;--green-tok: #2e9d5b;--red-tok: #d64545;--black-tok: #2b2b33;--gold-tok: #e0b030}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #161a23;--surface: #1f2533;--ink: #eef0f5;--muted: #a3abbb;--line: #36405a;--accent: #a48cf0;--accent-ink: #14121f;--danger: #ff8a80;--focus: #7fb2ff}}:root[data-theme=dark]{--bg: #161a23;--surface: #1f2533;--ink: #eef0f5;--muted: #a3abbb;--line: #36405a;--accent: #a48cf0;--accent-ink: #14121f;--danger: #ff8a80;--focus: #7fb2ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.35}button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;min-height:40px}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}button[aria-pressed=true]{outline:2px solid var(--accent)}h1,h2{margin:0;font-size:1.1rem}.app{padding:16px;max-width:1280px;margin:0 auto}.app-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}.app-head h1{font-size:1.3rem;margin-right:auto}.turn-indicator{color:var(--muted)}.layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);grid-template-areas:"actions" "board" "pyramid" "scores"}.layout>*{min-width:0}.actions{grid-area:actions}.board-area{grid-area:board}.pyramid-area{grid-area:pyramid}.players{grid-area:scores}@media(max-width:1099px){.layout{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"actions actions actions" "scores board board" "pyramid pyramid pyramid";align-items:start}}@media(min-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"actions actions" "board scores" "pyramid scores";align-items:start}}.board-area,.pyramid-area,.actions,.players{display:grid;gap:16px}.board{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%;max-width:500px;aspect-ratio:1;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.cell{display:grid;place-items:center;padding:0;min-height:0;border-radius:50%;background:color-mix(in srgb,var(--line) 35%,transparent);border:2px solid transparent}.cell-center{background:color-mix(in srgb,var(--accent) 12%,transparent)}.cell-takeable{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.cell-selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.cell-target{border-color:var(--focus);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--focus) 35%,transparent)}}.token{display:inline-block;line-height:0;flex:none}.token svg{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 2px 2px rgb(0 0 0 / .28))}.token-md{width:44px;height:44px}.token-sm{width:22px;height:22px}.pyramid{display:grid;gap:10px;flex:1 1 auto;min-width:0;max-width:720px}.pyramid-row{position:relative;display:flex;justify-content:center;padding:0 0 0 64px}.pyramid-cards{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.card-button{padding:0;border:none;background:none;min-height:0;width:auto}.deck{position:absolute;left:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:56px;height:96px;min-height:0;border-style:dashed}.deck-level{font-weight:700}.deck-count{color:var(--muted);font-size:.85rem}.card{width:104px;height:156px;overflow:hidden;padding:6px 7px;border-radius:10px;background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--line);text-align:left;font-size:.72rem;display:flex;flex-direction:column;gap:4px}.card-compact{width:84px;height:132px;padding:4px 6px}.card-empty{border-style:dashed;background:transparent}.card-white{border-top-color:#c7c2b5}.card-blue{border-top-color:var(--blue-tok)}.card-green{border-top-color:var(--green-tok)}.card-red{border-top-color:var(--red-tok)}.card-black{border-top-color:var(--black-tok)}.card-wild{border-top:6px solid transparent;background-image:linear-gradient(var(--surface),var(--surface)),linear-gradient(90deg,var(--blue-tok),var(--green-tok),var(--red-tok),var(--gold-tok));background-origin:border-box;background-clip:padding-box,border-box}.card-points{border-top-color:var(--accent)}.card-selected{outline:3px solid var(--accent)}.card-affordable{box-shadow:0 0 0 2px #fff}.card-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:26px;font-weight:600}.crown-slot{justify-self:center;display:inline-flex;align-items:center}.card-scores{justify-self:end}.bonus-icons{display:flex;align-items:center;min-height:22px}.bonus-dot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;flex:none;box-shadow:0 0 0 1.5px var(--surface),0 1px 2px #0000004d}.bonus-dot+.bonus-dot{margin-left:-8px}.bonus-dot svg{width:74%;height:74%;display:block}.bonus-white{background:#f5f5ef}.bonus-blue{background:var(--blue-tok)}.bonus-green{background:var(--green-tok)}.bonus-red{background:var(--red-tok)}.bonus-black{background:var(--black-tok);box-shadow:0 0 0 1.5px #9aa0b4,0 1px 2px #0000004d}.bonus-wild{background:radial-gradient(circle at 35% 30%,#3d4256,#14161e);box-shadow:0 0 0 1.5px #c9b6ff,0 1px 2px #0000004d}.card-scores{display:flex;gap:4px;align-items:baseline}.card-points-num{white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:1.9rem;font-weight:700;line-height:1;color:var(--ink);text-shadow:0 1px 0 rgb(255 255 255 / .35),0 0 6px color-mix(in srgb,var(--accent) 35%,transparent);align-self:flex-start}.card-compact .card-points-num{font-size:1.2rem}.card-crowns{color:var(--accent);display:inline-flex;align-items:center;gap:2px}.card-ability{color:var(--muted)}.card-abilities{display:flex;gap:4px;align-items:center;min-height:22px}.ability-icon{width:22px;height:22px;display:block;flex:none}.ability-icon svg,.crown-icon svg{width:100%;height:100%;display:block}.crown-icon{width:15px;height:15px;display:inline-block;vertical-align:middle}.card-compact .ability-icon{width:16px;height:16px}.card-cost{display:flex;flex-wrap:wrap;gap:3px 6px;margin-top:auto}.cost-chip{display:inline-flex;align-items:center;gap:2px;font-weight:600}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:10px}.panel-current{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}.panel-head{display:flex;align-items:center;gap:8px}.badge{white-space:nowrap;font-size:.75rem;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.badge-win{background:color-mix(in srgb,var(--green-tok) 22%,transparent);color:var(--green-tok)}.stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--ink);font-size:.95rem;font-weight:600}.stat{display:inline-flex;align-items:center;gap:4px}.stat-symbol{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center}.stat-symbol svg{width:100%;height:100%;display:block}.stat-star{color:var(--accent);font-size:15px}.tokens{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.token-count{display:flex;align-items:center;gap:8px;min-width:0}.columns{display:grid;gap:8px}.column-title{font-size:.8rem;color:var(--muted);text-transform:capitalize}.column-cards{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.column-cards .card-button{margin-right:-10px}.column-cards .card-button:last-child{margin-right:0}.column-cards .card-button>.card{box-shadow:0 1px 2px #00000014}.royals,.reserved{display:grid;gap:4px}.royal-chip{font-size:.8rem;padding:3px 8px;border:1px solid var(--line);border-radius:8px}.controls{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:10px}.prompt{margin:0;font-weight:600}.row{display:flex;gap:8px;flex-wrap:wrap}.source-actions{display:grid;gap:8px}.hint{margin:0;color:var(--muted)}.error{margin:0;color:var(--danger);font-weight:600}.log{list-style:none;margin:0;padding:0;display:grid;gap:2px;color:var(--muted);font-size:.85rem}.gameover h2{font-size:1.4rem}@media(max-width:420px){.card{width:92px}.token-md{width:38px;height:38px}}.board-area>.board{margin:0 auto}.pwa-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:-4px 0 12px;empty-cells:hide}.pwa-bar:empty{display:none}.pwa-update{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,transparent)}.name-input{font:inherit;font-size:1.1rem;font-weight:700;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:6px;padding:2px 4px;min-height:0;width:100%;max-width:180px}.name-input:hover{border-color:var(--line)}.name-input:focus{background:var(--bg);border-color:var(--focus);outline:none}@media(max-width:1099px){.layout{align-items:stretch}.actions{align-self:start}.board-area{position:relative}.board-area>.board{position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:auto;height:100%;max-width:none;aspect-ratio:1}}.actions .controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px}.actions .prompt{flex-basis:100%;font-size:.9rem}.actions .row{display:contents}.actions .row>button,.actions .source-actions{flex:1 1 auto;min-height:40px}.actions .row>button{min-width:0}@media(max-width:1099px){.actions .log{display:none}}.gem-flash{display:inline-block;line-height:0;border-radius:50%;animation:gem-flash .6s ease-out}@keyframes gem-flash{0%{filter:none}20%,60%{filter:sepia(1) saturate(9) hue-rotate(-45deg) brightness(1.1) drop-shadow(0 0 6px #ff3b3b)}to{filter:none}}.actions{position:sticky;top:0;z-index:20;background:var(--bg);padding:6px 0;box-shadow:0 6px 12px -8px #00000080}@media(orientation:portrait)and (max-width:1099px){body{overflow:hidden}.app{position:fixed;top:0;left:0;width:100vh;height:100vw;max-width:none;margin:0;box-sizing:border-box;overflow-y:auto;background:var(--bg);transform-origin:top left;transform:translate(100vw) rotate(90deg)}}.help-button{width:36px;min-height:36px;padding:0;border-radius:50%;font-weight:700}.help-overlay{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:16px;background:#0000008c}.help-panel{width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:16px 20px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px #0006}.help-head{display:flex;align-items:center;justify-content:space-between}.help-panel h3{margin:14px 0 6px;font-size:1rem}.help-list{margin:0;padding-left:20px;display:grid;gap:4px}.help-icons{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center;margin:0}.help-icons dt,.help-icons dd{margin:0}.help-icon{display:inline-block;width:32px;height:32px}.help-icon svg{width:100%;height:100%;display:block}.help-wild{border-radius:50%;background:radial-gradient(circle at 35% 30%,#3d4256,#14161e);box-shadow:0 0 0 1.5px #c9b6ff}.royal-area{display:grid;gap:6px;justify-items:center;align-content:center;flex:none}.royal-title{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.royal-row{display:flex;flex-direction:column;align-items:center;gap:8px}.royal-card{width:84px;height:104px;padding:6px;border-radius:10px;background:linear-gradient(180deg,#fff3c4,#e8b530 45%,#b07a12);border:1px solid #6b4505;color:#3b2a05;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-shadow:0 2px 6px #0000004d}.royal-compact{width:64px;height:80px;padding:4px}.royal-crown{width:20px;height:20px}.royal-crown svg{width:100%;height:100%;display:block}.royal-points{font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:700;line-height:1}.royal-compact .royal-points{font-size:1.2rem}.royal-ability{width:22px;height:22px;display:block}.royal-ability .ability-icon{width:22px;height:22px}.royal-none{font-weight:700}.royals{display:flex;flex-wrap:wrap;gap:6px}.pyramid-area{display:flex;align-items:center;gap:12px}.reserve-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.reserve-confirm span{flex-basis:100%;font-weight:600}.reserve-confirm button{flex:1 1 auto}.reserved .column-cards{gap:6px}.reserved .column-cards .card-button{margin-right:0}@media(max-width:1099px){.board-area{container-type:size}.board-area>.board{left:50%;top:50%;transform:translate(-50%,-50%);width:min(100cqh,calc(100cqw - 16px));height:min(100cqh,calc(100cqw - 16px))}}.reserved .column-cards{flex-wrap:nowrap;gap:6px}.reserved .card-button{flex:0 0 auto}.reserved .card-compact{width:56px;height:84px;font-size:.6rem;padding:3px 4px}.reserved .card-compact .card-head{min-height:18px}.reserved .column-cards .card-button{flex:1 1 0;min-width:0}.reserved .card-compact{width:100%;height:108px;font-size:.66rem}.pyramid-area{justify-content:center}.pyramid{flex:0 1 auto}.panel{height:210px;display:flex;flex-direction:column;gap:8px;position:relative}.panel>.columns{flex:1 1 auto;min-height:0;overflow-y:auto;align-content:start}.panel>.reserved,.panel>.royals{flex:none}.reserved-row{display:flex;gap:6px}.reserve-chip{position:relative;flex:none;width:34px;height:46px;padding:0;min-height:0;border-radius:6px;border:2px solid var(--line)}.reserve-chip.reserve-white{background:#f5f5ef}.reserve-chip.reserve-blue{background:var(--blue-tok)}.reserve-chip.reserve-green{background:var(--green-tok)}.reserve-chip.reserve-red{background:var(--red-tok)}.reserve-chip.reserve-black{background:#15151b}.reserve-chip.reserve-points{background:#8a8fa0}.reserve-chip.reserve-wild{background:conic-gradient(var(--blue-tok),var(--green-tok),var(--red-tok),var(--gold-tok),var(--blue-tok))}.reserve-chip.reserve-selected{outline:3px solid var(--accent)}.reserve-pop{visibility:hidden;opacity:0;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);z-index:60;pointer-events:none}.reserve-chip:hover .reserve-pop,.reserve-chip:focus-visible .reserve-pop{visibility:visible;opacity:1}.panel{height:auto}.panel>.columns{flex:none;max-height:120px}.reserved{min-height:68px}.reserved-row{min-height:46px}.reserve-pop{z-index:1000}.reserve-chip:disabled{opacity:1;cursor:default}.summary{position:relative;outline:none;display:grid;gap:8px}.owned-pop{visibility:hidden;opacity:0;pointer-events:none;display:flex;position:absolute;top:0;left:calc(100% + 10px);z-index:1000;padding:10px;gap:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 30px #0006}.summary:hover .owned-pop,.summary:focus-within .owned-pop{visibility:visible;opacity:1;pointer-events:auto}.owned-col{display:grid;gap:6px;width:92px;align-content:start}.owned-stack{display:flex;flex-direction:column}.stack-card{height:60px;overflow:hidden;position:relative}.stack-card+.stack-card{margin-top:-30px}.owned-totals{display:grid;gap:2px;font-size:.7rem;font-weight:700;text-align:center}.token-bonus{color:var(--green-tok);font-size:.75rem;font-weight:700}
