:root{--butter:#f8e8ad;--paper:#fff6d7;--wine:#771e3c;--rose:#eab7be;--pink:#f1cad0;--muted:#86576a;--line:#771e3c38;--good:#245c4b;--bad:#99351f;--radius:24px;font-family:Arial,Helvetica,sans-serif;color:var(--wine);background:var(--butter);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.42}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--wine);outline-offset:4px}button{border:0;background:none}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.06;letter-spacing:-1.4px;font-weight:800}h2{font-size:26px;letter-spacing:-.8px;line-height:1.13}h3{font-size:20px;line-height:1.25}p{line-height:1.5}svg{display:block}#shell{max-width:520px;margin:auto;min-height:100svh;position:relative;background:var(--butter)}#app{padding:calc(22px + env(safe-area-inset-top)) 24px calc(104px + env(safe-area-inset-bottom));min-height:100svh}.desktop-note{display:none}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;line-height:1.5}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;flex-shrink:0}.icon-button svg{width:22px;height:22px}.wordmark{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:700;letter-spacing:-7px;font-size:90px;line-height:.8;margin:14px 0 20px;position:relative}.wordmark small{display:block;font-size:39px;letter-spacing:-2px;line-height:1;margin-left:6px;margin-bottom:5px}.wordmark .crown{position:absolute;left:245px;top:8px;width:40px;height:32px;transform:rotate(12deg)}.hero-heading{font-size:29px;line-height:1.08;max-width:250px;letter-spacing:-1px}.hero-art{height:178px;width:100%;margin:-2px 0 4px;overflow:visible}.session-card{background:var(--rose);padding:20px 20px 18px;border-radius:54px 6px 22px 6px;margin-top:4px}.session-card h2{font-family:Georgia,serif;font-style:italic;font-size:27px;margin-bottom:6px}.session-card p{font-size:14px;margin:6px 0 15px}.primary,.secondary{width:100%;min-height:54px;border-radius:28px;padding:15px 20px;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;line-height:1.3;text-decoration:none;transition:transform .16s,background .16s}.primary{background:var(--wine);color:var(--paper)}.primary:active,.secondary:active{transform:scale(.985)}.primary .arrow{margin-left:auto}.secondary{border:1.5px solid var(--wine);background:transparent}.text-link{display:flex;align-items:center;justify-content:space-between;width:100%;padding:19px 0;border-bottom:1px solid var(--line);font-size:17px;text-align:left;min-height:55px;font-weight:600}.text-link small{font-size:12px;color:var(--muted);font-weight:400}.home-links{margin:10px 0}.subtle{color:var(--muted);font-size:13px;line-height:1.55}.home-note{font-size:12px;line-height:1.5;margin-top:18px;color:var(--muted)}.resume{background:var(--paper);border:1px solid var(--line);padding:16px;border-radius:14px;margin:16px 0}.resume p{font-size:14px;margin:6px 0 12px}.quiet-button{min-height:44px;padding:10px 0;text-decoration:underline;text-underline-offset:4px;font-size:14px}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:var(--butter);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);z-index:10}.nav button{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:48px;font-size:11px;opacity:.6}.nav button.active{opacity:1;font-weight:700}.nav svg{width:25px;height:25px}.nav .active::after{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.page-head{margin:8px 0 25px}.page-head .eyebrow{margin-bottom:13px}.page-head p{margin-top:12px;font-size:15px;color:var(--muted)}.section-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin:27px 0 12px;font-weight:700}.mode-grid{display:grid;gap:10px}.mode{padding:17px;text-align:left;border:1px solid var(--line);border-radius:8px;display:flex;gap:14px;align-items:center;min-height:85px}.mode.selected{background:var(--wine);color:var(--paper);border-color:var(--wine)}.mode strong{display:block;font-size:18px}.mode small{display:block;line-height:1.45;font-size:13px;margin-top:5px;opacity:.8}.mode svg{width:29px;height:29px;flex-shrink:0}.field-label{display:block;font-weight:700;margin:20px 0 9px;font-size:14px}.select,input[type=date],input[type=search],input[type=text]{width:100%;padding:15px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-size:17px;color:var(--wine);min-height:52px}.counts{display:flex;gap:8px}.counts button{flex:1;border:1px solid var(--line);border-radius:25px;min-height:46px}.counts button.selected{background:var(--wine);color:var(--paper)}.toggle-row{display:flex;gap:12px;align-items:center;min-height:48px;margin:10px 0;font-size:14px}.toggle-row input{width:21px;height:21px;accent-color:var(--wine)}.setup-start{margin-top:24px}.empty{border:1px dashed var(--line);padding:24px;text-align:center;border-radius:14px;margin:20px 0}.empty p{font-size:14px;margin-top:10px}.quiz-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.quiz-head .icon-button{border:0;margin-left:-9px}.quiz-count{font-weight:700;font-size:17px;letter-spacing:1px}.quiz-mode{font-size:11px}.progress-track{height:5px;border-radius:10px;background:var(--line);overflow:hidden;margin-bottom:22px}.progress-track span{display:block;background:var(--wine);height:100%;transition:width .3s}.question-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:10px;margin-bottom:12px;color:var(--muted)}.question{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin-bottom:12px;overflow-wrap:break-word}.question-help{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0 18px}.answers{display:grid;gap:10px;margin:20px 0}.option{border:1.5px solid var(--line);border-radius:14px;min-height:60px;text-align:left;padding:14px;display:flex;align-items:center;gap:12px;font-size:17px;line-height:1.4;width:100%;background:#fff6d733}.option .letter{width:28px;height:28px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.option.selected{background:var(--wine);color:var(--paper);border-color:var(--wine)}.option.selected .letter{border-color:#fff6d76b}.option.right{border-color:var(--good);background:#e2e4b9;color:var(--good)}.option.wrong{border-color:var(--bad);background:#f4cbb8;color:var(--bad)}.option:disabled{opacity:1}.confidence{margin:23px 0 20px}.confidence>span{display:block;font-size:12px;margin-bottom:10px;color:var(--muted)}.confidence-buttons{display:flex;gap:6px}.confidence button{flex:1;min-height:44px;border:1px solid var(--line);border-radius:24px;font-size:12px;padding:10px 5px}.confidence button.selected{background:var(--rose);border-color:var(--wine);font-weight:700}.quiz-actions{display:grid;gap:7px;margin-top:18px}.skip{font-size:13px;min-height:44px;text-decoration:underline;text-underline-offset:4px}.feedback{background:var(--paper);padding:20px;border-radius:18px;margin:22px 0;border-top:4px solid var(--good)}.feedback.partial,.feedback.incorrect{border-top-color:var(--bad)}.feedback .feedback-title{font-family:Georgia,serif;font-size:27px;letter-spacing:-.6px;margin-bottom:10px}.feedback p{font-size:16px;line-height:1.6;margin:10px 0}.feedback .correct-answer{font-size:15px;font-weight:700}.source{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.source summary{cursor:pointer;min-height:40px;font-size:13px;line-height:1.5;color:var(--muted)}.source blockquote{margin:6px 0 10px;padding-left:12px;border-left:2px solid var(--rose);font-size:13px;line-height:1.6;color:var(--muted);white-space:pre-line}.source .source-title{font-size:11px;margin-bottom:10px;color:var(--muted)}.order-selected{display:grid;gap:8px;margin:15px 0}.order-slot{min-height:55px;display:flex;gap:12px;align-items:center;border-radius:12px;border:1px solid var(--wine);padding:10px 12px;background:var(--rose);font-size:16px;text-align:left}.order-slot .step{font-size:12px;width:23px;height:23px;border-radius:50%;background:var(--wine);color:var(--paper);display:grid;place-items:center;flex-shrink:0}.order-slot .remove{margin-left:auto}.order-empty{padding:16px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:13px}.result-hero{margin:24px 0}.result-number{font-family:Georgia,serif;font-style:italic;font-size:99px;letter-spacing:-8px;line-height:1.15;white-space:nowrap}.result-number small{font-size:47px;letter-spacing:-3px}.result-sub{display:flex;gap:15px;align-items:center;font-size:14px;margin-top:8px}.grade{font-size:20px;font-weight:700}.grade-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:20px 0;display:flex;justify-content:space-between}.result-actions{display:grid;gap:10px;margin:24px 0}.review-row{border-bottom:1px solid var(--line);padding:18px 0}.review-row>summary{display:flex;align-items:flex-start;gap:10px;cursor:pointer;list-style:none;font-size:16px;line-height:1.4;min-height:44px}.review-row>summary::-webkit-details-marker{display:none}.review-icon{width:24px;height:24px;border:1px solid currentColor;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:14px}.review-row .right-icon{color:var(--good)}.review-row .wrong-icon{color:var(--bad)}.review-row .review-answer{font-size:14px;padding:10px 0;color:var(--muted)}.review-row .feedback{margin:8px 0}.stats-head{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.stat-block{border-top:1px solid var(--wine);padding-top:15px}.stat-block strong{display:block;font-size:45px;font-family:Georgia,serif;font-style:italic;line-height:1.1}.stat-block span{display:block;font-size:12px;margin-top:7px;color:var(--muted)}.topic-row{padding:15px 0;border-bottom:1px solid var(--line)}.topic-title{display:flex;justify-content:space-between;gap:10px;font-size:15px}.topic-title span{font-size:12px;color:var(--muted);white-space:nowrap}.topic-meter{height:4px;background:var(--line);margin:10px 0;border-radius:4px;overflow:hidden}.topic-meter span{height:100%;display:block;background:var(--wine)}.topic-detail{font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.topic-detail button{font-size:12px;text-decoration:underline;min-height:35px}.history-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;font-size:14px}.history-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.chip{border:1px solid var(--line);padding:9px 14px;font-size:12px;border-radius:20px;min-height:38px}.chip.active{background:var(--wine);color:var(--paper)}.flashcard{border:1px solid var(--line);border-radius:20px;padding:25px 22px;margin:20px 0;min-height:240px;background:var(--pink)}.flashcard .eyebrow{font-size:10px;margin-bottom:18px}.flashcard h2{font-size:24px;margin:12px 0 24px}.flashcard .primary{margin-top:20px}.flash-answer{font-size:18px;font-weight:700;margin:15px 0}.settings-box{border-bottom:1px solid var(--line);padding:20px 0}.settings-box p{font-size:14px;margin:10px 0;color:var(--muted)}.settings-box h2{font-size:21px}.settings-box .secondary{margin-top:15px}.install-list{font-size:15px;line-height:1.6;padding-left:23px}.install-list li{padding:6px 0}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:var(--wine);color:var(--paper);border-radius:12px;padding:14px 18px;max-width:90vw;width:max-content;font-size:14px;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}dialog{background:var(--butter);color:var(--wine);border:1px solid var(--line);border-radius:22px;padding:26px;max-width:380px;width:calc(100vw - 36px)}dialog::backdrop{background:#30102077}dialog h2{margin-bottom:12px}dialog p{font-size:15px;margin-bottom:20px}dialog button{margin-top:10px}.loading{padding:120px 0;text-align:center}.loading p{font-family:Georgia,serif;font-size:40px;font-style:italic}.loading span{display:block;font-size:13px;margin-top:20px}.visual-wrap{border-radius:16px;background:var(--paper);margin:20px 0 12px;position:relative;overflow:hidden}.visual-wrap svg{width:100%;height:auto}.visual-caption{font-size:10px;text-align:center;color:var(--muted);padding:0 10px 12px;letter-spacing:.3px}.spine-choice{cursor:pointer}.spine-choice circle{fill:var(--paper);stroke:var(--wine);stroke-width:1.5}.spine-choice text{fill:var(--wine);font-size:15px;font-family:Arial,sans-serif;font-weight:bold;pointer-events:none}.spine-choice.selected circle{fill:var(--wine)}.spine-choice.selected text{fill:var(--paper)}.breath-row{background:var(--rose);padding:16px;border-radius:15px;display:flex;align-items:center;justify-content:space-between;margin:10px 0;gap:10px}.breath-row .beats{display:flex;gap:10px}.beat{width:12px;height:12px;border-radius:50%;background:var(--wine)}.breath-row .phase{font-weight:700;font-size:16px}.breath-row:nth-child(2){background:transparent;border:1px solid var(--wine)}.breath-row:nth-child(2) .beat{background:transparent;border:1px solid var(--wine)}.vis-move{transform-origin:160px 91px;animation:arm-motion 3s ease-in-out infinite alternate}.motion-paused .vis-move{animation-play-state:paused}.diagram-control{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;font-size:13px;text-decoration:underline}.vis-arrow{stroke-dasharray:5 5}.notice{background:var(--paper);border-left:3px solid var(--wine);padding:13px 15px;font-size:13px;line-height:1.6;margin:15px 0}.offline-status{display:inline-flex;gap:6px;align-items:center;font-size:11px;color:var(--muted)}.offline-status::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--good)}.import-file{position:absolute;width:1px;height:1px;opacity:0}.full{width:100%}.spaced{margin-top:20px}.no-nav .nav{display:none}.no-nav #app{padding-bottom:calc(35px + env(safe-area-inset-bottom))}.review-filter{font-size:12px;margin:15px 0}.closing-note{font-family:Georgia,serif;font-style:italic;font-size:22px;line-height:1.4;margin:24px 0}.footer-brand{text-align:center;font-size:10px;letter-spacing:1px;color:var(--muted);margin-top:30px}.bank-item summary{padding:16px 0;font-size:15px;line-height:1.4;cursor:pointer}.bank-item{border-bottom:1px solid var(--line)}.bank-item .answer-label{font-size:14px;font-weight:bold;margin-bottom:10px}.bank-item p{font-size:14px;line-height:1.6}.search-count{font-size:12px;color:var(--muted);margin:15px 0}.due-pill{background:var(--rose);border-radius:20px;padding:6px 10px;font-size:10px;white-space:nowrap}.exam-warning{font-size:12px;line-height:1.5;color:var(--muted);margin-top:14px}.save-error{background:#f4cbb8;padding:15px;font-size:13px;line-height:1.5;margin-bottom:12px}
@keyframes arm-motion{from{transform:rotate(0deg)}to{transform:rotate(-70deg)}}
@media(min-width:900px){body{background:#eac9bd;display:grid;grid-template-columns:minmax(300px,1fr) 520px minmax(40px,.35fr);align-items:start}#shell{margin:0;box-shadow:0 0 0 1px var(--line)}.nav{left:auto;transform:none}.desktop-note{display:flex;flex-direction:column;padding:100px 50px 30px;position:sticky;top:0;min-height:100vh}.desktop-note>span{font-size:12px;letter-spacing:3px}.desktop-note .tiny-crown{font-size:60px;margin-bottom:30px;letter-spacing:0}.desktop-note p{font:italic 46px/1.12 Georgia,serif;letter-spacing:-2px;margin-top:60px}.desktop-note .desktop-foot{margin-top:auto;font-size:9px}}
@media(max-width:360px){#app{padding-left:18px;padding-right:18px}.wordmark{font-size:79px}.wordmark .crown{left:219px;width:32px}.question{font-size:24px}.option{font-size:16px}.confidence button{font-size:11px}.result-number{font-size:85px}.breath-row .beats{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
