@import "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700;900&family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg:#0a0a12;--bg-card:#12121f;--bg-card-hover:#1a1a2e;--bg-surface:#16162a;--text:#c8c8d4;--text-bright:#eeeef5;--text-muted:#6b6b80;--accent:#f43f5e;--accent-glow:#f43f5e4d;--gold:#f59e0b;--gold-glow:#f59e0b40;--silver:#94a3b8;--bronze:#b45309;--success:#10b981;--success-glow:#10b98140;--border:#ffffff0f;--border-bright:#ffffff1f;--shadow:0 4px 24px #0006;--radius:16px;--radius-sm:10px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:Inter,system-ui,sans-serif;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 50% 0,#f43f5e0f 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#6366f10d 0%,#0000 50%);position:fixed;inset:0}#root{z-index:1;min-height:100dvh;position:relative}.app{max-width:520px;min-height:100dvh;margin:0 auto;padding:0 16px}.app-header{text-align:center;padding:40px 0 28px}.header-top-row{justify-content:space-between;align-items:flex-start;display:flex}.header-spacer{justify-content:center;align-items:center;width:48px;display:flex}.brush-toggle-btn{color:#ffffff73;cursor:pointer;background:#ffffff0d;border:1.5px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:color .2s,border-color .2s,background .2s,box-shadow .2s;display:flex}.brush-toggle-btn:hover{color:#fffc;background:#ffffff1a;border-color:#ffffff59}.brush-toggle-btn--active{color:#f43f5e;background:#f43f5e1a;border-color:#f43f5e80;box-shadow:0 0 12px #f43f5e4d}.header-titles{flex:1}.app-header h1{background:linear-gradient(135deg,#f43f5e 0%,#f59e0b 50%,#f43f5e 100%) 0 0/200%;-webkit-text-fill-color:transparent;letter-spacing:3px;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-family:Noto Serif JP,serif;font-size:2.6rem;font-weight:900;animation:4s ease-in-out infinite shimmer}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:200%}}.subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:4px;margin-bottom:24px;font-size:.8rem;font-weight:600}.progress-bar-container{background:var(--bg-card);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;flex:1;height:32px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--gold));border-radius:16px;min-width:0;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1),background .4s}.progress-text{color:var(--text-bright);letter-spacing:1px;font-size:.75rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.level-bar-row{align-items:center;gap:12px;display:flex}.level-switcher{flex-shrink:0;align-items:center;gap:4px;display:flex}.level-badge-main{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;font-weight:900;transition:background .4s,box-shadow .4s;display:flex}.level-arrow{color:#fff9;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.1rem;font-weight:700;line-height:1;transition:all .2s;display:flex}.level-arrow:hover{color:#fff;background:#ffffff29}.level-subtitle{color:var(--text-muted);letter-spacing:.5px;margin-top:8px;font-size:.75rem}.level-deck{justify-content:center;gap:8px;padding:0 0 4px;display:flex}.level-deck-item{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;color:var(--text-muted);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;transition:all .2s;display:flex}.level-deck-item:hover{border-color:var(--border-bright);background:var(--bg-card-hover)}.level-deck-item.active{background:var(--deck-gradient);color:#fff;box-shadow:0 0 16px var(--deck-glow);border-color:#0000}.level-deck-item.complete:not(.active){border-color:var(--success);color:var(--success)}.deck-number{font-size:.8rem;font-weight:800}.deck-label{letter-spacing:.3px;font-size:.7rem;font-weight:600}.kanji-grid{grid-template-columns:repeat(3,1fr);gap:14px;padding:12px 0 32px;display:grid}.kanji-card{background:var(--bg-card);border-radius:var(--radius);text-align:center;cursor:pointer;border:1px solid var(--border);box-shadow:0 2px 12px #0000004d, 0 0 0 0 var(--cat-glow,transparent);padding:20px 8px 14px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.card-cat-stripe{background:var(--cat-gradient);border-radius:var(--radius) var(--radius) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.kanji-card:before{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 20%,#ffffff08 40%,#ffffff0f 50%,#ffffff08 60%,#0000 80%);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.kanji-card:hover:not(.locked):before{left:100%}.kanji-card:hover:not(.locked){box-shadow:0 8px 32px #00000080, 0 0 20px var(--cat-glow,transparent);border-color:var(--border-bright);transform:translateY(-4px)scale(1.02)}.kanji-card:active:not(.locked){transform:translateY(-1px)scale(1)}.kanji-card.locked{opacity:.3;cursor:default;filter:grayscale()}.kanji-card.just-unlocked{animation:.8s ease-out both cardUnlock}.kanji-card.just-unlocked:nth-child(3n+1){animation-delay:0s}.kanji-card.just-unlocked:nth-child(3n+2){animation-delay:.25s}.kanji-card.just-unlocked:nth-child(3n){animation-delay:.5s}@keyframes cardUnlock{0%{opacity:0;filter:brightness(2);transform:scale(.4)rotateY(120deg)}40%{opacity:1;filter:brightness(1.3);transform:scale(1.1)rotateY(-8deg)}70%{filter:brightness();transform:scale(.97)rotateY(3deg)}to{filter:brightness();transform:scale(1)rotateY(0)}}.kanji-card.completed{border-color:var(--success);box-shadow:0 0 20px var(--success-glow), var(--shadow)}.kanji-card.completed:after{content:"";border-radius:var(--radius);background:radial-gradient(circle at 50% 0%, var(--success-glow) 0%, transparent 70%);pointer-events:none;position:absolute;inset:0}.kanji-card.partial{border-color:var(--gold);box-shadow:0 0 16px var(--gold-glow), var(--shadow)}.kanji-character{color:var(--text-bright);text-shadow:0 0 20px #ffffff1a;margin-bottom:8px;font-family:Noto Serif JP,serif;font-size:2.8rem;font-weight:900;line-height:1.15}.kanji-card.completed .kanji-character{text-shadow:0 0 24px var(--success-glow)}.kanji-info{flex-direction:column;gap:2px;display:flex}.kanji-meaning{color:var(--text);text-transform:uppercase;letter-spacing:1px;font-size:.7rem;font-weight:700}.kanji-reading{color:var(--text-muted);font-size:.7rem}.card-badge{border-radius:0 var(--radius) 0 var(--radius);background:var(--success);color:#fff;width:28px;height:28px;box-shadow:0 0 12px var(--success-glow);justify-content:center;align-items:center;font-size:.7rem;font-weight:800;display:flex;position:absolute;top:-1px;right:-1px}.partial-badge{background:var(--gold);box-shadow:0 0 12px var(--gold-glow)}.btn{border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.3px;border:none;padding:14px 28px;font-size:.95rem;font-weight:700;transition:all .15s}.btn:disabled{opacity:.3;cursor:default}.btn-accent{background:linear-gradient(135deg, var(--accent), #e11d48);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-accent:hover:not(:disabled){box-shadow:0 6px 24px var(--accent-glow);transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg, var(--accent), #e11d48);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 6px 24px var(--accent-glow);transform:translateY(-1px)}.btn-ghost{background:var(--bg-surface);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card-hover);border-color:var(--border-bright)}.btn-secondary{background:var(--bg-surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-bright)}.btn-large{width:100%;margin-top:28px;padding:18px;font-size:1.05rem}.btn-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px;font-size:.8rem;text-decoration:none;transition:color .15s}.btn-link:hover{color:var(--accent)}.btn-small{padding:8px 16px;font-size:.85rem}.app-footer{text-align:center;padding:16px 0 40px}.kanji-page{padding:16px 0 40px}.hint-overlay{z-index:950;pointer-events:none;background:#000000bf;justify-content:center;align-items:center;animation:1.2s forwards hintFadeInOut;display:flex;position:fixed;inset:0}.hint-kanji-svg{color:#fff;filter:drop-shadow(0 0 20px #fff6);width:min(70vw,70vh,320px);height:min(70vw,70vh,320px)}@keyframes hintFadeInOut{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}.page-nav{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.back-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:.9rem;font-weight:600;transition:opacity .15s}.back-button:hover{opacity:.8}.kanji-info-section{text-align:center}.kanji-display{margin:20px 0;position:relative}.kanji-large{color:var(--text-bright);text-shadow:0 0 60px var(--accent-glow), 0 0 120px #f43f5e1a;font-family:Noto Serif JP,serif;font-size:9rem;font-weight:900;line-height:1.05;display:block}.kanji-details h2{color:var(--text-bright);margin-bottom:4px;font-size:1.5rem;font-weight:800}.reading-large{color:var(--accent);margin-bottom:8px;font-size:1.2rem;font-weight:600}.readings-table{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;flex-direction:column;gap:6px;margin-bottom:16px;padding:12px 16px;display:flex}.reading-row{align-items:baseline;gap:12px;display:flex}.reading-label{color:var(--text-muted);text-align:right;letter-spacing:.5px;min-width:48px;font-size:.7rem;font-weight:700}.reading-values{color:var(--text-bright);font-size:.95rem;font-weight:500}.description{color:var(--text);margin-bottom:8px;font-size:.9rem;line-height:1.6}.stroke-count{color:var(--text-muted);font-size:.8rem}.examples-section{text-align:left;margin-top:28px}.examples-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:12px;font-size:.85rem;font-weight:700}.examples-list{flex-direction:column;gap:8px;display:flex}.example-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:12px 16px;display:flex}.example-jp{min-width:60px;color:var(--text-bright);font-family:Noto Serif JP,serif;font-size:1.3rem;font-weight:700}.example-reading{color:var(--accent);min-width:70px;font-size:.8rem;font-weight:600}.example-meaning{color:var(--text-muted);font-size:.8rem}.speakable{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;align-items:center;gap:4px;transition:opacity .15s;display:inline-flex}.speakable:hover{opacity:.75}.speakable:active{opacity:.5}.speak-icon{opacity:.4;flex-shrink:0;width:14px;height:14px}.speakable:hover .speak-icon{opacity:.8}.reading-chip .speak-icon{width:12px;height:12px}.speakable.reading-large{color:var(--accent);justify-content:center;margin-bottom:8px;font-size:1.2rem;font-weight:600}.speakable.example-reading{color:var(--accent);min-width:70px;font-size:.8rem;font-weight:600}.drawing-section{text-align:center}.phase-header{margin-bottom:20px}.phase-header h2{color:var(--text-bright);margin-bottom:4px;font-size:1.2rem;font-weight:700}.phase-header p{color:var(--text-muted);font-size:.85rem}.drawing-area{flex-direction:column;align-items:center;gap:14px;display:flex}.drawing-area canvas{border-radius:var(--radius);cursor:crosshair;border:1px solid var(--border)}.stroke-counter{color:#ffffff80;font-variant-numeric:tabular-nums;font-size:.85rem}.drawing-feedback{border-radius:20px;padding:8px 20px;font-size:.9rem;font-weight:700;animation:.3s feedbackPop}.drawing-feedback.success{color:var(--success);background:var(--success-glow)}.drawing-feedback.error{color:var(--accent);background:var(--accent-glow)}@keyframes feedbackPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.drawing-controls{gap:12px;width:100%;max-width:350px;display:flex}.drawing-controls .btn{flex:1}.complete-section{text-align:center;padding:48px 0}.success-icon{margin-bottom:16px;font-size:4rem;animation:.6s successBounce}@keyframes successBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.complete-section h2{color:var(--text-bright);margin-bottom:8px;font-size:1.6rem}.complete-section p{color:var(--text-muted);margin-bottom:28px}.batch-done-hint{text-shadow:0 0 16px var(--gold-glow);font-size:.95rem;font-weight:700;color:var(--gold)!important}.complete-actions{justify-content:center;gap:12px;display:flex}.page-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;display:flex}.stroke-demo{flex-direction:column;align-items:center;gap:12px;margin-top:12px;display:flex}.stroke-demo canvas{border-radius:var(--radius);border:1px solid var(--border)}.stroke-controls{gap:8px;display:flex}.stroke-steps{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.stroke-step{border:2px solid var(--border);background:var(--bg-card);cursor:pointer;width:34px;height:34px;color:var(--text-muted);border-radius:50%;font-size:.8rem;font-weight:700;transition:all .15s}.stroke-step.active{border-color:var(--accent);color:var(--accent)}.stroke-step.current{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.stroke-demo-section{text-align:center;margin-top:28px}.stroke-demo-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px;font-size:.85rem;font-weight:700}.stroke-puzzle{flex-direction:column;align-items:center;gap:16px;display:flex}.puzzle-hint{color:var(--text-muted);font-size:.85rem;font-weight:600}.stroke-choices{flex-wrap:wrap;justify-content:center;gap:10px;max-width:320px;display:flex}.puzzle-success{color:var(--success);text-shadow:0 0 12px var(--success-glow);font-size:1.1rem;font-weight:700}.puzzle-reset-hint{color:var(--accent);font-weight:700;animation:.5s resetFlash}.puzzle-warning-hint{color:#f59e0b;font-weight:700}@keyframes hint-fade{0%{opacity:0}12%{opacity:1}72%{opacity:1}to{opacity:0}}.drawing-hint-overlay{pointer-events:none;color:#ffffff38;border-radius:12px;justify-content:center;align-items:center;animation:2.5s ease-in-out forwards hint-fade;display:flex;position:absolute;inset:0}.silver-hint-row{justify-content:center;align-items:center;gap:12px;display:flex}.hint-btn{color:#ffffffbf;cursor:pointer;background:#ffffff12;border:1px solid #ffffff2e;border-radius:20px;padding:4px 14px;font-size:.82rem;transition:background .18s,border-color .18s,color .18s}.hint-btn:hover:not(:disabled){color:#fff;background:#ffffff24;border-color:#ffffff59}.hint-btn--empty,.hint-btn:disabled{opacity:.35;cursor:default}@keyframes resetFlash{0%,50%{opacity:1}25%{opacity:.3}}.multi-size-drawing{flex-direction:column;align-items:center;gap:14px;display:flex}.size-progress{gap:10px;display:flex}.size-dot{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.5px;border-radius:20px;padding:5px 14px;font-size:.75rem;font-weight:700;transition:all .2s}.size-dot.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.size-dot.done{border-color:var(--success);color:var(--success);background:#10b98126}.multi-size-hint{color:var(--text-muted);font-size:.8rem;font-weight:600}.profile-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:0;display:flex;position:relative}.profile-avatar{background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-surface) 100%);border:2px solid var(--border-bright);border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;transition:all .2s;display:flex;box-shadow:0 2px 8px #0000004d}.profile-btn:hover .profile-avatar{border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow);transform:translateY(-1px)}.profile-avatar-kanji{color:var(--text-bright);font-family:Noto Serif JP,serif;font-size:1.3rem;font-weight:900}.profile-count{color:var(--accent);letter-spacing:.5px;font-size:.6rem;font-weight:800}.profile-overlay{z-index:900;background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s profileFadeIn;display:flex;position:fixed;inset:0}@keyframes profileFadeIn{0%{opacity:0}to{opacity:1}}.profile-card{background:linear-gradient(165deg, var(--bg-surface) 0%, var(--bg-card) 100%);border:1px solid var(--border-bright);width:100%;max-width:340px;box-shadow:0 20px 60px #00000080, 0 0 40px var(--accent-glow);border-radius:20px;padding:28px 24px 24px;animation:.3s ease-out profileCardIn;position:relative}@keyframes profileCardIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.profile-card:before{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 30%,#ffffff08 45%,#ffffff0f 50%,#ffffff08 55%,#0000 70%);border-radius:20px;height:100%;position:absolute;top:0;left:0;right:0}.profile-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1;transition:color .15s;position:absolute;top:12px;right:16px}.profile-close:hover{color:var(--text-bright)}.profile-card-top{text-align:center;margin-bottom:20px}.profile-card-avatar{color:#fff;width:64px;height:64px;box-shadow:0 4px 20px var(--accent-glow);background:linear-gradient(135deg,#f43f5e,#f59e0b);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 12px;font-family:Noto Serif JP,serif;font-size:2rem;font-weight:900;display:flex}.profile-card-title{color:var(--text-bright);margin-bottom:4px;font-size:1.1rem;font-weight:800}.profile-card-stats{justify-content:center;align-items:center;gap:16px;display:flex}.profile-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.profile-stat-value{color:var(--text-bright);font-size:1.5rem;font-weight:900}.profile-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.65rem;font-weight:600}.profile-stat-divider{background:var(--border);width:1px;height:32px}.profile-levels-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:10px;font-size:.7rem;font-weight:700}.profile-levels{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.profile-level-badge{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:7px 4px 6px;transition:all .2s;display:flex}.profile-level-badge:hover:not(:disabled){border-color:var(--border-bright);background:var(--bg-card-hover)}.profile-level-badge.complete{border-color:color-mix(in srgb, var(--success) 40%, transparent)}.profile-level-badge.locked{opacity:.35;cursor:default}.badge-level-num{background:var(--badge-gradient);color:#fff;width:26px;height:26px;box-shadow:0 2px 10px var(--badge-glow);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:900;display:flex}.badge-level-name,.badge-level-desc{display:none}.badge-progress{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.badge-progress-bar{background:var(--bg-surface);border-radius:2px;width:100%;height:3px;overflow:hidden}.badge-progress-fill{border-radius:2px;height:100%;transition:width .3s}.badge-progress-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.55rem;font-weight:700}.level-up-overlay{z-index:1000;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.level-up-overlay.fade{animation:.6s forwards overlayFadeOut}@keyframes overlayFadeOut{to{opacity:0;pointer-events:none}}.impact-shake{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.level-up-overlay.impact .impact-shake{animation:.4s ease-out screenShake}@keyframes screenShake{0%{transform:translate(0)}10%{transform:translate(-8px,6px)}20%{transform:translate(6px,-8px)}30%{transform:translate(-6px,4px)}40%{transform:translate(4px,-4px)}50%{transform:translate(-3px,3px)}60%{transform:translate(2px,-2px)}80%{transform:translate(-1px,1px)}to{transform:translate(0)}}.impact-flash{opacity:0;pointer-events:none;z-index:10;background:#fff;position:absolute;inset:0}.level-up-overlay.impact .impact-flash{animation:.5s ease-out impactFlash}@keyframes impactFlash{0%{opacity:.7}to{opacity:0}}.cracks-svg{z-index:2;width:min(100vw,500px);height:min(100vw,500px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crack{fill:none;stroke:#f59e0b;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:300;stroke-dashoffset:300px;filter:drop-shadow(0 0 4px #f59e0b99);opacity:0}.crack-branch{fill:none;stroke:#f59e0b;stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;opacity:0}.level-up-overlay.cracks .crack,.level-up-overlay.reveal .crack,.level-up-overlay.fade .crack{opacity:1;animation:.5s cubic-bezier(0,0,.2,1) forwards crackSpread}.level-up-overlay.cracks .crack-branch,.level-up-overlay.reveal .crack-branch,.level-up-overlay.fade .crack-branch{opacity:1;animation:.35s cubic-bezier(0,0,.2,1) .2s forwards crackSpread}.c1{animation-delay:0s!important}.c2{animation-delay:30ms!important}.c3{animation-delay:60ms!important}.c4{animation-delay:90ms!important}.c5{animation-delay:.12s!important}.c6{animation-delay:50ms!important}.c7{animation-delay:80ms!important}.c8{animation-delay:20ms!important}.cb1{animation-delay:.25s!important}.cb2{animation-delay:.28s!important}.cb3{animation-delay:.31s!important}.cb4{animation-delay:.27s!important}.cb5{animation-delay:.3s!important}.cb6{animation-delay:.33s!important}@keyframes crackSpread{to{stroke-dashoffset:0}}.level-up-overlay.reveal .crack,.level-up-overlay.reveal .crack-branch{animation:1s forwards crackGlow}@keyframes crackGlow{0%{stroke-dashoffset:0;opacity:1;filter:drop-shadow(0 0 6px #f59e0bcc)}50%{opacity:.8;filter:drop-shadow(0 0 10px #f43f5ecc)}to{opacity:.2;filter:drop-shadow(0 0 2px #f59e0b4d)}}.debris-container{pointer-events:none;z-index:3;position:absolute;top:50%;left:50%}.debris{opacity:0;width:6px;height:6px;transform:rotate(calc(var(--di) * 22.5deg));background:#f59e0b;border-radius:1px;position:absolute}.level-up-overlay.impact .debris,.level-up-overlay.cracks .debris{animation:debrisFly .8s calc(var(--di) * 20ms) cubic-bezier(0, 0, .3, 1) forwards}@keyframes debrisFly{0%{opacity:1;transform:translate(0, 0) rotate(calc(var(--di) * 22.5deg)) scale(1)}30%{opacity:1}to{opacity:0;transform:translate(calc(cos(calc(var(--di) * 22.5deg)) * 140px), calc(sin(calc(var(--di) * 22.5deg)) * 140px + 40px)) rotate(calc(var(--di) * 90deg)) scale(.3)}}.dust-ring{opacity:0;pointer-events:none;z-index:2;border:3px solid #f59e0b66;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.level-up-overlay.impact .dust-ring,.level-up-overlay.cracks .dust-ring{animation:.8s ease-out .1s forwards dustExpand}@keyframes dustExpand{0%{opacity:.8;border-width:3px;width:10px;height:10px}to{opacity:0;border-width:1px;width:400px;height:400px}}.impact-glow{opacity:0;pointer-events:none;z-index:2;background:radial-gradient(circle,#f43f5e99 0%,#f59e0b4d 40%,#0000 70%);border-radius:50%;width:80px;height:80px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.level-up-overlay.impact .impact-glow{animation:.6s ease-out forwards impactGlowPulse}@keyframes impactGlowPulse{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.5)}to{opacity:.2;transform:translate(-50%,-50%)scale(2)}}.level-up-content{z-index:5;opacity:0;flex-direction:column;align-items:center;gap:8px;display:flex;position:relative;transform:scale(.5)}.level-up-overlay.reveal .level-up-content,.level-up-overlay.fade .level-up-content{animation:.6s ease-out forwards levelReveal}@keyframes levelReveal{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.level-up-kanji{color:#f43f5e;text-shadow:0 0 40px #f43f5e99,0 0 80px #f43f5e4d;font-family:Noto Serif JP,serif;font-size:5rem;font-weight:900;line-height:1}.level-up-text{flex-direction:column;align-items:center;gap:2px;display:flex}.level-up-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:6px;font-size:.9rem;font-weight:700}.level-up-number{background:linear-gradient(135deg,#f43f5e,#f59e0b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:900;line-height:1}.auth-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1100;background:#000000b3;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.auth-modal{background:linear-gradient(145deg,#1e1e3a,#16162e);border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:360px;padding:32px 28px;animation:.3s slideUp;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-close{color:#ffffff80;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.5rem;position:absolute;top:12px;right:16px}.auth-modal h2{text-align:center;margin:0 0 4px;font-size:1.4rem}.auth-subtitle{text-align:center;color:#ffffff80;margin:0 0 24px;font-size:.85rem}.auth-input{color:#fff;box-sizing:border-box;background:#ffffff0f;border:1px solid #ffffff26;border-radius:12px;outline:none;width:100%;margin-bottom:12px;padding:12px 16px;font-size:1rem;transition:border-color .2s;display:block}.auth-input:focus{border-color:#6366f199}.auth-input::placeholder{color:#ffffff4d}.auth-error{color:#f43f5e;text-align:center;margin:0 0 12px;font-size:.85rem}.auth-submit{border-radius:12px;width:100%;margin-top:4px;padding:12px;font-size:1rem}.auth-switch{color:#ffffff80;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin:16px auto 0;font-size:.85rem;text-decoration:underline;display:block}.auth-switch:hover{color:#fffc}.auth-forgot{opacity:.6;margin-top:8px;font-size:.8rem}.auth-success{color:#10b981;text-align:center;padding:12px 0;font-size:.9rem}.loading-spinner{border:3px solid #ffffff1a;border-top-color:var(--accent,#f43f5e);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.profile-auth-section{padding:0 16px 8px}.profile-lang-section{justify-content:center;gap:8px;padding:0 16px 12px;display:flex}.lang-btn{color:var(--text-muted);letter-spacing:.05em;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;padding:4px 14px;font-size:.78rem;font-weight:600;transition:all .15s}.lang-btn.active{color:#f43f5e;background:#f43f5e26;border-color:#f43f5e66}.lang-btn:not(.active):hover{color:#ffffffb3;background:#ffffff1a}.profile-auth-btn{border-radius:10px;width:100%;padding:10px;font-size:.9rem}.profile-email{text-align:center;color:#ffffff73;margin-top:4px;margin-bottom:14px;font-size:.8rem}.profile-privacy-link{text-align:center;margin-bottom:16px}.privacy-link-btn{color:#ffffff4d;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px 8px;font-size:.7rem;text-decoration:underline;transition:color .2s}.privacy-link-btn:hover{color:#fff9}.privacy-page{max-width:680px;margin:0 auto;padding:0 20px 60px}.privacy-content{color:var(--text-secondary);line-height:1.7}.privacy-content h1{color:var(--text-bright);margin-bottom:4px;font-size:1.6rem;font-weight:800}.privacy-updated{color:var(--text-muted);margin-bottom:32px;font-size:.75rem}.privacy-content section{margin-bottom:28px}.privacy-content h2{color:var(--text-bright);margin-top:0;margin-bottom:10px;font-size:1rem;font-weight:700}.privacy-content h3{color:var(--text-secondary);margin-top:16px;margin-bottom:6px;font-size:.85rem;font-weight:700}.privacy-content p{margin-bottom:10px;font-size:.875rem}.privacy-content ul{margin-bottom:10px;padding-left:20px;font-size:.875rem}.privacy-content li{margin-bottom:4px}.privacy-content a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.privacy-content code{background:var(--bg-surface);color:var(--text-secondary);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.8rem}.save-banner{background:linear-gradient(135deg,#6366f126,#06b6d426);border:1px solid #6366f14d;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 16px 16px;padding:14px 18px;animation:.4s slideUp;display:flex}.save-banner-text{color:#ffffffd9;flex:1;align-items:center;gap:8px;font-size:.85rem;display:flex}.save-banner-icon{flex-shrink:0;font-size:1.2rem}.save-banner-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.save-banner-btn{white-space:nowrap;border-radius:10px!important;padding:8px 16px!important;font-size:.85rem!important}.save-banner-dismiss{color:#fff6;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 8px;font-size:.8rem}.save-banner-dismiss:hover{color:#ffffffb3}@media (width<=420px){.save-banner{text-align:center;flex-direction:column}.save-banner-actions{justify-content:center;width:100%}}.special-row{border:2px solid #0000;border-radius:16px;margin:24px 16px 0;padding:16px;position:relative}.silver-row{background:linear-gradient(#15152e,#181838 50%,#15152e) padding-box padding-box,linear-gradient(#b8b8d0,#dcdcf0 30%,#b8b8d0 50%,#e0e0f0 70%,#b8b8d0) border-box}.silver-row:before{content:none}.silver-row:not(.silver-unlocked){opacity:.5}.gold-row{background:linear-gradient(#181828,#1c1a2a 50%,#181828) padding-box padding-box,linear-gradient(#d4a000,gold 25%,#ffe680 45%,gold 55%,#ffe066 75%,#d4a000) border-box;margin-bottom:16px}.gold-row:before{content:none}.gold-row:not(.gold-unlocked){opacity:.5}.special-row-header{z-index:1;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex;position:relative}.special-row-icon{letter-spacing:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;font-weight:800;display:flex}.silver-icon{color:#1a1a2e;text-shadow:0 1px 1px #ffffff4d;background:linear-gradient(135deg,#e8e8f8,#b0b0cc 40%,#dcdcf0 60%,#a0a0c0);box-shadow:0 0 12px #c0c0d266,0 2px 4px #0000004d}.gold-icon{color:#1a1a2e;text-shadow:0 1px 1px #ffffff4d;background:linear-gradient(135deg,#ffe066,#ffc800 30%,gold 50%,#ffe680 70%,#daa520);box-shadow:0 0 12px #ffd70080,0 2px 4px #0000004d}.special-row-title{font-size:1rem;font-weight:700}.silver-row .special-row-title{background:linear-gradient(135deg,#c0c0d2,#e0e0f0);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gold-row .special-row-title{background:linear-gradient(135deg,gold,#fff4a3);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.special-row-count{color:#fff6;margin-left:auto;font-size:.8rem}.gold-card-icon{color:#ffe066;text-shadow:0 0 8px #ffd70066;background:linear-gradient(135deg,#ffe65033,#ffd7001a 50%,#fff08226);border:1px solid #ffd70059;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 6px;font-size:1.6rem;font-weight:800;display:flex}.silver-grid,.gold-grid{z-index:1;gap:8px;position:relative}.silver-card{background:linear-gradient(145deg,#c0c0d212,#a0a0be08)!important;border-color:#c0c0d240!important}.silver-card.locked{background:#c0c0d205!important;border-color:#c0c0d21f!important}.silver-card.locked .kanji-character{color:#c0c0d24d;font-size:1.2rem}.silver-card.locked .kanji-meaning{color:#c0c0d240}.silver-card:not(.locked):not(.completed):not(.cooldown){cursor:pointer;border-color:#c8c8dc73!important}.silver-card:not(.locked):not(.completed):not(.cooldown):hover{transform:translateY(-2px);border-color:#dcdcf099!important}.silver-card.completed{background:linear-gradient(145deg,#c0c0d21a,#a0a0be0a)!important;border-color:#c8c8e680!important}.silver-card .kanji-character{color:#c8c8dce6}.silver-card .kanji-meaning{color:#c8c8e6cc}.silver-badge{background:linear-gradient(135deg,#d0d0e8,#a0a0c0)!important}.silver-card-icon{color:#d0d0e8;text-shadow:0 0 8px #c0c0d266;background:linear-gradient(135deg,#dcdcf033,#c0c0d21a 50%,#e6e6f826);border:1px solid #c0c0d259;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 6px;font-size:1.6rem;font-weight:800;display:flex}.silver-card.locked .silver-card-icon{color:#c0c0d24d;text-shadow:none;background:#c0c0d20a;border-color:#c0c0d21a}.gold-card{background:linear-gradient(145deg,#ffd70012,#daa52008)!important;border-color:#ffd70040!important}.gold-card.locked{background:#ffd70005!important;border-color:#ffd7001f!important}.gold-card.locked .gold-card-icon{color:#ffd7004d;text-shadow:none;background:#ffd7000a;border-color:#ffd7001a}.gold-card.locked .kanji-meaning{color:#ffd70040}.gold-card:not(.locked):not(.completed){cursor:pointer;border-color:#ffdc2873!important}.gold-card:not(.locked):not(.completed):hover{transform:translateY(-2px);border-color:#ffe65099!important}.gold-card.completed{background:linear-gradient(145deg,#ffd7001a,#daa5200a)!important;border-color:#ffdc2880!important}.gold-card .kanji-meaning{color:#ffe664cc}.silver-page .silver-header{text-align:center}.silver-badge-icon{color:#1a1a2e;text-shadow:0 1px 1px #ffffff4d;background:linear-gradient(135deg,#e0e0f0,#b0b0cc 40%,#d8d8f0 60%,#a0a0c0);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;font-size:1.5rem;font-weight:700;display:flex;box-shadow:0 0 16px #c0c0d24d,0 2px 6px #0000004d}.silver-prompt{color:#fff9;margin-bottom:8px}.silver-meaning{color:#c0c0d2;margin-bottom:8px;font-size:2rem;font-weight:700}.silver-hint{color:#fff6;font-size:.85rem}.silver-reveal{flex-direction:column;align-items:center;padding:20px;animation:.5s slideUp;display:flex}.silver-reveal-kanji{margin-bottom:16px}.silver-reveal .kanji-large{color:#c0c0d2;text-shadow:0 0 30px #c0c0d266;font-size:5rem}.silver-celebration{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:40px 20px;animation:.5s slideUp;display:flex}.silver-celebration-icon{color:#1a1a2e;background:linear-gradient(135deg,#e8e8f8,#b8b8d0 35%,#dcdcf0 55%,#a0a0c0);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:20px;font-size:3rem;font-weight:800;animation:2s ease-in-out infinite celebrationPulse;display:flex;box-shadow:0 0 40px #c0c0d259,0 0 80px #c0c0d21f}.silver-celebration-text{color:#ffffffb3;margin:8px 0}.silver-celebration-sub{color:#c0c0d2;margin-bottom:24px;font-weight:600}.time-challenge{width:100%;max-width:400px;margin:0 auto}.time-bar{background:#ffffff0f;border-radius:16px;height:32px;margin-bottom:16px;position:relative;overflow:hidden}.time-bar-fill{background:linear-gradient(90deg,#c0c0d2,#8a8aaa);border-radius:16px;height:100%;transition:width .1s linear}.time-bar-fill.time-bar-urgent{background:linear-gradient(90deg,#f43f5e,#ff6b6b)}.time-bar-text{color:#fff;text-shadow:0 1px 3px #00000080;font-size:.85rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.time-stats{color:#ffffff80;justify-content:space-between;margin-bottom:24px;font-size:.85rem;display:flex}.time-question{text-align:center;margin-bottom:24px}.time-kanji{margin-bottom:8px;font-size:4rem;font-weight:700}.time-prompt{color:#fff9;font-size:.95rem}.time-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.time-option{color:#e0e0e0;cursor:pointer;text-align:center;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:12px;padding:14px 12px;font-size:1rem;transition:all .2s}.time-option:active{transform:scale(.97)}.time-option.correct{color:#10b981;background:#10b98126;border-color:#10b98199}.time-option.wrong{color:#f43f5e;background:#f43f5e1a;border-color:#f43f5e99}.time-result{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:40vh;padding:40px 20px;animation:.5s slideUp;display:flex}.time-score-big{color:#c0c0d2;margin:16px 0;font-size:4rem;font-weight:800}.time-score-total{color:#fff6;font-size:1.5rem}.time-result-label{color:#ffffff80}.time-intro{text-align:center;flex-direction:column;align-items:center;max-width:380px;margin:0 auto;padding:24px 20px;display:flex}.time-intro-icon{color:#1a1a2e;background:linear-gradient(135deg,#c0c0d2,#8a8aaa);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;font-size:1.8rem;font-weight:800;display:flex}.time-intro-desc{color:#ffffffb3;margin:8px 0 20px;line-height:1.5}.time-intro-details{gap:16px;margin-bottom:20px;display:flex}.time-intro-detail{color:#c0c0d2;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:10px;padding:8px 16px;font-size:.95rem;font-weight:600}.time-intro-tip{color:#ffffff73;margin-bottom:24px;font-size:.85rem;font-style:italic}.time-card-score{color:#c0c0d2b3;margin-top:2px;font-size:.7rem;display:block}.time-cooldown-badge{cursor:help;z-index:20;font-size:.85rem;position:absolute;top:8px;right:10px}.time-cooldown-badge:after{content:attr(data-tooltip);color:#ffffffe6;white-space:nowrap;opacity:0;pointer-events:none;z-index:30;background:#222240;border:1px solid #c0c0d240;border-radius:8px;padding:8px 12px;font-size:.75rem;transition:opacity .2s;position:absolute;top:calc(100% + 6px);right:-4px;box-shadow:0 4px 16px #00000080}.time-cooldown-badge:hover:after{opacity:1}.silver-card.cooldown{cursor:default;opacity:.7}.silver-card,.gold-card{position:relative;overflow:visible!important}.gold-page .gold-header{text-align:center}.gold-badge-icon{color:#1a1a2e;text-shadow:0 1px 1px #ffffff4d;background:linear-gradient(135deg,#ffe066,#ffc800 30%,gold 50%,#ffe680 70%,#daa520);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;font-size:1.5rem;font-weight:700;display:flex;box-shadow:0 0 16px #ffd70066,0 2px 6px #0000004d}.gold-kanji-hint{color:#ffd700cc;margin-top:8px;font-size:1.1rem;font-weight:600}.gold-celebration{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:40px 20px;animation:.5s slideUp;display:flex}.gold-celebration-badge{background:linear-gradient(135deg,#ffe066,#ffc800 30%,gold 50%,#ffe680 70%,#daa520);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:24px;animation:2s ease-in-out infinite badgePulse;display:flex;box-shadow:0 0 50px #ffd70080,0 0 100px #ffd70033}.gold-celebration-emoji{font-size:3rem}@keyframes badgePulse{0%,to{box-shadow:0 0 40px #ffd70066,0 0 80px #ffd70026}50%{box-shadow:0 0 60px #ffd70099,0 0 120px #ffd70040}}.gold-celebration h2{background:linear-gradient(135deg,gold,#f0c040);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:1.8rem}.gold-celebration-text{color:#ffffffb3;margin-bottom:16px}.gold-badge-name{color:gold;margin-bottom:8px;font-size:1.6rem;font-weight:700}.gold-celebration-sub{color:#fff6;margin-bottom:32px;font-size:.85rem}.matching-game{width:100%;max-width:400px;margin:0 auto;padding:0 8px}.matching-progress{text-align:center;color:#ffffff80;margin-bottom:16px;font-size:.85rem}.matching-columns{gap:12px;display:flex}.matching-col{flex-direction:column;flex:1 1 0;gap:8px;min-width:0;display:flex}.matching-col-label{text-align:center;color:#fff6;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.75rem}.matching-card{color:#e0e0e0;cursor:pointer;text-align:center;text-overflow:ellipsis;word-break:break-word;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:12px 8px;font-size:1rem;transition:all .2s;display:flex;overflow:hidden}.matching-kanji{font-size:1.15rem}.matching-card.selected{background:#ffd70014;border-color:#ffd70099;box-shadow:0 0 16px #ffd70033}.matching-card.matched{opacity:.5;cursor:default;background:#10b98114;border-color:#10b98166}.matching-card.wrong{background:#f43f5e1a;border-color:#f43f5e99;animation:.4s matchShake}@keyframes matchShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.profile-badges-section{padding:0 16px 8px}.profile-badges{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.profile-badge-item{flex-direction:column;align-items:center;gap:4px;display:flex}.profile-badge-emoji{color:#1a1a2e;background:linear-gradient(135deg,gold,#daa520);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-family:Noto Serif JP,serif;font-size:1.4rem;display:flex}.profile-badge-name{color:#fff9;font-size:.7rem}.profile-badge-katana{cursor:pointer;background:0 0;border:none;flex-direction:column;padding:0;transition:transform .15s,opacity .15s}.profile-badge-katana:hover{opacity:.85;transform:translateY(-2px)}.katana-page{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;padding:24px 16px 40px;display:flex}.katana-loading{color:var(--text-muted);flex:1;justify-content:center;align-items:center;display:flex}.katana-back-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-bottom:28px;padding:0;font-size:.9rem;transition:color .15s}.katana-back-btn:hover{color:var(--text-bright)}.katana-back-inline{margin-bottom:0}.katana-deck-screen{flex-direction:column;flex:1;align-items:center;gap:28px;padding-top:16px;display:flex}.katana-page-title{color:var(--text-bright);letter-spacing:2px;font-family:Noto Serif JP,serif;font-size:1.6rem;font-weight:700}.katana-total-score-block{flex-direction:column;align-items:center;gap:4px;display:flex}.katana-score-number{background:linear-gradient(135deg,#f43f5e,#f59e0b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:3.2rem;font-weight:800;line-height:1}.katana-score-label{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);font-size:.72rem}.katana-deck-epic{flex-direction:column;justify-content:center;align-items:center;gap:8px;width:180px;height:245px;display:flex;position:relative}.katana-deck-bg-cards{pointer-events:none;position:absolute;inset:0}.katana-deck-bg-cards:before,.katana-deck-bg-cards:after{content:"";background:linear-gradient(150deg,#1e1535,#0f0f1e);border-radius:20px;position:absolute;inset:0}.katana-deck-bg-cards:before{z-index:-2;opacity:.75;transform:translate(6px,8px)rotate(3deg)}.katana-deck-bg-cards:after{z-index:-3;opacity:.45;transform:translate(12px,14px)rotate(5.5deg)}.katana-deck-epic:before{content:"";z-index:0;background:linear-gradient(150deg,#1e1535,#0f0f1e);border-radius:20px;position:absolute;inset:0}.katana-deck-kanji,.katana-deck-count-badge,.katana-deck-tap-hint{z-index:1;position:relative}.katana-deck-kanji{background:linear-gradient(135deg,#f43f5e 30%,#f59e0b);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #f43f5e73);-webkit-background-clip:text;background-clip:text;font-family:Noto Serif JP,serif;font-size:4rem;font-weight:900;line-height:1}.katana-deck-count-badge{color:var(--text-muted);letter-spacing:1px;font-size:.8rem;font-weight:700}.katana-deck-tap-hint{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;text-align:center;padding:0 16px;font-size:.6rem}@keyframes deck-pulse{0%,to{box-shadow:0 0 20px #f43f5e33,0 0 40px #f43f5e14}50%{box-shadow:0 0 40px #f43f5e80,0 0 70px #f59e0b33}}.katana-deck-ready{cursor:pointer;background:0 0;border:none;outline:none;padding:0;transition:transform .2s}.katana-deck-ready:before{animation:2.2s ease-in-out infinite deck-pulse;border-color:#f43f5e80!important}.katana-deck-ready:hover{transform:translateY(-6px)}.katana-deck-locked{opacity:.35}.katana-status-msg{color:var(--text-muted);text-align:center;font-size:.9rem;line-height:1.5}.katana-played-today{color:var(--gold)}.katana-next-play{color:var(--text-muted);margin-top:-12px;font-size:.8rem}.katana-plays-left{letter-spacing:4px;font-size:1.4rem}.katana-intro{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:0 4px;display:flex}.katana-intro-icon{filter:drop-shadow(0 0 14px #f43f5e80);font-family:Noto Serif JP,serif;font-size:3.5rem}.katana-intro-title{color:var(--text-bright);font-size:1.4rem;font-weight:700}.katana-intro-body{text-align:left;flex-direction:column;gap:12px;max-width:380px;display:flex}.katana-intro-body p{color:var(--text);border-left:2px solid #f43f5e4d;padding-left:16px;font-size:.95rem;line-height:1.7}.katana-intro-btn{margin-top:8px;padding:14px 40px;font-size:1rem}.katana-result{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;display:flex}.katana-result-icon{filter:drop-shadow(0 0 14px #f43f5e80);font-family:Noto Serif JP,serif;font-size:3.5rem}.katana-result-title{color:var(--text-bright);font-size:1.6rem;font-weight:700}.katana-result-score{background:linear-gradient(135deg,#f43f5e,#f59e0b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.8rem;font-weight:800;line-height:1}.katana-result-total{color:var(--text-muted);font-size:.9rem}.katana-game-page{padding-top:16px}.katana-game-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.katana-game-progress{color:var(--text-muted);font-size:.95rem;font-weight:600}.katana-top-row{align-items:center;gap:16px;margin-bottom:20px;display:flex}.katana-mini-deck{flex:none;width:90px}.katana-mini-deck-inner{flex-direction:column;justify-content:center;align-items:center;gap:4px;width:90px;height:140px;display:flex;position:relative}.katana-mini-deck-inner:before{content:"";background:linear-gradient(150deg,#1e1535,#0f0f1e);border:1px solid #ffffff12;border-radius:12px;position:absolute;inset:0}.katana-mini-deck-inner:after{content:"";z-index:-1;background:linear-gradient(150deg,#1e1535,#0f0f1e);border:1px solid #ffffff0a;border-radius:12px;position:absolute;inset:0;transform:translate(4px,5px)rotate(3deg)}.katana-mini-deck-kanji{z-index:1;background:linear-gradient(135deg,#f43f5e,#f59e0b);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Noto Serif JP,serif;font-size:1.8rem;position:relative}.katana-mini-deck-remain{z-index:1;color:var(--text-muted);font-size:.7rem;font-weight:700;position:relative}.katana-question-zone{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.katana-choose-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;font-size:.7rem}.katana-question-card{background:linear-gradient(150deg,#200a16,#0f0f1e);border:2px solid #f43f5e80;border-radius:18px;justify-content:center;align-items:center;width:100%;max-width:320px;height:140px;display:flex;box-shadow:0 0 32px #f43f5e33,inset 0 0 20px #f43f5e0d}.katana-question-empty{box-shadow:none;background:0 0;border-color:#0000}.katana-question-char{color:var(--text-bright);text-shadow:0 0 24px #f43f5e59;font-family:Noto Serif JP,serif;font-size:5.5rem;font-weight:900;line-height:1}.katana-table{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.katana-answer-card{background:var(--bg-card);border:1px solid var(--border-bright);cursor:pointer;border-radius:14px;flex-direction:column;flex:0 0 calc(33.33% - 7px);justify-content:center;align-items:center;gap:7px;min-height:116px;padding:16px 12px;transition:border-color .15s,transform .15s,background .15s;display:flex}.katana-answer-card:hover:not(:disabled){background:var(--bg-card-hover);border-color:#f43f5e8c;transform:translateY(-3px);box-shadow:0 4px 16px #f43f5e1f}.katana-answer-card--gone{pointer-events:none;box-shadow:none!important;background:0 0!important;border-color:#0000!important}.katana-card-meaning{color:var(--text-bright);text-align:center;font-size:1.1rem;font-weight:600;line-height:1.35}.katana-card-reading{color:var(--text-muted);font-family:Noto Serif JP,serif;font-size:.93rem}@keyframes deal-in{0%{opacity:0;transform:translate(-60px,-80px)scale(.55)rotate(-12deg)}70%{opacity:1;transform:translate(3px,3px)scale(1.03)rotate(.5deg)}to{opacity:1;transform:translate(0)scale(1)rotate(0)}}.katana-card--dealing{animation:.45s cubic-bezier(.22,1,.36,1) both deal-in;animation-delay:var(--deal-delay,0s)}@keyframes screen-flash{0%{opacity:0}12%{opacity:1}40%{opacity:.6}to{opacity:0}}.katana-slash-flash{pointer-events:none;z-index:200;background:radial-gradient(#ffffff8c 0%,#f43f5e59 50%,#0000 75%);animation:.35s ease-out forwards screen-flash;position:fixed;inset:0}@keyframes slash-answer{0%{opacity:1;filter:brightness();box-shadow:none;transform:scale(1)rotate(0)}7%{filter:brightness(6)saturate(.2);transform:scale(1.06);box-shadow:0 0 40px #ffffffe6}18%{filter:brightness(3)drop-shadow(0 0 16px #ff6b6b)drop-shadow(0 0 6px #fff);transform:scale(1.18)rotate(-3deg);box-shadow:0 0 50px #f43f5e}38%{filter:brightness(2);opacity:.95;transform:scale(1.1)rotate(-8deg)translate(12px,10px)}65%{filter:brightness(1.4);opacity:.6;transform:scale(.8)rotate(-18deg)translate(35px,50px)}to{opacity:0;filter:brightness(.8);transform:scale(.05)rotate(-35deg)translate(70px,110px)}}@keyframes slash-question{0%{opacity:1;filter:brightness();box-shadow:none;transform:scale(1)rotate(0)}7%{filter:brightness(6)saturate(.2);transform:scale(1.06);box-shadow:0 0 40px #ffffffe6}18%{filter:brightness(3)drop-shadow(0 0 16px #ff6b6b)drop-shadow(0 0 6px #fff);transform:scale(1.18)rotate(3deg);box-shadow:0 0 50px #f43f5e}38%{filter:brightness(2);opacity:.95;transform:scale(1.1)rotate(8deg)translate(-12px,-10px)}65%{filter:brightness(1.4);opacity:.6;transform:scale(.8)rotate(18deg)translate(-35px,-50px)}to{opacity:0;filter:brightness(.8);transform:scale(.05)rotate(35deg)translate(-70px,-110px)}}@keyframes wrong-clicked{0%{background:#f43f5e2e;border-color:#f43f5ee6;transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-5px)}60%{transform:translate(5px)}80%{transform:translate(-2px)}to{transform:translate(0)}}@keyframes fly-to-deck{0%{opacity:1;transform:translate(0)scale(1)}25%{opacity:.8;transform:translate(-15px,-20px)scale(.85)}to{opacity:0;transform:translate(-120px,-160px)scale(.1)}}.katana-card--slashing{pointer-events:none;animation:.75s cubic-bezier(.3,0,.7,.4) forwards slash-answer!important}.katana-q--slashing{pointer-events:none;animation:.75s cubic-bezier(.3,0,.7,.4) forwards slash-question!important}.katana-card--wrong-clicked{pointer-events:none;animation:.4s wrong-clicked!important}.katana-card--flying-back,.katana-q--flying-back{pointer-events:none;animation:.5s cubic-bezier(.5,0,.8,.3) forwards fly-to-deck!important}.btn-dev-skip{color:#ffffff40;cursor:pointer;background:0 0;border:1px dashed #ffffff26;border-radius:6px;margin:12px auto 0;padding:5px 16px;font-size:.72rem;transition:color .15s,border-color .15s;display:block}.btn-dev-skip:hover{color:#ffffff80;border-color:#ffffff4d}.kabuto-page{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;padding:0 16px 40px;display:flex}.kabuto-header{grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 0 20px;display:grid}.kabuto-header .katana-back-btn{place-self:end start;margin-bottom:6px;padding-left:0}.kabuto-header-title{justify-content:center;align-items:center;gap:10px;display:flex}.kabuto-title-emoji{font-family:Noto Serif JP,serif;font-size:2rem;line-height:1}.kabuto-title-text{color:var(--text-bright);font-family:Noto Serif JP,serif;font-size:1.4rem;font-weight:700;line-height:1.2}.kabuto-title-sub{color:var(--text-muted);margin-top:2px;font-size:.75rem}.kabuto-total-count{color:var(--text-bright);text-align:right;min-width:40px;font-size:1.8rem;font-weight:800}.kabuto-content{flex-direction:column;flex:1;gap:28px;display:flex}.kabuto-empty{color:var(--text-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:60px 20px;font-size:.95rem;display:flex}.kabuto-section{flex-direction:column;gap:12px;display:flex}.kabuto-section-header{border-radius:10px;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.kabuto-section-label{color:#fff;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.kabuto-section-count{color:#ffffffbf;font-size:.85rem;font-weight:700}.kabuto-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.profile-badge-kabuto{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0;transition:opacity .15s}.profile-badge-kabuto:hover{opacity:.8}
