/* P-120 WEB DESIGN RECONCILIATION PASS 4 — Homepage Visual Reconciliation
   museum editorial × scientific atlas × digital installation
   Public homepage presentation only. */

/* P120-WEB-CANON-P3.1: theme-sensitive derived tokens live inside the Home
   inheritance scope. Root retains theme-independent typography/layout only. */
:root{
  --p120-home4-display:var(--p120-vg-display,var(--p120-brand-display,"Noto Serif Display","Noto Serif",serif));
  --p120-home4-reading:var(--p120-vg-reading,"Noto Serif",serif);
  --p120-home4-literary:var(--p120-vg-literary,"Prata","Noto Serif",serif);
  --p120-home4-functional:var(--p120-vg-functional,var(--p120-brand-sans,"IBM Plex Sans",sans-serif));
  --p120-home4-technical:var(--p120-vg-technical,"IBM Plex Mono",monospace);
  --p120-home4-stage:min(1560px,100%);
  --p120-home4-reading-measure:760px;
  --p120-home4-gutter:clamp(20px,3vw,54px);
  --p120-home4-y:clamp(82px,9vw,144px);
}

.p120-home4{
  --p120-home4-canvas:var(--p120-brand-canvas,#F2EEE2);
  --p120-home4-paper:var(--p120-brand-surface,#FBF8EF);
  --p120-home4-pale:var(--p120-brand-surface-soft,#E7ECE4);
  --p120-home4-deep:var(--p120-brand-teal-deep,#1F5C5B);
  --p120-home4-ink:var(--p120-brand-ink,#263533);
  --p120-home4-ink2:var(--p120-brand-ink-2,#4B5D58);
  --p120-home4-rule:var(--p120-brand-line,#9DBCB2);
  --p120-home4-accent:var(--p120-brand-teal,#2F7D78);
  --p120-home4-warm:var(--p120-brand-bronze,#B39063);
}

/* Graphite's brand teal-deep is a light foreground semantic. The Home deep
   scene needs the active theme's dark deep surface while preserving Museum. */
body[data-theme='graphite'] .p120-home4{
  --p120-home4-deep:var(--p120-brand-surface-deep,#181613);
}

body:has(.editorial-home[data-p120-homepage-pass4="1.0"]) .layout.no-sidebar{
  width:100%!important;
  max-width:none!important;
  padding:0!important;
  display:block!important;
}
body:has(.editorial-home[data-p120-homepage-pass4="1.0"]) .layout.no-sidebar>.main{width:100%;max-width:none}
.editorial-home[data-p120-homepage-pass4="1.0"]{display:block!important;gap:0!important;margin:0!important;width:100%;max-width:none}
.editorial-home[data-p120-homepage-pass4="1.0"]>.p120-home4{width:100%;overflow:clip;background:var(--p120-home4-canvas);color:var(--p120-home4-ink)}

.p120-home4-stage{width:var(--p120-home4-stage);margin-inline:auto;padding-inline:var(--p120-home4-gutter)}
.p120-home4-scene{position:relative;padding-block:var(--p120-home4-y);border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 48%,transparent);scroll-margin-top:128px}
.p120-home4-scene:first-child{border-top:0}
.p120-home4-paper{background:var(--p120-home4-paper)}
.p120-home4-eyebrow{display:block;font:650 10px/1.25 var(--p120-home4-technical);letter-spacing:.15em;text-transform:uppercase;color:var(--p120-home4-accent)}
.p120-home4 h1,.p120-home4 h2,.p120-home4 h3{font-family:var(--p120-home4-display);font-weight:500;color:inherit;text-wrap:balance}
.p120-home4 h1{margin:20px 0 22px;font-size:clamp(54px,6.2vw,108px);line-height:.97;letter-spacing:-.055em;max-width:1180px}
.p120-home4 h2{margin:18px 0 22px;font-size:clamp(40px,4.5vw,76px);line-height:1.01;letter-spacing:-.045em;max-width:1080px}
.p120-home4 h3{margin:0;font-size:clamp(24px,2vw,34px);line-height:1.08;letter-spacing:-.025em}
.p120-home4-reading{max-width:var(--p120-home4-reading-measure);font:400 clamp(18px,1.45vw,22px)/1.65 var(--p120-home4-reading);color:var(--p120-home4-ink2)}

/* S0 — human entry */
.p120-home4-hero{min-height:calc(100svh - 74px);display:flex;align-items:center;background:
  radial-gradient(58rem 38rem at 92% 8%,color-mix(in srgb,var(--p120-home4-accent) 7%,transparent),transparent 70%),
  linear-gradient(180deg,var(--p120-home4-canvas),color-mix(in srgb,var(--p120-home4-paper) 66%,var(--p120-home4-canvas)))}
.p120-home4-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:clamp(48px,7vw,120px);align-items:center}
.p120-home4-hero-copy{position:relative;z-index:2}
.p120-home4-hero-lead{margin:0;max-width:860px;font:400 clamp(21px,2vw,31px)/1.45 var(--p120-home4-reading);color:var(--p120-home4-ink2)}
.p120-home4-definition{margin:34px 0 0;max-width:790px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 58%,transparent);font:400 clamp(17px,1.35vw,21px)/1.62 var(--p120-home4-reading);color:var(--p120-home4-ink)}
.p120-home4-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.p120-home4-action{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 20px;border:1px solid color-mix(in srgb,var(--p120-home4-ink) 28%,transparent);border-radius:999px;background:transparent;color:var(--p120-home4-ink);text-decoration:none;font:650 12px/1 var(--p120-home4-functional);cursor:pointer;transition:transform .17s ease,background .17s ease,border-color .17s ease}
.p120-home4-action:hover,.p120-home4-action:focus-visible{transform:translateY(-1px);background:color-mix(in srgb,var(--p120-home4-paper) 72%,transparent);outline:none}
.p120-home4-action:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--p120-home4-accent) 24%,transparent)}
.p120-home4-action-primary{background:var(--p120-home4-deep);border-color:var(--p120-home4-deep);color:#fff}
.p120-home4-action-primary:hover,.p120-home4-action-primary:focus-visible{background:color-mix(in srgb,var(--p120-home4-deep) 92%,#000)}
.p120-home4-resume{margin-top:18px;max-width:500px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 55%,transparent);border-bottom:1px solid color-mix(in srgb,var(--p120-home4-rule) 55%,transparent);text-decoration:none;color:var(--p120-home4-ink2);font:600 11px/1.2 var(--p120-home4-functional)}
.p120-home4-resume strong{font:500 11px/1 var(--p120-home4-technical);color:var(--p120-home4-accent)}
.p120-home4-field{width:min(520px,100%);aspect-ratio:1;justify-self:end;border-radius:50%;position:relative;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--p120-home4-rule) 72%,transparent);box-shadow:0 0 0 54px color-mix(in srgb,var(--p120-home4-rule) 10%,transparent),0 0 0 108px color-mix(in srgb,var(--p120-home4-rule) 6%,transparent)}
.p120-home4-field:before,.p120-home4-field:after{content:"";position:absolute;inset:17%;border:1px solid color-mix(in srgb,var(--p120-home4-accent) 42%,transparent);border-radius:50%}
.p120-home4-field:after{inset:33%;border-color:color-mix(in srgb,var(--p120-home4-warm) 50%,transparent)}
.p120-home4-field b{font:500 clamp(34px,4vw,64px)/1 var(--p120-home4-display);letter-spacing:-.04em;position:relative;z-index:2}
.p120-home4-field span{position:absolute;font:600 9px/1 var(--p120-home4-technical);letter-spacing:.13em;color:var(--p120-home4-ink2)}
.p120-home4-field span:first-child{left:-16px;top:48%}.p120-home4-field span:last-child{right:-26px;top:48%}
.p120-home4-field i{position:absolute;width:38%;height:1px;background:color-mix(in srgb,var(--p120-home4-rule) 72%,transparent)}
.p120-home4-field i:first-of-type{left:5%}.p120-home4-field i:last-of-type{right:5%}

/* S1 — definition */
.p120-home4-split{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);gap:clamp(50px,8vw,140px);align-items:start}
.p120-home4-split h2{max-width:650px}
.p120-home4-definition-grid{margin-top:54px;border-top:1px solid var(--p120-home4-rule)}
.p120-home4-definition-grid article{display:grid;grid-template-columns:46px minmax(120px,.55fr) minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid color-mix(in srgb,var(--p120-home4-rule) 65%,transparent);align-items:start}
.p120-home4-definition-grid article>span{font:500 10px/1.2 var(--p120-home4-technical);color:var(--p120-home4-accent)}
.p120-home4-definition-grid strong{font:600 13px/1.3 var(--p120-home4-functional)}
.p120-home4-definition-grid p{margin:0;font:400 15px/1.58 var(--p120-home4-reading);color:var(--p120-home4-ink2)}

/* shared section heads */
.p120-home4-section-head{max-width:1040px;margin-bottom:clamp(42px,5vw,74px)}
.p120-home4-section-head>p{max-width:760px;margin:0;font:400 clamp(17px,1.35vw,21px)/1.65 var(--p120-home4-reading);color:var(--p120-home4-ink2)}

/* S2 — atlas */
.p120-home4-atlas{background:var(--p120-home4-canvas)}
.p120-home4-atlas-field{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--p120-home4-rule);border-bottom:1px solid var(--p120-home4-rule)}
.p120-home4-atlas-field article{min-height:310px;padding:26px 24px 28px;border-right:1px solid color-mix(in srgb,var(--p120-home4-rule) 72%,transparent);display:flex;flex-direction:column}
.p120-home4-atlas-field article:last-child{border-right:0}
.p120-home4-atlas-field article>span{font:500 9px/1.2 var(--p120-home4-technical);letter-spacing:.08em;color:var(--p120-home4-accent)}
.p120-home4-atlas-field strong{margin-top:auto;padding-top:54px;font:500 clamp(20px,1.65vw,28px)/1.08 var(--p120-home4-display);letter-spacing:-.025em}
.p120-home4-atlas-field p{margin:13px 0 0;font:400 13px/1.55 var(--p120-home4-reading);color:var(--p120-home4-ink2)}

/* S3 — deep system scene */
.p120-home4-deep{background:var(--p120-home4-deep);color:#F7F2E8;border-color:transparent}
.p120-home4-deep .p120-home4-eyebrow{color:#B9D1CA}
.p120-home4-depth-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:clamp(60px,8vw,140px);align-items:start}
.p120-home4-deep h2{color:#F7F2E8}
.p120-home4-deep-statement{max-width:760px;margin:34px 0 0;font:400 clamp(22px,2.1vw,33px)/1.48 var(--p120-home4-literary);color:#E7E3D8}
.p120-home4-flow{border-top:1px solid rgba(255,255,255,.23)}
.p120-home4-flow>div{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.16);align-items:center}
.p120-home4-flow span{font:500 9px/1 var(--p120-home4-technical);color:#B9D1CA}
.p120-home4-flow strong{font:500 15px/1.35 var(--p120-home4-functional)}
.p120-home4-flow>p{margin:24px 0 0;font:400 12px/1.55 var(--p120-home4-reading);color:#C7D0CB}

/* S4 — routes */
.p120-home4-routes{background:var(--p120-home4-paper)}
.p120-home4-route-groups{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--p120-home4-rule)}
.p120-home4-route-groups>section{padding:26px clamp(18px,2.3vw,34px) 0;border-right:1px solid color-mix(in srgb,var(--p120-home4-rule) 68%,transparent)}
.p120-home4-route-groups>section:first-child{padding-left:0}.p120-home4-route-groups>section:last-child{border-right:0;padding-right:0}
.p120-home4-route-groups h3{margin:0 0 20px;font:650 9px/1.2 var(--p120-home4-technical);letter-spacing:.14em;color:var(--p120-home4-accent)}
.p120-home4-route-groups>section>div{display:grid}
.p120-home4-route{display:grid;grid-template-columns:1fr auto;gap:18px;padding:19px 0;border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 52%,transparent);text-decoration:none;color:var(--p120-home4-ink);align-items:center}
.p120-home4-route:first-child{border-top-color:var(--p120-home4-rule)}
.p120-home4-route strong{display:block;font:500 clamp(20px,1.6vw,27px)/1.12 var(--p120-home4-display);letter-spacing:-.02em}
.p120-home4-route small{display:block;margin-top:7px;font:500 11px/1.4 var(--p120-home4-functional);color:var(--p120-home4-ink2)}
.p120-home4-route i{font:400 22px/1 var(--p120-home4-reading);font-style:normal;transition:transform .17s ease}
.p120-home4-route:hover i,.p120-home4-route:focus-visible i{transform:translateX(4px)}
.p120-home4-route:focus-visible{outline:2px solid var(--p120-home4-accent);outline-offset:4px}

/* S5 — one example */
.p120-home4-example{background:linear-gradient(135deg,color-mix(in srgb,var(--p120-home4-warm) 10%,var(--p120-home4-canvas)),var(--p120-home4-canvas) 62%)}
.p120-home4-example-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(56px,8vw,140px);align-items:start}
.p120-home4-profile{border-top:2px solid var(--p120-home4-ink);border-bottom:1px solid var(--p120-home4-rule);padding:28px 0 0}
.p120-home4-profile-label{font:500 9px/1.2 var(--p120-home4-technical);letter-spacing:.12em;color:var(--p120-home4-accent)}
.p120-home4-profile h3{margin:18px 0 16px;font-size:clamp(32px,3vw,50px)}
.p120-home4-profile>p{max-width:760px;margin:0 0 32px;font:400 17px/1.62 var(--p120-home4-reading);color:var(--p120-home4-ink2)}
.p120-home4-profile dl{margin:0;border-top:1px solid var(--p120-home4-rule)}
.p120-home4-profile dl>div{display:grid;grid-template-columns:1fr auto;gap:20px;padding:15px 0;border-bottom:1px solid color-mix(in srgb,var(--p120-home4-rule) 58%,transparent)}
.p120-home4-profile dt{font:500 12px/1.3 var(--p120-home4-functional)}
.p120-home4-profile dd{margin:0;font:500 10px/1.3 var(--p120-home4-technical);color:var(--p120-home4-accent);text-transform:uppercase;letter-spacing:.06em}
.p120-home4-profile footer{padding:24px 0 28px;font:400 13px/1.55 var(--p120-home4-reading);color:var(--p120-home4-ink2)}

/* S6 — research boundary */
.p120-home4-boundary{background:var(--p120-home4-pale)}
.p120-home4-boundary-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--p120-home4-rule);border-bottom:1px solid var(--p120-home4-rule)}
.p120-home4-boundary-grid article{padding:32px clamp(24px,3vw,44px) 34px}
.p120-home4-boundary-grid article:first-child{padding-left:0;border-right:1px solid var(--p120-home4-rule)}
.p120-home4-boundary-grid article:last-child{padding-right:0}
.p120-home4-boundary-grid h3{font-size:clamp(28px,2.4vw,40px)}
.p120-home4-boundary-grid ul{list-style:none;margin:28px 0 0;padding:0}
.p120-home4-boundary-grid li{position:relative;padding:13px 0 13px 22px;border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 54%,transparent);font:400 15px/1.5 var(--p120-home4-reading);color:var(--p120-home4-ink2)}
.p120-home4-boundary-grid li:before{content:"";position:absolute;left:1px;top:20px;width:6px;height:6px;border-radius:50%;background:var(--p120-home4-accent)}
.p120-home4-boundary-note{max-width:920px;margin:28px 0 0;font:500 12px/1.55 var(--p120-home4-functional);color:var(--p120-home4-ink2)}

