/* The homepage uses the original DAY horizon scene and the tool atlas. */
.homepage { background-color: var(--paper); }
.homepage::after { opacity: .13; }
.homepage:has(.print-hero:is([data-print="section"],[data-print="graphics"])) .site-header:not(.is-scrolled) { --nav-ink:var(--paper); }
/* A section index, independent of the automatically rotating illustration. */
@media (min-width:1280px) {
  .homepage .side-rail { display:flex; right:max(10px,calc((100vw - var(--wrap))/2 - 48px)); }
}
.hero-signature { position:absolute; z-index:3; top:calc(var(--header-h) + 34px); right:calc(var(--gutter) + 15px); color:var(--type); font:650 .8rem/1.4 var(--mono); letter-spacing:.15em; }
.hero-signature i { display:block; margin:7px 0 0 auto; width:48px; height:4px; background:var(--day); }
@media(max-width:700px) { .hero-signature { top:calc(var(--header-h) + 12px); right:var(--gutter); font-size:.65rem; } }

/* The film uses the existing paper, graphite and daylight inks. */
.print-hero {
  --peach:rgb(var(--h-dawn)); --blue:rgb(var(--h-sky)); --violet:rgb(var(--h-dusk));
  --sheet:var(--paper); --type:var(--ink); --soft-ink:var(--ink-2); --accent:var(--sun);
  --keyline:color-mix(in srgb,var(--type) 25%,transparent); --cta:var(--ink); --cta-type:var(--surface);
  --poster-ink:color-mix(in srgb,var(--type) 64%,var(--sheet));
  position:relative; display:grid; grid-template-rows:1fr; min-height:100vh; min-height:100dvh; color:var(--type);
}
.print-hero:is([data-print="section"],[data-print="graphics"]) {
  --type:var(--paper); --soft-ink:var(--paper-3); --cta:var(--sun); --cta-type:var(--ink);
}
.print-stage {
  position:relative; isolation:isolate; overflow:hidden; display:grid; align-items:center;
  min-height:0; padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px)); background:var(--sheet);
  border-bottom:1px solid var(--keyline);
}
.print-stage::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg,var(--keyline),var(--keyline)) var(--gutter) 0 / 1px 100% no-repeat,
    radial-gradient(var(--keyline) .7px,transparent 1px) 0 0/8px 8px;
  mask-image:linear-gradient(110deg,#000,transparent 29%,transparent 74%,#000); opacity:.54;
}
.print-stage::after {
  content:""; position:absolute; z-index:2; left:var(--gutter); bottom:16px; width:102px; height:9px;
  background:repeating-linear-gradient(90deg,var(--type) 0 2px,transparent 2px 5px,var(--type) 5px 6px,transparent 6px 9px); opacity:.75;
}
.atlas-art { position:absolute; inset:0; z-index:-1; isolation:isolate; overflow:visible; }
.atlas-art .plate-ink,.plate-sun { position:absolute; display:block; inset:0; width:100%; height:100%; pointer-events:none; }
.plate-ink { object-fit:contain; }

