@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,700;0,9..144,900;1,9..144,400&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--paper: #f5f0e6;--paper-2: #ede6d6;--ink: #1a1a1d;--ink-2: #3a3a40;--red: #a02436;--red-dark: #7a1829;--blue: #1d3557;--sepia: #8b6f47;--line: #1a1a1d;--muted: #6e6658;--mint: #4a7c59;--shadow-card: 4px 4px 0 var(--ink);--shadow-lift: 6px 6px 0 var(--ink);--serif: "Fraunces", Georgia, serif;--mono: "JetBrains Mono", "Courier New", monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:15px;line-height:1.55;background-image:radial-gradient(circle at 20% 30%,rgba(139,111,71,.04) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(29,53,87,.03) 0%,transparent 50%),repeating-linear-gradient(45deg,transparent 0,transparent 2px,rgba(26,26,29,.012) 2px,rgba(26,26,29,.012) 4px)}button{font-family:var(--mono);cursor:pointer}.app{max-width:880px;margin:0 auto;padding:32px 20px 80px}.hdr{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:28px;flex-wrap:wrap}.hdr-left{display:flex;gap:18px;align-items:center}.hdr h1{font-family:var(--serif);font-weight:900;font-size:clamp(28px,5vw,44px);line-height:1;margin:0;letter-spacing:-.02em;font-style:italic}.hdr .sub{margin:4px 0 0;font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.hdr-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stamp{position:relative;width:78px;height:78px;flex-shrink:0;transform:rotate(-8deg)}.stamp:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px double var(--red);border-radius:50%;opacity:.85}.stamp:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid var(--red);border-radius:50%;opacity:.6}.stamp-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;font-size:14px;color:var(--red);letter-spacing:.05em;font-style:italic}.sync-status{font-size:12px;color:var(--mint);font-weight:500;letter-spacing:.04em}.btn-primary,.btn-ghost{font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:9px 16px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);box-shadow:3px 3px 0 var(--ink);transition:transform .08s ease,box-shadow .08s ease}.btn-primary:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--red)}.btn-primary:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.btn-ghost{background:var(--paper);color:var(--ink)}.btn-ghost:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--blue)}.btn-ghost:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.big-btn{padding:14px 26px;font-size:14px}.kbd{display:inline-block;margin-left:10px;padding:2px 7px;border:1px solid currentColor;border-radius:2px;font-size:10px;opacity:.6}.controls{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:32px}@media (min-width: 700px){.controls{grid-template-columns:1fr 1fr}}.filter-group{display:flex;gap:12px;flex-wrap:wrap}.filter-group label{display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:1;min-width:140px}.filter-group select{font-family:var(--mono);font-size:13px;padding:7px 10px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;cursor:pointer}.progress-block{border:1.5px solid var(--ink);padding:10px 14px;background:var(--paper-2)}.progress-nums{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.progress-nums .big{font-family:var(--serif);font-weight:900;font-size:32px;line-height:1;color:var(--red);font-style:italic}.progress-nums .slash{color:var(--muted);font-size:20px}.progress-nums .pct{margin-left:auto;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.progress-bar{height:6px;background:var(--paper);border:1px solid var(--ink);overflow:hidden}.progress-fill{height:100%;background:repeating-linear-gradient(45deg,var(--red),var(--red) 4px,var(--red-dark) 4px,var(--red-dark) 8px);transition:width .4s cubic-bezier(.2,.9,.3,1.2)}.card-area{min-height:340px;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.card{width:100%;background:var(--paper);border:2.5px solid var(--ink);box-shadow:var(--shadow-lift);padding:28px 26px;position:relative;min-height:300px;display:flex;flex-direction:column;animation:cardIn .35s cubic-bezier(.2,.9,.3,1.2)}@keyframes cardIn{0%{opacity:0;transform:translateY(12px) rotate(-.5deg)}to{opacity:1;transform:translateY(0) rotate(0)}}.card:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:8px;background:repeating-linear-gradient(90deg,var(--red) 0,var(--red) 10px,var(--paper) 10px,var(--paper) 14px,var(--blue) 14px,var(--blue) 24px,var(--paper) 24px,var(--paper) 28px);opacity:.85}.card.type-grammar:before{background:repeating-linear-gradient(90deg,var(--blue) 0,var(--blue) 16px,var(--paper) 16px,var(--paper) 20px)}.card.type-verb:before{background:repeating-linear-gradient(90deg,var(--sepia) 0,var(--sepia) 12px,var(--paper) 12px,var(--paper) 16px)}.card.type-phrase:before{background:repeating-linear-gradient(90deg,var(--mint) 0,var(--mint) 14px,var(--paper) 14px,var(--paper) 18px)}.card-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px;padding-bottom:12px;border-bottom:1px dashed var(--ink);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.pill{background:var(--ink);color:var(--paper);padding:3px 9px;font-weight:700}.cat{color:var(--muted)}.seen-count{margin-left:auto;color:var(--sepia);font-style:italic;text-transform:lowercase;letter-spacing:.04em}.card-front{display:flex;flex-direction:column;justify-content:center;flex:1;text-align:center;padding:20px 0}.prompt-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}.front-text{font-family:var(--serif);font-weight:900;font-size:clamp(28px,5vw,42px);margin:0;line-height:1.15;color:var(--ink);letter-spacing:-.01em}.card.type-vocab .front-text,.card.type-phrase .front-text{color:var(--red)}.card.type-verb .front-text{color:var(--sepia);font-style:italic}.card.type-grammar .front-text{color:var(--blue);font-size:clamp(20px,3.5vw,28px)}.grammar-hint{font-size:12px;color:var(--muted);margin-top:16px;font-style:italic}.card-back{animation:flipIn .3s ease;flex:1}@keyframes flipIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.translation{font-family:var(--serif);font-size:22px;font-weight:700;margin:0 0 14px;color:var(--ink);line-height:1.3}.example{margin:0;padding:10px 14px;border-left:3px solid var(--red);background:var(--paper-2);font-style:italic;font-size:14px;color:var(--ink-2)}.verb-back{display:flex;flex-direction:column;gap:10px}.verb-back .row{display:grid;grid-template-columns:130px 1fr;gap:12px;font-size:13px;align-items:baseline;padding-bottom:6px;border-bottom:1px dotted var(--paper-2)}.verb-back .row .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.verb-back .row.highlight{background:#fdf4d8;border:1.5px solid var(--sepia);padding:8px 10px;font-size:15px}.verb-back .row.highlight .lbl{color:var(--sepia);font-weight:700}.verb-back .row.highlight strong{font-family:var(--serif);font-size:18px;color:var(--sepia);font-style:italic}.verb-rule{margin-top:8px;padding:10px;background:#fff8e1;border-left:3px solid var(--sepia);font-size:13px;font-style:italic}.grammar-back pre{font-family:var(--mono);font-size:13.5px;white-space:pre-wrap;line-height:1.6;margin:0;color:var(--ink)}.done-card{text-align:center;padding:60px 40px;border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow-lift);position:relative;width:100%}.done-stamp{display:inline-block;font-family:var(--serif);font-weight:900;font-size:52px;color:var(--mint);border:4px solid var(--mint);padding:10px 28px;transform:rotate(-6deg);letter-spacing:.08em;margin-bottom:20px;font-style:italic;opacity:.85}.done-card h2{font-family:var(--serif);font-size:32px;margin:10px 0;font-style:italic}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.ftr{margin-top:50px;padding-top:20px;border-top:1px solid var(--paper-2);display:flex;justify-content:space-between;gap:16px}.link-btn{background:none;border:none;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:6px 0}.link-btn:hover{color:var(--ink)}.link-btn.danger:hover{color:var(--red)}.stats-panel{margin-top:20px;border:1.5px solid var(--ink);padding:18px;background:var(--paper-2)}.stats-panel h3{font-family:var(--serif);font-style:italic;font-size:20px;margin:0 0 14px}.stats-panel table{width:100%;border-collapse:collapse;font-size:12px}.stats-panel td{padding:6px 8px;vertical-align:middle}.stats-panel td.num{font-variant-numeric:tabular-nums;color:var(--muted);width:80px;text-align:right}.stats-panel .mini-bar{height:4px;background:var(--paper);border:1px solid var(--muted);min-width:80px}.stats-panel .mini-bar div{height:100%;background:var(--red)}
