@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Manrope:wght@400;500;600;700&display=swap');
:root{--ink:#132940;--muted:#667383;--paper:#f7f5ef;--panel:#fffefa;--line:#e4e2da;--orange:#d97555;--orange-dark:#b9563c;--blue:#2e6096;--green:#427e70}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--ink);background:var(--paper);font:16px/1.5 Manrope,system-ui,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:30px;padding:30px 20px 22px;background:var(--ink);color:#f9f8f3}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:1.45rem Fraunces,serif}.brand-mark{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;color:var(--ink);background:#efb26e;font:500 .95rem DM Mono,monospace}.new-deck-button{padding:12px 14px;border:1px solid rgba(255,255,255,.32);border-radius:10px;color:#fff;background:transparent;text-align:left;font-weight:600}.new-deck-button:hover{background:rgba(255,255,255,.1)}.new-deck-button span{margin-right:7px;font-size:1.25rem;line-height:0}.nav-label,.section-kicker,.eyebrow,.card-type,.answer-label{margin:0;font:500 .68rem/1.2 DM Mono,monospace;letter-spacing:.11em}.nav-label{padding:0 10px 9px;color:#aebcd0}.deck-list,.manage-list{margin:0;padding:0;list-style:none}.deck-list{display:grid;gap:4px}.deck-button{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;padding:10px;border:0;border-radius:8px;color:#ced9e7;background:transparent;text-align:left}.deck-button:hover,.deck-button.active{color:#fff;background:rgba(255,255,255,.11)}.deck-dot{width:8px;height:8px;border-radius:50%;background:var(--deck-color)}.deck-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.deck-number{color:#9bacc1;font:.72rem DM Mono,monospace}.sidebar-footer{display:flex;align-items:center;gap:10px;margin-top:auto;padding:20px 8px 0;border-top:1px solid rgba(255,255,255,.14);color:#c3d0df}.sidebar-footer p{margin:0;font-size:.74rem;line-height:1.45}.sidebar-footer strong{color:#fff;font-size:.8rem}.local-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;color:#f5bf7f;background:rgba(239,178,110,.12)}.content{width:min(1120px,100%);margin:0 auto;padding:52px 56px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:54px}.eyebrow{margin-bottom:8px;color:var(--orange-dark)}.topbar h1{margin:0;font:600 clamp(2rem,4vw,3.1rem)/1.08 Fraunces,serif;letter-spacing:-.045em}.header-actions{display:flex;gap:10px;align-items:center}.quiet-button{padding:10px 12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:transparent;font-size:.78rem;font-weight:700}.quiet-button:hover{background:#eeece6}.icon-button{width:42px;height:42px;border:0;border-radius:50%;color:#fff;background:var(--ink);font-size:1.5rem;line-height:1;transition:transform .15s,background .15s}.icon-button:hover{transform:rotate(90deg);background:var(--blue)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:42px;align-items:start}.study-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-kicker{margin-bottom:7px;color:var(--orange-dark)}.study-heading h2,.progress-heading h2,.empty-study h2{margin:0;font:600 1.48rem/1.2 Fraunces,serif;letter-spacing:-.025em}.card-count{margin:0;color:var(--muted);font-size:.78rem}.flashcard{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:44px 38px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 14px 34px rgba(27,43,61,.055);outline:none;text-align:center;user-select:none;transition:transform .18s,box-shadow .18s;touch-action:pan-y}.flashcard:hover,.flashcard:focus-visible{transform:translateY(-3px);box-shadow:0 19px 38px rgba(27,43,61,.1)}.card-meta{position:absolute;top:19px;left:22px;right:22px;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.68rem}.card-type{color:var(--orange-dark)}.card-prompt{max-width:560px;margin:22px 0 12px;font:500 clamp(1.75rem,3.6vw,2.7rem)/1.22 Fraunces,serif;letter-spacing:-.04em;white-space:pre-wrap}.card-hint{margin:0;color:var(--muted);font-size:.75rem}.recall-panel{margin-top:16px}.recall-panel label{display:block;margin:0 0 7px;font-size:.76rem;font-weight:700}.recall-panel label span{color:var(--muted);font-weight:400}.answer-row{display:flex;gap:9px}.answer-row input{min-width:0;flex:1}.reveal-button{padding:0 17px;border:1px solid var(--ink);border-radius:9px;color:#fff;background:var(--ink);font-weight:700;white-space:nowrap}.reveal-button:hover{background:var(--blue)}input,textarea,select{width:100%;border:1px solid #d7d7d1;border-radius:8px;padding:11px 12px;color:var(--ink);background:#fff;font-weight:400}input:focus,textarea:focus,select:focus{outline:2px solid rgba(46,96,150,.3);border-color:var(--blue)}textarea{min-height:96px;resize:vertical}.answer-panel{margin-top:16px;padding:21px 22px;border:1px solid #e9d6cc;border-radius:14px;background:#fff8f3}.answer-label{color:var(--orange-dark)}.answer-text{margin:8px 0 5px;font:500 1.35rem/1.3 Fraunces,serif;white-space:pre-wrap}.self-rate{margin:0 0 14px;color:var(--muted);font-size:.75rem}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rating-buttons button{display:grid;gap:2px;padding:9px 5px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-size:.72rem}.rating-buttons button:hover{border-color:#9ca7af;background:#f8f8f6}.rating-buttons strong{font-size:.76rem}.rating-buttons span{color:var(--muted);font-size:.66rem}.rating-buttons .rating-again{border-color:#ecc4bc;background:#fff9f8}.rating-buttons .rating-good{border-color:#bdd7cc;background:#f8fcfa}.empty-study{padding:56px 25px;border:1px dashed #cbc9c2;border-radius:18px;background:rgba(255,255,255,.36);text-align:center}.empty-study span{display:grid;width:47px;height:47px;place-items:center;margin:0 auto 18px;border-radius:50%;color:#fff;background:var(--green);font-weight:700}.empty-study p{max-width:350px;margin:12px auto 22px;color:var(--muted);font-size:.85rem;line-height:1.6}.primary-button,.secondary-button{padding:11px 14px;border-radius:8px;font-size:.8rem;font-weight:700}.primary-button{border:1px solid var(--orange);color:#fff;background:var(--orange)}.primary-button:hover{border-color:var(--orange-dark);background:var(--orange-dark)}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff}.secondary-button:hover{background:#f0efe9}.progress-panel{padding-top:8px}.progress-heading{margin-bottom:23px}.progress-ring{--size:148px;display:grid;position:relative;width:var(--size);height:var(--size);place-items:center;margin:0 auto 17px;border-radius:50%;background:conic-gradient(var(--orange) calc(var(--progress)*1%),#e7e7e2 0)}.progress-ring:before{position:absolute;inset:10px;border-radius:50%;background:var(--paper);content:""}.progress-ring span{z-index:1;font:600 1.6rem Fraunces,serif}.progress-caption{max-width:200px;margin:0 auto 22px;color:var(--muted);text-align:center;font-size:.76rem;line-height:1.55}.stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats div{padding:12px 8px}.stats div:nth-child(even){border-left:1px solid var(--line)}.stats div:nth-child(n+3){border-top:1px solid var(--line)}.stats strong,.stats span{display:block}.stats strong{font:600 1.1rem Fraunces,serif}.stats span{margin-top:3px;color:var(--muted);font-size:.64rem}.next-up{margin-top:17px;padding:12px 13px;border-radius:9px;background:#eeece5}.next-up p{margin:0 0 2px;color:var(--muted);font-size:.65rem}.next-up strong{font-size:.78rem}.toast{position:fixed;z-index:10;right:22px;bottom:22px;max-width:360px;padding:11px 15px;border-radius:9px;color:#fff;background:var(--ink);box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}dialog{width:min(540px,calc(100% - 32px));border:0;border-radius:16px;padding:0;color:var(--ink);background:var(--panel);box-shadow:0 25px 70px rgba(10,23,39,.28)}dialog::backdrop{background:rgba(15,32,53,.48);backdrop-filter:blur(3px)}dialog form,.manage-content{padding:27px}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-header h2{margin:0;font:600 1.55rem Fraunces,serif}.close-button{border:0;color:var(--muted);background:transparent;font-size:1.65rem;line-height:1}.close-button:hover{color:var(--ink)}label{display:grid;gap:7px;margin:0 0 16px;font-size:.8rem;font-weight:700}.optional{color:var(--muted);font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{min-width:0}input[type=color]{height:42px;padding:4px}.form-help{margin:-5px 0 20px;color:var(--muted);font-size:.73rem;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:26px}.manage-content{max-height:88vh;overflow:auto}.manage-actions{display:flex;flex-wrap:wrap;gap:7px;margin:-7px 0 18px}.deck-settings{margin-bottom:18px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#faf9f5;font-size:.78rem}.deck-settings summary{cursor:pointer;font-weight:700}.deck-settings form{display:flex;align-items:flex-end;gap:10px;margin-top:13px}.deck-settings label{flex:1;margin:0}.text-button{padding:0;border:0;color:var(--blue);background:transparent;font-size:.78rem;font-weight:700}.text-button:hover{color:var(--orange-dark)}.manage-list{display:grid;gap:8px}.manage-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:9px}.manage-list strong,.manage-list span{display:block}.manage-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}.manage-list span{margin-top:3px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.manage-list .card-actions{display:flex;gap:9px}.edit-card,.delete-card{border:0;background:transparent;font-size:.72rem;font-weight:700}.edit-card{color:var(--blue)}.delete-card{color:#a53e35}.edit-card:hover,.delete-card:hover{text-decoration:underline}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{gap:14px;padding:16px 18px}.sidebar nav{overflow:auto}.deck-list{display:flex;width:max-content}.deck-button{width:auto;grid-template-columns:10px auto auto}.sidebar-footer,.nav-label{display:none}.new-deck-button{position:absolute;top:16px;right:18px;padding:8px 10px;font-size:.78rem}.brand{font-size:1.25rem}.content{padding:38px 22px}.topbar{margin-bottom:35px}.workspace{grid-template-columns:minmax(0,1fr) 275px;gap:42px;align-items:start}.study-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-kicker{margin-bottom:7px;color:var(--orange-dark)}.study-heading h2,.progress-heading h2,.empty-study h2{margin:0;font:600 1.48rem/1.2 Fraunces,serif;letter-spacing:-.025em}.card-count{margin:0;color:var(--muted);font-size:.78rem}.flashcard{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:44px 38px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 14px 34px rgba(27,43,61,.055);outline:none;text-align:center;user-select:none;transition:transform .18s,box-shadow .18s;touch-action:pan-y}.flashcard:hover,.flashcard:focus-visible{transform:translateY(-3px);box-shadow:0 19px 38px rgba(27,43,61,.1)}.card-meta{position:absolute;top:19px;left:22px;right:22px;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.68rem}.card-type{color:var(--orange-dark)}.card-prompt{max-width:560px;margin:22px 0 12px;font:500 clamp(1.75rem,3.6vw,2.7rem)/1.22 Fraunces,serif;letter-spacing:-.04em;white-space:pre-wrap}.card-hint{margin:0;color:var(--muted);font-size:.75rem}.recall-panel{margin-top:16px}.recall-panel label{display:block;margin:0 0 7px;font-size:.76rem;font-weight:700}.recall-panel label span{color:var(--muted);font-weight:400}.answer-row{display:flex;gap:9px}.answer-row input{min-width:0;flex:1}.reveal-button{padding:0 17px;border:1px solid var(--ink);border-radius:9px;color:#fff;background:var(--ink);font-weight:700;white-space:nowrap}.reveal-button:hover{background:var(--blue)}input,textarea,select{width:100%;border:1px solid #d7d7d1;border-radius:8px;padding:11px 12px;color:var(--ink);background:#fff;font-weight:400}input:focus,textarea:focus,select:focus{outline:2px solid rgba(46,96,150,.3);border-color:var(--blue)}textarea{min-height:96px;resize:vertical}.answer-panel{margin-top:16px;padding:21px 22px;border:1px solid #e9d6cc;border-radius:14px;background:#fff8f3}.answer-label{color:var(--orange-dark)}.answer-text{margin:8px 0 5px;font:500 1.35rem/1.3 Fraunces,serif;white-space:pre-wrap}.self-rate{margin:0 0 14px;color:var(--muted);font-size:.75rem}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rating-buttons button{display:grid;gap:2px;padding:9px 5px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-size:.72rem}.rating-buttons button:hover{border-color:#9ca7af;background:#f8f8f6}.rating-buttons strong{font-size:.76rem}.rating-buttons span{color:var(--muted);font-size:.66rem}.rating-buttons .rating-again{border-color:#ecc4bc;background:#fff9f8}.rating-buttons .rating-good{border-color:#bdd7cc;background:#f8fcfa}.empty-study{padding:56px 25px;border:1px dashed #cbc9c2;border-radius:18px;background:rgba(255,255,255,.36);text-align:center}.empty-study span{display:grid;width:47px;height:47px;place-items:center;margin:0 auto 18px;border-radius:50%;color:#fff;background:var(--green);font-weight:700}.empty-study p{max-width:350px;margin:12px auto 22px;color:var(--muted);font-size:.85rem;line-height:1.6}.primary-button,.secondary-button{padding:11px 14px;border-radius:8px;font-size:.8rem;font-weight:700}.primary-button{border:1px solid var(--orange);color:#fff;background:var(--orange)}.primary-button:hover{border-color:var(--orange-dark);background:var(--orange-dark)}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff}.secondary-button:hover{background:#f0efe9}.progress-panel{padding-top:8px}.progress-heading{margin-bottom:23px}.progress-ring{--size:148px;display:grid;position:relative;width:var(--size);height:var(--size);place-items:center;margin:0 auto 17px;border-radius:50%;background:conic-gradient(var(--orange) calc(var(--progress)*1%),#e7e7e2 0)}.progress-ring:before{position:absolute;inset:10px;border-radius:50%;background:var(--paper);content:""}.progress-ring span{z-index:1;font:600 1.6rem Fraunces,serif}.progress-caption{max-width:200px;margin:0 auto 22px;color:var(--muted);text-align:center;font-size:.76rem;line-height:1.55}.stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats div{padding:12px 8px}.stats div:nth-child(even){border-left:1px solid var(--line)}.stats div:nth-child(n+3){border-top:1px solid var(--line)}.stats strong,.stats span{display:block}.stats strong{font:600 1.1rem Fraunces,serif}.stats span{margin-top:3px;color:var(--muted);font-size:.64rem}.next-up{margin-top:17px;padding:12px 13px;border-radius:9px;background:#eeece5}.next-up p{margin:0 0 2px;color:var(--muted);font-size:.65rem}.next-up strong{font-size:.78rem}.toast{position:fixed;z-index:10;right:22px;bottom:22px;max-width:360px;padding:11px 15px;border-radius:9px;color:#fff;background:var(--ink);box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}dialog{width:min(540px,calc(100% - 32px));border:0;border-radius:16px;padding:0;color:var(--ink);background:var(--panel);box-shadow:0 25px 70px rgba(10,23,39,.28)}dialog::backdrop{background:rgba(15,32,53,.48);backdrop-filter:blur(3px)}dialog form,.manage-content{padding:27px}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-header h2{margin:0;font:600 1.55rem Fraunces,serif}.close-button{border:0;color:var(--muted);background:transparent;font-size:1.65rem;line-height:1}.close-button:hover{color:var(--ink)}label{display:grid;gap:7px;margin:0 0 16px;font-size:.8rem;font-weight:700}.optional{color:var(--muted);font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{min-width:0}input[type=color]{height:42px;padding:4px}.form-help{margin:-5px 0 20px;color:var(--muted);font-size:.73rem;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:26px}.manage-content{max-height:88vh;overflow:auto}.manage-actions{display:flex;flex-wrap:wrap;gap:7px;margin:-7px 0 18px}.deck-settings{margin-bottom:18px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#faf9f5;font-size:.78rem}.deck-settings summary{cursor:pointer;font-weight:700}.deck-settings form{display:flex;align-items:flex-end;gap:10px;margin-top:13px}.deck-settings label{flex:1;margin:0}.text-button{padding:0;border:0;color:var(--blue);background:transparent;font-size:.78rem;font-weight:700}.text-button:hover{color:var(--orange-dark)}.manage-list{display:grid;gap:8px}.manage-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:9px}.manage-list strong,.manage-list span{display:block}.manage-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}.manage-list span{margin-top:3px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.manage-list .card-actions{display:flex;gap:9px}.edit-card,.delete-card{border:0;background:transparent;font-size:.72rem;font-weight:700}.edit-card{color:var(--blue)}.delete-card{color:#a53e35}.edit-card:hover,.delete-card:hover{text-decoration:underline}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{gap:14px;padding:16px 18px}.sidebar nav{overflow:auto}.deck-list{display:flex;width:max-content}.deck-button{width:auto;grid-template-columns:10px auto auto}.sidebar-footer,.nav-label{display:none}.new-deck-button{position:absolute;top:16px;right:18px;padding:8px 10px;font-size:.78rem}.brand{font-size:1.25rem}.content{padding:38px 22px}.topbar{margin-bottom:35px}.workspace{grid-template-columns:1fr;gap:33px}.progress-panel{display:grid;grid-template-columns:1fr 145px;gap:0 22px;align-items:center}.progress-heading{grid-column:1/-1}.progress-ring{grid-column:2;grid-row:2/span 2}.progress-caption{grid-column:1;grid-row:2;margin:0;text-align:left}.stats{grid-column:1;grid-row:3}.next-up{grid-column:1/-1}.flashcard{min-height:255px}}@media(max-width:500px){.content{padding:30px 16px}.topbar h1{font-size:2rem}.quiet-button{display:none}.study-heading{align-items:flex-start;flex-direction:column}.card-prompt{font-size:1.85rem}.answer-row{flex-direction:column}.reveal-button{padding:11px}.rating-buttons{grid-template-columns:1fr 1fr}.progress-panel{grid-template-columns:1fr}.progress-ring{grid-column:1;grid-row:auto;margin:0 auto 15px}.progress-caption,.stats,.next-up{grid-column:1;grid-row:auto}.progress-caption{margin-bottom:18px;text-align:center}.stats{width:100%}.form-grid{grid-template-columns:1fr}.deck-settings form{align-items:stretch;flex-direction:column}.dialog-actions{align-items:stretch;flex-direction:column-reverse}.dialog-actions button{width:100%}.manage-list li{align-items:flex-start;grid-template-columns:1fr}.manage-list .card-actions{justify-content:flex-start}}
