:root{--bg: #f3eee3;--bg-dot: #ddd3c0;--bg2: #ebe3d3;--card: #fffaf0;--card-edge: #e3d7c0;--fg: #1f1b16;--muted: #7b7163;--line: #e6dcc8;--ink: #1f1b16;--ink-fg: #fffaf0;--shadow: 0 6px 0 var(--card-edge), 0 18px 30px -18px rgba(70, 50, 20, .35);--glow: 0;--k-use: #f5b83d;--k-use-d: #c4860f;--k-use-h: #ffd982;--k-ctrl: #3cc3b0;--k-ctrl-d: #1d8a79;--k-ctrl-h: #8ee6d8;--k-skill: #8b7cf6;--k-skill-d: #5a48d4;--k-skill-h: #c2b9ff;--k-net: #f2777a;--k-net-d: #c4434a;--k-net-h: #ffb3b4;--k-wallet: #6cc56a;--k-wallet-d: #3e9440;--k-wallet-h: #b4ecb2;--k-fresh: #f08fc0;--k-fresh-d: #c2558f;--k-fresh-h: #ffc6e2;--k-final: #5aa9f0;--k-final-d: #2b78c2;--k-final-h: #aed6ff;--k-fg: #1d1a15;--good: #2f9e6a;--warn-bg: #fff1cf;--warn-fg: #7a5200;--stamp: #d93a2f;--radius: 20px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;--ease-back: cubic-bezier(.34, 1.56, .64, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e0d12;--bg-dot: #23212c;--bg2: #1c1a23;--card: #17161d;--card-edge: #0a090d;--fg: #f3efe6;--muted: #a29b8f;--line: #2c2a35;--ink: #f3efe6;--ink-fg: #0e0d12;--shadow: 0 6px 0 #08070b, 0 0 0 1px #2a2833, 0 20px 40px -20px rgba(0, 0, 0, .9);--glow: 1;--warn-bg: #33290f;--warn-fg: #f3d58a;color-scheme:dark}}:root[data-theme=dark]{--bg: #0e0d12;--bg-dot: #23212c;--bg2: #1c1a23;--card: #17161d;--card-edge: #0a090d;--fg: #f3efe6;--muted: #a29b8f;--line: #2c2a35;--ink: #f3efe6;--ink-fg: #0e0d12;--shadow: 0 6px 0 #08070b, 0 0 0 1px #2a2833, 0 20px 40px -20px rgba(0, 0, 0, .9);--glow: 1;--warn-bg: #33290f;--warn-fg: #f3d58a;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--fg);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh;background-color:var(--bg);background-image:radial-gradient(var(--bg-dot) 1.2px,transparent 1.3px);background-size:22px 22px}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:3px solid var(--k-skill);outline-offset:3px}a{color:inherit}img{max-width:100%}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.aurora i{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(60px);opacity:.28;animation:drift 18s ease-in-out infinite alternate}.aurora i:nth-child(1){background:var(--a1, var(--k-use));left:-25vmax;top:-20vmax}.aurora i:nth-child(2){background:var(--a2, var(--k-skill));right:-30vmax;top:30vh;animation-delay:-6s}.aurora i:nth-child(3){background:var(--a3, var(--k-net));left:-10vmax;bottom:-35vmax;animation-delay:-12s;opacity:.2}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(6vmax,4vmax) scale(1.15)}}.wrap{max-width:540px;margin:0 auto;padding:0 16px 48px;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0 6px;gap:12px}.brand{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);letter-spacing:.06em}.brand .mini{display:inline-flex;gap:3px}.icon-btn{border:0;background:var(--card);border-radius:12px;width:40px;height:40px;display:grid;place-items:center;font-size:17px;box-shadow:inset 0 -4px 0 var(--line),0 2px 0 var(--card-edge);transition:transform .1s}.icon-btn:active{transform:translateY(3px);box-shadow:inset 0 -1px 0 var(--line)}.caps{display:inline-flex;gap:10px}.cap{--c: var(--k-use);--cd: var(--k-use-d);--ch: var(--k-use-h);position:relative;min-width:50px;height:54px;padding:0 10px 6px;border:0;border-radius:13px;background:linear-gradient(180deg,var(--ch) 0%,var(--c) 46%);color:var(--k-fg);font-family:var(--mono);font-weight:900;font-size:26px;line-height:1;display:inline-grid;place-items:center;box-shadow:inset 0 2px #fff9,inset 0 -6px 0 var(--cd),0 6px 10px -6px #00000073,0 0 calc(var(--glow) * 22px) calc(var(--glow) * -2px) var(--c);transition:transform .12s ease,box-shadow .12s ease,filter .2s}.cap:before{content:"";position:absolute;left:6px;right:6px;top:5px;bottom:12px;border-radius:9px;background:linear-gradient(180deg,#fff6,#fff0 75%);pointer-events:none}.cap>*{position:relative}.cap.sm{min-width:26px;height:28px;font-size:14px;border-radius:7px;padding:0 5px 4px;box-shadow:inset 0 1px #fff9,inset 0 -3px 0 var(--cd)}.cap.sm:before{left:3px;right:3px;top:3px;bottom:7px;border-radius:5px}.cap.lg{min-width:66px;height:74px;font-size:38px;border-radius:16px;padding-bottom:8px;box-shadow:inset 0 3px #fff9,inset 0 -8px 0 var(--cd),0 10px 16px -8px #00000073,0 0 calc(var(--glow) * 30px) calc(var(--glow) * -2px) var(--c)}.cap.use{--c: var(--k-use);--cd: var(--k-use-d);--ch: var(--k-use-h)}.cap.ctrl{--c: var(--k-ctrl);--cd: var(--k-ctrl-d);--ch: var(--k-ctrl-h)}.cap.skill{--c: var(--k-skill);--cd: var(--k-skill-d);--ch: var(--k-skill-h)}.cap.net{--c: var(--k-net);--cd: var(--k-net-d);--ch: var(--k-net-h)}.cap.wallet{--c: var(--k-wallet);--cd: var(--k-wallet-d);--ch: var(--k-wallet-h)}.cap.fresh{--c: var(--k-fresh);--cd: var(--k-fresh-d);--ch: var(--k-fresh-h)}.cap.final{--c: var(--k-final);--cd: var(--k-final-d);--ch: var(--k-final-h)}.cap.blank{--c: var(--bg2);--cd: var(--line);--ch: var(--card);color:var(--muted)}.cap.off{filter:saturate(.6) brightness(1.04);opacity:.62}button.cap:active,.cap.pressed{transform:translateY(4px);box-shadow:inset 0 2px #fff9,inset 0 -2px 0 var(--cd),0 2px 4px -2px #0006,0 0 calc(var(--glow) * 30px) var(--c)}.cap.lg.pressed{transform:translateY(6px)}@keyframes capDrop{0%{transform:translateY(-70px) rotate(-10deg);opacity:0}55%{transform:translateY(8px) rotate(2deg);opacity:1}75%{transform:translateY(-4px) rotate(-1deg)}to{transform:translateY(0) rotate(0)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.drop{animation:capDrop .7s var(--ease-back) both;animation-delay:calc(var(--i, 0) * 90ms)}.bob{animation:capDrop .7s var(--ease-back) both,bob 3.2s ease-in-out infinite;animation-delay:calc(var(--i, 0) * 90ms),calc(var(--i, 0) * .26s + .8s)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes slideBack{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.06);opacity:1}to{transform:scale(1)}}@keyframes slideUpIn{0%{transform:translateY(14px)}to{transform:none}}.rise{animation:fadeUp .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i, 0) * 70ms)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;border-radius:16px;padding:15px 18px 19px;font-size:17px;font-weight:800;letter-spacing:.02em;background:linear-gradient(180deg,#3a342c,var(--ink) 50%);color:var(--ink-fg);box-shadow:inset 0 2px #ffffff2e,inset 0 -6px #00000073,0 8px 18px -10px #0009;transition:transform .12s,box-shadow .12s}:root[data-theme=dark] .btn,.btn.light{background:linear-gradient(180deg,#fff,#ece6da 50%);color:#1f1b16;box-shadow:inset 0 2px #fff,inset 0 -6px #b9ae9a,0 0 28px -6px #ffffff59}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .btn{background:linear-gradient(180deg,#fff,#ece6da 50%);color:#1f1b16;box-shadow:inset 0 2px #fff,inset 0 -6px #b9ae9a,0 0 28px -6px #ffffff59}}.btn:active{transform:translateY(4px);box-shadow:inset 0 2px #ffffff2e,inset 0 -2px #00000073}.btn:disabled{opacity:.5}.btn.ghost{background:var(--card);color:var(--fg);box-shadow:inset 0 2px #fff6,inset 0 -5px 0 var(--line),0 2px 0 var(--card-edge)}.btn.small{padding:11px 12px 14px;font-size:15px;border-radius:14px}.btn .kbd{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;border:1px solid currentColor;opacity:.55;letter-spacing:.08em}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stack>*+*{margin-top:12px}.link-btn{background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:6px;font-size:14px}.spacebar{padding:20px 18px 26px;font-size:20px;border-radius:20px;animation:pop .6s var(--ease-back) .55s both}.spacebar .shine{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;pointer-events:none}.spacebar .shine:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);animation:shine 3.4s ease-in-out 1.4s infinite}@keyframes shine{0%{left:-60%}40%,to{left:130%}}.card{position:relative;background:var(--card);border-radius:var(--radius);padding:20px 18px;box-shadow:var(--shadow)}.card+.card{margin-top:18px}.card h2{display:flex;align-items:center;gap:8px;font-size:13px;margin:0 0 12px;color:var(--muted);font-weight:700;letter-spacing:.14em}.card h2 .tag{font-family:var(--mono);letter-spacing:.1em}.start-btn.resume{flex-direction:column;gap:2px;line-height:1.2}.resume-sub{display:block;font-size:13px;font-weight:600;opacity:.75;letter-spacing:0}.api-error{margin-top:18px;text-align:center}.api-error h2{justify-content:center;font-size:20px;letter-spacing:0;color:var(--fg)}.api-error p{color:var(--muted);line-height:1.7;margin:0 0 18px}.follow{display:flex;align-items:center;gap:16px}.follow .mp-qr{flex:none;width:120px;height:120px;padding:6px;background:#fff;border-radius:14px;border:1px solid var(--line)}.follow .follow-txt{min-width:0}.follow .label{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--muted);margin-bottom:2px}.follow b{display:block;font-size:18px;margin-bottom:6px}.col-right>.card:first-child{margin-top:18px}.follow p{margin:0 0 8px;font-size:14px;line-height:1.6;color:var(--muted)}.follow .hint{display:inline-block;font-size:12px;font-weight:700;color:var(--good)}.follow.friend{outline:3px solid var(--good);outline-offset:-3px}@media(max-width:340px){.follow .mp-qr{width:96px;height:96px}.follow{gap:12px}}.hero{padding:20px 0 6px;text-align:center}.logo{display:flex;justify-content:center;gap:8px;margin:10px 0 22px}.logo .cap{min-width:52px;height:58px;font-size:28px}.hero h1{font-size:34px;line-height:1.2;margin:0 0 12px;letter-spacing:.02em;font-weight:900}.hero h1 .hl{position:relative;white-space:nowrap}.hero h1 .hl:after{content:"";position:absolute;left:-4px;right:-4px;bottom:4px;height:12px;border-radius:4px;background:var(--k-use);opacity:.55;z-index:-1;transform-origin:left;animation:underline .7s cubic-bezier(.2,.8,.2,1) .9s both}@keyframes underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero p{margin:0 auto;color:var(--muted);max-width:25em}.facts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0 20px}.fact{display:inline-flex;align-items:baseline;gap:4px;background:var(--card);border-radius:999px;padding:4px 12px;font-size:13px;color:var(--muted);box-shadow:inset 0 -2px 0 var(--line)}.fact b{color:var(--fg);font-family:var(--mono);font-size:15px}.marquee{position:relative;overflow:hidden;margin:22px -16px 0;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.marquee .track{display:flex;width:max-content;animation:marquee 60s linear infinite}.marquee .track>*{flex:none;margin-right:10px}.marquee.rev .track{animation-direction:reverse;animation-duration:66s}.marquee-label{display:flex;align-items:baseline;gap:8px;margin:18px 0 -12px;font-size:12px;color:var(--muted);font-weight:600}.marquee-label b{font-size:12px;letter-spacing:.12em}.marquee-label b.m{color:var(--k-skill-d)}.marquee-label b.h{color:var(--k-ctrl-d)}.marquee .track>span{white-space:nowrap;font-size:13px;font-weight:700;padding:6px 12px 8px;border-radius:10px;background:var(--card);box-shadow:inset 0 -3px 0 var(--line)}.marquee .track>span.m{color:var(--k-skill-d)}.marquee .track>span.h{color:var(--k-ctrl-d)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .marquee span.m{color:var(--k-skill-h)}:root:not([data-theme=light]) .marquee span.h{color:var(--k-ctrl-h)}}:root[data-theme=dark] .marquee span.m{color:var(--k-skill-h)}:root[data-theme=dark] .marquee span.h{color:var(--k-ctrl-h)}@keyframes marquee{to{transform:translate(-50%)}}.explain{display:grid;gap:12px}.ex{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}.ex .cap{min-width:40px;height:44px;font-size:20px}.ex b{display:block;font-size:16px;margin-bottom:2px}.ex p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.keyboard-wrap{background:var(--bg2);border-radius:18px;padding:16px 10px 14px;box-shadow:inset 0 3px 8px #00000014}.keyboard{display:flex;flex-wrap:wrap;gap:14px 16px;justify-content:center}.kgroup{display:flex;gap:7px;padding:6px;border-radius:14px;background:var(--card);box-shadow:inset 0 -2px 0 var(--line)}.kb-out{margin-top:16px;text-align:center;min-height:92px}.kb-out .code{font-family:var(--mono);font-weight:900;font-size:22px;letter-spacing:.3em}.kb-out .name{font-size:24px;font-weight:900;animation:pop .45s var(--ease-back) both}.kb-out .line{color:var(--muted);font-size:14px;animation:fadeUp .4s .1s both}.quiz-head{position:sticky;top:0;z-index:5;padding:10px 0 14px;background:linear-gradient(var(--bg) 78%,transparent)}.qmeta{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}.qmeta .sec{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--fg)}.qmeta .dot{width:10px;height:10px;border-radius:3px;background:var(--sc);box-shadow:0 0 calc(var(--glow) * 10px) var(--sc)}.qmeta .count{margin-left:auto;font-family:var(--mono);font-weight:700}.progress{height:10px;border-radius:99px;background:var(--bg2);margin-top:10px;overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}.progress>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--k-use),var(--k-skill),var(--k-ctrl),var(--k-net),var(--k-wallet),var(--k-fresh),var(--k-final));background-size:540px 100%;transition:width .45s cubic-bezier(.2,.8,.2,1)}.back{border:0;background:none;color:var(--muted);padding:4px 0;font-size:14px}.qcard{position:relative;margin-top:4px}.qcard.fwd{animation:slideIn .38s cubic-bezier(.2,.8,.2,1) both}.qcard.bwd{animation:slideBack .38s cubic-bezier(.2,.8,.2,1) both}.qnum{position:absolute;right:-4px;top:-26px;font-family:var(--font);font-weight:900;font-size:88px;line-height:1;color:var(--sc);opacity:.14;pointer-events:none;letter-spacing:-.04em}.qtag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--k-fg);background:var(--sc);padding:3px 10px;border-radius:999px;box-shadow:inset 0 -2px #0000002e}.question{position:relative;font-size:22px;line-height:1.5;font-weight:900;margin:12px 0 6px}.hint{color:var(--muted);font-size:14px;margin:0 0 8px}.qtag.multi{margin-left:8px;background:var(--k-net);color:#fff;box-shadow:inset 0 -2px #0003}.multi-hint{color:var(--fg);font-weight:700;background:var(--warn-bg);border-radius:12px;padding:8px 12px}.opt .check{flex:none;width:28px;height:28px;border-radius:8px;border:2.5px solid var(--line);background:var(--card);display:grid;place-items:center;font-size:17px;font-weight:900;color:#fff;transition:transform .15s var(--ease-back)}.opt.on .check{background:var(--k-fg);border-color:var(--k-fg);transform:scale(1.08)}.tower{display:flex;align-items:flex-end;gap:6px;margin:14px 0 4px;height:46px}.tower i{flex:1;border-radius:8px 8px 4px 4px;background:var(--bg2);box-shadow:inset 0 -3px 0 var(--line);position:relative}.tower i:nth-child(1){height:30%}.tower i:nth-child(2){height:45%}.tower i:nth-child(3){height:60%}.tower i:nth-child(4){height:80%}.tower i:nth-child(5){height:100%}.tower i.done{background:var(--sc);box-shadow:inset 0 2px #fff6,inset 0 -3px #0003,0 0 calc(var(--glow) * 14px) var(--sc)}.tower i.now{background:var(--sc);opacity:.55;animation:pulse 1.2s ease-in-out infinite}.tower i.now:after{content:"\25bc";position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:12px;color:var(--sc)}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.85}}.options{display:grid;gap:11px;margin-top:16px}.opt{position:relative;text-align:left;width:100%;border:0;background:var(--card);border-radius:16px;padding:14px 14px 18px;font-size:16px;line-height:1.5;display:flex;align-items:center;gap:12px;box-shadow:inset 0 2px #ffffff59,inset 0 -5px 0 var(--line),0 3px 0 var(--card-edge);animation:slideUpIn .35s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(min(var(--i, 0),6)*30ms);transition:transform .1s ease,box-shadow .1s ease,background .15s ease}.opt .key{font-family:var(--mono);font-weight:900;font-size:14px;width:30px;height:32px;flex:none;border-radius:8px;background:var(--bg2);display:grid;place-items:center;color:var(--muted);padding-bottom:3px;box-shadow:inset 0 -3px 0 var(--line)}.opt .txt{flex:1}.opt:active{transform:translateY(3px);box-shadow:inset 0 -2px 0 var(--line),0 0 0 var(--card-edge)}.opt.on{background:var(--sc);color:var(--k-fg);box-shadow:inset 0 2px #ffffff73,inset 0 -5px #0003,0 0 calc(var(--glow) * 22px) calc(var(--glow) * -4px) var(--sc);transform:translateY(2px)}.opt.on .key{background:#ffffff8c;color:var(--k-fg);box-shadow:inset 0 -3px #00000026}.opt .star{flex:none;border:0;background:none;font-size:24px;line-height:1;padding:4px;color:#00000040;transition:transform .2s var(--ease-back)}.opt .star.on{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.35),0 0 12px rgba(255,255,255,.8);transform:scale(1.2) rotate(-12deg)}.opt-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;font-weight:700;margin:8px 0 0}.opt-divider:before,.opt-divider:after{content:"";flex:1;height:2px;border-radius:2px;background:var(--line)}.opt.skip{justify-content:center;min-height:60px;font-weight:800;background:var(--warn-bg);color:var(--warn-fg);box-shadow:inset 0 2px #ffffff73,inset 0 -5px #7a520033,0 3px 0 var(--card-edge)}.opt.skip .txt{flex:0 1 auto}.opt.skip .key{background:var(--warn-fg);color:var(--warn-bg);border-radius:50%;box-shadow:none;font-size:16px;width:28px;height:28px;padding:0}.opt.skip.on{background:var(--warn-fg);color:var(--warn-bg)}.q-actions{margin-top:18px;position:sticky;bottom:12px}.kbd-hint{margin-top:14px;text-align:center;font-size:12px;color:var(--muted)}.kbd-hint kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-bottom-width:3px;border-radius:5px;padding:0 5px;background:var(--card)}.toast{position:fixed;left:50%;top:42%;z-index:60;transform:translate(-50%,-50%) scale(.6) rotate(-4deg);background:var(--ink);color:var(--ink-fg);padding:18px 26px 20px;border-radius:18px;font-weight:900;font-size:22px;text-align:center;opacity:0;pointer-events:none;max-width:calc(100% - 48px);box-shadow:inset 0 -6px #0006,0 20px 40px -10px #00000080;transition:opacity .2s ease,transform .35s var(--ease-back)}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}.toast .stage{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.3em;opacity:.7;margin-bottom:4px}.toast small{display:block;font-weight:500;font-size:14px;opacity:.8;margin-top:4px}.reveal-screen{min-height:88vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:26px}.slot{display:flex;gap:12px}.slot .cap{min-width:70px;height:80px;font-size:40px;overflow:hidden}.slot .cap.spin span{animation:spinY .09s linear infinite}.slot .cap.land{animation:land .5s var(--ease-back)}@keyframes spinY{0%{transform:translateY(-40%);opacity:.3}50%{opacity:1}to{transform:translateY(40%);opacity:.3}}@keyframes land{0%{transform:translateY(-14px) scale(1.1)}to{transform:none}}.reveal-msg{font-size:16px;color:var(--muted);min-height:1.6em}.reveal-msg b{color:var(--fg)}.dots:after{content:"";animation:dots 1.2s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:70;overflow:hidden}.confetti i{position:absolute;left:var(--x0);top:var(--y0);width:22px;height:22px;border-radius:6px;font-style:normal;background:var(--c);box-shadow:inset 0 -3px #00000038;color:#1d1a15;font:900 12px/22px var(--mono);text-align:center;animation:fly var(--d, 1.4s) cubic-bezier(.15,.7,.3,1) forwards}@keyframes fly{0%{transform:translate(0) rotate(0) scale(.4);opacity:1}70%{opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--r)) scale(1);opacity:0}}.banner{background:var(--warn-bg);color:var(--warn-fg);border-radius:14px;padding:10px 12px 10px 16px;font-size:14px;margin:6px 0 14px;display:flex;align-items:center;gap:10px;justify-content:space-between;font-weight:700}.type-card{text-align:center;padding:26px 18px 22px;overflow:hidden;color:var(--k-fg);background:linear-gradient(150deg,var(--t1),var(--t2));box-shadow:0 6px 0 var(--t3),0 24px 40px -18px var(--t2)}.type-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.35) 1.2px,transparent 1.3px);background-size:18px 18px;opacity:.5;pointer-events:none}.type-card>*{position:relative}.type-card .hello{font-size:13px;font-weight:800;letter-spacing:.2em;opacity:.75}.type-card .caps{margin:14px 0 16px}.type-name{font-size:40px;font-weight:900;line-height:1.15;margin:0;letter-spacing:.04em;animation:pop .6s var(--ease-back) .45s both;text-shadow:0 2px 0 rgba(255,255,255,.35)}.type-line{margin:10px 0 0;font-size:16px;font-weight:700;animation:fadeUp .5s .65s both}.bubble{display:inline-block;position:relative;margin:16px auto 0;background:#ffffffc7;color:#1d1a15;border-radius:14px;padding:8px 14px;font-size:14px;font-weight:700;animation:pop .5s var(--ease-back) .85s both}.bubble:before{content:"";position:absolute;top:-8px;left:50%;margin-left:-8px;border:8px solid transparent;border-top:0;border-bottom-color:#ffffffc7}.dims-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:16px;animation:fadeUp .5s 1s both}.legend-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px}.legend-row.on-card{animation:fadeUp .5s 1s both}.lg{display:inline-flex;align-items:center;gap:6px;padding:3px 11px 3px 3px;border-radius:999px;background:#ffffff8c;font-size:13px;font-weight:700;color:#1d1a15}.lg i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;font:800 12px var(--mono);color:#1d1a15}.lg i.use{background:var(--k-use)}.lg i.ctrl{background:var(--k-ctrl)}.lg i.skill{background:var(--k-skill)}.lg i.net{background:var(--k-net)}.legend-btn{margin-top:8px;font-size:12px;color:#1d1a15b3}.legend-dim{margin-bottom:14px}.legend-h{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--muted);margin-bottom:6px}.legend-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--bg2);margin-bottom:6px}.legend-item.me{outline:2px solid var(--good)}.legend-item .cap{flex:none}.legend-item>div{flex:1;min-width:0}.legend-item p{margin:2px 0 0;font-size:13px;color:var(--muted);line-height:1.5}.legend-t{display:flex;align-items:baseline;gap:8px}.legend-t .en{font:700 12px var(--mono);color:var(--muted)}.legend-t .you{margin-left:auto;font-size:12px;font-weight:800;color:var(--good)}.kcol{display:flex;flex-direction:column;align-items:center;gap:6px}.klabel{font-size:11px;color:var(--muted);white-space:nowrap}.dims-legend span{background:#fff6;border-radius:999px;padding:2px 10px;font-size:12px}.dims-legend b{margin-left:2px}.type-card.hidden-type{background:linear-gradient(135deg,#ffe08f,#ff9fd0 45%,#9fd8ff 85%);box-shadow:0 6px #c46a9a,0 0 46px -6px #ff9fd0,0 0 80px -20px #9fd8ff}.type-card.hidden-type:after{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.35),transparent 30%);animation:spin 6s linear infinite;pointer-events:none}@keyframes spin{to{transform:rotate(1turn)}}.ribbon{position:absolute;left:-34px;top:18px;z-index:2;transform:rotate(-35deg);background:#2b2523;color:#ffe08f;font-weight:900;font-size:13px;letter-spacing:.2em;padding:4px 40px;box-shadow:0 3px 8px #00000040}.base-type{margin-top:12px;font-size:13px;font-weight:700;opacity:.75}.pack-item+.pack-item{margin-top:14px;padding-top:6px;border-top:2px dashed var(--line)}.dot-A{width:14px;height:14px;border-radius:5px;display:inline-block;background:linear-gradient(135deg,#ffcf3f,#ff8fb7,#5aa9f0)}.gal button.locked .avatar.card{filter:brightness(0) saturate(0);opacity:.14}.locked-wrap{position:relative}.lock-q{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font:900 72px/1 var(--mono);color:var(--k-skill);text-shadow:0 4px 0 rgba(0,0,0,.12);animation:bob 2.4s ease-in-out infinite}.gal button.locked .nm,.gal button.locked .code{color:var(--muted)}.stamp{position:absolute;right:16px;top:18px;z-index:2;transform:rotate(14deg);border:4px solid var(--stamp);color:var(--stamp);border-radius:12px;padding:4px 10px;font-weight:900;font-size:19px;letter-spacing:.12em;background:#ffffffbf;animation:stampIn .55s cubic-bezier(.2,.8,.2,1) 1.2s both}.stamp:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1.5px solid var(--stamp);border-radius:7px}@keyframes stampIn{0%{transform:scale(2.6) rotate(-10deg);opacity:0}60%{transform:scale(.92) rotate(16deg);opacity:1}to{transform:scale(1) rotate(14deg)}}.shake{animation:shake .4s ease 1.6s}@keyframes shake{0%,to{transform:none}25%{transform:translate(-5px) rotate(-.6deg)}50%{transform:translate(4px) rotate(.5deg)}75%{transform:translate(-2px)}}.chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 10px;font-size:12px;background:var(--bg2);color:var(--muted);white-space:nowrap;font-weight:600}.chip.dark{background:var(--ink);color:var(--ink-fg)}.chips{display:flex;flex-wrap:wrap;gap:6px}.pair{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch;margin:14px 0 16px}.pair .side{border-radius:16px;padding:12px 12px 14px;min-width:0;background:var(--bg2);box-shadow:inset 0 -4px 0 var(--line)}.pair .side.m{animation:slideBack .55s cubic-bezier(.2,.8,.2,1) both}.pair .side.h{animation:slideIn .55s cubic-bezier(.2,.8,.2,1) both}.pair .label{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.14em}.pair .val{font-weight:900;font-size:18px;line-height:1.3;margin:4px 0 10px;word-break:break-word}.pair .side.m .val{color:var(--k-skill-d)}.pair .side.h .val{color:var(--k-ctrl-d)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .pair .side.m .val{color:var(--k-skill-h)}:root:not([data-theme=light]) .pair .side.h .val{color:var(--k-ctrl-h)}}:root[data-theme=dark] .pair .side.m .val{color:var(--k-skill-h)}:root[data-theme=dark] .pair .side.h .val{color:var(--k-ctrl-h)}.pair .x{align-self:center}.pair .chip{white-space:normal}.pair .x .cap{min-width:36px;height:40px;font-size:20px;animation:pop .5s var(--ease-back) .35s both}.reasons{list-style:none;padding:0;margin:0}.reasons li{position:relative;padding:8px 10px 8px 40px;margin:6px 0;font-size:15px;background:var(--bg2);border-radius:12px}.reasons li:before{content:"\2713";position:absolute;left:10px;top:50%;margin-top:-11px;width:22px;height:22px;border-radius:7px;background:var(--good);color:#fff;font-weight:900;font-size:13px;display:grid;place-items:center}.steps{list-style:none;padding:0;margin:6px 0 0;counter-reset:s}.steps li{counter-increment:s;position:relative;padding:4px 0 4px 40px;margin:6px 0;font-size:15px}.steps li:before{content:counter(s);position:absolute;left:0;top:3px;width:28px;height:30px;border-radius:8px;background:var(--card);font:900 14px/27px var(--mono);text-align:center;box-shadow:inset 0 -3px 0 var(--line),0 0 0 1.5px var(--line)}.sub-title{font-size:12px;color:var(--muted);margin:16px 0 4px;font-weight:800;letter-spacing:.14em}.privacy-line{display:flex;gap:8px;align-items:baseline;margin:-4px 0 4px;padding:8px 12px;border-radius:12px;background:var(--bg2);font-size:13px;color:var(--muted)}.privacy-line b{flex:none;color:var(--k-ctrl-d);font-size:12px;letter-spacing:.1em}.privacy-line.small{margin:8px 0 0}.note{background:var(--warn-bg);color:var(--warn-fg);border-radius:14px;padding:10px 14px;font-size:14px;margin-top:14px}.note p{margin:0}.note p+p{margin-top:6px}.alts{display:grid;gap:12px}.alt{border-radius:16px;padding:14px;background:var(--bg2);box-shadow:inset 0 -4px 0 var(--line)}.alt .why{display:inline-block;font-size:12px;font-weight:800;color:var(--k-fg);background:var(--k-use);border-radius:999px;padding:2px 10px;margin-bottom:6px}.alt.popular .why{background:var(--k-net)}.alt.editor .why,.alt.overseas-free .why{background:var(--k-final)}.alt .name{font-weight:900;font-size:17px;margin:2px 0 4px;line-height:1.35}.bar{display:flex;height:30px;border-radius:10px;overflow:hidden;background:var(--bg2);font-size:12px;font-weight:800;color:var(--k-fg);box-shadow:inset 0 1px 3px #00000026}.bar>span{display:grid;place-items:center;white-space:nowrap;overflow:hidden;min-width:0;transform-origin:left;transform:scaleX(0);transition:transform .9s cubic-bezier(.2,.8,.2,1)}.in .bar>span{transform:scaleX(1)}.bar>span:nth-child(2){transition-delay:.15s}.bar>span:nth-child(3){transition-delay:.3s}.bar-row+.bar-row{margin-top:16px}.bar-row .lbl{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}.bar-row .lbl b{color:var(--fg);font-family:var(--mono)}.xp{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.xp i{height:18px;border-radius:6px;background:var(--bg2);box-shadow:inset 0 -3px 0 var(--line);transition:background .3s,box-shadow .3s}.xp.skill i.on{--x: var(--k-skill)}.xp.net i.on{--x: var(--k-net)}.in .xp i.on{background:var(--x);box-shadow:inset 0 2px #ffffff59,inset 0 -3px #0003,0 0 calc(var(--glow) * 12px) var(--x)}.xp i:nth-child(2){transition-delay:.12s}.xp i:nth-child(3){transition-delay:.24s}.xp i:nth-child(4){transition-delay:.36s}.xp i:nth-child(5){transition-delay:.48s}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:var(--bg2);border-radius:14px;padding:12px 6px 10px;text-align:center;box-shadow:inset 0 -4px 0 var(--line)}.stat b{display:block;font-size:20px;font-family:var(--mono);line-height:1.3;font-weight:900}.stat span{font-size:12px;color:var(--muted);font-weight:600}.ring{--p: 0;width:46px;height:46px;margin:0 auto 2px;border-radius:50%;background:conic-gradient(var(--k-ctrl) calc(var(--p) * 1%),var(--card) 0);display:grid;place-items:center}.ring:after{content:"";width:32px;height:32px;border-radius:50%;background:var(--bg2)}.ring+b{font-size:16px}.brag{margin:16px 0 0;text-align:center;font-weight:900;font-size:16px;padding:10px;border-radius:14px;border:2px dashed var(--line)}.desc p{margin:0 0 10px}.tip{display:flex;gap:10px;background:var(--bg2);border-radius:14px;padding:10px 12px;font-size:14px;color:var(--muted)}.tip b{color:var(--fg);flex:none}.boss{margin-top:16px;border-radius:16px;padding:14px 16px;background:linear-gradient(135deg,#2a1518,#451b20);color:#ffe3e0;box-shadow:inset 0 -5px #00000059,0 0 calc(var(--glow) * 24px) -6px var(--k-net)}.boss .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.3em;color:var(--k-net-h);font-weight:800}.boss .hp{height:8px;border-radius:99px;background:#ffffff26;margin:6px 0 10px;overflow:hidden}.boss .hp i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff5a5f,#ffb36b);transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.8,.2,1) .3s}.in .boss .hp i{transform:scaleX(.12)}.boss .nm{font-size:18px;font-weight:900}.share-rate{text-align:center;font-size:15px}.share-rate b{font-family:var(--mono);font-size:30px;display:block;line-height:1.2}.feedback{text-align:center;margin-top:12px}.gal-group h3{font-size:16px;margin:22px 0 10px;display:flex;align-items:center;gap:10px;font-weight:900}.gal{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gal button{text-align:left;border:0;background:var(--card);border-radius:16px;padding:12px 12px 16px;min-width:0;box-shadow:inset 0 2px #ffffff59,inset 0 -5px 0 var(--line),0 3px 0 var(--card-edge);transition:transform .15s ease;animation:slideUpIn .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(min(var(--i, 0),8)*30ms)}.gal button:active{transform:translateY(3px) scale(.98)}.gal .codes{display:flex;gap:3px;margin-bottom:8px}.gal .nm{font-weight:900;font-size:16px;margin:2px 0}.gal .ln{font-size:12px;color:var(--muted);line-height:1.45}.gal button.me{box-shadow:inset 0 2px #ffffff59,inset 0 -5px 0 var(--k-use-d),0 0 0 2px var(--k-use),0 0 calc(var(--glow) * 20px) var(--k-use)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a08068c;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sheet{background:var(--bg);width:100%;max-width:540px;max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;padding:10px 16px 28px;animation:sheetUp .38s cubic-bezier(.2,.8,.2,1) both}.sheet:before{content:"";display:block;width:44px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 10px}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sheet-head b{font-size:17px;font-weight:900}.poster-img{display:block;width:100%;border-radius:14px;box-shadow:var(--shadow);-webkit-touch-callout:default;animation:pop .5s var(--ease-back) both}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}footer.foot{margin-top:32px;padding-top:16px;border-top:2px dashed var(--line);font-size:12px;color:var(--muted);line-height:1.7}footer.foot p{margin:0 0 6px}footer.foot a{color:var(--muted)}@media(max-width:359px){.hero h1{font-size:28px}.logo{gap:6px}.logo .cap,.cap{min-width:42px;height:48px;font-size:22px}.cap.lg{min-width:56px;height:64px;font-size:32px}.slot .cap{min-width:58px;height:68px;font-size:34px}.type-name{font-size:32px}.keyboard{gap:10px 10px}.kgroup{gap:5px;padding:5px}.stats{grid-template-columns:repeat(2,1fr)}.pair{grid-template-columns:1fr}.pair .x{justify-self:center}.question{font-size:20px}.qnum{font-size:72px}}@media(prefers-reduced-motion:reduce){.bob{animation:capDrop .7s var(--ease-back) both;animation-delay:calc(var(--i, 0) * 90ms)}.shake{animation:none}.type-card.hidden-type:after{animation:none}.lock-q{animation:none}.spacebar .shine:after{animation:none}.marquee .track{animation-duration:90s}.marquee.rev .track{animation-duration:100s}}.avatar{margin:0 auto}.avatar svg{display:block;width:100%;height:100%}.avatar.hero{width:200px;height:200px;margin:6px auto 14px;filter:drop-shadow(0 14px 18px rgba(0,0,0,.22));animation:heroIn .8s var(--ease-back) both}@keyframes heroIn{0%{transform:translateY(30px) scale(.6) rotate(-8deg);opacity:0}60%{transform:translateY(-6px) scale(1.04) rotate(2deg);opacity:1}to{transform:none}}.avatar.mini{width:92px;height:92px;margin:0 auto 6px;animation:pop .45s var(--ease-back) both;filter:drop-shadow(0 6px 8px rgba(0,0,0,.18))}.avatar.card{width:100%;aspect-ratio:1 / 1;border-radius:18px;overflow:hidden;transition:transform .25s var(--ease-back)}.avatar.card svg{height:auto}.gal button:hover .avatar.card{transform:scale(1.04) rotate(-1.5deg)}.code-text{display:flex;justify-content:center;gap:6px;margin:0 0 6px}.code-text span{min-width:30px;padding:2px 8px 3px;border-radius:10px;font:900 18px/1.3 var(--mono);color:#1d1a15;text-align:center;box-shadow:inset 0 -3px #00000024}.code-text .use{background:var(--k-use)}.code-text .ctrl{background:var(--k-ctrl)}.code-text .skill{background:var(--k-skill)}.code-text .net{background:var(--k-net)}.type-card .code-text span{box-shadow:inset 0 -3px #00000024,0 0 0 2px #ffffff8c}.code-text.big span{min-width:46px;font-size:28px;border-radius:14px;padding:4px 10px 6px;opacity:.35;transition:opacity .2s}.code-text.big span.on{opacity:1;animation:pop .4s var(--ease-back)}.reveal-avatar{width:230px;height:230px;filter:drop-shadow(0 16px 22px rgba(0,0,0,.22))}.reveal-avatar.flick{animation:flick .14s ease-out}.reveal-avatar.land{animation:landBig .7s var(--ease-back)}@keyframes flick{0%{transform:scale(.93) translateY(4px)}to{transform:none}}@keyframes landBig{0%{transform:scale(.7) rotate(-8deg)}55%{transform:scale(1.1) rotate(3deg)}to{transform:none}}.marquee.faces{margin-top:24px;padding:10px 0 14px}.marquee.faces .track{animation-duration:70s}.marquee.faces .track>*{margin-right:14px}.face{border:0;background:none;padding:0;width:84px;flex:none;text-align:center}.face .avatar{width:84px;height:84px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.16));transition:transform .2s var(--ease-back)}.face:active .avatar{transform:scale(.92)}.face span{display:block;margin-top:4px;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.gal button{padding:8px 8px 14px}.gal .meta{padding:10px 4px 0}.gal .code{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--muted)}.gal-group h3 [class^=dot-]{width:14px;height:14px;border-radius:5px;display:inline-block}.dot-W{background:#f59e4c}.dot-C{background:#7c6cf2}.dot-L{background:#2fb3a0}.kb-out .name{margin-top:2px}@media(min-width:720px){.wrap{max-width:760px;padding:0 28px 64px}.hero h1{font-size:44px}.question{font-size:26px}.options{grid-template-columns:1fr 1fr}.options .opt.skip,.opt-divider{grid-column:1 / -1}.gal{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(4,1fr)}.modal{align-items:center}.sheet{max-width:600px;border-radius:24px;max-height:88vh}.sheet:before{display:none}@keyframes sheetUp{0%{transform:translateY(24px) scale(.97);opacity:0}to{transform:none;opacity:1}}}@media(min-width:1080px){.wrap{max-width:1120px;padding:0 40px 72px}.home-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"main side" "mq mq";column-gap:48px;align-items:center}.home-main{grid-area:main}.home-side{grid-area:side}.home-side>.card:first-child{margin-top:18px!important}.home-mq{grid-area:mq}.hero{text-align:left;padding-top:40px}.hero .logo,.hero .facts{justify-content:flex-start}.hero p{margin:0}.hero h1{font-size:56px}.marquee{margin-left:0;margin-right:0}.result-layout{display:grid;grid-template-columns:400px minmax(0,1fr);column-gap:28px;align-items:start}.result-layout .col-left{position:sticky;top:16px}.result-layout .col-right>.card:first-child{margin-top:0}.quiz-head,.qcard{max-width:860px;margin-left:auto;margin-right:auto}.gal{grid-template-columns:repeat(4,1fr)}.stats{grid-template-columns:repeat(5,1fr)}}
