:root{--bg: #0b0e14;--bg-soft: #10141d;--panel: #131824;--panel-2: #1a2130;--line: #232b3a;--text: #f2f4f8;--muted: #8a93a6;--accent: #b6f13e;--accent-ink: #0b0e14;--danger: #ff6b5e;--radius: 16px;--nav-h: 60px;font-size:16px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{position:relative;z-index:0}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(182,241,62,.07),transparent 60%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{min-height:100dvh;display:flex;flex-direction:column;max-width:560px;margin:0 auto}.app-main{flex:1;padding:16px 16px calc(var(--nav-h) + 24px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 4px}.topbar-brand{font-weight:800;letter-spacing:.02em;font-size:15px;display:flex;align-items:center;gap:8px}.topbar-brand svg{color:var(--accent)}.topbar-actions{display:flex;gap:8px}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--muted);display:grid;place-items:center;transition:color .15s ease,border-color .15s ease}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:#b6f13e66}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#0b0e14eb;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:50}.bottom-nav-inner{display:flex;width:100%;max-width:560px;margin:0 auto}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;color:var(--muted);border:none;background:none;padding-top:6px}.nav-item.active{color:var(--accent)}.nav-item .nav-dot{width:4px;height:4px;border-radius:50%;background:transparent}.nav-item.active .nav-dot{background:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border-radius:14px;border:none;font-size:16px;font-weight:700;transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.97)}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.btn-block{width:100%}.btn[disabled]{opacity:.45;pointer-events:none}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:12px;font-weight:600}.mono{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.04em;color:var(--muted)}.hero{padding:40px 6px 8px}.hero-kicker{color:var(--accent);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase}.hero-title{font-size:clamp(44px,13vw,64px);line-height:1.02;font-weight:900;margin:10px 0 12px;letter-spacing:-.02em}.hero-title .accent{color:var(--accent)}.hero-sub{color:var(--muted);font-size:15.5px;line-height:1.65;max-width:34em}.hero-visual{margin:26px 0;height:240px;border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(500px 240px at 50% 120%,rgba(182,241,62,.12),transparent 65%),var(--bg-soft);overflow:hidden}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}.stat-card b{display:block;font-size:24px;font-weight:800}.stat-card span{font-size:11px;color:var(--muted)}.howto{margin-top:26px}.howto h2{font-size:15px;margin:0 0 12px}.howto ol{margin:0;padding:0;list-style:none;display:grid;gap:10px}.howto li{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:13.5px;line-height:1.55;color:var(--muted)}.howto li b{color:var(--text);display:block;margin-bottom:2px}.howto .step-no{flex:none;width:26px;height:26px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);color:var(--accent);font-weight:800;font-size:12px;display:grid;place-items:center}.play-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.passes{display:flex;gap:6px}.pass-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}.pass-dot.used{background:var(--accent)}.stage{position:relative;height:clamp(240px,42dvh,380px);border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(600px 260px at 50% 130%,rgba(182,241,62,.1),transparent 60%),linear-gradient(180deg,#0d1119,#0b0e14);overflow:hidden}.stage-canvas{position:absolute;inset:0}.stage-fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px}.stage-fallback img{border-radius:50%}.stage-fallback p{margin:0;color:var(--muted);font-size:11.5px}.stage-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center}.stage-overlay .overlay-panel{background:#0b0e14d1;backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius);padding:22px 20px;width:min(100%,340px)}.overlay-panel h2{margin:0 0 6px;font-size:20px}.overlay-panel p{margin:0 0 16px;color:var(--muted);font-size:13.5px;line-height:1.6}.question-bar{margin:14px 0 10px}.question-bar h2{font-size:17px;margin:0 0 4px}.question-bar p{margin:0;color:var(--muted);font-size:12.5px}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option-btn{min-height:56px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:13.5px;font-weight:650;line-height:1.35;text-align:left;transition:transform .12s ease,background .12s ease,border-color .12s ease;display:flex;align-items:center;gap:8px}.option-btn:active{transform:scale(.97)}.option-btn .opt-key{flex:none;width:22px;height:22px;border-radius:7px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:11px;font-weight:800;display:grid;place-items:center}.option-btn.wrong{border-color:var(--danger);color:var(--danger);animation:shake .3s ease}.option-btn.wrong .opt-key{border-color:var(--danger);color:var(--danger)}.option-btn.correct{border-color:var(--accent);color:var(--accent)}.option-btn[disabled]{opacity:.55}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.grade-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:800;font-size:15px;border:1px solid var(--line);background:var(--panel-2)}.grade-Mint{color:#b6f13e}.grade-Good{color:#7ddba3}.grade-Worn{color:#e0b84f}.grade-Battered{color:#9aa1ae}.result-name{font-size:clamp(30px,9vw,40px);font-weight:900;letter-spacing:-.02em;margin:10px 0 2px}.result-meta{color:var(--muted);font-size:13.5px;margin:0 0 14px}.group-head{margin:22px 0 12px}.group-head h2{font-size:16px;margin:0 0 3px}.group-head p{margin:0;color:var(--muted);font-size:12px}.ball-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ball-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;transition:transform .12s ease}.ball-card:active{transform:scale(.97)}.ball-thumb{width:72px;height:72px;border-radius:50%;background:var(--bg-soft)}.ball-card h3{margin:0;font-size:14.5px}.ball-card .ball-year{color:var(--muted);font-size:11.5px}.grade-pip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--muted)}.grade-pip.collected{color:var(--accent)}.detail-hero{height:260px;border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(420px 200px at 50% 115%,rgba(182,241,62,.12),transparent 65%),var(--bg-soft);overflow:hidden}.detail-title{font-size:clamp(30px,8vw,38px);font-weight:900;margin:16px 0 4px;letter-spacing:-.02em}.detail-sub{color:var(--muted);font-size:13.5px;margin:0 0 14px}.fact-table{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}.fact-table th,.fact-table td{text-align:left;padding:9px 4px;border-bottom:1px solid var(--line);vertical-align:top}.fact-table th{color:var(--muted);font-weight:600;width:88px}.story{color:#c6ccd8;font-size:14px;line-height:1.8;margin:14px 0}.showcase-stage{height:clamp(320px,55dvh,480px);border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(600px 300px at 50% 110%,rgba(182,241,62,.1),transparent 60%),linear-gradient(180deg,#0d1220,#0b0e14);overflow:hidden}.showcase-list{margin-top:14px;display:grid;gap:8px}.showcase-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.showcase-row img{width:40px;height:40px;border-radius:50%}.showcase-row .row-name{font-weight:700;font-size:13.5px}.showcase-row .row-meta{font-size:11.5px;color:var(--muted)}.showcase-row .row-grade{margin-left:auto;font-size:11.5px;font-weight:800}.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}.empty-state svg{color:var(--accent);margin-bottom:10px}.empty-state h2{color:var(--text);margin:0 0 6px;font-size:19px}.summary-list{display:grid;gap:8px;margin:14px 0}.page-title{font-size:22px;font-weight:800;margin:6px 0 2px}.page-desc{color:var(--muted);font-size:13px;margin:0 0 14px}@media (min-width: 640px){.ball-grid{grid-template-columns:1fr 1fr 1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.blob{animation:none!important}}.site-backdrop{position:fixed;inset:0;z-index:-1;background-repeat:repeat;pointer-events:none;overflow:hidden}.blob{position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(70px);will-change:transform}.blob-a{top:-15%;left:-12%;background:radial-gradient(circle,rgba(70,140,60,.15),transparent 65%);animation:drift-a 26s ease-in-out infinite alternate}.blob-b{bottom:-22%;right:-15%;background:radial-gradient(circle,rgba(182,241,62,.06),transparent 65%);animation:drift-b 32s ease-in-out infinite alternate}.blob-c{top:32%;left:48%;background:radial-gradient(circle,rgba(44,96,128,.11),transparent 65%);animation:drift-c 38s ease-in-out infinite alternate}@keyframes drift-a{0%{transform:translateZ(0)}to{transform:translate3d(9vw,6vh,0)}}@keyframes drift-b{0%{transform:translateZ(0)}to{transform:translate3d(-8vw,-7vh,0)}}@keyframes drift-c{0%{transform:translateZ(0)}to{transform:translate3d(-10vw,5vh,0)}}.hero-title .ch{display:inline-block;opacity:0;animation:char-rise .3s cubic-bezier(.2,.7,.3,1) forwards;will-change:transform,opacity}@keyframes char-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
