/* Octa HQ · its first Fruit, Octa Models (15 Oct 2026). Master: "we need a full page about Octa Models with a link about Octa Models.
   Also a hero page about our first fruit". The page octa-models.html, and the banner on Home and Seeds that leads to it.
   Octa HQ's own look (main.css tokens); Octa Models' approved mark (assets/models/octa-models-mark.svg, unchanged), turning clockwise,
   20 s a turn, as its book says; its pictures are its own (Breda–Montseny, from its engine). */
.om-mark{width:64px;height:64px;flex:none;animation:omSpin 20s linear infinite}
@keyframes omSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.om-mark{animation:none}}
.om-lockup{display:inline-flex;align-items:center;gap:16px}
.om-lockup .om-rule{width:1px;height:46px;background:var(--border-strong)}
.om-lockup b{display:block;font-family:var(--font-serif);font-size:1.9rem;font-weight:400;line-height:1}
.om-lockup b i{font-weight:300}
.om-lockup small{display:block;margin-top:6px;color:var(--muted);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em}

/* the hero: the model at the golden hour, full bleed */
.fruit-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--border);color:#f2f0e9}
.fruit-hero picture,.fruit-hero img.fh-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.fruit-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,19,25,.55) 0,rgba(18,19,25,.08) 34%,rgba(18,19,25,.35) 62%,#121319 100%),linear-gradient(90deg,rgba(18,19,25,.82) 0,rgba(18,19,25,.25) 58%,transparent 100%)}
.fruit-hero .shell{position:relative;z-index:2;padding:calc(var(--header-height) + 80px) 0 96px}
.fruit-hero .section-index{color:rgba(242,240,233,.72)}
.fruit-hero h1{max-width:980px;margin:26px 0 18px;font-family:var(--font-serif);font-size:clamp(3.4rem,8vw,8rem);font-weight:400;line-height:.94;letter-spacing:-.015em}
.fruit-hero h1 em{font-weight:300;color:transparent;background:linear-gradient(100deg,var(--eco),var(--spi) 55%,var(--soc));-webkit-background-clip:text;background-clip:text}
.fruit-hero .fh-desc{margin:0 0 14px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,240,233,.8)}
.fruit-hero .fh-copy{max-width:640px;margin:0;color:rgba(242,240,233,.86);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.7}
.fruit-hero .om-lockup small{color:rgba(242,240,233,.72)}
.fruit-hero .om-lockup .om-rule{background:rgba(242,240,233,.3)}
.fh-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.fruit-hero .button-primary{background:#f2f0e9;color:#121319}
.fruit-hero .button-outline{border-color:rgba(242,240,233,.4);color:#f2f0e9}
.fruit-hero .button-outline:hover{border-color:#f2f0e9}
.fh-cap{position:absolute;z-index:2;right:32px;bottom:22px;max-width:46ch;text-align:right;color:rgba(242,240,233,.62);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}

/* sections of the page */
.fruit-sec{padding:120px 0}
.fruit-sec .section-heading{margin-bottom:56px}
.fruit-lede{max-width:760px;color:var(--muted);font-size:1.05rem;line-height:1.75}
.fruit-models{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.fruit-models figure{margin:0;background:var(--bg);display:flex;flex-direction:column}
.fruit-models img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.fruit-models figcaption{padding:22px 22px 26px}
.fruit-models .fm-no{color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em}
.fruit-models strong{display:block;margin:8px 0 8px;font-family:var(--font-serif);font-size:1.6rem;font-weight:400}
.fruit-models p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}
.fruit-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none;counter-reset:s}
.fruit-steps li{border-top:1px solid var(--border-strong);padding-top:22px}
.fruit-steps span{color:var(--faint);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}
.fruit-steps strong{display:block;margin:10px 0;font-family:var(--font-serif);font-size:1.5rem;font-weight:400}
.fruit-steps p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.65}
.fruit-views{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:64px}
.fruit-views figure{margin:0}
.fruit-views img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--border)}
.fruit-views figcaption{margin-top:10px;color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}
.fruit-grades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.fruit-grades div{background:var(--bg);padding:26px 22px}
.fruit-grades b{display:block;font-family:var(--font-serif);font-size:1.4rem;font-weight:400;margin-bottom:8px}
.fruit-grades p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}
.fruit-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.fruit-figures>div{border-top:1px solid var(--border-strong);padding-top:22px}
.fruit-figures .ff-n{font-family:var(--font-serif);font-size:clamp(3rem,5vw,4.6rem);font-weight:300;line-height:1}
.fruit-figures .ff-n small{font-size:.4em;margin-left:4px;color:var(--muted)}
.fruit-figures .ff-k{display:block;margin:12px 0 8px;color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
.fruit-figures p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.6}
.fruit-family{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:18px}
.fruit-family>div{border:1px solid var(--border);background:var(--panel);padding:26px 24px}
.fruit-family>div.on{border-color:color-mix(in srgb,var(--spi) 60%,transparent)}
.fruit-family>i{align-self:center;color:var(--faint);font-style:normal;font-size:1.4rem}
.fruit-family span{color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
.fruit-family strong{display:block;margin:10px 0 8px;font-family:var(--font-serif);font-size:1.6rem;font-weight:400}
.fruit-family p{margin:0 0 14px;color:var(--muted);font-size:.9rem;line-height:1.6}
.fruit-credit{margin-top:40px;color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;line-height:1.8}

/* the banner on Home and Seeds: the first Fruit, large, leading to its page */
.fruit-banner{position:relative;overflow:hidden;border-bottom:1px solid var(--border);color:#f2f0e9;min-height:78svh;display:flex;align-items:center}
.fruit-banner img.fb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.fruit-banner::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(18,19,25,.92) 0,rgba(18,19,25,.62) 45%,rgba(18,19,25,.12) 100%),linear-gradient(180deg,transparent 60%,rgba(18,19,25,.7) 100%)}
.fruit-banner .shell{position:relative;z-index:2;padding:110px 0}
.fruit-banner .section-index{color:rgba(242,240,233,.72)}
.fruit-banner h2{margin:26px 0 8px;font-family:var(--font-serif);font-size:clamp(3rem,7vw,6.6rem);font-weight:400;line-height:.95;max-width:none}
.fruit-banner h2 i{font-weight:300}
.fruit-banner .fb-line{margin:0 0 22px;font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.4vw,2rem);color:transparent;background:linear-gradient(100deg,var(--eco),var(--spi) 55%,var(--soc));-webkit-background-clip:text;background-clip:text}
.fruit-banner .fb-copy{max-width:560px;margin:0;color:rgba(242,240,233,.84);line-height:1.7}
.fruit-banner .button-primary{background:#f2f0e9;color:#121319}
.fruit-banner .button-outline{border-color:rgba(242,240,233,.4);color:#f2f0e9}
.fruit-banner .button-outline:hover{border-color:#f2f0e9}
.fruit-banner .fb-tag{display:flex;align-items:center;gap:12px;margin-top:18px;color:rgba(242,240,233,.72);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em}

/* the Seeds directory: each Seed's own website */
.seed-site a{display:inline-flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-strong);color:var(--cream);font-size:.84rem;font-weight:600;text-decoration:none}
.seed-site a:hover{border-color:var(--cream)}
.seed-site a+a{margin-left:18px}

@media (max-width:980px){.fruit-models,.fruit-grades,.fruit-steps,.fruit-figures,.fruit-views{grid-template-columns:repeat(2,minmax(0,1fr))}.fruit-family{grid-template-columns:1fr}.fruit-family>i{transform:rotate(90deg);justify-self:center}}
@media (max-width:620px){.fruit-models,.fruit-grades,.fruit-steps,.fruit-figures,.fruit-views{grid-template-columns:1fr}.fruit-sec{padding:84px 0}.fh-cap{position:static;text-align:left;margin:-60px 0 30px;padding:0 20px;z-index:2}.fruit-hero .shell{padding-bottom:70px}}

/* each Seed's own approved mark in the Seeds directory (15 Oct 2026, Master: "add logo to each company"): night and day files, turning
   clockwise, 20 s a turn, still for reduced motion; a dashed outline where a Seed has no mark yet */
.seed-identity .co-mark{width:72px;height:72px;animation:omSpin 20s linear infinite}
.seed-identity .co-day{display:none}
html[data-octa-theme=day] .seed-identity .co-mark.has-day{display:none}
html[data-octa-theme=day] .seed-identity .co-day{display:block}
.seed-identity .co-missing{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:auto;height:auto;animation:none;color:var(--faint)}
.seed-identity .co-missing svg{width:60px;height:60px}
.seed-identity .co-missing small{font-family:var(--font-mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase}
@media (max-width:620px){.seed-identity .co-mark{width:56px;height:56px}}
@media (prefers-reduced-motion:reduce){.seed-identity .co-mark{animation:none}}

/* Cole Porto's review, 15 Oct 2026 (c-6, c-9, c-14, c-10). In day mode the general rule turned every primary button dark
   (#2b1a1b) — on these dark photographs it read as dark red with dark text. The banner and the hero keep their night look
   whatever the theme: a cream button with ink text, a cream outline. */
html[data-octa-theme=day] .fruit-hero .button-primary,html[data-octa-theme=day] .fruit-banner .button-primary{background:#f2f0e9;color:#121319}
html[data-octa-theme=day] .fruit-hero .button-outline,html[data-octa-theme=day] .fruit-banner .button-outline{border-color:rgba(242,240,233,.4);color:#f2f0e9}
html[data-octa-theme=day] .fruit-hero .button-outline:hover,html[data-octa-theme=day] .fruit-banner .button-outline:hover{border-color:#f2f0e9}
/* … and the bar at the top of the Octa Models page, while it rests on the dark hero, wears the night's colours in day mode
   too; once scrolled it takes the day's paper as before. */
html[data-octa-theme=day] .fruit-page .site-header:not(.scrolled){--bg:#121319;--cream:#f2f0e9;--ink:242,240,233;--muted:rgba(242,240,233,.62);--faint:rgba(242,240,233,.38);--border:rgba(242,240,233,.11);--border-strong:rgba(242,240,233,.24);--panel:rgba(242,240,233,.025);--men:#d8d8d8;color:#f2f0e9}
/* a logo that moves on its own (Being, AI, Production, Exchange) is not turned again by the page (15 Oct 2026) */
.seed-identity .co-mark.co-own{animation:none}
/* Octa AiiA's web leaves more open space inside its square than the other Seeds' marks: drawn larger so it reads the same size */
.seed-identity .co-mark[src*="octa-ai.svg"]{width:92px;height:92px;margin:-10px}
@media (max-width:620px){.seed-identity .co-mark[src*="octa-ai.svg"]{width:72px;height:72px;margin:-8px}}
