:root{--bg: #0b1030;--bg-deep: #060a22;--bg-card: #171d45;--bg-card-2: #1f2757;--gold: #f0c75a;--gold-soft: rgba(240, 199, 90, .18);--text: #f5f3ff;--text-dim: #9aa0c3;--accent: #7f7fff;--good: #4ade80;--mid: #facc15;--bad: #fb7185;--radius: 16px;--nav-height: 64px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Segoe UI,system-ui,sans-serif;background:radial-gradient(ellipse at 20% -10%,#2a2560 0%,var(--bg-deep) 55%),var(--bg-deep);color:var(--text);display:grid;place-items:center;overflow:hidden}.phone-frame{position:relative;width:390px;height:min(844px,96dvh);background:linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);border:8px solid #000;border-radius:44px;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff14;overflow:hidden;display:flex;flex-direction:column}@media (max-width: 430px){body{overflow:auto}.phone-frame{width:100%;height:100dvh;border:none;border-radius:0;box-shadow:none}}.screen{flex:1;overflow-y:auto;padding:20px 18px calc(var(--nav-height) + 24px);animation:fadeUp .25s ease-out;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:var(--nav-height);display:flex;background:#0b1030eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08)}.bottom-nav button{flex:1;background:none;border:none;color:var(--text-dim);font-size:10px;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;transition:color .2s,transform .15s}.bottom-nav button .icon{font-size:21px;transition:transform .2s}.bottom-nav button.active{color:var(--gold)}.bottom-nav button.active .icon{transform:translateY(-2px) scale(1.15)}.bottom-nav button:active{transform:scale(.92)}.card{background:var(--bg-card);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius);padding:14px 16px}.app-title{font-size:20px;font-weight:700;letter-spacing:.02em}.app-subtitle{font-size:12px;color:var(--text-dim);margin-top:4px}.section-label{font-size:12px;color:var(--text-dim);letter-spacing:.08em;margin:18px 0 8px}.btn-primary{width:100%;padding:14px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--gold) 0%,#e2a93a 100%);color:#241a05;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .15s,filter .2s}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{filter:grayscale(.8) brightness(.6);cursor:default}.btn-ghost{width:100%;padding:12px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:none;color:var(--text);font-size:14px;font-family:inherit;cursor:pointer}.chip{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:var(--bg-card);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.chip.selected{background:var(--gold-soft);border-color:var(--gold);color:var(--gold);font-weight:700}.chip:active{transform:scale(.95)}.hero-card{position:relative;background:linear-gradient(135deg,var(--bg-card-2) 0%,#2a2560 100%);border:1.5px solid var(--gold);border-radius:var(--radius);padding:18px 16px;overflow:hidden;box-shadow:0 6px 24px #f0c75a1f;animation:fadeUp .3s ease-out}.hero-glow{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(circle at 80% 10%,rgba(240,199,90,.16) 0%,transparent 45%);pointer-events:none}.hero-head{display:flex;align-items:center;gap:12px}.hero-flag{font-size:34px}.hero-name{font-size:16px;font-weight:700}.hero-meta{font-size:12px;color:var(--text-dim);margin-top:2px}.hero-wait{margin-top:12px;font-size:13px;color:var(--text-dim);display:flex;align-items:baseline;gap:6px}.hero-wait strong{font-size:34px;color:var(--gold);font-weight:800}.hero-sparkle{position:absolute;top:10px;right:14px;font-size:18px;animation:twinkle 1.8s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.5;transform:scale(.9) rotate(-8deg)}50%{opacity:1;transform:scale(1.15) rotate(8deg)}}.park-list{display:flex;flex-direction:column;gap:10px}.park-card{display:flex;align-items:center;gap:12px}.park-flag{font-size:26px}.park-info{flex:1;min-width:0}.park-name{font-size:14px;font-weight:700}.park-meta{font-size:11px;color:var(--text-dim);margin-top:2px}.park-wait{display:flex;align-items:baseline;gap:2px}.park-wait strong{font-size:22px;font-weight:800}.wait-unit{font-size:11px;color:var(--text-dim)}.wait-num{display:inline-block;animation:waitPop .5s ease-out}@keyframes waitPop{0%{opacity:.2;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.crowd-badge{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap}.crowd-badge.good{background:#4ade8026;color:var(--good)}.crowd-badge.mid{background:#facc1526;color:var(--mid)}.crowd-badge.bad{background:#fb718526;color:var(--bad)}.home-footnote{font-size:10px;color:var(--text-dim);margin-top:16px;text-align:center}.wizard-step{animation:fadeUp .25s ease-out}.wizard-footer{margin-top:20px;display:flex;flex-direction:column;gap:10px}.wizard-hint{font-size:11px;color:var(--text-dim);margin-top:12px;text-align:center}.park-select{display:grid;grid-template-columns:1fr 1fr;gap:10px}.park-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;font-family:inherit;color:var(--text);text-align:left;transition:all .15s}.park-option .park-flag{font-size:24px}.park-option-name{font-size:14px;font-weight:700;margin-top:4px}.park-option-sub{font-size:10px;color:var(--text-dim)}.park-option.selected{border-color:var(--gold);background:var(--gold-soft)}.park-option:active{transform:scale(.96)}.pref-grid{display:flex;flex-wrap:wrap;gap:10px}.pref-chip{font-size:14px;padding:11px 16px}.budget-slider-card{text-align:center;padding:20px 16px}.budget-amount{font-size:26px;font-weight:800;color:var(--gold);margin-bottom:14px}.budget-slider-card input[type=range]{width:100%;accent-color:var(--gold)}.slider-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--text-dim);margin-top:6px}.magic-loading{height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;animation:fadeUp .3s ease-out}.magic-orb{font-size:54px;animation:orbFloat 1.4s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(240,199,90,.65))}@keyframes orbFloat{0%,to{transform:translateY(0) scale(1) rotate(-6deg)}50%{transform:translateY(-14px) scale(1.12) rotate(6deg)}}.magic-text{font-size:16px;font-weight:700}.magic-sub{font-size:12px;color:var(--text-dim)}.saved-card{background:linear-gradient(135deg,var(--bg-card-2) 0%,#2a2560 100%);border-color:var(--gold);text-align:center;padding:18px 16px}.saved-label{font-size:12px;color:var(--text-dim)}.saved-num{font-size:17px;font-weight:700;margin-top:4px}.saved-num strong{font-size:38px;color:var(--gold);font-weight:800}.saved-sub{font-size:11px;color:var(--text-dim);margin-top:6px}.dpa-card{margin-top:10px;border-color:#7f7fff80}.dpa-title{font-size:12px;font-weight:700;color:var(--accent)}.dpa-body{font-size:13px;margin-top:6px;line-height:1.5}.dpa-body strong{color:var(--gold)}.dpa-reason{font-size:11px;color:var(--text-dim);margin-top:6px}.timeline{position:relative;padding-left:0}.timeline-item{display:flex;align-items:flex-start;gap:10px;padding:7px 0;position:relative;animation:fadeUp .35s ease-out both}.timeline-time{width:44px;font-size:12px;font-weight:700;color:var(--gold);padding-top:2px;flex-shrink:0;font-variant-numeric:tabular-nums}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--gold);margin-top:5px;flex-shrink:0;box-shadow:0 0 8px #f0c75a99;position:relative}.timeline-item:not(:last-child) .timeline-dot:after{content:"";position:absolute;top:12px;left:4.5px;width:1px;height:40px;background:#f0c75a40}.timeline-body{flex:1;min-width:0}.timeline-name{font-size:13.5px;font-weight:700;line-height:1.4}.timeline-meta{font-size:11px;color:var(--text-dim);margin-top:2px}.budget-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.stepper-card{text-align:center;padding:12px}.stepper-label{font-size:11px;color:var(--text-dim);margin-bottom:8px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:8px}.stepper span{font-size:17px;font-weight:800}.stepper button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:var(--bg-card-2);color:var(--text);font-size:17px;cursor:pointer;transition:transform .1s}.stepper button:active{transform:scale(.88)}.segment{display:flex;background:var(--bg-card);border-radius:12px;padding:4px;border:1px solid rgba(255,255,255,.07)}.segment button{flex:1;padding:9px 0;border:none;border-radius:9px;background:none;color:var(--text-dim);font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s}.segment button.active{background:var(--gold);color:#241a05;font-weight:700}.budget-amount.small{font-size:20px;margin-bottom:10px}.total-card{margin-top:18px;background:linear-gradient(135deg,var(--bg-card-2) 0%,#2a2560 100%);border-color:var(--gold);padding:18px 16px}.total-label{font-size:12px;color:var(--text-dim)}.total-amount{font-size:36px;font-weight:800;color:var(--gold);margin-top:4px;font-variant-numeric:tabular-nums}.total-per-person{font-size:12px;color:var(--text-dim);margin-top:2px;font-variant-numeric:tabular-nums}.breakdown-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;margin-top:14px;background:#ffffff0f}.breakdown-seg{transition:width .4s ease}.breakdown-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.breakdown-row{display:flex;align-items:center;gap:8px;font-size:12.5px}.breakdown-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.breakdown-name{flex:1}.breakdown-amount{font-weight:700;font-variant-numeric:tabular-nums}.passport-header{background:linear-gradient(135deg,#2a2560 0%,var(--bg-card-2) 100%);border:1.5px solid var(--gold);border-radius:var(--radius);padding:20px 16px;text-align:center}.passport-title{font-size:15px;font-weight:800;letter-spacing:.22em;color:var(--gold)}.passport-count{font-size:12px;color:var(--text-dim);margin-top:8px;letter-spacing:.12em}.passport-count strong{font-size:22px;color:var(--text)}.stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stamp-cell{background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.stamp,.stamp-empty{aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%}.stamp{border:2.5px solid var(--gold);background:var(--gold-soft);transform:rotate(-8deg);box-shadow:0 0 16px #f0c75a2e}.stamp.stamping{animation:stampPress .55s cubic-bezier(.2,1.6,.4,1)}@keyframes stampPress{0%{transform:rotate(-25deg) scale(2.1);opacity:0}55%{transform:rotate(-8deg) scale(.92);opacity:1}75%{transform:rotate(-8deg) scale(1.06)}to{transform:rotate(-8deg) scale(1)}}.stamp-empty{border:2px dashed rgba(255,255,255,.18);transition:border-color .2s,transform .15s}.stamp-cell:active .stamp-empty{transform:scale(.92);border-color:var(--gold)}.stamp-flag{font-size:22px}.stamp-flag.dim{opacity:.35;filter:grayscale(1)}.stamp-name{font-size:11px;font-weight:700;color:var(--gold)}.stamp-name.dim{color:var(--text-dim)}.stamp-date{font-size:8px;letter-spacing:.14em;color:var(--gold);opacity:.8}.ridden-list{display:flex;flex-wrap:wrap;gap:8px}.ridden-chip{font-size:11px;padding:7px 11px;cursor:default}.badge-shelf{display:flex;flex-direction:column;gap:8px}.badge-card{display:flex;align-items:center;gap:12px;padding:12px 14px;opacity:.45;filter:grayscale(1);transition:all .4s}.badge-card.earned{opacity:1;filter:none;border-color:#f0c75a80}.badge-icon{font-size:24px}.badge-name{font-size:13px;font-weight:700}.badge-desc{font-size:11px;color:var(--text-dim);margin-top:1px}.badge-check{margin-left:auto;color:var(--gold);font-weight:800;font-size:16px}