.coast-land { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.coast-land.portrait { display:none; }
.art-coast {
  background:
    radial-gradient(ellipse at 52% 66%,rgba(var(--sun-rgb),.42),transparent 44%),
    linear-gradient(180deg,rgba(var(--h-sky),.12),transparent 36%,rgba(var(--h-dawn),.19) 68%,rgba(var(--h-sky),.18));

}
.art-coast:not(:has(.plate-sun[width]))::before {
  content:"";position:absolute;left:68.16%;top:67.67%;transform:translate(-50%,-100%);
  width:min(33.2vw,58.3vh);aspect-ratio:2;border-radius:999px 999px 0 0;background:var(--sun);
}
.print-intro { z-index:2; display:grid; justify-items:start; position:relative; margin-left:max(calc(var(--gutter) + 22px),calc((100% - 1440px)/2 + 82px)); width:max-content; max-width:49%; padding-block:50px 62px; }
.print-hero .home-title { grid-row:1; margin:0 0 14px; color:var(--type); font:760 clamp(3.7rem,7.3vw,7.5rem)/1.07 var(--sans); letter-spacing:-.045em; white-space:nowrap; }
.print-hero:lang(en) .home-title { font-size:clamp(3.3rem,6.5vw,6.6rem); letter-spacing:-.065em; }
.plate-copy { display:contents; }
.plate-copy p { grid-row:2; color:var(--soft-ink); font-size:clamp(1rem,1.4vw,1.23rem); line-height:1.55; }
.print-hero [hidden] { display:none !important; }
.home-entry {
  display:inline-flex; align-items:center; justify-content:space-between; gap:22px; margin-top:26px;
  min-height:48px; padding:10px 23px; clip-path:var(--cut);
  font-size:.98rem; font-weight:650; text-decoration:none; color:var(--cta-type); background:var(--cta);
}
.home-entry::after { content:""; width:8px; height:8px; border:1px solid currentColor; background:var(--accent); }
.home-entry:hover,.home-entry:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.home-entry {grid-row:3;}
.home-entry:focus-visible { outline:3px solid var(--accent); outline-offset:-5px; }
.stage-corner { position:absolute; width:27px; height:27px; right:var(--gutter); top:calc(var(--header-h) + 20px); border-right:2px solid var(--type); border-top:2px solid var(--type); }
.camera-gate { position:absolute; inset:0; }
.art-section .portrait { display:none; }
.machine-film { display:block; width:100%; height:100%; object-fit:cover; object-position:70% center;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.4) 25%,black 50%); }
.press-register { position:absolute; left:var(--gutter); top:calc(var(--header-h) + 18px); width:42px; height:7px; background:var(--day); }
.press-register::after { content:""; position:absolute; top:19px; right:100%; width:14px; height:calc(100dvh - var(--header-h) - 66px); border-right:1px solid color-mix(in srgb,var(--type) 35%,transparent); background:repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 64px) right top / 13px 100% no-repeat,repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 32px) right top / 9px 100% no-repeat,repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 8px) right top / 5px 100% no-repeat; color:var(--type); opacity:.55; pointer-events:none; }
.stage-corner::after { content:""; position:absolute; top:8px; right:5px; height:6px; width:75px; background:repeating-linear-gradient(110deg,var(--keyline) 0 2px,transparent 2px 6px); }
@media(prefers-reduced-motion:no-preference) {
  .art-section:not([hidden]) .camera-gate { animation:follow-stack 8.5s ease-in-out both; }
  @keyframes follow-stack {
    0%,12% { transform:translateY(-9%) scale(1.20); }
    58%,100% { transform:translateY(2%) scale(.99); }
  }
  .print-hero:not([data-running]) .atlas-art :is(.camera-gate,use) { animation-play-state:paused; }
}
.layer-board { --lift:-68px; }
.layer-core { --lift:-151px; }
.layer-lid { --lift:-274px; }
.art-section use:is(.layer-board,.layer-core,.layer-lid) { transform:translateY(var(--lift)); }
@media (prefers-reduced-motion:no-preference) {
  .print-hero[data-changed] .atlas-art:not([hidden]) { animation:plate-reveal .5s cubic-bezier(.16,.75,.24,1) both; }

  .art-section:not([hidden]) use:is(.layer-board,.layer-core,.layer-lid) {
    animation:open-board 3.5s cubic-bezier(.4,0,.16,1) both;
  }
  @keyframes open-board { 0%,12% {transform:none;} 100% {transform:translateY(var(--lift));} }
  @keyframes plate-reveal { from { opacity:0; } to { opacity:1; } }

}
@media (max-width:720px) {
  .print-stage { grid-template-rows:auto minmax(145px,1fr); }
  .print-intro { grid-row:1; margin:0; padding:25px var(--gutter) 0; max-width:none; width:auto; }
  .print-hero .home-title,.print-hero:lang(en) .home-title { font-size:clamp(3.1rem,10.7vw,5.4rem); margin:13px 0 7px; }
  .home-entry { margin-top:12px; min-height:44px; font-size:.89rem; padding:8px 16px; }
  .art-section .wide { display:none; }
  .art-section .portrait { display:block; }
  .machine-film { mask-image:linear-gradient(180deg,transparent 12%,rgba(0,0,0,.18) 24%,black 46%); }
  .coast-land.wide { display:none; }
  .coast-land.portrait { display:block; }
  .art-coast:not(:has(.plate-sun[width]))::before { left:49.18%; top:76.63%; width:min(63vw,42vh); }
  .stage-corner { width:13px; height:13px; top:calc(var(--header-h) + 8px); }
  .print-stage::after { width:48px; height:6px; bottom:10px; }

}
@media (prefers-reduced-motion:reduce) { .print-stage { transition:none; } }
/* The homepage keeps its full directory inside the site's original printed footer. */
.home-sitemap { display:grid; grid-template-columns:1.45fr repeat(4,minmax(0,1fr)); gap:clamp(18px,2.5vw,46px); }
.home-sitemap > :is(.footer-lead,.footer-col) { grid-column:auto; min-width:0; }
.home-sitemap [data-company-name] { color:var(--ink-2); font-size:.9375rem; }
@media (max-width:1000px) {
  .home-sitemap { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:32px; }
  .home-sitemap > .footer-lead { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .home-sitemap { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:720px) {
  .press-register,.stage-corner::after {display:none;}
}

/* Ink stays on the page edges, leaving the object and its moving parts unobstructed. */
.press-art { position:absolute; inset:0; overflow:hidden; pointer-events:none; color:var(--poster-ink); }
.press-ground { position:absolute; inset:0; width:100%; height:100%; opacity:.75; }
.press-foot,.press-crown,.art-section .plate-ink,.dish-detail { overflow:visible; }
.press-foot { position:absolute; bottom:-12px; left:-5vw; width:clamp(380px,42vw,720px); }
.press-crown { position:absolute; top:calc(var(--header-h) - 2vw); right:-3vw; width:clamp(400px,40vw,760px); }
.press-art { mask-image:linear-gradient(transparent calc(var(--header-h) - 8px),black calc(var(--header-h) + 35px)); }
.press-crown use { display:none; }
.print-hero:is([data-print="coast"],[data-print="relay"]) .press-orbit,
.print-hero:is([data-print="section"],[data-print="graphics"]) .press-vanes,
.print-hero:is([data-print="memory"],[data-print="cluster"]) .press-weave,
.print-hero:is([data-print="dispatch"],[data-print="signal"]) .press-folds { display:inline; }

.print-hero .brand-ink {
  display:inline-block; position:relative; isolation:isolate;
  padding:.04em .035em .07em 0; color:var(--type); line-height:1.1;
}
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .print-hero .brand-ink {
    color:transparent; background-image:var(--title-face);
    -webkit-background-clip:text; background-clip:text;
    -webkit-text-stroke:var(--title-stroke,0px) var(--title-edge,transparent);
    filter:var(--title-relief,none);
  }
}
/* Each shot pairs two day-cycle inks. Film backdrops match the same sRGB stock mixes. */
.print-hero[data-print="coast"] {
  --poster-foil:var(--peach); --poster-second:var(--blue);
}
.print-hero[data-print="coast"] .home-title {
  font-size:clamp(3.25rem,5.75vw,5.4rem); font-weight:500; letter-spacing:.018em;
}
.print-hero[data-print="coast"]:lang(en) .home-title { letter-spacing:-.04em; }
.print-hero[data-print="coast"] .brand-ink { color:var(--type); background:none; }
.print-hero[data-print="section"] {
  --sheet:color-mix(in srgb,var(--blue) 12%,var(--ink));
  --poster-foil:var(--violet); --poster-second:var(--peach);
  --title-face:linear-gradient(158deg,var(--paper) 42%,var(--blue) 42.5%,var(--paper) 44%,var(--peach) 100%);
}
.print-hero[data-print="memory"] {
  --sheet:color-mix(in srgb,var(--blue) 12%,var(--paper));
  --poster-foil:var(--blue); --poster-second:var(--violet);
  --title-face:repeating-linear-gradient(0deg,var(--ink) 0 5px,color-mix(in srgb,var(--blue) 52%,var(--ink)) 5px 6px,var(--ink) 6px 8px);
}
.print-hero[data-print="graphics"] {
  --sheet:color-mix(in srgb,var(--violet) 12%,var(--ink));
  --poster-foil:var(--blue); --poster-second:var(--violet);
  --title-face:linear-gradient(117deg,var(--blue),var(--surface) 27%,var(--violet) 44%,var(--surface) 55%,var(--blue) 85%);
}
.print-hero[data-print="cluster"] {
  --sheet:color-mix(in srgb,var(--blue) 18%,var(--paper)); --accent:var(--blue);
  --poster-foil:var(--blue); --poster-second:var(--sun);
  --title-face:linear-gradient(var(--ink),color-mix(in srgb,var(--blue) 26%,var(--ink)));
  --title-relief:drop-shadow(1px 2px 0 var(--blue));
}
.print-hero[data-print="dispatch"] {
  --sheet:color-mix(in srgb,var(--peach) 15%,var(--paper)); --accent:var(--peach);
  --poster-foil:var(--peach); --poster-second:var(--violet);
  --title-face:linear-gradient(117deg,var(--ink) 0 38%,var(--peach) 38% 39%,var(--graphite) 39% 63%,var(--ink) 63%);
}
.print-hero[data-print="relay"] {
  --sheet:color-mix(in srgb,var(--sun) 86%,var(--paper)); --accent:var(--peach);
  --poster-foil:var(--peach); --poster-second:var(--blue);
  --title-face:linear-gradient(155deg,var(--ink) 0 53%,transparent 53%),repeating-linear-gradient(123deg,var(--ink) 0 3px,var(--graphite) 3px 4px,var(--sun) 4px 5px);
  --title-edge:var(--ink); --title-stroke:.65px;
}
.print-hero[data-print="signal"] {
  --sheet:color-mix(in srgb,var(--violet) 16%,var(--paper)); --accent:var(--violet);
  --poster-foil:var(--violet); --poster-second:var(--blue);
  --title-face:linear-gradient(178deg,var(--ink) 0 45%,var(--violet) 45% 49%,var(--graphite) 49% 72%,var(--ink) 72%);
  --title-relief:drop-shadow(-1px 1px 0 var(--blue));
}
@media(prefers-reduced-motion:no-preference) {
  .print-hero[data-changed] .print-stage { transition:background-color .36s; }
  .print-hero[data-print="graphics"] .brand-ink { background-size:155% 100%; animation:polish 5s ease-in-out both; }
  @keyframes polish { from {background-position:100% 50%;} to {background-position:10% 50%;} }
  .print-hero:not([data-running]) .brand-ink { animation-play-state:paused; }
}
@media(max-width:720px) {
  .print-hero[data-print="coast"] .home-title { font-size:clamp(2.65rem,10.4vw,3.7rem); }
  .press-ground { width:150%; left:-50%; opacity:.38; }
  .press-foot { width:clamp(210px,62vw,350px); left:-10vw; bottom:-9px; }
  .press-crown { width:clamp(210px,50vw,310px); top:calc(var(--header-h) - 1vw); right:-14%; }
  .print-hero .home-title { margin-top:4px; }

}
@media(max-height:540px) and (min-width:721px) {
  .press-foot { width:26vw; } .press-crown { width:28vw; }
}
/* The print plates occupy the entire sheet, independently of the copy grid. */
.print-field { display:block; position:absolute; inset:0; width:100%; height:100%; }
.print-field.portrait { display:none; }
.dish-detail { position:absolute; bottom:1%; left:30%; width:clamp(195px,23vw,380px); height:auto; }
.print-hero[data-print="memory"] .press-ground { opacity:.22; }
.print-hero:is([data-print="memory"],[data-print="dispatch"],[data-print="relay"],[data-print="signal"]) .press-crown { opacity:.28; }
.print-hero:is([data-print="memory"],[data-print="dispatch"],[data-print="relay"],[data-print="signal"]) .press-foot { width:clamp(190px,23vw,350px); }
@media(min-width:721px) {
  .print-hero[data-print="signal"] .print-intro { align-self:start; margin-top:clamp(24px,12vh,140px); }
}
@media(max-width:720px) {
  .print-field.wide { display:none; }
  .print-field.portrait { display:block; }
  .dish-detail { display:none; }
}
@media(prefers-reduced-motion:no-preference) {
  .art-memory .moving-ink { animation:wafer-reflection 9s ease-in-out both; }
  .art-dispatch .moving-ink {
    transform-box:fill-box; transform-origin:85% 80%;
    animation:feed-card 5.2s cubic-bezier(.32,0,.15,1) infinite;
  }
  .art-relay .moving-ink {
    transform-box:fill-box; transform-origin:left bottom;
    animation:reception-sweep 12s linear infinite;
  }
  .art-signal .moving-ink { animation:read-trace 4.9s linear infinite; }
  @keyframes read-trace { to {stroke-dashoffset:-100;} }
  @keyframes wafer-reflection { 0%,100% {opacity:.25;} 54% {opacity:.85;} }
  @keyframes feed-card {
    0%,100% { transform:translate(0,0) rotate(0); }
    40%,62% { transform:translate(54px,-79px) rotate(5deg); }
    83% { transform:translate(0,0); }
  }
  @keyframes reception-sweep { to {transform:rotate(360deg);} }
  .print-hero:not([data-running]) .atlas-art .moving-ink { animation-play-state:paused; }
}
@media(forced-colors:active) {
  .print-hero[data-print] .brand-ink { color:CanvasText; background:none; -webkit-text-stroke:0; filter:none; }
  .print-hero .brand-ink::after,.press-art { display:none; }
}

@media(max-width:700px) { .print-stage .press-register {display:block;left:11px;width:4px;height:0} .press-register::after {width:7px;opacity:.33} }
