/* Codebookery: a printed reference book. Cream page, ink, one oxblood rule,
   moss for verified marks. Source Serif 4 is vendored under fonts/ (OFL 1.1);
   it carries tabular figures, which every entry table and the completion rule
   depend on. Small caps are the browser's synthesised ones: the latin subset
   ships no smcp table. */
@font-face{font-family:"Source Serif";font-style:normal;font-weight:200 900;font-display:swap;src:url("fonts/source-serif-4-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Source Serif";font-style:italic;font-weight:200 900;font-display:swap;src:url("fonts/source-serif-4-latin-wght-italic.woff2") format("woff2")}
:root{color-scheme:light;--ink:#14110f;--ink-2:#3a332d;--paper:#f6f1e7;--paper-2:#ece4d4;--card:#fffdf8;--line:#cec3ad;--rule:#7a1f1f;--accent:#7a1f1f;--accent-dark:#5c1616;--moss:#4d6b3c;--moss-soft:#e6ecdd;--gold:#a8823c;--text:#14110f;--muted:#5a534a;--shadow:0 10px 28px rgba(32,24,14,.12);--serif:"Source Serif",Georgia,"Times New Roman",serif;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
[data-theme="dark"]{color-scheme:dark;--ink:#f2ece0;--ink-2:#d8d0c1;--paper:#1a1714;--paper-2:#252119;--card:#221e1a;--line:#4c4438;--rule:#c96a60;--accent:#d97b70;--accent-dark:#eda398;--moss:#a8c48f;--moss-soft:#2c3626;--gold:#cfa763;--text:#f2ece0;--muted:#bdb4a5;--shadow:0 10px 28px rgba(0,0,0,.42)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);font-variant-numeric:tabular-nums;line-height:1.6}img,svg{max-width:100%}a{color:var(--ink);text-underline-offset:.2em}button,input,select,textarea{font:inherit}button,.button{min-height:44px}.skip-link{position:fixed;z-index:1000;top:.5rem;left:.5rem;background:var(--card);color:var(--text);padding:.75rem 1rem;transform:translateY(-180%);border:2px solid var(--accent)}.skip-link:focus{transform:none}.landing-header{min-height:74px;padding:.85rem clamp(1rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:800;letter-spacing:-.02em}.landing-header nav,.landing-footer nav{display:flex;align-items:center;gap:clamp(.7rem,2vw,1.8rem);flex-wrap:wrap}.landing-header nav>a:not(.button),.landing-footer a{text-decoration:none;font-size:.94rem}.button,.primary,.secondary,.quiet-button,.danger,.icon-button,.text-button{border:0;border-radius:6px;padding:.65rem 1rem;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.button,.primary{background:var(--ink);color:var(--paper)}.button:hover,.primary:hover{background:var(--ink-2)}.button.small{min-height:40px;padding:.45rem .9rem}.button.light{background:var(--ink);color:var(--card)}.secondary{background:var(--paper-2);color:var(--text);border:1px solid var(--line)}.quiet-button{background:transparent;color:inherit;border:1px solid var(--line)}.danger{background:#fbe5de;color:#7d2716;border:1px solid #d68570}.text-button{background:transparent;color:var(--ink);padding:.35rem}.icon-button{width:44px;padding:0;background:transparent;color:inherit;border:1px solid var(--line);font-size:1.2rem}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.hero-copy{max-width:720px}.eyebrow,.kicker{font-variant-caps:small-caps;letter-spacing:.12em;font-size:.82rem;font-weight:600;color:var(--rule);margin:0 0 .5rem;text-transform:lowercase}.hero h1{font:700 clamp(3rem,6.2vw,6.5rem)/.96 var(--serif);letter-spacing:-.055em;color:var(--ink);margin:.2rem 0 1.5rem;max-width:12ch}.lede{font-size:clamp(1.08rem,1.7vw,1.35rem);max-width:62ch;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin:2rem 0}.text-link{font-weight:750}.section-pad{padding:clamp(2.8rem,6vw,5rem) clamp(1rem,7vw,6rem)}.section-pad h2,.cta h2{font:600 clamp(1.6rem,2.6vw,2.15rem)/1.16 var(--serif);letter-spacing:-.015em;color:var(--ink);margin:.2rem 0 1rem;max-width:22ch}.editorial-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,9vw,10rem);align-items:start}.editorial-grid>div:first-child{position:sticky;top:2rem}.feature-stack article{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--line)}.feature-stack article:last-child{border-bottom:1px solid var(--line)}.feature-stack article>span{font:600 1.1rem var(--serif);font-variant-numeric:tabular-nums;color:var(--rule)}.feature-stack h3{font:600 1.2rem var(--serif);margin:0;color:var(--ink)}.feature-stack p{margin:.35rem 0;color:var(--muted)}.packet-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,9rem);align-items:center;background:var(--paper-2)}.packet-visual{min-height:410px;display:flex;align-items:center;justify-content:center;position:relative}.folder-tab{position:absolute;top:30px;left:8%;background:var(--rule);color:var(--card);padding:.6rem 1.1rem;border-radius:3px 3px 0 0;font-variant-caps:small-caps;font-weight:600;letter-spacing:.1em}.folder-paper{width:90%;min-height:270px;background:var(--card);border:1px solid var(--line);box-shadow:10px 10px 0 var(--paper-2),10px 10px 0 1px var(--line);padding:2.2rem;display:flex;flex-direction:column;gap:1rem}.folder-paper strong{font:600 1.9rem var(--serif);font-variant-numeric:tabular-nums;color:var(--ink)}.folder-paper span{border-bottom:1px solid var(--line);padding-bottom:.7rem}.boundary{background:var(--card);border-top:1px solid var(--line);text-align:left}.boundary>h2{max-width:26ch}.boundary-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:980px;margin:2rem 0 0;text-align:left;border-top:1px solid var(--line)}.boundary-grid article{padding:1.5rem 2rem 1.5rem 0}
.boundary-grid article+article{border-left:1px solid var(--line);padding-left:2rem}.boundary-grid h3{font:600 1.15rem var(--serif);font-variant-caps:small-caps;letter-spacing:.06em;color:var(--rule)}.boundary-grid li{margin:.6rem 0}.cta{text-align:left;background:var(--card);color:var(--text);border-top:2px solid var(--rule);padding:clamp(2.5rem,5vw,4rem) clamp(1rem,7vw,6rem)}.cta .eyebrow{color:var(--rule)}.cta h2{color:var(--ink);max-width:24ch}.micro{font-size:.8rem;opacity:.8;margin-top:1.5rem}.landing-footer{padding:3rem clamp(1rem,7vw,7rem);display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid var(--line)}.landing-footer>p{grid-column:1/-1;font-size:.8rem;color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
@media(max-width:850px){.hero,.editorial-grid,.packet-section{grid-template-columns:1fr}.hero{padding-bottom:2rem}.catalogue-demo{min-height:520px}.editorial-grid>div:first-child{position:static}.landing-header{align-items:flex-start}.landing-header nav{justify-content:flex-end}.landing-footer{grid-template-columns:1fr}.landing-footer>p{grid-column:auto}}
@media(max-width:560px){.landing-header{padding:.7rem 1rem}.brand span{font-size:.9rem}.landing-header nav>a:not(.button){display:none}.hero{grid-template-columns:minmax(0,1fr);padding-top:3.5rem}.hero h1{font-size:clamp(2.8rem,15vw,4.5rem)}.catalogue-demo{min-height:480px}.boundary-grid{grid-template-columns:1fr}.folder-paper{padding:2rem 1.25rem}.folder-paper strong{font-size:2rem}.landing-footer nav{display:grid;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(forced-colors:active){.button,.primary,}

/* Very wide screens: keep running text to a readable measure. */
@media(min-width:1600px){main p,main li,main dd{max-width:78ch}}

/* Phone touch targets: navigation, footer, brand and disclosure controls stay 44 px. */
@media(max-width:760px){
nav a,footer a,:is(a,button):is(.brand,.wordmark,.logo,.desk-brand,.app-brand){min-height:44px;min-width:44px;display:inline-flex;align-items:center}
:is(a,button):is(.text-link,.arrow-link,.ink-link,.boundary-link,.small-cta,.plain,.skip,.skip-link,.button,.launch,.cta):not(p *,li *,small *,dd *){min-height:44px;display:inline-flex;align-items:center}
summary{min-height:44px;align-content:center}
}

/* --- the spread: the landing hero is a page of the printed dictionary --- */
.hero{padding:clamp(2rem,5vw,4rem) clamp(1rem,6vw,5rem) clamp(2rem,4vw,3rem);display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.hero-copy{max-width:46ch;padding-top:.6rem}
.hero h1{font:600 clamp(1.9rem,3.2vw,2.6rem)/1.12 var(--serif);letter-spacing:-.016em;color:var(--ink);margin:0 0 .7rem;max-width:20ch}
.hero .lede{max-width:52ch;margin:0;font-size:1.05rem;color:var(--muted)}
.hero-actions{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap;margin:1.4rem 0 0}
.privacy-line{max-width:52ch;margin:.9rem 0 0;color:var(--muted);font-size:.9rem}
.spread{position:relative;margin:0;padding:clamp(1.1rem,2.2vw,1.8rem) clamp(2.6rem,4vw,3.4rem) clamp(1.1rem,2.2vw,1.6rem) clamp(1.1rem,2.2vw,1.8rem);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}

.spread__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--rule)}
.spread__title{font:600 .82rem/1.4 var(--serif);font-variant-caps:small-caps;letter-spacing:.1em;color:var(--rule)}
.spread__folio{font:400 .78rem/1.4 var(--serif);font-variant-numeric:tabular-nums;color:var(--muted)}
.spread__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(1.4rem,3vw,2.6rem)}
.spread__col+.spread__col{padding-left:clamp(1.4rem,3vw,2.6rem);margin-left:calc(-1 * clamp(1.4rem,3vw,2.6rem) / 2);border-left:1px solid var(--line)}
.spread__col{min-width:0}
.entry{padding:.85rem 0;border-bottom:1px solid var(--line)}
.spread__col>.entry:last-child{border-bottom:0}
.entry__word{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0 0 .25rem;font:600 1.02rem/1.3 var(--serif);color:var(--ink);overflow-wrap:anywhere}
.entry__type{font:400 .78rem/1.3 var(--serif);font-variant-caps:small-caps;letter-spacing:.08em;color:var(--muted)}
.entry__def{margin:0;font-size:.9rem;line-height:1.5;color:var(--text)}
.senses{margin:.45rem 0 0;padding-left:1.15rem;font-size:.85rem;line-height:1.45;color:var(--muted)}
.senses li{margin:.2rem 0}
.senses b{color:var(--text);font-family:var(--mono);font-size:.8em;font-weight:600}
.senses--missing{list-style:lower-roman}
.entry__mark{margin:.45rem 0 0;font:400 .74rem/1.3 var(--serif);font-variant-caps:small-caps;letter-spacing:.08em}
.entry__mark--verified{color:var(--moss)}
.entry__mark--verified::before{content:"\2713\00a0"}
.entry__mark--open{color:var(--rule)}
.thumb-index{position:absolute;top:3.2rem;right:0;display:flex;flex-direction:column;gap:.28rem}
.thumb-index a{display:grid;place-items:center;width:2rem;min-height:44px;border:1px solid var(--line);border-right:0;border-radius:3px 0 0 3px;background:var(--paper-2);color:var(--muted);font:600 .82rem/1 var(--serif);text-decoration:none}
.thumb-index a:hover{color:var(--rule);background:var(--paper)}
.thumb-index a.is-current{color:var(--card);background:var(--rule);border-color:var(--rule)}
.spread figcaption{margin-top:.9rem;padding-top:.6rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;font-style:italic}
.contents-rule{padding:0 clamp(1rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem)}
.contents-rule ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:2px solid var(--rule);border-bottom:1px solid var(--line)}
.contents-rule li{display:flex;align-items:baseline;gap:.6rem;padding:.75rem 1rem .75rem 0;font:600 .98rem/1.3 var(--serif)}
.contents-rule li+li{border-left:1px solid var(--line);padding-left:1rem}
.contents-rule span{color:var(--rule);font-variant-numeric:tabular-nums;font-weight:600}
@media(max-width:1080px){
 .hero{grid-template-columns:1fr}
 .hero-copy{max-width:62ch}
}
@media(max-width:720px){
 .spread{padding-right:clamp(1.1rem,4vw,1.8rem)}
 .spread::after{display:none}
 .spread__cols{grid-template-columns:1fr}
 .spread__col>.entry:last-child{border-bottom:1px solid var(--line)}
 .spread__cols>.spread__col:last-child>.entry:last-child{border-bottom:0}
 .spread__col+.spread__col{padding-left:0;margin-left:0;border-left:0;border-top:1px solid var(--line)}
 .thumb-index{position:static;flex-direction:row;flex-wrap:wrap;margin-top:.9rem}
 .thumb-index a{min-width:44px;border-right:1px solid var(--line);border-radius:3px}
 .contents-rule ol{grid-template-columns:1fr 1fr}
 .contents-rule li+li{border-left:0}
 .contents-rule li:nth-child(n+2){border-top:1px solid var(--line)}
 .contents-rule li:nth-child(2){border-top:0}
}

@media(max-width:760px),(pointer:coarse){.button.small,.docs-header .button{min-height:44px}}

/* Phone menu: brand and Menu in one row; the nav opens as a panel under the header (ui/site-menu.mjs). */
.menu-toggle{display:none}
.landing-header .brand{padding-block:3px;margin-block:-3px}
.landing-header nav>a:not(.button){padding-block:10px;margin-block:-10px}
.landing-header .button.small{min-height:44px}
@media(max-width:560px){.landing-header{align-items:center}.landing-header .menu-toggle{display:inline-flex;align-items:center;min-height:44px;padding:.45rem .9rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--text);font:inherit;font-weight:750;cursor:pointer}.landing-header nav{display:none}.landing-header[data-menu-open] nav{display:flex;flex-direction:column;align-items:stretch;gap:.15rem;position:absolute;top:100%;right:1rem;min-width:14rem;padding:.6rem;border:1px solid var(--line);border-radius:6px;background:var(--card);box-shadow:var(--shadow)}.landing-header[data-menu-open] nav>a:not(.button){display:flex;align-items:center;min-height:44px;margin:0;padding:0 .5rem}}
