:root{--bg:#2b0a4a;--bg-2:#3d1466;--card:#ffffff14;--card-solid:#43176f;--gold:#f5c04a;--gold-dark:#8a5a00;--text:#fff7e6;--muted:#fff7e6b3;--pink:#ff5dab;--danger:#e63946;--radius:18px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Fredoka,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 50% -10%, var(--bg-2), var(--bg) 70%) fixed;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0}h1,h2,h3{margin:0 0 .35em;font-weight:700;line-height:1.15}h1{color:var(--gold);font-size:clamp(1.4rem,5vw,2rem)}h2{font-size:1.15rem}p{margin:.25em 0 .75em;line-height:1.4}a{color:var(--gold)}.muted{color:var(--muted)}.error{color:#ffb3b8;text-align:center;font-weight:600}.page{max-width:560px;padding:max(12px, env(safe-area-inset-top)) 14px max(24px, env(safe-area-inset-bottom));margin:0 auto}.page.center{place-items:center;min-height:100vh;display:grid}.card{background:var(--card);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ffffff1f;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:600;display:flex}.btn{appearance:none;font:inherit;cursor:pointer;color:var(--text);background:#ffffff1a;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:1rem;font-weight:700;text-decoration:none;transition:transform 80ms,background .15s;display:inline-flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--gold);color:#3a2300}.btn.ghost{background:0 0;border-color:#ffffff40}.btn.danger{background:var(--danger);color:#fff}.btn.small{padding:6px 12px;font-size:.85rem}.btn.big{flex:1;padding:14px 22px;font-size:1.15rem}.name-input{font:inherit;color:var(--text);background:#00000040;border:2px solid #fff3;border-radius:14px;width:100%;min-width:0;padding:12px 14px;font-size:1.05rem}.name-input:focus{border-color:var(--gold);outline:none}.banner{background:var(--pink);color:#2b0a4a;text-align:center;border-radius:12px;margin-bottom:10px;padding:8px 12px;font-weight:700}.toast{background:var(--card-solid);border:1px solid var(--gold);color:var(--text);z-index:50;border-radius:999px;max-width:90vw;padding:10px 18px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.draw-header{text-align:center;margin-bottom:8px}.draw-header p{margin:0 0 6px}.canvas-wrap{border-radius:var(--radius);background:repeating-conic-gradient(#ffffff0f 0 25%, transparent 0 50%) 0 0 / 24px 24px, #ffffff0a;border:1px solid #ffffff1f;width:100%;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:8px;margin-top:10px;display:flex}.tool-row{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.tool{appearance:none;color:var(--text);font:inherit;cursor:pointer;background:#ffffff14;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;display:flex}.tool.active{border-color:var(--gold);background:#f5c04a33}.tool:disabled{opacity:.35}.tool-icon{font-size:1.4rem;line-height:1}.tool-label{font-size:.7rem;font-weight:600}.swatch-row{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.swatch{aspect-ratio:1;cursor:pointer;border:3px solid #ffffff40;border-radius:50%;width:100%;padding:0}.swatch.active{box-shadow:0 0 0 3px var(--gold);border-color:#fff;transform:scale(1.08)}.stamp{appearance:none;cursor:pointer;background:#ffffff14;border:2px solid #0000;border-radius:14px;padding:4px 0;font-size:1.7rem;line-height:1.3}.stamp.active{border-color:var(--gold);background:#f5c04a33}.size-row{justify-content:center;gap:10px;display:flex}.size{appearance:none;cursor:pointer;background:#ffffff14;border:2px solid #0000;border-radius:12px;place-items:center;width:52px;height:44px;display:grid}.size.active{border-color:var(--gold)}.dot{border:1px solid #0000004d;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:14px;display:flex}.submit-row .name-input{flex:1}.done-card{text-align:center}.done-crown{filter:drop-shadow(0 12px 24px #0006);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:14px;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{background:var(--card);text-align:center;border:2px solid #ffffff1a;border-radius:16px;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 3px #f5c04a59}.crown-card.previewing{border-color:var(--pink)}.crown-card.dim{opacity:.55}.crown-card .row{flex-wrap:wrap;justify-content:center}.badge{background:var(--gold);color:#3a2300;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;position:absolute;top:-10px;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{border:3px solid var(--gold);background:#0000004d;border-radius:16px;width:100%;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000073}.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;display:grid;position:absolute;inset:0}.portrait-empty span{font-size:3rem}.portrait-crown{pointer-events:none;filter:drop-shadow(0 6px 10px #00000073);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:600;display:flex}.slider input{accent-color:var(--gold);flex:1}.royal-page{max-width:1400px}.royal-title{text-align:center;text-shadow:0 4px 20px #0006;margin:10px 0 14px;font-size:clamp(1.8rem,5vw,3.4rem)}.royal-stage{display:block}.royal-credit{text-align:center;margin-top:14px;font-size:clamp(1rem,2.5vw,1.5rem)}.court-strip{margin-top:24px}.court-strip h2{text-align:center;color:var(--muted);margin-bottom:12px;font-weight:600}.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(--bg);background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:10px;font-weight:700;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-grid{grid-template-columns:minmax(280px,1.1fr) minmax(280px,1.6fr);align-items:start;gap:14px;display:grid}.settings-card{grid-column:1/-1}@media (width<=760px){.admin-grid{grid-template-columns:1fr}}.portrait-card .portrait{margin-bottom:10px}.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:600}.danger-zone{border-top:1px solid #ffffff1f;padding-top:14px}.btn label,label.btn{position:relative}.game-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.game-card{color:var(--text);align-items:center;gap:14px;text-decoration:none;display:flex}.game-card:active{transform:scale(.98)}.game-card strong{color:var(--gold);font-size:1.25rem;display:block}.game-icon{font-size:2.6rem;line-height:1}.host-links{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:28px;font-size:.85rem;display:flex}
