:root{--night-1: #1a0d2e;--night-2: #34155c;--night-3: #4b1f7a;--gold: #f5c66b;--gold-deep: #d99a2b;--cream: #fff6e6;--cream-dim: rgba(255, 246, 230, .72);--berry: #e23b4a;--glass: rgba(255, 255, 255, .07);--glass-border: rgba(255, 246, 230, .16);--radius: 22px;--ease-out: cubic-bezier(.22, 1, .36, 1);--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);color:var(--cream);background:var(--night-1);-webkit-font-smoothing:antialiased}button,input{font:inherit}.app{position:relative;min-height:100%;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,var(--night-3) 0%,transparent 60%),radial-gradient(60% 40% at 85% 15%,rgba(245,198,107,.12) 0%,transparent 70%),linear-gradient(180deg,var(--night-2) 0%,var(--night-1) 75%)}.stage{position:relative;z-index:2;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:48px 16px 120px}.panel{width:100%;max-width:560px;text-align:center;animation:rise .7s var(--ease-out) both}.card{text-align:left;padding:32px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px -30px #0009}@media(max-width:480px){.card{padding:24px 20px}}.eyebrow{margin:0 0 12px;font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.title{margin:0 0 20px;font-family:var(--font-display);font-weight:700;font-size:clamp(3rem,12vw,5.5rem);line-height:.95;letter-spacing:-.02em}.title em,.card-title em{font-style:italic;font-weight:500;color:var(--gold)}.card-title{margin:0 0 24px;font-family:var(--font-display);font-weight:700;font-size:clamp(1.8rem,6vw,2.4rem);line-height:1.1}.lede{margin:0 auto 32px;max-width:42ch;font-size:1.05rem;line-height:1.6;color:var(--cream-dim)}.hint{margin:8px 0 0;font-size:.85rem;color:var(--cream-dim)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border:0;border-radius:999px;font-weight:700;cursor:pointer;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s}.btn:active{transform:scale(.97)}.btn:focus-visible,.chip:has(input:focus-visible),.link-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.btn:disabled{opacity:.6;cursor:progress}.btn-primary{color:var(--night-1);background:linear-gradient(180deg,#ffd88a,var(--gold-deep));box-shadow:0 10px 30px -10px #f5c66bcc}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px -10px #f5c66be6}.btn-ghost{color:var(--cream);background:#1a0d2ee0;box-shadow:inset 0 0 0 1.5px #f5c66b99,0 10px 30px -12px #0009}.btn-ghost:hover{background:var(--night-2);box-shadow:inset 0 0 0 1.5px var(--gold),0 10px 30px -12px #0009}.btn-lg{min-height:60px;padding:0 40px;font-size:1.15rem}.btn-block{width:100%;margin-top:8px}.btn-icon{display:inline-block;animation:bob 1.6s ease-in-out infinite}.link-btn{margin-top:20px;padding:6px;border:0;background:none;color:var(--cream-dim);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.link-btn:hover{color:var(--cream)}.result .link-btn{padding:8px 18px;border-radius:999px;background:#1a0d2ecc;color:var(--cream)}.result .link-btn:hover{color:var(--gold)}.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.actions .btn{flex:1 1 140px;max-width:220px}.field{display:block;margin:0 0 22px;padding:0;border:0}.field-label{display:block;margin-bottom:10px;padding:0;font-weight:700;font-size:.95rem}.input{width:100%;height:52px;padding:0 18px;border-radius:14px;border:1.5px solid var(--glass-border);background:#0003;color:var(--cream);font-size:1.05rem;transition:border-color .2s,background .2s}.input::placeholder{color:#fff6e666}.input:focus{outline:none;border-color:var(--gold);background:#0000004d}.input[aria-invalid=true]{border-color:var(--berry)}.field-error{display:block;margin-top:8px;font-size:.85rem;color:#ff9aa4}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{position:relative;padding:10px 16px;border-radius:999px;border:1.5px solid var(--glass-border);font-size:.95rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease-out)}.chip input{position:absolute;opacity:0;pointer-events:none}.chip:hover{border-color:#f5c66b99}.chip.is-selected{background:var(--gold);border-color:var(--gold);color:var(--night-1);font-weight:700;transform:scale(1.04)}.preview{margin:4px 0 22px;padding:16px 18px;border-radius:14px;background:#f5c66b14;border:1px dashed rgba(245,198,107,.35);font-family:var(--font-display);font-style:italic;font-size:1.1rem;line-height:1.5}.preview strong{color:var(--gold);font-weight:500}.track{margin:8px 0 28px}.track-sky{position:relative;height:90px;margin:0 40px}.sleigh-wrap{position:absolute;bottom:4px;transform:translate(-62%);transition:left .1s linear}.sleigh{display:block;width:120px;height:auto;animation:fly 1.8s ease-in-out infinite;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}.sleigh .nose{animation:glow 1.2s ease-in-out infinite}.track-bar{position:relative;height:14px;border-radius:999px;background:#ffffff14;box-shadow:inset 0 0 0 1px var(--glass-border);overflow:hidden}.track-fill{height:100%;border-radius:inherit;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.35) 0 8px,transparent 8px 16px),linear-gradient(90deg,var(--berry),var(--gold));background-size:23px 23px,100% 100%;animation:stripes .8s linear infinite;transition:width .1s linear;box-shadow:0 0 18px #f5c66b99}.track-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:10px;font-size:.8rem;color:var(--cream-dim)}.track-meta span:last-child{max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-pct{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}.status-line{min-height:1.6em;margin:0;font-family:var(--font-display);font-style:italic;font-size:1.2rem;animation:fadeSwap .6s var(--ease-out) both}.video-frame{position:relative;width:min(100%,360px,calc(32.625vh + 16px));width:min(100%,360px,calc(32.625dvh + 16px));margin:0 auto 24px;padding:8px;border-radius:var(--radius);background:linear-gradient(135deg,var(--gold),var(--berry),var(--gold));box-shadow:0 30px 80px -30px #000c}.video-frame video{display:block;width:100%;height:auto;aspect-ratio:9 / 16;object-fit:cover;border-radius:16px;background:#000}.error{text-align:center}.error-icon{font-size:3.5rem;line-height:1;margin-bottom:12px;animation:bob 2s ease-in-out infinite}.snow{position:fixed;inset:0;z-index:1;pointer-events:none}.flake{position:absolute;top:-10px;border-radius:50%;background:#fff;animation-name:fall,sway;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite;animation-direction:normal,alternate}.hills{position:absolute;left:-10%;right:-10%;bottom:-60px;height:160px;border-radius:50% 50% 0 0/100% 100% 0 0;background:linear-gradient(180deg,#f4ecff,#cbbbe4);box-shadow:-30vw 30px #ddd0f0,30vw 40px #e4d9f3;opacity:.95}@keyframes rise{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}@keyframes fall{to{transform:translateY(110vh)}}@keyframes sway{0%{margin-left:-12px}to{margin-left:12px}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes fly{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes glow{0%,to{filter:drop-shadow(0 0 2px #ff4d5e)}50%{filter:drop-shadow(0 0 7px #ff4d5e)}}@keyframes stripes{to{background-position:23px 0,0 0}}@keyframes fadeSwap{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.flake{display:none}}