/* S7 — entry point */
.p120-home4-close{background:var(--p120-home4-canvas);padding-block:clamp(78px,8vw,126px)}
.p120-home4-close-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(52px,8vw,130px);align-items:end}
.p120-home4-close-grid p{max-width:760px;margin:0;font:400 18px/1.62 var(--p120-home4-reading);color:var(--p120-home4-ink2)}
.p120-home4-close-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.p120-home4-close-actions .p120-home4-action{width:100%}
.p120-home4-close-actions .p120-home4-resume{max-width:none;margin-top:8px}
.p120-home4-footer{padding:24px 0 34px;background:var(--p120-home4-canvas);border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 48%,transparent);font:500 9px/1.4 var(--p120-home4-technical);letter-spacing:.09em;color:var(--p120-home4-ink2)}

/* reveal motion — restrained */
.p120-home4 [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .42s ease,transform .42s cubic-bezier(.2,.7,.2,1)}
.p120-home4 [data-reveal].is-visible{opacity:1;transform:none}

@media(max-width:1180px){
  .p120-home4-hero-grid{grid-template-columns:1fr minmax(280px,.48fr)}
  .p120-home4-field{width:min(390px,100%)}
  .p120-home4-atlas-field{grid-template-columns:repeat(3,1fr)}
  .p120-home4-atlas-field article:nth-child(3){border-right:0}
  .p120-home4-atlas-field article:nth-child(n+4){border-top:1px solid var(--p120-home4-rule)}
  .p120-home4-route-groups{grid-template-columns:1fr 1fr}
  .p120-home4-route-groups>section:nth-child(2){border-right:0}
  .p120-home4-route-groups>section:nth-child(3){grid-column:1/-1;border-right:0;border-top:1px solid var(--p120-home4-rule);padding-left:0;padding-top:28px}
}

