/* Shared semantic scale. Brand mark, media pixels and game coordinates are excluded. */
:root{
  --type-page:4rem;--type-section:2.5rem;--type-subheading:1.5rem;
  --type-body:1rem;--type-meta:.875rem;--type-label:.875rem;
  --weight-heading:650;--weight-body:400;--line-heading:1.25;--line-body:1.8;
  --space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;
  --layout-gutter:clamp(1rem,4vw,4rem);--layout-max:80rem;
  --page:min(calc(100% - 2 * var(--layout-gutter)),var(--layout-max));
  --layout-inset:max(var(--layout-gutter),calc((100% - var(--layout-max)) / 2));
  --section-space:5rem;--container-width:var(--layout-max);
}
body{font-size:var(--type-body);line-height:var(--line-body);font-kerning:normal}
.site-header{padding-inline:var(--layout-inset)}
.mobile-menu nav a{font-size:var(--type-subheading);line-height:1.4}
#main :where(h1,h2,h3,h4){font-family:inherit;font-weight:var(--weight-heading);letter-spacing:-.025em;line-height:var(--line-heading);text-wrap:pretty;overflow-wrap:anywhere}
#main :where(h1){font-size:var(--type-page);font-weight:700;line-height:1.2}
#main :where(h2){font-size:var(--type-section)}
#main :where(h3,h4){font-size:var(--type-subheading);line-height:1.4;letter-spacing:-.01em}
#main :where(p,li,dd){font-size:var(--type-body);line-height:var(--line-body);font-weight:var(--weight-body);text-wrap:pretty}
#main :where(input,textarea,select){font-size:var(--type-body);line-height:1.5}
#main :where(.button,.text-link,.brain-button,.route-email,.fy-faq summary,.company-film__play),.site-header :where(.desktop-nav a,.header-cta,.menu-button),.footer__nav a{font-size:var(--type-label);line-height:1.5}
#main :where(.button,.brain-button,.text-link,.route-email){min-height:2.75rem}
#main :where(figcaption,.company-film__meta,.company-film__below,.company-film__below p,.company-film__transcript summary,.brain-overline,.brain-notes__sources,.form-status,.insight-category,.insight-meta,.article-header__meta,.article-breadcrumbs,.article-content figcaption,.article-callout p,.label){font-size:var(--type-meta);line-height:1.65;letter-spacing:0}
#main :where(p){max-width:70ch}
#main :where(.hero__summary,.section-intro p,.route-hero__copy>p,.manifesto p,.company-film__intro>p,.contact-cta>p,.contact-page__intro>p,.article-header__subtitle){font-size:var(--type-body);line-height:var(--line-body);margin-top:var(--space-md);max-width:65ch}

/* One content edge, one section rhythm. Full-bleed color sections share the same inset. */
#main :where(.section-shell,.brain-workspace){width:var(--page);margin-inline:auto;padding-block:var(--section-space)}
#main :where(.problems.section-shell,.pilot,.manifesto,.brain-notes,.route-hero,.insights-hero){width:100%;margin-inline:0;padding-inline:var(--layout-inset);padding-block:var(--section-space)}
/* Match the existing problem section surface, retaining the same content edges. */
#main .practice.section-shell{width:100%;margin-inline:0;padding-inline:var(--layout-inset);background:var(--surface)}
#main :where(.section-intro){max-width:65ch;margin-bottom:var(--space-lg)}
#main :where(.section-intro h2,.problems__statement h2,.contact-page__intro h2){max-width:24ch}
#main :where(.problems__statement h2){margin-top:var(--space-sm)}
#main :where(.problems__statement>p){font-size:var(--type-meta)}
#main :where(.problems){gap:var(--space-xl);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
#main :where(.problems__statement){top:7rem}
#main .problems::before{content:none}
#main :where(.problem-list article){min-height:0;padding-block:var(--space-md);gap:var(--space-md)}
#main .problem-list article::before{font-size:var(--type-meta);top:var(--space-md)}

/* Page introductions stay compact; the primary hero retains its visual network. */
#main .hero.hero--minimal{width:var(--page);margin-inline:auto;min-height:38rem;padding-block:var(--section-space);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xl)}
#main .hero.hero--minimal h1{font-size:var(--type-page);line-height:1.2;max-width:22ch;font-weight:700;letter-spacing:-.025em}
#main :where(.hero__summary){margin-top:var(--space-md)}
#main :where(.hero__actions){gap:var(--space-sm);margin-top:var(--space-lg)}
#main :where(.knowledge-network){max-width:32rem;justify-self:end}
#main :where(.knowledge-network__caption,.knowledge-network__toggle,.company-film__play-time){font-size:var(--type-meta);line-height:1.65}
#main :where(.route-hero){min-height:0;align-items:start}
#main .route-hero::before{content:none}
#main :where(.route-hero__copy h1,.article-header h1){max-width:26ch}
#main :where(.route-hero__copy h1>span){max-width:none}
#main :where(.route-hero__copy>.button,.route-email){margin-top:var(--space-lg)}
#main :where(.academy-compact-heading.section-shell){padding-block:var(--section-space) var(--space-lg)}
#main :where(.academy-compact-heading+section){padding-top:var(--space-lg)}

