/* ========================================================================== 
   SAMUELE GARBATI — V47 / SCIENTIFIC EDITORIAL SYSTEM
   ========================================================================== */

:root {
    --paper: #f3f0e9;
    --paper-light: #fbfaf7;
    --paper-deep: #e9e4da;
    --ink: #101722;
    --ink-soft: #394453;
    --muted: #6d746f;
    --line: rgba(16, 23, 34, .16);
    --line-strong: rgba(16, 23, 34, .34);
    --blue: #1657d8;
    --blue-deep: #0b398e;
    --violet: #7453d6;
    --violet-deep: #3f238e;
    --amber: #c27a2b;
    --night: #080d18;
    --night-soft: #111b2d;
    --white: #fff;
    --serif: "Libre Caslon Display", Georgia, serif;
    --sans: "DM Sans", Arial, sans-serif;
    --mono: "IBM Plex Mono", monospace;
    --shell: min(1420px, calc(100vw - 80px));
    --radius-sm: 8px;
    --radius: 18px;
    --radius-lg: 32px;
    --shadow: 0 28px 80px rgba(16, 23, 34, .10);
    --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    font-size: 17px;
    line-height: 1.62;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, video, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
p, h1, h2, h3, h4, blockquote { margin-top: 0; }
::selection { background: rgba(22, 87, 216, .18); }

.shell { width: var(--shell); margin-inline: auto; }
.site-shell { overflow: clip; }
.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
    z-index: 9999; width: auto; height: auto; clip: auto; padding: 12px 18px;
    top: 12px; left: 12px; background: var(--ink); color: white;
}

/* TYPE + SHARED */
.eyebrow,
.meta-label {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin: 0 0 1.45rem;
    color: var(--muted);
    font-family: var(--mono);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
}
.eyebrow span { color: var(--ink); }
.eyebrow::after {
    content: "";
    width: 44px;
    height: 1px;
    background: currentColor;
    opacity: .45;
}
.meta-label { margin-bottom: .9rem; }
h1, h2, h3, blockquote { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h1 { font-size: clamp(4rem, 8vw, 8.8rem); line-height: .86; }
h2 { font-size: clamp(2.8rem, 5vw, 5.4rem); line-height: .98; }
h3 { font-size: clamp(1.65rem, 2.5vw, 2.7rem); line-height: 1.05; }

.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; }
.button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    padding: .85rem 1.4rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .035em;
    transition: transform .35s var(--ease), background .35s, color .35s, border-color .35s;
}
.button:hover { transform: translateY(-3px); }
.button--solid { background: var(--ink); color: white; }
.button--solid:hover { background: var(--blue); }
.button--violet { background: var(--violet-deep); }
.button--light { background: white; color: var(--ink); }
.button--light:hover { background: var(--paper); }
.text-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding-block: .55rem;
    border-bottom: 1px solid var(--line-strong);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .04em;
    transition: color .3s, border-color .3s;
}
.text-link:hover { color: var(--blue); border-color: var(--blue); }
.text-link--light { color: white; border-color: rgba(255,255,255,.4); }
.text-link--light:hover { color: white; border-color: white; }
.editorial-heading { max-width: 1100px; margin-bottom: clamp(3.2rem, 7vw, 7rem); }
.editorial-heading h2 { margin-bottom: 0; }
.editorial-heading--split {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, .7fr);
    gap: clamp(3rem, 8vw, 9rem);
    align-items: end;
}
.editorial-heading--split > p { color: var(--ink-soft); margin: 0 0 .35rem; max-width: 550px; }

.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }

/* HEADER */
.site-header {
    position: fixed;
    z-index: 900;
    top: 0; left: 0; right: 0;
    border-bottom: 1px solid transparent;
    transition: background .35s, border-color .35s, backdrop-filter .35s;
}
.site-header.is-scrolled {
    background: rgba(243, 240, 233, .86);
    border-color: var(--line);
    backdrop-filter: blur(18px);
}
.site-header__inner {
    height: 84px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 2rem;
}
.brand { display: inline-flex; align-items: center; gap: .9rem; z-index: 910; }
.brand__monogram {
    width: 42px; height: 42px;
    display: grid; place-items: center;
    border: 1px solid var(--ink);
    border-radius: 50%;
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .08em;
}
.brand__text { display: flex; flex-direction: column; line-height: 1.18; }
.brand__text strong { font-size: .9rem; letter-spacing: -.01em; }
.brand__text small { color: var(--muted); font-family: var(--mono); font-size: .57rem; letter-spacing: .055em; text-transform: uppercase; }
.primary-nav { justify-self: center; }
.primary-nav__panel { display: flex; align-items: center; gap: clamp(.9rem, 1.6vw, 1.7rem); }
.primary-nav__index, .primary-nav__foot { display: none; }
.primary-nav a {
    position: relative;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .04em;
}
.primary-nav a > span:first-child { display: none; }
.primary-nav a > [data-i18n] { display: inline; }
.primary-nav a::after {
    content: "";
    position: absolute;
    left: 0; right: 100%; bottom: -.6rem;
    height: 1px;
    background: var(--ink);
    transition: right .3s var(--ease);
}
.primary-nav a:hover::after, .primary-nav a.is-active::after { right: 0; }
.language-switch { display: flex; align-items: center; gap: .4rem; z-index: 910; }
.language-switch button {
    border: 0; padding: .35rem .15rem; background: transparent;
    color: var(--muted); font-family: var(--mono); font-size: .66rem; cursor: pointer;
}
.language-switch button.is-active { color: var(--ink); font-weight: 600; }
.nav-toggle { display: none; }

