/* Homepage front door (round 4). Uses the public appearance tokens (--nl-*) so the
   white and night themes both work; no JavaScript is needed for any of it. */
.fd{--fd-gd:var(--nl-plum,#581846);--fd-ag:var(--nl-gold,#93620b);--fd-panel:#f8f5f8;--fd-space:clamp(44px,6.5vw,88px)}
[data-theme="dark"] .fd{--fd-panel:#1e2027}
.fd>section,.fd>figure{margin-block:0;padding-block:var(--fd-space) 0}
.fd h2{font-size:clamp(1.7rem,2.8vw,2.45rem);letter-spacing:-.05em;line-height:1.1;margin:0 0 .45em}
.fd h2 a,.fd h3 a{color:inherit;text-decoration:underline;text-decoration-color:var(--nl-line);text-decoration-thickness:2px;text-underline-offset:6px}
.fd h2 a:hover,.fd h3 a:hover{color:var(--nl-plum);text-decoration-color:currentColor}
.fd-n{font-variant-numeric:tabular-nums;font-weight:700;color:var(--nl-ink)}
.fd-new{display:inline-block;margin:0 0 14px;padding:2px 10px;border:1px solid var(--nl-gold);border-radius:999px;color:var(--nl-gold);font-size:.78rem;font-weight:700;letter-spacing:.02em;line-height:1.6}

/* Hero */
.fd>.fd-hero{padding-block:clamp(26px,4vw,56px) 0}
.fd-hero h1{text-wrap:balance;font-size:clamp(2.45rem,5.3vw,4.45rem);font-weight:800;line-height:1.03;letter-spacing:-.058em;margin:0 0 24px;max-width:19ch}
.fd-hero h1 span,.fd-hero h1 em{display:block}
.fd-hero h1 em{font-style:normal;color:var(--nl-plum)}
.fd-lede{font-family:var(--serif);font-size:clamp(1.2rem,1.85vw,1.5rem);line-height:1.5;letter-spacing:-.005em;color:var(--nl-ink);max-width:40rem;margin:0}
.fd-hero .actions{margin-top:28px}
.fd-talk{margin:0 0 26px;max-width:46rem}
.fd-talk a{display:block;padding:14px 18px;border:1px solid var(--nl-line);border-left:4px solid var(--fd-ag);border-radius:4px;background:var(--fd-panel);color:var(--nl-ink);line-height:1.5}
.fd-talk strong{color:var(--nl-plum);margin-right:6px}
.fd-talk span{text-decoration:underline;text-decoration-color:var(--nl-line);text-underline-offset:4px}
.fd-talk a:hover span{text-decoration-color:currentColor}

/* The record: both timelines on one date axis, every event a node */
.fd-record-head{color:var(--nl-ink);font-size:1rem;line-height:1.65;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px clamp(24px,5vw,72px);align-items:end;margin-bottom:22px}
.fd-record-head h2{margin:0}
.fd-record-head p{margin:0;max-width:34rem;font-size:1rem}
.fd-rail{position:relative;padding:40px clamp(14px,2.4vw,28px) 30px;border:1px solid var(--nl-line);border-radius:6px;background:var(--fd-panel);overflow:hidden}
.fd-years{position:absolute;inset:0 clamp(14px,2.4vw,28px);margin:0;padding:0;list-style:none;pointer-events:none}
.fd-years li{position:absolute;top:0;bottom:0;padding:9px 0 0 7px;border-left:1px dashed var(--nl-line);font-size:.76rem;font-weight:700;line-height:1;color:var(--nl-muted);font-variant-numeric:tabular-nums}
.fd-track{position:relative}
.fd-track+.fd-track{margin-top:26px}
.fd-track-label{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 6px;font-size:.88rem;line-height:1.4;color:var(--nl-muted)}
.fd-track-label a{font-size:1.05rem;font-weight:750;letter-spacing:-.02em;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.fd-track-gd .fd-track-label a{color:var(--fd-gd)}
.fd-track-ag .fd-track-label a{color:var(--fd-ag)}
.fd-track-label a:hover{text-decoration-thickness:2px}
.fd-track-label>*{background:var(--fd-panel);box-shadow:0 0 0 3px var(--fd-panel)}
.fd-line-row{position:relative;height:30px}
.fd-line{position:absolute;top:50%;height:4px;margin-top:-2px;border-radius:2px;transform-origin:left center}
.fd-track-gd .fd-line{background:var(--fd-gd)}
.fd-track-ag .fd-line{background:var(--fd-ag)}
.fd-dot{position:absolute;top:50%;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:50%;background:var(--fd-panel);border:2px solid}
.fd-track-gd .fd-dot{border-color:var(--fd-gd)}
.fd-track-ag .fd-dot{border-color:var(--fd-ag)}
@media (prefers-reduced-motion:no-preference){
 .fd-line{animation:fd-draw .9s cubic-bezier(.3,.7,.2,1) both}
 .fd-track-ag .fd-line{animation-delay:.25s}
 .fd-dot{animation:fd-node .35s ease-out both;animation-delay:.6s}
 .fd-track-ag .fd-dot{animation-delay:.85s}
}
@keyframes fd-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fd-node{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}

/* Start here: a real reading order, so it is numbered */
.fd-path{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px clamp(28px,6vw,96px);align-items:start}
.fd-path-head p{font-size:1.05rem;max-width:26rem}
.fd-steps{margin:0;padding:0;list-style:none;counter-reset:fd-step}
.fd-steps li{counter-increment:fd-step;border-top:1px solid var(--nl-line)}
.fd-steps li:last-child{border-bottom:1px solid var(--nl-line)}
.fd-steps a{display:grid;grid-template-columns:3.1rem minmax(0,1fr);column-gap:6px;padding:18px 0;color:var(--nl-ink)}
.fd-steps a:before{content:counter(fd-step);grid-row:span 2;font-family:var(--serif);font-size:2rem;line-height:1;color:var(--nl-gold);font-variant-numeric:lining-nums tabular-nums}
.fd-step-title{font-weight:750;font-size:1.15rem;letter-spacing:-.02em;color:var(--nl-plum);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.fd-step-text{color:var(--nl-muted);font-size:.97rem;line-height:1.55;margin-top:3px}
.fd-steps a:hover .fd-step-title{color:var(--nl-ink);text-decoration-thickness:2px}

/* The two timelines, side by side */
.fd-timelines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,72px)}
.fd-tl{min-width:0;padding-top:22px;border-top:4px solid var(--fd-gd)}
.fd-tl-ag{border-top-color:var(--fd-ag)}
.fd-tl-meta{font-size:.86rem;font-weight:700;color:var(--nl-muted);margin-bottom:12px}
.fd-tl>p:not([class]){max-width:34rem}
.fd-tl h3,.fd-bots-data h3{font-size:.88rem;font-weight:750;letter-spacing:0;line-height:1.3;color:var(--nl-ink);margin:26px 0 8px}
.fd-latest{margin:0;padding:0;list-style:none}
.fd-latest li{display:grid;grid-template-columns:7.6rem minmax(0,1fr);gap:4px 14px;padding:10px 0;border-top:1px solid var(--nl-line);font-size:.95rem;line-height:1.45}
.fd-latest time{color:var(--nl-muted);font-size:.84rem;font-variant-numeric:tabular-nums;padding-top:1px}
.fd-latest span{color:var(--nl-ink)}
.fd-tl-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:24px}
.fd-tl-ag .button{background:var(--nl-ink);border-color:var(--nl-ink);color:var(--nl-bg)}
.fd-tl-ag .button:hover{background:var(--nl-plum);border-color:var(--nl-plum)}

/* Horizontal count bars (agentic themes, bot purposes) */
.fd-bars{margin:0;padding:0;list-style:none}
.fd-bars li{border-top:1px solid var(--nl-line)}
.fd-bars li>a,.fd-bars li>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:9px 0 10px;color:var(--nl-ink);font-size:.95rem;line-height:1.4}
.fd-bars a:hover .fd-bar-label{color:var(--nl-plum);text-decoration:underline;text-underline-offset:3px}
.fd-bar{grid-column:1/-1;display:block;height:6px;border-radius:3px;background:var(--nl-line);overflow:hidden}
.fd-bar>span{display:block;height:100%;border-radius:3px;background:var(--fd-ag)}
.fd-bots .fd-bar>span{background:var(--fd-gd)}

/* AI bot directory */
.fd>.fd-bots{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px clamp(28px,5vw,72px);margin-block:var(--fd-space) 0;padding:clamp(28px,4vw,52px);border:1px solid var(--nl-line);border-radius:6px;background:var(--fd-panel);width:min(calc(100% - 2*var(--gutter)),calc(1230px - 2*var(--gutter)))}
.fd-bots-copy>p:not(.fd-new){max-width:34rem}
.fd-bots-data h3{margin-top:4px}
.fd-agents{margin:16px 0 0;font-size:.9rem;line-height:1.85}
.fd-agents code,.fd code{font-size:.84em;padding:1px 6px;border:1px solid var(--nl-line);border-radius:4px;background:var(--nl-bg);color:var(--nl-ink);white-space:nowrap}

/* People, research, apps */
.fd-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px clamp(28px,4vw,56px);align-items:start}
.fd-more>div{min-width:0;padding-top:20px;border-top:1px solid var(--nl-ink)}
.fd-more h2{font-size:clamp(1.5rem,2.2vw,1.9rem)}
.fd-names{display:flex;flex-wrap:wrap;gap:4px 0;margin:4px 0 14px;padding:0;list-style:none;font-size:.98rem;line-height:1.6;color:var(--nl-ink)}
.fd-names li:not(:last-child):after{content:",";margin-right:.4em}
.fd-items{margin:0 0 10px;padding:0;list-style:none}
.fd-items>li{padding:14px 0;border-top:1px solid var(--nl-line)}
.fd-items>li:first-child{border-top:0;padding-top:4px}
.fd-items h3{font-size:1.15rem;line-height:1.3;letter-spacing:-.03em;margin:0 0 6px}
.fd-items p{font-size:.93rem;line-height:1.55;margin:0}
.fd-items .fd-item-meta{font-size:.8rem;margin-bottom:6px}
.fd-app-list>li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start}
.fd-app-list img{border-radius:10px}

