/* Site additions on top of theme.css (the AIOS page's own stylesheet, copied verbatim). */

/* cards */
.steps4{grid-template-columns:repeat(4,minmax(0,1fr))}
.steps4::before{left:6%;right:6%}
.tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tool{border-radius:14px;padding:24px 20px;display:grid;gap:8px;align-content:start}
.tool .who{font-size:13px;color:var(--light);font-weight:600}
.tool h3{font-size:19px;color:var(--deep);margin:0}
.tool .role{font-size:12px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}
.offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.offers .tool{padding:32px 28px;text-decoration:none;color:inherit}
.offers .tool h3{font-size:24px}
.offers .btn{justify-self:start;margin-top:8px}
.morelink{margin-top:28px;text-align:center}
a.tool{text-decoration:none;color:inherit}

/* sub-page hero: same as home, shorter */
.hero.sub{padding-bottom:24px}
.hero.sub h1{font-size:clamp(36px,5.4vw,68px)}

/* work: one row per build */
.builds{display:grid;gap:28px}
.build{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:36px;align-items:center;border-radius:22px;padding:36px}
.build:nth-child(even) .bshot{order:-1}
.build h2{font-size:clamp(26px,3vw,36px);margin:6px 0 10px}
.build .who{font-size:13px;color:var(--light);font-weight:600}
.build dl{display:grid;gap:12px;margin:18px 0 0}
.build dt{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--teal);font-weight:700}
.build dd{margin:2px 0 0;color:var(--text)}
.bshot{border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-lg);background:var(--alt)}
.bshot .mini{height:320px}
.bshot small{display:block;padding:8px 14px;font-size:12px;color:var(--light);border-top:1px solid var(--line);background:#fff}

/* about */
.timeline{display:grid;gap:14px;position:relative;padding-left:28px}
.timeline::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--teal),var(--navy),var(--gold));opacity:.4}
.tl{border-radius:14px;padding:22px 24px;position:relative}
.tl::before{content:"";position:absolute;left:-26px;top:28px;width:12px;height:12px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 5px rgba(255,255,255,.85)}
.tl .when{font-size:12px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}
.tl h3{margin:4px 0 6px;color:var(--deep);font-size:20px}
.quote{border-radius:22px;padding:48px 44px;text-align:center}
.quote p{font-size:clamp(22px,2.6vw,32px);font-weight:700;color:var(--deep);line-height:1.3;margin:0 0 14px;letter-spacing:-.01em}
.quote span{font-size:14px;color:var(--light)}

/* insights + legal */
.issue{border-radius:18px;padding:28px;display:grid;gap:14px}
.issue ol{margin:0;padding-left:20px;display:grid;gap:10px}
.issue li b{color:var(--deep)}
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.legal{max-width:760px;margin:0 auto;border-radius:22px;padding:44px}
.legal h2{font-size:20px;color:var(--deep);margin:28px 0 8px}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{font-size:15.5px}

/* footer */
.foot{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:32px;padding:56px 0 24px;border-top:1px solid var(--line)}
.foot h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--teal);margin:0 0 12px}
.foot a{display:block;color:var(--text);text-decoration:none;font-size:14px;padding:3px 0}
.foot a:hover{color:var(--navy)}
nav.top .links a[aria-current]{color:var(--navy);font-weight:600}

@media (max-width:960px){.steps4,.tools{grid-template-columns:repeat(2,minmax(0,1fr))}.steps4::before{display:none}.build{grid-template-columns:1fr;padding:24px}.build:nth-child(even) .bshot{order:0}}
@media (max-width:800px){.offers,.posts{grid-template-columns:1fr}}
@media (max-width:760px){.foot{grid-template-columns:1fr}.legal{padding:28px 22px}.quote{padding:32px 22px}}
@media (max-width:540px){.steps4,.tools{grid-template-columns:1fr}.bshot .mini{height:240px}}

/* articles */
.article{max-width:740px;margin:0 auto;border-radius:22px;padding:48px 52px}
.article h2{font-size:clamp(22px,2.4vw,28px);color:var(--deep);margin:36px 0 10px;letter-spacing:-.01em}
.article p{font-size:17px;line-height:1.75;margin:0 0 16px}
.article .meta{font-size:13px;color:var(--light);margin-bottom:8px}
.article blockquote{margin:24px 0;padding:18px 22px;border-left:0;border-radius:12px;background:var(--tint-teal);color:var(--deep);font-weight:600;font-size:18px}
.article figure{margin:28px 0}
.article figure img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}
@media (max-width:760px){.article{padding:28px 22px}.article p{font-size:16px}}

/* home: Murmur offer strip */
.offer-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;border-radius:22px;padding:32px 36px;text-decoration:none;color:inherit}
.offer-strip h3{font-size:clamp(22px,2.4vw,28px);color:var(--deep);margin:8px 0 6px}
.offer-strip p{margin:0;max-width:60ch}
@media (max-width:700px){.offer-strip{grid-template-columns:1fr;padding:24px}.offer-strip .btn{justify-self:start}}

/* brand mark next to the wordmark */
a.brand{display:inline-flex;align-items:center;gap:8px}
a.brand img{width:24px;height:24px;flex:none}