/* Content blocks share headings/body; no fixed-height empty space under short copy. */
#main :where(.company-film){gap:var(--space-xl);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
#main :where(.company-film__intro h2){max-width:20ch}
#main :where(.company-film__intro .text-link){margin-top:var(--space-md)}
#main :where(.company-film__meta){margin-top:var(--space-sm)}
#main :where(.services-overview h2){margin:0;max-width:none}
#main :where(.services-overview ul){margin-top:var(--space-lg)}
#main :where(.services-overview li a){padding-block:var(--space-md);gap:var(--space-lg);min-height:6rem}
#main :where(.services-overview li p){margin:0}
#main :where(.pilot-path article){min-height:20rem;padding:var(--space-lg);gap:var(--space-sm)}
#main :where(.pilot-path h3){margin-top:var(--space-lg)}
#main :where(.pilot-path p,.pilot-path ul){margin-top:var(--space-sm)}
#main :where(.pilot-path li,.pilot-path article>span){font-size:var(--type-meta);line-height:1.65}
#main :where(.pilot-path__ninety p){opacity:1;color:inherit}
#main :where(.practice-flow,.about-principles__grid){grid-template-columns:repeat(5,minmax(0,1fr))}
#main :where(.practice-flow article,.about-principles__grid>article){min-width:0;min-height:0;padding:var(--space-md) var(--space-sm);display:block}
#main :where(.practice-flow h3,.about-principles__grid>article>h3){min-block-size:2.8em;margin:0}
#main :where(.practice-flow p,.about-principles__grid>article>p){margin:var(--space-sm) 0 0;max-width:none}
#main .practice-flow article::after{content:none}
#main :where(.manifesto__inner){width:100%;max-width:var(--layout-max);margin-inline:auto}
#main .manifesto::after{content:none}
#main :where(.manifesto h2){max-width:26ch}
#main :where(.manifesto p){margin-top:var(--space-md);max-width:65ch;color:inherit}
#main :where(.contact-cta){grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg) var(--space-xl);align-items:start}
#main :where(.contact-cta h2){max-width:24ch}
#main :where(.contact-cta>p){margin-top:0}
#main :where(.contact-cta>div){gap:var(--space-sm)}
#main :where(.service-directory__list article){min-height:0;padding-block:var(--space-lg);gap:var(--space-lg);align-items:start}
#main :where(.service-directory__list h3){max-width:none}
#main :where(.service-directory__list span){font-size:var(--type-meta)}
#main :where(.company-purpose){gap:var(--space-lg) var(--space-xl)}
#main :where(.company-purpose h2){margin-bottom:var(--space-md)}
#main :where(.company-purpose article p){font-size:var(--type-body);line-height:var(--line-body);font-weight:var(--weight-body)}
#main :where(.academy-areas__list,.superbrain-entry,.contact-page){gap:var(--space-xl)}
#main :where(.superbrain-entry h2){max-width:24ch}
#main :where(.contact-page dl){margin-top:var(--space-lg)}
#main :where(.contact-page dt,.contact-form label){font-size:var(--type-meta)}
#main :where(.fy-faq summary){font-size:var(--type-subheading);line-height:1.4;font-weight:var(--weight-heading)}