/* HOME HERO */
.home-hero { min-height: 100svh; padding: 150px 0 44px; position: relative; }
.home-hero::before {
    content: "";
    position: absolute; inset: 0;
    background-image: linear-gradient(rgba(16,23,34,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(16,23,34,.045) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: linear-gradient(to bottom, black, transparent 88%);
    pointer-events: none;
}
.home-hero__grid {
    min-height: calc(100svh - 235px);
    display: grid;
    grid-template-columns: minmax(400px, .88fr) minmax(520px, 1.12fr);
    gap: 3vw;
    align-items: center;
    position: relative;
}
.home-hero__copy { position: relative; z-index: 2; }
.home-hero h1 { margin: 0 0 2rem; }
.home-hero h1 span { display: block; }
.home-hero h1 span:last-child { margin-left: clamp(1.5rem, 4vw, 4.8rem); color: transparent; -webkit-text-stroke: 1px var(--ink); }
.home-hero__motto { margin: 0 0 .7rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.3vw, 2.5rem); letter-spacing: -.025em; }
.home-hero__lead { max-width: 610px; margin: 0 0 2rem; color: var(--ink-soft); font-size: clamp(1rem, 1.25vw, 1.22rem); }
.home-hero__visual { min-width: 0; }
.living-system {
    position: relative;
    aspect-ratio: 1.14;
    border: 1px solid var(--line);
    border-radius: 50% 50% 18px 18px / 54% 54% 18px 18px;
    background: rgba(251,250,247,.55);
    box-shadow: inset 0 0 100px rgba(22,87,216,.05);
    overflow: hidden;
}
.living-system::before {
    content: "SYSTEM / 47";
    position: absolute; top: 22px; left: 28px;
    color: var(--muted); font-family: var(--mono); font-size: .6rem; letter-spacing: .12em;
}
.living-system::after {
    content: "OBSERVE — UNDERSTAND — DESIGN";
    position: absolute; right: 22px; top: 50%;
    writing-mode: vertical-rl;
    color: var(--muted); font-family: var(--mono); font-size: .54rem; letter-spacing: .12em;
    transform: translateY(-50%);
}
.living-system svg { width: 100%; height: 100%; }
.system-grid path { fill: none; stroke: rgba(16,23,34,.065); stroke-width: 1; }
.system-blueprint, .system-network, .system-orbits { fill: none; stroke: rgba(16,23,34,.26); stroke-width: 1.2; }
.system-network circle, .system-points circle { fill: var(--paper-light); stroke: var(--violet); stroke-width: 2; }
.system-orbits circle { fill: var(--paper-light); stroke: var(--amber); }
.system-mainline {
    fill: none; stroke: url(#v47Line); stroke-width: 4; stroke-linecap: round;
    stroke-dasharray: 1; stroke-dashoffset: 1;
    filter: url(#v47Glow);
    animation: drawLivingLine 3.8s .55s var(--ease) forwards;
}
.system-points circle { opacity: 0; animation: pointIn .5s forwards; }
.system-points circle:nth-child(1) { animation-delay: .8s; stroke: var(--blue); }
.system-points circle:nth-child(2) { animation-delay: 1.5s; stroke: var(--blue); }
.system-points circle:nth-child(3) { animation-delay: 2.2s; stroke: var(--violet); }
.system-points circle:nth-child(4) { animation-delay: 2.9s; stroke: var(--amber); }
.system-points circle:nth-child(5) { animation-delay: 3.5s; stroke: var(--amber); }
@keyframes drawLivingLine { to { stroke-dashoffset: 0; } }
@keyframes pointIn { from { opacity: 0; transform: scale(.2); transform-origin: center; } to { opacity: 1; transform: scale(1); } }
.living-system__label {
    position: absolute; z-index: 2;
    padding: .35rem .6rem;
    border: 1px solid var(--line);
    background: rgba(251,250,247,.9);
    font-family: var(--mono); font-size: .57rem; letter-spacing: .1em; text-transform: uppercase;
}
.living-system__label--a { left: 8%; bottom: 16%; }
.living-system__label--b { right: 10%; bottom: 27%; }
.living-system__label--c { right: 16%; top: 17%; }
.living-system__legend {
    position: absolute; left: 28px; bottom: 22px;
    display: flex; gap: 1rem;
    font-family: var(--mono); font-size: .54rem; text-transform: uppercase;
}
.living-system__legend span { display: flex; align-items: center; gap: .35rem; }
.living-system__legend i { width: 6px; height: 6px; border-radius: 50%; }
.is-blue { background: var(--blue); }.is-violet { background: var(--violet); }.is-amber { background: var(--amber); }
.home-hero__facts {
    display: grid; grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.home-hero__facts span { padding: 1rem 1.4rem; border-right: 1px solid var(--line); color: var(--ink-soft); font-family: var(--mono); font-size: .63rem; letter-spacing: .04em; }
.home-hero__facts span:first-child { padding-left: 0; }
.home-hero__facts span:last-child { border-right: 0; }

/* HOME DIMENSIONS */
.dimensions { padding: clamp(6rem, 11vw, 12rem) 0; background: var(--paper-light); }
.dimension-list { border-top: 1px solid var(--line-strong); }
.dimension { border-bottom: 1px solid var(--line-strong); }
.dimension a {
    display: grid;
    grid-template-columns: 70px 100px minmax(0, 1fr) 60px;
    gap: 2rem;
    align-items: center;
    padding: clamp(2rem, 4vw, 4.2rem) 0;
    transition: padding .45s var(--ease), background .35s;
}
.dimension a:hover { padding-left: 2rem; padding-right: 2rem; }
.dimension--professional a:hover { background: rgba(22,87,216,.06); }
.dimension--research a:hover { background: rgba(116,83,214,.06); }
.dimension--astronomy a:hover { background: rgba(194,122,43,.07); }
.dimension__number { font-family: var(--mono); font-size: .67rem; color: var(--muted); }
.dimension__icon { width: 74px; height: 74px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; }
.dimension__icon svg { width: 30px; height: 30px; }
.dimension--professional .dimension__icon { color: var(--blue); }
.dimension--research .dimension__icon { color: var(--violet); }
.dimension--astronomy .dimension__icon { color: var(--amber); }
.dimension__body { display: grid; grid-template-columns: minmax(220px, .55fr) minmax(300px, 1fr); gap: 3rem; align-items: center; }
.dimension__body .meta-label { grid-column: 1 / -1; margin: 0 0 -2rem; }
.dimension__body h3 { margin: 0; font-size: clamp(2.4rem, 4vw, 4.7rem); }
.dimension__body p { margin: 0; max-width: 650px; color: var(--ink-soft); }
.dimension__arrow { font-size: 1.5rem; transition: transform .35s var(--ease); }
.dimension a:hover .dimension__arrow { transform: translate(6px, -6px); }

/* SELECTED WORK */
.selected-work { padding: clamp(6rem, 11vw, 12rem) 0; }
.case-stack { display: grid; gap: 2rem; }
.case-study { overflow: hidden; background: var(--paper-light); border: 1px solid var(--line); }
.case-study--wide { display: grid; grid-template-columns: 1.25fr .75fr; min-height: 620px; }
.case-study__media { position: relative; min-height: 460px; overflow: hidden; background: #d9d6cf; }
.case-study__media video { width: 100%; height: 100%; object-fit: cover; }
.case-study__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 55%, rgba(16,23,34,.18)); pointer-events: none; }
.case-study__index, .project-feature__code, .system-project__code {
    position: absolute; top: 22px; left: 22px; z-index: 3;
    padding: .4rem .6rem; background: rgba(251,250,247,.88); border: 1px solid rgba(16,23,34,.18);
    font-family: var(--mono); font-size: .58rem; letter-spacing: .1em;
}
.case-study__content { padding: clamp(2.4rem, 5vw, 5.5rem); align-self: center; }
.case-study__content h3 { margin-bottom: 1.4rem; }
.case-study__content p { color: var(--ink-soft); margin-bottom: 1.7rem; }
.case-study-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.case-study-pair .case-study { min-height: 630px; display: flex; flex-direction: column; }
.case-study__data-visual, .case-study__research-visual { position: relative; min-height: 320px; overflow: hidden; }
.case-study__data-visual { background: #e7ecf8; }
.case-study__data-visual .data-axis { position: absolute; background: rgba(22,87,216,.18); }
.data-axis--x { left: 10%; right: 8%; bottom: 17%; height: 1px; }
.data-axis--y { left: 10%; top: 12%; bottom: 17%; width: 1px; }
.case-study__data-visual > i { position: absolute; left: var(--x); bottom: 17%; width: 8%; height: var(--h); background: rgba(22,87,216,.2); border-top: 2px solid var(--blue); }
.case-study__data-visual svg { position: absolute; inset: 8% 7% 12% 8%; width: 85%; height: 80%; }
.case-study__data-visual path { fill: none; stroke: var(--blue); stroke-width: 3; }
.case-study__research-visual { background: var(--night); }
.research-ring { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(196,178,255,.32); border-radius: 50%; transform: translate(-50%,-50%) rotate(-18deg); }
.research-ring--one { width: 110px; height: 110px; }
.research-ring--two { width: 220px; height: 92px; transform: translate(-50%,-50%) rotate(44deg); }
.research-ring--three { width: 300px; height: 130px; transform: translate(-50%,-50%) rotate(104deg); }
.research-core { position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 40px 12px rgba(116,83,214,.55); transform: translate(-50%,-50%); }
.case-study--research .case-study__content { background: #151129; color: white; flex: 1; }
.case-study--research .case-study__content p, .case-study--research .meta-label { color: rgba(255,255,255,.66); }
.case-study--research .text-link { color: white; border-color: rgba(255,255,255,.35); }


/* V48.4.3 — Home professional process */
.home-process { padding:clamp(6rem,10vw,11rem) 0; background:var(--paper-light); border-block:1px solid var(--line); }
.home-process__rail { list-style:none; margin:clamp(3rem,6vw,5rem) 0 0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line-strong); border-left:1px solid var(--line-strong); }
.home-process__rail li { min-height:150px; padding:1.3rem; display:flex; flex-direction:column; justify-content:space-between; gap:2rem; border-right:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); background:rgba(255,255,255,.35); transition:background .25s ease, transform .25s ease; }
.home-process__rail li:hover { background:white; transform:translateY(-4px); }
.home-process__rail li span { color:var(--muted); font: .55rem/1 var(--mono); letter-spacing:.08em; }
.home-process__rail li strong { font-family:var(--serif); font-size:clamp(1.3rem,2vw,2rem); font-weight:400; letter-spacing:-.025em; }
.home-process__cta { display:flex; justify-content:space-between; gap:2rem; align-items:center; padding-top:1.5rem; font-family:var(--mono); font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; }
.home-process__cta > span { color:var(--muted); }
.home-improvement-principle { margin-top:clamp(4rem,8vw,7rem); padding:clamp(2.5rem,5vw,5rem); border:1px solid var(--line-strong); background:var(--night); color:white; }
.home-improvement-principle .meta-label { color:rgba(255,255,255,.52); }
.home-improvement-principle blockquote { margin:.8rem 0 1.3rem; max-width:1100px; font-family:var(--serif); font-size:clamp(2.7rem,5vw,5.8rem); line-height:1.02; }
.home-improvement-principle p { max-width:760px; margin:0 0 0 auto; color:rgba(255,255,255,.62); }

/* NOW */
.current-state { padding: clamp(6rem, 10vw, 10rem) 0; background: var(--paper-deep); }
.current-state__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(4rem, 10vw, 11rem); }
.current-state__intro h2 { font-size: clamp(2.8rem, 4.5vw, 5rem); }
.current-state__intro > p:last-child { max-width: 520px; color: var(--ink-soft); }
.current-state__list { border-top: 1px solid var(--line-strong); }
.status-row { display: grid; grid-template-columns: 16px 1fr auto; gap: 1.4rem; align-items: start; padding: 2rem 0; border-bottom: 1px solid var(--line-strong); }
.status-row__pulse { width: 9px; height: 9px; margin-top: .5rem; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 7px rgba(22,87,216,.10); }
.status-row__pulse--violet { background: var(--violet); box-shadow: 0 0 0 7px rgba(116,83,214,.10); }
.status-row__pulse--amber { background: var(--amber); box-shadow: 0 0 0 7px rgba(194,122,43,.12); }
.status-row strong { font-size: 1.05rem; }
.status-row p { margin: .25rem 0 0; color: var(--ink-soft); }
.status-row > a { font-size: 1.3rem; }

/* CONTACT */
.contact-stage { padding: clamp(6rem, 11vw, 11rem) 0; background: var(--ink); color: white; }
.contact-stage__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 7vw; align-items: end; }
.contact-stage .eyebrow { color: rgba(255,255,255,.55); }
.contact-stage .eyebrow span { color: white; }
.contact-stage h2 { max-width: 900px; margin: 0; font-size: clamp(4rem, 7vw, 8rem); }
.contact-stage__copy p { color: rgba(255,255,255,.66); max-width: 480px; margin-bottom: 2rem; }

/* GENERIC PAGE HERO */
.page-hero { position: relative; padding: 170px 0 0; overflow: hidden; }
.page-hero::before {
    content: ""; position: absolute; inset: 0;
    background-image: linear-gradient(rgba(16,23,34,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(16,23,34,.04) 1px, transparent 1px);
    background-size: 72px 72px; mask-image: linear-gradient(to bottom, black, transparent 85%); pointer-events: none;
}
.page-hero__grid { min-height: 720px; display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; align-items: center; position: relative; }
.page-hero__copy { position: relative; z-index: 2; }
.page-hero h1 { margin-bottom: 2rem; font-size: clamp(4rem, 7.2vw, 8rem); }
.page-hero__lead { max-width: 760px; color: var(--ink-soft); font-size: clamp(1.05rem, 1.35vw, 1.3rem); margin-bottom: 2rem; }
.page-hero__status { display: flex; align-items: center; gap: .7rem; margin-bottom: 2rem; font-family: var(--mono); font-size: .67rem; letter-spacing: .05em; text-transform: uppercase; }
.page-hero__status i { width: 8px; height: 8px; border-radius: 50%; background: #1c9b5c; box-shadow: 0 0 0 6px rgba(28,155,92,.1); }
.metric-rail { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); position: relative; z-index: 2; }
.metric-rail > div { display: flex; flex-direction: column; padding: 1.5rem 2rem; border-right: 1px solid var(--line); }
.metric-rail > div:first-child { padding-left: 0; }
.metric-rail > div:last-child { border-right: 0; }
.metric-rail strong { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -.03em; }
.metric-rail span { color: var(--muted); font-family: var(--mono); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }

/* PROFESSIONAL */
.page-hero--professional { padding-bottom: 0; }
.professional-portrait { min-height: 610px; position: relative; }
.professional-portrait__media { width: min(70%, 440px); height: 560px; margin-left: auto; position: relative; overflow: hidden; border-radius: 220px 220px 18px 18px; background: #c9c6bf; box-shadow: var(--shadow); }
.professional-portrait__media video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75) contrast(1.04); }
.professional-portrait__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16,23,34,.5), transparent 40%); }
.professional-portrait__caption { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 22px; color: white; font-size: .72rem; line-height: 1.3; }
.professional-portrait__caption b { display: block; font-family: var(--serif); font-size: 2.4rem; font-weight: 400; }
.professional-portrait--system-only { display: grid; place-items: center; }
.professional-portrait--system-only .professional-orbit { position: relative; left: auto; bottom: auto; }
.professional-orbit { position: absolute; width: 330px; height: 330px; left: 0; bottom: 10px; border: 1px solid var(--line); border-radius: 50%; background: rgba(243,240,233,.76); backdrop-filter: blur(10px); }
.professional-orbit::before, .professional-orbit::after { content: ""; position: absolute; inset: 15%; border: 1px solid var(--line); border-radius: 50%; }
.professional-orbit::after { inset: 33%; }
.professional-orbit > span {
    position: absolute; left: 50%; top: 50%;
    transform: translate(-50%,-50%) rotate(var(--a)) translateX(145px) rotate(calc(var(--a) * -1));
    padding: .3rem .45rem; background: var(--paper); font-family: var(--mono); font-size: .52rem; text-transform: uppercase;
}
.professional-orbit > i { position: absolute; inset: 39%; display: grid; place-items: center; text-align: center; font-family: var(--mono); font-size: .5rem; font-style: normal; line-height: 1.25; }
.position-statement { padding: clamp(6rem, 10vw, 11rem) 0; }
.position-statement__grid { display: grid; grid-template-columns: .45fr 1.55fr; gap: 6vw; }
.position-statement blockquote { margin: 0; max-width: 1100px; font-size: clamp(2.7rem, 4.7vw, 5.3rem); line-height: 1.02; }

/* V48.4.3 — Career origin */
.professional-origin { padding: clamp(6rem, 10vw, 11rem) 0; background: #ece8df; border-block: 1px solid var(--line); }
.professional-origin__grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(3rem,8vw,8rem); align-items:start; }
.professional-origin__intro h2 { font-size:clamp(3rem,5vw,5.2rem); }
.professional-origin__intro > p:not(.eyebrow) { max-width:680px; color:var(--ink-soft); }
.professional-origin__steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line-strong); border-left:1px solid var(--line-strong); }
.origin-step { min-height:260px; padding:clamp(1.5rem,3vw,2.5rem); border-right:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); background:rgba(255,255,255,.34); }
.origin-step > span { color:var(--blue); font: .58rem/1 var(--mono); letter-spacing:.08em; }
.origin-step h3 { margin:4.2rem 0 .9rem; font-size:clamp(2rem,3vw,3.1rem); }
.origin-step p { margin:0; color:var(--ink-soft); }
.professional-origin__principle { padding-top:clamp(3rem,6vw,5rem); }
.professional-origin__principle p { margin:0 0 0 auto; max-width:980px; padding-top:1.6rem; border-top:1px solid var(--line-strong); font-family:var(--serif); font-size:clamp(2rem,3.8vw,4.2rem); line-height:1.04; }

.professional-cases { padding: clamp(6rem, 10vw, 11rem) 0; background: var(--paper-light); }
.project-feature { display: grid; grid-template-columns: 1.2fr .8fr; min-height: 650px; border: 1px solid var(--line); background: white; }
.project-feature__media { position: relative; overflow: hidden; min-height: 540px; }
.project-feature__media video { width: 100%; height: 100%; object-fit: cover; }
.project-feature__content { align-self: center; padding: clamp(2.5rem, 5vw, 5.5rem); }
.project-feature__content h3 { margin-bottom: 1.5rem; }
.project-feature__content > p { color: var(--ink-soft); }
.inline-facts { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 2rem 0 0; list-style: none; }
.inline-facts li { padding: .45rem .65rem; border: 1px solid var(--line); font-family: var(--mono); font-size: .57rem; text-transform: uppercase; }
.system-projects { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2rem; }
.system-project { min-height: 620px; padding: 2rem; position: relative; overflow: hidden; border: 1px solid var(--line); }
.system-project--blue { background: #e9eef9; }
.system-project--dark { background: var(--night); color: white; }
.system-project .system-project__code { position: static; display: inline-flex; margin-bottom: 2rem; }
.system-project__visual { height: 270px; margin-bottom: 2.2rem; position: relative; }
.system-project h3 { margin-bottom: 1rem; }
.system-project p { color: var(--ink-soft); max-width: 620px; }
.system-project--dark p, .system-project--dark .meta-label { color: rgba(255,255,255,.62); }
.dashboard-mini { border: 1px solid rgba(22,87,216,.25); background: rgba(255,255,255,.55); padding: 1rem; }
.dashboard-mini__head { display: flex; gap: 5px; }.dashboard-mini__head i { width: 6px; height: 6px; border-radius: 50%; background: rgba(22,87,216,.35); }
.dashboard-mini__metric { position: absolute; left: 6%; top: 22%; display: flex; flex-direction: column; }.dashboard-mini__metric b { font-family: var(--serif); font-size: 4rem; font-weight: 400; color: var(--blue); }.dashboard-mini__metric span { font-family: var(--mono); font-size: .52rem; }
.dashboard-mini__bars { position: absolute; left: 42%; right: 5%; bottom: 12%; top: 18%; display: flex; align-items: end; gap: 6%; border-bottom: 1px solid rgba(22,87,216,.2); }
.dashboard-mini__bars i { width: 12%; height: var(--v); background: rgba(22,87,216,.18); border-top: 2px solid var(--blue); }
.dashboard-mini svg { position: absolute; left: 40%; right: 4%; top: 14%; width: 56%; height: 55%; }.dashboard-mini path { fill: none; stroke: var(--blue); stroke-width: 3; }
.telemetry-mini { border: 1px solid rgba(255,255,255,.16); }
.telemetry-mini__core { position: absolute; left: 50%; top: 50%; width: 78px; height: 78px; display: grid; place-items: center; border: 1px solid var(--violet); border-radius: 50%; transform: translate(-50%,-50%); font-family: var(--mono); font-size: .65rem; box-shadow: 0 0 40px rgba(116,83,214,.35); }
.telemetry-mini i { position: absolute; left: var(--x); top: var(--y); width: 12px; height: 12px; border: 2px solid var(--violet); border-radius: 50%; }
.telemetry-mini svg { width: 100%; height: 100%; }.telemetry-mini path { stroke: rgba(116,83,214,.55); stroke-width: 1; fill: none; }

.electronics-capability { padding: clamp(6rem, 10vw, 11rem) 0; background: var(--paper); border-top: 1px solid var(--line); }
.electronics-gallery { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .55fr); gap: 1rem; margin-top: 3.5rem; }
.electronics-gallery__side { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 1rem; min-width: 0; }
.electronics-shot { position: relative; display: block; min-width: 0; min-height: 250px; overflow: hidden; border: 1px solid var(--line-strong); background: #111722; }
.electronics-shot--main { min-height: 570px; }
.electronics-shot img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .35s ease, filter .35s ease; }
.electronics-shot::after { content: ""; position: absolute; inset: auto 0 0; height: 34%; background: linear-gradient(to top, rgba(7,13,22,.78), transparent); pointer-events: none; }
.electronics-shot > span { position: absolute; z-index: 2; left: 1rem; bottom: .9rem; display: inline-flex; align-items: center; gap: .65rem; color: #fff; font: .64rem/1.2 var(--mono); letter-spacing: .035em; text-transform: uppercase; }
.electronics-shot > span b { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; font-weight: 500; }
.electronics-shot:hover img { transform: scale(1.012); filter: brightness(1.03); }
.electronics-capability__foot { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: 4vw; align-items: start; padding-top: 2rem; }
.electronics-capability__foot > p { margin: 0; max-width: 850px; color: var(--ink-soft); }
.electronics-capability__foot .project-tags { justify-content: flex-end; margin: 0; }

.delivery-sequence { padding: clamp(6rem, 10vw, 11rem) 0; }
.process-line { display: grid; grid-template-columns: repeat(6, 1fr); padding: 0; margin: 0; list-style: none; position: relative; }
.process-line::before { content: ""; position: absolute; left: 0; right: 0; top: 30px; height: 1px; background: var(--line-strong); }
.process-line li { position: relative; padding: 4.5rem 2rem 0 0; }
.process-line li > span { position: absolute; top: 18px; left: 0; width: 25px; height: 25px; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--ink); border-radius: 50%; font-family: var(--mono); font-size: .5rem; }
.process-line h3 { font-family: var(--sans); font-size: 1rem; font-weight: 600; letter-spacing: 0; }
.process-line p { color: var(--ink-soft); font-size: .9rem; }
.capability-map { padding: clamp(6rem, 10vw, 11rem) 0; background: var(--paper-deep); }
.capability-map__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.capability-map__intro h2 { font-size: clamp(3rem, 4.7vw, 5.2rem); }
.capability-map__intro > p:last-child { color: var(--ink-soft); }
.capability-map__list { border-top: 1px solid var(--line-strong); }
.capability-row { border-bottom: 1px solid var(--line-strong); }
.capability-row summary { display: grid; grid-template-columns: 60px 1fr auto; align-items: center; padding: 1.7rem 0; cursor: pointer; list-style: none; }
.capability-row summary::-webkit-details-marker { display: none; }
.capability-row summary span { font-family: var(--mono); font-size: .58rem; color: var(--muted); }
.capability-row summary strong { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -.025em; }
.capability-row summary i { font-style: normal; font-size: 1.4rem; transition: transform .3s; }
.capability-row[open] summary i { transform: rotate(45deg); }
.capability-row p { margin: 0 0 1.7rem 60px; max-width: 760px; color: var(--ink-soft); }

