:root{--ink: #16161c;--paper: #f6f1e7;--blue: #1b3a6b;--blue-bright: #2456e6;--acid: #c6ff2e;--orange: #ff7a00;--fuchsia: #ff2e9a;--yellow: #ffe100;--violet: #7a2fbf;--card: #fffdf7;--shadow-hard: 6px 6px 0 var(--ink);--radius: 18px;--font: "Unbounded", "Arial Black", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:var(--font);background:var(--paper);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit}img{max-width:100%}::selection{background:var(--fuchsia);color:#fff}.app{position:relative;min-height:100dvh;background:radial-gradient(circle at 12% 8%,rgba(255,225,0,.35),transparent 42%),radial-gradient(circle at 88% 12%,rgba(255,46,154,.22),transparent 45%),radial-gradient(circle at 50% 100%,rgba(36,86,230,.18),transparent 55%),var(--paper);overflow:hidden}.app__noise{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;opacity:.05;background-image:repeating-linear-gradient(0deg,#000 0 1px,transparent 1px 3px);mix-blend-mode:multiply}.scene{position:relative;z-index:1;min-height:100dvh;padding:clamp(16px,4vw,48px);display:flex;flex-direction:column;animation:scene-in .5s cubic-bezier(.2,.9,.3,1.2) both}@keyframes scene-in{0%{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}.btn{position:relative;border:3px solid var(--ink);border-radius:999px;padding:14px 26px;font-size:clamp(.85rem,2.2vw,1rem);font-weight:800;letter-spacing:.02em;cursor:pointer;background:var(--card);color:var(--ink);box-shadow:var(--shadow-hard);transition:transform .14s ease,box-shadow .14s ease,background .2s ease;text-transform:uppercase;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){transform:translate(-3px,-3px) rotate(-1deg);box-shadow:9px 9px 0 var(--ink)}.btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:3px 3px 0 var(--ink)}.btn--primary{background:linear-gradient(180deg,var(--acid),#9ee600)}.btn--dark{background:linear-gradient(180deg,var(--blue-bright),var(--blue));color:#fff}.btn--ghost{background:var(--card)}.btn--xl{padding:clamp(18px,3.5vw,26px) clamp(28px,6vw,54px);font-size:clamp(1rem,3.4vw,1.5rem);background:linear-gradient(180deg,var(--orange),#ff5e00);color:var(--ink);animation:btn-pulse 2.6s ease-in-out infinite}@keyframes btn-pulse{0%,to{transform:scale(1) rotate(-.5deg)}50%{transform:scale(1.035) rotate(.6deg)}}.btn--xl:hover:not(:disabled){animation:none}.linkish{background:none;border:none;padding:6px 4px;font-family:inherit;font-size:.82rem;font-weight:600;color:var(--blue);cursor:pointer;text-decoration:underline dotted;text-underline-offset:4px;transition:color .15s ease,transform .15s ease}.linkish:hover{color:var(--fuchsia);transform:translate(4px)}.linkish--tiny{font-size:.72rem}.icon-btn{width:46px;height:46px;border-radius:14px;border:3px solid var(--ink);background:var(--card);font-size:1.2rem;font-weight:900;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .14s ease,box-shadow .14s ease}.icon-btn:hover{transform:translate(-2px,-2px) rotate(-4deg);box-shadow:6px 6px 0 var(--ink)}.icon-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.scene--welcome{align-items:center;justify-content:center;text-align:center;gap:8px}.floaters{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.floater{position:absolute;animation:floater 5.5s ease-in-out infinite;filter:drop-shadow(6px 8px 0 rgba(22,22,28,.25));transform:rotate(var(--rot, 0deg))}@keyframes floater{0%,to{translate:0 0;rotate:0deg}50%{translate:0 -22px;rotate:4deg}}.welcome__head{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2vw,18px);max-width:880px}.welcome__logo{width:116px;height:116px;display:grid;place-items:center;background:#fff;border:4px solid var(--ink);border-radius:26px;box-shadow:var(--shadow-hard);transform:rotate(-3deg);transition:transform .3s ease}.welcome__logo:hover{transform:rotate(3deg) scale(1.05)}.welcome__logo img{width:92px;height:92px;object-fit:contain}.welcome__event{margin:0;font-size:clamp(.8rem,2.4vw,1.05rem);font-weight:600;text-transform:uppercase;letter-spacing:.16em}.welcome__event-accent{background:var(--blue);color:var(--yellow);padding:2px 10px;border-radius:8px;transform:rotate(-1.5deg);display:inline-block}.welcome__title{margin:0;line-height:.86;display:flex;flex-direction:column;align-items:center;gap:4px}.welcome__title-line{font-size:clamp(3.6rem,15vw,9.5rem);font-weight:900;letter-spacing:-.03em;color:var(--blue-bright);text-shadow:4px 4px 0 var(--ink),-2px -2px 0 rgba(255,255,255,.7);animation:title-jump 3.4s ease-in-out infinite}.welcome__title-line--alt{color:var(--fuchsia);animation-delay:.35s;text-shadow:4px 4px 0 var(--ink),-2px -2px 0 rgba(255,255,255,.7)}@keyframes title-jump{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-8px) rotate(.6deg)}}.welcome__lead{margin:8px 0 4px;max-width:640px;font-size:clamp(.9rem,2.3vw,1.08rem);line-height:1.65;font-weight:500;background:#ffffffb8;border:3px dashed var(--ink);border-radius:var(--radius);padding:clamp(14px,3vw,22px);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.welcome__cta{margin-top:10px}.welcome__foot{position:relative;z-index:2;margin-top:clamp(22px,5vh,54px);display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.75}.welcome__foot a{color:var(--blue-bright)}.scene--constructor{max-width:1180px;margin:0 auto;width:100%}.constructor__top{display:flex;align-items:center;gap:clamp(10px,3vw,22px);position:sticky;top:0;z-index:30;background:linear-gradient(180deg,var(--paper) 72%,transparent);padding-bottom:10px;margin-top:-6px}.constructor__counter{margin-left:auto;font-weight:800;font-size:.85rem;background:var(--yellow);border:3px solid var(--ink);border-radius:999px;padding:7px 13px;box-shadow:3px 3px 0 var(--ink);white-space:nowrap}.progress{display:flex;gap:clamp(6px,1.6vw,12px);flex:1}.progress__item{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border:3px solid var(--ink);border-radius:999px;background:var(--card);padding:8px 10px;font-weight:800;font-size:.78rem;cursor:default;transition:transform .15s ease,background .2s ease}.progress__item:disabled{opacity:1}.progress__item--active{background:linear-gradient(180deg,var(--acid),#a8ec1a);transform:translateY(-3px) rotate(-1deg);box-shadow:4px 4px 0 var(--ink)}.progress__item--done{background:var(--blue);color:#fff;cursor:pointer}.progress__item--done:hover{transform:translateY(-2px) rotate(1deg)}.progress__item--todo{opacity:.55}.progress__num{display:grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font-size:.72rem}.constructor__heading{margin:clamp(14px,3vh,26px) 0 6px;animation:heading-in .45s cubic-bezier(.2,.9,.3,1.25) both}@keyframes heading-in{0%{opacity:0;transform:translate(-26px) rotate(-1deg)}to{opacity:1;transform:none}}.constructor__eyebrow{margin:0 0 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--fuchsia)}.constructor__title{margin:0;font-size:clamp(1.5rem,5vw,2.7rem);line-height:1.12;font-weight:900;letter-spacing:-.02em;max-width:830px}.constructor__subtitle{margin:10px 0 0;font-size:clamp(.85rem,2.2vw,1rem);font-weight:500;opacity:.82;max-width:680px;line-height:1.6}.constructor__limit{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 16px}.limit{font-size:.75rem;font-weight:700;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:6px 12px}.limit--full{background:var(--orange);animation:limit-wiggle .5s ease}@keyframes limit-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-3deg) scale(1.04)}70%{transform:rotate(3deg) scale(1.04)}}.limit--muted{opacity:.6}.options{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:clamp(10px,2vw,16px);margin-bottom:26px}.option{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:14px 14px 16px;min-height:96px;background:var(--card);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:4px 4px 0 var(--ink);cursor:pointer;font-family:inherit;animation:card-in .4s cubic-bezier(.2,.9,.3,1.3) both;transition:transform .16s ease,box-shadow .16s ease,background .2s ease}@keyframes card-in{0%{opacity:0;transform:translateY(22px) rotate(-2deg) scale(.92)}to{opacity:1;transform:none}}.option:hover:not(:disabled){transform:translate(-3px,-4px) rotate(-1.4deg);box-shadow:8px 9px 0 var(--ink)}.option:active:not(:disabled){transform:translate(2px,2px) rotate(.5deg);box-shadow:2px 2px 0 var(--ink)}.option__emoji{font-size:1.7rem;line-height:1;filter:drop-shadow(2px 2px 0 rgba(22,22,28,.2));transition:transform .2s ease}.option:hover:not(:disabled) .option__emoji{transform:scale(1.25) rotate(-12deg)}.option__label{font-size:.82rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.option--selected{background:linear-gradient(160deg,var(--acid),#d9ff7a);transform:rotate(-1.6deg) scale(1.03);box-shadow:7px 7px 0 var(--ink);animation:card-pop .32s cubic-bezier(.2,1.4,.4,1)}@keyframes card-pop{0%{transform:scale(.9) rotate(2deg)}60%{transform:scale(1.1) rotate(-3deg)}to{transform:rotate(-1.6deg) scale(1.03)}}.option--selected .option__emoji{transform:scale(1.2) rotate(8deg)}.option__check{position:absolute;top:-11px;right:-11px;width:28px;height:28px;display:grid;place-items:center;background:var(--fuchsia);color:#fff;border:3px solid var(--ink);border-radius:50%;font-size:.8rem;font-weight:900;animation:check-in .3s cubic-bezier(.2,1.6,.4,1) both}@keyframes check-in{0%{transform:scale(0) rotate(-180deg)}to{transform:scale(1) rotate(0)}}.option--disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.65)}.constructor__nav{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:12px;padding:14px 0 8px;background:linear-gradient(0deg,var(--paper) 76%,transparent);z-index:20}.constructor__hint{margin:4px 0 10px;font-size:.78rem;font-weight:600;color:var(--blue);text-align:center}.scene--generate{align-items:center;justify-content:center}.gen-loading{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:560px;text-align:center}.gen-loading__orb{animation:orb 1.6s ease-in-out infinite;filter:drop-shadow(8px 10px 0 rgba(22,22,28,.3))}@keyframes orb{0%,to{transform:translateY(0) rotate(-3deg) scale(1)}50%{transform:translateY(-24px) rotate(3deg) scale(1.04)}}.gen-loading__title{margin:0;font-size:clamp(1.3rem,4.5vw,2rem);font-weight:900}.gen-loading__bar{width:min(440px,86vw);height:26px;border:3px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden;box-shadow:4px 4px 0 var(--ink)}.gen-loading__bar span{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--fuchsia) 0 14px,var(--orange) 14px 28px,var(--yellow) 28px 42px,var(--blue-bright) 42px 56px);background-size:200% 100%;animation:stripes 1.2s linear infinite;transition:width .8s ease}@keyframes stripes{0%{background-position:0 0}to{background-position:56px 0}}.gen-loading__phase{margin:0;min-height:1.6em;font-size:.85rem;font-weight:700;color:var(--blue);animation:phase-fade .4s ease}@keyframes phase-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.gen-loading__note{margin:0;font-size:.72rem;font-weight:600;background:var(--yellow);border:2px solid var(--ink);border-radius:12px;padding:8px 12px}.gen-loading__prompt{width:min(540px,90vw);font-size:.72rem;text-align:left}.gen-loading__prompt summary{cursor:pointer;font-weight:700;color:var(--violet)}.gen-loading__prompt p{background:#fff;border:2px dashed var(--ink);border-radius:12px;padding:10px;line-height:1.55;font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.gen-card{width:min(640px,94vw);background:var(--card);border:4px solid var(--ink);border-radius:26px;box-shadow:10px 10px 0 var(--ink);padding:clamp(18px,4vw,34px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;animation:card-in .5s cubic-bezier(.2,.9,.3,1.25) both}.gen-card__badge{margin:0;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;background:var(--violet);color:#fff;padding:6px 14px;border-radius:999px;border:2px solid var(--ink)}.gen-card__reveal{animation:reveal .7s cubic-bezier(.2,1.3,.35,1) both;filter:drop-shadow(8px 10px 0 rgba(22,22,28,.28))}@keyframes reveal{0%{opacity:0;transform:scale(.3) rotate(-16deg)}70%{transform:scale(1.08) rotate(4deg)}to{opacity:1;transform:scale(1) rotate(0)}}.gen-card__sticker{width:74px;height:74px;display:grid;place-items:center;font-size:2rem;background:var(--yellow);border:4px solid var(--ink);border-radius:50%;box-shadow:5px 5px 0 var(--ink)}.gen-card__sticker--error{background:var(--fuchsia);color:#fff;animation:limit-wiggle .6s ease infinite}.gen-card__title{margin:0;font-size:clamp(1.3rem,4.5vw,1.9rem);font-weight:900}.gen-card__text{margin:0;font-size:.85rem;line-height:1.65;font-weight:500}.gen-card__note{margin:0;font-size:.72rem;line-height:1.6;background:#fff;border:2px dashed var(--ink);border-radius:12px;padding:10px 12px}.gen-card__summary{width:100%;margin:0;padding:12px 16px;list-style:none;background:var(--paper);border:3px solid var(--ink);border-radius:14px;font-size:.74rem;line-height:1.7;text-align:left;overflow-wrap:anywhere}.gen-card__summary b{color:var(--blue)}.gen-card__row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.scene--name{align-items:center;justify-content:center}.name-card{width:min(980px,96vw);display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:clamp(14px,3vw,30px);background:var(--card);border:4px solid var(--ink);border-radius:28px;box-shadow:12px 12px 0 var(--ink);padding:clamp(18px,4vw,36px);animation:card-in .5s cubic-bezier(.2,.9,.3,1.25) both}.name-card__mascot{position:relative;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,rgba(255,225,0,.5),transparent 70%),var(--paper);border:3px dashed var(--ink);border-radius:20px;overflow:hidden;min-height:280px}.name-card__real{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.name-card__body{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.name-card__eyebrow{margin:0;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.2em;color:var(--fuchsia)}.name-card__title{margin:0 0 6px;font-size:clamp(1.1rem,3vw,1.5rem);line-height:1.4;font-weight:900}.name-card__label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--blue)}.name-input{width:100%;font-family:inherit;font-size:clamp(1rem,3vw,1.3rem);font-weight:800;padding:14px 18px;border:3px solid var(--ink);border-radius:16px;background:#fff;outline:none;box-shadow:inset 3px 3px #16161c14;transition:box-shadow .15s ease,transform .15s ease}.name-input:focus{box-shadow:5px 5px 0 var(--fuchsia);transform:translate(-2px,-2px)}.name-input--error{border-color:var(--fuchsia);animation:limit-wiggle .4s ease}.name-error{margin:0;font-size:.78rem;font-weight:700;color:#b0004f;background:#ffe4f1;border:2px solid var(--fuchsia);border-radius:12px;padding:10px 12px;line-height:1.5}.name-error__hint{font-weight:500;color:var(--ink)}.name-card__rules{margin:0;font-size:.68rem;line-height:1.6;opacity:.72}.scene--final{padding:0;justify-content:space-between;overflow:hidden}.final__bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center 30%;z-index:0;animation:bg-zoom 18s ease-in-out infinite alternate}@keyframes bg-zoom{0%{transform:scale(1)}to{transform:scale(1.07)}}.final__vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#f6f1e7e0,#f6f1e726 34%,#16161c52),radial-gradient(circle at 50% 60%,transparent 40%,rgba(22,22,28,.35) 100%)}.final__stage{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:minmax(260px,520px) minmax(260px,1fr);align-items:end;gap:clamp(10px,3vw,30px);padding:clamp(70px,12vh,130px) clamp(16px,5vw,60px) 0}.final__speech{align-self:center;background:#fffffff0;border:4px solid var(--ink);border-radius:26px 26px 26px 6px;box-shadow:8px 8px 0 var(--ink);padding:clamp(16px,3vw,26px);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:heading-in .6s .25s cubic-bezier(.2,.9,.3,1.2) both}.final__hello{margin:0 0 12px;font-size:clamp(1.05rem,3vw,1.5rem);line-height:1.45;font-weight:900}.final__hello mark{background:linear-gradient(180deg,transparent 55%,var(--yellow) 55%);color:var(--blue);padding:0 4px;border-radius:4px}.final__invite{margin:0;font-size:clamp(.85rem,2.2vw,1.02rem);line-height:1.7;font-weight:500}.final__mascot{justify-self:center;text-align:center;animation:mascot-land .9s .15s cubic-bezier(.2,1.2,.3,1.05) both;filter:drop-shadow(0 26px 18px rgba(0,0,0,.45))}.final__mascot .mascot-svg{width:min(340px,64vw,44vh);height:auto}@keyframes mascot-land{0%{opacity:0;transform:translateY(-130px) rotate(-8deg) scale(.75)}70%{opacity:1;transform:translateY(14px) rotate(2deg) scale(1.03)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}.final__mascot-img{width:min(340px,70vw);border-radius:24px;border:4px solid var(--ink);background:#fff}.final__name{margin:-6px 0 0;font-size:clamp(1.6rem,6vw,3.2rem);font-weight:900;letter-spacing:-.02em;color:#fff;text-shadow:0 0 2px var(--ink),3px 3px 0 var(--ink),-2px -2px 0 var(--ink),0 8px 24px rgba(0,0,0,.6);overflow-wrap:anywhere}.final__actions{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px clamp(14px,4vw,40px) 10px;background:linear-gradient(0deg,rgba(22,22,28,.82) 60%,transparent)}.final__actions-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.final__credit{position:relative;z-index:3;margin:0;text-align:center;font-size:.68rem;font-weight:600;color:#ffffffd9;padding-bottom:12px}.final__credit a{color:var(--acid)}.mascot-bob{animation:mascot-bob 3.2s ease-in-out infinite;transform-origin:200px 440px}.mascot-head{animation:head-tilt 4.4s ease-in-out infinite;transform-origin:200px 240px}@keyframes head-tilt{0%,to{rotate:-2.4deg}50%{rotate:2.4deg}}@media(max-width:860px){.name-card{grid-template-columns:1fr}.name-card__mascot{min-height:240px}.final__stage{grid-template-columns:1fr;align-items:center;padding-top:clamp(56px,9vh,90px);gap:6px}.final__speech{order:2;border-radius:22px;margin-bottom:8px}.final__mascot{order:1}.floater{opacity:.5;transform:rotate(var(--rot, 0deg)) scale(.72)}}@media(max-width:640px){.options{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.option{min-height:88px;padding:11px 11px 13px}.option__label{font-size:.74rem}.progress__label{display:none}.progress__item{padding:7px 8px}.constructor__nav .btn{padding:12px 16px;font-size:.76rem}.final__name{text-shadow:2px 2px 0 var(--ink),-1px -1px 0 var(--ink)}.floaters{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mascot-canvas{display:inline-block;filter:drop-shadow(8px 10px 0 rgba(22,22,28,.3))}.mascot-canvas canvas{width:100%;height:100%}@keyframes mascot-bob{0%,to{translate:0 0}50%{translate:0 -10px}}.floater-emblem{width:130px;height:130px;display:grid;place-items:center;background:var(--card);border:4px solid var(--ink);border-radius:26px;box-shadow:var(--shadow-hard);font-size:2rem;font-weight:900;color:var(--ink);transform:rotate(var(--rot, 0deg));animation:floater 5.5s ease-in-out infinite;filter:drop-shadow(6px 8px 0 rgba(22,22,28,.25))}.orb-placeholder{width:190px;height:190px;display:grid;place-items:center;background:var(--card);border:4px solid var(--ink);border-radius:50%;box-shadow:var(--shadow-hard);font-size:.75rem;font-weight:800;color:var(--ink);animation:orb 1.6s ease-in-out infinite;filter:drop-shadow(8px 10px 0 rgba(22,22,28,.3))}.gen-card--library .gen-card__reveal{filter:drop-shadow(8px 10px 0 rgba(22,22,28,.28))}.final__mascot .mascot-canvas{width:min(340px,70vw);transform-origin:center bottom}