/* accessibility: readable small text (WCAG AA). Site pages only; demos keep their own CSS. */
:root{--light:#6B6B73}
.hero h1 .gold{color:#AD7E0A}
.tool .role,.tl .when{color:#8A6508}

/* phone menu: the theme hides nav links under 900px, so site.js adds a Menu button + dropdown */
.menubtn{display:none;appearance:none;border:1px solid var(--line-2);background:rgba(255,255,255,.7);color:var(--deep);font:inherit;font-size:14px;font-weight:600;padding:8px 12px;border-radius:8px;cursor:pointer;align-items:center;gap:6px}
.menubtn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.mnav{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);border-radius:12px;padding:8px;flex-direction:column}
.mnav a{display:block;padding:12px 14px;border-radius:8px;color:var(--deep);text-decoration:none;font-weight:600}
.mnav a:hover,.mnav a[aria-current]{background:rgba(255,255,255,.85);color:var(--navy)}
nav.top .bar{position:relative}
@media (max-width:900px){.menubtn{display:inline-flex;margin-left:auto}nav.top .links{margin-left:8px}nav.top.open .mnav{display:flex}}

/* David's photo: About hero split, home intro, article byline */
.hero.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:center;text-align:left}
.hero.split .facts{justify-content:flex-start}
.portrait{margin:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);background:#fff;border:1px solid var(--line)}
.portrait img{display:block;width:100%;height:auto}
.portrait figcaption{font-size:12.5px;color:var(--light);padding:10px 14px;background:#fff}
.meet{display:grid;grid-template-columns:200px minmax(0,1fr);gap:36px;align-items:center;border-radius:22px;padding:32px}
.meet img{width:200px;height:200px;object-fit:cover;object-position:50% 22%;border-radius:18px;box-shadow:var(--shadow)}
.meet h2{font-size:clamp(26px,3vw,36px);margin:8px 0 10px}
.meet p{margin:0 0 16px;max-width:62ch}
.meta.byline{display:flex;align-items:center;gap:10px}
.meta.byline img{width:32px;height:32px;border-radius:50%;object-fit:cover}
@media (max-width:860px){.hero.split{grid-template-columns:1fr;text-align:center}.hero.split .facts{justify-content:center}.portrait{max-width:380px;margin:8px auto 0;transform:none}}
@media (max-width:640px){.meet{grid-template-columns:1fr;text-align:center;padding:24px}.meet img{margin:0 auto;width:160px;height:160px}.meet p{margin-inline:auto}}
.meet h2 .l2{display:block;color:var(--navy)}
.meet img{object-position:50% 50%}
nav.top .links a.keep{white-space:nowrap}
nav.top .bar{min-width:0}
nav.top .brand{min-width:0;white-space:nowrap}
@media (max-width:560px){.menubtn{padding:8px;font-size:0;gap:0}.menubtn svg{width:18px;height:18px}nav.top .bar{gap:8px;padding:8px 8px 8px 14px}nav.top .links a.keep{padding:8px 10px}}
@media (max-width:560px){nav.top .brand{font-size:15px;gap:6px;flex:0 1 auto;overflow:hidden}nav.top .brand img{width:20px;height:20px}nav.top .links{margin-left:0}}
@media (max-width:360px){nav.top .brand{font-size:13.5px}}
@media (max-width:420px){nav.top .brand{font-size:14px;letter-spacing:-0.03em}nav.top .links a.keep{font-size:13px;padding:8px 8px}}
.mnav{background:#FAFAF7;z-index:50;box-shadow:var(--shadow-lg)}

/* ring cards that show real demo screenshots */
.rc .mini img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}

/* moving carousel of build cards (home) */
.marquee{overflow:hidden;padding:8px 0 18px;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.mtrack{display:flex;width:max-content;animation:marq 70s linear infinite}
.mtrack > .tool{width:330px;flex:none;margin-right:16px}
.mtrack .tool .cardshot{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;object-position:top left;border-radius:10px;border:1px solid var(--line);margin-bottom:6px}
.marquee:hover .mtrack,.marquee:focus-within .mtrack{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.mtrack [aria-hidden="true"]{display:none}}
@media (max-width:540px){.mtrack > .tool{width:270px}}

/* "Four steps" motion: line draws in, then each step takes its turn (site.js cycles .on) */
.steps4::before{transform:scaleX(0);transform-origin:left center;transition:transform 1.4s var(--ease)}
.steps4.live::before{transform:scaleX(1)}
.steps4::after{content:"";position:absolute;top:46px;left:4%;height:2px;width:calc(92% * var(--p,0));background:var(--gold);border-radius:2px;opacity:0;transition:width .9s var(--ease),opacity .4s;pointer-events:none}
.steps4.live::after{opacity:1}
.steps4 .st5{transition:transform .5s var(--ease),box-shadow .5s,background .5s}
.steps4 .st5.on{--ty:-8px;box-shadow:var(--shadow-lg);background:rgba(255,255,255,.82)}
.steps4 .st5.on .num{animation:steppulse 1.8s var(--ease)}
@keyframes steppulse{0%{box-shadow:0 0 0 6px rgba(255,255,255,.8),0 0 0 6px rgba(12,122,110,.45),0 10px 20px -8px rgba(26,58,107,.6)}100%{box-shadow:0 0 0 6px rgba(255,255,255,.8),0 0 0 24px rgba(12,122,110,0),0 10px 20px -8px rgba(26,58,107,.6)}}
@media (max-width:960px){.steps4::after{display:none}}
@media (prefers-reduced-motion:reduce){.steps4::before{transform:none}.steps4::after{display:none}}
.steps4::after{z-index:0}
.steps4 .st5{z-index:1}