/* About */
.fd>.fd-about{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px clamp(28px,5vw,64px);align-items:center;padding-bottom:clamp(20px,3vw,36px)}
.fd-about picture,.fd-about img{display:block;width:100%;height:auto;border-radius:4px}
.fd-about img{border:1px solid var(--nl-line)}
.fd-about-copy{font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.35rem);line-height:1.55;color:var(--nl-ink);max-width:40rem}
.fd-about-copy a{text-decoration:underline;text-underline-offset:4px;color:var(--nl-plum)}
.fd-about .actions{margin-top:14px}

/* Layout changes */
@media (max-width:1000px){
 .fd-more{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fd-people{grid-column:1/-1}
}
@media (max-width:820px){
 .fd-record-head,.fd-path,.fd-timelines,.fd>.fd-bots{grid-template-columns:minmax(0,1fr)}
 .fd-more{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
 .fd{--fd-space:44px}
 .fd-hero .actions{gap:14px 20px}
 .fd-rail{padding:32px 12px 20px}
 .fd-years{inset:0 12px}
 .fd-years li{font-size:.7rem;padding-left:4px}
 .fd-dot{width:9px;height:9px;margin:-4.5px 0 0 -4.5px}
 .fd-latest li{grid-template-columns:minmax(0,1fr);gap:2px}
 .fd>.fd-bots{padding:24px 18px;width:calc(100% - 2*var(--gutter))}
 .fd>.fd-about{grid-template-columns:110px minmax(0,1fr);align-items:start}
 .fd-steps a{grid-template-columns:2.4rem minmax(0,1fr)}
 .fd-steps a:before{font-size:1.6rem}
}
@media (max-width:360px){
 .fd-hero h1{text-wrap:balance;font-size:2.2rem}
 .fd>.fd-about{grid-template-columns:minmax(0,1fr)}
 .fd-about picture{width:110px}
 .fd-agents code{white-space:normal}
}
