/* ARIS Landing — kinetic editorial layer. Kept independent from app UI tokens. */
:root { --film-ink:#182932; --film-muted:#52646d; --film-cream:#faf9f6; --film-paper:#ffffff; --film-mist:#eff3f1; --film-rule:#e0e6e3; --film-orange:#bb4414; }
html { scroll-padding-top:82px; }
body { background:var(--film-cream); color:var(--film-ink); overflow-x:clip; }
.nav,.nav.scrolled { background:rgba(250,249,246,.94); border-bottom:1px solid rgba(24,41,50,.09); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); color:var(--film-ink); }
.nav-links a { color:#41545d; }
.nav-links a:hover { color:var(--film-ink); }
.nav .btn-ghost { color:var(--film-ink); }
.nav-toggle { color:var(--film-ink); border-color:var(--film-rule); }
.nav .logo-mark .p-dark { animation:none!important; fill:var(--film-ink)!important; stroke:none!important; }
.nav .logo-mark .p-orange { animation:none!important; fill:#ea580c!important; stroke:none!important; }
.hero { min-height:660px; min-height:min(810px,100svh); padding:112px 0 55px; background:#f7f8f5; color:var(--film-ink); align-items:center; }
.hero-bg { opacity:.76; filter:saturate(.86) brightness(1.1) contrast(.91); transform:scale(1.035); animation:none; background-position:left center; }
.hero-tint { background:linear-gradient(to left,#f7f8f5 0%,rgba(247,248,245,.98) 34%,rgba(247,248,245,.78) 52%,rgba(247,248,245,.10) 100%); }
.hero .wrap { display:block; width:100%; }
.hero .wrap > div:first-child { width:min(100%,640px); }
.hero h1 { max-width:15ch; font-size:clamp(42px,5.6vw,77px); line-height:1.09; letter-spacing:-.045em; color:var(--film-ink); margin:16px 0 17px; }
.hero h1 em { color:var(--film-orange); }
.hero .lead { color:#344a53; font-size:clamp(17px,1.55vw,20px); line-height:1.65; max-width:48ch; }
.hero .kicker { color:var(--film-orange); letter-spacing:0; }
.hero .hero-actions { margin-top:24px; }
.hero .btn-ghost { background:rgba(255,255,255,.8); color:var(--film-ink); border-color:#cdd6d2; }
.hero .hero-lead-inline { max-width:560px; margin-top:26px; }
.hero-lead-inline .lead-form { background:rgba(255,255,255,.94); border:1px solid rgba(213,223,218,.8); color:var(--film-ink); border-radius:16px; box-shadow:0 18px 54px rgba(31,60,52,.10); padding:20px 22px; backdrop-filter:blur(6px); }
.hero-lead-inline .lead-form .lead-heading { color:var(--film-ink); }
.hero-lead-inline .lead-form .notice { color:var(--film-muted); }
.hero-lead-inline .lead-form .field { color:#344a53; }
.hero-lead-inline .lead-form input { background:white; color:var(--film-ink); border-color:#d6deda; }
.hero-mark { display:none; }
.btn { border-radius:11px; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.btn-accent { background:var(--film-orange); color:white; }
.btn-accent:hover { background:#a5390c; }
.strip { background:#f0f3f0; border-color:var(--film-rule); color:var(--film-ink); }
.strip .wrap { grid-template-columns:repeat(4,minmax(0,1fr)); }
.strip a { padding:24px 20px; gap:4px; border-color:var(--film-rule); }
.strip a:hover { background:#e7ede8; }
.strip .name { font-size:clamp(15px,1.65vw,19px); }
.strip .what { color:#65746e; font-size:13px; }
.portal,.portal.flip { background:var(--film-paper); color:var(--film-ink); padding:clamp(82px,9vw,146px) 0; }
.portal.flip { background:var(--film-cream); }
.portal .wrap { grid-template-columns:minmax(0,1fr) minmax(0,1.22fr); gap:clamp(42px,6.5vw,100px); align-items:center; }
.portal h2 { font-size:clamp(35px,4vw,55px); max-width:14ch; letter-spacing:-.04em; line-height:1.16; margin:17px 0; }
.portal .kicker { color:var(--film-orange); }
.portal .lead { font-size:clamp(17px,1.5vw,20px); line-height:1.68; max-width:39ch; color:#4b5b61; }
.portal .capability-line { margin-top:26px; padding-top:16px; border-top:1px solid var(--film-rule); font-size:14px; color:#566770; font-weight:600; letter-spacing:0; }
.portal .visual { aspect-ratio:1.22; border-radius:14px; box-shadow:0 24px 65px rgba(27,50,46,.11); background:#e0e6e3; overflow:hidden; }
.portal .visual::after { background:linear-gradient(to top,rgba(14,29,34,.67),rgba(14,29,34,0) 56%); }
.portal .visual img.photo,.portal .visual picture.photo-frame { height:100%; width:100%; object-fit:cover; }
.portal .visual .photo-frame img.photo { width:100%; height:100%; object-fit:cover; }
.portal .visual .caption b { font-size:clamp(17px,1.8vw,21px); }
.portal .visual .caption { right:22px; bottom:21px; left:22px; }
.portal .visual .photo,.portal .visual picture.photo-frame { transform:translate3d(0,var(--photo-parallax,0px),0) scale(1.12); will-change:transform; }
.portal .visual picture.photo-frame img.photo { transform:none!important; }
.inline-lead-section { background:#eaf0ed; color:var(--film-ink); border-color:var(--film-rule); padding:clamp(55px,7vw,100px) 0; }
.inline-lead-section h2 { max-width:15ch; font-size:clamp(31px,3.6vw,46px); }
.inline-lead-section .lead-form { box-shadow:0 15px 40px rgba(31,60,52,.07); }
.parallax-story { position:relative; isolation:isolate; height:auto; min-height:180svh; background:#1f3036; }
.parallax-story .sticky-scene { position:sticky; top:0; width:100%; height:100svh; z-index:0; isolation:isolate; overflow:hidden; }
.parallax-story .sticky-scene picture.scene-picture { position:absolute; inset:-11% 0; width:100%; height:122%; transform:translate3d(0,var(--parallax-shift,0px),0) scale(1.08); will-change:transform; }
.parallax-story .sticky-scene .scene-photo { width:100%; height:100%; object-fit:cover; }
.parallax-story .scene-shade { z-index:1; background:linear-gradient(90deg,rgba(18,34,39,.12),rgba(18,34,39,.20)),linear-gradient(to top,rgba(16,32,37,.48),transparent 72%); }
.parallax-story .scene-content { position:relative; z-index:2; margin-top:-100svh; min-height:180svh; display:flex; flex-direction:column; justify-content:space-between; padding-top:21svh; padding-bottom:21svh; gap:20svh; pointer-events:none; }
.parallax-story .scene-panel { pointer-events:auto; max-width:600px; padding:clamp(24px,4.5vw,48px); background:rgba(255,255,255,.94); color:var(--film-ink); border:0; border-radius:15px; box-shadow:0 28px 70px rgba(11,27,32,.16); }
.parallax-story .scene-panel:last-child { margin-inline-start:auto; }
.parallax-story .scene-panel h2 { font-size:clamp(35px,4vw,58px); margin:12px 0; }
.parallax-story .scene-panel p { color:#41565b; font-size:clamp(17px,1.7vw,21px); line-height:1.7; }
.faq { background:var(--film-cream); color:var(--film-ink); padding:clamp(65px,6vw,100px) 0; }
.faq .wrap { gap:clamp(28px,5vw,75px); }
.faq h2 { font-size:clamp(30px,3vw,40px); }
.faq details { border-color:var(--film-rule); }
.faq summary { padding:18px 0; font-size:16px; }
.faq details p { color:var(--film-muted); font-size:15px; }
.contact { background:var(--film-mist); color:var(--film-ink); padding:clamp(75px,8vw,125px) 0; }
.contact .bg { opacity:.12; filter:saturate(.55) brightness(1.6); }
.contact .tint { background:linear-gradient(to left,rgba(239,243,241,.99) 8%,rgba(239,243,241,.93) 58%,rgba(239,243,241,.65)); }
.contact h2 { font-size:clamp(36px,4vw,54px); }
.contact .kicker { color:var(--film-orange); }
.contact .lead { color:var(--film-muted); }
.contact .lead-form { color:var(--film-ink); }
.contact .lead-form label.field { color:#344951; }
.contact .lead-form input { color:var(--film-ink); background:#fff; border-color:#d2ddd6; }
.contact .lead-form .notice { color:var(--film-muted); }
.contact .lead-form .status { color:#a52620; }
.contact-card { background:#fff; color:var(--film-ink); border:1px solid var(--film-rule); box-shadow:0 16px 48px rgba(27,50,46,.07); }
.contact-card .phone { color:var(--film-ink); }
.contact-card dl dt { color:var(--film-muted); }
.contact-card dl dd a { color:var(--film-ink); border-color:var(--film-rule); }
.contact-links a.plain { color:var(--film-muted); }
.contact-links .btn-ghost { background:#fff; color:var(--film-ink); border-color:#d3ded8; }
footer .logo-mark .p-dark { fill:white!important; }
footer .logo-mark .p-orange { fill:#ea580c!important; }
@media(min-width:1025px) { .portal.flip .wrap>.visual { order:-1; } }
@media(max-width:1024px) {
 .hero { min-height:0; padding:115px 0 64px; }
 .hero-bg { opacity:.48; }
 .hero-tint { background:linear-gradient(to top,#f7f8f5 0%,rgba(247,248,245,.94) 45%,rgba(247,248,245,.74) 100%); }
 .hero .wrap { display:block; }
 .hero .wrap>div:first-child { width:min(100%,650px); }
 .portal .wrap { grid-template-columns:1fr; gap:32px; }
 .portal.flip .wrap>.visual { order:0; }
 .portal .visual { aspect-ratio:1.45; }
 .strip .wrap { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .strip a:nth-child(3) { border-inline-start:0; }
 .strip a:nth-child(n+3) { border-top:1px solid var(--film-rule); }
}
@media(max-width:720px) {
 .nav-links { background:#faf9f6; border-color:var(--film-rule); }
 .nav-links a { color:var(--film-ink); }
 .hero { padding:102px 0 56px; }
 .hero h1 { font-size:clamp(39px,10vw,58px); }
 .hero .lead { font-size:17px; }
 .hero .hero-lead-inline { margin-top:23px; }
 .hero-bg { background-position:35% center; opacity:.27; }
 .strip a { padding:17px 14px; }
 .strip .name { font-size:15px; }
 .strip .what { font-size:12px; }
 .portal { padding:75px 0; }
 .portal h2 { font-size:clamp(33px,9vw,45px); }
 .portal .visual { aspect-ratio:4/3.2; }
 .portal .capability-line { font-size:12.5px; }
 .parallax-story { min-height:160svh; }
 .parallax-story .scene-content { min-height:160svh; padding-top:22svh; padding-bottom:20svh; }
 .parallax-story .scene-panel { width:min(100%,470px); padding:24px; }
 .parallax-story .scene-panel h2 { font-size:clamp(31px,8vw,43px); }
 .contact .wrap { gap:34px; }
 .contact-card .phone { font-size:clamp(25px,6vw,32px); }
}
@media(prefers-reduced-motion:reduce) {
 .portal .visual picture.photo-frame,.portal .visual img.photo,.parallax-story .sticky-scene picture.scene-picture { transform:none!important; will-change:auto!important; }
}
html[data-a11y-motion] .portal .visual picture.photo-frame,html[data-a11y-motion] .portal .visual img.photo,html[data-a11y-motion] .parallax-story .sticky-scene picture.scene-picture { transform:none!important; will-change:auto!important; }
html[data-a11y-contrast] .nav,html[data-a11y-contrast] .nav.scrolled,html[data-a11y-contrast] .hero,html[data-a11y-contrast] .portal,html[data-a11y-contrast] .portal.flip,html[data-a11y-contrast] .contact,html[data-a11y-contrast] .strip { background:#fff!important; color:#000!important; }
html[data-a11y-contrast] .hero .lead,html[data-a11y-contrast] .portal .lead,html[data-a11y-contrast] .contact .lead { color:#000!important; }
/* Real-time scroll-linked reveals. Scroll up reverses the same transforms. */
html.scroll-cinema .rv,html.scroll-cinema .rv.in { opacity:1!important; transform:none!important; transition:none!important; }
html.scroll-cinema [data-cinema] { opacity:var(--cinema-opacity,1)!important; transform:translate3d(var(--cinema-x,0px),var(--cinema-y,0px),0) scale(var(--cinema-scale,1))!important; transition:none!important; will-change:opacity,transform; }
@media(prefers-reduced-motion:reduce) {
 html.scroll-cinema [data-cinema] { opacity:1!important; transform:none!important; will-change:auto; }
}
html[data-a11y-motion].scroll-cinema [data-cinema] { opacity:1!important; transform:none!important; will-change:auto; }

/* Never hide content for a visitor who disables animation. */
@media(prefers-reduced-motion:reduce) {
  .js .rv,.js .rv.in,[data-cinema] { opacity:1!important; transform:none!important; transition:none!important; will-change:auto!important; }
}
html[data-a11y-motion] .rv,
html[data-a11y-motion] .rv.in,
html[data-a11y-motion] [data-cinema] { opacity:1!important; transform:none!important; transition:none!important; will-change:auto!important; }
/* Firefox and Safari paint sticky photographic layers more reliably without a negative stacking level. */
.parallax-story .sticky-scene { z-index:0; }
.parallax-story .scene-content { z-index:2; }