/* RESEARCH */
.page-hero--research { background: linear-gradient(135deg, #f3f0e9 0%, #eee9f7 100%); }
.research-map { min-height: 610px; position: relative; border: 1px solid rgba(116,83,214,.2); border-radius: 50%; overflow: hidden; background: rgba(255,255,255,.35); }
.research-map__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(116,83,214,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(116,83,214,.06) 1px, transparent 1px); background-size: 54px 54px; }
.research-map svg { width: 100%; height: 100%; position: absolute; inset: 0; }
.research-map__links path { fill: none; stroke: rgba(116,83,214,.36); stroke-width: 1.2; }
.research-map__nodes circle { fill: #f3f0e9; stroke: var(--violet); stroke-width: 2; filter: drop-shadow(0 0 10px rgba(116,83,214,.28)); }
.research-map__core { position: absolute; left: 50%; top: 51%; width: 126px; height: 126px; display: grid; place-content: center; text-align: center; border-radius: 50%; background: var(--violet-deep); color: white; transform: translate(-50%,-50%); box-shadow: 0 0 0 18px rgba(116,83,214,.08), 0 0 70px rgba(116,83,214,.25); }
.research-map__core > span { font-family: var(--serif); font-size: 1.8rem; }.research-map__core small { font-family: var(--mono); font-size: .48rem; text-transform: uppercase; }
.research-map__tag { position: absolute; padding: .35rem .55rem; border: 1px solid rgba(116,83,214,.25); background: rgba(251,250,247,.8); font-family: var(--mono); font-size: .53rem; text-transform: uppercase; }
.research-map__tag--one { left: 10%; bottom: 24%; }.research-map__tag--two { left: 36%; top: 14%; }.research-map__tag--three { right: 8%; bottom: 31%; }.research-map__tag--four { right: 18%; top: 16%; }
.metric-rail--research { border-color: rgba(116,83,214,.3); }
.research-principles { padding: clamp(6rem, 10vw, 11rem) 0; }
.principle-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); }
.principle-strip article { padding: 2rem; border-right: 1px solid var(--line); }.principle-strip article:first-child { padding-left: 0; }.principle-strip article:last-child { border-right: 0; }
.principle-strip span { font-family: var(--mono); font-size: .58rem; color: var(--violet); }.principle-strip h3 { margin: 1rem 0 .7rem; font-family: var(--sans); font-size: 1rem; font-weight: 600; letter-spacing: 0; }.principle-strip p { margin: 0; color: var(--ink-soft); font-size: .9rem; }
.featured-research { padding: clamp(6rem, 10vw, 11rem) 0; background: var(--night); color: white; }
.featured-research .eyebrow { color: rgba(255,255,255,.5); }.featured-research .eyebrow span { color: white; }
.featured-records { border-top: 1px solid rgba(255,255,255,.25); }
.featured-record { display: grid; grid-template-columns: 170px 1fr 50px; gap: 2rem; padding: 3rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.featured-record__meta { display: flex; flex-direction: column; gap: .5rem; font-family: var(--mono); font-size: .58rem; color: rgba(255,255,255,.48); text-transform: uppercase; }
.featured-record__meta span:first-child { color: var(--violet); font-size: 1rem; }
.featured-record__body h3 { margin-bottom: 1rem; max-width: 950px; }
.featured-record__body p { color: rgba(255,255,255,.62); max-width: 900px; }
.record-tags { display: flex; flex-wrap: wrap; gap: .45rem; }.record-tags span { padding: .32rem .52rem; border: 1px solid rgba(255,255,255,.18); font-family: var(--mono); font-size: .5rem; text-transform: uppercase; }
.featured-record__link { font-size: 1.5rem; transition: transform .3s; }.featured-record__link:hover { transform: translate(5px,-5px); }
.research-archive { padding: clamp(6rem, 10vw, 11rem) 0; }
.archive-header { display: flex; justify-content: space-between; gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
.archive-header h2 { margin-bottom: 0; font-size: clamp(3rem, 5vw, 5.2rem); }
.archive-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.archive-filters button { padding: .55rem .8rem; border: 1px solid var(--line); border-radius: 999px; background: transparent; font-family: var(--mono); font-size: .55rem; text-transform: uppercase; cursor: pointer; }
.archive-filters button.is-active, .archive-filters button:hover { background: var(--violet-deep); color: white; border-color: var(--violet-deep); }
.archive-notice { margin: 0 0 2rem; color: var(--muted); font-family: var(--mono); font-size: .57rem; }
.archive-list { border-top: 1px solid var(--line-strong); }
.publication-row { display: grid; grid-template-columns: 70px 160px 1fr 40px; gap: 1.5rem; padding: 2.2rem 0; border-bottom: 1px solid var(--line); align-items: start; }
.publication-row[hidden] { display: none !important; }
.publication-row__index { font-family: var(--mono); font-size: .58rem; color: var(--violet); }
.publication-row__meta { display: flex; flex-direction: column; gap: .3rem; color: var(--muted); font-family: var(--mono); font-size: .53rem; text-transform: uppercase; }
.publication-row__content h3 { margin: 0 0 .8rem; font-size: clamp(1.5rem, 2.2vw, 2.4rem); }
.publication-row__content p { max-width: 900px; margin: 0 0 .7rem; color: var(--ink-soft); font-size: .95rem; }
.publication-row__content small { color: var(--muted); font-family: var(--mono); font-size: .54rem; }
.publication-row > a { font-size: 1.25rem; }

/* ASTRONOMY */
.astronomy-v47 { background: var(--night); color: white; }
.astro-hero { min-height: 100svh; position: relative; display: flex; align-items: flex-end; overflow: hidden; }
.astro-hero__media, .astro-hero__veil { position: absolute; inset: 0; }
.astro-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.astro-hero__veil { background: linear-gradient(90deg, rgba(4,8,16,.9) 0%, rgba(4,8,16,.62) 48%, rgba(4,8,16,.2) 100%), linear-gradient(to top, rgba(4,8,16,.9), transparent 55%); }
.astro-hero__content { position: relative; z-index: 2; padding: 170px 0 130px; }
.astro-hero .eyebrow { color: rgba(255,255,255,.5); }.astro-hero .eyebrow span { color: white; }
.astro-hero h1 { max-width: 1100px; margin-bottom: 2rem; font-size: clamp(4rem, 7.5vw, 8.5rem); }
.astro-hero__content > p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.7); font-size: 1.15rem; margin-bottom: 2rem; }
.astro-hero__coordinates { position: absolute; z-index: 2; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 2rem; color: rgba(255,255,255,.45); font-family: var(--mono); font-size: .55rem; text-transform: uppercase; }
.astro-path { padding: clamp(7rem, 11vw, 12rem) 0; background: #0a101e; }
.astro-path .eyebrow, .astro-path .editorial-heading--split > p { color: rgba(255,255,255,.5); }.astro-path .eyebrow span { color: white; }
.light-sequence { border-top: 1px solid rgba(255,255,255,.2); }
.light-step { display: grid; grid-template-columns: 1.1fr .9fr; gap: 6vw; align-items: center; padding: 5rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.light-step:nth-child(even) .light-step__visual { order: 2; }.light-step:nth-child(even) > div:last-child { order: 1; }
.light-step__visual { min-height: 360px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.12); background: #0d1628; }
.light-step__visual > b { position: absolute; top: 18px; left: 18px; font-family: var(--mono); font-size: .6rem; font-weight: 400; }
.light-step .meta-label { color: rgba(255,255,255,.45); }.light-step h3 { font-size: clamp(2.5rem, 4vw, 4.6rem); }.light-step p { color: rgba(255,255,255,.62); max-width: 620px; }
.star-field { position: absolute; inset: 0; background-image: radial-gradient(circle at 15% 22%, white 0 1px, transparent 1.5px), radial-gradient(circle at 74% 18%, white 0 1px, transparent 1.5px), radial-gradient(circle at 65% 68%, white 0 1.5px, transparent 2px), radial-gradient(circle at 30% 73%, white 0 1px, transparent 1.5px), radial-gradient(circle at 88% 48%, white 0 1px, transparent 1.5px); opacity: .8; }
.telescope-line { position: absolute; left: 18%; bottom: 14%; width: 48%; height: 9px; border: 1px solid rgba(255,255,255,.6); transform: rotate(-28deg); transform-origin: left; }.telescope-line::after { content:""; position:absolute; width:80px; height:80px; right:-40px; top:-37px; border:1px solid var(--amber); border-radius:50%; box-shadow:0 0 35px rgba(194,122,43,.25); }
.nebula { position: absolute; width: 60%; height: 60%; left: 50%; top: 50%; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(255,210,160,.75), rgba(116,83,214,.5) 28%, rgba(30,76,150,.18) 58%, transparent 73%); filter: blur(9px); transform: translate(-50%,-50%) rotate(-18deg); }
.sensor-grid { position: absolute; inset: 12%; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 32px 32px; }
.outreach-orbit { position: absolute; left: 50%; top: 50%; width: 210px; height: 210px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; transform: translate(-50%,-50%); }.light-step__visual--outreach > i { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--amber); }.light-step__visual--outreach > i:nth-of-type(1){left:23%;top:30%}.light-step__visual--outreach > i:nth-of-type(2){right:21%;top:36%}.light-step__visual--outreach > i:nth-of-type(3){left:48%;bottom:16%}
.community-core { position: absolute; left: 50%; top: 50%; width: 90px; height: 90px; display: grid; place-items: center; border: 1px solid var(--amber); border-radius: 50%; transform: translate(-50%,-50%); font-family: var(--serif); font-size: 2.5rem; }.light-step__visual--community > i { position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; border: 1px solid white; border-radius: 50%; transform: translate(-50%,-50%) rotate(var(--a)) translateX(140px); }
.astro-observation-room { padding: clamp(7rem, 11vw, 12rem) 0; background: #f0ece4; color: var(--ink); }
.astro-observation-room__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 7vw; align-items: center; }
.astro-observation-room__sky { min-height: 650px; }
.sky-map { height: 650px; position: relative; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #162540, #07101f 70%); box-shadow: var(--shadow); }
.sky-map__circle { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; transform: translate(-50%,-50%); }.sky-map__circle--one{width:35%;height:35%}.sky-map__circle--two{width:65%;height:65%}.sky-map__circle--three{width:90%;height:90%}
.sky-map svg { position: absolute; inset: 0; width: 100%; height: 100%; }.sky-map path { fill:none;stroke:rgba(194,122,43,.6);stroke-width:1.5; }
.sky-map > i { position: absolute; left: var(--x); top: var(--y); width: 7px; height: 7px; border-radius: 50%; background: white; box-shadow: 0 0 13px white; }
.sky-map__label { position: absolute; left: 50%; top: 6%; transform: translateX(-50%); font-family: var(--mono); color: white; }
.astro-observation-room__copy h2 { font-size: clamp(3rem, 5vw, 5.6rem); }.astro-observation-room__copy > p { color: var(--ink-soft); }
.astro-facts { margin-top: 2rem; border-top: 1px solid var(--line-strong); }.astro-facts > div { display:grid;grid-template-columns:130px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line); }.astro-facts dt { font-family:var(--mono);font-size:.58rem;text-transform:uppercase;color:var(--amber); }.astro-facts dd { margin:0; }
.astro-manifesto { padding: clamp(7rem, 12vw, 13rem) 0; background: radial-gradient(circle at 80% 20%, rgba(116,83,214,.22), transparent 32%), #070b13; }
.astro-manifesto .eyebrow { color: rgba(255,255,255,.5); }.astro-manifesto .eyebrow span { color: white; }.astro-manifesto blockquote { max-width: 1200px; font-size: clamp(3.7rem, 6vw, 7rem); line-height: .98; }

/* ABOUT */
.page-hero--about { background: linear-gradient(135deg, #f3f0e9, #e8edf4); }
.about-system { min-height: 620px; position: relative; }
.about-system__core { position:absolute;left:50%;top:50%;width:130px;height:130px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:white;transform:translate(-50%,-50%);font-family:var(--serif);font-size:2.6rem;z-index:2; }
.about-system__orbit { position:absolute;left:50%;top:50%;border:1px solid var(--line-strong);border-radius:50%;transform:translate(-50%,-50%); }.about-system__orbit--one{width:260px;height:260px}.about-system__orbit--two{width:410px;height:410px}.about-system__orbit--three{width:570px;height:570px}
.about-system__node { position:absolute;padding:.5rem .7rem;background:var(--paper-light);border:1px solid var(--line);font-family:var(--mono);font-size:.56rem;font-style:normal;text-transform:uppercase; }.about-system__node--p{left:4%;top:53%;color:var(--blue)}.about-system__node--r{right:5%;top:27%;color:var(--violet)}.about-system__node--a{right:15%;bottom:10%;color:var(--amber)}
.about-story { padding: clamp(7rem, 11vw, 12rem) 0; }
.about-story__grid { display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw; }
.about-story__large { font-family:var(--serif);font-size:clamp(2.4rem,3.6vw,4rem);line-height:1.05;letter-spacing:-.03em; }
.about-story__text { font-size:clamp(1.08rem,1.35vw,1.3rem);color:var(--ink-soft); }.about-story__text p { margin-bottom:2rem; }
.about-education { padding: clamp(5rem, 8vw, 8rem) 0; border-block: 1px solid var(--line); background: var(--paper); }
.about-education__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; align-items: start; }
.about-education__intro h2 { font-size: clamp(2.4rem, 3.8vw, 4rem); line-height: 1.02; max-width: 560px; margin-bottom: 1.4rem; }
.about-education__intro > p:last-child { color: var(--ink-soft); max-width: 530px; margin: 0; }
.education-list { margin: 0; border-top: 1px solid var(--line-strong); }
.education-item { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.education-item dt { font: .62rem/1.5 var(--mono); color: var(--muted); letter-spacing: .03em; }
.education-item dd { margin: 0; display: grid; gap: .45rem; }
.education-item strong { font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.15; font-weight: 500; letter-spacing: -.025em; }
.education-item span { color: var(--ink-soft); font-size: .92rem; }
.education-item--field-only { grid-template-columns: 1fr; }
.education-item--field-only dd { grid-column: 1; }
.about-timeline { padding: clamp(6rem, 10vw, 11rem) 0; background:var(--paper-light); }
.timeline-line { padding:0;margin:0;list-style:none;border-top:1px solid var(--line-strong); }
.timeline-line li { display:grid;grid-template-columns:170px 1fr;gap:2rem;padding:2.3rem 0;border-bottom:1px solid var(--line); }.timeline-line li > span { font-family:var(--mono);font-size:.62rem;color:var(--muted); }.timeline-line h3 { font-family:var(--sans);font-size:1.05rem;font-weight:600;letter-spacing:0;margin-bottom:.45rem; }.timeline-line p { margin:0;color:var(--ink-soft); }
.about-dimensions { padding: clamp(7rem, 11vw, 12rem) 0; }
.about-dimension-grid { display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong); }
.about-dimension { min-height:420px;padding:2rem;display:flex;flex-direction:column;border-right:1px solid var(--line);transition:background .35s,transform .35s var(--ease); }.about-dimension:last-child{border-right:0}.about-dimension:hover{transform:translateY(-10px)}.about-dimension--p:hover{background:rgba(22,87,216,.07)}.about-dimension--r:hover{background:rgba(116,83,214,.07)}.about-dimension--a:hover{background:rgba(194,122,43,.08)}
.about-closing-portrait { padding: clamp(5rem, 8vw, 9rem) 0; border-top: 1px solid var(--line); background: var(--paper-light); }
.about-closing-portrait__inner { display: flex; justify-content: flex-end; }
.about-closing-portrait__media { width: min(100%, 420px); aspect-ratio: 11 / 14; position: relative; overflow: hidden; border-radius: 210px 210px 18px 18px; background: #c9c6bf; box-shadow: var(--shadow); }
.about-closing-portrait__media video { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.75) contrast(1.04); }
.about-closing-portrait__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(16,23,34,.12), transparent 35%); pointer-events: none; }
.about-dimension > span{font-family:var(--mono);font-size:.58rem;color:var(--muted)}.about-dimension h3{margin:auto 0 1rem;font-size:3.5rem}.about-dimension p{color:var(--ink-soft)}.about-dimension i{font-style:normal;font-size:1.5rem;align-self:flex-end}