@media(max-width:820px){
  :root{--p120-home4-y:clamp(62px,12vw,92px);--p120-home4-gutter:19px}
  .p120-home4-scene{scroll-margin-top:112px}
  .p120-home4-hero{min-height:auto;padding-top:clamp(72px,14vw,110px)}
  .p120-home4-hero-grid,.p120-home4-split,.p120-home4-depth-grid,.p120-home4-example-grid,.p120-home4-close-grid{grid-template-columns:1fr}
  .p120-home4-field{justify-self:center;width:min(420px,78vw);margin:26px auto 10px}
  .p120-home4-field span:first-child{left:-6px}.p120-home4-field span:last-child{right:-12px}
  .p120-home4-definition-grid{margin-top:36px}
  .p120-home4-atlas-field{grid-template-columns:1fr 1fr}
  .p120-home4-atlas-field article{min-height:245px;border-top:1px solid color-mix(in srgb,var(--p120-home4-rule) 60%,transparent)}
  .p120-home4-atlas-field article:nth-child(odd){border-right:1px solid var(--p120-home4-rule)}
  .p120-home4-atlas-field article:nth-child(even){border-right:0}
  .p120-home4-atlas-field article:first-child,.p120-home4-atlas-field article:nth-child(2){border-top:0}
  .p120-home4-route-groups{grid-template-columns:1fr}
  .p120-home4-route-groups>section,.p120-home4-route-groups>section:first-child,.p120-home4-route-groups>section:last-child,.p120-home4-route-groups>section:nth-child(3){grid-column:auto;border-right:0;border-top:1px solid var(--p120-home4-rule);padding:25px 0 0;margin-top:24px}
  .p120-home4-route-groups>section:first-child{margin-top:0}
  .p120-home4-boundary-grid{grid-template-columns:1fr}
  .p120-home4-boundary-grid article:first-child{padding:28px 0;border-right:0;border-bottom:1px solid var(--p120-home4-rule)}
  .p120-home4-boundary-grid article:last-child{padding:28px 0}
}

