@font-face{font-family:'Instrument Serif';src:url('/assets/fonts/instrument-serif-latin.60c06664b5a95c7d.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/assets/fonts/dm-sans-latin.468d56b6b25b05b7.woff2') format('woff2');font-style:normal;font-weight:100 1000;font-display:swap}

:root{
  color-scheme:light;
  --ink:#282820;
  --soft:#45453c;
  --muted:#5f5f55;
  --accent:#565c3a;
  --cream:#faf8f5;
  --sand:#f0ede6;
  --field:#8a877b;
  --gutter:48px;
  --content:1224px;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --sans:'DM Sans',Arial,sans-serif;
  -webkit-text-size-adjust:100%;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block}
img{max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
a,button{touch-action:manipulation}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
[hidden]{display:none!important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{width:min(calc(100% - var(--gutter)*2),var(--content));margin-inline:auto}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;padding:12px 18px;border-radius:8px;background:var(--ink);color:#fff;font-size:14px;transform:translateY(calc(-100% - 20px))}
.skip-link:focus{transform:translateY(0)}

/* Masthead and footer */
.masthead{background:var(--cream)}
.site-header{display:flex;align-items:center;gap:8px 30px;min-height:104px;padding-block:22px}
.wordmark{display:inline-flex;align-items:center;gap:9px;flex:none;min-height:44px;text-decoration:none}
.brand-mark{flex:none;width:60px;height:40px;object-fit:contain}
.brand-name{display:flex;flex-direction:column;gap:1px;font-size:20px;font-weight:650;line-height:1.05;letter-spacing:-.65px;white-space:nowrap}
.site-nav{display:flex;align-items:center;gap:32px;margin-left:auto;font-size:15px}
.site-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--soft);text-decoration:none;white-space:nowrap}
.site-nav a:hover{color:var(--ink);text-decoration:underline}
.site-nav a[aria-current]{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.45em}
.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-block:36px 44px}
.site-footer .brand-mark{width:45px;height:30px}
.site-footer .brand-name{font-size:16px;letter-spacing:-.4px}

/* Shared type */
.display{font:400 clamp(60px,8.6vw,124px)/.94 var(--serif);letter-spacing:-.028em;text-wrap:balance;overflow-wrap:break-word}
.display-title{font-size:clamp(42px,5vw,72px);line-height:1;letter-spacing:-.022em}
.section-title{font:400 clamp(36px,4vw,52px)/1.02 var(--serif);letter-spacing:-.02em;text-wrap:balance}
.deck{max-width:40ch;color:var(--soft);font-size:clamp(18px,1.6vw,21px);line-height:1.45;text-wrap:pretty}
.note{color:var(--muted);font-size:15px;line-height:1.5}
.status{color:var(--muted);font-size:13px;font-weight:600;line-height:1.4;letter-spacing:.07em;text-transform:uppercase}
.status.is-published{color:var(--accent)}
.arrow{flex:none;width:20px;height:20px;transition:transform .25s ease}
.text-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:600;line-height:1.3;text-decoration:underline;text-underline-offset:.32em}
.text-link:hover .arrow{transform:translateX(4px)}
.text-link.is-back:hover .arrow{transform:rotate(180deg) translateX(4px)}
.is-back .arrow{transform:rotate(180deg)}
.frame{display:block;overflow:hidden;border-radius:18px;background:var(--sand)}
.frame img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.band{padding:clamp(28px,5vw,64px);border-radius:28px;background:var(--cream)}
.page-end{padding-bottom:88px}

/* Breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;color:var(--muted);font-size:14px;line-height:1.4}
.crumbs li{display:inline-flex;align-items:center;gap:10px;min-height:44px}
.crumbs li+li::before{content:'/';color:var(--field)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* Heroes */
.hero{background:var(--cream);border-radius:0 0 28px 28px}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:44px 64px;align-items:end;padding-block:56px 84px}
.hero-index .hero-grid{padding-block:20px 28px}
.hero-index .hero-aside{gap:10px;padding-bottom:0}
.hero-aside{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:10px}
.hero-outline .hero-grid{grid-template-columns:minmax(0,1fr)}
.hero-outline .hero-copy{max-width:1040px}
.hero-category .hero-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.hero-category .hero-grid,.hero-outline .hero-grid{align-items:stretch;padding-top:28px}
.hero-category .display{font-size:clamp(56px,7vw,100px)}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.hero-copy .crumbs{margin-bottom:40px}
.hero-copy .display{margin-top:auto}
.hero-copy .status{margin-top:auto;margin-bottom:18px}
.hero-copy .status+.display{margin-top:0}
.hero-copy .deck{margin-top:22px}
.hero-art{min-width:0;align-self:end}

