@import "https://fonts.googleapis.com/css2?family=Rye&display=swap";:root{--font-display:"Rye", Georgia, serif;--font-body:"Rye", Georgia, serif;--font-label:var(--font-display);--red-bright:#c62828;--red-deep:#7b0f0f;--red-banner:#b71c1c;--gold:#e8b33c;--gold-bright:#f7d046;--cream:#fff1d6;--card:#fff6e8;--card-border:#e0c9a6;--muted-brown:#9a7b52;--page-color:#2a1206;--page-background:#c45a12;color:var(--page-color);background:var(--page-background);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;font-family:var(--font-body)}button,textarea,input{font:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{background-color:var(--page-background);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;min-height:100svh;position:relative;overflow-x:hidden}.app__content{z-index:1;max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 3rem;position:relative}.app__header{justify-content:center;margin-bottom:.5rem;display:flex;position:relative}.app__header-actions{align-items:center;gap:.5rem;display:flex;position:absolute;top:.25rem;right:0}.app__skin-btn,.app__icon-btn{appearance:none;border:1.5px solid var(--cream);height:36px;color:var(--cream);font:inherit;cursor:pointer;background:#280c0659;border-radius:999px;font-size:.85rem;font-weight:700}.app__skin-btn{padding:0 16px}.app__icon-btn{width:36px;padding:0;font-size:1rem;line-height:1}.app__skin-btn:hover,.app__icon-btn:hover{background:#280c068c}.banner{text-align:center;-webkit-user-select:none;user-select:none;touch-action:manipulation;cursor:default;background:0 0;width:min(92vw,680px)}.banner__image{filter:drop-shadow(0 10px 18px #5a140a52);background:0 0;width:100%;max-width:100%;height:auto;display:block}.banner__subtitle{color:#fff8ea;text-shadow:0 1px 4px #501405b3,0 0 12px #50140559;margin:.15rem 0 0;font-size:1rem;font-weight:500}.app__main{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;gap:48px;display:grid}.app__stage{flex-direction:column;align-items:center;gap:.9rem;min-width:0;display:flex}.app__side{min-width:0}.wheel{--wheel-diameter:min(100%, 520px);width:var(--wheel-diameter);margin:0 auto;position:relative;overflow:visible}.wheel__assembly{--disc-cx:49.93%;--disc-cy:42.86%;--disc-diameter:75.78%;--ptr-tip:.78;--ptr-base:101%;--ptr-offset:25%;--ptr-squash:1;aspect-ratio:729/1001;width:100%;position:relative;overflow:visible}.wheel__disc{left:var(--disc-cx);top:var(--disc-cy);z-index:1;width:var(--disc-diameter);aspect-ratio:1;transform-origin:50%;position:absolute;overflow:visible;transform:translate(-50%,-50%)}.wheel__button{z-index:1;appearance:none;cursor:pointer;background:0 0;border:none;border-radius:50%;width:100%;height:100%;padding:0;position:absolute;inset:0}.wheel__button:disabled{cursor:default}.wheel.is-idle .wheel__disc{animation:3.4s ease-in-out infinite wheel-idle-sway}@keyframes wheel-idle-sway{0%,to{transform:translate(-50%,-50%)rotate(-2.5deg)}50%{transform:translate(-50%,-50%)rotate(2.5deg)}}.wheel__svg{filter:drop-shadow(0 8px 16px #50140a47);width:100%;height:100%;display:block}.wheel__rotor{will-change:transform}.wheel__label{pointer-events:none;font-family:var(--font-label);letter-spacing:.5px;fill:#fff;stroke:var(--red-deep);stroke-width:3px;paint-order:stroke fill}.wheel__label--dark{fill:var(--red-deep);stroke:#fff}.wheel__hub-group{transform-box:view-box;transform-origin:50%;transition:transform .14s}.wheel__button:hover:not(:disabled) .wheel__hub-group{transform:scale(1.05)}.wheel__hub{font-family:var(--font-display);fill:var(--red-deep);letter-spacing:1.5px;font-size:22px;font-weight:900}.wheel__frame{object-fit:contain;pointer-events:none;z-index:3;mix-blend-mode:screen;width:100%;height:100%;position:absolute;inset:0}.wheel__pointer{top:var(--disc-cy);right:calc(100% - var(--ptr-base));z-index:5;width:calc(var(--ptr-base) - (var(--disc-cx) + var(--ptr-tip) * var(--disc-diameter) / 2));aspect-ratio:974/319;transform:translateY(-50%) translateX(var(--ptr-offset,0)) scaleY(var(--ptr-squash)) rotate(var(--pointer-flick,0deg));transform-origin:100%;pointer-events:none;filter:drop-shadow(0 3px 6px #00000073);position:absolute}.wheel__pointer-fill{background-color:var(--pointer-color,var(--red-bright));-webkit-mask-image:var(--pointer-fill);-webkit-mask-image:var(--pointer-fill);mask-image:var(--pointer-fill);position:absolute;inset:0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.wheel__pointer-shell{object-fit:contain;pointer-events:none;mix-blend-mode:screen;width:100%;height:100%;position:absolute;inset:0}.app__status{color:#fff8ea;font-variant:small-caps;letter-spacing:1px;text-shadow:0 1px 3px #50140599;margin:0;font-size:.9rem}.app__actions{flex-wrap:wrap;justify-content:center;gap:20px;margin-top:.5rem;display:flex}.btn{appearance:none;height:44px;font:inherit;cursor:pointer;border:2px solid #0000;border-radius:999px;padding:0 24px;font-weight:700;transition:transform .12s,opacity .12s,box-shadow .12s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{color:var(--red-deep);border-color:var(--red-deep);background:linear-gradient(#ffd75e 0%,#e8a81e 100%);box-shadow:0 6px 14px #5a190547}.btn--ghost{color:var(--cream);border-color:var(--cream);background:0 0}.entry-panel{background:var(--card);border:1px solid var(--card-border);border-radius:16px;flex-direction:column;gap:.85rem;min-width:0;padding:1.1rem 1.15rem .9rem;display:flex;box-shadow:0 14px 34px #5a230a2e}.entry-panel__tabs{border-bottom:1px solid var(--card-border);gap:.4rem;display:flex}.entry-panel__tab{appearance:none;font:inherit;font-family:var(--font-display);color:var(--muted-brown);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-1px;padding:.5rem .75rem;font-weight:700}.entry-panel__tab.is-active{color:#4a2c10;border-bottom-color:var(--gold)}.entry-panel__tab:hover{color:#4a2c10}.entry-panel__count{text-align:right;color:var(--muted-brown);margin:0;font-size:.85rem}.name-list{flex-direction:column;gap:.45rem;display:flex}.name-list__label{font-weight:700;font-family:var(--font-display)}.name-list__toolbar{flex-wrap:wrap;gap:.4rem;display:flex}.name-list__sort-btn{appearance:none;border:1px solid var(--card-border);color:#3b2410;height:1.85rem;font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0 .55rem;font-size:.8rem;font-weight:600}.name-list__sort-btn:hover:not(:disabled){border-color:var(--gold)}.name-list__sort-btn:disabled{opacity:.45;cursor:not-allowed}.name-list__input{resize:vertical;width:100%;min-height:340px;font:inherit;color:#3b2410;background:0 0;border:none;border-radius:8px;padding:.25rem;font-size:15px;line-height:1.7}.name-list__input::placeholder{color:#9a7b52a6}.name-list__input:focus{outline:2px solid var(--gold);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.weights-editor-wrap{flex-direction:column;gap:.7rem;display:flex}.weights-editor{flex-direction:column;gap:.55rem;max-height:min(58vh,500px);margin:0;padding:0 .6rem 0 0;list-style:none;display:flex;overflow:auto}.weights-editor__reset{appearance:none;border:1px solid var(--card-border);color:#3b2410;height:2rem;font:inherit;cursor:pointer;background:#fff;border-radius:999px;align-self:flex-start;padding:0 .85rem;font-size:.85rem;font-weight:600}.weights-editor__reset:hover:not(:disabled){border-color:var(--gold)}.weights-editor__reset:disabled{opacity:.45;cursor:not-allowed}.weights-editor__empty{color:var(--muted-brown);margin:0}.weights-editor__row{border:1px solid var(--card-border);background:#fffdf7;border-radius:10px;grid-template-columns:1.6rem minmax(0,1fr) auto;grid-template-areas:"index name actions""slider slider slider""percent percent percent";align-items:center;gap:.35rem .45rem;padding:.6rem .7rem;display:grid}.weights-editor__row.is-locked{border-color:var(--gold);background:#fff8e6}.weights-editor__index{color:var(--muted-brown);grid-area:index;font-size:.85rem;font-weight:700}.weights-editor__name{text-overflow:ellipsis;white-space:nowrap;color:#3b2410;grid-area:name;font-weight:600;overflow:hidden}.weights-editor__slider{grid-area:slider;width:100%;display:block}.weights-editor__slider input[type=range]{width:100%;accent-color:var(--red-bright);cursor:pointer}.weights-editor__slider input[type=range]:disabled{cursor:not-allowed;opacity:.45}.weights-editor__percent{color:#3b2410;grid-area:percent;align-items:center;gap:.25rem;font-size:.85rem;font-weight:700;display:inline-flex}.weights-editor__percent input[type=number]{border:1px solid var(--card-border);width:4rem;font:inherit;background:#fff;border-radius:6px;padding:.25rem .3rem}.weights-editor__actions{grid-area:actions;justify-self:end;gap:.2rem;display:inline-flex}.weights-editor__btn{appearance:none;border:1px solid var(--card-border);cursor:pointer;width:1.85rem;height:1.85rem;font:inherit;color:#3b2410;background:#fff;border-radius:6px;line-height:1}.weights-editor__btn.is-lock{background:var(--red-deep);border-color:var(--red-deep);color:var(--cream)}.weights-editor__btn:disabled{opacity:.35;cursor:not-allowed}.paywall{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;display:flex}.paywall__lock{margin:0;font-size:2rem}.paywall__title{font-family:var(--font-display);color:#3b2410;margin:0}.paywall__description{max-width:32ch;color:var(--muted-brown);margin:0 0 .5rem;font-size:.9rem}.paywall__error{color:var(--red-bright);margin:.5rem 0 0;font-size:.85rem}.skin-picker{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#3c0f05b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.skin-picker__card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;width:min(100%,420px);max-height:80vh;padding:1.1rem 1.25rem 1.4rem;overflow:auto;box-shadow:0 20px 50px #0000004d}.skin-picker__header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.skin-picker__title{font-family:var(--font-display);color:#3b2410;margin:0}.skin-picker__close{appearance:none;font:inherit;color:var(--muted-brown);cursor:pointer;background:0 0;border:none;font-size:1.1rem}.skin-picker__list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.skin-picker__option{appearance:none;border:2px solid var(--card-border);cursor:pointer;width:100%;font:inherit;background-position:50%;background-size:cover;border-radius:12px;justify-content:space-between;align-items:center;gap:.5rem;padding:.9rem 1rem;display:flex}.skin-picker__option.is-active{border-color:var(--gold)}.skin-picker__option:disabled{opacity:.6;cursor:default}.skin-picker__name{color:#fff;text-shadow:0 1px 4px #0009;font-weight:700}.skin-picker__status{color:#fff;text-shadow:0 1px 4px #0009;font-size:.85rem;font-weight:600}.skin-picker__error{color:var(--red-bright);text-align:center;margin:.75rem 0 0;font-size:.85rem}.winner{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#3c0f05b8;place-items:center;padding:1rem;animation:.2s ease-out winner-overlay-in;display:grid;position:fixed;inset:0}.winner__card{z-index:1;width:min(100%,520px);box-shadow:none;background:0 0;border:none;border-radius:0;padding:0 0 1.2rem;animation:.35s cubic-bezier(.34,1.56,.64,1) winner-card-in;position:relative}.winner__banner{filter:drop-shadow(0 8px 16px #1e050073);width:100%;height:auto;margin:0 auto -.5rem;display:block}.winner__plaque{width:92%;margin:0 auto;position:relative}.winner__plaque-frame{width:100%;height:auto;display:block}.winner__plaque-content{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:18% 12% 20%}.winner__name-wrap{place-items:center;width:100%;padding:.2rem 0;display:grid;position:relative}.winner__shimmer{pointer-events:none;background:radial-gradient(#f7d04673 0%,#f7d04600 68%);animation:3s ease-in-out infinite winner-shimmer;position:absolute;inset:-40% -10%}.winner__name{font-family:var(--font-display);text-align:center;color:var(--gold-bright);text-shadow:0 3px #5c0a0a,0 6px 18px #1e050080;word-break:break-word;font-weight:900;line-height:1.1;position:relative}.winner__remaining{color:#fff1d6d9;text-align:center;margin:.6rem 0 0;padding:0 1.75rem;font-size:.9rem}.winner__actions{justify-content:flex-end;gap:12px;padding:1.1rem 1.75rem 0;display:flex}.winner .confetti{z-index:0}@keyframes winner-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes winner-card-in{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes winner-shimmer{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:.85;transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.winner,.winner__card{animation:.15s linear winner-overlay-in}.winner__shimmer{display:none}}.confetti{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti__piece{border-radius:2px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;position:absolute;top:-6%}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--drift), 105vh) rotate(var(--spin))}}@media (width<=900px){.app__main{grid-template-columns:1fr;gap:32px}.name-list__input{min-height:220px}}
