* { box-sizing:border-box; }
:root { color-scheme:light; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:100%; color:#161616; background:#fff; font-synthesis:none; }
body { --accent:#f5879a; --accent-ink:#161616; margin:0; background:#fff; color:#161616; font-size:1.25rem; line-height:1.65; }
[hidden] { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
a { color:inherit; text-decoration-skip-ink:auto; text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
button,input { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid #161616; outline-offset:4px; }
::selection { background:var(--accent); color:var(--accent-ink); }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-weight:650; letter-spacing:-.045em; overflow-wrap:break-word; }
img { display:block; width:100%; height:auto; }
.wrap { width:min(100% - clamp(2.5rem,8vw,9rem),88rem); margin-inline:auto; }
.skip-link { position:absolute; top:10px; left:16px; z-index:10; background:#161616; color:#fff; padding:12px 20px; transform:translateY(-200%); font-size:1.125rem; }
.skip-link:focus { transform:translateY(0); }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:24px; border-bottom:1px solid #d3d3d3; }
.wordmark { display:inline-flex; align-items:baseline; min-height:48px; font-size:2rem; font-weight:750; letter-spacing:-.08em; text-decoration:none; line-height:1.35; }
.brand-dot { color:var(--accent); }
.site-header nav { display:flex; align-items:center; flex-wrap:wrap; gap:12px 32px; }
.site-header nav a { display:inline-flex; align-items:center; gap:12px; min-height:48px; font-size:1.0625rem; text-decoration:none; }
.site-header nav a:hover,.site-header nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:.28em; }
.site-header nav a[aria-current="page"] { font-weight:650; text-decoration-color:var(--accent); text-decoration-thickness:2.5px; }
.intro { padding-block:52px 54px; }
.intro .eyebrow { margin-bottom:20px; }
.intro-rose { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); align-items:end; gap:48px; }
.intro h1 { font-size:clamp(3.5rem,8.2vw,7.5rem); line-height:1.03; letter-spacing:-.07em; font-weight:650; }
.intro mark { color:inherit; background:none; text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:.085em; text-underline-offset:.14em; }
.intro-copy { max-width:30rem; }
.intro-copy p { font-size:clamp(1.25rem,1.7vw,1.5rem); line-height:1.6; }
.intro-copy .intro-audience { margin-top:16px; font-size:1.0625rem; color:#4e4e4e; }
.intro-copy .text-link { margin-top:23px; }
.text-link { display:inline-flex; align-items:center; gap:14px; min-height:48px; font-size:1.0625rem; font-weight:600; text-decoration:underline; }
.eyebrow { display:flex; align-items:center; gap:10px; font-size:1rem; font-weight:550; line-height:1.5; letter-spacing:0; }
.eyebrow::before { content:""; width:9px; height:9px; flex:0 0 9px; background:var(--accent); border-radius:50%; }
.card-meta { color:#555; font-weight:450; font-variant-numeric:tabular-nums; }
.starting-points { border-top:2px solid #161616; padding-block:34px 44px; background:linear-gradient(180deg,#faf6f7 0%,#ffffff 100%); padding-inline:28px; margin-inline:-28px; border-bottom:1px solid #d3d3d3; scroll-margin-top:25px; }
.starting-header { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:28px; }
.starting-header h2 { font-size:clamp(1.65rem,2.4vw,2.125rem); letter-spacing:-.04em; }
.pathway-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.pathway { display:flex; flex-direction:column; }
.pathway + .pathway { border-left:1px solid #dcdcdc; padding-left:32px; }
.pathway-step { display:inline-block; font-size:.875rem; font-weight:700; font-variant-numeric:tabular-nums; color:#161616; background:var(--accent); padding:2px 9px; border-radius:2px; width:fit-content; margin-bottom:12px; }
.pathway h3 { font-size:1.375rem; line-height:1.28; letter-spacing:-.03em; }
.pathway p { font-size:1.0625rem; color:#4e4e4e; margin-block:10px 18px; flex-grow:1; }
.pathway ul { margin:0; padding:0; list-style:none; border-top:1px solid #dcdcdc; }
.pathway li { border-bottom:1px solid #dcdcdc; }
.pathway a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding-block:8px; font-size:1.0625rem; font-weight:550; text-decoration:none; }
.pathway a:hover span:first-child { text-decoration:underline; text-decoration-thickness:2px; }
.pathway-arrow { color:#161616; transition:transform .16s ease; }
.pathway a:hover .pathway-arrow { transform:translateX(4px); }
.library { padding-block:62px 0; scroll-margin-top:25px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; }
.section-heading h2 { font-size:clamp(2.25rem,4vw,3.5rem); line-height:1.15; }
.section-heading h2 span { color:#555; font-weight:400; letter-spacing:-.04em; }
#guide-count { color:#555; font-size:1rem; padding-bottom:5px; font-variant-numeric:tabular-nums; }
.filter-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-block:30px 36px; }
.filters { display:flex; gap:10px; flex-wrap:wrap; }
.filters button { min-height:48px; padding:9px 18px; border:1px solid #b8b8b8; background:#fff; color:#161616; border-radius:2px; font-size:1rem; transition:border-color .15s ease,background-color .15s ease; }
.filters button:hover { border-color:#161616; }
.filters button[aria-pressed="true"] { background:var(--accent); color:var(--accent-ink); border-color:#161616; font-weight:650; text-decoration:underline; text-underline-offset:4px; }
.search-box { flex:0 1 20rem; min-width:15rem; }
.search-box input { width:100%; min-height:48px; padding:9px 16px; border:1px solid #b8b8b8; border-radius:2px; background:#fff; color:#161616; font-size:1rem; }
.search-box input::placeholder { color:#555; }
.search-box input:hover,.search-box input:focus { border-color:#161616; }
.featured { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:40px; align-items:center; margin-bottom:46px; padding-bottom:40px; border-bottom:1px solid #d3d3d3; scroll-margin-top:25px; }
.featured-photo { display:block; overflow:hidden; background:#f4f4f4; border:1px solid #dfdfdf; }
.featured-photo img { aspect-ratio:16/9; object-fit:cover; transition:transform .25s ease; }
.featured-photo:hover img { transform:scale(1.02); }
.featured-copy { padding-block:12px; }
.featured h3 { font-size:clamp(2rem,3vw,2.875rem); line-height:1.15; margin-block:16px 18px; }
.featured h3 a { text-decoration:none; }
.featured h3 a:hover { text-decoration:underline; text-decoration-color:#161616; }
.featured-copy > p:not(.eyebrow) { color:#4e4e4e; font-size:1.1875rem; max-width:29rem; }
.read-link { display:inline-flex; align-items:center; gap:20px; min-height:48px; margin-top:16px; font-size:1.0625rem; font-weight:600; text-decoration:underline; text-underline-offset:.25em; }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:50px 28px; }
.guide-card { min-width:0; }
.guide-link { display:flex; flex-direction:column; text-decoration:none; height:100%; }
.guide-link .photo,.related-grid .photo { overflow:hidden; background:#f4f4f4; border:1px solid #dfdfdf; }
.guide-link img,.related-grid img { aspect-ratio:4/3; object-fit:cover; transition:transform .22s ease; }
.guide-link:hover img,.related-grid > a:hover img { transform:scale(1.025); }
.guide-link:hover h3,.related-grid > a:hover h3 { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.15em; }
.card-copy { padding-top:18px; display:flex; flex-direction:column; flex-grow:1; }
.guide-card h3 { margin-block:12px 13px; font-size:clamp(1.55rem,2.05vw,1.95rem); line-height:1.2; }
.card-description { font-size:1.125rem; line-height:1.62; color:#4e4e4e; flex-grow:1; }
.guide-card .read-link { margin-top:14px; }
.follow-section { margin-top:68px; padding:36px; background:#f9edf0; border:1px solid #edd3da; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.follow-section > div { max-width:45rem; }
.follow-section h2 { font-size:clamp(1.75rem,3vw,2.5rem); line-height:1.2; margin-block:14px; }
.follow-section p:not(.eyebrow) { font-size:1.125rem; }
.follow-section > a { flex-shrink:0; }
.about-section { margin-top:76px; padding-block:42px 57px; border-top:1px solid #d3d3d3; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr); gap:48px; scroll-margin-top:25px; }
.about-section h2 { font-size:clamp(2rem,4vw,3.5rem); line-height:1.15; margin-bottom:23px; }
.about-section p:not(.eyebrow) { max-width:44rem; }
.about-section .text-link { margin-top:21px; }
.site-footer { display:flex; justify-content:space-between; gap:36px; border-top:2px solid #161616; padding-block:30px 40px; font-size:1rem; }
.site-footer > div:last-child { text-align:right; }
.site-footer a:not(.wordmark) { display:inline-flex; align-items:center; min-height:48px; }
.photo-credit { color:#555; max-width:28rem; font-size:1rem; margin-top:3px; }
.footer-links { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:4px 22px; }
.plain-page { max-width:46rem; margin-inline:auto; padding-block:52px 80px; }
.plain-heading { padding-bottom:28px; margin-bottom:36px; border-bottom:1px solid #d3d3d3; }
.plain-heading h1,.plain-page > h1 { font-size:clamp(2.35rem,4.2vw,3.75rem); line-height:1.1; margin-block:18px 20px; }
.plain-heading .article-description { margin-bottom:0; max-width:none; }
.plain-page .prose { max-width:none; }
.article-top { max-width:52rem; margin-inline:auto; padding-top:42px; text-align:center; }
.back-link { margin-bottom:24px; }
.article-top .eyebrow { justify-content:center; }
.article-top h1 { max-width:22ch; margin-inline:auto; font-size:clamp(2.35rem,4.6vw,4.25rem); line-height:1.1; margin-block:18px 22px; }
.article-description { max-width:48ch; margin-inline:auto; font-size:1.375rem; line-height:1.58; color:#2b2b2b; }
.article-author { margin-block:22px 36px; font-size:1rem; color:#4e4e4e; font-variant-numeric:tabular-nums; }
.article-cover { max-width:68rem; margin-inline:auto; }
.article-cover img { aspect-ratio:2.15/1; object-fit:cover; border:1px solid #dfdfdf; background:#f4f4f4; }
.article-cover figcaption { font-size:.9375rem; color:#555; padding-top:10px; text-align:center; }
.article-layout { max-width:68rem; margin-inline:auto; display:grid; grid-template-columns:minmax(0,17rem) minmax(0,44rem); justify-content:space-between; gap:52px; padding-block:52px; }
.article-layout > * { min-width:0; }
.contents { position:sticky; top:28px; align-self:start; }
.contents h2 { font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#4e4e4e; margin-top:6px; }
.contents ol { list-style:none; padding:0; margin:16px 0; border-top:1px solid #d3d3d3; }
.contents li { border-bottom:1px solid #d3d3d3; }
.contents a { display:block; min-height:48px; padding:11px 0; font-size:1.025rem; line-height:1.4; text-decoration:none; color:#333; transition:padding-left .15s ease,border-color .15s ease; border-left:3px solid transparent; }
.contents a:hover { text-decoration:underline; color:#161616; }
.contents a[aria-current="true"] { border-left-color:var(--accent); padding-left:12px; font-weight:650; color:#161616; background:#fcf6f7; }
.prose { max-width:67ch; font-size:1.25rem; line-height:1.82; overflow-wrap:anywhere; }
.prose > :first-child { margin-top:0; }
.prose p { margin-block:0 1.25em; }
.prose h2 { margin-block:1.75em .6em; font-size:clamp(1.75rem,2.4vw,2.25rem); line-height:1.24; scroll-margin-top:28px; padding-top:.2em; }
.prose h3 { margin-block:1.4em .5em; font-size:1.5rem; line-height:1.3; }
.prose a { text-decoration-thickness:1.5px; text-decoration-color:#767676; }
.prose a:hover { text-decoration-color:#161616; background:#fdf0f3; }
.prose ul,.prose ol { padding-left:1.3em; margin-block:0 1.35em; }
.prose li { margin-block:.55em; }
.prose blockquote { margin:1.6em 0; border-left:4px solid var(--accent); background:#faf4f6; padding:20px 24px; border-radius:0 2px 2px 0; font-size:1.125rem; line-height:1.7; }
.prose blockquote p:last-child { margin-bottom:0; }
.prose strong { font-weight:650; }
.prose :not(pre) > code { font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace; font-size:.875em; background:#f4eff1; border:1px solid #e2dadd; padding:2px 7px; border-radius:3px; }
.prose pre { max-width:100%; overflow-x:auto; padding:20px; background:#f4f4f4; border:1px solid #dcdcdc; font-size:1rem; line-height:1.6; }
.prose img { max-width:100%; height:auto; }
.prose table { border-collapse:collapse; width:100%; font-size:1.0625rem; line-height:1.5; font-variant-numeric:tabular-nums; }
.table-scroll { max-width:100%; overflow-x:auto; margin-block:1.6em; border:1px solid #d3d3d3; }
.table-scroll table { min-width:34rem; }
.prose th { padding:13px 16px; background:#f9edf0; border-bottom:2px solid #161616; text-align:left; font-weight:650; }
.prose td { padding:13px 16px; border-bottom:1px solid #dcdcdc; text-align:left; overflow-wrap:anywhere; }
.prose tbody tr:last-child td { border-bottom:none; }
.prose tbody tr:hover { background:#fcf8f9; }
.article-follow { border-top:2px solid #161616; margin-top:48px; padding:24px 28px; background:#faf4f6; }
.article-follow h2 { margin-top:0; font-size:1.5rem; }
.article-follow .editorial-contact { margin-top:18px; font-size:1rem; color:#4e4e4e; margin-bottom:0; }
.related { max-width:68rem; margin-inline:auto; padding-block:24px 68px; border-top:1px solid #d3d3d3; }
.related > h2 { font-size:clamp(2rem,3vw,2.75rem); margin-block:16px 32px; }
.related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 28px; }
.related-grid > a { display:flex; flex-direction:column; text-decoration:none; }
.related-grid .photo { margin-bottom:18px; }
.related-grid h3 { font-size:clamp(1.375rem,1.8vw,1.6875rem); line-height:1.22; margin-block:10px 8px; flex-grow:1; }
@media (min-width:1550px) { .intro { padding-block:62px 66px; } }
@media (max-width:1000px) {
  .site-header { flex-wrap:wrap; gap:12px; }
  .site-header nav { gap:5px 26px; }
  .intro-rose { grid-template-columns:1.4fr 1fr; gap:32px; }
  .intro h1 { font-size:clamp(3.5rem,8vw,6rem); }
  .starting-points { padding-inline:20px; margin-inline:-20px; }
  .pathway-grid { gap:24px; }
  .pathway + .pathway { padding-left:24px; }
  .featured { gap:30px; grid-template-columns:1.3fr 1fr; }
  .featured h3 { font-size:2.125rem; }
  .guide-grid,.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .article-layout { gap:35px; grid-template-columns:minmax(0,.85fr) minmax(0,2fr); }
}
@media (max-width:700px) {
  .wrap { width:calc(100% - 40px); }
  .site-header { padding-block:18px; }
  .wordmark { font-size:1.875rem; }
  .site-header nav { width:100%; justify-content:space-between; gap:4px 18px; }
  .site-header nav a { font-size:1rem; }
  .intro { padding-block:40px 48px; display:block; }
  .intro h1 { font-size:clamp(3rem,10vw,4.6rem); letter-spacing:-.065em; }
  .intro-copy { margin-top:33px; }
  .intro-copy p { font-size:1.25rem; }
  .starting-points { margin-inline:0; padding-inline:20px; }
  .starting-header { flex-direction:column; gap:8px; }
  .pathway-grid { grid-template-columns:1fr; gap:24px; }
  .pathway + .pathway { border-left:none; padding-left:0; border-top:1px solid #d3d3d3; padding-top:24px; }
  .featured { grid-template-columns:1fr; gap:22px; padding-bottom:44px; }
  .featured h3 { font-size:2.125rem; margin-block:14px; }
  .featured-copy { padding:0; }
  .follow-section { padding:24px; flex-direction:column; align-items:flex-start; gap:16px; }
  .library { padding-top:40px; }
  .section-heading { display:block; }
  .section-heading h2 { font-size:2rem; }
  #guide-count { margin-top:14px; }
  .filter-bar { margin-block:24px 30px; }
  .filters { gap:8px; }
  .filters button { padding-inline:14px; }
  .search-box { flex:1 1 100%; }
  .guide-grid { gap:35px 20px; }
  .guide-card h3 { font-size:1.65rem; }
  .guide-card .card-description { font-size:1.125rem; }
  .about-section { margin-top:50px; padding-block:29px 40px; grid-template-columns:1fr; gap:23px; }
  .about-section h2 { font-size:2.125rem; }
  .site-footer { flex-direction:column; gap:20px; }
  .site-footer > div:last-child { text-align:left; }
  .footer-links { justify-content:flex-start; }
  .article-top { text-align:left; }
  .article-top .eyebrow { justify-content:flex-start; }
  .article-top h1 { font-size:2.5rem; margin-inline:0; }
  .article-description { font-size:1.25rem; margin-inline:0; }
  .article-cover figcaption { text-align:left; }
  .article-cover img { aspect-ratio:3/2; }
  .article-layout { grid-template-columns:1fr; gap:32px; padding-block:32px; }
  .contents { position:static; }
  .contents ol { margin-bottom:0; }
  .contents a { padding-block:13px; }
  .prose { font-size:1.2rem; line-height:1.78; }
}
@media (max-width:560px) {
  .intro h1 { font-size:clamp(2.625rem,12vw,3.75rem); }
  .guide-grid,.related-grid { grid-template-columns:1fr; }
  .guide-card h3 { font-size:1.75rem; }
  .guide-link img,.related-grid img { aspect-ratio:3/2; }
  .site-header nav { justify-content:flex-start; }
  .site-header nav a { padding-right:7px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
@media (forced-colors:active) { .filters button[aria-pressed="true"] { border:3px solid ButtonText; } :focus-visible { outline:3px solid Highlight; } .brand-dot { color:CanvasText; } }
.prose a.term { text-decoration:none; border-bottom:2px dotted #d9607a; cursor:help; background:none; }
.prose a.term:hover,.prose a.term[aria-expanded="true"] { background:#fbe3e8; border-bottom-style:solid; }
.term-pop { position:absolute; z-index:20; width:min(22rem,calc(100vw - 24px)); padding:16px 18px 14px; background:#fff; color:#161616; border:1px solid #161616; box-shadow:6px 6px 0 rgba(22,22,22,.14); font-size:1rem; line-height:1.55; }
.term-pop[hidden] { display:none; }
.term-pop-title { display:flex; align-items:center; gap:9px; font-weight:700; font-size:1.0625rem; letter-spacing:-.01em; }
.term-pop-title::before { content:""; width:9px; height:9px; flex:0 0 9px; background:var(--accent); border-radius:50%; }
.term-pop-def { margin-top:8px; color:#2b2b2b; }
.term-pop-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:4px; font-weight:600; font-size:.9375rem; }
.lexique-index ul { list-style:none; margin:0 0 2.2em; padding:0; display:flex; flex-wrap:wrap; gap:8px 10px; }
.lexique-index a { display:inline-flex; align-items:center; min-height:44px; padding:6px 14px; border:1px solid #b8b8b8; border-radius:2px; font-size:1rem; text-decoration:none; }
.lexique-index a:hover { border-color:#161616; background:#fdf0f3; }
.plain-page .prose h2 { font-size:1.625rem; margin-block:1.6em .35em; }
.plain-page .prose h2:target { background:#fdf0f3; box-shadow:-12px 0 0 #fdf0f3,12px 0 0 #fdf0f3; }
.lexique-links { font-size:1rem; color:#4e4e4e; }
@media (prefers-reduced-motion:no-preference) { .term-pop:not([hidden]) { animation:term-in .12s ease-out; } }
@keyframes term-in { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:none; } }