/* Family anchors on category pages */
.family-nav{margin-top:30px}
.family-nav p{color:var(--muted);font-size:14px}
.family-nav ul{display:flex;flex-wrap:wrap;gap:0 30px}
.family-nav a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:18px;font-weight:600;text-decoration:underline;text-underline-offset:.32em}
.family-nav .arrow{width:18px;height:18px;transform:rotate(90deg)}
.family-nav a:hover .arrow{transform:rotate(90deg) translateX(3px)}

/* Category directory */
.depts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;padding-block:32px 56px}
.dept:nth-child(even){margin-top:40px}
.dept-link{display:block;text-decoration:none}
.dept-link img{transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.dept-link:hover img{transform:scale(1.025)}
.dept-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;align-items:center;padding:24px 4px 0}
.dept-name{font:400 clamp(38px,3.7vw,50px)/1 var(--serif);letter-spacing:-.02em}
.dept-link:hover .dept-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}
.dept-link:hover .arrow{transform:translateX(5px)}
.dept-desc{grid-column:1/-1;max-width:36ch;color:var(--soft);font-size:17px;line-height:1.45}
.dept-families{grid-column:1/-1;color:var(--muted);font-size:14px}

/* Featured published comparison */
.feature{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px 56px;align-items:center}
.feature-art img{width:100%;height:auto;aspect-ratio:1588/991;object-fit:contain}
.feature-copy{display:flex;flex-direction:column;align-items:flex-start;gap:16px;min-width:0}
.feature-title{font:400 clamp(40px,4.4vw,60px)/1 var(--serif);letter-spacing:-.022em;text-wrap:balance}
.feature:hover .feature-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}

/* Text-led guide entries */
.entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}
.entries-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}
.entry{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.entry-title{margin-top:12px;font:400 clamp(28px,2.7vw,34px)/1.08 var(--serif);letter-spacing:-.012em;text-wrap:balance}
.entry:hover .entry-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}
.entry-criteria{margin:14px 0 18px;color:var(--muted);font-size:15px;line-height:1.5}
.feature .entry-criteria{margin:0}
.stretch-link{margin-top:auto}
.stretch-link::after{content:'';position:absolute;inset:0}
.entry:hover .arrow,.feature:hover .arrow{transform:translateX(4px)}

/* Family groups */
.families{padding-block:24px 104px}
.family{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:36px 64px;padding-top:88px;scroll-margin-top:8px}
.family-head p{max-width:30ch;margin-top:14px;color:var(--soft)}
.more-title{margin-bottom:28px;color:var(--muted);font-size:15px;font-weight:600}
.more-list{display:flex;flex-wrap:wrap;gap:4px 44px}
.more-list a{display:inline-flex;align-items:center;min-height:52px;font:400 clamp(32px,3.4vw,44px)/1.1 var(--serif);letter-spacing:-.015em;text-decoration:none}
.more-list a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}
.band .section-title{margin-bottom:44px}

/* Guide index */
.filters{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,280px) auto;gap:20px;align-items:end}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label{font-size:14px;font-weight:600;line-height:1.4}
.field input,.field select{-webkit-appearance:none;appearance:none;width:100%;height:52px;padding:0 16px;border:1px solid var(--field);border-radius:12px;background-color:#fff;font-size:16px}
.field select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5.5 8 4.5 4.5L14.5 8' fill='none' stroke='%23282820' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
.field input::placeholder{color:var(--muted);opacity:1}
.field input:hover,.field select:hover{border-color:var(--ink)}
.field input:focus-visible,.field select:focus-visible{outline-offset:2px}
.text-button{min-height:52px;padding:0 6px;border:0;border-radius:6px;background:none;font-size:15px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.32em;cursor:pointer;white-space:nowrap}
.text-button:hover{color:var(--accent)}
.guides{padding-block:56px 104px}
.guide-count{margin-bottom:20px;color:var(--muted);font-size:15px}
.guide-empty{padding-block:48px;font:400 clamp(28px,3vw,36px)/1.15 var(--serif)}
.guide-list{margin-inline:-24px}
.guide-link{display:grid;grid-template-columns:minmax(0,1fr) 230px 104px 20px;gap:8px 28px;align-items:center;min-height:72px;padding:16px 24px;border-radius:16px;text-decoration:none;transition:background-color .2s ease}
.guide-link:hover{background:var(--cream)}
.guide-link:hover .guide-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}
.guide-link:hover .arrow{transform:translateX(4px)}
.guide-link:focus-visible{outline-offset:-2px}
.guide-title{font:400 clamp(26px,2.6vw,32px)/1.12 var(--serif);letter-spacing:-.012em;text-wrap:balance}
.guide-meta{color:var(--soft);font-size:15px;line-height:1.4}
.guide-meta span{color:var(--muted)}

