/* Inner pages: shared section patterns, then page-specific pieces. */

/* Page heroes */
.hero--page{min-height:clamp(640px,94svh,1000px)}
.hero--compact{min-height:clamp(500px,66svh,680px)}
.hero--page .hero-title,.hero--compact .hero-title{max-width:13ch}
.hero-media>img.hero-photo{left:auto;right:0;width:70%;object-position:50% 40%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 38%);mask-image:linear-gradient(90deg,transparent 0%,#000 38%)}
@media(max-width:760px){.hero-media>img.hero-photo{width:100%;-webkit-mask-image:none;mask-image:none;opacity:.6}}
.hero-art{position:absolute;top:50%;right:-6%;width:min(66vw,1080px);transform:translateY(-46%);opacity:.95;pointer-events:none}
.hero-art img{width:100%;height:auto}
.hero-film{position:absolute;inset:0;background:var(--navy-deep)}
.hero-film video{position:absolute;inset:0 0 0 22%;width:78%;height:100%;object-fit:cover;mix-blend-mode:screen}
@media(max-width:760px){.hero-art{right:-30%;width:120vw;top:30%;opacity:.5}.hero-film video{inset:0;width:100%;opacity:.6}}

/* Split: sticky heading beside a content column */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);row-gap:48px}
.split-head{grid-column:1/span 5;align-self:start;display:grid;gap:24px}
.split-body{grid-column:7/-1}
@media(min-width:901px){.split-head{position:sticky;top:calc(var(--header-h) + 48px)}}
@media(max-width:900px){.split-head,.split-body{grid-column:1/-1}}
.split-head p{color:var(--muted);max-width:40ch}

/* Ledger rows */
.ledger{border-top:1px solid var(--line-strong)}
.ledger>li,.ledger>article{display:grid;grid-template-columns:64px 1fr;gap:8px 24px;padding:clamp(28px,3vw,44px) 0;border-bottom:1px solid var(--line-strong)}
.ledger .index-num{padding-top:.5em}
.ledger h3{font-size:clamp(26px,2.6vw,40px);letter-spacing:-.035em;line-height:1.1}
.ledger p{grid-column:2;color:var(--muted);max-width:44ch}

/* Accordion rows */
.accordion{border-top:1px solid var(--line-strong)}
.accordion details{border-bottom:1px solid var(--line-strong)}
.accordion summary{display:grid;grid-template-columns:64px 1fr 48px;align-items:center;gap:24px;min-height:96px;padding:20px 0;cursor:pointer;list-style:none;font-size:clamp(26px,3vw,48px);letter-spacing:-.04em;line-height:1.1;transition:color .3s ease}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary:hover{color:var(--slate)}
.accordion summary .index-num{font-size:12px;letter-spacing:.08em}
.plus{position:relative;justify-self:end;width:22px;height:22px}
.plus::before,.plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform .6s var(--ease-out)}
.plus::after{transform:rotate(90deg)}
details[open]>summary .plus::after{transform:rotate(0)}
.accordion-body{padding:0 0 40px 88px;display:grid;gap:28px}
.accordion-body>p{font-size:var(--fs-lead);line-height:1.6;max-width:36em}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.facts>div{padding:20px 0 0;border-top:1px solid var(--line)}
.facts dt{font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.facts dd{margin:0;font-size:15px;line-height:1.65}
@media(max-width:760px){.accordion summary{grid-template-columns:40px 1fr 32px;gap:12px;min-height:80px}.accordion-body{padding-left:0}.facts{grid-template-columns:1fr}}
@supports selector(::details-content){
  :root{interpolate-size:allow-keywords}
  details::details-content{block-size:0;overflow:hidden;transition:block-size .7s var(--ease-out),content-visibility .7s allow-discrete}
  details[open]::details-content{block-size:auto}
}

/* Image cards */
.image-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.image-card{position:relative;display:grid;align-content:end;min-height:clamp(420px,46vw,640px);padding:clamp(24px,3vw,44px);color:var(--mist);overflow:hidden;isolation:isolate;background:var(--navy)}
.image-card .media{position:absolute;inset:0;z-index:-2}
.image-card .media img{transition:transform 1.6s var(--ease-out)}
.image-card:hover .media img{transform:scale(1.05)}
.image-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.2) 55%,rgba(0,0,0,0) 100%)}
.image-card .tag{margin-bottom:16px;color:var(--muted-dark)}
.image-card h3{font-size:clamp(30px,3.2vw,52px);letter-spacing:-.04em}
.image-card p{margin-top:12px;max-width:38ch;color:#c4d0da}
.image-card--particles .media{background:var(--navy)}
.image-card--particles .media img{object-fit:contain;padding:8% 10% 22%}
@media(max-width:800px){.image-cards{grid-template-columns:1fr}}

/* Numbered grid (dark) */
.numbered{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));border-top:1px solid var(--line)}
.numbered>div{display:grid;align-content:start;gap:14px;padding:32px 28px 40px 0;border-bottom:1px solid var(--line)}
.numbered>div+div{padding-left:28px;border-left:1px solid var(--line)}
.numbered .big-num{font-size:clamp(44px,4.6vw,72px);line-height:1;letter-spacing:-.05em;color:var(--slate-light)}
.numbered dt{font-size:20px;letter-spacing:-.02em}
.numbered dd{margin:0;color:var(--muted);font-size:15px}
@media(max-width:900px){.numbered>div+div{padding-left:0;border-left:0}}