/* Articles and reading products use the same scale, with compact group/UI labels. */
#main :where(.article-header){max-width:var(--layout-max);padding-block:var(--section-space) var(--space-xl)}
#main :where(.article-content){font-size:var(--type-body);max-width:70ch}
#main :where(.article-content h2){margin:var(--space-xl) 0 var(--space-md)}
#main :where(.article-content h3){margin:var(--space-lg) 0 var(--space-sm)}
#main :where(.article-content p){margin-block:var(--space-md)}
#main :where(.article-content blockquote){font-size:var(--type-body);line-height:var(--line-body)}
#main :where(.article-content th,.article-content td){font-size:var(--type-body);line-height:var(--line-body)}
#main :where(.insights-section-heading){margin-bottom:var(--space-lg)}
#main :where(.insights-hero){min-height:0;gap:var(--space-xl)}
#main :where(.insights-hero__statement strong){font-size:var(--type-section);line-height:var(--line-heading)}
#main .sulan{width:var(--page);max-width:var(--layout-max);padding:var(--space-lg) 0 var(--section-space);margin-inline:auto;min-height:0}
#main .sulan :where(.sulan-heading){padding:var(--space-sm) 0 var(--space-lg)}
#main .sulan :where(.sulan-heading p,.sulan-summary,.sulan-body p,.sulan-empty p){font-size:var(--type-body);line-height:var(--line-body)}
#main .sulan :where(.sulan-day>h2,.sulan-aside h2){font-size:var(--type-subheading);line-height:1.4;font-weight:var(--weight-heading)}
#main .sulan :where(.sulan-entry h3){font-size:var(--type-subheading);line-height:1.4}
#main .sulan :where(.sulan-time,.sulan-entry__meta,.sulan-entry__foot,.sulan-entry__foot>div:first-child,.sulan-entry__actions button,.sulan-status,.sulan-status button,.sulan-timezone,.sulan-categories button,.sulan-search input,.sulan-picks a,.sulan-picks li>span,.sulan-aside__heading>span,.sulan-day>h2 span,.sulan-demo,.sulan-dates button,.sulan-aside label,.sulan-aside p){font-size:var(--type-meta);line-height:1.65}
#main .sulan :where(.sulan-layout){gap:var(--space-xl)}
#main :where(.brain-workspace__top){gap:var(--space-lg);padding-bottom:var(--space-lg)}
#main :where(.brain-workspace__layout){gap:var(--space-lg)}
#main :where(.brain-notes){padding-block:var(--section-space)}
.footer{padding-inline:var(--layout-inset)}
.footer :where(.footer__bottom,.footer__nav,.footer__contact,.footer__legal){font-size:var(--type-meta);line-height:1.65}
.footer .footer__contact a{font-size:var(--type-body);line-height:var(--line-body)}

/* Standalone Go lessons inherit only typography/content spacing, not board geometry. */
body:has(.go-board){font-family:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei","Segoe UI",sans-serif}
body:has(.go-board) :where(.header,footer){max-width:none;width:100%;margin-inline:0;padding-inline:var(--layout-inset)}
body:has(.go-board) main{max-width:calc(var(--layout-max) + 2 * var(--layout-gutter));padding:var(--section-space) var(--layout-gutter)}
body:has(.go-board) :where(main h1,.home-copy h1){font-size:var(--type-page);font-weight:700;line-height:1.2;letter-spacing:-.025em}
body:has(.go-board) main h2{font-size:var(--type-section);font-weight:var(--weight-heading);line-height:var(--line-heading)}
body:has(.go-board) main h3{font-size:var(--type-subheading);font-weight:var(--weight-heading);line-height:1.4}
body:has(.go-board) main :where(p,li){font-size:var(--type-body);line-height:var(--line-body)}
body:has(.go-board) :where(button,label,nav button,small,.muted,.label){font-size:var(--type-meta);line-height:1.65}

@media(max-width:1100px){
  :root{--type-page:3rem;--type-section:2rem;--type-subheading:1.375rem;--section-space:4rem}
  #main :where(.practice-flow,.about-principles__grid){grid-template-columns:repeat(2,minmax(0,1fr))}
  #main :where(.practice-flow h3,.about-principles__grid>article>h3){min-block-size:1.4em}
  #main :where(.practice-flow article,.about-principles__grid>article){border-bottom:1px solid var(--line)}
}
@media(max-width:780px){
  #main :where(.problems,.company-film,.contact-cta,.contact-page){grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}
  #main :where(.problems__statement){position:static}
  #main :where(.contact-cta>div){grid-column:1}
  #main :where(.pilot-path){grid-template-columns:1fr}
  #main :where(.pilot-path article){min-height:0;padding:var(--space-lg)}
  #main :where(.pilot-path h3){margin-top:var(--space-md)}
  #main .hero.hero--minimal{grid-template-columns:minmax(0,1fr);min-height:0;gap:var(--space-lg)}
  #main :where(.knowledge-network){max-width:28rem;justify-self:center}
  #main .sulan :where(.sulan-layout){gap:var(--space-lg)}
  #main :where(.service-directory__list article){grid-template-columns:1fr;gap:var(--space-sm)}
}
@media(max-width:600px){
  :root{--type-page:2.25rem;--type-section:1.75rem;--type-subheading:1.25rem;--layout-gutter:1rem;--section-space:3rem;--space-xl:2rem}
  #main :where(.practice-flow,.about-principles__grid,.company-purpose){grid-template-columns:minmax(0,1fr)}
  #main :where(.practice-flow article,.about-principles__grid>article){border-right:0;padding-inline:0}
  #main :where(.services-overview li a){row-gap:var(--space-xs);column-gap:var(--space-sm);padding-block:var(--space-md)}
  #main .sulan :where(.sulan-entry){grid-template-columns:2.75rem minmax(0,1fr);gap:var(--space-xs)}
  #main .sulan :where(.sulan-aside__heading){align-items:start;flex-wrap:wrap}
  #main .sulan :where(.sulan-entry__meta){column-gap:var(--space-xs)}
}