/* MANIFESTO */
.manifesto-band { padding: clamp(7rem, 12vw, 13rem) 0; color:white; }
.manifesto-band--blue { background: var(--blue-deep); }.manifesto-band--violet { background: var(--violet-deep); }.manifesto-band--ink { background: var(--ink); }
.manifesto-band .eyebrow { color:rgba(255,255,255,.55); }.manifesto-band .eyebrow span{color:white}.manifesto-band blockquote{max-width:1200px;font-size:clamp(3.4rem,5.7vw,6.8rem);line-height:.98;margin-bottom:3rem}

/* FOOTER */
.site-footer { position: relative; z-index: 80; isolation: isolate; padding: 5rem 0 1.5rem; background: #090e16; color: white; }
.site-footer a { position: relative; z-index: 2; pointer-events: auto; cursor: pointer; }
.site-footer__grid { display:grid;grid-template-columns:1.5fr repeat(3,.55fr);gap:5vw;padding-bottom:4rem; }
.site-footer__mark { width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;font-family:var(--mono);font-size:.72rem;margin-bottom:1.4rem; }
.site-footer__brand p { max-width:520px;color:rgba(255,255,255,.62); }
.site-footer__column { display:flex;flex-direction:column;gap:.75rem; }.site-footer .meta-label { color:rgba(255,255,255,.4);margin-bottom:.4rem; }.site-footer__column a,.site-footer__column span:not(.meta-label){font-size:.82rem;color:rgba(255,255,255,.75)}.site-footer__column a:hover{color:white}
.site-footer__bottom { display:flex;justify-content:space-between;gap:2rem;padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.14);font-family:var(--mono);font-size:.53rem;color:rgba(255,255,255,.42);text-transform:uppercase; }

/* GENERIC WP + 404 + MAINTENANCE */
.entry-page { padding: 160px 0 8rem; }.entry-page__content { max-width: 900px; margin:auto; }.entry-page h1 { font-size:clamp(3rem,6vw,6rem); }
.maintenance-page { min-height:100svh;display:grid;place-items:center;padding:2rem;background:var(--paper); }.maintenance-card { max-width:760px;padding:clamp(2rem,6vw,5rem);border:1px solid var(--line);background:var(--paper-light);box-shadow:var(--shadow); }.maintenance-card h1 { font-size:clamp(3rem,6vw,6rem); }.maintenance-card p { color:var(--ink-soft); }

/* RESPONSIVE */
@media (max-width: 1180px) {
    :root { --shell: min(100% - 48px, 1120px); }
    .site-header__inner { grid-template-columns: auto 1fr auto auto; }
    .nav-toggle { display:inline-flex;align-items:center;gap:.7rem;justify-self:end;border:0;background:transparent;z-index:910;cursor:pointer;font-family:var(--mono);font-size:.62rem;text-transform:uppercase; }
    .nav-toggle__icon { width:28px;height:18px;position:relative; }.nav-toggle__icon i{position:absolute;left:0;width:100%;height:1px;background:var(--ink);transition:transform .3s,top .3s}.nav-toggle__icon i:first-child{top:4px}.nav-toggle__icon i:last-child{top:13px}.nav-toggle[aria-expanded="true"] .nav-toggle__icon i:first-child{top:8px;transform:rotate(45deg)}.nav-toggle[aria-expanded="true"] .nav-toggle__icon i:last-child{top:8px;transform:rotate(-45deg)}
    .primary-nav { position:fixed;inset:0;z-index:900;background:rgba(243,240,233,.98);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s; }
    .primary-nav.is-open { opacity:1;visibility:visible; }
    .primary-nav__panel { width:var(--shell);height:100%;margin:auto;padding:120px 0 40px;display:flex;flex-direction:column;align-items:stretch;gap:0;overflow:auto; }
    .primary-nav__index { display:block;margin-bottom:1rem;font-family:var(--mono);font-size:.58rem;color:var(--muted); }
    .primary-nav a { display:grid;grid-template-columns:45px 1fr;padding:.7rem 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(2.2rem,6vw,4.8rem);font-weight:400;letter-spacing:-.035em;line-height:1.05; }
    .primary-nav a > span:first-child { display:block;font-family:var(--mono);font-size:.55rem;letter-spacing:0;color:var(--muted);padding-top:.55rem; }
    .primary-nav a > [data-i18n] { display:block; }
    .primary-nav a::after { display:none; }
    .primary-nav__foot { display:flex;gap:1.5rem;margin-top:2rem; }.primary-nav__foot a{display:block;padding:0;border:0;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.03em}
    .language-switch { grid-column:4; }
    .home-hero__grid { grid-template-columns: .9fr 1.1fr; }
    .home-hero h1 { font-size:clamp(4rem,8vw,7rem); }
    .page-hero__grid { gap:4vw; }
    .professional-orbit { width:280px;height:280px; }.professional-orbit>span{transform:translate(-50%,-50%) rotate(var(--a)) translateX(122px) rotate(calc(var(--a) * -1));}
}

@media (max-width: 900px) {
    :root { --shell: calc(100vw - 40px); }
    body { font-size:16px; }
    .site-header__inner { height:72px;grid-template-columns:auto 1fr auto; }
    .brand__text small { display:none; }
    .language-switch { grid-column:auto; }
    .nav-toggle { order:3; }.language-switch{order:2;justify-self:end}.primary-nav{order:4}
    .home-hero { padding-top:110px; }
    .home-hero__grid { display:flex;flex-direction:column;align-items:stretch;gap:3rem;min-height:0; }
    .home-hero__copy { padding-top:2rem; }
    .home-hero h1 { font-size:clamp(4.5rem,15vw,8rem); }
    .home-hero__visual { width:min(100%,700px);margin-left:auto; }
    .home-hero__facts { grid-template-columns:1fr 1fr;margin-top:3rem; }.home-hero__facts span:nth-child(2){border-right:0}.home-hero__facts span:nth-child(-n+2){border-bottom:1px solid var(--line)}.home-hero__facts span:nth-child(3){padding-left:0}
    .editorial-heading--split { grid-template-columns:1fr;gap:2rem; }
    .dimension a { grid-template-columns:50px 72px 1fr 35px;gap:1rem; }.dimension__icon{width:58px;height:58px}.dimension__body{grid-template-columns:1fr;gap:.8rem}.dimension__body .meta-label{margin:0}.dimension__body h3{font-size:3rem}
    .case-study--wide,.project-feature { grid-template-columns:1fr; }.case-study--wide{min-height:0}.case-study__media{min-height:460px}.case-study-pair,.system-projects{grid-template-columns:1fr}
    .current-state__grid,.contact-stage__grid,.page-hero__grid,.position-statement__grid,.capability-map__grid,.astro-observation-room__grid,.about-story__grid,.about-education__grid,.professional-origin__grid{grid-template-columns:1fr}
    .contact-stage__copy{padding-top:2rem}
    .page-hero { padding-top:120px; }.page-hero__grid{min-height:0;padding-bottom:5rem}.professional-portrait,.research-map,.about-system{min-height:560px;width:min(100%,650px);margin:auto}
    .metric-rail{grid-template-columns:1fr 1fr}.metric-rail>div:nth-child(2){border-right:0}.metric-rail>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric-rail>div:nth-child(3){padding-left:0}
    .position-statement__grid{gap:2rem}.position-statement blockquote{font-size:clamp(2.6rem,7vw,4.5rem)}.home-process__rail{grid-template-columns:repeat(2,minmax(0,1fr))}.home-process__cta{align-items:flex-start;flex-direction:column}.professional-origin__steps{grid-template-columns:1fr 1fr}
    .process-line{grid-template-columns:1fr 1fr}.process-line::before{display:none}.process-line li{padding:2.5rem 1.5rem 2rem 45px;border-top:1px solid var(--line)}.process-line li>span{top:2.35rem}
    .principle-strip{grid-template-columns:1fr 1fr}.principle-strip article:nth-child(2){border-right:0}.principle-strip article:nth-child(-n+2){border-bottom:1px solid var(--line)}.principle-strip article:nth-child(3){padding-left:0}
    .archive-header{align-items:flex-start;flex-direction:column}.archive-filters{justify-content:flex-start}
    .publication-row{grid-template-columns:50px 110px 1fr 30px}
    .light-step{grid-template-columns:1fr}.light-step:nth-child(even) .light-step__visual,.light-step:nth-child(even)>div:last-child{order:initial}
    .astro-observation-room__sky{min-height:0}.sky-map{height:auto;aspect-ratio:1}
    .about-dimension-grid{grid-template-columns:1fr}.about-dimension{min-height:300px;border-right:0;border-bottom:1px solid var(--line)}.about-dimension:last-child{border-bottom:0}
    .site-footer__grid{grid-template-columns:1.3fr 1fr 1fr}.site-footer__brand{grid-column:1/-1}.site-footer__column:last-child{grid-column:auto}
}