/* Scope / wider assets */
.scope{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center}
.scope-art{aspect-ratio:4/3;background:transparent}
.scope-art img{object-fit:contain;mix-blend-mode:multiply}
.scope-card{margin-top:40px;padding:32px;border:1px solid var(--line-strong);display:grid;gap:14px;background:var(--paper)}
.scope-card h3{font-size:24px;letter-spacing:-.03em}
.scope-card p{color:var(--muted)}
@media(max-width:900px){.scope{grid-template-columns:1fr}}

/* Platform: system lanes */
.lanes{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,24px)}
.lanes::before{content:"";position:absolute;left:4%;right:4%;top:50%;height:1px;background:var(--line-strong)}
.lanes::after{content:"";position:absolute;left:4%;top:50%;width:12%;height:1px;margin-top:-.5px;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:lane-pulse 4.5s var(--ease-io) infinite}
@keyframes lane-pulse{0%{transform:translateX(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateX(700%);opacity:0}}
.lane{position:relative;z-index:1;display:grid;gap:40px;align-content:space-between;min-height:220px;padding:28px;border:1px solid var(--line-strong);background:var(--paper)}
.lane .index-num{display:flex;justify-content:space-between}
.lane strong{display:block;font-weight:400;font-size:clamp(22px,2vw,30px);letter-spacing:-.03em;line-height:1.15}
.lane p{color:var(--muted);font-size:14.5px;margin-top:8px}
.lane--fractur{background:var(--navy);color:var(--mist);border-color:var(--navy)}
.lane--fractur p,.lane--fractur .index-num{color:var(--muted-dark)}
.lane--fractur img{width:28px;height:auto}
@media(max-width:900px){.lanes{grid-template-columns:1fr 1fr}.lanes::before,.lanes::after{display:none}}
@media(max-width:520px){.lanes{grid-template-columns:1fr}.lane{min-height:0}}

/* Platform: modules */
.modules{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.modules .accordion summary{font-size:clamp(22px,2.2vw,34px);min-height:84px}
.modules .accordion-body{padding-left:88px}
.modules .accordion-body p{font-size:16px;color:var(--muted);max-width:40ch}
.module-stage{position:sticky;top:calc(var(--header-h) + 40px);aspect-ratio:4/3;background:var(--paper);border:1px solid var(--line)}
.module-stage figure{position:absolute;inset:0;margin:0;display:grid;grid-template-rows:1fr auto;opacity:0;transition:opacity .8s var(--ease-out)}
.module-stage figure.is-active{opacity:1}
.module-stage img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.4s var(--ease-out)}
.module-stage figure.is-active img{transform:none}
.module-stage figcaption{padding:20px 24px;border-top:1px solid var(--line);background:var(--paper);font-size:15px}
.module-stage figcaption span{display:block;color:var(--muted);font-size:14px;margin-top:4px}
@media(max-width:900px){.modules{grid-template-columns:1fr}.module-stage{position:relative;top:0}.modules .accordion-body{padding-left:0}}

/* Roles (dark) */
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.roles article{display:grid;align-content:start;gap:18px;padding:40px 32px 56px 0;border-bottom:1px solid var(--line)}
.roles article+article{padding-left:32px;border-left:1px solid var(--line)}
.roles h3{font-size:clamp(26px,2.4vw,38px);letter-spacing:-.035em}
.roles p{color:var(--muted);max-width:34ch}
.roles .is-key h3{color:var(--teal-glow)}
@media(max-width:900px){.roles{grid-template-columns:1fr}.roles article+article{padding-left:0;border-left:0}}

/* About: principles */
.principles{border-top:1px solid var(--line)}
.principle{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:baseline;padding:clamp(28px,4vw,56px) 0;border-bottom:1px solid var(--line)}
.principle h3{font-size:clamp(44px,7vw,120px);line-height:.95;letter-spacing:-.055em;transition:transform .8s var(--ease-out),color .5s ease}
.principle:hover h3{transform:translateX(16px);color:var(--slate-light)}
.principle p{color:var(--muted);max-width:36ch;font-size:17px}
@media(max-width:760px){.principle{grid-template-columns:40px 1fr}.principle p{grid-column:2}}

/* About: origin */
.origin{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:center}
.origin-media{aspect-ratio:16/10}
.origin-media .para{position:absolute;inset:-10% 0}
.origin-media .para img{width:100%;height:100%;object-fit:cover}
.origin-copy{display:grid;gap:24px;justify-items:start}
.origin-copy p{color:var(--muted);max-width:42ch}
@media(max-width:900px){.origin{grid-template-columns:1fr}}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(40px,6vw,120px);align-items:start}
.contact-aside{display:grid;gap:40px}
@media(min-width:901px){.contact-aside{position:sticky;top:calc(var(--header-h) + 40px)}}
.contact-mail{font-size:clamp(26px,2.8vw,42px);letter-spacing:-.035em;line-height:1.1;border-bottom:1px solid var(--line-strong);padding-bottom:10px;justify-self:start;transition:color .3s ease}
.contact-mail:hover{color:var(--slate)}
.steps{counter-reset:step;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:48px 1fr;gap:4px 16px;padding:22px 0;border-bottom:1px solid var(--line)}
.steps li::before{counter-increment:step;content:"0" counter(step);grid-row:span 2;font-weight:700;font-size:12px;color:var(--muted);padding-top:4px}
.steps h3{font-size:18px;letter-spacing:-.02em}
.steps p{color:var(--muted);font-size:14.5px}
.form{display:grid;gap:28px;padding:clamp(28px,4vw,56px);background:var(--paper);border:1px solid var(--line)}
.form-head{display:grid;gap:10px;margin-bottom:8px}
.form-head p{color:var(--muted)}
.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.field{display:grid;gap:8px}
.field label{font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:12px 0;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;font-size:17px;color:var(--ink);transition:border-color .3s ease;appearance:none}
.field select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23101c2b' stroke-width='1.4'/%3E%3C/svg%3E") right 4px center no-repeat}
.field textarea{resize:vertical;min-height:140px;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--teal);box-shadow:0 1px 0 var(--teal)}
.field input::placeholder,.field textarea::placeholder{color:#8696a5}
.form-note{font-size:13.5px;color:var(--muted)}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.form-actions a{font-size:13.5px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.enquiry-review{display:grid;gap:12px;padding:24px;background:var(--wash);border-left:2px solid var(--teal)}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media(max-width:600px){.form-pair{grid-template-columns:1fr}}

/* Legal */
.legal{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(40px,6vw,120px);align-items:start}
.legal-toc{position:sticky;top:calc(var(--header-h) + 32px);display:grid;gap:4px}
.legal-toc p{margin-bottom:12px}
.legal-toc a{display:block;padding:9px 0 9px 16px;border-left:1px solid var(--line);font-size:14px;color:var(--muted);transition:color .3s ease,border-color .3s ease}
.legal-toc a:hover{color:var(--ink)}
.legal-toc a[aria-current]{color:var(--ink);border-left-color:var(--navy);border-left-width:2px;padding-left:15px}
.read-progress{position:fixed;left:0;right:0;top:0;z-index:130;height:2px;background:var(--teal-glow);transform-origin:left;transform:scaleX(0)}
.legal-content{max-width:72ch;font-size:16.5px;line-height:1.85}
.legal-section{padding-bottom:56px;margin-bottom:56px;border-bottom:1px solid var(--line)}
.legal-section:last-child{border-bottom:0}
.legal-content h2{font-size:clamp(26px,2.4vw,36px);letter-spacing:-.035em;margin-bottom:24px}
.legal-content h3{font-size:19px;letter-spacing:-.02em;margin:32px 0 12px}
.legal-content p+p,.legal-content p+ul,.legal-content ul+p{margin-top:16px}
.legal-content ul{display:grid;gap:10px;margin-top:16px}
.legal-content li{position:relative;padding-left:24px;color:#2c3b4b}
.legal-content li::before{content:"";position:absolute;left:0;top:.8em;width:10px;height:1px;background:var(--slate)}
.legal-content a{text-decoration:underline;text-underline-offset:4px}
.highlight-box{margin:24px 0;padding:24px 28px;background:var(--wash);border-left:2px solid var(--navy)}
@media(max-width:900px){.legal{grid-template-columns:1fr}.legal-toc{position:relative;top:0}}

/* Team */
.founders{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,24px)}
.founders figure{margin:0;display:grid;gap:14px}
.portrait{aspect-ratio:4/5;background:var(--navy-2)}
.portrait img{filter:grayscale(1) contrast(1.05);transition:filter 1s ease,transform 1.6s var(--ease-out)}
.portrait:hover img,a:hover .portrait img{filter:none;transform:scale(1.03)}
.founders figcaption{display:flex;justify-content:space-between;gap:16px;font-size:15px}
.founders figcaption span{color:var(--muted)}
.profile{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,112px);align-items:center;padding-block:clamp(56px,7vw,112px);border-top:1px solid var(--line)}
.profile:nth-of-type(even) .profile-media{order:2}
.profile-copy{display:grid;gap:20px;justify-items:start}
.profile-copy h3{font-size:clamp(36px,4.2vw,68px);letter-spacing:-.045em;line-height:1}
.profile-role{font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.profile-copy p:not(.profile-role){color:var(--muted);max-width:46ch;font-size:16.5px}
.insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.insight{display:grid;gap:16px;align-content:start}
.insight .media{aspect-ratio:4/3;background:var(--navy)}
.insight .media img{object-fit:contain;transition:transform 1.4s var(--ease-out)}
.insight:hover .media img{transform:scale(1.06)}
.insight-meta{display:flex;justify-content:space-between;font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.insight h3{font-size:clamp(22px,1.9vw,28px);letter-spacing:-.03em}
.insight p{color:var(--muted);font-size:15px}
@media(max-width:900px){.profile{grid-template-columns:1fr}.profile:nth-of-type(even) .profile-media{order:0}.insights{grid-template-columns:1fr}}
@media(max-width:560px){.founders{grid-template-columns:1fr}}