@media(max-width:520px){
  .p120-home4 h1{font-size:clamp(48px,15vw,70px)}
  .p120-home4 h2{font-size:clamp(36px,11vw,52px)}
  .p120-home4-actions{display:grid;grid-template-columns:1fr}.p120-home4-action{width:100%}
  .p120-home4-field{width:min(330px,72vw);box-shadow:0 0 0 34px color-mix(in srgb,var(--p120-home4-rule) 10%,transparent),0 0 0 68px color-mix(in srgb,var(--p120-home4-rule) 6%,transparent)}
  .p120-home4-field span{display:none}
  .p120-home4-definition-grid article{grid-template-columns:34px 1fr;gap:10px 13px}
  .p120-home4-definition-grid article p{grid-column:2}
  .p120-home4-atlas-field{grid-template-columns:1fr}
  .p120-home4-atlas-field article,.p120-home4-atlas-field article:nth-child(odd){min-height:auto;border-right:0;border-top:1px solid var(--p120-home4-rule);padding:22px 0}
  .p120-home4-atlas-field article:first-child{border-top:0}
  .p120-home4-atlas-field strong{margin-top:28px;padding-top:0}
  .p120-home4-profile dl>div{grid-template-columns:1fr}.p120-home4-profile dd{text-align:left}
}

@media(prefers-reduced-motion:reduce){
  .p120-home4 [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .p120-home4-action,.p120-home4-route i{transition:none!important}
}