@media (max-width: 620px) {
    :root { --shell: calc(100vw - 28px); }
    .brand__monogram { width:38px;height:38px; }.brand__text strong{font-size:.78rem}.language-switch{display:none}.site-header__inner{grid-template-columns:auto 1fr}.nav-toggle{grid-column:2}
    .home-hero { padding-top:95px; }.home-hero h1{font-size:clamp(4rem,20vw,6.6rem)}.home-hero h1 span:last-child{margin-left:1rem}.home-hero__motto{font-size:1.55rem}.home-hero__lead{font-size:1rem}
    .living-system{aspect-ratio:.92;border-radius:48% 48% 14px 14px/35% 35% 14px 14px}.living-system svg{transform:scale(1.12)}.living-system__label--b{right:5%;bottom:20%}.living-system__label--c{right:7%;top:12%}.living-system__legend{display:none}.living-system::after{display:none}
    .home-hero__facts{grid-template-columns:1fr}.home-hero__facts span{border-right:0!important;border-bottom:1px solid var(--line)!important;padding-left:0}.home-hero__facts span:last-child{border-bottom:0!important}
    h2{font-size:clamp(2.7rem,12vw,4.2rem)}
    .dimension a{grid-template-columns:38px 52px 1fr;align-items:start;padding:2rem 0}.dimension__arrow{grid-column:3}.dimension__icon{width:46px;height:46px}.dimension__icon svg{width:22px}.dimension__body h3{font-size:2.5rem}.dimension__body p{font-size:.9rem}
    .case-study__media{min-height:350px}.case-study-pair .case-study{min-height:0}.case-study__data-visual,.case-study__research-visual{min-height:250px}.case-study__content{padding:2rem}
    .current-state__grid{gap:3rem}.status-row{grid-template-columns:14px 1fr auto;gap:1rem}.contact-stage h2{font-size:clamp(3.5rem,16vw,5.6rem)}
    .page-hero h1{font-size:clamp(3.7rem,16vw,6rem)}.professional-portrait,.research-map,.about-system{min-height:430px}.professional-portrait__media{width:78%;height:420px}.professional-orbit{width:220px;height:220px}.professional-orbit>span{transform:translate(-50%,-50%) rotate(var(--a)) translateX(95px) rotate(calc(var(--a) * -1));font-size:.44rem}
    .metric-rail{grid-template-columns:1fr}.metric-rail>div{padding:1rem 0!important;border-right:0;border-bottom:1px solid var(--line)}.metric-rail>div:last-child{border-bottom:0}.metric-rail strong{font-size:1.6rem}
    .project-feature__media{min-height:350px}.project-feature__content{padding:2rem}.system-project{min-height:0;padding:1.3rem}.system-project__visual{height:220px}.home-process__rail{grid-template-columns:1fr}.home-process__rail li{min-height:110px}.professional-origin__steps{grid-template-columns:1fr}.origin-step{min-height:0}.origin-step h3{margin-top:2.5rem}.home-improvement-principle{padding:2rem}
    .process-line{grid-template-columns:1fr}.capability-row summary{grid-template-columns:42px 1fr auto}.capability-row summary strong{font-size:1.5rem}.capability-row p{margin-left:42px}
    .research-map{border-radius:50%;}.research-map__core{width:100px;height:100px}.research-map__tag{font-size:.45rem}.principle-strip{grid-template-columns:1fr}.principle-strip article{padding:1.4rem 0!important;border-right:0;border-bottom:1px solid var(--line)}.principle-strip article:last-child{border-bottom:0}
    .featured-record{grid-template-columns:1fr 30px;gap:1rem;padding:2rem 0}.featured-record__meta{grid-column:1/-1;flex-direction:row}.featured-record__body h3{font-size:1.7rem}.featured-record__link{grid-column:2;grid-row:2}
    .publication-row{grid-template-columns:36px 1fr 24px;gap:.8rem}.publication-row__meta{grid-column:2;grid-row:1;flex-direction:row;flex-wrap:wrap}.publication-row__content{grid-column:2;grid-row:2}.publication-row>a{grid-column:3;grid-row:1/3}.publication-row__content h3{font-size:1.5rem}.publication-row__content p{font-size:.88rem}
    .astro-hero__content{padding:130px 0 105px}.astro-hero h1{font-size:clamp(3.8rem,17vw,6rem)}.astro-hero__coordinates{gap:1rem;font-size:.45rem}.light-step{padding:3rem 0}.light-step__visual{min-height:270px}.light-step h3{font-size:2.8rem}
    .about-system__orbit--three{width:410px;height:410px}.about-system__orbit--two{width:300px;height:300px}.about-system__orbit--one{width:190px;height:190px}.about-system__node--p{left:0}.about-system__node--r{right:0}.about-system__node--a{right:4%;bottom:6%}
    .about-closing-portrait__inner{justify-content:center}.about-closing-portrait__media{width:min(86vw,360px)}
    .timeline-line li{grid-template-columns:1fr;gap:.7rem}.education-item{grid-template-columns:1fr;gap:.55rem}.about-dimension h3{font-size:3rem}
    .manifesto-band blockquote,.astro-manifesto blockquote{font-size:clamp(3rem,13vw,5rem)}
    .site-footer__grid{grid-template-columns:1fr 1fr;gap:3rem}.site-footer__brand{grid-column:1/-1}.site-footer__column:last-child{grid-column:1/-1}.site-footer__bottom{flex-direction:column;gap:.6rem}
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
    .reveal { opacity:1;transform:none; }
}

/* Astronomy header: keep the same light editorial language as the rest of the site. */
.sg-astronomy-page .site-header:not(.is-scrolled) { color: var(--ink); }
.sg-astronomy-page .site-header:not(.is-scrolled) .brand__monogram { border-color: var(--ink); }
.sg-astronomy-page .site-header:not(.is-scrolled) .brand__text small,
.sg-astronomy-page .site-header:not(.is-scrolled) .language-switch button { color: var(--muted); }
.sg-astronomy-page .site-header:not(.is-scrolled) .language-switch button.is-active { color: var(--ink); }
.sg-astronomy-page .site-header:not(.is-scrolled) .primary-nav a::after,
.sg-astronomy-page .site-header:not(.is-scrolled) .nav-toggle__icon i { background: var(--ink); }
@media (max-width: 1180px) {
    .sg-astronomy-page .site-header:not(.is-scrolled) .primary-nav.is-open { color: var(--ink); }
    .sg-astronomy-page .site-header:not(.is-scrolled) .primary-nav.is-open .primary-nav__foot a { color: var(--ink); }
}

