*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f4;--surface:#fff;--text:#111110;--text-secondary:#6b6866;--text-faint:#9b9896;--border:#e6e3de;--border-hover:#cbc8c2;--primary:#111110;--primary-hover:#000;--primary-light:#eeecea;--primary-border:#b8b5b0;--accent:#111110;--accent-hover:#000;--accent-light:#eeecea;--gold:#7a6518;--gold-bg:#f5f2e8;--gold-border:#c4ae6a;--purple:#4e3f68;--purple-hover:#3e3058;--purple-light:#f0edf6;--purple-border:#c0b0d8;--purple-dark:#3a2a50;--success:#2a6a48;--success-dark:#1e5038;--success-light:#eff5f2;--success-border:#88b8a0;--warning:#8a6828;--warning-dark:#6a5018;--warning-light:#f5f0e8;--warning-border:#c8a868;--error:#8a3838;--error-dark:#6a2828;--error-light:#f5eeee;--error-border:#c88888;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:100px;--font-display:"Cormorant Garamond", Georgia, serif;--font:"DM Sans", -apple-system, sans-serif;--shadow-sm:0 1px 3px #1111100f;--shadow-md:0 4px 16px #11111014;--shadow-lg:0 8px 32px #1111101a;--shadow-card:0 1px 4px #1111100d, 0 0 0 1px #1111100a;--transition:.2s ease}[data-theme=dark]{--bg:#111110;--surface:#1c1b19;--text:#edeae5;--text-secondary:#9b9896;--text-faint:#6b6866;--border:#2c2b28;--border-hover:#3c3b38;--primary:#edeae5;--primary-hover:#fff;--primary-light:#edeae514;--primary-border:#3c3b38;--accent:#edeae5;--accent-hover:#fff;--accent-light:#edeae514;--gold:#c8a838;--gold-bg:#c8a8381f;--gold-border:#8a7820;--purple:#9a88c8;--purple-hover:#b4a4d8;--purple-light:#4e3f6833;--purple-border:#4e3f6880;--purple-dark:#7868a8;--success:#3a8a5a;--success-dark:#2a6a48;--success-light:#2a6a4829;--success-border:#2a6a48;--warning:#b88038;--warning-dark:#9a6828;--warning-light:#8a682829;--warning-border:#8a6828;--error:#c05050;--error-dark:#a03838;--error-light:#8a383829;--error-border:#903838;--shadow-sm:0 1px 4px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-card:0 2px 8px #00000040, 0 0 0 1px #ffffff0a}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.65;transition:background-color .3s,color .3s}#root{flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);color:var(--text)}h1{letter-spacing:-.02em;font-size:2.75rem;font-weight:700;line-height:1.05}h2{letter-spacing:-.02em;font-size:1.875rem;font-weight:600;line-height:1.15}h3{letter-spacing:-.01em;font-size:1.25rem;font-weight:600;line-height:1.3}p{color:var(--text-secondary);font-size:1rem;font-weight:400}.light{font-weight:300}.bold{font-weight:600}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{width:100%;max-width:960px;margin:0 auto;padding:0 24px}.page{flex:1;padding:40px 0 80px;animation:.3s both fadeInUp}.btn{border-radius:var(--radius-pill);font-family:var(--font);cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:none;outline:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 24px;font-size:.875rem;font-weight:500;transition:all .18s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.btn-primary{background:var(--primary);color:var(--bg);box-shadow:none}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg)}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 14px}.btn-ghost:hover{color:var(--text);background:var(--border)}.btn-sm{min-height:36px;padding:7px 16px;font-size:.8rem}.btn-lg{padding:14px 32px;font-size:.9375rem}.btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none!important;transform:none!important}.input,.textarea{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font-family:var(--font);color:var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);outline:none;min-height:44px;padding:11px 16px;font-size:.875rem;font-weight:400}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.input::placeholder,.textarea::placeholder{color:var(--text-faint);font-weight:300}.textarea{resize:vertical;min-height:120px;line-height:1.6}.label{font-family:var(--font);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.09em;margin-bottom:6px;font-size:.75rem;font-weight:500;display:block}.field{margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition), box-shadow .2s ease, transform .2s ease;box-shadow:var(--shadow-card);padding:24px}.card:hover{border-color:var(--border-hover)}.card-clickable{cursor:pointer}.card-clickable:hover{box-shadow:var(--shadow-md);border-color:var(--border-hover);transform:translateY(-2px)}.card-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.flip-card-container{perspective:1200px;cursor:pointer;width:100%;max-width:560px;height:320px;margin:0 auto}.flip-card-container:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--radius-xl)}.flip-card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.35,0,.25,1);position:relative}.flip-card-inner.flipped{transform:rotateY(180deg)}.flip-card-face{backface-visibility:hidden;border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-md);justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.flip-card-front{background:var(--surface)}.flip-card-front .flip-card-text{font-family:var(--font);color:var(--text-secondary);font-size:1.05rem;font-weight:400;line-height:1.7}.flip-card-back{background:var(--text);border-color:var(--text);transform:rotateY(180deg)}.flip-card-back .flip-card-text{font-family:var(--font-display);letter-spacing:-.01em;color:var(--bg);font-size:1.75rem;font-weight:600;line-height:1.2}.flip-card-label{font-family:var(--font);text-transform:uppercase;letter-spacing:.12em;opacity:.38;font-size:.65rem;font-weight:500;position:absolute;top:16px;left:20px}.deck-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.badge{border-radius:var(--radius-pill);font-family:var(--font);background:var(--gold-bg);color:var(--gold);border:1px solid var(--gold-border);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;font-weight:500;display:inline-flex}.badge-purple{background:var(--purple-light);color:var(--purple-dark);border-color:var(--purple-border)}.badge-success{background:var(--success-light);color:var(--success-dark);border-color:var(--success-border)}.badge-warning{background:var(--warning-light);color:var(--warning-dark);border-color:var(--warning-border)}.badge-error{background:var(--error-light);color:var(--error-dark);border-color:var(--error-border)}.empty-state{text-align:center;padding:80px 20px}.empty-state h2{color:var(--text-faint);margin-bottom:8px}.empty-state p{color:var(--text-faint);margin-bottom:24px}.spinner{border:1.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:22px;height:22px;animation:.65s linear infinite spin}.spinner-lg{width:36px;height:36px}.loading-center{justify-content:center;align-items:center;padding:80px 0;display:flex}.file-drop-zone{border:1px dashed var(--border-hover);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface);padding:48px}.file-drop-zone:hover,.file-drop-zone.dragover{border-color:var(--primary);background:var(--primary-light)}.file-drop-zone p{color:var(--text-secondary);font-weight:400}.file-drop-zone .file-name{color:var(--text);margin-top:8px;font-weight:500}.navbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);z-index:100;background:#f8f7f4e6;padding:14px 0;transition:background-color .3s;position:sticky;top:0}[data-theme=dark] .navbar{background:#111110e6}.navbar-inner{justify-content:space-between;align-items:center;display:flex}.navbar-brand{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:1.15rem;font-weight:600}.navbar-brand .brand-accent{color:var(--text-secondary)}.navbar-links{align-items:center;gap:6px;display:flex}.progress-bar-track{background:var(--border);border-radius:var(--radius-pill);height:2px;overflow:hidden}.progress-bar-fill{background:var(--primary);border-radius:var(--radius-pill);height:100%;transition:width .3s}.srs-rating-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.srs-btn{border-radius:var(--radius-md);cursor:pointer;min-height:58px;font-family:var(--font);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:10px 8px;transition:all .15s;display:flex}.srs-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.srs-btn-label{letter-spacing:0;font-size:.85rem;font-weight:600}.srs-btn-interval{opacity:.65;font-size:.68rem;font-weight:400}.srs-again{background:var(--error-light);color:var(--error-dark);border-color:var(--error-border)}.srs-again:hover{background:var(--error);color:var(--surface);border-color:var(--error);box-shadow:var(--shadow-sm)}.srs-hard{background:var(--warning-light);color:var(--warning-dark);border-color:var(--warning-border)}.srs-hard:hover{background:var(--warning);color:var(--surface);border-color:var(--warning);box-shadow:var(--shadow-sm)}.srs-good{background:var(--success-light);color:var(--success-dark);border-color:var(--success-border)}.srs-good:hover{background:var(--success);color:var(--surface);border-color:var(--success);box-shadow:var(--shadow-sm)}.srs-easy{background:var(--primary-light);color:var(--primary);border-color:var(--primary-border)}.srs-easy:hover{background:var(--primary);color:var(--bg);border-color:var(--primary);box-shadow:var(--shadow-sm)}.srs-stats-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.deck-grid .card-clickable:first-child{animation:.28s 40ms both fadeInUp}.deck-grid .card-clickable:nth-child(2){animation:.28s 80ms both fadeInUp}.deck-grid .card-clickable:nth-child(3){animation:.28s .12s both fadeInUp}.deck-grid .card-clickable:nth-child(4){animation:.28s .16s both fadeInUp}.deck-grid .card-clickable:nth-child(5){animation:.28s .2s both fadeInUp}.deck-grid .card-clickable:nth-child(6){animation:.28s .24s both fadeInUp}.deck-grid .card-clickable:nth-child(n+7){animation:.28s .28s both fadeInUp}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:32px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:32px}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-secondary)}.text-sm{font-size:.8rem}.error-box{background:var(--error-light);border:1px solid var(--error-border);color:var(--error-dark);border-radius:var(--radius-md);margin-bottom:16px;padding:12px 16px;font-size:.875rem}.divider{background:var(--border);align-self:stretch;width:1px}@media (max-width:640px){h1{font-size:2.25rem}h2{font-size:1.5rem}.container{padding:0 16px}.flip-card-container{height:260px}.flip-card-face{padding:24px}.flip-card-back .flip-card-text{font-size:1.4rem}.btn-lg{padding:13px 26px}.srs-rating-row{gap:6px}.srs-btn{min-height:52px;padding:8px 4px}.srs-btn-label{font-size:.78rem}.srs-btn-interval{font-size:.62rem}.srs-stats-grid{grid-template-columns:repeat(2,1fr)}}
