/* A brief front door, with the detailed reading on its own page. */
.home-overview {display:grid;grid-template-columns:1fr 1fr;gap:72px;padding-block:72px 88px;border-top:1px solid var(--line);}
.home-overview h2 {font-size:clamp(28px,3vw,42px);line-height:1.15;letter-spacing:-.035em;}
.home-overview p,.platform-intro > p:not(.eyebrow),.platform-details p,.platform-boundaries p {color:var(--muted);font-size:18px;line-height:1.65;max-width:60ch;}
.overview-links {display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:28px;}
.platform-page {background:var(--ground);}
.platform-intro {padding-block:160px 64px;}
.platform-intro h1 {font-size:clamp(36px,4.5vw,64px);line-height:1.08;letter-spacing:-.045em;margin:18px 0 28px;max-width:850px;}
.platform-intro h1 span {color:var(--muted);}
.platform-intro .link-arrow {display:inline-flex;margin-top:28px;}
.platform-details article {display:grid;grid-template-columns:80px 1fr;gap:30px;border-top:1px solid var(--line);padding-block:38px;}
.feature-number {color:var(--accent-deep);font-size:14px;padding-top:8px;}
.platform-details h2,.platform-boundaries h2 {font-size:clamp(24px,2.5vw,34px);line-height:1.2;margin-bottom:14px;}
.platform-boundaries {padding-block:64px;border-top:1px solid var(--line);}
.platform-boundaries .link-arrow {display:inline-flex;margin-top:24px;}
.platform-page [data-rise] {opacity:1;transform:none;animation:none;}
@media(max-width:600px) {
 .home-story .opening {padding-top:112px;row-gap:24px;min-height:0;}
 .home-story .opening h1 {font-size:clamp(32px,8.8vw,42px);line-height:1.1;}
 .home-story .opening-copy > p {font-size:16px;line-height:1.5;}
 .home-story .network-loop {width:min(100%,310px);justify-self:center;}
 .home-story .network-loop figcaption {font-size:10px;margin-top:36px;}
 .home-story .hero-systems {padding-top:20px;}
 .home-overview {grid-template-columns:1fr;gap:24px;padding-block:44px;}
 .home-overview p,.platform-intro > p:not(.eyebrow),.platform-details p,.platform-boundaries p {font-size:16px;}
 .platform-intro {padding-block:126px 40px;}
 .platform-details article {grid-template-columns:28px 1fr;gap:16px;padding-block:28px;}
 .platform-boundaries {padding-block:40px;}
 .home-story .closing {padding-block:48px;}
}
@media(max-width:600px) {
 .home-story .opening-copy > p {margin-top:18px;}
 .home-story .opening-actions {margin-top:20px;gap:8px;align-items:center;}
 .home-story .opening-actions .link-arrow {margin:0;padding-block:10px;font-size:13px;}
 .home-story .opening-copy .opening-local {margin-top:12px;font-size:12px;}
}
/* The menu remains on the right and opens only on request. */
.site-shell .site-header[data-chrome],.home-story .site-header.header-docked {left:auto;right:20px;transform:none;}
.logo-dock .menu-symbol {width:20px;gap:5px;margin:auto;}
.logo-dock .menu-symbol i {width:20px;}
@media(max-width:600px) {.site-shell .site-header[data-chrome],.home-story .site-header.header-docked {right:16px;transform:none;}}
/* The same visual vocabulary carries the problem into the solution. */
.thesis-problem {background:var(--ground);padding-block:100px;}
.thesis-layout {display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:60px;}
.thesis-copy h2,.thesis-solution h2 {font-size:clamp(32px,3.6vw,52px);line-height:1.12;letter-spacing:-.045em;margin:16px 0 24px;}
.thesis-kicker {font-size:14px;color:var(--muted);}
.thesis-copy > p:not(.thesis-kicker),.thesis-solution-heading > p:not(.thesis-kicker) {font-size:19px;line-height:1.6;max-width:47ch;color:var(--muted);}
.thesis-copy > p + p {margin-top:14px;}
.thesis-art {margin:0;min-width:0;}
.thesis-art svg {display:block;width:100%;height:auto;overflow:visible;}
.thesis-tile-shadow {fill:var(--line);opacity:.65;}
.thesis-tile {fill:var(--card);stroke:var(--line);stroke-width:1.5;}
.thesis-icon {fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.broken-paths {fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:5 7;}
.thesis-solution {padding-block:96px 70px;background:var(--dark);color:var(--on-dark);}
.thesis-solution-heading {max-width:760px;margin-inline:auto;text-align:center;}
.thesis-solution-heading > p:not(.thesis-kicker) {margin-inline:auto;color:var(--on-dark-muted);}
.thesis-solution .thesis-kicker {color:var(--accent-soft);}
.thesis-art-wide {max-width:920px;margin:36px auto 48px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 16%,transparent),transparent 65%);}
.connected-paths {fill:none;stroke:var(--accent-soft);stroke-width:2;opacity:.7;}
.thesis-solution .thesis-tile {fill:var(--ink-2);stroke:color-mix(in srgb,var(--accent-soft) 25%,transparent);}
.thesis-solution .thesis-tile-shadow {fill:var(--ink);}
.thesis-solution .thesis-icon {stroke:var(--accent-soft);}
.thesis-core {fill:var(--card);stroke:var(--accent-soft);stroke-width:1.5;}
.core-shadow {fill:var(--accent-deep);opacity:.6;}
.core-rule {stroke:var(--line);stroke-width:1;}
.core-led {fill:var(--accent);}
.thesis-outcomes {display:grid;grid-template-columns:repeat(3,1fr);gap:48px;}
.thesis-outcomes h3 {font-size:22px;font-weight:500;margin-bottom:12px;}
.thesis-outcomes p {font-size:16px;line-height:1.6;color:var(--on-dark-muted);max-width:30ch;}
.thesis-next {border-top:1px solid var(--rule-dark);padding-top:28px;margin-top:40px;display:flex;gap:32px;align-items:center;flex-wrap:wrap;}
.thesis-next .link-arrow {color:var(--on-dark);margin:0;}
.thesis-next > span {margin-left:auto;color:var(--on-dark-muted);font-size:13px;}
@media(max-width:800px) {
 .thesis-problem,.thesis-solution {padding-block:56px;}
 .thesis-layout {grid-template-columns:1fr;gap:26px;}
 .thesis-copy {max-width:540px;}
 .thesis-copy > p:not(.thesis-kicker),.thesis-solution-heading > p:not(.thesis-kicker) {font-size:17px;}
 .thesis-outcomes {grid-template-columns:1fr;gap:26px;}
 .thesis-outcomes p {max-width:44ch;}
 .thesis-art-wide {margin-block:26px 34px;}
 .thesis-next {gap:22px;}.thesis-next > span {margin-left:0;}
}
:root {--story-blue:oklch(62% .16 250);--story-amber:oklch(73% .15 75);--story-rose:oklch(65% .17 10);--story-teal:oklch(72% .12 180);}
.thesis-problem {min-height:100svh;display:flex;align-items:center;background:linear-gradient(130deg,var(--ground),color-mix(in srgb,var(--accent-soft) 12%,var(--card)));}
.system-knot {fill:none;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;}
.knot-cable {paint-order:stroke;filter:drop-shadow(0 3px 2px color-mix(in srgb,var(--ink) 12%,transparent));}
.knot-cable-0 {stroke:var(--story-blue);}.knot-cable-1 {stroke:var(--story-rose);}.knot-cable-2 {stroke:var(--story-amber);}
.thesis-problem .thesis-art > svg > g:nth-child(3n+2) .thesis-icon {stroke:var(--story-blue);}
.thesis-problem .thesis-art > svg > g:nth-child(3n+3) .thesis-icon {stroke:var(--story-rose);}
.thesis-problem .thesis-art > svg > g:nth-child(3n+4) .thesis-icon {stroke:var(--story-amber);}
.thesis-solution {background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--accent-deep) 48%,var(--dark)),var(--dark) 75%);}
.connected-paths path:nth-child(even) {stroke:var(--story-teal);}
.thesis-solution .thesis-art > svg > g:nth-child(even) .thesis-icon {stroke:var(--story-teal);}
@media(min-width:801px) and (min-height:650px) {
 .thesis-problem,.thesis-solution {min-height:100svh;padding-block:56px;box-sizing:border-box;}
 .thesis-solution {display:flex;align-items:center;}
 .thesis-solution > .shell {width:100%;}
 .thesis-solution h2 {font-size:clamp(30px,4vh,44px);margin:8px 0 14px;}
 .thesis-solution-heading > p:not(.thesis-kicker) {font-size:17px;line-height:1.45;max-width:64ch;}
 .thesis-art-wide {width:min(100%,calc((100svh - 510px)*1.75));max-width:820px;margin:18px auto 22px;}
 .thesis-outcomes {gap:36px;}.thesis-outcomes h3 {font-size:19px;margin-bottom:8px;}.thesis-outcomes p {font-size:14px;line-height:1.45;max-width:36ch;}
 .thesis-next {margin-top:22px;padding-top:18px;}
}
.knot-cable-3 {stroke:var(--accent);}
.knot-loose {stroke:var(--story-blue);stroke-width:8;}
.thesis-solution > .shell {width:min(100% - (var(--gutter) * 2),1240px);}
/* A page-level identity, separate from the floating navigation control. */
.page-brand {position:absolute;top:29px;left:var(--gutter);z-index:40;display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-size:22px;font-weight:600;color:var(--ink);}
.page-brand img {width:28px;height:28px;}
.site-shell:has(.page-hero.on-dark) > .page-brand {color:var(--on-dark);}
.site-shell .site-header .brand {display:none;}
.site-shell .site-header[data-chrome]:not(:has(#main-nav[data-open])) {width:132px;}
.site-shell .site-header.header-compact:not(:has(#main-nav[data-open])) {width:60px;}
.site-shell .site-header:has(#main-nav[data-open]) {width:min(360px,calc(100% - 32px));}
.site-shell .header-inner {padding:6px;grid-template-columns:1fr;}
.site-shell .menu-toggle {justify-self:end;background:color-mix(in srgb,var(--card) 20%,transparent);}
.site-shell #main-nav[data-open] {max-height:min(540px,calc(100svh - 100px));overflow-y:auto;}
.cookie-panel,.calendar-embed {backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--card) 70%,transparent),var(--shadow-soft);}
.cookie-panel {background:color-mix(in srgb,var(--card) 88%,transparent);}
@media(max-width:600px) {.page-brand {font-size:19px;top:34px;}.page-brand img {width:24px;height:24px;}.site-shell .site-header[data-chrome]:not(:has(#main-nav[data-open])) {width:112px;}.site-shell .site-header.header-compact:not(:has(#main-nav[data-open])) {width:60px;}}
/* One balanced glass control, with no nested pill or spare left padding. */
.site-shell .site-header[data-chrome] {box-shadow:inset 0 1px 0 color-mix(in srgb,var(--card) 80%,transparent),0 8px 24px -12px color-mix(in srgb,var(--ink) 20%,transparent);}
.site-shell .site-header[data-chrome]:not(:has(#main-nav[data-open])) {width:112px;border-radius:25px;}
.site-shell .site-header:not(:has(#main-nav[data-open])) .header-inner {min-height:48px;padding:0;display:block;}
.site-shell .menu-toggle {height:48px;min-height:48px;margin:0;padding:0 18px;gap:12px;background:transparent;border-radius:24px;font-size:14px;font-weight:500;line-height:1;align-items:center;justify-content:center;}
.site-shell .site-header:not(:has(#main-nav[data-open])) .menu-toggle {width:100%;}
.site-shell .menu-symbol {width:16px;gap:4px;}
.site-shell .menu-symbol i {width:16px;}
.site-shell .site-header.header-compact:not(:has(#main-nav[data-open])) {width:48px;}
.site-shell .logo-dock {width:48px;height:48px;padding:0;display:grid;place-items:center;}
.site-shell .logo-dock .menu-symbol {width:16px;gap:4px;}
.site-shell .logo-dock .menu-symbol i {width:16px;}
.site-shell .site-header:has(#main-nav[data-open]) .header-inner {padding:4px 8px;min-height:48px;}
.site-shell .menu-toggle:hover {background:color-mix(in srgb,var(--accent-soft) 10%,transparent);}
/* Keep the glass on the outer shell only, on every background. */
.site-shell .site-header .menu-toggle,.site-shell .site-header .menu-toggle:hover {background:transparent;box-shadow:none;border:0;}
.site-shell .site-header[data-chrome] {border:1px solid color-mix(in srgb,var(--line) 65%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--card) 75%,transparent),0 6px 18px -10px color-mix(in srgb,var(--ink) 20%,transparent);}

/* Keep both versions of the hamburger on the same right-hand anchor while
   the shell contracts. The old 360px compact inner row shifted the icon. */
.site-shell .site-header:not(:has(#main-nav[data-open])) .header-inner {
 width:112px;max-width:none;margin:0;position:relative;left:calc(100% - 112px);
}
.site-shell .site-header:not(:has(#main-nav[data-open])) .menu-toggle {
 width:112px;position:relative;justify-content:flex-start;padding-left:20px;
}
.site-shell .site-header:not(:has(#main-nav[data-open])) .menu-toggle .menu-symbol {
 position:absolute;right:16px;top:50%;transform:translateY(-50%);
}
.site-shell .logo-dock {left:auto;right:0;}
.site-shell .header-inner {transition:opacity .18s ease,visibility .18s;}

/* Google's transparent document uses dark text even inside our dark section. */
.calendar-embed {--calendar-surface:#fff;background:var(--calendar-surface);color-scheme:only light;}
.calendar-embed iframe.booking-frame {background:var(--calendar-surface);color-scheme:only light;}