/* Generic WordPress content compatibility */
.container-wide { width: var(--shell); margin-inline: auto; }
.container-narrow { width: min(900px, calc(100vw - 48px)); margin-inline: auto; }
.content-page { min-height: 70svh; padding: 170px 0 8rem; }
.standard-page__header,
.standard-article__header { padding-bottom: 2rem; border-bottom: 1px solid var(--line-strong); margin-bottom: 2.5rem; }
.standard-page__header h1,
.error-page h1 { margin: 0; font-size: clamp(3.6rem, 7vw, 7rem); }
.standard-page__content,
.standard-article__content { color: var(--ink-soft); }
.standard-page__content h2,
.standard-page__content h3 { color: var(--ink); }
.standard-page__content a,
.standard-article__content a { color: var(--blue); text-decoration: underline; text-underline-offset: .2em; }
.standard-page__content img { height: auto; }
.standard-article { padding: 2rem 0; border-bottom: 1px solid var(--line); }
.standard-article__header h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.error-page { display: grid; align-items: center; }
.error-page p:not(.eyebrow) { color: var(--ink-soft); }
.button--primary { background: var(--ink); color: #fff; }
.button--primary:hover { background: var(--blue); }

.sg-astronomy-page.nav-open .site-header:not(.is-scrolled) { color: var(--ink); }
.sg-astronomy-page.nav-open .site-header:not(.is-scrolled) .brand__monogram { border-color: var(--ink); }
.sg-astronomy-page.nav-open .site-header:not(.is-scrolled) .brand__text small,
.sg-astronomy-page.nav-open .site-header:not(.is-scrolled) .language-switch button { color: var(--muted); }
.sg-astronomy-page.nav-open .site-header:not(.is-scrolled) .nav-toggle__icon i { background: var(--ink); }

/* ========================================================================== 
   V47.2 — HOME VISUAL REFINEMENT
   Dedicated vector imagery and restrained motion. No page videos are reused.
   ========================================================================== */

.home-hero {
    isolation: isolate;
    overflow: hidden;
}
.home-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: min(58vw, 920px);
    aspect-ratio: 1;
    right: -14vw;
    top: 8vh;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 99, 170, .09), rgba(116, 83, 214, .025) 42%, transparent 69%);
    filter: blur(3px);
    pointer-events: none;
}
.home-hero__visual {
    perspective: 1200px;
}
.living-system--v472 {
    --p1x: 0px;
    --p1y: 0px;
    --p2x: 0px;
    --p2y: 0px;
    --p3x: 0px;
    --p3y: 0px;
    aspect-ratio: 1.14;
    border: 0;
    border-radius: 31% 31% 18px 18px / 25% 25% 18px 18px;
    background: rgba(251, 250, 247, .5);
    box-shadow:
        0 38px 100px rgba(24, 39, 67, .095),
        inset 0 1px 0 rgba(255, 255, 255, .92);
    transform: rotateY(-1.2deg) rotateX(.45deg);
    transform-style: preserve-3d;
    transition: transform 1.1s var(--ease), box-shadow .8s var(--ease);
}
.living-system--v472:hover {
    transform: rotateY(0) rotateX(0) translateY(-4px);
    box-shadow:
        0 48px 120px rgba(24, 39, 67, .13),
        inset 0 1px 0 rgba(255, 255, 255, .95);
}
.living-system--v472::before {
    content: "INTEGRATED SYSTEM / 48";
    top: 38px;
    left: 48px;
    color: rgba(16, 23, 34, .52);
}
.living-system--v472::after {
    right: 35px;
    color: rgba(16, 23, 34, .44);
}
.living-system--v472 svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}
.living-system--v472 .system-grid path {
    stroke: rgba(16, 23, 34, .07);
    stroke-width: 1;
}
.living-system--v472 .system-grid--perspective {
    opacity: .8;
    transform-origin: center;
    animation: v472GridBreath 9s ease-in-out infinite alternate;
}
.living-system--v472 .system-architecture {
    transform: translate(var(--p1x), var(--p1y));
    transition: transform .65s var(--ease);
}
.living-system--v472 .system-network {
    transform: translate(var(--p2x), var(--p2y));
    transition: transform .7s var(--ease);
}
.living-system--v472 .system-observation {
    transform: translate(var(--p3x), var(--p3y));
    transition: transform .75s var(--ease);
}
.architecture-surface {
    opacity: 0;
    animation: v472SurfaceIn 1.1s 1.1s var(--ease) forwards;
}
.architecture-line,
.architecture-fixtures path {
    fill: none;
    stroke: rgba(28, 52, 86, .58);
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 760;
    stroke-dashoffset: 760;
    animation: v472VectorDraw 2.7s .58s var(--ease) forwards;
}
.architecture-line--major {
    stroke: rgba(20, 67, 140, .76);
    stroke-width: 1.8;
}
.architecture-line--fine {
    stroke: rgba(28, 52, 86, .34);
    stroke-width: .95;
    animation-delay: 1.05s;
}
.architecture-fixtures path {
    fill: rgba(42, 87, 156, .07);
    stroke: rgba(22, 87, 216, .54);
    animation-delay: 1.65s;
}
.system-metric rect {
    fill: rgba(251, 250, 247, .82);
    stroke: rgba(16, 23, 34, .18);
}
.system-metric path {
    fill: none;
    stroke: rgba(16, 23, 34, .28);
    stroke-width: 1;
}
.system-metric {
    opacity: 0;
    animation: v472MetricIn .7s 2.25s var(--ease) forwards;
}
.system-metric--information { animation-delay: 2.65s; }
.system-metric--observation { animation-delay: 3s; }
.network-route {
    fill: none;
    stroke: rgba(100, 77, 184, .39);
    stroke-width: 1.35;
    stroke-dasharray: 420;
    stroke-dashoffset: 420;
    animation: v472VectorDraw 2.1s 1.45s var(--ease) forwards;
}
.network-route--two { animation-delay: 1.72s; }
.network-route--three { animation-delay: 1.95s; }
.network-node circle:first-child {
    fill: var(--paper-light);
    stroke: currentColor;
    stroke-width: 2;
}
.network-node circle:last-child {
    fill: none;
    stroke: currentColor;
    stroke-width: 1;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    animation: v472NodeHalo 4.8s 2.6s ease-out infinite;
}
.network-node--blue { color: var(--blue); }
.network-node--violet { color: var(--violet); }
.network-node--amber { color: var(--amber); }
.network-node {
    opacity: 0;
    animation: v472MetricIn .55s 2.15s var(--ease) forwards;
}
.network-node:nth-of-type(2) { animation-delay: 2.25s; }
.network-node:nth-of-type(3) { animation-delay: 2.36s; }
.network-node:nth-of-type(4) { animation-delay: 2.47s; }
.network-node:nth-of-type(5) { animation-delay: 2.58s; }
.network-node:nth-of-type(6) { animation-delay: 2.69s; }
.network-node:nth-of-type(7) { animation-delay: 2.8s; }
.observation-field {
    fill: url(#v472OrbitalGlow);
}
.observation-orbits {
    transform-box: fill-box;
    transform-origin: center;
    animation: v472OrbitRotate 24s linear infinite;
}
.observation-orbits ellipse {
    fill: none;
    stroke: rgba(130, 102, 72, .38);
    stroke-width: 1.1;
}
.observation-core {
    fill: var(--paper-light);
    stroke: var(--amber);
    stroke-width: 2;
    filter: url(#v472Glow);
}
.observation-satellite {
    fill: var(--amber);
    filter: url(#v472Glow);
}
.observation-satellite--one { animation: v472SatelliteOne 10s ease-in-out infinite alternate; }
.observation-satellite--two { animation: v472SatelliteTwo 13s ease-in-out infinite alternate; }
.observation-stars circle {
    fill: rgba(126, 89, 49, .62);
    animation: v472StarBlink 4s ease-in-out infinite alternate;
}
.observation-stars circle:nth-child(2) { animation-delay: .8s; }
.observation-stars circle:nth-child(3) { animation-delay: 1.7s; }
.observation-stars circle:nth-child(4) { animation-delay: 2.4s; }
.system-mainline--v472 {
    fill: none;
    stroke: url(#v472Line);
    stroke-width: 3.7;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    filter: url(#v472Glow);
    animation: drawLivingLine 4.3s .45s var(--ease) forwards;
}
.system-mainline--ghost {
    fill: none;
    stroke: url(#v472Line);
    stroke-width: 11;
    stroke-linecap: round;
    opacity: .07;
    filter: url(#v472Soft);
}
.system-points--v472 circle {
    fill: var(--paper-light);
    stroke-width: 2;
}
.system-points--v472 circle:nth-child(1),
.system-points--v472 circle:nth-child(2) { stroke: var(--blue); }
.system-points--v472 circle:nth-child(3) { stroke: var(--violet); }
.system-points--v472 circle:nth-child(4),
.system-points--v472 circle:nth-child(5) { stroke: var(--amber); }
.system-scan {
    opacity: 0;
    animation: v472Scan 8s 4.2s ease-in-out infinite;
}
.system-scan path {
    stroke: rgba(22, 87, 216, .14);
    stroke-width: 1;
}
.system-scan circle { fill: var(--blue); }
.living-system--v472 .living-system__label {
    border-color: rgba(16, 23, 34, .14);
    background: rgba(251, 250, 247, .82);
    box-shadow: 0 10px 28px rgba(16, 23, 34, .07);
    backdrop-filter: blur(12px);
}
.living-system--v472 .living-system__label--a { left: 7%; bottom: 11%; }
.living-system--v472 .living-system__label--b { right: 8%; bottom: 24%; }
.living-system--v472 .living-system__label--c { right: 8%; top: 18%; }
.living-system--v472 .living-system__legend {
    left: 48px;
    bottom: 36px;
    gap: 1.2rem;
    color: rgba(16, 23, 34, .7);
}

/* Dimension rows: editorial hover, not card-like motion. */
.dimension {
    position: relative;
    overflow: hidden;
}
.dimension::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    transform: scaleY(0);
    transform-origin: center;
    transition: transform .5s var(--ease);
}
.dimension--professional::before { background: var(--blue); }
.dimension--research::before { background: var(--violet); }
.dimension--astronomy::before { background: var(--amber); }
.dimension:hover::before { transform: scaleY(1); }
.dimension__icon {
    position: relative;
    overflow: hidden;
    background: rgba(251, 250, 247, .5);
    transition: transform .5s var(--ease), background .45s, border-color .45s;
}
.dimension__icon::before {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: 50%;
    opacity: 0;
    transform: scale(.55);
    transition: opacity .45s, transform .55s var(--ease);
}
.dimension--professional .dimension__icon::before { background: rgba(22, 87, 216, .09); }
.dimension--research .dimension__icon::before { background: rgba(116, 83, 214, .1); }
.dimension--astronomy .dimension__icon::before { background: rgba(194, 122, 43, .11); }
.dimension:hover .dimension__icon { transform: rotate(-5deg) scale(1.04); border-color: currentColor; }
.dimension:hover .dimension__icon::before { opacity: 1; transform: scale(1); }
.dimension__icon svg { position: relative; z-index: 1; }

/* Dedicated home illustration: raw shell -> operating retail space. */
.case-study__media--retail {
    background: #dfe6ef;
}
.case-study__media--retail::after {
    background: linear-gradient(120deg, transparent 50%, rgba(16, 31, 53, .09));
}
.home-retail-visual {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.home-retail-visual svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.retail-blueprint path {
    fill: none;
    stroke: rgba(34, 61, 94, .31);
    stroke-width: 1.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1250;
    stroke-dashoffset: 1250;
}
.case-study--wide.is-visible .retail-blueprint path {
    animation: v472VectorDraw 2.6s .15s var(--ease) forwards;
}
.retail-blueprint .retail-dimensions path {
    stroke: rgba(22, 87, 216, .48);
    stroke-width: 1;
}
.retail-reveal-mask {
    transform-box: fill-box;
    transform-origin: left center;
    transform: scaleX(0);
}
.case-study--wide.is-visible .retail-reveal-mask {
    animation: v472RetailReveal 2.1s 1.15s var(--ease) forwards;
}
.retail-built__fixtures path,
.retail-built__lights circle {
    opacity: 0;
    transform: translateY(12px);
}
.case-study--wide.is-visible .retail-built__fixtures path,
.case-study--wide.is-visible .retail-built__lights circle {
    animation: v472FixtureIn .65s 2.25s var(--ease) forwards;
}
.case-study--wide.is-visible .retail-built__fixtures path:nth-child(2) { animation-delay: 2.4s; }
.case-study--wide.is-visible .retail-built__fixtures path:nth-child(3) { animation-delay: 2.55s; }
.case-study--wide.is-visible .retail-built__fixtures path:nth-child(4) { animation-delay: 2.7s; }
.case-study--wide.is-visible .retail-built__lights circle:nth-child(2) { animation-delay: 2.4s; }
.case-study--wide.is-visible .retail-built__lights circle:nth-child(3) { animation-delay: 2.55s; }
.case-study--wide.is-visible .retail-built__lights circle:nth-child(4) { animation-delay: 2.7s; }
.case-study--wide.is-visible .retail-built__lights circle:nth-child(5) { animation-delay: 2.85s; }
.retail-scanline {
    opacity: 0;
    transform: translateX(-42%);
}
.retail-scanline path { stroke: rgba(22, 87, 216, .72); stroke-width: 1.5; }
.retail-scanline circle { fill: var(--blue); filter: drop-shadow(0 0 9px rgba(22, 87, 216, .8)); }
.case-study--wide.is-visible .retail-scanline {
    animation: v472RetailScan 2.1s 1.15s var(--ease) forwards;
}
.home-retail-visual__caption {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 24px;
    z-index: 3;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .85rem;
    align-items: center;
    color: rgba(16, 23, 34, .65);
    font-family: var(--mono);
    font-size: .52rem;
    letter-spacing: .11em;
}
.home-retail-visual__caption i {
    height: 1px;
    background: linear-gradient(90deg, rgba(22,87,216,.25), rgba(22,87,216,.85));
    transform-origin: left;
    transform: scaleX(0);
}
.case-study--wide.is-visible .home-retail-visual__caption i {
    animation: v472CaptionLine 1.35s 2.2s var(--ease) forwards;
}

/* Professional data visual. */
.case-study__data-visual--v472 {
    min-height: 350px;
    padding: 25px;
    background:
        radial-gradient(circle at 85% 12%, rgba(22, 87, 216, .14), transparent 32%),
        linear-gradient(145deg, #edf2f9, #dce5f1);
}
.decision-console {
    height: 100%;
    min-height: 300px;
    display: grid;
    grid-template-columns: 1fr 124px;
    grid-template-rows: auto auto 1fr;
    gap: 14px;
    padding: 18px;
    border: 1px solid rgba(18, 43, 79, .17);
    background: rgba(250, 252, 255, .76);
    box-shadow: 0 24px 55px rgba(34, 57, 89, .12);
    backdrop-filter: blur(15px);
}
.decision-console__topline {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
    color: rgba(16, 23, 34, .55);
    font-family: var(--mono);
    font-size: .48rem;
    letter-spacing: .08em;
}
.decision-console__topline i { height: 1px; background: rgba(16, 23, 34, .15); }
.decision-console__topline span:last-child::before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--blue);
    box-shadow: 0 0 0 5px rgba(22, 87, 216, .08);
    animation: v472StatusPulse 2.8s ease-in-out infinite;
}
.decision-console__metrics {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid rgba(18, 43, 79, .12);
}
.decision-console__metrics span { padding: 9px 11px; border-right: 1px solid rgba(18, 43, 79, .1); }
.decision-console__metrics span:last-child { border-right: 0; }
.decision-console__metrics small { display: block; color: rgba(16, 23, 34, .46); font-family: var(--mono); font-size: .43rem; letter-spacing: .08em; }
.decision-console__metrics strong { display: block; margin-top: 2px; font-family: var(--serif); font-size: 1.15rem; font-weight: 400; line-height: 1; }
.decision-console__chart { min-width: 0; padding: 7px; border: 1px solid rgba(18, 43, 79, .1); }
.decision-console__chart svg { width: 100%; height: 100%; }
.decision-grid path { fill: none; stroke: rgba(22, 87, 216, .09); stroke-width: 1; }
.decision-area { fill: rgba(22, 87, 216, .08); opacity: 0; }
.case-study--data.is-visible .decision-area { animation: v472AreaIn .9s .65s var(--ease) forwards; }
.decision-line { fill: none; stroke: var(--blue); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.case-study--data.is-visible .decision-line { animation: drawLivingLine 2.2s .45s var(--ease) forwards; }
.decision-points circle { fill: #f8fbff; stroke: var(--blue); stroke-width: 2; opacity: 0; }
.case-study--data.is-visible .decision-points circle { animation: pointIn .45s 1.25s var(--ease) forwards; }
.case-study--data.is-visible .decision-points circle:nth-child(2) { animation-delay: 1.45s; }
.case-study--data.is-visible .decision-points circle:nth-child(3) { animation-delay: 1.65s; }
.case-study--data.is-visible .decision-points circle:nth-child(4) { animation-delay: 1.85s; }
.decision-console__matrix {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 5px;
    padding: 7px;
    border: 1px solid rgba(18, 43, 79, .1);
}
.decision-console__matrix span {
    min-height: 18px;
    background: var(--blue);
    opacity: calc(.12 + var(--v) * .72);
    transform: scale(.7);
}
.case-study--data.is-visible .decision-console__matrix span { animation: v472CellIn .5s var(--ease) forwards; }
.case-study--data.is-visible .decision-console__matrix span:nth-child(2n) { animation-delay: .16s; }
.case-study--data.is-visible .decision-console__matrix span:nth-child(3n) { animation-delay: .28s; }
.case-study--data.is-visible .decision-console__matrix span:nth-child(4n) { animation-delay: .4s; }

/* Research visual: access graph, not generic atom. */
.case-study__research-visual--v472 {
    min-height: 350px;
    background:
        radial-gradient(circle at 58% 46%, rgba(116, 83, 214, .22), transparent 34%),
        linear-gradient(145deg, #11152a, #090d19);
}
.case-study__research-visual--v472 svg { width: 100%; height: 100%; }
.record-grid path { fill: none; stroke: rgba(255, 255, 255, .045); stroke-width: 1; }
.record-routes path {
    fill: none;
    stroke: url(#recordPath);
    stroke-width: 1.6;
    stroke-opacity: .64;
    stroke-dasharray: 520;
    stroke-dashoffset: 520;
}
.case-study--research.is-visible .record-routes path { animation: v472VectorDraw 2.4s .25s var(--ease) forwards; }
.case-study--research.is-visible .record-routes path:nth-child(2) { animation-delay: .5s; }
.case-study--research.is-visible .record-routes path:nth-child(3) { animation-delay: .75s; }
.record-node {
    fill: #11152a;
    stroke: #a68dff;
    stroke-width: 2;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
}
.record-node--blind { stroke: rgba(255,255,255,.34); }
.record-node--core { fill: #7453d6; stroke: #d7cbff; filter: drop-shadow(0 0 15px rgba(116,83,214,.75)); }
.record-node--qualified { fill: #c27a2b; stroke: #f3d2a8; filter: drop-shadow(0 0 13px rgba(194,122,43,.62)); }
.case-study--research.is-visible .record-node { animation: pointIn .5s .8s var(--ease) forwards; }
.case-study--research.is-visible .record-node:nth-child(2) { animation-delay: .95s; }
.case-study--research.is-visible .record-node:nth-child(3) { animation-delay: 1.1s; }
.case-study--research.is-visible .record-node:nth-child(4) { animation-delay: 1.25s; }
.case-study--research.is-visible .record-node:nth-child(5) { animation-delay: 1.4s; }
.case-study--research.is-visible .record-node:nth-child(6) { animation-delay: 1.55s; }
.case-study--research.is-visible .record-node:nth-child(7) { animation-delay: 1.7s; }
.case-study--research.is-visible .record-node:nth-child(8) { animation-delay: 1.85s; }
.case-study--research.is-visible .record-node:nth-child(9) { animation-delay: 2s; }
.record-threshold path { stroke: rgba(255,255,255,.2); stroke-width: 1; }
.record-threshold text { fill: rgba(255,255,255,.43); font-family: var(--mono); font-size: 8px; letter-spacing: 1.4px; }
.record-packet rect { fill: rgba(255,255,255,.055); stroke: rgba(255,255,255,.22); }
.record-packet path { fill: none; stroke: rgba(255,255,255,.38); stroke-width: 1; }
.record-packet { opacity: 0; transform: translateY(8px); }
.case-study--research.is-visible .record-packet { animation: v472MetricIn .7s 2.05s var(--ease) forwards; }

@keyframes v472VectorDraw { to { stroke-dashoffset: 0; } }
@keyframes v472SurfaceIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes v472MetricIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes v472NodeHalo { 0%, 72% { opacity: 0; transform: scale(.45); } 88% { opacity: .32; } 100% { opacity: 0; transform: scale(1.6); } }
@keyframes v472OrbitRotate { to { transform: rotate(360deg); } }
@keyframes v472SatelliteOne { to { transform: translate(-8px, 10px); } }
@keyframes v472SatelliteTwo { to { transform: translate(12px, -8px); } }
@keyframes v472StarBlink { from { opacity: .25; } to { opacity: .9; } }
@keyframes v472Scan { 0%, 12% { opacity: 0; transform: translateY(-190px); } 22% { opacity: .8; } 68% { opacity: .2; } 78%, 100% { opacity: 0; transform: translateY(330px); } }
@keyframes v472GridBreath { to { opacity: .48; } }
@keyframes v472RetailReveal { to { transform: scaleX(1); } }
@keyframes v472RetailScan { 0% { opacity: 0; transform: translateX(-42%); } 12%, 86% { opacity: 1; } 100% { opacity: 0; transform: translateX(43%); } }
@keyframes v472FixtureIn { to { opacity: 1; transform: none; } }
@keyframes v472CaptionLine { to { transform: scaleX(1); } }
@keyframes v472StatusPulse { 50% { box-shadow: 0 0 0 8px rgba(22,87,216,0); } }
@keyframes v472AreaIn { to { opacity: 1; } }
@keyframes v472CellIn { to { transform: scale(1); } }

@media (max-width: 1180px) {
    .living-system--v472 {
        width: min(100%, 760px);
        margin-left: auto;
        border-radius: 25% 25% 18px 18px / 20% 20% 18px 18px;
    }
    .case-study__data-visual--v472,
    .case-study__research-visual--v472 { min-height: 380px; }
}

@media (max-width: 620px) {
    .living-system--v472 {
        aspect-ratio: .94;
        border-radius: 28% 28% 14px 14px / 18% 18% 14px 14px;
        transform: none;
    }
    .living-system--v472:hover { transform: none; }
    .living-system--v472 svg { transform: scale(1.07) translateX(-2%); }
    .living-system--v472::before { top: 21px; left: 22px; font-size: .48rem; }
    .living-system--v472 .living-system__label { font-size: .45rem; padding: .28rem .42rem; }
    .living-system--v472 .living-system__label--a { left: 3%; bottom: 9%; }
    .living-system--v472 .living-system__label--b { right: 2%; bottom: 20%; }
    .living-system--v472 .living-system__label--c { right: 2%; top: 17%; }
    .home-retail-visual svg { width: 155%; max-width: none; transform: translateX(-24%); }
    .home-retail-visual__caption { left: 16px; right: 16px; bottom: 15px; font-size: .43rem; }
    .case-study__data-visual--v472 { min-height: 315px; padding: 13px; }
    .decision-console { min-height: 285px; grid-template-columns: 1fr 82px; gap: 8px; padding: 11px; }
    .decision-console__metrics strong { font-size: .95rem; }
    .decision-console__metrics small { font-size: .36rem; }
    .decision-console__topline { font-size: .38rem; }
    .case-study__research-visual--v472 { min-height: 290px; }
    .case-study__research-visual--v472 svg { width: 122%; max-width: none; transform: translateX(-11%); }
}

/* Layering correction for the v47.2 hero annotations. */
.living-system--v472::before,
.living-system--v472::after,
.living-system--v472 .living-system__label,
.living-system--v472 .living-system__legend {
    z-index: 5;
}
.living-system--v472 svg {
    position: relative;
    z-index: 1;
}

/* V48 — Personal projects take the lead. */
:root { --project-green: #275c4e; --project-mint: #8bd9c6; }
[id] { scroll-margin-top: 110px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.hero-project-links { display: flex; flex-wrap: wrap; gap: .75rem 1.6rem; margin-top: 1.5rem; font-size: .84rem; }
.hero-project-links a { display: inline-flex; align-items: center; gap: .55rem; padding-block: .35rem; }
.hero-project-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.project-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.project-dot--professional { background: #1559d6; }.project-dot--drive { background: #b17d36; }.project-dot--casa { background: var(--project-green); }
.personal-projects { padding: clamp(4rem, 7vw, 7.5rem) 0; background: var(--paper-light); border-block: 1px solid var(--line); }
.personal-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.personal-project-card { display: flex; flex-direction: column; border: 1px solid var(--line); min-width: 0; }
.personal-project-card__copy { display: flex; flex-direction: column; flex: 1; padding: clamp(1.5rem, 3vw, 3rem); }
.personal-project-card__copy h3 { font-size: clamp(2.8rem, 4.8vw, 4.6rem); margin: 0 0 1.1rem; }
.personal-project-card__copy .meta-label { font-size: .61rem; line-height: 1.65; }
.personal-project-card__copy > p { color: var(--ink-soft); margin-bottom: 1.2rem; }
.personal-project-card__copy > .personal-project-card__subtitle { font-size: 1.12rem; line-height: 1.4; color: var(--ink); font-weight: 500; }
.personal-project-card__copy > .text-link { align-self: flex-start; margin-top: auto; }
.personal-project-card--drive { background: #f2f3f1; }.personal-project-card--casa { background: #f0f3ec; }
.project-tags { list-style: none; padding: 0; margin: .1rem 0 1.6rem; display: flex; gap: .45rem; flex-wrap: wrap; }
.project-tags li { border: 1px solid var(--line); padding: .28rem .55rem; font-family: var(--mono); font-size: .62rem; }
.project-visual { overflow: hidden; padding: 1.5rem 1.5rem 1.1rem; width: 100%; }
.project-visual svg { width: 100%; height: auto; }
.project-visual--drive { background: #101f2b; color: #b0c6ce; }
.project-visual--casa { background: #e4ece2; color: #385f4e; }
.project-visual__top, .project-visual__bottom { display: flex; gap: 1rem; align-items: center; font: .57rem/1.5 var(--mono); letter-spacing: .055em; }
.project-visual__top { justify-content: space-between; padding-bottom: .7rem; border-bottom: 1px solid currentColor; border-color: #55798155; }
.project-visual__bottom { padding-top: .65rem; border-top: 1px solid #55798155; }
.project-visual__bottom > span:last-child { margin-left: auto; text-transform: none; font-size: .54rem; letter-spacing: 0; text-align: right; }
.project-visual--real { display: flex; flex-direction: column; gap: .95rem; }
.project-visual--real .project-visual__layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, .92fr); gap: .9rem; align-items: stretch; }
.project-visual--real .project-visual__aside { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: .9rem; min-width: 0; }
.project-visual--real .project-visual__aside--casa { grid-template-rows: minmax(0, 1.2fr) minmax(0, .8fr); }
.project-visual--real .project-visual__main,
.project-visual--real .project-visual__tile,
.project-visual--real .project-visual__note { position: relative; border-radius: 18px; overflow: hidden; min-width: 0; }
.project-visual--real .project-visual__main,
.project-visual--real .project-visual__tile { border: 1px solid #55798155; }
.project-visual--real .project-visual__main img,
.project-visual--real .project-visual__tile img { display: block; width: 100%; height: 100%; object-fit: cover; }
.project-visual--real .project-visual__main img { aspect-ratio: 16 / 9; }
.project-visual--real .project-visual__tile img { aspect-ratio: 16 / 9; }
.project-visual--real .project-visual__main > span,
.project-visual--real .project-visual__tile > span { position: absolute; left: .8rem; bottom: .8rem; display: inline-flex; align-items: center; padding: .38rem .62rem; border-radius: 999px; font: .54rem/1.2 var(--mono); letter-spacing: .04em; }
.project-visual--drive.project-visual--real .project-visual__main,
.project-visual--drive.project-visual--real .project-visual__tile { background: #0b141e; }
.project-visual--drive.project-visual--real .project-visual__main > span,
.project-visual--drive.project-visual--real .project-visual__tile > span { background: rgba(7, 16, 25, .82); color: #f6fbff; border: 1px solid rgba(139,217,198,.22); }
.project-visual--casa.project-visual--real .project-visual__main,
.project-visual--casa.project-visual--real .project-visual__tile,
.project-visual--casa.project-visual--real .project-visual__note { background: #eef4eb; border: 1px solid #7aa08c66; }
.project-visual--casa.project-visual--real .project-visual__main > span,
.project-visual--casa.project-visual--real .project-visual__tile > span { background: rgba(247, 249, 244, .95); color: #274f40; border: 1px solid rgba(60, 103, 82, .16); }
.project-visual__note { padding: 1rem 1rem 1.1rem; display: flex; flex-direction: column; justify-content: space-between; gap: .9rem; }
.project-visual__note strong { display: block; font-size: 1rem; line-height: 1.3; }
.project-visual__note ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.project-visual__note li { position: relative; padding-left: .95rem; font-size: .78rem; line-height: 1.4; }
.project-visual__note li::before { content: ''; position: absolute; left: 0; top: .45rem; width: .36rem; height: .36rem; border-radius: 50%; background: currentColor; opacity: .45; }
.personal-projects__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.7rem; font-size: .8rem; color: var(--ink-soft); }
.dimension--projects::before { background: var(--project-green); }
.dimension--projects a:hover { background: rgba(39,92,78,.06); }
.dimension--projects .dimension__icon { color: var(--project-green); }
.dimension--projects .dimension__icon::before { background: rgba(39,92,78,.1); }
.home-decision-row .case-study { display: grid; grid-template-columns: 1.25fr .75fr; }
.home-decision-row .case-study__data-visual { min-height: 370px; }
.home-decision-row .decision-console__metrics strong { font-size: clamp(.8rem, 1.3vw, 1.2rem); }
.research-appendix { background: var(--paper); border-top: 1px solid var(--line); padding: 2.2rem 0; }
.research-appendix__row { display: grid; grid-template-columns: .65fr 1.8fr auto; align-items: center; gap: 2rem; }
.research-appendix .meta-label { font-size: .58rem; margin-bottom: .55rem; }
.research-appendix h2 { font: 500 1.15rem/1.2 var(--sans); letter-spacing: -.025em; margin: 0; }
.research-appendix p { margin: 0; font-size: .85rem; color: var(--ink-soft); max-width: 710px; }
.research-appendix .text-link { font-size: .78rem; white-space: nowrap; }
.projects-intro { padding-top: 160px; padding-bottom: 5rem; }
.projects-intro h1 { font-size: clamp(3.5rem, 6.9vw, 7.2rem); line-height: .98; max-width: 1150px; margin-bottom: 2.5rem; }
.projects-intro__bottom { display: flex; justify-content: space-between; align-items: center; gap: 3rem; }
.projects-intro__bottom > p { color: var(--ink-soft); max-width: 670px; margin: 0; }
.project-button--outline { border-color: var(--line-strong); }
.project-detail { padding: clamp(3rem, 6vw, 6rem) 0; }
.project-detail--drive { background: #101f2b; color: #f6f4eb; }
.project-detail--casa { background: #e7ede3; }
.project-detail__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 2.8rem; }
.project-detail__heading .eyebrow { margin: 0; }
.project-detail--drive .eyebrow, .project-detail--drive .eyebrow span { color: #b7cbd1; }
.project-status { font: .61rem/1.5 var(--mono); letter-spacing: .02em; border: 1px solid #69827e66; padding: .5rem .75rem; }
.project-detail__grid { display: grid; grid-template-columns: 1fr 1.12fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.project-detail__grid > * { min-width: 0; }
.project-detail h2 { font-size: clamp(3.4rem, 6vw, 6.5rem); margin-bottom: 1.6rem; }
.project-detail__lead { font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.35; max-width: 480px; }
.project-detail__intro > p:last-child { font-size: 1rem; opacity: .82; max-width: 540px; }
.project-detail .project-visual { border: 1px solid #69827e66; }
.project-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; margin-top: 4rem; }
.project-capabilities article { border-top: 1px solid #69827e66; padding-top: 1.4rem; }
.project-capabilities article > span { display: block; font: .6rem/1.5 var(--mono); letter-spacing: .07em; margin-bottom: 1.3rem; opacity: .7; }
.project-capabilities h3 { font-size: clamp(1.75rem, 2.5vw, 2.5rem); margin-bottom: 1rem; }
.project-capabilities p { font-size: .93rem; opacity: .84; margin-bottom: 0; }
.project-build { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding-top: 2rem; margin: 3rem 0 0; border-top: 1px solid #69827e66; }
.project-build dt { font: .6rem/1.5 var(--mono); letter-spacing: .07em; text-transform: uppercase; margin-bottom: .75rem; opacity: .75; }
.project-build dd { margin: 0; font-size: .82rem; }
.project-detail--drive a:focus-visible { outline-color: var(--project-mint); }
.project-method { padding-block: 5rem; }
.project-method h2 { font-size: clamp(2.7rem, 4.5vw, 4.5rem); }
.project-method > p:not(.eyebrow) { max-width: 820px; color: var(--ink-soft); }
.appendix-intro { padding-top: 140px; padding-bottom: 2rem; }
.appendix-intro > .text-link { margin-bottom: 3rem; }
.appendix-intro h1 { font: 400 clamp(3rem, 5vw, 4.5rem)/1 var(--serif); margin-bottom: 1.6rem; }
.appendix-intro > p:not(.eyebrow) { max-width: 750px; color: var(--ink-soft); }
.appendix-archive { border-block: 1px solid var(--line); margin-bottom: 5rem; }
.appendix-archive > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding-block: 1.5rem; list-style: none; font-size: 1rem; font-weight: 500; }
.appendix-archive > summary::-webkit-details-marker { display: none; }
.appendix-archive > summary > span[aria-hidden] { font-size: 1.5rem; transition: transform .2s; }
.appendix-archive[open] > summary > span[aria-hidden] { transform: rotate(45deg); }
.appendix-archive .research-archive { padding: 2rem 0 0; }.appendix-archive .shell { width: 100%; }
.appendix-archive h2 { font-size: clamp(2rem, 3vw, 3rem); }
.about-dimension--r { --violet: var(--project-green); }
@media (max-width: 1180px) {
    .home-v47 .home-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .projects-intro__bottom { flex-direction: column; align-items: flex-start; gap: 1.6rem; }
}
@media (max-width: 900px) {
    .project-detail__grid { grid-template-columns: 1fr; }
    .project-detail__intro > p:last-child { max-width: 740px; }
    .project-capabilities, .project-build { gap: 1.5rem; }
    .personal-project-grid { gap: 1rem; }
    .personal-project-card__copy { padding: 1.5rem; }
    .personal-project-card__copy h3 { font-size: 2.9rem; }
    .project-visual { padding: 1rem; }
    .project-visual__top, .project-visual__bottom { gap: .65rem; font-size: .49rem; }
    .project-visual__bottom > span:last-child { font-size: .46rem; }
    .home-decision-row .case-study { grid-template-columns: 1fr; }
    .research-appendix__row { grid-template-columns: 1fr 2fr; gap: 1rem 2rem; }
    .research-appendix__row > a { grid-column: 2; justify-self: start; }
}
@media (max-width: 620px) {
    .personal-project-grid, .project-capabilities, .project-build { grid-template-columns: 1fr; }
    .personal-project-grid { gap: 1.7rem; }
    .personal-project-card__copy h3 { font-size: 3rem; }
    .personal-projects__foot, .project-detail__heading { flex-direction: column; align-items: flex-start; }
    .personal-projects__foot { gap: .4rem; }
    .personal-projects .editorial-heading h2 { font-size: 3.25rem; }
    .projects-intro { padding-top: 115px; padding-bottom: 3rem; }
    .projects-intro h1 { font-size: clamp(3rem, 12vw, 4.5rem); line-height: 1.03; }
    .project-detail__heading { gap: 1.2rem; margin-bottom: 2rem; }
    .project-detail h2 { font-size: 3.5rem; }
    .project-capabilities { margin-top: 2rem; gap: 1.7rem; }
    .project-build { gap: 1.5rem; }
    .research-appendix__row { grid-template-columns: 1fr; gap: 1.1rem; }
    .research-appendix__row > a { grid-column: 1; }
    .appendix-intro { padding-top: 105px; }
}
@media (prefers-reduced-motion: reduce) {
    .appendix-archive > summary > span[aria-hidden] { transition: none; }
}

/* Keep language selection and long navigation headings usable on phones. */
@media (max-width: 620px) {
    .site-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; gap: .65rem; }
    .brand { min-width: 0; gap: .5rem; }
    .brand__text strong { font-size: .72rem; white-space: nowrap; }
    .language-switch { display: flex; grid-column: 2; gap: .2rem; }
    .language-switch button { min-height: 44px; min-width: 22px; }
    .nav-toggle { grid-column: 3; min-height: 44px; padding: 0; }
    .nav-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
    .dimension a { grid-template-columns: 32px minmax(0, 1fr) 24px; column-gap: 1rem; }
    .dimension__icon { display: none; }
    .dimension__body { min-width: 0; }
    .dimension__body h3 { font-size: clamp(1.8rem, 8vw, 2.3rem); }
    .dimension__arrow { grid-column: 3; grid-row: 1; }
}


@media (max-width: 1100px) {
    .project-visual--real .project-visual__layout { grid-template-columns: 1fr; }
    .project-visual--real .project-visual__aside { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; }
    .project-visual--real .project-visual__aside--casa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .project-visual--real .project-visual__aside,
    .project-visual--real .project-visual__aside--casa { grid-template-columns: 1fr; }
    .project-visual--real .project-visual__top,
    .project-visual--real .project-visual__bottom { flex-wrap: wrap; }
    .project-visual--real .project-visual__bottom > span:last-child { margin-left: 0; width: 100%; }
}


@media (max-width: 980px) {
    .electronics-gallery { grid-template-columns: 1fr; }
    .electronics-gallery__side { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
    .electronics-shot--main { min-height: 0; }
    .electronics-shot--main img { aspect-ratio: 1.55 / 1; }
    .electronics-capability__foot { grid-template-columns: 1fr; }
    .electronics-capability__foot .project-tags { justify-content: flex-start; }
}
@media (max-width: 620px) {
    .electronics-gallery { margin-top: 2rem; }
    .electronics-gallery__side { grid-template-columns: 1fr; }
    .electronics-shot { min-height: 0; }
    .electronics-shot img { aspect-ratio: 1.55 / 1; }
    .electronics-shot > span { left: .75rem; bottom: .7rem; font-size: .56rem; }
}
@media (prefers-reduced-motion: reduce) {
    .electronics-shot img { transition: none; }
}

/* v48.3.2 — LowSpec 3.0 as a personal project. */
:root { --project-spectro: #5a4cc9; --project-spectro-soft: #ddd7ff; }
.project-dot--lowspec { background: var(--project-spectro); }
.personal-project-card--wide { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); align-items: stretch; }
.personal-project-card--wide > .project-visual { min-height: 100%; }
.personal-project-card--lowspec { background: #f2f0f8; }
.personal-project-card--lowspec .personal-project-card__copy { justify-content: center; }
.personal-project-card--lowspec .personal-project-card__copy h3 { font-size: clamp(3rem, 5vw, 5rem); }
.project-visual--lowspec { background: #171426; color: #dcd7ff; }
.project-visual--lowspec .project-visual__top { border-color: rgba(220,215,255,.24); }
.project-visual--lowspec .project-visual__bottom { border-top-color: rgba(220,215,255,.24); }
.lowspec-visual__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: .9rem; min-height: 0; }
.lowspec-visual__instrument,
.lowspec-visual__spectrum { position: relative; overflow: hidden; border: 1px solid rgba(220,215,255,.18); border-radius: 18px; background: #0c0a15; }
.lowspec-visual__instrument img,
.lowspec-visual__spectrum img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lowspec-visual__instrument img { aspect-ratio: 4 / 5; object-position: 50% 52%; }
.lowspec-visual__spectra { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: .9rem; min-width: 0; }
.lowspec-visual__spectrum img { aspect-ratio: 16 / 8.2; object-fit: contain; background: #f6f6f3; }
.lowspec-visual__instrument > span,
.lowspec-visual__spectrum > span { position: absolute; left: .75rem; bottom: .75rem; padding: .36rem .58rem; border: 1px solid rgba(220,215,255,.22); border-radius: 999px; background: rgba(14,11,24,.82); color: #f8f6ff; font: .53rem/1.2 var(--mono); letter-spacing: .035em; }
.project-detail--lowspec { background: #171426; color: #f7f5ff; }
.project-detail--lowspec .eyebrow,
.project-detail--lowspec .eyebrow span { color: #cfc8ff; }
.project-detail--lowspec .project-status,
.project-detail--lowspec .project-capabilities article,
.project-detail--lowspec .project-build { border-color: rgba(220,215,255,.24); }
.project-detail--lowspec .project-visual { border-color: rgba(220,215,255,.24); }
.project-detail--lowspec .inline-link { color: #ddd7ff; text-decoration: underline; text-underline-offset: 4px; }
.project-detail--lowspec .inline-link:hover { color: #ffffff; }
.project-detail--lowspec a:focus-visible { outline-color: #ddd7ff; }
.lowspec-results { margin-top: clamp(3rem, 6vw, 5.5rem); padding-top: 2rem; border-top: 1px solid rgba(220,215,255,.24); }
.lowspec-results__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.4rem; }
.lowspec-results__head h3 { margin: .35rem 0 0; font-size: clamp(2rem, 3vw, 3.2rem); }
.lowspec-results__head .meta-label { color: #cfc8ff; margin: 0; }
.lowspec-results__head .text-link { color: #f7f5ff; white-space: nowrap; }
.lowspec-results__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.lowspec-results__grid a { position: relative; display: block; overflow: hidden; border: 1px solid rgba(220,215,255,.18); background: #0c0a15; min-width: 0; }
.lowspec-results__grid img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: contain; background: #f3f3f0; transition: transform .28s ease; }
.lowspec-results__grid a:hover img { transform: scale(1.018); }
.lowspec-results__grid span { position: absolute; left: .7rem; bottom: .7rem; padding: .34rem .55rem; border-radius: 999px; background: rgba(14,11,24,.84); color: #f8f6ff; font: .54rem/1.2 var(--mono); letter-spacing: .03em; }

@media (max-width: 1000px) {
    .personal-project-card--wide { grid-template-columns: 1fr; }
    .lowspec-visual__grid { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
}
@media (max-width: 700px) {
    .lowspec-visual__grid { grid-template-columns: 1fr; }
    .lowspec-visual__spectra { grid-template-columns: 1fr; grid-template-rows: none; }
    .lowspec-visual__instrument img { aspect-ratio: 16 / 11; }
    .lowspec-results__head { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .lowspec-results__grid { grid-template-columns: 1fr; }
}

/* V48.4 — Professional lifecycle: from survey to continuous improvement. */
.professional-workflow {
    padding: clamp(6rem, 10vw, 11rem) 0;
    background: var(--paper-light);
    border-block: 1px solid var(--line);
}
.professional-workflow__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: clamp(3rem, 6vw, 5.5rem);
    background: var(--line-strong);
    border: 1px solid var(--line-strong);
}
.workflow-card {
    min-width: 0;
    min-height: 590px;
    display: flex;
    flex-direction: column;
    padding: clamp(2rem, 3.5vw, 3.7rem);
    background: var(--paper-light);
}
.workflow-card--analysis { background: #edf1f8; }
.workflow-card__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2.2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
    font-family: var(--mono);
    font-size: .62rem;
    letter-spacing: .08em;
}
.workflow-card__head > span { color: var(--blue); font-weight: 500; }
.workflow-card__head small { font: inherit; color: var(--muted); }
.workflow-card h3 {
    max-width: 600px;
    margin-bottom: 1.15rem;
    font-size: clamp(2rem, 3vw, 3.15rem);
}
.workflow-card > p {
    max-width: 700px;
    margin-bottom: 1.7rem;
    color: var(--ink-soft);
}
.workflow-card > ul {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: grid;
    gap: .7rem;
}
.workflow-card > ul li {
    position: relative;
    padding-left: 1.15rem;
    color: var(--ink-soft);
    font-size: .91rem;
}
.workflow-card > ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .78em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--blue);
}
.workflow-card__output {
    margin-top: auto;
    padding-top: 1.3rem;
    border-top: 1px solid var(--line);
    color: var(--ink);
    font-size: .82rem;
}
.workflow-card__output > span {
    display: block;
    margin-bottom: .45rem;
    color: var(--muted);
    font-family: var(--mono);
    font-size: .55rem;
    letter-spacing: .09em;
}
.workflow-card__tools {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: auto;
    padding-top: 1.3rem;
    border-top: 1px solid var(--line);
}
.workflow-card__tools span {
    padding: .32rem .58rem;
    border: 1px solid var(--line-strong);
    font-family: var(--mono);
    font-size: .6rem;
}
.systems-thinking {
    padding: clamp(6rem, 10vw, 11rem) 0;
    background: var(--night);
    color: white;
}
.systems-thinking__grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: start;
}
.systems-thinking .eyebrow { color: rgba(255,255,255,.5); }
.systems-thinking .eyebrow span { color: white; }
.systems-thinking__intro h2 { font-size: clamp(3rem, 5vw, 5.2rem); }
.systems-thinking__intro > p:last-child { max-width: 630px; color: rgba(255,255,255,.66); }
.systems-thinking__pillars { border-top: 1px solid rgba(255,255,255,.22); }
.systems-thinking__pillars article {
    display: grid;
    grid-template-columns: 48px minmax(0, .7fr) minmax(0, 1.3fr);
    gap: 1.6rem;
    align-items: start;
    padding: 2rem 0;
    border-bottom: 1px solid rgba(255,255,255,.18);
}
.systems-thinking__pillars article > span {
    padding-top: .2rem;
    color: rgba(255,255,255,.42);
    font-family: var(--mono);
    font-size: .58rem;
}
.systems-thinking__pillars h3 {
    margin: 0;
    font-family: var(--sans);
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: 0;
}
.systems-thinking__pillars p { margin: 0; color: rgba(255,255,255,.62); font-size: .9rem; }

@media (max-width: 980px) {
    .professional-workflow__grid { grid-template-columns: 1fr; }
    .workflow-card { min-height: 0; }
    .systems-thinking__grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
    .professional-workflow { padding-block: 4.5rem; }
    .workflow-card { padding: 1.6rem; }
    .workflow-card h3 { font-size: 2.25rem; }
    .systems-thinking { padding-block: 4.5rem; }
    .systems-thinking__pillars article { grid-template-columns: 34px 1fr; gap: 1rem; }
    .systems-thinking__pillars article p { grid-column: 2; }
}
