*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#c9c6d4;--color-surface:#d6d3e2;--color-border:#b2afc2;--color-muted:#7c7a8e;--color-subtle:#4a4860;--color-body:#26243a;--color-heading:#0c0a1c;--color-brand:#3b5bdb;--color-accent:#0ea5e9;--shadow-dropdown:0 8px 24px #0000002e;--shadow-card:0 4px 16px #0000001f}[data-theme=dark]{--color-bg:#0d0c14;--color-surface:#1d1b2c;--color-border:#38344e;--color-muted:#9490b0;--color-subtle:#c0bcd4;--color-body:#e0dde8;--color-heading:#f4f0ff;--color-brand:#7da4fa;--color-accent:#4ade80;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--shadow-dropdown:0 8px 24px #00000080;--shadow-card:0 4px 16px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0d0c14;--color-surface:#1d1b2c;--color-border:#38344e;--color-muted:#9490b0;--color-subtle:#c0bcd4;--color-body:#e0dde8;--color-heading:#f4f0ff;--color-brand:#7da4fa;--color-accent:#4ade80;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--shadow-dropdown:0 8px 24px #00000080;--shadow-card:0 4px 16px #0006}}[data-font=chalk]{--font-base:"Caveat", cursive}:root{--font-base:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--fw-normal:400;--fw-medium:500;--fw-bold:700;--fw-black:800;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--bar-h:60px}body{font-family:var(--font-base);font-size:var(--text-base);background:var(--color-bg);color:var(--color-body);min-height:100svh;line-height:1.6}.stack{gap:var(--stack-gap,var(--space-4));flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--cluster-gap,var(--space-4));flex-wrap:wrap;display:flex}.center{max-width:var(--center-max,48rem);padding-inline:var(--space-6);margin-inline:auto}.u-text-xs{font-size:var(--text-xs)}.u-text-sm{font-size:var(--text-sm)}.u-text-lg{font-size:var(--text-lg)}.u-text-2xl{font-size:var(--text-2xl)}.u-fw-bold{font-weight:var(--fw-bold)}.u-fw-black{font-weight:var(--fw-black)}.u-tracking-wide{letter-spacing:.08em}.u-color-heading{color:var(--color-heading)}.u-color-subtle{color:var(--color-subtle)}.u-color-muted{color:var(--color-muted)}.u-color-accent{color:var(--color-accent)}.u-ta-center{text-align:center}.question-ticker-bar{block-size:var(--bar-h);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;align-items:center;display:flex;position:fixed;inset-block-end:0;inset-inline:0;overflow:hidden}.question-ticker-bar__category-label{block-size:100%;padding-inline:var(--space-4);background:var(--color-brand);color:#fff;font-size:var(--text-xs);font-weight:var(--fw-black);letter-spacing:.14em;text-transform:uppercase;flex-shrink:0;align-items:center;display:flex}.question-ticker-bar__scroll-viewport{flex:1;min-inline-size:0;overflow:hidden}.question-ticker-bar__scroll-track{white-space:nowrap;width:max-content;animation:question-ticker-scroll calc(var(--ticker-item-count,50) * 8s) linear infinite;list-style:none;display:flex}.question-ticker-bar:hover .question-ticker-bar__scroll-track{animation-play-state:paused}@keyframes question-ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.question-ticker-bar__entry{align-items:center;gap:var(--space-2);padding-inline:var(--space-6);display:inline-flex}.question-ticker-bar__pin-to-note-button{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none;border-radius:4px;transition:background .15s;display:inline-flex}.question-ticker-bar__pin-to-note-button:hover{background:var(--color-border)}.question-ticker-bar__pin-to-note-button:active{background:#ca8a0440}.question-ticker-bar__question-text{font-size:var(--text-sm);color:var(--color-body)}.question-ticker-bar__answer-separator{color:var(--color-muted);font-size:var(--text-sm);flex-shrink:0}.question-ticker-bar__answer-text{font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-accent)}.question-ticker-bar__entry-divider{font-size:var(--text-xs);color:var(--color-muted);padding-inline-start:var(--space-4)}.question-ticker-bar__reshuffle-button{block-size:100%;padding-inline:var(--space-4);border:none;border-left:1px solid var(--color-border);color:var(--color-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.question-ticker-bar__reshuffle-button:hover{color:var(--color-body);background:var(--color-border)}.sticky-note-card{z-index:200;resize:both;background:var(--color-surface);border:1px solid var(--color-border);min-block-size:110px;inline-size:280px;min-inline-size:200px;box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;border-radius:14px;flex-direction:column;animation:.18s sticky-note-card-enter;display:flex;position:fixed;inset-block-end:calc(var(--bar-h) + var(--space-3) + 36px + var(--space-2));inset-inline-end:var(--space-4);overflow:hidden;container-type:inline-size}@keyframes sticky-note-card-enter{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.sticky-note-card__header{gap:var(--space-2);padding:var(--space-3) var(--space-4);background:color-mix(in srgb, var(--color-brand) 10%, var(--color-surface));border-bottom:1px solid color-mix(in srgb, var(--color-brand) 20%, var(--color-border));flex-direction:column;flex-shrink:0;display:flex}.sticky-note-card__question{font-size:clamp(.7rem,3.8cqi,1rem);font-weight:var(--fw-bold);color:var(--color-heading);line-height:1.4}.sticky-note-card__answer{align-items:baseline;gap:var(--space-2);font-size:clamp(.65rem,3.4cqi,.9rem);font-weight:var(--fw-bold);color:var(--color-accent);line-height:1.4;display:flex}.sticky-note-card__answer-label{font-size:clamp(.55rem,2.8cqi,.72rem);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.1em;color:var(--color-brand);flex-shrink:0}.sticky-note-card__keywords{align-items:flex-start;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid color-mix(in srgb, var(--color-brand) 20%, var(--color-border));display:flex}.sticky-note-card__keywords-label{font-size:clamp(.5rem,2.5cqi,.65rem);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.12em;color:#10b981;flex-shrink:0;margin-top:1px}.sticky-note-card__keywords-list{flex-direction:column;gap:2px;list-style:none;display:flex}.sticky-note-card__keyword{align-items:baseline;gap:clamp(2px, 1cqi, var(--space-2));font-size:clamp(.6rem,3.2cqi,.85rem);line-height:1.4;display:flex}.sticky-note-card__keyword-original{color:var(--color-subtle);font-weight:var(--fw-medium)}.sticky-note-card__keyword-arrow{color:var(--color-muted);flex-shrink:0;font-size:.8em}.sticky-note-card__keyword-pt{color:#10b981;font-weight:var(--fw-bold)}.sticky-note-card__text-area{field-sizing:content;resize:none;padding:var(--space-4) var(--space-4) var(--space-2);font-family:var(--font-base);color:var(--color-body);-webkit-user-select:text;user-select:text;cursor:text;min-block-size:3lh;font-size:clamp(.75rem,5cqi,2.25rem);line-height:1.65;font-weight:var(--fw-bold);background:0 0;background-image:repeating-linear-gradient(transparent, transparent calc(1.65em - 1px), color-mix(in srgb, var(--color-border) 40%, transparent) 1.65em);background-attachment:local;border:none;outline:none;flex:1;overflow-y:auto}.sticky-note-card__text-area::placeholder{color:var(--color-muted);opacity:.7}.sticky-note-card__footer{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border);cursor:grab;flex-shrink:0;min-block-size:36px;display:flex}.sticky-note-card__footer:active{cursor:grabbing}.sticky-note-card__title-label{font-size:.58rem;font-weight:var(--fw-bold);color:var(--color-muted);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;flex-shrink:0}.sticky-note-card__footer-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.sticky-note-card__close-button{cursor:pointer;color:var(--color-muted);background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:.75rem;line-height:1;transition:color .1s,background .1s}.sticky-note-card__close-button:hover{color:var(--color-heading);background:var(--color-border)}.sticky-note-card__note-icon{color:var(--color-muted);pointer-events:none;flex-shrink:0}.sticky-note-board__new-note-button{z-index:101;border:1px solid var(--color-border);background:var(--color-surface);block-size:36px;inline-size:36px;color:var(--color-subtle);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex;position:fixed;inset-block-end:calc(var(--bar-h) + var(--space-3));inset-inline-end:var(--space-4)}.sticky-note-board__new-note-button:hover{color:#fff;background:#ca8a04;border-color:#a16207}.question-library-loader{min-block-size:100svh;padding:var(--space-8);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.question-library-loader__card{gap:var(--space-6);flex-direction:column;width:100%;max-width:560px;display:flex}.question-library-loader__title{font-size:var(--text-2xl);font-weight:var(--fw-black);color:var(--color-heading);letter-spacing:-.02em}.question-library-loader__subtitle{font-size:var(--text-sm);color:var(--color-subtle);margin-top:var(--space-2)}.question-library-loader__tabs{border-bottom:1px solid var(--color-border);gap:0;display:flex}.question-library-loader__tab{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;transition:color .15s,border-color .15s}.question-library-loader__tab:hover{color:var(--color-body)}.question-library-loader__tab--active{color:var(--color-brand);border-bottom-color:var(--color-brand)}.question-library-loader__drop-label{font-size:var(--text-sm);color:var(--color-subtle)}.question-library-loader__editor-panel{gap:var(--space-4);flex-direction:column;display:flex}.question-library-loader__json-editor{width:100%;background:var(--color-surface);border:1px solid var(--color-border);min-block-size:240px;padding:var(--space-4);color:var(--color-body);resize:vertical;border-radius:10px;outline:none;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.75rem;line-height:1.7;transition:border-color .15s}.question-library-loader__json-editor:focus{border-color:var(--color-brand)}.question-library-loader__load-button{padding:var(--space-2) var(--space-6);background:var(--color-brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-bold);cursor:pointer;border:none;border-radius:8px;align-self:flex-end;transition:background .15s}.question-library-loader__load-button:hover{background:#1d4ed8}.question-library-loader__error{font-size:var(--text-sm);color:#f87171;padding:var(--space-3) var(--space-4);background:#ef44441a;border:1px solid #ef444440;border-radius:8px}.question-library-loader__divider{align-items:center;gap:var(--space-4);color:var(--color-muted);font-size:var(--text-xs);display:flex}.question-library-loader__divider:before,.question-library-loader__divider:after{content:"";background:var(--color-border);flex:1;height:1px}.question-library-loader__drop-zone{border:1px dashed var(--color-border);padding:var(--space-6);justify-content:center;align-items:center;gap:var(--space-4);color:var(--color-subtle);border-radius:10px;transition:border-color .15s,background .15s;display:flex}.question-library-loader__drop-zone--active{border-color:var(--color-brand);color:var(--color-body);background:#2563eb0f}.question-library-loader__browse-button{padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-body);cursor:pointer;border-radius:8px;align-items:center;transition:border-color .15s,background .15s;display:inline-flex}.question-library-loader__browse-button:hover{border-color:var(--color-brand);background:var(--color-border)}.question-library-loader__file-input{display:none}.question-library-loader__format-section{gap:var(--space-4);flex-direction:column;display:flex}.question-library-loader__format-title{font-size:var(--text-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted)}.question-library-loader__format-rules{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.question-library-loader__format-rules li{font-size:var(--text-sm);color:var(--color-subtle);padding-inline-start:var(--space-4);position:relative}.question-library-loader__format-rules li:before{content:"–";color:var(--color-muted);position:absolute;inset-inline-start:0}.question-library-loader__format-rules code{color:var(--color-accent);background:#34d39914;border-radius:3px;padding:1px 5px;font-size:.85em}.flashcard-modal__overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-6);background:#0000008c;justify-content:center;align-items:center;animation:.2s flashcard-overlay-enter;display:flex;position:fixed;inset:0}@keyframes flashcard-overlay-enter{0%{opacity:0}to{opacity:1}}.flashcard-modal{background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:580px;box-shadow:var(--shadow-dropdown);border-radius:20px;flex-direction:column;animation:.22s cubic-bezier(.16,1,.3,1) flashcard-modal-enter;display:flex;overflow:hidden}@keyframes flashcard-modal-enter{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.flashcard-modal__header{padding:var(--space-6) var(--space-6) var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.flashcard-modal__title{font-size:var(--text-lg);font-weight:var(--fw-black);color:var(--color-heading);line-height:1.2}.flashcard-modal__subtitle{font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-1);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.1em}.flashcard-modal__close{border:1px solid var(--color-border);block-size:32px;inline-size:32px;color:var(--color-muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.flashcard-modal__close:hover{background:var(--color-border);color:var(--color-body)}.flashcard-modal__progress-track{background:var(--color-border);height:3px;margin-inline:var(--space-6);border-radius:99px;overflow:hidden}.flashcard-modal__progress-fill{background:var(--color-brand);border-radius:99px;height:100%;transition:width .35s cubic-bezier(.16,1,.3,1)}.flashcard-modal__body{gap:var(--space-6);padding:var(--space-6);flex-direction:column;display:flex}.flashcard-modal__card{background:var(--color-bg);border:1px solid var(--color-border);padding:var(--space-8) var(--space-6);align-items:center;gap:var(--space-6);text-align:center;border-radius:14px;flex-direction:column;min-block-size:200px;transition:border-color .2s;display:flex}.flashcard-modal__card--revealed{border-color:color-mix(in srgb, var(--color-brand) 35%, var(--color-border))}.flashcard-modal__question{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--color-heading);max-width:44ch;line-height:1.5}.flashcard-modal__reveal-button{padding:var(--space-3) var(--space-8);border:1px dashed var(--color-border);font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-muted);cursor:pointer;letter-spacing:.04em;background:0 0;border-radius:99px;transition:border-color .15s,color .15s,background .15s}.flashcard-modal__reveal-button:hover{border-color:var(--color-brand);color:var(--color-brand);background:color-mix(in srgb, var(--color-brand) 6%, transparent)}.flashcard-modal__answer{align-items:center;gap:var(--space-3);animation:.2s flashcard-answer-enter;display:flex}@keyframes flashcard-answer-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.flashcard-modal__answer-badge{background:var(--color-brand);color:#fff;block-size:28px;inline-size:28px;font-size:var(--text-xs);font-weight:var(--fw-black);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.flashcard-modal__answer-text{font-size:var(--text-base);font-weight:var(--fw-bold);color:var(--color-accent)}.flashcard-modal__actions{gap:var(--space-4);display:flex}.flashcard-modal__action{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-4);font-size:var(--text-sm);font-weight:var(--fw-bold);cursor:pointer;border:none;border-radius:12px;flex:1;transition:background .15s,transform .1s;display:flex}.flashcard-modal__action:active{transform:scale(.97)}.flashcard-modal__action--again{background:var(--color-border);color:var(--color-body)}.flashcard-modal__action--again:hover{background:color-mix(in srgb, var(--color-border) 140%, transparent)}.flashcard-modal__action--gotit{background:var(--color-brand);color:#fff}.flashcard-modal__action--gotit:hover{background:color-mix(in srgb, var(--color-brand) 85%, #000)}.flashcard-modal__body--complete{padding-block:var(--space-8);align-items:center}.flashcard-modal__score{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.flashcard-modal__score-pct{font-size:3.5rem;font-weight:var(--fw-black);color:var(--color-heading);letter-spacing:-.03em;line-height:1}.flashcard-modal__score-label{font-size:var(--text-sm);color:var(--color-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:var(--fw-bold)}.flashcard-modal__score-breakdown{gap:var(--space-6);display:flex}.flashcard-modal__score-stat{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.flashcard-modal__score-stat-value{font-size:var(--text-xl);font-weight:var(--fw-black)}.flashcard-modal__score-stat--gotit .flashcard-modal__score-stat-value{color:var(--color-accent)}.flashcard-modal__score-stat--again .flashcard-modal__score-stat-value{color:var(--color-muted)}.flashcard-modal__score-stat-label{font-size:var(--text-xs);color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-bold)}.flashcard-modal__complete-actions{gap:var(--space-4);width:100%;max-width:360px;display:flex}.app-menu{z-index:300;position:fixed;inset-block-start:var(--space-4);inset-inline-end:var(--space-4)}.app-menu__trigger{block-size:32px;inline-size:32px;color:var(--color-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex}.app-menu__trigger:hover{background:var(--color-surface);border-color:var(--color-border);color:var(--color-body)}.app-menu__backdrop{z-index:299;position:fixed;inset:0}.app-menu__dropdown{z-index:301;background:var(--color-surface);border:1px solid var(--color-border);min-inline-size:168px;box-shadow:var(--shadow-dropdown);border-radius:10px;animation:.12s app-menu-enter;position:absolute;inset-block-start:calc(100% + var(--space-2));inset-inline-end:0;overflow:hidden}@keyframes app-menu-enter{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.app-menu__divider{background:var(--color-border);height:1px;margin-block:var(--space-1)}.app-menu__item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-sm);color:var(--color-body);cursor:pointer;background:0 0;border:none;transition:background .12s;display:flex}.app-menu__item:hover{background:var(--color-border)}.app-menu__item--destructive{color:#e05252}.app-menu__item--destructive:hover{background:#dc26261f}.app-menu__confirm{padding:var(--space-3) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.app-menu__confirm-label{font-size:var(--text-sm);color:var(--color-body);font-weight:var(--fw-medium)}.app-menu__confirm-actions{gap:var(--space-2);display:flex}.app-menu__confirm-yes{padding:var(--space-2) var(--space-3);color:#fff;font-size:var(--text-xs);font-weight:var(--fw-bold);cursor:pointer;background:#dc2626;border:none;border-radius:6px;flex:1;transition:background .12s}.app-menu__confirm-yes:hover{background:#b91c1c}.app-menu__confirm-cancel{padding:var(--space-2) var(--space-3);background:var(--color-border);color:var(--color-body);font-size:var(--text-xs);cursor:pointer;border:none;border-radius:6px;flex:1;transition:background .12s}.app-menu__confirm-cancel:hover{background:var(--color-muted);color:var(--color-heading)}.page{min-block-size:100svh}.page__main{padding-block:var(--space-8);flex:1;justify-content:center;padding-block-end:calc(var(--bar-h) + var(--space-8))}.page__review-button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-6);background:var(--color-brand);color:#fff;font-size:var(--text-sm);font-weight:var(--fw-bold);cursor:pointer;border:none;border-radius:99px;transition:background .15s,transform .1s;display:inline-flex}.page__review-button:hover{background:color-mix(in srgb, var(--color-brand) 85%, #000)}.page__review-button:active{transform:scale(.97)}.page__clear-button{color:var(--color-muted);font-size:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline;transition:color .15s}.page__clear-button:hover{color:var(--color-body)}.page__first-use-hint{z-index:150;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);white-space:nowrap;font-size:var(--text-sm);color:var(--color-body);opacity:0;border-radius:10px;animation:.4s cubic-bezier(.16,1,.3,1) 2s forwards hint-enter;display:flex;position:fixed;inset-block-end:calc(var(--bar-h) + var(--space-3));inset-inline-start:50%;transform:translate(-50%)translateY(10px)}@keyframes hint-enter{to{opacity:1;transform:translate(-50%)translateY(0)}}.page__first-use-hint-icon{color:var(--color-brand);flex-shrink:0}.page__first-use-hint-dismiss{background:var(--color-brand);padding:var(--space-1) var(--space-3);color:#fff;font-size:var(--text-xs);font-weight:var(--fw-bold);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;transition:background .15s}.page__first-use-hint-dismiss:hover{background:#1d4ed8}
