*,:before,:after{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}button{font-family:inherit}:root{--brand:#ea580c;--brand-hover:#c2410c;--brand-light:#ea580c14;--brand-border:#ea580c33;--color-ink:#23201a;--color-paper:#f5f1e8;--color-white:#fbf9f3;--color-graphite:#23201a;--color-slate:#6f6a5f;--color-stone:#a39d90;--color-silver:#e2dccd;--error-rust:#b8492f;--background:var(--color-paper);--foreground:var(--color-graphite);--card:var(--color-white);--muted:#efe9db;--muted-foreground:var(--color-slate);--border:var(--color-silver);--input:#d8d1bf;--success:#16a34a;--error:#dc2626;--primary:var(--brand);--primary-foreground:#fff;--secondary:var(--muted);--secondary-foreground:var(--color-graphite);--accent:var(--muted);--accent-foreground:var(--color-graphite);--font-heading:"Newsreader", ui-serif, Georgia, serif;--font-body:"Newsreader", ui-serif, Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--radius-card:12px;--radius-btn:10px;--radius-input:10px;--radius:var(--radius-card);--shadow-card:0 1px 2px #23201a0a, 0 4px 12px #23201a0d;--shadow-card-hover:0 2px 4px #23201a0f, 0 8px 20px #23201a14;--shadow-sm:0 1px 3px #23201a0d}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(60% 40% at 50% -10%,#ea580c09,#0000);height:420px;position:fixed;top:0;left:0;right:0}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:.01em;color:var(--color-graphite);font-weight:500;line-height:1.2}.paper-texture{isolation:isolate;position:relative}.paper-texture:before{content:"";border-radius:inherit;pointer-events:none;opacity:.045;mix-blend-mode:multiply;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:silver}.container{max-width:560px;margin:0 auto;padding:3rem 1.5rem}.container--home{max-width:1120px}@media (max-width:480px){.container{padding:2rem 1rem}}.compose-layout{grid-template-columns:minmax(320px,420px) 1fr;align-items:start;gap:2.5rem;margin-bottom:1.25rem;display:grid}.compose-layout .main-card,.compose-layout .results-card{margin-bottom:0}.plan-panel-empty{text-align:center;background:var(--card);border-radius:var(--radius-card);min-height:320px;box-shadow:var(--shadow-card);color:var(--muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2.5rem;display:flex}.plan-panel-empty-icon{font-size:1.75rem}.plan-panel-empty p{max-width:26rem;font-size:.95rem;line-height:1.6}@media (max-width:900px){.compose-layout{grid-template-columns:1fr}}.header{text-align:center;margin-bottom:2rem}.logo{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.625rem;display:inline-flex}.logo-mark{width:1.875rem;height:1.875rem}.logo-text{letter-spacing:-.015em;font-size:1.8125rem}.tagline{color:var(--muted-foreground);max-width:300px;margin:0 auto;font-size:.9375rem}.study-subject-rotator{min-height:2.875rem;color:var(--color-graphite);font-family:var(--font-heading);justify-content:center;align-items:center;gap:.5rem;margin:-.75rem auto 1.5rem;font-size:1.25rem;display:flex}.study-subject-rotator-question{font-style:italic}.study-subject-rotator-token{border-bottom:2px solid var(--brand);min-width:7.25ch;color:var(--brand-hover);font-family:var(--font-mono);letter-spacing:.01em;background:#ea580c0f;padding:.35rem .65rem .4rem;font-size:.76em;font-weight:600;line-height:1;overflow:hidden}.study-subject-rotator-word{padding-bottom:.08em;overflow:hidden}@media (max-width:480px){.study-subject-rotator{gap:.35rem;margin-bottom:1.25rem;font-size:1.06rem}.study-subject-rotator-token{min-width:6.75ch;padding-inline:.5rem}}.word-mind{font-family:var(--font-heading);color:var(--color-graphite);font-weight:700}.word-mappr{font-family:var(--font-mono);color:var(--brand-hover);font-weight:600}.btn{height:2.5rem;font-family:var(--font-heading);text-transform:lowercase;letter-spacing:.01em;border-radius:var(--radius-btn);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:0 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;width:100%;height:2.75rem;margin-top:.375rem;font-weight:600;box-shadow:0 1px 2px #0000001a}.btn-primary:hover:not(:disabled){background:var(--brand-hover);transform:translateY(-1px);box-shadow:0 4px 12px #ea580c47}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-ghost{color:var(--muted-foreground);border:1px solid var(--border);background:0 0;height:2.25rem;padding:0 .875rem;font-size:.8rem}.btn-ghost:hover{background:var(--muted);color:var(--foreground);border-color:silver}.btn-loading{align-items:center;gap:.5rem;display:flex}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.main-card,.results-card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:1.25rem;padding:1.75rem}.main-card{box-shadow:var(--shadow-card), 0 0 0 1px #ea580c14}.card-title{margin-bottom:.375rem;font-size:1.2rem;font-weight:600}.card-description{color:var(--muted-foreground);margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.form{flex-direction:column;gap:1.125rem;display:flex}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:480px){.form-row{grid-template-columns:1fr}}label{color:var(--foreground);font-size:.8125rem;font-weight:500}input,select{border-radius:var(--radius-input);border:1px solid var(--input);background:var(--background);height:2.625rem;color:var(--foreground);width:100%;font-size:.875rem;font-family:var(--font-body);outline:none;padding:0 .875rem;transition:all .15s}input:hover,select:hover{border-color:silver}input:focus,select:focus{border-color:var(--input);box-shadow:none}input:focus-visible,select:focus-visible{outline:none}input::placeholder{color:var(--color-stone)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;padding-right:2.25rem}.select{position:relative}.select-trigger{width:100%;height:2.625rem;font-family:var(--font-body);text-align:left;border-radius:var(--radius-input);border:1px solid var(--input);background:var(--background);color:var(--foreground);cursor:pointer;outline:none;justify-content:space-between;align-items:center;gap:.5rem;padding:0 .875rem;font-size:.875rem;transition:all .15s;display:flex}.select-trigger:disabled{color:var(--foreground);opacity:1}.select-trigger:hover:not(:disabled){border-color:silver}.select-trigger[aria-expanded=true]{border-color:var(--input);box-shadow:none}.select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-value--placeholder{color:var(--color-stone)}.select-chevron{color:var(--color-stone);flex-shrink:0;transition:transform .18s,color .15s}.select-trigger:hover .select-chevron{color:var(--color-slate)}.select-trigger[aria-expanded=true] .select-chevron{color:var(--color-graphite);transform:rotate(180deg)}.select-menu{z-index:30;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);max-height:15rem;box-shadow:var(--shadow-card-hover);transform-origin:top;padding:.25rem;list-style:none;animation:.14s cubic-bezier(.16,1,.3,1) selectMenuIn;position:absolute;top:calc(100% + .375rem);left:0;right:0;overflow-y:auto}@keyframes selectMenuIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.select-option{color:var(--foreground);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .625rem;font-size:.875rem;display:flex}.select-option--active{background:var(--muted)}.select-option--selected{color:var(--brand);font-weight:500}.select-option--selected.select-option--active{background:var(--brand-light)}.select-check{color:var(--brand);font-size:.75rem}@media (prefers-reduced-motion:reduce){.select-menu{animation:none}.select-chevron{transition:color .15s}}.input-with-suffix{align-items:center;display:flex;position:relative}.input-with-suffix input{padding-right:4.5rem}.suffix{color:var(--color-stone);pointer-events:none;font-size:.8rem;position:absolute;right:.875rem}.form-hint{color:var(--muted-foreground);font-size:.75rem}.pdf-upload-group{gap:.5rem}.pdf-upload-input{cursor:pointer;height:auto;padding:.55rem .75rem;line-height:1.2}.pdf-upload-input::file-selector-button{background:var(--muted);color:var(--foreground);font-family:var(--font-body);cursor:pointer;border:0;border-radius:5px;margin-right:.75rem;padding:.3rem .55rem}.pdf-upload-input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px #ea580c24}.pdf-upload-guest{margin:-.375rem 0 0}.optional-badge{color:var(--muted-foreground);background:var(--muted);border-radius:4px;margin-left:.375rem;padding:.1rem .4rem;font-size:.7rem;font-weight:400}.form-error{color:var(--error);border-radius:var(--radius-input);background:#dc26260d;border:1px solid #dc26261f;padding:.75rem 1rem;font-size:.8125rem}.field-error{color:var(--error);margin-top:.25rem;font-size:.8rem}.results-card{animation:.3s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.results-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.results-title{align-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;display:flex}.results-title:before{content:"✨"}.results-meta{flex-wrap:wrap;gap:.375rem;margin-bottom:1.125rem;display:flex}.results-meta span{color:var(--muted-foreground);background:var(--muted);border-radius:9999px;padding:.2rem .625rem;font-size:.75rem}.result-summary{font-family:var(--font-heading);background:var(--brand-light);color:var(--foreground);border-radius:var(--radius-input);margin-bottom:1.125rem;padding:1.125rem 1.25rem;font-size:.95rem;font-style:italic;line-height:1.7}.result-techniques-used{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted-foreground);margin-top:.625rem;margin-bottom:0;font-size:.7rem;font-style:normal}.modal-body+.result-techniques-used{margin-top:-.5rem;margin-bottom:1.125rem}.techniques-grid{flex-direction:column;gap:.625rem;margin-bottom:1.125rem;display:flex}.technique-card{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-input);padding:.875rem 1rem}.technique-header{justify-content:space-between;align-items:center;margin-bottom:.375rem;display:flex}.technique-title{font-size:.875rem;font-weight:600}.technique-duration{font-family:var(--font-mono);color:var(--brand);text-transform:uppercase;letter-spacing:.03em;background:var(--brand-light);border-radius:9999px;padding:.2rem .55rem;font-size:.7rem;font-weight:500}.technique-description{color:var(--muted-foreground);font-size:.8125rem;line-height:1.6}.tips-callout{border-radius:var(--radius-input);background:#16a34a0a;border:1px solid #16a34a1f;padding:.875rem 1rem}.tips-label{font-family:var(--font-mono);color:var(--success);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem;font-size:.7rem;font-weight:600}.tips-list{flex-direction:column;gap:.3rem;padding:0;list-style:none;display:flex}.tips-list li{color:var(--muted-foreground);padding-left:1.25rem;font-size:.8125rem;line-height:1.5;position:relative}.tips-list li:before{content:"";background:var(--success);border-radius:50%;width:5px;height:5px;position:absolute;top:.55em;left:0}.results-loaded{animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.learning-map-link{text-transform:none;letter-spacing:.02em;width:auto;margin-top:1.125rem}.password-hints{flex-direction:column;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.password-hints li{color:var(--muted-foreground);padding-left:1.25rem;font-size:.8rem;transition:color .2s;position:relative}.password-hints li:before{content:"○";position:absolute;left:0}.password-hints li.hint-met{color:var(--success)}.password-hints li.hint-met:before{content:"✓"}.auth-link{text-align:center;color:var(--muted-foreground);margin-top:1.25rem;font-size:.875rem}.auth-link a{color:var(--brand);font-weight:500}.auth-link a:hover{opacity:.8}.form-success{color:var(--success);border-radius:var(--radius-input);background:#16a34a0d;border:1px solid #16a34a26;margin-bottom:.5rem;padding:.75rem 1rem;font-size:.8125rem}.skeleton-container{flex-direction:column;gap:1rem;display:flex}.skeleton-block{background:linear-gradient(90deg, var(--muted) 25%, #e8e8e8 50%, var(--muted) 75%);border-radius:var(--radius-input);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-summary{height:4.5rem}.skeleton-technique{height:5.5rem}.skeleton-tips{height:4rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.user-menu{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-card);z-index:50;border-radius:9999px;align-items:center;gap:.5rem;padding:.3rem .3rem .3rem .75rem;display:flex;position:fixed;top:1rem;right:1.25rem}.user-avatar{background:var(--color-ink);color:#fff;text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.625rem;height:1.625rem;font-size:.65rem;font-weight:600;display:flex}.user-email{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.75rem;font-weight:500;overflow:hidden}.btn-signout{text-transform:lowercase;letter-spacing:.04em;background:var(--muted);height:1.625rem;color:var(--muted-foreground);cursor:pointer;white-space:nowrap;font-size:.65rem;font-weight:500;font-family:var(--font-mono);border:none;border-radius:9999px;padding:0 .75rem;transition:all .15s}.btn-signout:hover{background:var(--border);color:var(--foreground)}.auth-buttons{z-index:50;align-items:center;gap:.5rem;display:flex;position:fixed;top:1rem;right:1.25rem}.auth-buttons .btn{width:auto;height:2.125rem;margin-top:0;padding:0 .875rem;font-size:.8rem}.signup-cta{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1.25rem 1.5rem;display:flex}.signup-cta-text{flex-direction:column;gap:.2rem;display:flex}.signup-cta-text strong{color:var(--color-graphite);font-size:.9375rem}.signup-cta-text span{color:var(--muted-foreground);font-size:.8125rem}.signup-cta-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.signup-cta-actions .btn{width:auto;margin-top:0}@media (max-width:600px){.signup-cta{flex-direction:column;align-items:flex-start}}.dash-page{background:var(--background);min-height:100vh}.dash-topbar{background:var(--card);border-bottom:1px solid var(--border);z-index:40;justify-content:space-between;align-items:center;height:58px;padding:0 1.75rem;display:flex;position:sticky;top:0}.dash-topbar-logo{align-items:center;gap:.4375rem;display:flex}.dash-topbar-mark{width:1.1875rem;height:1.1875rem}.dash-topbar-name{letter-spacing:-.01em;font-size:1.0625rem}.dash-topbar-nav{align-items:center;gap:.5rem;display:flex}.dash-body{max-width:880px;margin:0 auto;padding:2rem 1.5rem 5rem}.dash-heading{color:var(--color-graphite);letter-spacing:.01em;margin-bottom:1.5rem;font-size:2rem;font-weight:600;line-height:1.1}.stats-bar{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--card);border-radius:var(--radius-card);text-align:center;box-shadow:var(--shadow-card);padding:1.25rem;transition:box-shadow .15s}.stat-card:hover{box-shadow:var(--shadow-card-hover)}.stat-value{font-family:var(--font-heading);color:var(--color-graphite);margin-bottom:.25rem;font-size:2rem;font-weight:500;line-height:1}.stat-label{font-family:var(--font-mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem;font-weight:500}.stat-card--due .stat-value{color:var(--brand)}@media (max-width:480px){.stats-bar{grid-template-columns:1fr 1fr}.stats-bar .stat-card:last-child{grid-column:span 2}}.dash-section{margin-bottom:2rem}.dash-section-header{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.dash-section-title{font-family:var(--font-mono);color:var(--color-slate);text-transform:uppercase;letter-spacing:.07em;font-size:.75rem;font-weight:600}.dash-section-count{font-family:var(--font-mono);background:var(--muted);color:var(--muted-foreground);border-radius:9999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.dash-section-count--due{background:var(--brand-light);color:var(--brand)}.dash-empty{color:var(--muted-foreground);text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;display:flex}.dash-empty .btn{width:auto;margin-top:0}.session-list{flex-direction:column;gap:.5rem;display:flex}.session-card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid #0000;justify-content:space-between;align-items:center;padding:1rem 1.25rem;transition:box-shadow .15s;display:flex}.session-card:hover{box-shadow:var(--shadow-card-hover)}.session-card--due{border-color:var(--brand-border)}.session-card--overdue{border-color:#b8492f59}.session-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.session-subject{color:var(--color-graphite);font-size:.9rem;font-weight:600}.session-meta,.session-due{font-family:var(--font-mono);color:var(--muted-foreground);font-size:.7rem}.due-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;width:fit-content;padding:.2rem .55rem;font-size:.7rem;font-weight:500;display:inline-flex}.due-badge--overdue{color:var(--error-rust);background:#b8492f1a}.due-badge--today{color:var(--brand);background:var(--brand-light)}.session-card .btn{flex-shrink:0;width:auto;height:2rem;margin-top:0;margin-left:1rem;padding:0 .875rem;font-size:.8rem}.stability-bar-wrap{align-items:center;gap:.5rem;margin-top:.35rem;display:flex}.stability-bar-track{background:var(--muted);border-radius:9999px;flex:1;height:3px;overflow:hidden}.stability-bar-fill{background:linear-gradient(90deg, var(--brand), var(--success));border-radius:9999px;height:100%;transition:width .4s}.stability-label{font-family:var(--font-mono);color:var(--color-stone);text-align:right;min-width:3.5rem;font-size:.6875rem}.review-confirmed{color:var(--success);background:#16a34a0f;border:1px solid #16a34a26;border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;animation:.25s fadeIn;display:inline-flex}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#00000059;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--card);width:100%;max-width:500px;max-height:90vh;box-shadow:0 24px 64px #0000001f, 0 0 0 1px var(--border);border-radius:16px;padding:2rem;animation:.2s modalIn;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{font-family:var(--font-heading);color:var(--color-graphite);margin-bottom:.625rem;font-size:1.125rem;font-weight:500}.modal-body{color:var(--muted-foreground);margin-bottom:1rem;font-size:.875rem;line-height:1.65}.review-techniques{flex-direction:column;gap:.5rem;margin-bottom:1.125rem;display:flex}.technique-mini{color:var(--color-graphite);background:var(--muted);border-radius:8px;padding:.625rem .75rem;font-size:.8125rem}.technique-mini-desc{color:var(--muted-foreground);margin:.2rem 0 0;font-size:.775rem}.modal-prompt{color:var(--color-graphite);margin-bottom:.625rem;font-size:.875rem;font-weight:600}.review-buttons{flex-wrap:wrap;gap:.5rem;margin-bottom:.875rem;display:flex}.review-btn{min-width:72px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;padding:.625rem .75rem;font-size:.8rem;font-weight:600;transition:all .12s;display:flex}.review-btn:disabled{opacity:.45;cursor:not-allowed}.review-btn:hover:not(:disabled){filter:brightness(.96);transform:translateY(-2px)}.review-btn-tall{height:auto;line-height:1.2}.review-btn-rating-1{color:var(--error-rust);background:#b8492f14;border:1px solid #b8492f40}.review-btn-rating-2{color:#c98a3a;background:#c98a3a17;border:1px solid #c98a3a47}.review-btn-rating-3{background:var(--brand-light);color:var(--brand);border:1.5px solid var(--brand)}.review-btn-rating-4{color:#5c8a5c;background:#7fae7f1f;border:1px solid #7fae7f59}.review-btn-sublabel{opacity:.65;margin-top:.15rem;font-size:.65rem;font-weight:400;display:block}.modal-cancel{width:100%;margin-top:0}.review-panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card);margin-bottom:1.25rem;padding:1.25rem 1.375rem}.review-panel-header{justify-content:space-between;align-items:center;margin-bottom:.875rem;display:flex}.review-panel-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-stone);font-size:.65rem}.review-panel-stats{flex-wrap:wrap;align-items:baseline;gap:1.5rem;display:flex}.review-panel-retrievability{font-family:var(--font-heading);color:var(--error-rust);font-size:1.75rem;line-height:1}.review-panel-sub{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-stone);margin-top:.2rem;font-size:.65rem}.review-panel-meta{font-family:var(--font-mono);color:var(--muted-foreground);font-size:.75rem;line-height:1.7}.review-panel-note{font-family:var(--font-body);color:var(--muted-foreground);margin-top:.75rem;font-size:.85rem;font-style:italic}.map-page{background:#e8e1d2;min-height:100vh}.map-workbench{background:#d5cbb8;border-top:1px solid #d5cbb8;grid-template-columns:minmax(205px,.72fr) minmax(420px,2.25fr) minmax(270px,.95fr);gap:1px;min-height:calc(100vh - 65px);display:grid}.map-rail,.map-canvas-stage{min-width:0}.map-rail{background-color:#f2ecdf;background-image:linear-gradient(90deg,#7b603c09 1px,#0000 1px),linear-gradient(#7b603c06 1px,#0000 1px);background-size:28px 28px;padding:clamp(1.5rem,3vw,3rem) clamp(1.25rem,2.2vw,2.4rem)}.map-rail--context{border-right:1px solid #d5cbb8}.map-rail--detail{border-left:1px solid #d5cbb8}.map-eyebrow{color:#8d7253;font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;margin-bottom:.55rem;font-size:.64rem;font-weight:600;line-height:1.2}.map-rail h1,.map-rail h2,.map-canvas-stage h2,.concept-panel h2{color:#24302c;font-weight:600}.map-rail h1{font-size:clamp(1.8rem,2.5vw,2.55rem)}.map-rail-copy{color:#665e52;margin-top:1.05rem;font-size:.96rem;line-height:1.65}.map-facts{border-top:1px solid #d8cdbb;gap:.7rem;margin-top:2.15rem;padding-top:1rem;display:grid}.map-facts div{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.map-facts dt{color:#8d7253;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.64rem}.map-facts dd{color:#33403a;font-size:.89rem;font-weight:600}.exam-readiness{border-top:1px solid #d8cdbb;margin-top:1.8rem;padding-top:1rem}.exam-readiness-heading{justify-content:space-between;align-items:end;gap:.65rem;display:flex}.exam-readiness-heading .map-eyebrow{margin-bottom:.35rem}.exam-readiness h2{font-size:1.2rem}.exam-readiness-heading>span{color:#9b6338;font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;font-size:.66rem;font-weight:600}.exam-readiness>p{color:#665e52;margin-top:.55rem;font-size:.77rem;line-height:1.48}.exam-readiness-steps{gap:.32rem;margin-top:.9rem;padding:0;list-style:none;display:grid}.exam-readiness-step{color:#33403a;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:1.6rem minmax(0,1fr);align-items:center;gap:.55rem;width:100%;padding:.45rem .42rem;display:grid}.exam-readiness-step:hover,.exam-readiness-step--selected{background:#fff9ee;border-color:#d6b087}.exam-readiness-step:focus-visible{outline-offset:2px;outline:2px solid #e87832}.exam-readiness-step-number{color:#9b6338;width:1.45rem;height:1.45rem;font-family:var(--font-mono);border:1px solid #c69466;border-radius:50%;place-items:center;font-size:.66rem;font-weight:700;display:grid}.exam-readiness-step--selected .exam-readiness-step-number{color:#fffdf8;background:#e87832;border-color:#e87832}.exam-readiness-step>span:last-child{justify-content:space-between;align-items:baseline;gap:.5rem;min-width:0;display:flex}.exam-readiness-step strong{text-overflow:ellipsis;white-space:nowrap;font-size:.77rem;font-weight:600;overflow:hidden}.exam-readiness-step small{color:#9b6338;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;flex:none;font-size:.59rem}.map-legend{color:#776c5c;margin-top:2rem;font-size:.78rem;line-height:1.5}.map-legend span{border-top:2px solid #e87832;width:1.7rem;margin-right:.4rem;display:inline-block;transform:translateY(-.2rem)}.map-canvas-stage{background:#fffdf8;flex-direction:column;padding:clamp(1.2rem,2.2vw,2.1rem);display:flex;box-shadow:inset 0 0 46px #775b3209}.map-stage-heading{justify-content:space-between;align-items:end;gap:1rem;padding:0 .2rem 1.15rem;display:flex}.map-stage-heading h2{font-size:clamp(1.4rem,2.15vw,2rem)}.map-stage-heading>p{color:#8d7253;font-family:var(--font-mono);letter-spacing:.04em;font-size:.67rem}.learning-map-canvas{background:#fefbf3;border:1px solid #dfd5c5;flex:1;min-height:540px;position:relative;overflow:hidden;box-shadow:0 11px 28px #4a382114,inset 0 0 0 5px #f0e9dc85}.learning-map-canvas .react-flow__controls{border:1px solid #d6cab7;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #4731171a}.learning-map-canvas .react-flow__controls-button{color:#554a3c;background:#fffdf8;border-bottom-color:#e1d6c5;width:26px;height:26px}.learning-map-canvas .react-flow__controls-button:hover{background:#f4ecde}.learning-map-canvas .react-flow__node{box-shadow:none;background:0 0;border:0;border-radius:0}.learning-map-canvas .react-flow__node:focus-visible .learning-map-node-card,.learning-map-canvas .react-flow__node.selected .learning-map-node-card{outline-offset:3px;outline:2px solid #e87832;box-shadow:0 8px 18px #7e491b2b}.learning-map-node-card{color:#27342e;background:#fffef9;border:1px solid #d4cbbd;border-radius:5px;gap:.48rem;min-height:82px;padding:.8rem .9rem;display:grid;position:relative;box-shadow:0 2px #6c52300f}.learning-map-node-card:before{content:"";background:#7e957b1f;border-radius:0 4px 0 18px;width:28px;height:28px;position:absolute;top:-1px;right:-1px}.learning-map-node-card strong{font-family:var(--font-heading);font-size:1rem;font-weight:600;line-height:1.1;position:relative}.learning-map-node-card span{color:#807563;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.59rem;font-weight:600;position:relative}.learning-map-canvas .react-flow__handle{background:#e87832;border:1px solid #fffdf8;width:7px;height:7px}.learning-map-node--new .learning-map-node-card{background:#fffdf8}.learning-map-node--needs-work .learning-map-node-card{background:#fff8ef;border-color:#e9c79c}.learning-map-node--needs-work .learning-map-node-card:before{background:#e8783238}.learning-map-node--growing .learning-map-node-card{background:#fbfdf8;border-color:#c8d6c4}.learning-map-node--growing .learning-map-node-card:before{background:#6e8f6b2e}.learning-map-node--steady .learning-map-node-card{background:#f4faf3;border-color:#a8c7a3}.learning-map-node--steady .learning-map-node-card:before{background:#4c7e4d3d}.concept-panel h2{font-size:clamp(1.6rem,2vw,2.1rem)}.concept-explanation{color:#5f584d;margin-top:.75rem;font-size:.98rem;line-height:1.65}.concept-memory-note{border-top:1px solid #d8cdbb;border-bottom:1px solid #d8cdbb;gap:.18rem;margin:1.2rem 0 1.45rem;padding:.8rem 0;display:grid}.concept-memory-note span{color:#8d7253;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.6rem}.concept-memory-note strong{color:#38443d;font-size:.83rem}.concept-empty{color:#706656;font-style:italic}.recall-check h3{color:#344039;font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem}.recall-prompt{color:#5f584d;margin:.65rem 0 1rem;font-size:.89rem;line-height:1.55}.recall-check label{color:#554a3c;font-family:var(--font-mono);letter-spacing:.04em;margin-bottom:.4rem;font-size:.66rem;display:block}.recall-check textarea{resize:vertical;color:#333d37;width:100%;min-height:102px;font:inherit;background:#fffdf8cc;border:1px solid #cfc3b1;border-radius:5px;padding:.72rem;font-size:.9rem;line-height:1.5}.recall-check textarea:focus{outline-offset:1px;border-color:#e87832;outline:2px solid #e8783270}.map-action{color:#fffdf8;cursor:pointer;width:100%;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:#e87832;border:1px solid #d96625;border-radius:5px;margin-top:.75rem;padding:.72rem .9rem;font-size:.68rem;font-weight:600}.map-action:hover:not(:disabled){background:#d96625}.map-action:disabled{cursor:not-allowed;opacity:.62}.recall-error{color:#a63f2d;margin-top:.7rem;font-size:.78rem;line-height:1.4}.recall-feedback{background:#fbf6ed;border:1px solid #ded0ba;border-radius:5px;margin-top:1rem;padding:.9rem}.recall-feedback>p:first-child{color:#4d473d;font-size:.84rem;line-height:1.5}.suggested-rating{color:#655849;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;margin-top:.75rem;font-size:.66rem}.suggested-rating strong{color:#c75f25}.rating-instruction{color:#766b5c;margin-top:.35rem;font-size:.75rem;line-height:1.35}.recall-ratings{grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.75rem;display:grid}.recall-rating{color:#514638;cursor:pointer;min-height:2.2rem;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;background:#fffdf8;border:1px solid #d5c8b6;border-radius:4px;font-size:.65rem;font-weight:600}.recall-rating:hover:not(:disabled){color:#c75f25;background:#fff7ec;border-color:#e87832}.recall-rating:disabled{cursor:not-allowed;opacity:.55}.recall-confirmed{color:#36513c;background:#f2f8ef;border:1px solid #bbd0b7;border-radius:5px;align-items:flex-start;gap:.65rem;margin-top:1rem;padding:.85rem;display:flex}.recall-confirmed>span{color:#fff;width:1.25rem;height:1.25rem;font-family:var(--font-mono);background:#6a9768;border-radius:50%;place-items:center;font-size:.72rem;display:grid}.recall-confirmed strong{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem}.recall-confirmed p{margin-top:.15rem;font-size:.79rem}.map-status{color:#665e52;grid-column:1/-1;margin:3rem auto;font-style:italic}.map-status--error{color:#a63f2d}@media (max-width:980px){.map-workbench{grid-template-columns:minmax(190px,.72fr) minmax(420px,2fr)}.map-rail--detail{border-top:1px solid #d5cbb8;border-left:0;grid-column:1/-1}.concept-panel{max-width:670px}}@media (max-width:680px){.map-workbench{flex-direction:column;min-height:0;display:flex}.map-rail{padding:1.45rem 1.15rem}.map-rail--context{border-bottom:1px solid #d5cbb8;border-right:0}.map-canvas-stage{padding:1.1rem .9rem}.map-stage-heading{align-items:start}.map-stage-heading>p{display:none}.learning-map-canvas{min-height:450px}.map-facts{grid-template-columns:repeat(3,1fr);gap:.55rem}.map-facts div{display:block}.map-facts dd{margin-top:.12rem}.map-legend{margin-top:1.3rem}}@media (prefers-reduced-motion:reduce){.map-page *,.map-page :before,.map-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.recap-details{border:1px solid var(--border);background:var(--card);border-radius:10px;margin-bottom:1.25rem;overflow:hidden}.recap-summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);padding:.625rem .875rem;font-size:.65rem}.recap-body{flex-direction:column;gap:.5rem;padding:0 .875rem .875rem;display:flex}.confirm-card{text-align:center;padding:2.5rem 1.5rem}.confirm-check{color:#5c8a5c;background:#7fae7f26;border:1.5px solid #7fae7f;border-radius:50%;justify-content:center;align-items:center;width:3rem;height:3rem;margin:0 auto 1rem;font-size:1.25rem;display:flex}.confirm-grid{text-align:left;grid-template-columns:1fr 1fr;gap:.875rem;margin-top:1.25rem;display:grid}.confirm-grid-item{border:1px solid var(--border);border-radius:10px;padding:.875rem}.confirm-grid-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-stone);margin-bottom:.375rem;font-size:.6rem}.confirm-grid-value{font-family:var(--font-heading);color:var(--color-graphite);font-size:1.125rem}.confirm-grid-value .arrow{color:#7fae7f;font-size:.85rem}.demo-section{margin-top:2.5rem}.demo-divider{align-items:center;gap:.875rem;margin-bottom:1rem;display:flex}.demo-divider:before,.demo-divider:after{content:"";background:var(--border);flex:1;height:1px}.demo-divider span{font-family:var(--font-mono);color:var(--color-stone);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;font-size:.7rem;font-weight:600}.demo-card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.demo-topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.875rem 1.125rem;display:flex}.demo-topbar-left{align-items:center;gap:.4375rem;display:flex}.demo-topbar-mark{width:1.0625rem;height:1.0625rem}.demo-topbar-title{letter-spacing:-.01em;font-size:.9rem}.demo-badge{font-family:var(--font-mono);background:var(--brand-light);color:var(--brand);text-transform:uppercase;letter-spacing:.06em;border-radius:9999px;padding:.2rem .5rem;font-size:.65rem;font-weight:700}.demo-stats{grid-template-columns:repeat(3,1fr);display:grid}.demo-stat{text-align:center;border-right:1px solid var(--border);padding:.875rem 1rem}.demo-stat:last-child{border-right:none}.demo-stat-value{font-family:var(--font-heading);color:var(--color-graphite);margin-bottom:.2rem;font-size:1.625rem;font-weight:500;line-height:1}.demo-stat-value--brand{color:var(--brand)}.demo-stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);font-size:.6375rem;font-weight:500}.retention-trend{background:linear-gradient(135deg, #ffbc802e, #fff3e49e), var(--background);border:1px solid #e69e6352;border-radius:10px;margin:.25rem 1.125rem 0;padding:1rem 1rem .875rem;animation:.36s cubic-bezier(.22,1,.36,1) both retentionPanelIn;overflow:hidden}.retention-trend-header{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.retention-eyebrow{font-family:var(--font-mono);letter-spacing:.085em;text-transform:uppercase;color:#bf692f;margin-bottom:.2rem;font-size:.6rem;font-weight:600}.retention-title{letter-spacing:-.015em;transform-origin:0 100%;font-size:1.35rem;font-weight:600;animation:.42s cubic-bezier(.22,1.12,.36,1) .15s both retentionTitleIn}.retention-metric{flex-direction:column;align-items:flex-end;line-height:1;display:flex}.retention-metric-value{font-family:var(--font-heading);color:var(--success);font-size:2rem;font-weight:600;animation:.42s cubic-bezier(.22,1.12,.36,1) .23s both retentionMetricIn}.retention-metric-label{font-family:var(--font-mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.07em;margin-top:.22rem;font-size:.55rem}.retention-description{color:var(--muted-foreground);margin-top:.55rem;font-size:.72rem;line-height:1.45}.retention-chart{margin-top:.75rem}.retention-chart-caption{font-family:var(--font-mono);color:var(--color-stone);letter-spacing:.06em;text-transform:uppercase;font-size:.56rem;font-weight:600}.retention-bars{--retention-label-row:.78rem;--retention-bar-gap:.24rem;background-image:linear-gradient(0deg,#d3894c1c 1px,#0000 1px);background-size:100% 33.333%;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;height:5.25rem;margin-top:.5rem;padding:0 .2rem;display:grid;position:relative}.retention-bars:after{content:"";left:0;right:0;bottom:calc(var(--retention-label-row) + var(--retention-bar-gap));pointer-events:none;background:#d3894c45;height:1px;position:absolute}.retention-bar{grid-template-rows:auto 1fr var(--retention-label-row);gap:var(--retention-bar-gap);min-width:0;height:100%;display:grid}.retention-bar-value{font-family:var(--font-mono);color:var(--color-graphite);text-align:center;font-size:.6rem;font-weight:600;line-height:1}.retention-bar-track{justify-content:center;align-items:flex-end;min-height:0;display:flex}.retention-bar-fill{width:72%;max-width:6.5rem;height:var(--retention-height);transform-origin:bottom;animation:retentionBarRise .5s cubic-bezier(.16, 1, .3, 1) calc(var(--bar-index) * 90ms) both;background:linear-gradient(#ffd4ad,#f7ad73 58%,#e98849);border-radius:4px 4px 1px 1px;box-shadow:inset 0 1px #ffffff6b,0 2px 4px #d3894c24}.retention-bar-label{font-family:var(--font-mono);color:var(--muted-foreground);text-align:center;white-space:nowrap;font-size:.52rem;line-height:1.2}@keyframes retentionTitleIn{0%{opacity:0;transform:translateY(7px)scale(.97)}72%{opacity:1;transform:translateY(-1px)scale(1.012)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes retentionMetricIn{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes retentionPanelIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes retentionBarRise{0%{opacity:.45;height:0}to{height:var(--retention-height);opacity:1}}.retention-disclaimer{font-family:var(--font-mono);color:var(--color-stone);margin-top:.7rem;font-size:.56rem;line-height:1.4}.demo-sessions{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.875rem 1.125rem;display:flex}.demo-session-label{font-family:var(--font-mono);color:var(--color-stone);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.25rem;font-size:.6875rem;font-weight:600}.demo-session{background:var(--background);border:1px solid #0000;border-radius:8px;align-items:center;gap:.875rem;padding:.75rem .875rem;animation:.33s ease-out both demoSessionIn;display:flex}.demo-stat{animation:.32s ease-out both demoStatIn}.demo-stat:first-child{animation-delay:70ms}.demo-stat:nth-child(2){animation-delay:.13s}.demo-stat:nth-child(3){animation-delay:.19s}.demo-session:nth-of-type(2){animation-delay:.76s}.demo-session:nth-of-type(3){animation-delay:.83s}.demo-session:nth-of-type(4){animation-delay:.9s}.demo-session--due{border-color:var(--brand-border);background:#ea580c06}.demo-session-info{flex:1;min-width:0}.demo-session-subject{color:var(--color-graphite);margin-bottom:.15rem;font-size:.8125rem;font-weight:600}.demo-session-meta{font-family:var(--font-mono);color:var(--muted-foreground);margin-bottom:.3rem;font-size:.7rem}.demo-stability{align-items:center;gap:.5rem;display:flex}.demo-stability-track{background:var(--border);border-radius:9999px;flex:1;height:2.5px;overflow:hidden}.demo-stability-fill{background:linear-gradient(90deg, var(--brand), var(--success));transform-origin:0;border-radius:9999px;height:100%;animation:.44s cubic-bezier(.16,1,.3,1) both demoStabilityFillIn}.demo-session:nth-of-type(2) .demo-stability-fill{animation-delay:.92s}.demo-session:nth-of-type(3) .demo-stability-fill{animation-delay:.99s}.demo-session:nth-of-type(4) .demo-stability-fill{animation-delay:1.06s}@keyframes demoStatIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes demoSessionIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes demoStabilityFillIn{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.demo-stability-label{font-family:var(--font-mono);color:var(--color-stone);white-space:nowrap;text-align:right;min-width:2.5rem;font-size:.625rem}.demo-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;border-radius:9999px;flex-shrink:0;padding:.2rem .5rem;font-size:.675rem;font-weight:600}.demo-tag--due{background:var(--brand-light);color:var(--brand)}.demo-tag--over{color:var(--error);background:#dc262614}.demo-tag--soon{background:var(--muted);color:var(--muted-foreground)}.demo-cta{justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.125rem;display:flex}.demo-cta-text{color:var(--muted-foreground);font-size:.8rem;line-height:1.5}.demo-cta-text strong{color:var(--color-graphite)}.demo-cta .btn{flex-shrink:0;width:auto;margin-top:0}@media (max-width:500px){.demo-stats{grid-template-columns:1fr 1fr}.demo-stat:nth-child(2){border-right:none}.demo-stat:nth-child(3){border-top:1px solid var(--border);grid-column:span 2}.retention-trend{margin-left:.75rem;margin-right:.75rem;padding-left:.75rem;padding-right:.75rem}.retention-bars{gap:.2rem;height:4.85rem}.retention-bar-label{font-size:.48rem}.demo-cta{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.retention-trend,.retention-title,.retention-metric-value,.retention-bar-fill,.demo-stat,.demo-session,.demo-stability-fill{opacity:1;transition:none;animation:none;transform:none}.retention-bar-fill{height:var(--retention-height)}}.topnav{background:var(--card);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:1.5rem;height:58px;padding:0 1.75rem;display:flex;position:sticky;top:0}.topnav-logo{flex-shrink:0;align-items:center;gap:.4375rem;text-decoration:none;display:flex}.topnav-mark{width:1.1875rem;height:1.1875rem}.topnav-name{letter-spacing:-.01em;font-size:1.0625rem}.topnav-tabs{align-items:center;gap:1.5rem;display:flex;position:relative}.topnav-mobile-toggle,.topnav-mobile-menu{display:none}.topnav-tab{font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.06em;color:var(--color-stone);align-items:center;gap:.35rem;padding:.35rem 0;font-size:.75rem;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.topnav-tab-icon{object-fit:contain;flex:none;width:1.125rem;height:1.125rem}.topnav-tab:hover,.topnav-tab--active{color:var(--color-graphite)}.topnav-tab--disabled{cursor:not-allowed;opacity:.48}.topnav-indicator{background:var(--brand);pointer-events:none;border-radius:2px;height:2px;transition:transform .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-.55rem;left:0}@media (prefers-reduced-motion:reduce){.topnav-indicator{transition:none}}.topnav-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.topnav-user{background:var(--card);border:1px solid var(--border);border-radius:9999px;align-items:center;gap:.5rem;padding:.25rem .75rem .25rem .3rem;display:flex}.topnav-avatar{color:#2b3933;text-transform:uppercase;background:#eee7d9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.65rem;font-weight:600;display:flex}.topnav-email{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.75rem;font-weight:500;overflow:hidden}.topnav-auth{align-items:center;gap:.5rem;display:flex}.topnav-auth .btn{width:auto;height:2.125rem;margin-top:0;padding:0 .875rem;font-size:.8rem}@media (max-width:640px){.topnav{gap:.75rem;padding:0 1rem}.topnav-tabs{display:none}.topnav-mobile-toggle{border:1px solid var(--border);background:var(--background);color:var(--color-graphite);font-family:var(--font-mono);letter-spacing:.05em;text-transform:lowercase;cursor:pointer;border-radius:9999px;align-items:center;gap:.35rem;padding:.38rem .65rem;font-size:.68rem;display:inline-flex}.topnav-mobile-toggle:hover{border-color:var(--brand-border);color:var(--brand)}.topnav-mobile-toggle:focus-visible,.topnav-mobile-tab:focus-visible,.topnav-mobile-signout:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.topnav-mobile-toggle-icon{font-size:.9rem;line-height:1}.topnav-mobile-menu{background:var(--card);border:1px solid var(--border);width:min(250px,100vw - 2rem);box-shadow:var(--shadow-card);z-index:60;border-radius:10px;flex-direction:column;gap:.15rem;padding:.5rem;display:none;position:absolute;top:calc(100% + .5rem);right:1rem}.topnav-mobile-menu--open{display:flex}.topnav-mobile-tab,.topnav-mobile-signout{width:100%;min-height:2.5rem;color:var(--color-graphite);font-family:var(--font-mono);letter-spacing:.05em;text-align:left;text-transform:lowercase;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.6rem;padding:.55rem .65rem;font-size:.72rem;text-decoration:none;display:flex}.topnav-mobile-tab:hover,.topnav-mobile-signout:hover{background:var(--background);color:var(--brand)}.topnav-mobile-tab--disabled{cursor:not-allowed;opacity:.48}.topnav-mobile-signout{border-top:1px solid var(--border);border-radius:0;margin-top:.35rem}.topnav-right .btn-signout,.topnav-email{display:none}}.library-page{background:var(--background);min-height:100vh}.library-body{max-width:880px;margin:0 auto;padding:2rem 1.5rem 5rem}.library-card{background:0 0;padding:0}.library-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.library-title{font-family:var(--font-heading);color:var(--color-graphite);font-size:2rem;font-weight:600;line-height:1.1}.library-subtitle{font-family:var(--font-heading);color:var(--muted-foreground);margin-top:.25rem;font-size:.95rem;font-style:italic}.library-count{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-stone);white-space:nowrap;flex-shrink:0;padding-top:.5rem;font-size:.75rem}.library-search{border-radius:var(--radius-input);border:1px solid var(--input);background:var(--background);width:100%;height:2.75rem;color:var(--foreground);margin-bottom:1.75rem;padding:0 1rem;font-size:.9rem}.library-search::placeholder{color:var(--color-stone)}.library-group{margin-bottom:1.5rem}.library-group-header{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.72rem;font-weight:600;display:flex}.library-dot{background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.library-group-header--fading{color:var(--error-rust)}.library-group-header--holding{color:var(--brand)}.library-group-header--fresh{color:var(--success)}.library-rows{flex-direction:column;gap:.5rem;display:flex}.library-row{background:var(--card);border-radius:var(--radius-card);border:none;align-items:center;gap:1.25rem;padding:1rem 1.25rem;display:flex}.library-spark{flex-shrink:0;width:64px;height:24px}.library-row--fading .library-spark{stroke:var(--error-rust);fill:var(--error-rust)}.library-row--holding .library-spark{stroke:var(--brand);fill:var(--brand)}.library-row--fresh .library-spark{stroke:var(--success);fill:var(--success)}.library-row-info{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.library-row-subject{font-family:var(--font-heading);color:var(--color-graphite);text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:600;overflow:hidden}.library-row-meta{font-family:var(--font-mono);color:var(--color-stone);font-size:.72rem}.library-recall{text-align:right;flex-shrink:0}.library-recall-pct{font-family:var(--font-heading);font-size:1.5rem;font-weight:600;line-height:1;display:block}.library-recall-cap{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-stone);margin-top:.2rem;font-size:.6rem;display:block}.library-row--fading .library-recall-pct{color:var(--error-rust)}.library-row--holding .library-recall-pct{color:var(--brand)}.library-row--fresh .library-recall-pct{color:var(--success)}.library-empty{text-align:center;color:var(--muted-foreground);flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;display:flex}.library-empty-cta{width:auto;margin-top:0}.library-maps{gap:.75rem;display:grid}.library-map-card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#fffdf8;border:1px solid #ded2bf;align-items:center;gap:1.15rem;padding:1.2rem 1.25rem;display:flex;position:relative;overflow:hidden}.library-map-notebook-mark{background:repeating-linear-gradient(#fffdf8 0 7px,#ebe1d0 8px);border:1px solid #d7c8b1;border-radius:3px;flex:none;width:2.5rem;height:3rem;box-shadow:inset 4px 0 #f2e8d7}.library-map-copy{flex:1;min-width:0}.library-map-level,.library-map-facts dt,.review-eyebrow,.review-parent-topic,.review-concept-count{color:#8d7253;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.63rem;font-weight:600}.library-map-topic{color:#2f3c36;text-overflow:ellipsis;white-space:nowrap;font-size:1.28rem;overflow:hidden}.library-map-facts{gap:1.25rem;margin-top:.65rem;display:flex}.library-map-facts div{align-items:baseline;gap:.35rem;display:flex}.library-map-facts dd{color:#4b554e;font-family:var(--font-heading);font-size:1rem;font-weight:600}.library-map-link{color:#9f5128;width:auto;font-family:var(--font-mono);letter-spacing:.04em;background:#fbf5e9;border:1px solid #d8c9b2;border-radius:5px;flex:none;padding:.63rem .75rem;font-size:.68rem;font-weight:600}.library-map-link:hover{background:#fff0de;border-color:#df7940}.library-map-link:focus-visible{outline-offset:3px;outline:2px solid #e87832}.library-map-actions{flex:none;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}.library-map-remove,.library-map-removal button{color:#9d4d32;width:auto;font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase;background:0 0;border:1px solid #d6ae9c;border-radius:5px;padding:.48rem .62rem;font-size:.64rem;font-weight:600}.library-map-remove:hover{background:#fff1e9;border-color:#b65a39}.library-map-remove:focus-visible,.library-map-removal button:focus-visible{outline-offset:3px;outline:2px solid #e87832}.library-map-removal{color:#8d5540;font-family:var(--font-mono);letter-spacing:.03em;gap:.32rem;font-size:.61rem;display:grid}.library-map-removal>div{gap:.38rem;display:flex}.library-map-removal button:first-child{color:#fffaf2;background:#b65a39;border-color:#b65a39}.library-map-removal button:last-child{color:#746959;border-color:#d8c9b2}.library-map-remove-error{max-width:12rem;color:var(--error-rust);font-size:.72rem}.review-page{background:#eee7d9;min-height:100vh}.review-body{width:min(100% - 2rem,700px);margin:0 auto;padding:3.25rem 0 5rem}.review-heading{border-bottom:1px solid #d7cbb9;padding-bottom:1.35rem}.review-heading h1{color:#2b3933;margin-top:.35rem;font-size:clamp(2rem,5vw,2.8rem);font-weight:600}.review-heading>p:last-child{color:#746959;font-family:var(--font-heading);margin-top:.5rem;font-size:1rem;font-style:italic}.review-concept-card{background:#fffdf8;border:1px solid #d7cbb9;border-radius:7px;margin-top:1.25rem;padding:clamp(1.2rem,4vw,2rem);box-shadow:0 10px 28px #4a382114,inset 0 0 0 5px #f0e9dc73}.review-concept-heading{border-bottom:1px solid #e2d7c7;justify-content:space-between;align-items:start;gap:1rem;padding-bottom:1.1rem;display:flex}.review-concept-heading h2{color:#2f3c36;margin-top:.35rem;font-size:clamp(1.45rem,4vw,1.9rem);font-weight:600}.review-concept-count{text-align:right;white-space:nowrap;padding-top:.35rem}.review-concept-card .recall-check{margin-top:1.25rem}.review-recorded{color:#36513c;background:#f2f8ef;border:1px solid #bbd0b7;border-radius:5px;margin-top:1.25rem;padding:.78rem .9rem;font-size:.86rem}.review-complete-actions{margin-top:.7rem}.review-complete-actions .btn{width:auto;margin-top:0}.review-empty{color:#746959;font-family:var(--font-heading);border:1px dashed #cdbfa9;justify-items:start;gap:1rem;margin-top:1.25rem;padding:1.5rem;font-style:italic;display:grid}.review-empty .btn{width:auto;font-family:var(--font-body);margin-top:0;font-style:normal}.review-empty--complete{margin-top:.75rem}.review-timeline{border-top:1px solid #d7cbb9;margin-top:2.5rem;padding-top:1.4rem}.review-timeline-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.review-timeline-heading h2{color:#2f3c36;margin-top:.32rem;font-size:clamp(1.3rem,3vw,1.65rem);font-weight:600}.review-timeline-heading>span{color:#8d7253;width:1.75rem;height:1.75rem;font-family:var(--font-mono);border:1px solid #cdbfa9;border-radius:50%;place-items:center;font-size:.68rem;display:grid}.review-timeline-list{gap:.65rem;margin-top:1rem;display:grid}.review-timeline-card{color:#2f3c36;text-align:left;cursor:pointer;background:#f8f2e7;border:1px solid #d7cbb9;border-radius:5px;grid-template-columns:4.4rem minmax(0,1fr) auto;align-items:center;gap:.9rem;width:100%;padding:.72rem .85rem;transition:transform .16s,border-color .16s,background .16s;display:grid}.review-timeline-card:hover{background:#fff9ee;border-color:#c38a53;transform:translate(2px)}.review-timeline-card:focus-visible{outline-offset:3px;outline:2px solid #e87832}.review-timeline-date{color:#9b6338;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700}.review-timeline-copy{gap:.16rem;min-width:0;display:grid}.review-timeline-copy strong{color:#2f3c36;font-family:var(--font-heading);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;overflow:hidden}.review-timeline-action{color:#a65128;font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase;white-space:nowrap;font-size:.66rem;font-weight:700}.review-timeline--new .review-timeline-card{background:#f2f7ee;border-color:#c6d5be}.review-timeline--new .review-timeline-card:hover{background:#f8fcf4;border-color:#8eaf82}.review-timeline--new .review-timeline-date{color:#4d7651}.review-timeline--new .review-timeline-action{color:#476f4c}@media (max-width:620px){.library-map-card{grid-template-columns:2.5rem 1fr;gap:.8rem;display:grid}.library-map-actions{flex-wrap:wrap;grid-column:2;justify-content:start}.review-body{width:min(100% - 1.5rem,700px);padding-top:2.1rem}.review-concept-heading{display:block}.review-concept-count{text-align:left;margin-top:.55rem;display:block}.review-timeline-card{grid-template-columns:3.8rem minmax(0,1fr)}.review-timeline-action{grid-column:2}}
