:root{--bg:#f6f0fa;--text:#4b3a5c;--muted:#8b7c9d;--accent:#8467c6;--accent-dark:#6a4fae;--accent-soft:#efe6fb;--accent-line:#c9b5e6;--pink:#f5c2d2;--pink-soft:#ffe6ee;--pink-ink:#b4466f;--butter:#f7e2a0;--butter-soft:#fff4d6;--gold:#d9b444;--gold-ink:#94700f;--card:#fff;--card-solid:#fff;--row:#faf6fd;--line:#ece4f5;--shadow:0 8px 22px #785aa024;--shadow-sm:0 3px 10px #785aa01a;--danger:#d64561;--success:#3a9d62;--radius:24px;--garland-h:22px;--star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 24'%3E%3Cpath transform='translate(26 0)' d='M12 1.5l3 6.8 7.4.7-5.6 4.9 1.7 7.3L12 17.4l-6.5 3.8 1.7-7.3L1.6 9l7.4-.7z' fill='%23d9b444' stroke='%23b8922c' stroke-width='.8'/%3E%3C/svg%3E");--sprinkle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Cg fill='%23d9b444' fill-opacity='.4'%3E%3Cpath transform='translate(8 10) scale(.45)' d='M12 1.5l3 6.8 7.4.7-5.6 4.9 1.7 7.3L12 17.4l-6.5 3.8 1.7-7.3L1.6 9l7.4-.7z'/%3E%3Cpath transform='translate(60 58) scale(.32)' d='M12 1.5l3 6.8 7.4.7-5.6 4.9 1.7 7.3L12 17.4l-6.5 3.8 1.7-7.3L1.6 9l7.4-.7z'/%3E%3C/g%3E%3C/svg%3E");color:var(--text);-webkit-text-size-adjust:100%;font-family:"Baloo 2",system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--sprinkle) 0 0 / 90px 90px, linear-gradient(180deg, #f3ecfb, #fcf6f0 70%);background-color:var(--bg);min-height:100%}html,body,#root{min-height:100%}body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0}h1,h2,h3{margin:0 0 .35em;font-weight:800;line-height:1.15}h1{color:var(--accent);font-size:clamp(1.5rem,5vw,2.1rem)}h2{font-size:1.2rem}p{margin:.25em 0 .75em;line-height:1.4}a{color:var(--accent-dark)}.muted{color:var(--muted)}.error{color:var(--danger);text-align:center;font-weight:700}.ph{vertical-align:-.14em;flex:none}h1 .ph,h2>.ph{color:var(--gold)}.art{vertical-align:-.15em;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:1em;height:1em;display:inline-block}.garland{height:var(--garland-h);margin-top:env(safe-area-inset-top);background:var(--star) 6px 3px / 43px 16px repeat-x, linear-gradient(180deg, #fff9, #fff0 38%, #0000 62%, #5a32502e), repeating-linear-gradient(90deg, #5a325029 0 1px, transparent 1px 14px), repeating-linear-gradient(90deg, #c9b5e6 0 14px, #f5c2d2 14px 28px, #f7e2a0 28px 42px, #fcf4e8 42px 56px, #e8a6c1 56px 70px, #c9b5e6 70px 84px, #f7e2a0 84px 98px, #f5c2d2 98px 112px);z-index:5;position:relative;box-shadow:0 3px 8px #5a32502e}.page{max-width:560px;padding:16px 14px max(24px, env(safe-area-inset-bottom));margin:0 auto}.page.center{min-height:calc(100dvh - var(--garland-h) - env(safe-area-inset-top));place-items:center;display:grid}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:none;padding:16px}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.tight{gap:6px}.stack{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.stack label{flex-direction:column;gap:4px;font-weight:700;display:flex}.icon-tile{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-dark);border-radius:18px;flex:none;place-items:center;font-size:1.9rem;display:grid}.icon-tile.butter{background:var(--butter);color:var(--gold-ink)}.icon-tile.pink{background:var(--pink);color:var(--pink-ink)}.icon-tile .ph{vertical-align:0}.status-dot{background:var(--danger);border-radius:50%;flex:none;width:.6em;height:.6em;display:inline-block}.status-dot.on{background:var(--success);animation:1.8s ease-out infinite live-pulse;box-shadow:0 0 #3a9d6280}@keyframes live-pulse{0%{box-shadow:0 0 #3a9d6280}to{box-shadow:0 0 0 8px #3a9d6200}}.btn{appearance:none;font:inherit;cursor:pointer;color:var(--text);box-shadow:var(--shadow-sm);background:#fff;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:10px 18px;font-size:1rem;font-weight:800;line-height:1.2;text-decoration:none;transition:transform 80ms,background .15s,box-shadow .15s;display:inline-flex}.btn .ph{vertical-align:0;font-size:1.2em}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 8px 18px #8467c659}.btn.ghost{border-color:var(--accent-line);color:var(--accent-dark);box-shadow:none;background:#ffffffb3}.btn.danger{background:var(--danger);color:#fff;box-shadow:0 6px 14px #d6456140}.btn.small{padding:6px 12px;font-size:.88rem}.btn.big{flex:1;padding:14px 22px;font-size:1.15rem}.name-input{font:inherit;color:var(--text);background:#fff;border:2px solid #e8def5;border-radius:18px;width:100%;min-width:0;padding:11px 14px;font-size:1.05rem;font-weight:600}.name-input::placeholder{color:#b3a7c2}.name-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.banner{background:var(--pink-soft);border:2px solid var(--pink);color:var(--pink-ink);text-align:center;border-radius:16px;margin-bottom:12px;padding:8px 12px;font-weight:700}.toast{background:var(--text);color:#fff;z-index:50;border-radius:999px;max-width:90vw;padding:10px 20px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #4b3a5c59}.draw-header{text-align:center;margin-bottom:10px}.draw-header p{color:var(--muted);margin:0 0 6px;font-weight:600}.draw-header p strong{color:var(--text)}.canvas-wrap{border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:radial-gradient(circle,#ece3f6 1.5px,#0000 2px) 0 0/14px 14px,#fdfbff;line-height:0;overflow:hidden}.crown-canvas{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;display:block}.toolbar{flex-direction:column;gap:10px;margin-top:12px;display:flex}.tool-row{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.tool{appearance:none;color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;border:2px solid #0000;border-radius:16px;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 5px;display:flex}.tool.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-dark)}.tool:disabled{opacity:.35}.tool-icon{font-size:1.5rem;line-height:1;display:grid}.tool-icon .ph{vertical-align:0}.tool-label{font-size:.72rem;font-weight:700}.swatch-row{grid-template-columns:repeat(6,1fr);gap:9px;display:grid}.swatch{aspect-ratio:1;cursor:pointer;border:3px solid #fff;border-radius:50%;width:100%;padding:0;box-shadow:0 3px 8px #785aa033}.swatch.active{box-shadow:0 0 0 3px var(--bg), 0 0 0 6px var(--accent);transform:scale(1.06)}.stamp{appearance:none;cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;border:2px solid #0000;border-radius:16px;padding:4px 0;font-size:1.7rem;line-height:1.3}.stamp.active{border-color:var(--accent-line);background:var(--accent-soft)}.stamp .art{filter:drop-shadow(0 2px 2px #4b3a5c26);margin:0 auto;display:block}.size-row{justify-content:center;gap:10px;display:flex}.size{appearance:none;cursor:pointer;width:52px;height:44px;box-shadow:var(--shadow-sm);background:#fff;border:2px solid #0000;border-radius:14px;place-items:center;display:grid}.size.active{border-color:var(--accent-line);background:var(--accent-soft)}.dot{border:1px solid #4b3a5c33;border-radius:50%;display:block}.dot-S{width:8px;height:8px}.dot-M{width:16px;height:16px}.dot-L{width:26px;height:26px}.submit-row{gap:8px;margin-top:16px;display:flex}.submit-row .name-input{flex:1}.submit-row .btn{white-space:nowrap;flex:none}.done-card{text-align:center}.done-crown{filter:drop-shadow(0 12px 20px #785aa040);width:min(80vw,360px);margin:8px auto 12px;display:block}.done-card .row{flex-wrap:wrap;justify-content:center}.crown-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:16px;display:grid}.crown-grid.small{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.crown-grid.admin{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.crown-card{text-align:center;box-shadow:var(--shadow);background:#fff;border:3px solid #0000;border-radius:20px;flex-direction:column;gap:6px;margin:0;padding:10px;display:flex;position:relative}.crown-card img{aspect-ratio:5/4;object-fit:contain;width:100%;display:block}.crown-card figcaption{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.crown-card.winner{border-color:var(--gold);box-shadow:0 0 0 4px #d9b44440, var(--shadow)}.crown-card.previewing{border-color:var(--pink)}.crown-card.dim{opacity:.55}.crown-card .row{flex-wrap:wrap;justify-content:center}.badge{background:var(--butter);color:var(--gold-ink);white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.78rem;font-weight:800;display:inline-flex;position:absolute;top:-12px;left:50%;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.pop{animation:.4s cubic-bezier(.2,1.4,.4,1) both pop}.portrait{background:var(--accent-soft);width:100%;box-shadow:0 0 0 3px var(--gold), 0 18px 40px #785aa040;border:5px solid #fff;border-radius:22px;margin:0 auto;position:relative;overflow:hidden}.portrait-photo{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.portrait-empty{text-align:center;color:var(--muted);place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.portrait-empty .ph{color:var(--accent-line);font-size:3rem}.portrait-crown{pointer-events:none;filter:drop-shadow(0 6px 10px #0000004d);transform-origin:50%;position:absolute}.portrait.editable .portrait-crown{pointer-events:auto;cursor:grab;touch-action:none}.portrait.editable .portrait-crown:active{cursor:grabbing}.slider{align-items:center;gap:10px;margin-top:6px;font-weight:700;display:flex}.slider input{accent-color:var(--accent);flex:1}.royal-page{max-width:1400px}.royal-title{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35em;margin:10px 0 18px;font-size:clamp(1.8rem,5vw,3.4rem);display:flex}.royal-title .ph,.pick-title .ph{color:var(--gold);vertical-align:0}.royal-stage{display:block}.royal-credit{text-align:center;margin-top:18px;font-size:clamp(1rem,2.5vw,1.5rem)}.court-strip{margin-top:28px}.court-strip h2{text-align:center;color:var(--muted);margin-bottom:12px;font-weight:700}.royal-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.royal-header h1{font-size:clamp(1.6rem,4vw,2.8rem)}.royal-header p{font-size:clamp(1rem,2vw,1.4rem)}.qr-box{text-align:center;color:var(--text);box-shadow:var(--shadow);background:#fff;border-radius:22px;flex-direction:column;align-items:center;gap:6px;padding:12px;font-weight:800;display:flex}.qr-box img{width:clamp(120px,16vw,220px);height:auto;display:block}.admin-page{max-width:1200px}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.admin-header h1 .ph,.host-header h1 .ph,.pin-card h1 .ph,.print-page h1 .ph{color:var(--gold)}.admin-grid{grid-template-columns:minmax(280px,1.1fr) minmax(280px,1.6fr);align-items:start;gap:16px;display:grid}.settings-card{grid-column:1/-1}@media (width<=760px){.admin-grid{grid-template-columns:1fr}}.portrait-card .portrait{margin-bottom:14px}.pin-card{text-align:center;flex-direction:column;gap:12px;width:min(92vw,380px);display:flex}.qr-card{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:14px;display:flex}.qr-card img{background:#fff;border-radius:12px;width:200px}.hidden-crowns{margin-top:14px}.hidden-crowns summary{cursor:pointer;color:var(--muted);margin-bottom:10px;font-weight:700}.danger-zone{border-top:2px dashed var(--line);padding-top:14px}.btn label,label.btn{position:relative}.home-title .ph{color:var(--gold)}.game-list{flex-direction:column;gap:14px;margin-top:14px;display:flex}.game-card{color:var(--text);align-items:center;gap:14px;text-decoration:none;transition:transform .1s;display:flex}.game-card:active{transform:scale(.98)}.game-card strong{color:var(--text);font-size:1.3rem;line-height:1.2;display:block}.game-card .muted{line-height:1.3;display:block}.game-card .chev{color:var(--accent-line);margin-left:auto;font-size:1.4rem}.host-links{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:30px;font-size:.88rem;font-weight:700;display:flex}@media print{.garland{display:none}}