/* Planned outline */
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:36px 64px;padding-block:96px}
.criteria{display:grid;gap:14px;margin-bottom:44px}
.criteria li{font:400 clamp(30px,3.5vw,46px)/1.08 var(--serif);letter-spacing:-.018em;text-wrap:balance}

@media(max-width:1199px){
  :root{--gutter:36px}
  .hero-grid,.family,.split{column-gap:48px}
  .depts{column-gap:40px}
  .dept:nth-child(even){margin-top:32px}
  .entries{gap:44px}
  .entries-3{gap:36px}
  .guide-link{grid-template-columns:minmax(0,1fr) 200px 96px 20px;column-gap:22px}
}
@media(max-width:1023px){
  :root{--gutter:28px}
  .site-header{min-height:96px;padding-block:20px}
  .hero-grid,.hero-category .hero-grid{grid-template-columns:minmax(0,1fr);padding-block:36px 60px}
  .hero-category .hero-grid,.hero-outline .hero-grid{padding-top:16px}
  .hero-copy .crumbs{margin-bottom:28px}
  .hero-aside{padding-bottom:0}
  .filters{grid-template-columns:minmax(0,1fr) minmax(0,240px) auto}
  .depts{padding-block:72px 56px}
  .feature{grid-template-columns:minmax(0,1fr)}
  .family,.split{grid-template-columns:minmax(0,1fr)}
  .family{padding-top:72px}
  .families{padding-bottom:80px}
  .split{padding-block:72px}
  .entries-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px}
  .page-end{padding-bottom:64px}
}
@media(max-width:767px){
  .depts{grid-template-columns:minmax(0,1fr);row-gap:56px}
  .dept:nth-child(even){margin-top:0}
  .filters{grid-template-columns:minmax(0,1fr)}
  .text-button{justify-self:start;min-height:44px;padding-inline:0}
  .guides{padding-block:40px 80px}
  .guide-list{display:grid;gap:8px;margin-inline:-12px}
  .guide-link{grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:baseline;padding:14px 12px}
  .guide-title{grid-column:1/-1}
  .guide-link .arrow{display:none}
}
@media(max-width:599px){
  :root{--gutter:22px}
  body{font-size:16px}
  .site-header{min-height:88px;gap:4px 16px;padding-block:18px}
  .wordmark{gap:6px}
  .brand-mark{width:45px;height:32px}
  .brand-name{font-size:17px;letter-spacing:-.5px}
  .site-nav{gap:22px}
  .hero{border-radius:0 0 22px 22px}
  .hero-grid,.hero-category .hero-grid{gap:32px;padding-block:28px 44px}
  .hero-category .hero-grid,.hero-outline .hero-grid{padding-top:8px}
  .hero-copy .crumbs{margin-bottom:20px}
  .frame{border-radius:14px}
  .band{border-radius:22px}
  .depts{padding-block:48px 48px}
  .dept-copy{padding-top:18px}
  .entries,.entries-3{grid-template-columns:minmax(0,1fr);gap:40px}
  .family{padding-top:56px}
  .families{padding-bottom:64px}
  .split{padding-block:56px}
  .band .section-title{margin-bottom:32px}
  .more-list{gap:0 32px}
  .site-footer{padding-block:28px 32px}
}
@media(max-width:479px){
  .site-header{flex-wrap:wrap;min-height:0;padding-block:16px 6px}
  .site-nav{width:100%;margin-left:0;gap:26px}
}
@media(max-width:359px){
  :root{--gutter:18px}
  .display{font-size:54px}
  .hero-category .display{font-size:50px}
  .display-title{font-size:38px}
}
@media(prefers-reduced-motion:reduce){
  .arrow,.dept-link img,.guide-link{transition:none}
  .dept-link:hover img{transform:none}
}
