/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#f4f2ec\]{background-color:#f4f2ec}.text-left{text-align:left}.text-\[\#111111\]{color:#111}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.selection\:bg-\[\#ff3b1f\]\/20 ::selection{background-color:oklab(65.3019% .199918 .121621/.2)}.selection\:bg-\[\#ff3b1f\]\/20::selection{background-color:oklab(65.3019% .199918 .121621/.2)}.selection\:text-\[\#ff3b1f\] ::selection{color:#ff3b1f}.selection\:text-\[\#ff3b1f\]::selection{color:#ff3b1f}}:root{--font-fraunces:"Fraunces", Georgia, serif;--font-inter:"Inter", system-ui, -apple-system, sans-serif;--font-display:var(--font-fraunces);--font-body:var(--font-inter);--paper:#f4f2ec;--paper-deep:#e6e2d8;--ink:#111;--ink-deep:#000;--ink-soft:#6b6862;--line:#111;--hair:#d6d2c8;--accent:#ff3b1f;--accent-bright:#ff6a4d;--white:#fff;--danger:#c2261a;--hard:4px 4px 0 var(--ink);--hard-lg:7px 7px 0 var(--ink);--chart-series:#ff3b1f;--chart-series-hover:#111;--chart-grid:#d6d2c8}html{scrollbar-gutter:stable;height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;color:var(--ink);font-family:var(--font-body), system-ui, sans-serif;background-color:var(--paper);font-size:15px;line-height:1.5}button{font:inherit;color:inherit}.page{max-width:1280px;margin:0 auto;padding:40px 28px 96px}.spinner{vertical-align:.05em;align-items:center;gap:3px;margin-right:8px;display:inline-flex}.spinner i{background:currentColor;width:5px;height:5px;animation:.9s ease-in-out infinite spinner-blink}.spinner i:nth-child(2){animation-delay:.15s}.spinner i:nth-child(3){animation-delay:.3s}.spinner--lg{gap:5px;margin:0}.spinner--lg i{width:8px;height:8px}@keyframes spinner-blink{0%,to{opacity:.2}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.spinner i{opacity:.6;animation:none}}.appbar{background:var(--paper);border-bottom:3px solid var(--ink)}.appbar-inner{align-items:center;gap:28px;max-width:1280px;min-height:62px;margin:0 auto;padding:10px 28px;display:flex}.appbar-logo{cursor:pointer;transform-origin:0;transition:transform .15s;display:inline-flex}.appbar-logo:hover{transform:scale(1.06)}.appbar-mark{width:auto;height:31px;display:block}.appbar-ink{fill:var(--ink)}.appbar-title{fill:#fff}.appbar-outline{stroke:var(--ink)}.appbar-nav{gap:22px;margin-left:auto;font-size:14px;display:flex}.appbar-link{color:var(--ink);text-decoration:none;transition:color .15s}.appbar-link:hover,.appbar-link--active{color:var(--accent)}.masthead{text-align:left;border-bottom:3px solid var(--ink);grid-template-columns:1fr;align-items:end;margin-bottom:0;padding:12px 0 10px;display:grid;position:relative}.masthead-eyebrow,.cover-topline,.cover-author,.ledger th,.ledger tfoot td,.badge,.stat-tile-label,.detail-kicker,.detail-facts dt,.progress-label,.drill-section-title,.field>span,.search-divider,.datepicker-wd,.sense-pos,.notes-prose th,.legal-body th,.fmt-btn,.notes-prose .callout:before,.showcase-plate-eyebrow,.showcase-stat-label,.showcase-month-name,.showcase-dialog-link-label{text-transform:uppercase;letter-spacing:.07em;font-weight:700}.masthead-eyebrow{letter-spacing:.22em;color:var(--accent);font-size:10.5px}.masthead-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.045em;margin:4px 0 6px;font-size:clamp(46px,9vw,96px);font-weight:400;line-height:.88}.masthead-title:last-child{margin-bottom:16px}.masthead-stats{letter-spacing:.01em;color:var(--ink);font-size:12px;font-style:normal;font-weight:600}.sort-label,.view-btn,.chip,.btn,.cover-status,.drill-back,.chart-more,.datepicker-link,.cropper-zoom,.notes-back,.notes-vocab-link,.user-menu-item,.colophon,.auth-legal,.legal-back,.appbar-nav{letter-spacing:.01em;font-weight:700}.toolbar{flex-direction:column;gap:12px;margin:20px 0 32px;display:flex}.toolbar-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toolbar-row--chips{gap:8px}.search,.sort-select,.book-form input,.book-form select,.book-form textarea,.manual-form input,.manual-form textarea,.datepicker-toggle{border:2px solid var(--ink);background:#fff;border-radius:0;font-weight:500}.search{min-width:180px;color:var(--ink);font:inherit;flex:220px;padding:9px 14px;font-size:15px;font-weight:500}.search:focus,.book-form input:focus,.book-form select:focus,.book-form textarea:focus,.manual-form input:focus,.manual-form textarea:focus,.sort-select:focus,.datepicker-toggle:focus-visible,.btn:focus-visible{outline-color:var(--accent)}.search:focus,.book-form input:focus,.book-form select:focus,.book-form textarea:focus,.sort-select:focus{outline:2px solid var(--accent);outline-offset:1px}.sort-label{color:var(--ink-soft);align-items:center;gap:8px;font-size:14px;display:inline-flex}.sort-select{color:var(--ink);font:inherit;padding:8px 10px;font-size:14px;font-weight:500}.view-toggle{border:2px solid var(--ink);box-shadow:var(--hard);border-radius:0;display:inline-flex;overflow:hidden}.view-btn{cursor:pointer;color:var(--ink);background:#fff;border:none;padding:9px 17px;font-size:12px}.chip{cursor:pointer;border:2px solid var(--ink);color:var(--ink);box-shadow:var(--hard);background:#fff;border-radius:0;padding:6px 13px;font-size:11.5px;transition:transform 80ms,box-shadow 80ms}.chip:hover{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.chip--active{background:var(--ink);border-color:var(--ink);color:#fff}.chip--notes{margin-left:10px}.chip--notes-active{background:var(--accent);border-color:var(--ink);color:#fff}.note-ribbon{clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);pointer-events:none;z-index:2;background:var(--accent);box-shadow:none;border:2px solid var(--ink);border-top:none;width:16px;height:36px;position:absolute}.cover-wrap{display:block;position:relative}.cover-wrap .note-ribbon{top:-3px;right:11%}.note-ribbon--inline{vertical-align:-3px;border-width:1.5px;width:11px;height:19px;margin-left:9px;display:inline-block;position:static}.btn{cursor:pointer;border:2px solid var(--ink);color:var(--ink);box-shadow:var(--hard);background:#fff;border-radius:0;padding:10px 18px;font-size:12.5px;transition:transform 80ms,box-shadow 80ms}.btn:hover{border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);background:#fff;transform:translate(2px,2px)}.btn--primary{border-color:var(--ink);background:var(--ink);color:#fff}.btn--primary:hover{border-color:var(--ink-deep);background:var(--ink)}a.btn{text-decoration:none;display:inline-block}.btn--accent{background:var(--accent);border-color:var(--ink);color:#fff}.btn--accent:hover{background:var(--accent)}.btn--danger{border-color:var(--ink);color:var(--danger);background:#fff}.btn--danger-solid{background:var(--danger);border-color:var(--ink);color:#fff}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:40px 30px;list-style:none;display:grid}.cover-card{cursor:pointer;text-align:center;background:0 0;border:none;flex-direction:column;gap:10px;width:100%;display:flex}.cover-card .cover-wrap,.cover-card .cover{transition:transform .1s,box-shadow .1s}.cover-card:hover .cover-wrap,.cover-card:focus-visible .cover-wrap{transform:translate(-3px,-3px)rotate(0)}.cover-card:hover .cover,.cover-card:focus-visible .cover{box-shadow:var(--hard-lg)}.cover{aspect-ratio:2/3;text-align:center;width:100%;color:var(--spine-ink);border:2px solid var(--ink);background-image:linear-gradient(180deg, var(--spine-bg), var(--spine-deep));box-shadow:var(--hard);border-radius:0;flex-direction:column;justify-content:space-between;align-items:center;padding:14% 11%;display:flex;position:relative}.cover--image img{object-fit:cover;border-radius:inherit;width:100%;height:100%;position:absolute;inset:0}.cover-topline,.cover-author{letter-spacing:.1em;font-size:9px}.cover-topline{opacity:.75;min-height:1em}.cover-title{-webkit-line-clamp:4;font-size:clamp(13px,1.6vw,17px);font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;-webkit-box-orient:vertical;font-weight:400;line-height:1.05;display:-webkit-box;overflow:hidden}.cover-author{opacity:.9}.cover-caption{justify-content:center;margin-top:2px;display:flex}.cover-status{color:var(--ink);font-size:10px;font-style:normal}.progress-bar{border:2px solid var(--ink);background:#fff;width:100%;display:block}.progress-bar--md{height:12px}.progress-bar--sm{border-width:1.5px;height:7px}.progress-bar-fill{background:var(--accent);height:100%;transition:width .3s;display:block}.cover-progress{align-items:center;gap:6px;width:100%;max-width:150px;display:flex}.cover-progress-value{font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.progress-panel{border-bottom:3px solid var(--ink);padding:16px 0}.progress-label{color:var(--accent);margin-bottom:8px;font-size:10px}.progress-form{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.progress-input{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.progress-input input{border:2px solid var(--ink);width:84px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;appearance:textfield;background:#fff;border-radius:0;padding:8px 11px;font-weight:500}.progress-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.progress-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.progress-input input:focus{outline:2px solid var(--accent);outline-offset:1px}.progress-track{align-items:center;gap:12px;display:flex}.progress-percent{text-align:right;font-variant-numeric:tabular-nums;flex:none;min-width:3.2ch;font-size:15px;font-weight:700}.progress-meta{color:var(--ink-soft);margin-top:8px;font-size:14px}.progress-error{color:var(--danger);margin-top:8px;font-size:14px}.progress-finish{margin-top:12px}.progress-log{margin-top:12px;padding:0;font-size:13.5px;list-style:none}.progress-log li{border-top:1px solid var(--hair);align-items:center;gap:12px;padding:4px 0;display:flex}.progress-log-date{width:64px;color:var(--ink-soft)}.progress-log-remove{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:2px 6px;font-size:12px}.progress-log-remove:hover{color:var(--danger)}.reading-list{margin:0;padding:0;list-style:none}.reading-list li+li{border-top:1px solid var(--hair)}.reading-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 48px minmax(0,.9fr);align-items:center;gap:16px;padding:12px 0;display:grid}.reading-row:hover .reading-title{color:var(--accent)}.reading-title{flex-direction:column;min-width:0;font-size:15px;font-weight:700;display:flex}.reading-author{color:var(--ink-soft);font-size:13px;font-weight:500}.reading-percent{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.reading-meta{color:var(--ink-soft);font-size:13px}.reading-footnote{color:var(--ink-soft);margin-top:14px;font-size:13px}.ledger-wrap{border:2px solid var(--ink);box-shadow:var(--hard);background:#fff;border-radius:0;overflow-x:auto}.ledger td{white-space:nowrap;border-bottom:1px solid #cbbb9973;border-bottom-color:var(--hair);padding:11px 14px;font-weight:500}.ledger tbody tr{cursor:pointer}.ledger tbody tr:hover{background:var(--paper-deep)}.ledger-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-weight:900}.ledger-swatch{vertical-align:-2px;border:1px solid var(--ink);border-radius:0;width:10px;height:16px;margin-right:10px;display:inline-block}.ledger tfoot td{border-bottom:none;border-top:3px solid var(--ink);color:var(--ink);padding:12px 14px;font-size:10.5px}.badge{border:2px solid var(--ink);letter-spacing:.06em;border-radius:0;padding:2px 10px;font-size:10px;display:inline-block}.badge--reading{color:var(--ink);background:#ffd400}.badge--to-read{color:var(--ink);background:#fff}.stats,.lookup-panel{margin-top:20px}.stats{flex-direction:column;gap:20px;display:flex}.stat-tile,.chart-card,.drill-tile,.lookup-panel,.vocab-card{border:2px solid var(--ink);box-shadow:var(--hard);background:#fff;border-radius:0}.stat-tile{padding:14px 16px 12px}.stat-tile-value{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:44px;font-weight:400;line-height:1}.stats-row{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.chart-card{padding:20px 22px 16px}.chart-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:19px;font-weight:900}.chart-sub{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:16px;font-size:10px;font-style:normal;font-weight:600}.chart-plot{position:relative}.chart-plot svg{width:100%;height:auto;display:block}.chart-tick{font-family:var(--font-body), system-ui, sans-serif;fill:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:11.5px}.chart-cap{font-family:var(--font-body), system-ui, sans-serif;fill:var(--ink);font-variant-numeric:tabular-nums;font-size:12px}.chart-tip{pointer-events:none;white-space:nowrap;z-index:5;background:var(--accent);color:#fff;border:2px solid var(--ink);border-radius:0;padding:4px 10px;font-size:12.5px;font-weight:700;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.hbar-row{grid-template-columns:118px 1fr;align-items:center;gap:10px;margin:8px 0;display:grid}.hbar-row--narrow{grid-template-columns:48px 1fr}.hbar-label{text-align:right;white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-size:12.5px;font-weight:600;overflow:hidden}.hbar-track{align-items:center;gap:8px;min-height:16px;display:flex}.hbar-fill{border:2px solid var(--ink);background:var(--accent);border-left:none;border-radius:0;height:20px;transition:background .12s}.hbar-row:hover .hbar-fill{background:var(--ink)}.hbar-count{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink);font-size:12.5px;font-weight:700}.hbar-row--click{width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;padding:0}.hbar-row--click:hover{background:var(--paper-deep)}.drill-section-title,.drill-back,.chart-more{letter-spacing:.01em;color:var(--accent);font-size:11.5px}.chart-more{margin-top:8px}.dialog--drill{max-width:560px}.dialog--drill .hbar-row{grid-template-columns:158px 1fr}.drill-title{font-size:25px;line-height:1.15;font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-weight:900}.search-note,.cropper-hint,.empty-note,.muted,.drill-sub,.drill-book-meta,.notes-save,.notes-blank,.notes-meta-item,.lookup-phonetic,.sense-example,.datepicker-placeholder,.ledger-copy{font-style:normal}.drill-sub{color:var(--ink-soft);margin-bottom:14px;font-size:14px}.drill-tiles{gap:12px;margin-bottom:16px;display:flex}.drill-tile{font-variant:small-caps;letter-spacing:.06em;color:var(--ink-soft);box-shadow:none;flex:1;padding:8px 12px;font-size:13px}.drill-tile b{color:var(--ink);font-size:21px;font-family:var(--font-display), Georgia, serif;font-weight:900;display:block}.drill-section-title{margin:14px 0 4px}.drill-best{border:2px solid var(--accent);background:#ff3b1f12;border-radius:0;padding:2px 8px}.drill-list{list-style:none}.drill-book{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:8px 6px;display:flex}.drill-list li+li .drill-book{border-top:1px solid #cbbb9966}.drill-book:hover{background:var(--paper-deep)}.drill-thumb{border:1px solid var(--ink);border-radius:0;flex:none;width:30px;height:45px;position:relative;overflow:hidden;box-shadow:inset -2px 0 3px #00000040}.drill-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.drill-book-text{flex-direction:column;flex:1;min-width:0;display:flex}.drill-book-title{white-space:nowrap;text-overflow:ellipsis;font-weight:400;font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:14px;overflow:hidden}.drill-book-meta{color:var(--ink-soft);font-size:12.5px}.drill-book-right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.drill-book-date{color:var(--ink-soft);white-space:nowrap;font-size:11.5px}.drill-back{cursor:pointer;background:0 0;border:none;padding:0}.drill-back:hover{text-decoration:underline}@media (width<=720px){.stats-row{grid-template-columns:1fr}.drill-tiles{flex-direction:column}}.stars{gap:1px;display:inline-flex}.star{color:#c9c5bb;font-size:16px;line-height:1;display:inline-block;position:relative}.star-glyph{display:inline-block}.star--half .star-glyph:before{content:"★";width:50%;color:var(--accent);position:absolute;inset:0;overflow:hidden}.stars--sm .star{font-size:13px}.stars--lg .star{font-size:24px}.stars--input .star{background:0 0;border:none;padding:0 1px;transition:transform .1s}.stars--input .star:hover{transform:scale(1.2)}.stars--input .star--zone{cursor:pointer}.stars--input .star-half,.stars--input .star-full{cursor:pointer;background:0 0;border:none;width:50%;margin:0;padding:0;position:absolute;top:0;bottom:0}.stars--input .star-half{left:0}.stars--input .star-full{right:0}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:24px;z-index:9999!important;box-sizing:border-box!important;background:#111111ad!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;min-height:100dvh!important;display:flex!important;position:fixed!important;inset:0!important;overflow-y:auto!important}.dialog{border:3px solid var(--ink);width:100%;max-height:calc(100vh - 48px);box-shadow:12px 12px 0 var(--ink);background:#fff;border-radius:0;padding:34px;position:relative;overflow-y:auto}.dialog--detail{box-sizing:border-box!important;width:100%!important;max-width:780px!important;display:block!important}.dialog--form{box-sizing:border-box!important;width:100%!important;max-width:640px!important;display:block!important}.dialog-close,.dialog-edit{cursor:pointer;width:28px;height:28px;color:var(--ink-soft);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex;position:absolute;top:14px}.dialog-close{color:var(--ink);border:2px solid var(--ink);width:30px;height:30px;padding:0;font-size:15px;top:12px;right:12px}.dialog-edit{color:var(--ink);border:2px solid var(--ink);width:30px;height:30px;padding:0;top:12px;right:50px}.dialog-close:hover,.dialog-edit:hover{color:var(--ink)}.dialog-edit:focus-visible{outline:2px solid var(--accent);outline-offset:1px;outline-color:var(--accent);border-radius:0}.dialog-edit svg{display:block;transform:translateY(1px)}.detail-layout{gap:32px;display:flex}.detail-cover{flex:0 0 200px}.detail-body{flex:1;min-width:0}.detail-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.035em;margin:10px 0 6px;font-size:42px;font-weight:400;line-height:.92}.detail-author{color:var(--ink-soft);letter-spacing:.01em;margin-bottom:10px;font-size:12.5px;font-style:normal;font-weight:600}.detail-rating{margin-bottom:18px}.detail-facts{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:12px 18px;padding:16px 0;display:grid}.fact-flag{font-size:16px;font-weight:700;line-height:1}.fact-flag--yes{color:var(--accent)}.fact-flag--no,.muted{color:var(--ink-soft)}.form-heading,.confirm-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-weight:900}.form-heading{margin-bottom:20px;font-size:26px}.book-form{grid-template-columns:1fr 1fr;gap:14px 18px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field--wide{grid-column:1/-1}.book-form input,.book-form select,.book-form textarea{color:var(--ink);font:inherit;padding:8px 11px;font-size:15px;font-weight:500}.book-form textarea{resize:vertical}.checkline{cursor:pointer;align-items:center;gap:8px;padding-top:6px;font-size:14.5px;font-weight:500;display:flex}.checkline input{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.ledger-copy{text-align:center;color:var(--ink-deep)}.status-options{flex-wrap:wrap;gap:4px 24px;display:flex}input.switch{appearance:none;border:2px solid var(--ink);width:40px;height:22px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#fff;border-radius:0;flex:none;margin:0;padding:0;transition:background .12s;position:relative}input.switch:before{content:"";background:var(--ink);width:14px;height:14px;transition:transform .12s;position:absolute;top:2px;left:2px}input.switch:checked{background:var(--accent)}input.switch:checked:before{transform:translate(18px)}input.switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){input.switch,input.switch:before{transition:none}}.switch-line{gap:14px}input.square-radio{appearance:none;border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:0;flex:none;place-content:center;width:18px;height:18px;margin:0;padding:0;display:grid}input.square-radio:before{content:"";background:var(--accent);width:8px;height:8px;transform:scale(0)}input.square-radio:checked:before{transform:scale(1)}input.square-radio:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.genre-new{gap:8px;display:flex}.genre-new input{flex:1;min-width:0}.search-row{gap:8px;display:flex}.search-row input{flex:1}.search-note{color:var(--ink-soft);margin-top:6px;font-size:13px}.search-note--error{color:var(--danger)}.search-results{border:2px solid var(--ink);background:#fff;border-radius:0;max-height:264px;margin-top:8px;list-style:none;overflow-y:auto}.search-results li+li{border-top:2px solid var(--hair)}.search-result{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:8px 12px;display:flex}.search-result:hover{background:var(--paper-deep)}.search-thumb{background:var(--paper-deep);border:1px solid var(--ink);border-radius:0;flex:none;justify-content:center;align-items:center;width:30px;height:45px;display:flex;position:relative;overflow:hidden;box-shadow:inset -1px 0 2px #00000026}.search-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.search-thumb-blank{color:var(--accent);font-size:12px}.search-result-text{flex-direction:column;min-width:0;display:flex}.search-result-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:14px;overflow:hidden}.search-result-meta{color:var(--ink-soft);font-size:13px}.search-divider{text-align:center;color:var(--accent);margin-top:14px;font-size:10px}.cover-upload{align-items:flex-start;gap:14px;display:flex}.cover-mini{aspect-ratio:2/3;text-align:center;width:86px;color:var(--ink-soft);background:var(--paper-deep);border:2px solid var(--ink);box-shadow:none;border-radius:0;flex:none;justify-content:center;align-items:center;padding:8px;font-size:11.5px;font-style:normal;display:flex;position:relative;overflow:hidden}.cover-mini img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover-mini-busy{color:var(--ink);flex-direction:column;align-items:center;gap:10px;font-weight:600;display:flex}.cover-fetch-note{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.cover-fetch-skip{font:inherit;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0;font-weight:700}.cover-upload-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.sense-add,.cover-upload-actions .btn{box-shadow:2px 2px 0 var(--ink)}.dialog--cropper{max-width:520px}.cropper-hint{color:var(--ink-soft);margin:-12px 0 14px;font-size:14px}.cropper-stage{border:2px solid var(--ink);background:var(--ink);border-radius:0;height:380px;position:relative;overflow:hidden}.cropper-zoom{color:var(--ink-soft);align-items:center;gap:10px;margin-top:14px;font-size:10.5px;display:flex}.cropper-zoom input{accent-color:var(--accent);flex:1}.datepicker{position:relative}.datepicker-toggle{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:8px 11px;font-size:15px;font-weight:500;display:flex}.datepicker-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.datepicker-placeholder{color:var(--ink-soft)}.datepicker-caret{color:var(--ink-soft);font-size:11px}.datepicker-pop{z-index:20;border:3px solid var(--ink);width:268px;box-shadow:8px 8px 0 var(--ink);background:#fff;border-radius:0;padding:12px;position:absolute;top:calc(100% + 6px);left:0}.datepicker-head{align-items:center;gap:2px;margin-bottom:8px;display:flex}.datepicker-month{text-align:center;font-size:15px;font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;flex:1;font-weight:900}.datepicker-nav{cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:0;padding:2px 8px;font-size:15px;line-height:1.3}.datepicker-nav:hover,.datepicker-day:hover{background:var(--paper-deep)}.datepicker-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-wd,.datepicker-link{font-size:10px}.datepicker-wd{color:var(--ink-soft);padding:3px 0}.datepicker-day{cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:0;padding:5px 0;font-size:13.5px;font-weight:500}.datepicker-day--today{box-shadow:inset 0 0 0 2px var(--accent)}.datepicker-day--selected,.datepicker-day--selected:hover{background:var(--ink);color:#fff}.datepicker-foot{border-top:2px solid var(--ink);justify-content:space-between;margin-top:9px;padding-top:9px;display:flex}.datepicker-link{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0}.datepicker-link:hover{text-decoration:underline}.overlay--top{z-index:60}.dialog--confirm{text-align:center;max-width:420px}.confirm-ornament{color:var(--accent);margin-bottom:4px;font-size:19px}.confirm-title{margin-bottom:8px;font-size:25px}.confirm-message{color:var(--ink-soft)}.dialog--confirm .dialog-actions{justify-content:center}.dialog--finish{text-align:left;flex-direction:column;max-width:460px;min-height:580px;display:flex}.dialog--finish .confirm-ornament{display:none}.finish-fields{flex-direction:column;gap:16px;margin:18px 0 4px;display:flex}.finish-fields .field>span{margin-bottom:2px;display:block}.dialog--finish .dialog-actions{justify-content:center;margin-top:auto;padding-top:8px}.lookup-panel{margin-bottom:30px;padding:20px}.vocab-search-toggle{width:39px;height:auto;box-shadow:2px 2px 0 var(--ink);justify-content:center;align-self:stretch;align-items:center;margin-right:auto;padding:0;display:inline-flex}.vocab-search{flex:260px;min-width:0;display:flex;position:relative}.vocab-search .search{flex:1;min-width:0;height:39px;padding-top:0;padding-bottom:0;padding-right:42px}.vocab-search-close{cursor:pointer;width:30px;height:30px;color:var(--ink-soft);background:0 0;border:none;padding:0;font-size:14px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.vocab-search-close:hover{color:var(--ink)}@media (width<=640px){.vocab-filters .vocab-search{flex-basis:100%;order:-1}.vocab-filters .vocab-search .search{height:42px}.vocab-filters .vocab-sort{flex:1 1 0}.vocab-filters .vocab-search-toggle{order:2;width:42px;margin-right:0}}.hint{background:var(--paper-deep);border:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;margin-top:20px;padding:18px 20px;display:flex}.hint-body{flex:420px;min-width:0}.hint-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;margin-bottom:6px;font-size:20px;font-weight:900}.hint-text{max-width:70ch;font-size:14.5px}.hint-dismiss{flex:none}.lookup-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lookup-result{border-top:3px solid var(--ink);margin-top:18px;padding-top:14px;position:relative}.lookup-headword{flex-wrap:wrap;align-items:baseline;gap:10px;padding-right:40px;display:flex}.lookup-close{top:14px;right:0}.lookup-word,.vocab-word{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-weight:900}.lookup-word{font-size:26px;line-height:1.15}.lookup-phonetic{color:var(--ink-soft);font-size:14px}.sense-list{margin-top:6px;list-style:none}.sense{align-items:flex-start;gap:14px;padding:10px 0;display:flex}.sense-body{flex:1;min-width:0}.sense-pos{color:var(--accent);font-size:10.5px;display:inline-block}.sense-def{font-size:15px}.sense-example{color:var(--ink-soft);margin-top:2px;font-size:14px}.sense-syn{color:var(--ink-soft);margin-top:2px;font-size:13px}.sense-add{flex:none}.sense-add:disabled{border-color:var(--line);color:var(--ink-soft);cursor:default;background:0 0}.lookup-manual-link{cursor:pointer;font:inherit;letter-spacing:.01em;color:var(--accent);background:0 0;border:none;margin-top:8px;padding:0;font-size:11.5px;font-style:normal;font-weight:700}.lookup-manual-link:hover{text-decoration:underline}.manual-form{margin-top:12px}.manual-grid{grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:10px;display:grid}.manual-form input,.manual-form textarea{color:var(--ink);font:inherit;padding:8px 11px;font-size:15px;font-weight:500}.manual-form input:focus,.manual-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.manual-form textarea{resize:vertical}.manual-form .dialog-actions{margin-top:14px}.vocab-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;list-style:none;display:grid}.vocab-card{flex-direction:column;gap:6px;padding:18px 20px 14px;display:flex;position:relative}.vocab-headword{flex-wrap:wrap;align-items:baseline;gap:8px;padding-right:24px;display:flex}.vocab-word{font-size:21px;line-height:1.2}.vocab-def{font-size:14.5px}.vocab-meta{color:var(--ink-soft);margin-top:auto;padding-top:8px;font-size:12.5px}.vocab-grid .vocab-card{gap:0;height:236px}.vocab-card-body{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow:hidden}.vocab-card-body .vocab-headword{flex-wrap:nowrap;min-width:0}.vocab-card-body .vocab-headword>*,.vocab-card-body .sense-example,.vocab-card-body .sense-syn{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.vocab-card-body .vocab-word{flex:0 auto}.vocab-card-body .lookup-phonetic{flex:0 100 auto}.vocab-card-body .vocab-def{-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:none;display:-webkit-box;overflow:hidden}.vocab-card-body .vocab-meta{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:none;display:-webkit-box;overflow:hidden}.vocab-card--more .vocab-meta{padding-right:84px}.vocab-more{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;background:#fff;padding-left:10px;font-size:12.5px;font-weight:700;text-decoration-thickness:2px;position:absolute;bottom:14px;right:20px}.vocab-more:hover{color:var(--accent)}.vocab-delete{cursor:pointer;color:var(--ink-soft);opacity:.6;background:0 0;border:none;padding:4px;font-size:13px;position:absolute;top:10px;right:10px}.vocab-delete:hover{opacity:1;color:var(--danger)}@media (width<=640px){.manual-grid{grid-template-columns:1fr}}.page--notes{max-width:880px}.notes-breadcrumb{margin-bottom:18px}.notes-back,.notes-vocab-link{color:var(--accent);font-size:11.5px}.notes-back{text-decoration:none}.notes-back:hover{text-underline-offset:4px;text-decoration:underline}.notes-head{border-bottom:3px solid var(--ink);align-items:flex-start;gap:26px;margin-bottom:28px;padding-bottom:24px;display:flex}.notes-head-cover{flex:0 0 120px}.notes-head-body{flex:1;min-width:0}.notes-title,.notes-section-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;font-weight:900;line-height:.95}.notes-title{margin:4px 0 2px;font-size:clamp(28px,5vw,42px)}.notes-head-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.notes-meta-item{color:var(--ink-soft);font-size:13.5px}.notes-section{margin-bottom:36px}.notes-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.notes-section-title{flex:1;font-size:21px}.notes-save{color:var(--ink-soft);font-size:13px}.notes-save--error{color:var(--danger);font-style:normal}.notes-vocab-link{text-decoration:none}.notes-vocab-link:hover{text-decoration:underline}.notes-prose{font-size:15.5px;line-height:1.65}.notes-prose h1,.notes-prose h2,.notes-prose h3,.notes-prose h4{line-height:1.25;font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin:22px 0 8px;font-weight:900}.notes-prose h1:first-child,.notes-prose h2:first-child,.notes-prose h3:first-child,.notes-prose p:first-child{margin-top:0}.notes-prose h1{font-size:27px}.notes-prose h2{font-size:22px}.notes-prose h3{font-size:18px}.notes-prose p{margin:10px 0}.notes-prose ul,.notes-prose ol{margin:10px 0;padding-left:26px}.notes-prose li{margin:3px 0}.notes-prose blockquote{border-left:4px solid var(--accent);color:var(--ink);margin:14px 0;padding:4px 18px;font-style:normal;font-weight:500}.notes-prose code{background:var(--paper-deep);border-radius:0;padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em}.notes-prose pre{background:var(--paper-deep);border:2px solid var(--ink);border-radius:0;margin:14px 0;padding:12px 16px;overflow-x:auto}.notes-prose pre code{background:0 0;padding:0}.notes-prose img{border:2px solid var(--ink);max-width:100%;box-shadow:var(--hard);border-radius:0;margin:16px auto;display:block}.notes-prose hr{border:none;border-top:2px solid var(--ink);margin:22px 0}.notes-prose a{color:var(--accent)}.notes-prose--editing{--notes-pad-x:20px;--notes-pad-y:20px;padding:var(--notes-pad-y) var(--notes-pad-x);margin-inline:calc(-1 * (var(--notes-pad-x) + var(--notes-edge)));cursor:text;--notes-edge:2px;border:var(--notes-edge) solid var(--ink);box-shadow:var(--hard);background:#fff;border-radius:0}.notes-prose--blank{display:none}.notes-blank{color:var(--ink-soft)}.notes-prose .ProseMirror{white-space:pre-wrap;outline:none}.notes-prose--editing .ProseMirror{min-height:320px}.notes-fmt{z-index:2;margin:calc(-1 * var(--notes-pad-y)) calc(-1 * var(--notes-pad-x)) 18px;padding:10px var(--notes-pad-x);background:inherit;border-bottom:var(--notes-edge) solid var(--line);border-radius:inherit;cursor:default;border-bottom-width:2px;border-bottom-right-radius:0;border-bottom-left-radius:0;position:sticky;top:0}.fmt-bar{flex-wrap:wrap;gap:8px;display:flex}.fmt-group,.fmt-btn--wide,.fmt-link-input{border:2px solid var(--ink);border-radius:0}.fmt-group{display:inline-flex;overflow:hidden}.fmt-btn{cursor:pointer;min-width:32px;font:inherit;font-variant:normal;color:var(--ink);background:0 0;border:none;padding:5px 10px;font-size:11px;font-weight:700;line-height:1.5}.fmt-btn:hover{background:var(--paper-deep)}.fmt-btn:focus-visible,.fmt-link-input:focus{outline-color:var(--accent)}.fmt-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fmt-btn--active,.fmt-btn--active:hover{background:var(--ink);color:var(--white)}.fmt-btn--bold{font-weight:700}.fmt-btn--italic{font-style:italic}.fmt-btn--strike{text-decoration:line-through}.fmt-btn--code{font-variant:normal;text-transform:none;letter-spacing:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.fmt-link{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.fmt-link-input{min-width:0;font:inherit;background:var(--white);color:var(--ink);flex:220px;padding:6px 10px;font-size:14px}.fmt-link-input:focus{outline:2px solid var(--accent);outline-offset:1px}.notes-prose .callout{border-left:3px solid var(--accent);border:2px solid var(--ink);background:var(--paper-deep);border-left-width:8px;border-radius:0;margin:16px 0;padding:12px 16px}.notes-prose .callout:before{content:"Note";color:var(--ink);margin-bottom:4px;font-size:10.5px;display:block}.notes-prose .callout[data-callout=tip]:before{content:"Tip"}.notes-prose .callout[data-callout=important]:before{content:"Important"}.notes-prose .callout[data-callout=warning]:before{content:"Warning"}.notes-prose .callout[data-callout=caution]:before{content:"Caution"}.notes-prose .callout[data-callout=warning],.notes-prose .callout[data-callout=caution]{border-left-color:var(--danger);border-color:var(--accent);background:var(--paper-deep)}.notes-prose .callout[data-callout=warning]:before,.notes-prose .callout[data-callout=caution]:before{color:var(--accent)}.notes-prose .callout>:first-of-type{margin-top:0}.notes-prose .callout>:last-child{margin-bottom:0}.notes-prose .ProseMirror .is-editor-empty:before{content:attr(data-placeholder);float:left;pointer-events:none;height:0;color:var(--ink-soft);font-style:italic}.notes-prose .ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--accent);outline-offset:2px;outline-color:var(--accent)}.notes-prose table{border-collapse:collapse;margin:14px 0;font-size:14.5px}.notes-prose th,.notes-prose td{border:2px solid var(--ink);padding:6px 12px}.notes-prose th{color:var(--accent);font-size:10.5px}.vocab-book-link{color:inherit}.vocab-book-link:hover{color:var(--ink-deep)}@media (width<=640px){.notes-head{gap:18px}.notes-head-cover{flex-basis:90px}.notes-prose--editing{--notes-pad-x:16px;--notes-pad-y:16px}}.empty-note{text-align:center;color:var(--ink-soft);padding:60px 0}.colophon{text-align:center;letter-spacing:.04em;color:var(--ink);border-top:3px solid var(--ink);margin-top:56px;padding-top:14px;font-size:11px}@media (width<=640px){.detail-layout{flex-direction:column}.detail-cover{flex-basis:auto;max-width:190px;margin:0 auto}.book-form{grid-template-columns:1fr}}.search::placeholder{color:#9a968e}@media (hover:none){.btn:hover,.chip:hover{box-shadow:var(--hard);transform:none}.btn:active,.chip:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.cover-card:hover .cover-wrap{transform:none}.cover-card:hover .cover{box-shadow:var(--hard)}.cover-card:active .cover-wrap{transform:translate(2px,2px)}.cover-card:active .cover{box-shadow:2px 2px 0 var(--ink)}.ledger tbody tr:hover{background:0 0}.ledger tbody tr:active{background:var(--paper-deep)}}html{-webkit-text-size-adjust:100%}a,button,select,[role=tab]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.avatar{border:2px solid var(--ink);background:var(--paper);border-radius:50%;flex:none;display:inline-block;overflow:hidden}.avatar img,.avatar svg{object-fit:cover;width:100%;height:100%;display:block}.user-menu{z-index:45;position:relative}.user-menu-button{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;transition:transform .15s;display:block}.user-menu-button:hover{transform:translate(-1px,-1px)}.user-menu-button:hover .avatar{box-shadow:3px 3px 0 var(--ink)}.user-menu-button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.user-menu-panel{border:3px solid var(--ink);min-width:230px;box-shadow:var(--hard);background:#fff;flex-direction:column;display:flex;position:absolute;top:calc(100% + 10px);right:0}.user-menu-who{border-bottom:2px solid var(--hair);flex-direction:column;gap:2px;padding:12px 16px;display:flex}.user-menu-name{font-size:15px;font-weight:700}.user-menu-email{color:var(--ink-soft);overflow-wrap:anywhere;font-size:13px}.user-menu-item{width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:11px 16px;font-size:14px;font-weight:700;text-decoration:none;display:block}.user-menu-item:hover{color:var(--accent)}.user-menu-item+.user-menu-item{border-top:2px solid var(--hair)}.auth-card{max-width:440px;margin:56px auto 0}.auth-lede,.settings-lede{color:var(--ink-soft);margin-bottom:20px;font-size:15px;line-height:1.5}.auth-form{grid-template-columns:1fr}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:22px;font-size:14px;font-weight:600;display:flex}.auth-links a{color:var(--ink);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.auth-links a:hover{color:var(--accent)}.auth-legal{justify-content:center;gap:18px;max-width:440px;margin:36px auto 0;font-size:13px;display:flex}.auth-legal a,.auth-consent a{color:var(--ink-soft);-webkit-text-decoration-color:var(--hair);-webkit-text-decoration-color:var(--hair);-webkit-text-decoration-color:var(--hair);text-decoration-color:var(--hair);text-underline-offset:3px}.auth-legal a:hover,.auth-consent a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.auth-consent{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}.checkline--wrap{align-items:flex-start;line-height:1.45}.checkline--wrap input{flex:none;margin-top:2px}.auth-command{background:var(--ink);color:#fff;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 18px;padding:12px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.settings{gap:40px;max-width:720px;padding-top:36px;display:grid}.settings-tabs{flex-wrap:wrap;gap:8px;display:flex}.settings-panel{gap:40px;display:grid}.settings-panel[hidden]{display:none}.settings-section{border-top:3px solid var(--ink);padding-top:18px}.settings-section:first-child{border-top:0;padding-top:0}.settings-section--danger{border-top-color:var(--danger)}.settings-section--danger .form-heading{color:var(--danger)}.settings-section .form-heading{margin-bottom:10px}.settings-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.profile{align-items:center;gap:26px;display:flex}.profile-body{min-width:0}.profile-name{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:26px;line-height:1.1}.profile-email{color:var(--ink-soft);overflow-wrap:anywhere;margin:4px 0 14px;font-size:15px}.csv-import{border-top:2px solid var(--hair);margin-top:32px;padding-top:22px}.settings-subheading{margin-bottom:8px;font-size:17px;font-weight:800}.csv-preview{border:2px solid var(--ink);box-shadow:var(--hard);background:#fff;margin-top:18px;padding:18px 20px}.csv-preview-title{margin-bottom:8px;font-size:16px;font-weight:800}.csv-preview ul{margin:0 0 16px;padding-left:20px;font-size:15px;line-height:1.6}.csv-preview .settings-note{margin:0 0 14px}.csv-preview .settings-lede{margin-bottom:14px}.settings-version{color:var(--ink-soft);margin-top:48px;font-size:13px;font-weight:600}.settings-password{max-width:520px}.settings-features{flex-direction:column;gap:10px;display:flex}.settings-note{margin-top:12px;font-size:14.5px;font-weight:500}.settings-note--error{color:var(--danger)}@media (width<=640px){.page{padding:24px max(18px, env(safe-area-inset-right)) calc(96px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}.masthead-eyebrow{letter-spacing:.12em}.appbar-inner{padding:10px max(18px, env(safe-area-inset-right)) 10px max(18px, env(safe-area-inset-left))}.user-menu{margin-left:auto}.reading-row{grid-template-columns:minmax(0,1fr) 44px;gap:6px 12px}.reading-row .progress-bar{grid-area:2/1/auto/-1}.reading-meta{grid-column:1/-1}.profile{flex-direction:column;align-items:flex-start;gap:16px}.appbar-nav{z-index:40;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-top:3px solid var(--ink);background:#fff;grid-template-columns:repeat(3,1fr);gap:0;margin:0;font-size:14px;display:grid;position:fixed;bottom:0;left:0;right:0}.appbar-link{justify-content:center;align-items:center;min-height:54px;display:flex}.appbar-link+.appbar-link{border-left:2px solid var(--ink)}.appbar-link--active,.appbar-link--active:hover{background:var(--accent);color:#fff}.search,.sort-select,.book-form input,.book-form select,.book-form textarea,.manual-form input,.manual-form textarea,.search-row input{font-size:16px}.search{flex-basis:100%;min-width:0}.sort-label{flex:100%;min-width:0}.sort-select{flex:1;min-width:0}.toolbar-row .view-toggle{flex:1}.view-btn{flex:1;padding:12px 10px}.toolbar-row .btn--primary{padding:12px 16px}.chip{padding:9px 14px}.chip--notes{margin-left:0}.overlay{align-items:flex-end;padding:0}.dialog{max-width:none;max-height:calc(100dvh - 32px);box-shadow:none;padding:30px 20px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain;border-width:3px 0 0;animation:.22s ease-out sheet-up}.dialog-close,.dialog-edit{width:40px;height:40px;top:10px}.dialog-close{right:12px}.dialog-edit{right:60px}.dialog-actions{flex-wrap:wrap}.cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.stat-tile-value{font-size:clamp(28px,9vw,44px)}.detail-cover{width:100%;max-width:160px}.ledger,.ledger tbody,.ledger tfoot,.ledger tfoot tr,.ledger tfoot td{display:block}.ledger thead{display:none}.ledger tbody tr{border-bottom:1px solid var(--hair);grid-template-columns:1fr auto;align-items:center;column-gap:12px;padding:12px 14px;display:grid}.ledger tbody td{white-space:normal;border:none;padding:0}.ledger tbody td:nth-child(3),.ledger tbody td:nth-child(4),.ledger tbody td:nth-child(6){display:none}.ledger tbody td:nth-child(2){color:var(--ink-soft);grid-row:2;font-size:13px}.ledger tbody td:nth-child(5){grid-area:1/2/span 2}.vocab-delete{width:40px;height:40px;font-size:15px;top:4px;right:4px}.notes-back{padding:12px 0;font-size:13px;display:inline-block}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}@media (prefers-reduced-motion:reduce){.dialog{animation:none}}.legal-title{font-size:clamp(36px,6.5vw,68px)}.legal-body{max-width:720px;color:var(--ink);margin:40px 0 0;font-size:16px;line-height:1.65}.legal-body h2{border-top:3px solid var(--ink);font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;margin:44px 0 12px;padding-top:14px;font-size:24px;line-height:1.15}.legal-body h3{margin:28px 0 8px;font-size:17px;font-weight:800}.legal-body p,.legal-body ul,.legal-body ol{margin:0 0 14px}.legal-body ul,.legal-body ol{padding-left:22px}.legal-body li+li{margin-top:6px}.legal-body a{color:var(--ink);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.legal-body a:hover{color:var(--accent)}.legal-body table{border-collapse:collapse;width:100%;margin:8px 0 18px;font-size:14px}.legal-body th{text-align:left;border-bottom:2px solid var(--ink);padding:6px 10px 6px 0}.legal-body td{border-bottom:1px solid var(--hair);vertical-align:top;padding:7px 10px 7px 0}.legal-body blockquote{background:var(--paper-deep);border-left:4px solid var(--accent);margin:0 0 14px;padding:10px 14px}.legal-body code{font-size:.9em}.legal-back{border-top:2px solid var(--ink);max-width:720px;margin:44px 0 0;padding-top:16px;font-size:14px}.legal-back a{color:var(--ink);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.showcase{flex-direction:column;gap:56px;max-width:1120px;display:flex}.showcase-note,.showcase-top p{color:var(--ink-soft);font-size:14px;font-weight:600}.showcase-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.showcase-plate{text-align:center;border:3px solid var(--ink);outline:2px solid var(--ink);outline-offset:-14px;width:100%;max-width:640px;box-shadow:10px 10px 0 var(--ink);background:#fff;align-self:center;padding:40px 48px}.showcase-plate-eyebrow{letter-spacing:.3em;color:var(--accent);font-size:11px}.showcase-plate-name{font-family:var(--font-display), Georgia, serif;letter-spacing:-.045em;overflow-wrap:anywhere;margin:14px 0 6px;font-size:clamp(44px,7vw,64px);font-weight:900;line-height:.95}.showcase-plate-edition{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:22px}.showcase-stats{grid-template-columns:repeat(var(--tiles), minmax(0, 1fr));border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);display:grid}.showcase-stat{border-left:2px solid var(--ink);min-width:0;padding:20px 16px}.showcase-stat:first-child{border-left:0;padding-left:0}.showcase-stat-label{color:var(--ink-soft);margin-bottom:8px;font-size:11px}.showcase-stat-value{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:44px;font-weight:400;line-height:1}.showcase-stat-note{color:var(--ink-soft);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:13px;display:-webkit-box;overflow:hidden}.showcase-section{flex-direction:column;gap:18px;min-width:0;display:flex}.showcase-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.showcase-heading{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:32px;font-weight:400}.showcase-heading--ruled{border-top:3px solid var(--ink);padding-top:12px;font-size:28px}.showcase-section-note{color:var(--ink-soft);font-size:14px}.showcase-cover .cover{padding:12% 9%;container-type:inline-size}.showcase-cover .cover-topline{display:none}.showcase-cover .cover-title{margin:auto 0;font-size:max(9px,15cqw)}.showcase-cover .cover-author{font-size:max(5px,7cqw)}.showcase-months{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;list-style:none;display:grid}.showcase-month{border-top:3px solid var(--ink);flex-direction:column;gap:12px;min-height:220px;padding-top:10px;display:flex}.showcase-month--ahead{border-top-color:var(--hair)}.showcase-month--ahead .showcase-month-name{color:var(--ink-soft)}.showcase-month-name{font-size:11px}.showcase-month-books{flex-direction:column;gap:14px;display:flex}.showcase-month-empty{display:none}.showcase-pair{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;display:grid}.showcase-reading{flex-direction:column;gap:16px;list-style:none;display:flex}.showcase-reading li{align-items:center;gap:16px;display:flex}.showcase-cover--small{flex:none;width:64px}.showcase-reading-body{flex:1;min-width:0}.showcase-reading-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:19px}.showcase-reading-author{color:var(--ink-soft);margin:2px 0 10px;font-size:13px}.showcase-reading-progress{align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.showcase-reading-progress .progress-bar{flex:1}.showcase-favourites{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.showcase-empty{text-align:center;color:var(--ink-soft);font-size:17px}.showcase-cta{text-align:center;border-top:3px solid var(--ink);flex-direction:column;align-items:center;gap:18px;padding-top:44px;display:flex}.showcase-cta-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;overflow-wrap:anywhere;font-size:40px;font-weight:900;line-height:1}.showcase-cta-text{max-width:46ch;font-size:17px}.showcase-cta-button{padding:14px 22px;font-size:15px}.showcase-footer{border-top:3px solid var(--ink);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:18px;font-size:12px;font-weight:700;display:flex}.showcase-footer a{color:var(--ink-soft)}@media (width<=700px){.showcase{gap:40px;padding:24px 16px 64px}.showcase-plate{outline-offset:-10px;box-shadow:6px 6px 0 var(--ink);padding:26px 20px}.showcase-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase-stat{padding:14px 12px}.showcase-stat:nth-child(odd){border-left:0;padding-left:0}.showcase-stat:nth-child(n+3){border-top:2px solid var(--ink)}.showcase-stat-value{font-size:34px}.showcase-heading{font-size:28px}.showcase-months{flex-direction:column;gap:0;display:flex}.showcase-month{border-top-width:2px;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:12px;min-height:0;padding:12px 0;display:grid}.showcase-month-name{padding-top:2px}.showcase-month-books{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.showcase-month-empty{color:var(--hair);font-weight:700;display:block}.showcase-favourites{gap:10px}.showcase-cta-title{font-size:32px}}.showcase-dialog{max-width:520px}.showcase-dialog-lede{color:var(--ink-soft);margin:-8px 0 20px;font-size:14.5px}.showcase-dialog-fields{flex-direction:column;gap:18px;display:flex}.showcase-dialog-fields input,.showcase-dialog-fields select,.showcase-dialog-link input{font:inherit;color:var(--ink);padding:8px 11px;font-size:15px;font-weight:500}.showcase-dialog-include{border:0;margin:0;padding:0}.showcase-dialog-include .checkline input:disabled+span{color:var(--ink-soft)}.showcase-dialog-hint{color:var(--ink-soft);font-size:13px}.showcase-dialog-link{background:var(--paper);border:2px solid var(--ink);flex-direction:column;gap:8px;margin-top:22px;padding:16px;display:flex}.showcase-dialog-link-label{color:var(--accent);font-size:10px}.showcase-dialog-row{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.fraunces_328e9abe-module__Q65xMG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_328e9abe-module__Q65xMG__variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}.inter_fe8b9d92-module__LINzvG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_fe8b9d92-module__LINzvG__variable{--font-inter:"Inter", "Inter Fallback"}:root{--font-display:var(--font-fraunces);--font-body:var(--font-inter);--paper:#f4f2ec;--paper-deep:#e6e2d8;--ink:#111;--ink-soft:#6b6862;--accent:#ff3b1f;--yellow:#ffd400;--blue:#1a34d6;--hair:#d6d2c8;--white:#fff;--hard:4px 4px 0 var(--ink);--hard-lg:7px 7px 0 var(--ink);--hard-xl:12px 12px 0 var(--ink);--gutter:28px;--max:1240px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:76px}body{color:var(--ink);background-color:var(--paper);font-family:var(--font-body), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit}button{font-family:inherit}code{color:var(--accent);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em;font-weight:600}::selection{background:var(--accent);color:#fff}.sec-kicker,.badge,.stat-tile-label,.chart-sub,.detail-kicker,.detail-facts dt,.detail-notes-label,.field>span,.app-eyebrow,.ledger th,.drill-section-title,.sense-pos,.fmt-btn,.form-field>span{text-transform:uppercase;letter-spacing:.07em;font-weight:700}.topnav,.btn,.chip,.view-btn,.app-nav,.app-stats,.card-status,.notes-back,.notes-meta,.notes-save,.drill-more,.vocab-from,.search-note,.result-meta,.toast,.terminal-bar,.colophon,.topmenu summary,.detail-author,.win-url{letter-spacing:.01em;font-weight:700}.btn{border:2px solid var(--ink);background:var(--white);color:var(--ink);box-shadow:var(--hard);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:12.5px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:hover:not(.win-stage *){box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.btn:active:not(.win-stage *){box-shadow:0 0 0 var(--ink);transform:translate(4px,4px)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn--primary{background:var(--ink);color:var(--white)}.btn--gold{background:var(--accent);color:var(--white)}.btn--lg{box-shadow:6px 6px 0 var(--ink);padding:15px 26px;font-size:14px}.btn--lg:hover:not(.win-stage *){box-shadow:3px 3px 0 var(--ink);transform:translate(3px,3px)}.btn--sm{box-shadow:2px 2px 0 var(--ink);padding:7px 12px;font-size:11px}.btn--sm:hover:not(.win-stage *){box-shadow:0 0 0 var(--ink);transform:translate(2px,2px)}.topbar{z-index:50;background:var(--paper);border-bottom:3px solid var(--ink);position:sticky;top:0}.topbar-inner{max-width:var(--max);padding:12px var(--gutter);align-items:center;gap:28px;margin:0 auto;display:flex}.logo{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;cursor:pointer;transform-origin:0;align-items:center;gap:10px;font-size:22px;text-decoration:none;transition:transform .15s;display:inline-flex}.logo:hover{transform:scale(1.06)}.logo-mark{flex:none;width:auto;height:31px}.logo-ink{fill:var(--ink)}.logo-title{fill:#fff}.logo-outline{stroke:var(--ink)}.docs .logo-ink{fill:var(--doc-text)}.docs .logo-title{fill:var(--doc-bg)}.docs .logo-outline{stroke:var(--doc-text)}.topnav{gap:22px;margin-left:auto;font-size:14px;display:flex}.topnav a{text-decoration:none}.topnav a:hover{color:var(--accent)}.hero{max-width:var(--max);min-height:calc(85svh - 62px);padding:44px var(--gutter);text-align:center;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}.hero-mark{grid-template-columns:auto 1fr;align-items:center;font-size:clamp(42px,9vw,116px);animation:.8s cubic-bezier(.2,.8,.2,1) 3.05s both hm-room;display:inline-grid}.hero-mark-svg{width:auto;height:1.44em;display:block;overflow:visible}.hero-word{min-width:0;overflow:hidden}.hero-word span{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;white-space:nowrap;padding:.05em .08em .15em .32em;line-height:1;animation:.8s cubic-bezier(.2,.8,.2,1) 3.05s both hm-word;display:block}.hm-fall{animation:.5s both hm-fall}.hm-book1{animation-delay:.25s}.hm-book2{animation-delay:.6s}.hm-book3{animation-delay:.95s}.hm-orange{animation-delay:1.35s}.hm-b{animation-delay:2.33s}.hm-tilt{transform-box:fill-box;transform-origin:calc(100% + .75px) calc(100% + .75px);animation:.85s 2s both hm-tilt;transform:rotate(17deg)}.hero-lede{max-width:44ch;margin-top:28px;font-size:clamp(17px,1.7vw,21px);line-height:1.5}.hero .cta-row{justify-content:center;margin-top:32px}.sec.showcase{padding:0 0 72px}@keyframes hm-fall{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,.9,.45);transform:translateY(-32px)}15%{opacity:1}70%{animation-timing-function:ease-out;transform:translateY(0)}84%{animation-timing-function:ease-in;transform:translateY(-.9px)}to{opacity:1;transform:translateY(0)}}@keyframes hm-tilt{0%{animation-timing-function:cubic-bezier(.5,0,.9,.5);transform:rotate(0)}80%{animation-timing-function:ease-out;transform:rotate(17deg)}90%{animation-timing-function:ease-in;transform:rotate(15.6deg)}to{transform:rotate(17deg)}}@keyframes hm-room{0%{grid-template-columns:auto 0fr}}@keyframes hm-word{0%{opacity:0;transform:translate(.7em)}}.sec{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--max) - 2 * var(--gutter));border-bottom:3px solid var(--ink);margin:0 auto;padding:104px 0}:is(.sec:has(+.sec--ink),.sec--last){border-bottom:none}.sec-head{margin-bottom:24px}.sec-kicker{letter-spacing:.18em;align-items:center;gap:12px;font-size:14px;display:flex}.sec-n{background:var(--accent);color:var(--white);border:2px solid var(--ink);letter-spacing:.04em;padding:2px 7px}.sec-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.035em;text-wrap:balance;margin-top:14px;font-size:clamp(38px,5.4vw,72px);font-weight:900;line-height:1}.sec p{max-width:58ch;font-size:17px}.sec p+p{margin-top:14px}.sec--split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:64px;display:grid}.sec--flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.sec--flip .sec-copy{order:2}.ticks{border-top:3px solid var(--ink);margin-top:26px;list-style:none}.ticks li{border-bottom:2px solid var(--hair);padding:11px 0 11px 30px;font-weight:500;position:relative}.ticks li:before{content:"";background:var(--accent);border:2px solid var(--ink);width:12px;height:12px;position:absolute;top:17px;left:2px}.sec-copy--above{margin-bottom:44px}.sec-copy--above p{max-width:none}.sec--ink{background:var(--ink);width:100%;max-width:none;color:var(--white);padding-left:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));padding-right:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)))}.sec--ink .sec-n{border-color:var(--white)}.terminal{background:var(--ink);color:var(--white);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--accent)}.terminal-bar{background:var(--white);color:var(--ink);justify-content:space-between;align-items:center;padding:8px 8px 8px 14px;font-size:11px;display:flex}.terminal-copy{border:2px solid var(--ink);background:var(--yellow);letter-spacing:.07em;cursor:pointer;padding:4px 10px;font-size:11px;font-weight:700}.terminal-copy:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.terminal pre{padding:22px 20px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:15px;line-height:1.9;overflow-x:auto}.terminal-prompt{color:var(--accent)}.terminal-comment{color:#8d897f}.colophon{max-width:var(--max);padding:18px var(--gutter) 40px;border-top:3px solid var(--ink);letter-spacing:.16em;flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0 auto;font-size:11px;display:flex}.colophon a{text-decoration:none}.colophon a:hover,.topnav a[aria-current=page]{color:var(--accent)}.topbar-actions{gap:12px;display:flex}.docs .topbar-actions .btn{border-color:var(--doc-text);box-shadow:2px 2px 0 var(--doc-text)}.topmenu{margin-left:auto;display:none;position:relative}.topmenu summary{cursor:pointer;border:2px solid var(--ink);background:var(--white);box-shadow:2px 2px 0 var(--ink);padding:6px 12px;font-size:12px;list-style:none}.topmenu summary::-webkit-details-marker{display:none}.topmenu[open] summary{background:var(--ink);color:var(--white)}.topmenu-links{background:var(--white);min-width:210px;color:var(--ink);border:2px solid var(--ink);box-shadow:var(--hard);flex-direction:column;display:flex;position:absolute;top:calc(100% + 10px);right:0}.topmenu-links a{border-bottom:2px solid var(--hair);padding:12px 16px;font-weight:700;text-decoration:none}.topmenu-links a:last-child{border-bottom:0}.topmenu-links a:hover,.topmenu-links a[aria-current=page]{color:var(--accent)}.docs .topmenu summary{background:var(--doc-surface);color:var(--doc-text);border-color:var(--doc-text);box-shadow:2px 2px 0 var(--doc-text)}.cta-row{flex-wrap:wrap;gap:16px;margin-top:32px;display:flex}.btn:disabled{opacity:.6;cursor:progress}.page-lede a,.about-story a,.faq a,.why-item a{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;font-weight:700;text-decoration-thickness:2px}.feat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:40px;display:grid}.feat-card{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);flex-direction:column;padding:20px 22px 16px;display:flex}.feat-ask{display:flex}.feat-card--ask{background:var(--accent);color:var(--white);flex:1;text-decoration:none;transition:transform .1s,box-shadow .1s}.feat-card--ask:hover,.feat-card--ask:focus-visible{box-shadow:var(--hard-lg);transform:translate(-3px,-3px)}.feat-card--ask .feat-where{border-top-color:var(--white)}.feat-card h3{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:26px;line-height:1.05}.sec .feat-card p{flex:1;margin:4px 0 16px;font-size:15px;font-weight:500}.feat-where{letter-spacing:.01em;border-top:2px solid var(--ink);padding-top:8px;font-size:10.5px;font-weight:700}.why-grid{border-top:3px solid var(--white);grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px;margin-top:40px;display:grid}.why-item{border-bottom:2px solid #3a3a3a;padding:26px 0 30px}.why-item h3{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin-bottom:10px;font-size:25px;line-height:1.05}.why-icon{box-sizing:content-box;background:var(--accent);border:2px solid var(--white);width:32px;height:32px;box-shadow:4px 4px 0 var(--white);fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linecap:square;stroke-linejoin:miter;margin-bottom:22px;padding:10px;display:block}.sec .why-item p{color:#d9d5cc;font-size:16px}.why-item a{color:var(--white)}.why-item a:hover{color:var(--accent)}.closer{text-align:center;border-bottom:none;padding-top:0}.sec.closer p{margin:18px auto 0}.closer .cta-row{justify-content:center}.page-hero{max-width:var(--max);padding:64px var(--gutter) 48px;margin:0 auto}.page-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.045em;text-wrap:balance;max-width:15ch;font-size:clamp(40px,6.3vw,86px);font-weight:900;line-height:.92}.page-lede{max-width:58ch;margin-top:24px;font-size:clamp(17px,1.6vw,20px);font-weight:500}.page-hero--404{padding-bottom:140px}.about-grid{max-width:var(--max);padding:0 var(--gutter) 104px;grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:start;gap:64px;margin:0 auto;display:grid}.about-story p{max-width:62ch;margin-top:14px;font-size:18px}.about-story p:first-child{margin-top:0}.faq{max-width:var(--max);padding:0 var(--gutter) 104px;margin:0 auto}.faq>div{border-top:2px solid var(--ink);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;padding:24px 0;display:grid}.faq>div:first-child{border-top-width:3px}.faq dt{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:22px;line-height:1.15}.faq dd{max-width:58ch;font-size:17px}.legal{max-width:var(--max);padding:0 var(--gutter) 104px;margin:0 auto}.legal>*{max-width:68ch}.legal h2{border-top:3px solid var(--ink);font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;margin:44px 0 12px;padding-top:14px;font-size:24px;font-weight:400;line-height:1.15}.legal h2:first-child{margin-top:0}.legal h3{margin:28px 0 8px;font-size:17px;font-weight:700}.legal p,.legal ul{margin-bottom:14px;font-size:17px}.legal ul{padding-left:22px}.legal li+li{margin-top:6px}.legal a{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.legal a:hover{color:var(--accent)}.contact{max-width:var(--max);padding:0 var(--gutter) 104px;margin:0 auto}.form-card{background:var(--white);border:3px solid var(--ink);max-width:640px;box-shadow:var(--hard-lg);gap:20px;padding:28px;display:grid}.form-field{gap:8px;display:grid}.form-field>span{color:var(--accent);font-size:11px}.form-field input,.form-field textarea{font:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--ink);resize:vertical;border-radius:0;padding:11px 12px;font-size:16px}.form-field input:focus,.form-field textarea:focus{outline:3px solid var(--accent);outline-offset:0;background:var(--white)}.form-card .btn{justify-self:start}.form-error{color:var(--accent);font-weight:700}.form-sent h2{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:32px;line-height:1.05}.doc-github{margin-top:26px}.reveal{opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.2,.8,.2,1);transform:translateY(28px)}.reveal--in{opacity:1;transform:none}.win{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--hard-xl);min-width:0}.win-bar{background:var(--white);border-bottom:3px solid var(--ink);align-items:center;gap:14px;padding:8px 12px;display:flex}.win-dots{gap:6px;display:flex}.win-dots i{border:2px solid var(--ink);background:var(--white);width:11px;height:11px}.win-dots i:first-child{background:var(--accent)}.win-dots i:nth-child(2){background:var(--yellow)}.win-url{letter-spacing:.1em;border:2px solid var(--ink);background:var(--paper);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding:3px 10px;font-size:10.5px;overflow:hidden}.win-stage{-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.cursor{z-index:40;pointer-events:none;will-change:transform;transition:opacity .2s;position:absolute;top:0;left:0}.cursor-shape{filter:drop-shadow(1px 1px #1113);transition:transform .1s;display:block}.cursor-shape--arrow{transform-origin:2px 2px;margin:-2px 0 0 -2px}.cursor-shape--pointer{transform-origin:8px 1px;margin:-1px 0 0 -8px}.cursor-shape--text{margin:-12px 0 0 -5px}.cursor-shape--down{transform:scale(.92)}.cursor-click{pointer-events:none;border:1.5px solid #11111159;border-radius:50%;width:18px;height:18px;animation:.35s ease-out forwards click-ring;position:absolute;top:-9px;left:-9px}@keyframes click-ring{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.2)}}.caret{background:var(--accent);vertical-align:-.15em;width:2px;height:1.05em;margin-left:2px;animation:.9s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.ph{color:#9a968e}.win-stage,.win-stage *{cursor:default}.win-stage .btn[data-hover]{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.win-stage .btn--sm[data-hover]{box-shadow:0 0 0 var(--ink)}.card[data-hover] .card-wrap{transform:translate(-3px,-3px)}.card[data-hover] .cover{box-shadow:var(--hard-lg)}.ledger tbody tr[data-hover],.result[data-hover],.drill-book[data-hover],.hbar-row[data-hover],.fmt-btn[data-hover]{background:var(--paper-deep)}.hbar-row[data-hover] .hbar-fill,.vbar[data-hover] .vbar-fill{background:var(--ink)}.vbar .chart-tip{display:none}.vbar[data-hover] .chart-tip{display:block}.app-nav-link[data-hover],.app-nav-link--active[data-hover]{color:var(--accent)}.stars--input .star[data-hover]{transform:scale(1.2)}.fmt-btn--on[data-hover]{background:var(--ink)}.app{padding:22px 26px 26px;font-size:14px}.app-bar{border-bottom:3px solid var(--ink);align-items:center;gap:16px;margin:-22px -26px 18px;padding:9px 26px;display:flex}.app-bar-mark{width:auto;height:24px;display:block}.app-mast{border-bottom:3px solid var(--ink);padding-bottom:8px}.app-avatar{border:2px solid var(--ink);border-radius:50%;flex:none;width:30px;height:30px;overflow:hidden}.app-avatar svg{width:100%;height:100%;display:block}.app-eyebrow{color:var(--accent);letter-spacing:.22em;font-size:9.5px}.app-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.045em;margin:3px 0 5px;font-size:clamp(34px,5vw,58px);line-height:.88}.app-stats{letter-spacing:.06em;font-size:10.5px}.app-nav{gap:16px;margin-left:auto;font-size:11.5px;display:flex}.app-nav-link--active{color:var(--accent)}.app-toolbar{align-items:center;gap:14px;margin:16px 0 12px;display:flex}.app-search,.input{border:2px solid var(--ink);background:var(--white);white-space:nowrap;flex:1;align-items:center;min-width:0;min-height:38px;padding:7px 11px;font-size:14px;font-weight:500;display:flex;overflow:hidden}.app-search.is-focus,.input.is-focus{outline:3px solid var(--accent);outline-offset:0}.view-toggle{border:2px solid var(--ink);box-shadow:var(--hard);flex-shrink:0;display:flex}.view-btn{background:var(--white);padding:8px 13px;font-size:11px;transition:background .12s,color .12s}.view-btn+.view-btn{border-left:2px solid var(--ink)}.view-btn--active{background:var(--ink);color:var(--white)}.app-chips{border-bottom:3px solid var(--ink);flex-wrap:wrap;gap:8px;padding-bottom:14px;display:flex}.app-chips.is-hidden .chip,.app-toolbar.is-hidden>*{visibility:hidden}.app-chips.is-hidden{border-bottom-color:#0000}.app-body{position:relative}.app-view.app-view--page{height:auto;position:absolute;inset:0}.chip{border:2px solid var(--ink);background:var(--white);padding:5px 11px;font-size:10.5px;transition:background .12s,color .12s,transform 80ms}.chip--active{background:var(--ink);color:var(--white)}.app-view{height:492px;margin:0 -10px;padding:22px 10px 0;position:relative;overflow:hidden}.grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:26px 22px;display:grid}.card{animation:.35s both pop-in}.card-wrap{transition:transform .1s;position:relative}.card-caption{justify-content:center;min-height:16px;margin-top:8px;display:flex}.card-status{font-size:9.5px}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.cover{aspect-ratio:2/3;text-align:center;width:100%;color:var(--spine-ink);border:2px solid var(--ink);background-image:linear-gradient(180deg, var(--spine-bg), var(--spine-deep));box-shadow:var(--hard);flex-direction:column;justify-content:space-between;align-items:center;padding:14% 9%;transition:box-shadow .12s;display:flex;position:relative;overflow:hidden;container-type:inline-size}.cover-topline,.cover-author{letter-spacing:.1em;opacity:.85;font-size:clamp(5px,7cqw,9px);font-weight:700}.cover-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;-webkit-hyphens:auto;hyphens:auto;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:clamp(7px,12cqw,17px);line-height:1.05;display:-webkit-box;overflow:hidden}.cover--image{background:var(--paper-deep);padding:0}.cover--image img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.stars{gap:1px;font-size:17px;line-height:1;display:inline-flex}.stars--sm{font-size:12px}.star{color:#c9c5bb;transition:color .1s,transform .15s}.star--on{color:var(--accent)}.star--half{background:linear-gradient(90deg, var(--accent) 50%, #c9c5bb 50%);color:#0000;-webkit-background-clip:text;background-clip:text}.ledger-wrap{border:2px solid var(--ink);background:var(--white);box-shadow:var(--hard);overflow:hidden}.ledger{border-collapse:collapse;width:100%;font-size:13px}.ledger th{text-align:left;color:var(--accent);border-bottom:3px solid var(--ink);padding:11px 14px;font-size:10px}.ledger td{border-bottom:2px solid var(--hair);white-space:nowrap;padding:9px 14px;font-weight:500}.ledger tbody tr{animation:.3s both pop-in}.ledger-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em}.badge{border:2px solid var(--ink);padding:1px 7px;font-size:9.5px;display:inline-block}.badge--read{background:var(--accent);color:var(--white)}.badge--reading{background:var(--yellow)}.badge--to-read{background:var(--white)}.muted{color:var(--ink-soft)}.stat-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stat-tile{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);min-width:0;padding:12px 14px 10px}.stat-tile-label{color:var(--accent);font-size:9.5px}.stat-tile-value{font-family:var(--font-display), Georgia, serif;letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin-top:6px;font-size:clamp(26px,3.6vw,42px);line-height:1}.stats-charts{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;margin-top:18px;display:grid}.chart-card{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);min-width:0;padding:16px 18px 14px}.chart-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:17px}.chart-sub{color:var(--ink-soft);margin-bottom:14px;font-size:9.5px}.vbars{border-bottom:2px solid var(--ink);background-image:linear-gradient(var(--hair) 1px, transparent 1px);background-position:0 -1px;background-size:100% 25%;align-items:flex-end;gap:10px;height:290px;display:flex}.vbar{flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.vbar-fill{background:var(--accent);border:2px solid var(--ink);transform-origin:bottom;border-bottom:none;width:100%;transition:background .12s;animation:.7s cubic-bezier(.2,.9,.3,1) both grow-y}.vbar--active .vbar-fill{background:var(--ink)}.vbar-label{text-align:center;font-size:10.5px;font-weight:700;position:absolute;bottom:-22px;left:0;right:0}.chart-tip{background:var(--accent);color:var(--white);border:2px solid var(--ink);white-space:nowrap;z-index:3;padding:3px 8px;font-size:11px;font-weight:700;animation:.18s both pop-in;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.vbar .chart-tip{top:-34px;bottom:auto}.chart-card:has(.vbars){padding-bottom:32px}@keyframes grow-y{0%{transform:scaleY(0)}}.hbars{gap:9px;display:grid}.hbar-row{grid-template-columns:82px minmax(0,1fr) 26px;align-items:center;gap:10px;display:grid}.hbar-label{font-size:12px;font-weight:600}.hbar-track{height:18px}.hbar-fill{background:var(--accent);border:2px solid var(--ink);transform-origin:0;border-left:none;height:18px;animation:.7s cubic-bezier(.2,.9,.3,1) both grow-x;display:block}.hbar-count{text-align:right;font-size:12px;font-weight:700}@keyframes grow-x{0%{transform:scaleX(0)}}.win-stage .overlay{z-index:20;background:#11111180;justify-content:center;align-items:center;padding:24px;animation:.2s both fade;display:flex;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.dialog{background:var(--white);border:3px solid var(--ink);box-shadow:var(--hard-xl);grid-template-columns:180px minmax(0,1fr);gap:28px;width:min(680px,100%);padding:30px;animation:.3s cubic-bezier(.2,1.3,.4,1) both dialog-in;display:grid;position:relative}@keyframes dialog-in{0%{opacity:0;transform:translateY(22px)scale(.96)}}.dialog-close{border:2px solid var(--ink);background:var(--white);place-items:center;width:30px;height:30px;font-size:13px;display:grid;position:absolute;top:12px;right:12px}.detail-kicker{background:var(--accent);color:var(--white);letter-spacing:.12em;padding:3px 9px;font-size:10px;display:inline-block}.detail-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.035em;margin:10px 0 6px;font-size:38px;line-height:.92}.detail-author{margin-bottom:8px;font-size:11.5px}.detail-facts{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);grid-template-columns:repeat(4,auto);gap:8px 18px;margin:12px 0;padding:12px 0;display:grid}.detail-facts dt{color:var(--accent);font-size:9.5px}.detail-facts dd{font-size:13px;font-weight:600}.detail-notes-label{color:var(--accent);font-size:9.5px}.detail-notes{margin-top:3px;font-size:13.5px;font-weight:500}.dialog-actions{gap:12px;margin-top:16px;display:flex}.form{background:var(--white);min-height:492px;padding:24px 26px 26px;position:relative}.form-heading{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin-bottom:18px;font-size:30px;line-height:1}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span{color:var(--accent);font-size:9.5px}.search-note{color:var(--ink-soft);margin-top:14px;font-size:10.5px;animation:1s steps(2,end) infinite blink}.results{border:2px solid var(--ink);margin-top:10px;list-style:none}.result{grid-template-columns:32px 1fr;align-items:center;gap:12px;padding:8px 10px;animation:.25s both pop-in;display:grid}.result+.result{border-top:2px solid var(--hair)}.result-thumb .cover{box-shadow:none;border-width:1px;padding:10% 6%}.result-thumb .cover-topline,.result-thumb .cover-author{display:none}.result-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;display:block;overflow:hidden}.result-meta{color:var(--ink-soft);font-size:9.5px;display:block}.form-grid{grid-template-columns:130px minmax(0,1fr);gap:22px;margin-top:18px;animation:.3s both pop-in;display:grid}.form-cover{align-self:start;position:relative}.form-fields{gap:10px;display:grid}.form-fields .input{min-height:34px;padding:5px 10px;font-size:13.5px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.fill-in{animation:.5s both fill-flash}@keyframes fill-flash{0%{background:var(--yellow);opacity:0}40%{background:var(--yellow);opacity:1}to{background:0 0}}.field>.stars--input{color:inherit;letter-spacing:0;gap:3px;font-size:24px}.stars--input .star--on{animation:.25s both star-pop}@keyframes star-pop{50%{transform:scale(1.35)}}.form-actions{gap:12px;display:flex;position:absolute;bottom:26px;right:26px}.toast{background:var(--ink);color:var(--white);box-shadow:4px 4px 0 var(--accent);padding:8px 12px;font-size:11px;animation:.3s cubic-bezier(.2,1.3,.4,1) both dialog-in;position:absolute;bottom:30px;left:26px}.notes{background:var(--paper);flex-direction:column;min-height:540px;padding:22px 26px;display:flex}.notes-head{border-bottom:3px solid var(--ink);grid-template-columns:56px 1fr;align-items:end;gap:16px;padding-bottom:12px;display:grid}.notes-cover .cover{box-shadow:3px 3px 0 var(--ink);padding:10% 6%}.notes-cover .cover-topline,.notes-cover .cover-author{display:none}.notes-back{color:var(--accent);font-size:10px}.notes-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.04em;margin:3px 0 4px;font-size:36px;line-height:.95}.notes-meta{color:var(--ink-soft);font-size:10px}.fmt{flex-wrap:wrap;gap:8px;margin:14px 0 10px;display:flex}.fmt-group{border:2px solid var(--ink);background:var(--white);display:flex}.fmt-btn{text-align:center;min-width:32px;padding:4px 8px;font-size:11px;transition:background .12s,color .12s}.fmt-btn+.fmt-btn{border-left:2px solid var(--ink)}.fmt-btn--on{background:var(--ink);color:var(--white)}.prose{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);flex:1;min-height:300px;padding:20px 22px;font-size:15px;font-weight:500;position:relative}.prose>*+*{margin-top:10px}.prose h4{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:24px;font-weight:900;line-height:1}.prose blockquote{border-left:4px solid var(--accent);padding-left:14px}.prose strong{background:linear-gradient(#0000 60%,#ffd400b3 60%);font-weight:800}.prose-ph{color:#9a968e}.md-raw{color:var(--accent);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}.md-pop{animation:.3s both md-pop}@keyframes md-pop{0%{background-color:#ffd40099}}.pasted{animation:.35s cubic-bezier(.2,1.3,.4,1) both dialog-in}.sketch{background:var(--white);border:2px solid var(--ink);max-width:340px;height:118px;box-shadow:var(--hard);display:block;position:relative;overflow:hidden}.sketch svg{width:100%;height:100%;position:absolute;inset:0}.sketch-tag{background:var(--yellow);border:2px solid var(--ink);padding:1px 7px;font-size:12px;position:absolute;top:10px;left:30px}.pasted figcaption{color:var(--ink-soft);margin-top:10px;font-size:10.5px}.keycap{background:var(--ink);color:var(--white);box-shadow:4px 4px 0 var(--accent);padding:7px 14px;font-size:15px;font-weight:700;animation:.25s both dialog-in;position:absolute;bottom:18px;right:18px}.notes-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.notes-save{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;overflow:hidden}.notes-actions{gap:10px;display:flex}.app--stats{min-height:540px;position:relative}.dialog--drill{width:min(500px,100%);padding:24px 26px;display:block}.drill-sub{color:var(--ink-soft);margin:-6px 0 14px;font-size:12.5px}.drill-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin:8px 0 12px;font-size:30px;line-height:1}.drill-tiles{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.drill-tile{border:2px solid var(--ink);padding:6px 8px;font-size:11px;font-weight:600}.drill-tile b{font-family:var(--font-display), Georgia, serif;font-size:20px;font-weight:400;line-height:1.1;display:block}.drill-section-title{color:var(--accent);margin:10px 0 6px;font-size:10.5px}.drill-best{border:2px solid var(--accent);background:#ff3b1f12}.drill-book{grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.drill-thumb .cover{box-shadow:none;border-width:1px;padding:0}.drill-thumb .cover>span{display:none}.drill-book-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.02em;font-size:13px;line-height:1.1;display:block}.drill-book-meta{color:var(--ink-soft);font-size:11px;display:block}.drill-more{color:var(--ink-soft);padding:6px 8px;font-size:10px}.vocab{min-height:520px;padding:22px 24px 24px}.win--snippet .vocab{min-height:0}.win--snippet .lookup{min-height:280px}.btn--added{background:var(--ink);color:var(--white);box-shadow:2px 2px 0 var(--accent);animation:.35s cubic-bezier(.2,1.6,.4,1) added}@keyframes added{0%{transform:scale(.8)}}.lookup{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);min-height:262px;padding:16px 18px}.lookup-row{gap:10px;display:flex}.input--select{letter-spacing:.05em;flex:none;font-size:11px;font-weight:700}.senses{border-top:3px solid var(--ink);margin-top:14px;padding-top:10px}.lookup-word{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:24px;animation:.25s both pop-in}.lookup-phonetic{font-family:var(--font-body), sans-serif;text-transform:none;letter-spacing:0;color:var(--ink-soft);font-size:13px;font-weight:500}.sense{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:9px 0;animation:.25s both pop-in;display:grid}.sense+.sense{border-top:2px solid var(--hair)}.sense-pos{color:var(--accent);font-size:9.5px}.sense-def{font-size:13.5px;font-weight:600}.sense-example{color:var(--ink-soft);font-size:12.5px}.vocab-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:22px;display:grid}.vocab-card{background:var(--white);border:2px solid var(--ink);box-shadow:var(--hard);padding:12px 14px}.vocab-card--new{box-shadow:4px 4px 0 var(--accent);animation:.5s cubic-bezier(.2,1.3,.4,1) both vocab-in}@keyframes vocab-in{0%{opacity:0;transform:translateY(-30px)rotate(-3deg)}}.vocab-word{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:18px;line-height:1.1}.vocab-def{margin:4px 0 8px;font-size:13px;font-weight:500}.vocab-from{border-top:2px solid var(--ink);padding-top:6px;font-size:9.5px}.docs{--doc-bg:#111;--doc-surface:#1a1918;--doc-text:#f4f2ec;--doc-muted:#aaa69d;--doc-rule:#34322e;background:var(--doc-bg);color:var(--doc-text);min-height:100vh}.docs ::selection{background:var(--accent);color:#fff}.docs .topbar{background:var(--doc-bg);border-bottom-color:var(--accent)}.docs .btn--primary{background:var(--accent);border-color:var(--doc-text);color:#fff;box-shadow:4px 4px 0 var(--doc-text)}.doc-hero{max-width:var(--max);padding:64px var(--gutter) 48px;border-bottom:3px solid var(--doc-rule);margin:0 auto}.doc-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.045em;margin:0 0 20px;font-size:clamp(40px,6.3vw,83px);line-height:.92}.doc-lede{max-width:62ch;color:var(--doc-muted);font-size:19px}.doc-layout{max-width:var(--max);padding:0 var(--gutter);grid-template-columns:230px minmax(0,1fr);gap:56px;margin:0 auto;display:grid}.doc-side{padding-top:40px}.doc-toc-desktop{max-height:calc(100vh - 110px);padding-bottom:32px;position:sticky;top:90px;overflow-y:auto}.doc-toc-mobile{display:none}.doc-toc-group+.doc-toc-group{margin-top:26px}.doc-toc-title{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700}.doc-toc ul{border-left:2px solid var(--doc-rule);margin:0;padding:0;list-style:none}.doc-toc a{color:var(--doc-muted);border-left:2px solid #0000;margin-left:-2px;padding:4px 0 4px 14px;font-size:14px;font-weight:600;text-decoration:none;display:block}.doc-toc a:hover{color:var(--doc-text);border-left-color:var(--accent)}.doc-body{max-width:760px;padding:40px 0 96px;font-size:16.5px;line-height:1.7}.doc-group{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:56px 0 -8px;font-size:12px;font-weight:700}.doc-group:first-child{margin-top:0}.doc-section{padding-top:36px;scroll-margin-top:80px}.doc-section h2{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;border-bottom:3px solid var(--doc-text);margin-bottom:18px;padding-bottom:12px;font-size:32px;line-height:1.1}.doc-section h2 a{text-decoration:none}.doc-section h2 a:hover{color:var(--accent)}.doc-section h3{margin:28px 0 8px;font-size:18px;font-weight:800}.doc-section p,.doc-section ul,.doc-section dl,.doc-section .terminal,.doc-section .doc-table-wrap,.doc-section .doc-note{margin-bottom:18px}.doc-section ul{padding-left:20px}.doc-section li+li{margin-top:8px}.doc-section li::marker{color:var(--accent)}.doc-section a:not(h2 a){color:var(--doc-text);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:2px}.doc-section a:not(h2 a):hover{color:var(--accent)}.doc-section strong{color:#fff}.docs code{color:#ff6a4d}.docs kbd{border:2px solid var(--doc-muted);text-align:center;border-bottom-width:3px;min-width:1.6em;padding:0 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8em;font-weight:700;line-height:1.6;display:inline-block}.doc-steps{counter-reset:step;padding:0;list-style:none}.doc-steps>li{counter-increment:step;padding-left:52px;position:relative}.doc-steps>li+li{margin-top:30px}.doc-steps>li:before{content:counter(step);background:var(--accent);color:#fff;border:2px solid var(--doc-text);width:32px;height:32px;font-family:var(--font-display), Georgia, serif;place-items:center;font-size:16px;display:grid;position:absolute;top:0;left:0}.doc-steps>li>h3{margin-top:2px}.docs .terminal{border-color:var(--doc-text);box-shadow:6px 6px 0 var(--accent);background:#080808}.docs .terminal pre{padding:16px 18px;font-size:14px;line-height:1.8}.doc-note{background:var(--doc-surface);border-left:4px solid var(--accent);gap:14px;padding:14px 16px;font-size:15.5px;display:flex}.doc-note--warning{border-left-color:var(--yellow)}.doc-note-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);flex:none;padding-top:3px;font-size:11px;font-weight:700}.doc-note--warning .doc-note-label{color:var(--yellow)}.doc-table-wrap{border:2px solid var(--doc-rule);overflow-x:auto}.doc-table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.5}.doc-table th{text-align:left;background:var(--doc-surface);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;padding:10px 14px;font-size:11px;font-weight:700}.doc-table td{border-top:1px solid var(--doc-rule);vertical-align:top;padding:10px 14px}.doc-table td:first-child{white-space:nowrap}.doc-table--compact td:first-child{white-space:normal}.doc-faq>div{border-top:1px solid var(--doc-rule);padding:14px 0}.doc-faq>div:first-child{border-top:0;padding-top:0}.doc-faq>div:last-child{border-bottom:1px solid var(--doc-rule)}.doc-faq dt{color:#fff;margin-bottom:4px;font-weight:800}.doc-faq dd{color:var(--doc-muted);margin:0}.docs .colophon{border-top-color:var(--doc-rule)}.docs .colophon a{text-decoration:none}.docs .colophon a:hover{color:var(--accent)}@media (width<=960px){.topnav,.topbar-actions{display:none}.topmenu{display:block}}@media (width<=1080px){.sec--split,.sec--flip{grid-template-columns:minmax(0,1fr);gap:40px}.sec--flip .sec-copy{order:0}.feat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{grid-template-columns:minmax(0,1fr);gap:40px}.about-demo{order:-1}.faq>div{grid-template-columns:minmax(0,1fr);gap:8px}}@media (width<=760px){.doc-layout{grid-template-columns:minmax(0,1fr);gap:0}.doc-toc-desktop{display:none}.doc-toc-mobile{border:2px solid var(--doc-rule);padding:12px 16px;display:block}.doc-toc-mobile summary{cursor:pointer;font-weight:700}.doc-toc-mobile[open] summary{margin-bottom:14px}.doc-side{padding-top:24px}.doc-steps>li{padding-left:44px}.doc-section h2{font-size:27px}:root{--gutter:16px}.topbar-inner{justify-content:space-between}.why-grid,.feat-grid{grid-template-columns:minmax(0,1fr)}.form-card{padding:20px}.hero{min-height:0;padding-top:40px;padding-bottom:44px}.sec{padding-top:72px;padding-bottom:72px}.win{box-shadow:6px 6px 0 var(--ink)}.app,.form,.notes,.vocab{padding-left:14px;padding-right:14px}.hide-sm{display:none}.app-bar{gap:12px;margin:-22px -14px 16px;padding:8px 14px}.app-nav{gap:12px}.app-toolbar{flex-direction:column;align-items:stretch}.view-toggle{align-self:flex-start}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 14px}.app-view{height:520px}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stats-charts{grid-template-columns:minmax(0,1fr)}.dialog{grid-template-columns:minmax(0,1fr);padding:22px 18px}.dialog-cover{display:none}.detail-title{font-size:30px}.detail-facts{grid-template-columns:repeat(2,auto)}.form{min-height:560px}.form-grid{grid-template-columns:90px minmax(0,1fr);gap:16px}.lookup-row{flex-direction:column}.input--select{align-self:flex-start}.terminal pre{font-size:13px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}.cursor{display:none}.hero-mark,.hero-mark *{animation:none!important}}:root{--font-fraunces:"Fraunces", Georgia, serif;--font-inter:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--hair);border:1px solid var(--ink)}::-webkit-scrollbar-thumb:hover{background:var(--ink-soft)}.landing-root{width:100%;max-width:100%;margin:0 auto;overflow-x:hidden}.landing-root .topbar{background:var(--paper);border-bottom:2.5px solid var(--ink);z-index:50;width:100%;position:sticky;top:0}.landing-root .topbar-inner{justify-content:space-between;align-items:center;max-width:1160px;margin:0 auto;padding:12px 24px;display:flex}.landing-root .topnav{align-items:center;gap:22px;margin-left:auto;font-size:13.5px;display:flex}.landing-root .topnav a{color:var(--ink);font-weight:600;text-decoration:none;transition:color .15s}.landing-root .topnav a:hover{color:var(--accent)}.landing-root .hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:960px;min-height:auto;margin:0 auto;padding:44px 20px 36px;display:flex}.landing-root .sec{border-bottom:2px solid var(--hair);width:100%;max-width:1160px;margin:0 auto;padding:56px 24px}.landing-root .sec:last-of-type{border-bottom:none}.landing-root .sec-head{margin-bottom:16px}.landing-root .sec-kicker{letter-spacing:.14em;color:var(--ink);align-items:center;gap:8px;margin-bottom:6px;font-size:11.5px;font-weight:800;display:flex}.landing-root .sec-n{background:var(--accent);color:#fff;border:1.5px solid var(--ink);padding:2px 7px;font-size:10.5px;font-weight:800}.landing-root .sec-title{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;text-wrap:balance;color:var(--ink);margin-top:6px;margin-bottom:12px;font-size:clamp(24px,2.8vw,36px);font-weight:850;line-height:1.2}.landing-root .sec p{max-width:52ch;color:var(--ink-soft);font-size:15px;line-height:1.65}.landing-root .sec--split{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:48px;display:grid}.landing-root .sec--flip{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:48px;display:grid}.landing-root .sec--flip .sec-copy{order:2}.landing-root .win{background:var(--paper);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:0;width:100%;min-width:0}.landing-root .win-bar{background:var(--white);border-bottom:2px solid var(--ink);align-items:center;gap:10px;padding:8px 12px;display:flex}.landing-root .win-url{border:1.5px solid var(--ink);background:var(--paper);padding:3px 8px;font-size:11px}.landing-root .win-stage{padding:16px;overflow:hidden}@media (width<=1024px){.landing-root .sec--split,.landing-root .sec--flip{grid-template-columns:minmax(0,1fr);gap:36px}.landing-root .sec--flip .sec-copy{order:0}.landing-root .sec{padding:44px 20px}}@media (width<=768px){.landing-root .hero{padding:36px 16px 28px}.landing-root .sec{padding:36px 16px}.landing-root .topnav{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
