:root{--bg:#f3f5f7;--bg-accent:#e8ecef;--ink:#14181f;--muted:#6b7280;--panel:#fff;--line:#e5e7eb;--accent:#0e6b5c;--accent-soft:#e6f3f0;--essay-accent:#2f5d4a;--essay-soft:#e8f0ec;--danger:#b33a3a;--radius:10px;--radius-lg:14px;--shadow:0 1px 2px #14181f0a, 0 8px 24px #14181f0f;color:var(--ink);background:var(--bg);font-family:Manrope,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-height:100dvh;margin:0}:is(html:has(.app-shell:has(.book-reader.is-preview)),html:has(.app-shell:has(.book-toc.is-words)),body:has(.app-shell:has(.book-reader.is-preview)),body:has(.app-shell:has(.book-toc.is-words))){height:100%;overflow:hidden}a{color:var(--accent);text-decoration:none}h1,h2,h3{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-weight:600}.app-shell{min-height:100vh}:is(.app-shell:has(.book-reader.is-preview),.app-shell:has(.book-toc.is-words)){flex-direction:column;height:100dvh;max-height:100dvh;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffeb;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}:is(.app-shell:has(.book-reader.is-preview) .topbar,.app-shell:has(.book-toc.is-words) .topbar){flex:none;position:relative}.brand{color:var(--ink);align-items:center;gap:.55rem;font-family:Fraunces,Georgia,serif;font-size:1.25rem;text-decoration:none;display:inline-flex}.brand-lockup{align-items:center;gap:.7rem;margin-bottom:1rem;display:inline-flex}.brand-lockup.is-compact{gap:.5rem;margin-bottom:0}.brand-lockup strong{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:1.55rem;font-weight:600}.brand-lockup.is-compact strong{font-size:1.15rem}.nav{flex:1;gap:1rem;display:flex}.nav a{color:var(--muted)}.nav a:hover{color:var(--accent)}.nav a.active{color:var(--accent);font-weight:600}.nav-action{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.nav-action:hover{color:var(--accent)}.nav-cols{border:1px solid var(--line);background:var(--bg);border-radius:8px;align-items:center;gap:.15rem;margin-left:0;padding:.15rem;display:none}body[data-word-reader] .nav-cols,body[data-word-cols] .nav-cols{display:inline-flex}.nav-cols-btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.3rem .7rem;font-size:.82rem}.nav-cols-btn:hover{color:var(--accent)}.nav-cols-btn.active{color:var(--accent);background:var(--panel);font-weight:600;box-shadow:0 1px 2px #14181f0f}.user-area{color:var(--muted);align-items:center;gap:.75rem;display:flex}.nav-current{color:var(--accent);font-weight:600}.user-avatar{color:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff2e}.user-menu{position:relative}.user-menu-trigger{cursor:pointer;color:var(--ink);font:inherit;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.55rem;padding:.2rem .35rem .2rem .2rem;display:inline-flex}.user-menu-trigger:hover,.user-menu.is-open .user-menu-trigger{border-color:var(--line);background:#ffffffe6}.user-menu-name{text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem;color:var(--ink);font-size:.92rem;overflow:hidden}.user-menu-caret{color:var(--muted);font-size:.7rem;line-height:1;transform:translateY(-1px)}.user-menu-panel{border:1px solid var(--line);width:min(16.5rem,100vw - 2rem);box-shadow:var(--shadow);z-index:30;background:#fffefb;border-radius:12px;flex-direction:column;gap:.2rem;padding:.55rem;display:flex;position:absolute;top:calc(100% + .45rem);right:0}.user-menu-head{border-bottom:1px solid #1a2b3c14;align-items:center;gap:.7rem;margin-bottom:.15rem;padding:.55rem .55rem .7rem;display:flex}.user-menu-head strong{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:1.05rem;display:block}.user-menu-head p{color:var(--muted);margin:.15rem 0 0;font-size:.78rem}.user-menu-item{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.65rem .7rem;text-decoration:none;display:block}.user-menu-item:hover{background:var(--accent-soft);color:var(--accent)}.user-menu-item.is-danger{color:var(--danger)}.user-menu-item.is-danger:hover{color:var(--danger);background:#f8ecec}.profile-page{max-width:720px;margin:0 auto;padding:.5rem 0 2.5rem}.profile-hero{align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding:1.25rem 0 .25rem;display:flex}.profile-hero h1{margin:.15rem 0 .35rem;font-size:clamp(1.7rem,3vw,2.2rem)}.profile-hero-avatar{box-shadow:0 10px 24px #1a2b3c1f}.profile-grid{gap:1rem;display:grid}.profile-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.15rem 1.25rem 1.25rem}.profile-panel h2{margin:0 0 .85rem;font-size:1.15rem}.profile-meta{gap:.85rem;margin:0;display:grid}.profile-meta div{gap:.2rem;display:grid}.profile-meta dt{color:var(--muted);font-size:.82rem}.profile-meta dd{margin:0;font-size:1.02rem}.profile-stats{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.profile-stat{color:inherit;background:linear-gradient(160deg,#f7faf8 0%,#eef3f1 100%);border:1px solid #1a2b3c0f;border-radius:10px;flex-direction:column;gap:.25rem;padding:1rem 1.05rem;text-decoration:none;display:flex}.profile-stat:hover{border-color:#0e6b5c47}.profile-stat em{color:var(--accent);font-family:Fraunces,Georgia,serif;font-size:1.8rem;font-style:normal;line-height:1}.profile-stat span{color:var(--muted);font-size:.88rem}.profile-actions .row-actions{flex-wrap:wrap;gap:.65rem;display:flex}@media (width<=640px){.user-menu-name{display:none}.profile-hero{align-items:flex-start}.profile-stats{grid-template-columns:1fr}}.page{max-width:1080px;margin:0 auto;padding:2rem 1.5rem 3.5rem}.auth-page{background:var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card,.stack-form,.prompt-sheet,.paper-preview,.panel-link{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.auth-card{gap:.95rem;width:min(400px,100%);padding:2.25rem 2rem;display:grid}.auth-card h1{margin:.25rem 0 0;font-size:1.65rem}label{gap:.35rem;font-size:.92rem;display:grid}select{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:6px;padding:.7rem .8rem}input,textarea{width:100%;font:inherit;color:var(--ink);box-shadow:none;background:#fff;border:1px solid #1a2b3c2e;border-radius:6px;outline:none;padding:.65rem .8rem}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0e6b5c1f}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14181f66;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow);color:var(--ink);padding:1.45rem 1.5rem 1.55rem}.modal-card h2{margin:0 0 .35rem;font-family:Fraunces,Georgia,serif;font-size:1.35rem}.modal-card .modal-lead{color:var(--muted);margin:0 0 1rem;font-size:.92rem}.modal-form{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.modal-form input,.modal-form textarea,.modal-form select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.7rem .85rem}.modal-form input:focus,.modal-form textarea:focus,.modal-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0e6b5c1a}.modal-card .btn{border-radius:8px;min-width:4.5rem}.reader-edit-link{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:.2rem .35rem}.reader-edit-link:hover{color:var(--accent)}.toc-top,.reader-top{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;font-size:.92rem;display:flex}.reader-back{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.reader-back:hover{color:var(--accent)}.reader-progress{color:var(--muted);align-items:center;gap:.75rem;margin:0;display:flex}.toc-leaf,.page-leaf{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-height:min(78vh,820px);padding:clamp(1.5rem,4vw,2.75rem);position:relative}.page-leaf{flex-direction:column;display:flex}.page-leaf.is-words,.toc-leaf.is-words{--word-rows:12;--page-pad:clamp(.85rem, 1.6vw, 1.6rem);--sheet-w:min(calc((100cqw - (var(--cols,1) - 1) * var(--col-gap,.65rem)) / var(--cols,1)), calc(100cqh * 5 / 7));width:var(--sheet-w);height:min(100cqh, calc(var(--sheet-w) * 7 / 5));aspect-ratio:auto;max-width:100%;min-height:0;max-height:100%;padding:var(--page-pad);box-sizing:border-box;flex-direction:column;font-size:clamp(.72rem,.42rem + .55vw,.9rem);display:flex;overflow:hidden;box-shadow:inset 0 1px #fffc,0 10px 24px #1a2b3c1a}.page-leaf.is-words .page-leaf-head,.toc-leaf.is-words .toc-leaf-head{flex:none;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.55em;padding-bottom:.45em;display:flex}.page-leaf.is-words .page-leaf-head h1,.toc-leaf.is-words .toc-leaf-head h1{margin:0;font-size:clamp(1.15rem,1.5vw + .55rem,1.55rem)}.toc-leaf-head-main{flex:auto;min-width:0}.toc-head-action{flex:none;margin-left:auto;padding:.35rem .85rem;font-size:.85em}.page-leaf.is-words .page-leaf-foot{flex:none;margin-top:0;padding-top:.45em}.toc-leaf.is-words .toc-elegant{flex:auto;align-content:start;min-height:0;overflow:hidden}.toc-leaf.is-words .toc-elegant.is-words-toc{--toc-rows:10;flex-direction:column;justify-content:flex-start;gap:0;display:flex}.toc-leaf.is-words .toc-elegant.is-words-toc>li{flex:0 0 calc(100% / var(--toc-rows));max-height:calc(100% / var(--toc-rows));align-items:center;min-height:0;display:flex}.toc-leaf.is-words .toc-elegant.is-words-toc .toc-elegant-chapter{align-items:center;width:100%}.toc-leaf.is-words .toc-elegant.is-words-toc .toc-words-row{padding:0;font-size:1.05em}.toc-leaf.is-words .toc-manage{flex:none;width:100%;margin-bottom:.75rem}.page-leaf-words{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.page-leaf.is-words .page-leaf-words{justify-content:flex-start;overflow:hidden}.leaf-entry{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;flex:0 0 calc(100% / var(--word-rows,12));height:calc(100% / var(--word-rows,12));max-height:calc(100% / var(--word-rows,12));background:0 0;border:0;border-bottom:1px solid #1a2b3c14;align-items:center;padding:0 .15rem;display:flex;position:relative;overflow:visible}.leaf-entry.is-manage{cursor:default;justify-content:space-between;gap:.55rem}.leaf-entry.is-manage .leaf-entry-main{flex:auto;min-width:0}.leaf-entry.is-manage .toc-quiet-actions{flex:none}.leaf-entry-main{align-items:baseline;gap:.65rem;width:100%;min-width:0;display:flex}.leaf-left{flex:0 40%;align-items:baseline;gap:.55em;min-width:0;max-width:55%;display:flex}.leaf-term{color:var(--accent);white-space:nowrap;flex:none;font-family:Fraunces,Georgia,serif;font-size:1.05em;font-weight:600}.leaf-phonetic{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:.88em;overflow:hidden}.leaf-meaning{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;line-height:1.35;overflow:hidden}.leaf-example{z-index:3;color:var(--muted);white-space:normal;pointer-events:none;background:#fffdf8;border:1px solid #1a2b3c24;margin:0;padding:.55em .65em;font-size:.92em;font-style:italic;line-height:1.45;position:absolute;top:calc(100% - 1px);left:0;right:0;box-shadow:0 8px 20px #1a2b3c1f}.leaf-entry.open:nth-last-child(-n+3) .leaf-example{top:auto;bottom:calc(100% - 1px);box-shadow:0 -8px 20px #1a2b3c1f}.toc-leaf-head,.page-leaf-head{border-bottom:1px solid #1a2b3c1f;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1.75rem;padding-bottom:1rem;display:flex}.toc-leaf-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;font-size:.75rem}.toc-leaf-head h1,.page-leaf-head h1{margin:.2rem 0 .5rem;font-size:clamp(1.8rem,4vw,2.4rem)}.page-leaf-chapter{color:var(--muted);margin:0;font-size:.95rem}.page-leaf-note{color:var(--muted);margin:.75rem 0 0;font-style:italic}.page-leaf-empty{text-align:center;color:var(--muted);margin:4rem 0}.page-leaf.is-words .page-leaf-empty{justify-content:center;align-items:center;height:100%;margin:0;display:flex}.page-leaf.is-essay-leaf .page-leaf-head{border-bottom:1px solid #1a2b3c1f;margin-bottom:.75em;padding-bottom:.55em}.page-leaf.is-essay-leaf .page-leaf-essay{flex-direction:column;flex:auto;gap:.45em;min-height:0;display:flex;overflow:hidden}.page-leaf.is-essay-leaf .page-leaf-essay.is-edit-stack{gap:.75em}.page-leaf-req-block{box-shadow:none;background:#1a2b3c0a;border:0;border-radius:4px;flex:none;margin:.15em 0 .55em;padding:.65em .8em}.page-leaf-req-label{letter-spacing:.04em;color:var(--muted);margin:0 0 .35em;font-size:.78em;font-weight:600}.page-leaf-requirement{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.92em;line-height:1.55}.page-leaf.is-essay-leaf .essay-piece{flex-direction:column;flex:auto;gap:.45em;min-height:0;display:flex;overflow:hidden}.page-leaf.is-essay-leaf .essay-piece-title{flex:none;margin:0;font-family:Fraunces,Georgia,serif;font-size:1.15em;font-weight:600}.page-leaf-essay.is-edit{gap:.55em}.page-leaf-essay.is-edit label{color:var(--muted);flex-direction:column;gap:.25em;font-size:.85em;display:flex}.page-leaf-essay.is-edit .essay-content-label{flex:auto;min-height:0}.page-leaf-essay.is-edit textarea{resize:none;flex:auto;min-height:6rem;font-family:Literata,Georgia,serif;font-size:1.05rem;line-height:1.8}.page-leaf-essay.is-edit input,.page-leaf-essay.is-edit textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffffa6;border-radius:.4rem;padding:.4rem .55rem}.essay-leaf-actions{flex:none}.page-leaf-essay .leaf-prose,.leaf-prose{white-space:pre-wrap;background:0 0;border:0;margin:0;padding:0;font-family:Literata,Georgia,serif;font-size:1.08rem;line-height:1.85}.page-leaf.is-essay-leaf .leaf-prose{letter-spacing:.01em;word-break:break-word;overflow-wrap:anywhere;flex:auto;min-height:0;font-size:1.05rem;line-height:1.85;overflow:hidden}.page-leaf-foot{color:var(--muted);border-top:1px solid #1a2b3c1f;justify-content:space-between;align-items:center;margin-top:auto;padding-top:1rem;font-size:.9rem;display:flex}.page-turn{align-items:center;gap:.55rem;display:inline-flex}.page-turn-num{text-align:center;font-variant-numeric:tabular-nums;min-width:3.5rem}.page-turn-btn{width:2rem;height:2rem;color:var(--ink);font:inherit;cursor:pointer;background:#fffdf8f2;border:1px solid #1a2b3c2e;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;display:inline-flex}.page-turn-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.page-turn-btn:disabled{opacity:.35;cursor:default}.reader-edit-foot{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem;font-size:.9rem}.reader-edit-foot a{color:var(--muted)}.reader-edit-foot a:hover{color:var(--accent)}.toc-elegant{gap:1.75rem;margin:0;padding:0;list-style:none;display:grid}.toc-elegant>li>ul{gap:.2rem;margin:0;padding:.35rem 0 0;list-style:none;display:grid}.toc-elegant-chapter{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.toc-elegant-chapter h2{align-items:baseline;gap:.75rem;margin:0;font-size:1.2rem;display:flex}.toc-elegant-chapter h2 span{color:var(--muted);font-family:Manrope,sans-serif;font-size:.85rem}.toc-elegant-chapter h2 a{color:inherit;text-decoration:none}.toc-elegant-chapter h2 a:hover{text-underline-offset:.15em;text-decoration:underline}.toc-elegant a.toc-words-row,.toc-elegant button.toc-words-row{min-width:0;color:inherit;font-size:1.2rem;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;grid-template-columns:auto auto 1fr auto;align-items:baseline;gap:.65rem;width:100%;padding:.2rem 0;text-decoration:none;display:grid}.toc-words-index{color:var(--muted);font-family:Manrope,sans-serif;font-size:.85rem}.toc-words-title{font-weight:600}.toc-words-row .toc-lead{align-self:center}.toc-words-row .toc-dot{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem;font-weight:400}.toc-word-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:.25em;font-family:Manrope,Segoe UI,sans-serif;font-size:.92em;font-weight:400}.toc-words-row:hover .toc-words-title{text-underline-offset:.15em;text-decoration:underline}.toc-rename-form{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.toc-rename-form input,.toc-rename-form textarea{min-width:8rem;font:inherit;color:inherit;background:#fff;border:1px solid #1a2b3c38;border-radius:4px;flex:100%;padding:.35rem .55rem;font-size:1.05rem}.toc-rename-form textarea{resize:vertical;min-height:2.5rem;font-size:.92rem}.toc-elegant-req{color:var(--muted);margin:.35rem 0 .5rem;font-size:.92rem}.toc-elegant a{color:inherit;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;padding:.45rem 0;display:grid}.toc-dot{color:var(--ink)}.toc-lead{border-bottom:1px dotted #1a2b3c47;min-width:1.5rem;height:.7em}.toc-page-name{color:var(--muted)}.toc-quiet-actions{gap:.6rem;display:flex}.toc-quiet-actions button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.85rem}.toc-quiet-actions button:hover{color:var(--accent)}.toc-manage{flex-direction:column;align-items:flex-start;gap:.75rem;margin:0 0 1.25rem;display:flex}.book-reader{max-width:760px;margin:0 auto;position:relative}.book-reader.is-preview,.book-toc.is-words{justify-content:center;align-items:center;gap:var(--col-gap,.65rem);--cols:1;--col-gap:.65rem;flex-flow:row;align-self:stretch;width:100%;max-width:none;height:100%;min-height:0;margin:0;display:flex;overflow:hidden;container-type:size}.book-reader.is-preview.cols-1{--cols:1}.book-reader.is-preview.cols-2{--cols:2}.book-reader.is-preview.cols-2 .page-leaf.is-words{font-size:clamp(.68rem,.38rem + .45vw,.84rem)}.book-reader.is-preview.cols-3 .page-leaf.is-words{font-size:clamp(.62rem,.32rem + .38vw,.78rem)}.book-reader.is-preview .page-leaf.is-words,.book-toc.is-words .toc-leaf.is-words{flex:none;margin:0}:is(.page:has(.book-reader.is-preview),.page:has(.book-toc.is-words)){box-sizing:border-box;flex:auto;justify-content:center;align-items:center;width:100%;max-width:none;height:auto;min-height:0;padding:.35rem .5rem;display:flex;overflow:hidden}.book-toc{max-width:720px;margin:0 auto}.book-toc.is-words{flex-direction:row;max-width:none}.book-toc.is-words.cols-1{--cols:1}.book-toc.is-words.cols-2{--cols:2}.book-toc.is-words.cols-3{--cols:3}.book-toc.is-words.cols-2 .toc-leaf.is-words{font-size:clamp(.68rem,.38rem + .45vw,.84rem)}.book-toc.is-words.cols-3 .toc-leaf.is-words{font-size:clamp(.62rem,.32rem + .38vw,.78rem)}.toc-float-error,.toc-float-notice{z-index:2;position:absolute;top:.5rem;left:50%;transform:translate(-50%)}.toc-float-notice{color:#fff;background:#24785aeb;border-radius:.4rem;margin:0;padding:.45rem .9rem;font-size:.9rem;box-shadow:0 6px 16px #1a2b3c29}.page-nav-edges{pointer-events:none}.edge-hit{pointer-events:auto;cursor:pointer;z-index:5;background:0 0;border:0;width:min(12vw,88px);position:fixed;top:4.5rem;bottom:1rem}.edge-hit.left{left:0}.edge-hit.right{right:0}.edge-hit:disabled{cursor:default}.reader-edit-panel{max-width:760px}.edit-word-list{gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.edit-word-list li{background:var(--panel);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;display:flex}.edit-word-list li span{color:var(--muted);flex:1}@media (width<=720px){.page-leaf.is-words .leaf-entry-main{grid-template-columns:minmax(4.5rem,.7fr) auto 1.4fr;gap:.35em .55em}.edge-hit{width:48px}}.notebook:hover .notebook-actions,.notebook:focus-within .notebook-actions{opacity:1}textarea{resize:vertical}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.6rem 1.1rem;font-weight:550;transition:background .15s,border-color .15s,color .15s}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:#0b5a4d}.btn.ghost{border-color:var(--line);color:var(--muted);background:0 0}.btn.ghost:hover{color:var(--ink);border-color:#cfd4da}.btn.danger{color:var(--danger);background:0 0;border-color:#e7bcbc}.icon-btn{cursor:pointer;width:2.35rem;height:2.35rem;color:var(--muted);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{color:var(--ink);background:#14181f0a}.topbar-add{margin-right:-.15rem}.muted{color:var(--muted)}.error{color:var(--danger)}.home .lead{max-width:36rem;color:var(--muted);margin:.55rem 0 0;font-size:1.02rem;line-height:1.55}.home-hero{border-bottom:1px solid var(--line);margin-bottom:1.75rem;padding-bottom:1.5rem}.home-hero h1{letter-spacing:-.03em;margin:0;font-size:clamp(2rem,4.2vw,2.75rem)}.shelf-section{margin-top:2.25rem;scroll-margin-top:5rem}.shelf-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.shelf-heading h2{margin:.1rem 0 0;font-size:1.55rem}.shelf-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8rem}.shelf-create{margin-bottom:1.25rem}.shelf-empty{grid-column:1/-1;margin:.5rem 0}.notebook-shelf{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:1.5rem 1.15rem;padding:0;display:grid}.notebook{justify-items:stretch;gap:.65rem;display:grid}.notebook-cover{aspect-ratio:3/4;width:100%;max-width:none;color:inherit;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;display:block;position:relative;overflow:hidden;transform:none}.notebook:nth-child(2n) .notebook-cover{transform:none}.notebook-cover:hover{transform:translateY(-3px);box-shadow:0 12px 28px #14181f1a}.notebook-cover:before{content:"";background:var(--accent);z-index:1;width:4px;position:absolute;top:0;bottom:0;left:0}.essay-book .notebook-cover:before{background:var(--essay-accent)}.notebook-spine{display:none}.notebook-face{background:var(--panel);flex-direction:column;justify-content:space-between;gap:.75rem;padding:1.1rem 1rem 1.05rem 1.15rem;display:flex;position:absolute;inset:0}.notebook-type{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600}.essay-book .notebook-type{color:var(--essay-accent)}.notebook-title{letter-spacing:-.02em;margin-top:auto;font-family:Fraunces,Georgia,serif;font-size:1.12rem;font-weight:600;line-height:1.3}.notebook-stat{color:var(--muted);letter-spacing:.02em;align-items:baseline;gap:.28rem;font-size:.8rem;display:flex}.notebook-stat em{color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-style:normal;font-weight:600}.word-book .notebook-cover,.essay-book .notebook-cover{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.notebook-actions{opacity:0;flex-wrap:wrap;justify-content:center;gap:.35rem;transition:opacity .2s;display:flex}.notebook-actions .btn{padding:.3rem .65rem;font-size:.82rem}.home-actions{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.panel-link{color:inherit;gap:.4rem;padding:1.4rem;transition:transform .2s,border-color .2s;display:grid}.panel-link:hover{border-color:var(--accent);transform:translateY(-2px)}.panel-link span{color:var(--muted)}.inline-form,.row-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.inline-form{margin:1rem 0 1.5rem}.inline-form input{flex:1;min-width:200px}.list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.list-row,.list>li,.prompt-item{background:var(--panel);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;display:flex}.word-list li{align-items:center}.phonetic{color:var(--muted);margin-left:.5rem}.example{color:var(--muted);margin:.4rem 0 0;font-style:italic}.stack-form{gap:.8rem;margin:1rem 0 1.5rem;padding:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;display:grid}.word-input-row{align-items:center;gap:.5rem;display:flex}.word-input-row input{flex:1;min-width:0}.word-input-row .btn{white-space:nowrap;flex-shrink:0}.lookup-hint{margin:0;font-size:.9rem}.words-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.words-header h1{margin:0 0 .25rem}.words-meta{margin:0}.empty-review{justify-items:start;gap:1rem;padding:2rem 0;display:grid}.review-list{border-top:1px solid var(--line);gap:0;margin:0;padding:0;list-style:none;display:grid}.review-list>li{border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:0;display:block}.review-list>li.open{background:#f7fafca6}.review-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(8rem,.9fr) 1.4fr;align-items:baseline;gap:1rem 1.5rem;padding:1rem .15rem;display:grid}.review-term{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:600}.review-word{flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;display:flex}.review-meaning{color:var(--ink);line-height:1.45}.review-example{color:var(--muted);grid-column:1/-1;margin:0 0 1rem;padding:0 .15rem .25rem;font-style:italic}@media (width<=640px){.review-row{grid-template-columns:1fr;gap:.35rem}.words-header{flex-direction:column;align-items:stretch}}.crumb{color:var(--muted)}.preview-text{color:var(--muted);-webkit-line-clamp:2;white-space:pre-wrap;-webkit-box-orient:vertical;margin:.4rem 0 0;display:-webkit-box;overflow:hidden}.workbook-grid{grid-template-columns:1.1fr .9fr;gap:1.25rem;margin-top:1rem;display:grid}@media (width<=900px){.workbook-grid{grid-template-columns:1fr}}.prompt-sheet{margin-bottom:1rem;padding:1.25rem 1.4rem}.requirement,.essay-body{white-space:pre-wrap;border:1px dashed var(--line);background:#fff;border-radius:12px;margin:0;padding:1rem;font-family:Literata,Georgia,serif}.paper-preview{background:linear-gradient(#fff 0 0) padding-box padding-box,repeating-linear-gradient(#0000,#0000 27px,#0f6e8c14 28px);min-height:420px;padding:1.1rem 1.25rem 1.5rem}.paper-preview header{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.list.compact li.active{border-color:var(--accent);background:var(--accent-soft)}.text-btn{color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}
