/* enthalvia E06 design system. Inter only. Light-only. */
@font-face{font-family:'Inter';src:url(../fonts/inter-latin-300-normal.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url(../fonts/inter-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url(../fonts/inter-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url(../fonts/inter-latin-600-normal.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  color-scheme:light only;
  --white:#FFFFFF; --warm:#F7F3EA; --mist:#F0F5F4; --deep:#152934; --teal:#135C63;
  --copper:#BB7249; --copper-btn:#A4623B; --copper-btn-h:#8F5330; --copper-text:#8F5330; --copper-dk:#D39B72;
  --blue:#2C7CA0;
  --ink:#152934; --body:#3A4A4D; --muted:#5D6B6C; --muted-dk:#9FB9BC;
  --rule:#DDE2DE; --rule-dk:rgba(255,255,255,.14);
  --ease:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --pad:clamp(20px,5vw,64px); --max:1320px; --sec:clamp(96px,11vw,176px);
  --hdr:76px;
}
html,body{background:#FFFFFF !important;color:#152934 !important}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:300;letter-spacing:-.035em;line-height:1.04;text-wrap:balance}
h1 strong,h2 strong,h3 strong{font-weight:inherit;color:#7C8B8C}
.nw{white-space:nowrap}
.on-dark h1,.on-dark h2,.on-dark h3{color:#fff}
.on-dark h1 strong,.on-dark h2 strong{color:rgba(255,255,255,.52)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:600}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--copper);outline-offset:3px;border-radius:4px}
.tab{font-variant-numeric:tabular-nums}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:var(--sec)}
.bg-warm{background:var(--warm)} .bg-mist{background:var(--mist)} .bg-white{background:#fff}
.bg-deep{background:var(--deep);color:#fff}

.eyebrow{display:flex;align-items:center;gap:12px;font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-text);margin:0 0 22px}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;flex:none}
.on-dark .eyebrow{color:var(--copper-dk)}
.h2{font-size:clamp(2.15rem,1.15rem + 3.2vw,4.2rem)}
.h3{font-size:clamp(1.25rem,1.1rem + .4vw,1.5rem);font-weight:500;letter-spacing:-.015em;line-height:1.25}
.lede{font-size:clamp(1.05rem,.98rem + .32vw,1.24rem);line-height:1.62;color:var(--body);max-width:36em}
.on-dark .lede,.on-dark p{color:rgba(255,255,255,.76)}
.small{font-size:.88rem;color:var(--muted)}

/* Buttons and links */
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65em;min-height:54px;padding:0 26px;border-radius:999px;font:600 .98rem/1.1 'Inter',sans-serif;letter-spacing:-.005em;text-decoration:none;white-space:nowrap;transition:background-color .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.btn .arr{display:inline-block;transition:transform .45s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-primary{background:var(--copper-btn);color:#fff}
.btn-primary:hover{background:var(--copper-btn-h)}
.btn-ghost{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.34)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px #fff;background:rgba(255,255,255,.06)}
.btn-line{color:var(--ink);box-shadow:inset 0 0 0 1px rgba(26,43,46,.24)}
.btn-line:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.on-dark .btn:focus-visible{outline-color:var(--copper-dk)}
.tlink{display:inline-flex;align-items:center;gap:.5em;font-weight:600;color:var(--ink);text-decoration:none;padding-bottom:4px;background:linear-gradient(var(--copper),var(--copper)) 0 100%/0 1.5px no-repeat,linear-gradient(rgba(26,43,46,.22),rgba(26,43,46,.22)) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--ease)}
.tlink:hover{background-size:100% 1.5px,100% 1px}
.tlink .arr{transition:transform .45s var(--ease)}
.tlink:hover .arr{transform:translateX(4px)}
.on-dark .tlink{color:#fff;background-image:linear-gradient(var(--copper-dk),var(--copper-dk)),linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,.3))}

/* Header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:60;height:calc(var(--hdr) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);color:var(--ink);transition:background-color .45s var(--ease),box-shadow .45s var(--ease),transform .55s var(--ease),color .35s var(--ease)}
.hdr .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;flex:none;border-radius:6px}
.brand img{height:35px;width:auto}
.brand .lw{display:none}
.hdr.dark:not(.solid) .brand .lw{display:block}
.hdr.dark:not(.solid) .brand .ld{display:none}
.hdr.dark:not(.solid){color:#fff}
.hdr.solid{background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);box-shadow:0 1px 0 rgba(26,43,46,.08)}
.hdr.hide{transform:translateY(-100%)}
.hdr.dark.scrim{background:rgba(21,41,52,.64);-webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px)}
.nav{display:flex;align-items:center;gap:2px}
.nav a{font-size:.92rem;font-weight:500;text-decoration:none;padding:9px 12px;border-radius:999px;opacity:.82;transition:opacity .25s,background-color .25s}
.nav a:hover{opacity:1;background:rgba(26,43,46,.06)}
.hdr.dark:not(.solid) .nav a:hover{background:rgba(255,255,255,.08)}
.nav a[aria-current="page"]{opacity:1}
.nav .cta{opacity:1;margin-left:10px;background:var(--copper-btn);color:#fff;padding:11px 18px;font-weight:600}
.nav .cta:hover{background:var(--copper-btn-h)}
.menu-btn{display:none;align-items:center;gap:10px;height:44px;padding:0 6px 0 16px;border:0;border-radius:999px;background:transparent;color:inherit;font:600 .9rem 'Inter',sans-serif;cursor:pointer}
.menu-btn .bars{position:relative;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1px currentColor}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:10px;right:10px;height:1.5px;background:currentColor;transition:transform .45s var(--ease)}
.menu-btn .bars::before{top:13px}.menu-btn .bars::after{top:18px}
.menu-open .menu-btn .bars::before{transform:translateY(2.5px) rotate(45deg)}
.menu-open .menu-btn .bars::after{transform:translateY(-2.5px) rotate(-45deg)}
/* Menu (phones and tablets): a light panel that drops from the header, two product lines on top, the rest in two columns */
.menu{position:fixed;inset:0;z-index:55;visibility:hidden;pointer-events:none;transition:visibility 0s linear .55s}
.menu-open .menu{visibility:visible;pointer-events:auto;transition:none}
.menu-scrim{position:absolute;inset:0;background:rgba(10,28,32,.58);opacity:0;transition:opacity .35s var(--ease)}
.menu-open .menu-scrim{opacity:1}
.menu-panel{position:absolute;top:calc(var(--hdr) + env(safe-area-inset-top,0px) + 4px);left:10px;right:10px;max-height:calc(100dvh - var(--hdr) - env(safe-area-inset-top,0px) - 20px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:var(--ink);border-radius:24px;padding:10px;box-shadow:0 40px 90px -30px rgba(3,14,17,.55),0 0 0 1px rgba(26,43,46,.06);transform-origin:calc(100% - 36px) -20px;transform:translateY(-10px) scale(.97);opacity:0;transition:transform .45s var(--ease),opacity .25s var(--ease)}
.menu-open .menu-panel{transform:none;opacity:1}
.mp-lines{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mp-line{position:relative;display:flex;flex-direction:column;min-height:128px;padding:14px 14px 13px;border-radius:17px;text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .35s var(--ease)}
.mp-line:active{transform:scale(.97)}
.mp-line.hw{background:linear-gradient(155deg,#FCF3EB,#F2DECC)}
.mp-line.ac{background:linear-gradient(155deg,#F0F7FB,#D9EAF4)}
.mp-line::after{content:"\2192";position:absolute;right:14px;top:12px;font-size:1rem;opacity:.55;transition:transform .4s var(--ease),opacity .3s}
.mp-line:hover::after{transform:translateX(3px);opacity:1}
.mp-ic svg{width:34px;height:34px}
.mp-t{margin-top:auto;padding-top:14px;font-size:1.14rem;font-weight:500;letter-spacing:-.02em;line-height:1.15}
.mp-s{margin-top:3px;font-size:.76rem;line-height:1.3;color:var(--body)}
.mp-line.hw .mp-t{color:var(--copper-text)} .mp-line.ac .mp-t{color:var(--ac-text)}
.mp-line[aria-current="page"]{box-shadow:inset 0 0 0 1.5px var(--hw2)}
.mp-line.ac[aria-current="page"]{box-shadow:inset 0 0 0 1.5px var(--ac2)}
.mp-list{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;margin:8px 6px 0}
.mp-list a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 4px;border-bottom:1px solid var(--rule);font-size:.98rem;font-weight:500;text-decoration:none;color:var(--ink)}
.mp-list a::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--rule);transition:background-color .3s,transform .3s var(--ease)}
.mp-list a:hover::after,.mp-list a[aria-current="page"]::after{background:var(--hw2);transform:scale(1.3)}
.mp-list a[aria-current="page"]{color:var(--copper-text)}
.mp-foot{display:flex;align-items:center;gap:14px;margin:12px 4px 4px}
.mp-foot .btn{flex:1 1 auto;min-height:50px}
.mp-mail{font-size:.8rem;color:var(--muted);text-decoration:none;white-space:nowrap}
.menu .mp-line,.menu .mp-list li,.menu .mp-foot{opacity:0;transform:translateY(12px);transition:opacity .35s var(--ease),transform .5s var(--ease)}
.menu-open .menu .mp-line,.menu-open .menu .mp-list li,.menu-open .menu .mp-foot{opacity:1;transform:none;transition-delay:calc(90ms + var(--i,0)*28ms)}
.menu-open .mp-lvl{transform-box:fill-box;transform-origin:50% 100%;animation:lvl 3.4s var(--ease-io) infinite alternate}
.menu-open .mp-air path{stroke-dasharray:4 4;animation:flow8 .9s linear infinite}
@keyframes flow8{to{stroke-dashoffset:-16}}
@media (min-width:640px){.menu-panel{left:auto;right:max(12px,calc((100vw - var(--max))/2 + var(--pad) - 14px));width:430px}}
@media (prefers-reduced-motion:reduce){.menu-panel,.menu-scrim,.menu .mp-line,.menu .mp-list li,.menu .mp-foot{transition:none;transform:none;clip-path:none}.menu-open .mp-lvl,.menu-open .mp-air path{animation:none}}
@media (max-width:1120px){.nav{display:none}.menu-btn{display:inline-flex}}
@media (min-width:1121px){.menu{display:none}}
body.menu-open{overflow:hidden}

/* Reveals (only when JS runs and motion is allowed) */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .kin .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.js .kin .w>span{display:inline-block;transform:translateY(108%);transition:transform 1.05s var(--ease);transition-delay:calc(var(--d,0s) + var(--i,0)*42ms)}
.js .kin.in .w>span{transform:none}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none;transition:none}
  .js .kin .w>span{transform:none;transition:none}
  *{scroll-behavior:auto!important}
}

/* Hero */
.hero{position:relative;background:var(--deep);color:#fff}
.hero-stick{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;isolation:isolate}
.js .hero.pin{height:calc(100vh + 85vh);height:calc(100svh + 85vh)}
.js .hero.pin .hero-stick{position:sticky;top:0;height:100vh;height:100svh;min-height:0;z-index:2}
/* fly-through: the canvas paints the dark scene with the mark's hole cut out, so the hole is a window onto
   the section behind. The next section is pulled up under the hero so it rises into that window. */
.js .hero.pin{background:radial-gradient(1000px 380px at 58% 180px,#FFFDF8,rgba(247,243,234,0)) var(--warm)}
.js .hero.pin .hero-stick::after{display:none}
.js .hero.pin+.story{margin-top:-100vh;margin-top:-100svh;z-index:1}
.hero-stick.passing,.hero-stick.passing *{pointer-events:none!important}
.hero-stick::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(60% 55% at 72% 46%,rgba(44,124,160,.16),rgba(21,41,52,0) 70%),linear-gradient(180deg,rgba(21,41,52,0) 60%,rgba(13,27,35,.55))}
.hero .flow{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.hero .ribbon-wrap{position:absolute;z-index:2;left:72%;top:45%;width:clamp(230px,26vw,400px);transform:translate(-50%,-50%);perspective:1100px;pointer-events:none}
.ribbon-move{position:relative;will-change:transform;transform-origin:50% 50%}
.ribbon-tilt{position:relative;transform-style:preserve-3d;will-change:transform}
.ribbon3{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 34px 44px rgba(3,14,17,.55))}
.mark-fly{position:absolute;inset:0;display:none}
.mark-fly svg{position:absolute;inset:0;width:100%;height:100%}
.mark-fly img{position:absolute;left:1.673%;top:1.282%;width:96.98%;height:96.98%;max-width:none}
.ribbon3 .sheen{mix-blend-mode:screen;opacity:.55}
.ribbon-glow{position:absolute;inset:-35%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,rgba(211,155,114,.30),rgba(44,124,160,.16) 55%,rgba(21,41,52,0) 78%);filter:blur(24px)}
.grain{position:absolute;inset:-60%;z-index:2;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-size:180px 180px;animation:grain .9s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-4%,3%)}33%{transform:translate(3%,-4%)}50%{transform:translate(-2%,5%)}67%{transform:translate(5%,-2%)}83%{transform:translate(-4%,-3%)}100%{transform:translate(0,0)}}
.js .mark .bl{opacity:0}
.hero .ribbon-wrap.playable{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%}
.hero .ribbon-wrap.playable.flying{pointer-events:none}
.ribbon-glow,.mark-fly{pointer-events:none}
.finale .ribbon.playable{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.finale .ribbon.playable:hover{transform:scale(1.06)}

.js .hero .kin .w{overflow:visible}
.js .hero .kin .w>span{transform:translateY(30px);filter:blur(12px);opacity:0;transition:transform 1.1s var(--ease),filter 1.1s var(--ease),opacity .9s var(--ease);transition-delay:calc(.2s + var(--i,0)*75ms)}
.js .hero .kin.in .w>span{transform:none;filter:blur(0);opacity:1}
.hero-inner{position:relative;z-index:3;flex:1;display:flex;align-items:center;padding-top:calc(var(--hdr) + 48px);padding-bottom:56px}
.hero-copy{max-width:660px;pointer-events:auto}
.js .hero-inner{pointer-events:none}
.hero h1{font-size:clamp(2.85rem,1.2rem + 5.3vw,6.4rem);line-height:.98;letter-spacing:-.045em}
.hero .lede{margin-top:30px;max-width:min(33em,50vw)}
.hero .btns{margin-top:40px}
.hero-facts{position:relative;z-index:3;border-top:1px solid var(--rule-dk)}
.hero-facts ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.hero-facts li{padding:22px 24px 26px 0}
.hero-facts li+li{padding-left:24px;border-left:1px solid var(--rule-dk)}
.hero-facts .v{display:block;font-size:clamp(1.15rem,1rem + .5vw,1.5rem);font-weight:400;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.hero-facts .k{display:block;margin-top:4px;font-size:.84rem;color:var(--muted-dk)}
.js .hero .intro{opacity:0;transform:translateY(18px);transition:opacity 1.1s var(--ease),transform 1.2s var(--ease);transition-delay:var(--d,0s)}
.js .hero.ready .intro{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .hero .intro{opacity:1;transform:none;transition:none}}
@media (min-width:901px) and (max-width:1200px){.hero .ribbon-wrap{left:80%;width:21vw}.hero-copy{max-width:58vw}}
@media (max-width:1120px){.no-js .menu-btn{display:none}.no-js .nav{display:flex;flex-wrap:wrap;position:absolute;top:var(--hdr);left:0;right:0;padding:8px var(--pad);background:var(--deep);color:#fff}}
@media (max-width:900px){
  .js .hero.pin{height:calc(100vh + 75vh);height:calc(100svh + 75vh)}
  .hero .lede{max-width:none}
  .hero .ribbon-wrap{left:50%;top:calc(var(--hdr) + 20vw + 8px);width:min(46vw,250px);transform:translate(-50%,-50%)}
  .hero-inner{align-items:flex-start;padding-top:calc(var(--hdr) + 44vw + 10px);padding-bottom:26px}
  .hero .lede{margin-top:20px}
  .hero .btns{margin-top:28px}
  .hero-facts ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-facts li{padding:18px 12px 20px 0}
  .hero-facts li+li{padding-left:0;border-left:0}
  .hero-facts li:nth-child(even){padding-left:16px;border-left:1px solid var(--rule-dk)}
  .hero-facts li:nth-child(n+3){border-top:1px solid var(--rule-dk)}
}
@media (max-width:520px){.hero .btns .btn{flex:1 1 100%}}
@media (max-width:600px){.hero-facts{display:none}}

/* Ribbon mark: the supplied brushed-metal symbol,revealed along its own path */
@keyframes rbDraw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.js .mark .bl{opacity:1}.grain{animation:none}.js .hero .kin .w>span{transform:none;filter:none;opacity:1;transition:none}}

/* Section heads */
.head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px 64px;align-items:end;margin-bottom:clamp(48px,6vw,88px)}
.head .lede{justify-self:end}
@media (max-width:900px){.head{grid-template-columns:1fr}.head .lede{justify-self:start}}

/* Unit story */
.story{position:relative;background:var(--warm)}
.story>.wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,4vw,72px)}
.story-vis{grid-column:2;grid-row:1;position:relative}
.story-steps{grid-column:1;grid-row:1}
.story-stick{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;justify-content:center}
.story-stick svg.unit{height:min(86vh,980px);width:auto;max-width:100%;overflow:visible}
.story .step{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:14vh}
.story .step .num{font-size:.78rem;font-weight:600;letter-spacing:.16em;color:var(--copper-text);margin-bottom:22px;font-variant-numeric:tabular-nums}
.story .step h2,.story .step h3{font-size:clamp(2rem,1.25rem + 2.5vw,3.5rem);line-height:1.04}
.story .step .lede{margin-top:24px}
.rail{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;gap:8px}
.rail i{display:block;width:2px;height:26px;border-radius:2px;background:rgba(26,43,46,.14);transition:background-color .4s var(--ease),height .4s var(--ease)}
.rail i.on{background:var(--copper);height:40px}
.figs{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:24px clamp(24px,3vw,48px);margin-top:36px;padding-top:26px;border-top:1px solid var(--rule)}
.fig .k{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fig .v{display:block;margin-top:10px;font-size:clamp(1.7rem,1.3rem + 1.2vw,2.5rem);font-weight:300;letter-spacing:-.035em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.chip{font-size:.86rem;font-weight:500;color:var(--ink);padding:8px 14px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--rule)}
.story .step .tlink{margin-top:32px;align-self:flex-start}
@media (max-width:960px){
  .story>.wrap{display:block}
  .story-vis{margin-inline:calc(-1*var(--pad));position:sticky;top:0;z-index:2;background:var(--warm)}
  .story-vis::after{content:"";position:absolute;left:0;right:0;bottom:-28px;height:28px;background:linear-gradient(var(--warm),rgba(247,243,234,0));pointer-events:none}
  .story-stick{position:relative;height:46vh;height:46svh;padding-top:12px;overflow:hidden}
  .story-stick svg.unit{height:43svh}
  .rail{left:auto;right:18px;top:55%}
  .story .step{min-height:78vh;min-height:78svh;justify-content:flex-start;padding-block:8vh 10vh}
  .figs{grid-template-columns:repeat(3,auto);gap:16px 22px}
  .fig .v{font-size:clamp(1.3rem,.9rem + 2.2vw,1.7rem)}
}

/* Unit drawing (colours only; geometry lives in the SVG) */
.unit .lbl{font:500 22px 'Inter',sans-serif;fill:var(--ink);letter-spacing:-.01em}
.unit .lbl.m{fill:var(--muted);font-weight:400}
.unit .lbl.big{font-size:30px;font-weight:500;font-variant-numeric:tabular-nums}
.unit .ldr{fill:none;stroke:var(--copper);stroke-width:1.4}
.unit .dot{fill:var(--copper)}
@media (max-width:960px){.unit .co{display:none}}

/* Where it fits */
.jobs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.5vw,56px)}
.job{position:relative;padding-top:30px}
.job::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--rule);transform-origin:left;transition:transform 1.2s var(--ease);transition-delay:var(--d,0s)}
.js .job.rv::before{transform:scaleX(0)}
.js .job.rv.in::before{transform:none}
.job .ic{width:56px;height:56px;margin-bottom:28px;color:var(--copper-text)}
.job .ic path,.job .ic rect,.job .ic circle,.job .ic line{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.js .job .ic *{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease-io);transition-delay:calc(var(--d,0s) + .25s)}
.js .job.in .ic *{stroke-dashoffset:0}
.job .n{font-size:.78rem;font-weight:600;letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums}
.job h3{margin-top:10px}
.job p{margin-top:12px;color:var(--body)}
@media (max-width:900px){.jobs{grid-template-columns:1fr}.job .ic{margin-bottom:20px}}
@media (prefers-reduced-motion:reduce){.js .job .ic *{stroke-dashoffset:0;transition:none}.js .job.rv::before{transform:none}}

/* Routes */
.routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:clamp(72px,9vw,128px)}
.route{position:relative;display:flex;flex-direction:column;border-radius:24px;overflow:hidden;text-decoration:none;min-height:560px;isolation:isolate;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.route:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(21,41,52,.45)}
.route .body{position:relative;z-index:2;padding:clamp(28px,3.5vw,48px);display:flex;flex-direction:column;flex:1}
.route .who{font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.route h3{margin-top:18px;font-size:clamp(1.7rem,1.2rem + 1.4vw,2.5rem);font-weight:300;letter-spacing:-.03em;line-height:1.08;max-width:14em}
.route ul{margin-top:26px;display:grid;gap:10px}
.route li{position:relative;padding-left:22px;font-size:.98rem}
.route li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:1px;background:currentColor;opacity:.6}
.route .go{margin-top:auto;padding-top:36px;display:inline-flex;align-items:center;gap:.6em;font-weight:600}
.route .go .arr{transition:transform .45s var(--ease)}
.route:hover .go .arr{transform:translateX(5px)}
.route.trade{background:var(--deep);color:#fff}
.route.trade .who{color:var(--copper-dk)}
.route.trade h3{color:#fff}
.route.trade li{color:rgba(255,255,255,.8)}
.route.trade .waves{position:absolute;inset:auto 0 0 0;width:100%;height:62%;z-index:1;opacity:.9;transition:transform 1.2s var(--ease)}
.route.trade:hover .waves{transform:translateX(-3%)}
.route.home{background:var(--warm);color:var(--ink)}
.route.home .who{color:var(--copper-text)}
.route.home .pic{aspect-ratio:5/4;overflow:hidden}
.route.home .pic img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;transition:transform 1.2s var(--ease)}
.route.home:hover .pic img{transform:scale(1.04)}
.route.home .body{padding-top:30px}
.route.home li{color:var(--body)}
@media (max-width:900px){.routes{grid-template-columns:1fr}.route{min-height:0}.route.trade{min-height:480px}}

/* Specification sheet */
.spec-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,104px);align-items:start}
.spec-side{position:sticky;top:calc(var(--hdr) + 40px)}
.spec-side .lede{margin-top:24px}
.spec-side .dl{margin-top:36px;display:grid;gap:10px}
.spec-side .dl a{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px var(--rule);text-decoration:none;color:var(--ink);font-weight:500;transition:box-shadow .35s var(--ease),transform .5s var(--ease)}
.spec-side .dl a:hover{box-shadow:inset 0 0 0 1px var(--ink);transform:translateY(-2px)}
.spec-side .dl .ico{flex:none;width:40px;height:40px;border-radius:10px;background:var(--mist);display:grid;place-items:center;color:var(--copper-text)}
.spec-side .dl .ico svg{width:20px;height:20px}
.spec-side .dl .t{flex:1}
.spec-side .dl .t small{display:block;font-size:.8rem;color:var(--muted);font-weight:400;margin-top:2px}
.spec-side .dl .arr{transition:transform .45s var(--ease)}
.spec-side .dl a:hover .arr{transform:translateY(3px)}
.sheet{width:100%;border-collapse:collapse}
.sheet thead th{position:sticky;top:0;z-index:1;background:var(--mist);text-align:left;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:16px 0 14px;border-bottom:1px solid var(--ink)}
.sheet thead th+th{padding-left:16px}
.sheet th[scope=row]{text-align:left;font-weight:500;color:var(--ink);font-size:1rem;padding:20px 16px 20px 0;vertical-align:top;width:42%}
.sheet th[scope=row] small{display:block;margin-top:4px;font-size:.82rem;font-weight:400;color:var(--muted);line-height:1.45}
.sheet td{padding:20px 0 20px 16px;font-size:clamp(1.05rem,.95rem + .45vw,1.3rem);font-weight:300;letter-spacing:-.015em;color:var(--ink);vertical-align:top;width:29%}
.sheet tbody th,.sheet tbody td{background:linear-gradient(var(--rule),var(--rule)) 0 100%/100% 1px no-repeat}
.sheet td.span{width:auto}
.sheet tr.diff th[scope=row]::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--copper);margin:0 10px 2px 0}
.js .sheet tbody tr.rv{transform:translateY(14px)}
.js .sheet tbody tr.rv th,.js .sheet tbody tr.rv td{background-size:0 1px;transition:background-size 1s var(--ease);transition-delay:var(--d,0s)}
.js .sheet tbody tr.rv.in th,.js .sheet tbody tr.rv.in td{background-size:100% 1px}
.sheet-foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:22px;font-size:.84rem;color:var(--muted)}
.sheet-foot .key::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--copper);margin:0 8px 2px 0}
@media (max-width:900px){
  .spec-grid{grid-template-columns:1fr}
  .spec-side{position:static}
  .sheet th[scope=row]{width:40%;font-size:.94rem;padding-right:10px}
  .sheet td{padding-left:10px;font-size:1.02rem}
  .sheet thead th+th{padding-left:10px}
}

/* Cover timeline */
.tl{margin-top:8px}
.tl-bars{position:relative;height:120px}
.tl-bar{position:absolute;top:58px;height:14px;border-radius:999px;transform-origin:left center}
.tl-bar.inc{left:0;width:33.333%;background:linear-gradient(90deg,var(--blue),var(--copper));z-index:2}
.tl-bar.care{left:0;width:100%;background:#EAD7C8}
.tl-lab{position:absolute;top:0;font-size:.92rem;line-height:1.35;color:var(--muted)}
.tl-lab b{display:block;font-size:1.05rem;font-weight:500;color:var(--ink)}
.tl-lab.inc{left:0}
.tl-lab.care{left:calc(33.333% + 16px)}
.tl-ticks{position:relative;height:36px;border-top:1px solid var(--rule);font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.tl-ticks span{position:absolute;top:12px;left:calc(var(--p)*100%/6);transform:translateX(-50%);white-space:nowrap}
.tl-ticks span::before{content:"";position:absolute;left:50%;top:-17px;width:1px;height:9px;background:#B9C3C1}
.tl-ticks span:first-child{transform:none}.tl-ticks span:first-child::before{left:0}
.tl-ticks span:last-child{transform:translateX(-100%)}.tl-ticks span:last-child::before{left:auto;right:0}
.js .tl .tl-bar{transform:scaleX(0);transition:transform 1.6s var(--ease-io)}
.js .tl .tl-bar.care{transition-delay:.9s;transition-duration:1.8s}
.js .tl.in .tl-bar{transform:none}
.js .tl .tl-lab{opacity:0;transition:opacity .8s var(--ease)}
.js .tl .tl-lab.inc{transition-delay:.6s}.js .tl .tl-lab.care{transition-delay:1.7s}
.js .tl.in .tl-lab{opacity:1}
@media (prefers-reduced-motion:reduce){.js .tl .tl-bar{transform:none;transition:none}.js .tl .tl-lab{opacity:1;transition:none}}
@media (max-width:640px){.tl-bars{height:150px}.tl-bar{top:96px}.tl-lab.care{left:auto;right:0;text-align:right;top:0}.tl-lab.inc{top:0;max-width:44%}.tl-lab.care{max-width:52%}}

/* Partner offer */
.flow3{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);margin-top:clamp(48px,6vw,80px)}
.flow3::before{content:"";position:absolute;left:6px;right:0;top:6px;height:1px;background:linear-gradient(90deg,var(--blue),var(--copper));transform-origin:left;transition:transform 1.8s var(--ease-io)}
.js .flow3.rv::before{transform:scaleX(0)}
.js .flow3.rv.in::before{transform:none}
.flow3 .s{position:relative;padding-top:40px}
.flow3 .s::before{content:"";position:absolute;left:0;top:0;width:13px;height:13px;border-radius:50%;background:var(--deep);box-shadow:inset 0 0 0 1.5px var(--copper-dk);transition:background-color .5s var(--ease);transition-delay:var(--nd,0s)}
.js .flow3.in .s::before{background:var(--copper-dk)}
.flow3 .n{font-size:.78rem;font-weight:600;letter-spacing:.14em;color:var(--copper-dk);font-variant-numeric:tabular-nums}
.flow3 h3{margin-top:10px;color:#fff}
.flow3 p{margin-top:10px}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 48px;margin-top:clamp(48px,6vw,72px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--rule-dk)}
.checks li{position:relative;padding-left:34px;color:rgba(255,255,255,.84)}
.checks li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(211,155,114,.6)}
.checks li::after{content:"";position:absolute;left:6px;top:calc(.2em + 6px);width:8px;height:4px;border-left:1.5px solid var(--copper-dk);border-bottom:1.5px solid var(--copper-dk);transform:rotate(-45deg)}
.offer .btns{margin-top:clamp(40px,5vw,56px)}
@media (max-width:900px){.flow3{grid-template-columns:1fr;gap:28px;padding-left:28px}.flow3::before{left:6px;right:auto;top:6px;bottom:6px;width:1px;height:auto;background:linear-gradient(var(--blue),var(--copper));transform-origin:top}.js .flow3.rv::before{transform:scaleY(0)}.flow3 .s{padding-top:0}.flow3 .s::before{left:-28px;top:4px}.checks{grid-template-columns:1fr}}

/* Manufacturer */
.maker{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,104px);align-items:start}
.maker .body p{margin-top:22px;color:var(--body)}
.maker .body .tlink{margin-top:28px}
.stats{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);border-top:1px solid var(--ink)}
.stat{padding:26px 28px 0 0}
.stat+.stat{padding-left:28px;border-left:1px solid var(--rule)}
.stat .v{display:block;font-size:clamp(2.1rem,1.3rem + 2vw,3.3rem);font-weight:300;letter-spacing:-.045em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.stat .k{display:block;margin-top:14px;font-size:.95rem;color:var(--body);line-height:1.45}
.maker .src{margin-top:26px;font-size:.8rem;color:var(--muted)}
@media (max-width:900px){.maker{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.stat .v{white-space:nowrap}.stat,.stat+.stat{padding:22px 0;border-left:0;border-bottom:1px solid var(--rule)}}

/* Close */
.finale{position:relative;text-align:center;overflow:hidden;isolation:isolate}
.finale .waves{position:absolute;inset:auto 0 0 0;width:100%;height:34%;z-index:-1;opacity:.8}
.finale .ribbon{position:relative;width:112px;margin:0 auto 44px;transform:none;left:auto;top:auto}
.finale h2{max-width:15em;margin-inline:auto}
.finale p{max-width:36em;margin:26px auto 0}
.finale .btns{justify-content:center;margin-top:40px}

/* Footer */
.ftr{background:var(--deep);color:rgba(255,255,255,.72);font-size:.94rem}
.ftr .wrap{padding-block:0 32px}
.ftr-grid{padding-top:clamp(56px,7vw,88px);border-top:1px solid var(--rule-dk)}
.ftr-grid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:40px}
.ftr .logo{width:290px;max-width:100%}
.ftr .blurb{margin-top:22px;max-width:28em;color:var(--muted-dk)}
.ftr h2{font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.ftr li+li{margin-top:10px}
.ftr a{text-decoration:none;color:rgba(255,255,255,.78);transition:color .25s}
.ftr a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:clamp(48px,6vw,72px);padding-top:24px;border-top:1px solid var(--rule-dk);font-size:.8rem;color:var(--muted-dk)}
.legal b{color:rgba(255,255,255,.85);font-weight:600}
@media (max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}.ftr-grid>div:first-child{grid-column:1/-1}}

/* Odometer */
.odo{display:inline-flex;align-items:flex-start;line-height:1;white-space:nowrap}
.odo .oc{display:inline-block;height:1.2em;margin-block:-.1em;overflow:hidden;vertical-align:top}
.odo .os{display:flex;flex-direction:column;transition:transform .9s var(--ease)}
.odo .os span{display:block;height:1.2em;line-height:1.2em;white-space:pre}
@media (prefers-reduced-motion:reduce){.odo .os{transition:none}}
.fig .v{height:1em;overflow:visible}

/* Cover tool */
.cv{margin-top:8px}
.cv-top{display:flex;flex-wrap:wrap;gap:28px 48px;align-items:flex-end;justify-content:space-between;margin-bottom:28px}
.cv-k{display:block;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cv-m{display:block;margin-top:10px;font-size:clamp(2.5rem,1.7rem + 2.8vw,4.1rem);font-weight:300;letter-spacing:-.045em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.cv-status{margin-top:14px;font-size:1.02rem;color:var(--body);min-height:3.2em;max-width:30em}
.cv-status b{font-weight:600;color:var(--ink)}
.cv-status.no b{color:var(--copper-text)}
.cv .seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:4px;margin:0;border:0;background:var(--mist);border-radius:18px}
.cv .seg label{position:relative;display:block;cursor:pointer}
.cv .seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.cv .seg span{display:block;padding:10px 18px;border-radius:14px;font-size:.92rem;font-weight:600;line-height:1.2;color:var(--ink);text-align:center;transition:background-color .35s var(--ease),box-shadow .35s var(--ease)}
.cv .seg span small{display:block;margin-top:2px;font-size:.74rem;font-weight:400;color:var(--muted)}
.cv .seg label:hover span{background:rgba(255,255,255,.6)}
.cv .seg input:checked+span{background:#fff;box-shadow:0 1px 2px rgba(26,43,46,.08),0 6px 18px -8px rgba(26,43,46,.35)}
.cv .seg input:focus-visible+span{outline:2px solid var(--copper);outline-offset:2px}
.cv-track{position:relative;height:104px;touch-action:pan-y}
.cv-rail,.cv-bar{position:absolute;left:0;top:34px;height:16px;border-radius:999px}
.cv-rail{right:0;background:#EDF0EF}
.cv-bar.care{width:33.333%;background:repeating-linear-gradient(135deg,#E3C6AF 0 6px,#EBD5C4 6px 12px);transition:width .9s var(--ease)}
.cv-bar.inc{width:33.333%;background:linear-gradient(90deg,var(--blue),var(--copper));z-index:1}
.cv-range{position:absolute;left:-14px;top:12px;width:calc(100% + 28px);height:60px;margin:0;opacity:0;cursor:ew-resize;z-index:3;-webkit-appearance:none;appearance:none;background:transparent}
.cv-range::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:60px}
.cv-range::-moz-range-thumb{width:28px;height:60px;border:0}
.cv-mark{position:absolute;z-index:2;top:12px;left:calc(var(--m)*100%/72);width:2px;height:60px;margin-left:-1px;background:var(--ink);pointer-events:none}
.cv-mark::after{content:"";position:absolute;left:50%;top:19px;width:24px;height:24px;margin-left:-12px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--ink),0 8px 18px -6px rgba(26,43,46,.45);transition:transform .3s var(--ease),box-shadow .3s}
.cv-track:hover .cv-mark::after{transform:scale(1.12)}
.cv-range:focus-visible~.cv-mark::after{box-shadow:0 0 0 2px var(--ink),0 0 0 7px rgba(187,114,73,.45)}
.cv-track .tl-ticks{position:absolute;left:0;right:0;top:66px}
.cv-feat{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.cv-feat li{font-size:.88rem;font-weight:500;color:var(--ink);padding:8px 14px;border-radius:999px;background:var(--warm);animation:chipIn .5s var(--ease) both}
@keyframes chipIn{from{opacity:0;transform:translateY(6px)}}
.cv-note{margin-top:18px;font-size:.86rem;color:var(--muted);max-width:44em}
@media (max-width:640px){.cv .seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.cv-top{gap:20px}}
@media (prefers-reduced-motion:reduce){.cv-bar.care{transition:none}.cv-feat li{animation:none}}

/* Spec tools */
.sheet-tools{display:flex;justify-content:flex-end;margin-bottom:14px}
.tog{display:inline-flex;align-items:center;gap:12px;padding:8px 4px;border:0;background:none;font:500 .92rem 'Inter',sans-serif;color:var(--ink);cursor:pointer}
.tog .sw{position:relative;width:40px;height:24px;border-radius:999px;background:#CBD5D3;transition:background-color .35s var(--ease)}
.tog .sw::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .45s var(--ease)}
.tog[aria-pressed="true"] .sw{background:var(--copper-btn)}
.tog[aria-pressed="true"] .sw::after{transform:translateX(16px)}
.sheet.only-diff tbody tr:not(.diff){display:none}
.sheet tbody tr{transition:background-color .25s}
.sheet tbody tr:hover th,.sheet tbody tr:hover td{background-color:rgba(255,255,255,.55)}

/* ---------- TCL film loop ---------- */
.film{margin:clamp(40px,5vw,72px) 0 0}
.maker .film{grid-column:1/-1;margin-top:clamp(8px,2vw,24px)}
.film-frame{position:relative;border-radius:18px;overflow:hidden;background:#0C2226;aspect-ratio:16/9;box-shadow:0 34px 70px -38px rgba(10,30,34,.55)}
.film video{display:block;width:100%;height:100%;object-fit:cover}
.film-frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(21,41,52,0) 60%,rgba(21,41,52,.34))}
.film-toggle{position:absolute;right:14px;bottom:14px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(21,41,52,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.film-toggle[hidden]{display:none}
.film-toggle .i-pause{width:11px;height:13px;border-left:3px solid currentColor;border-right:3px solid currentColor;box-sizing:border-box}
.film-toggle .i-play{display:none;width:0;height:0;border-left:12px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:4px}
.film.paused .film-toggle .i-pause{display:none}.film.paused .film-toggle .i-play{display:block}
.film-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}
.film figcaption{margin-top:12px;font-size:.8rem;color:var(--muted)}
.film figcaption span{white-space:nowrap}
/* ---------- In the home ---------- */
.inhome{position:relative;background:var(--deep);color:#fff;overflow:hidden;isolation:isolate;min-height:min(94vh,980px);display:flex;align-items:flex-end}
.inhome-fig{position:absolute;inset:0;margin:0;z-index:-1}
.inhome-fig picture,.inhome-fig img{display:block;width:100%;height:100%}
.inhome-fig img{object-fit:cover;object-position:38% 58%;transform:scale(1.08);transform-origin:38% 62%}
.inhome-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,41,52,.28) 0,rgba(21,41,52,0) 22%,rgba(21,41,52,0) 42%,rgba(13,27,35,.55) 70%,rgba(13,27,35,.9) 100%),linear-gradient(90deg,rgba(13,27,35,.5),rgba(13,27,35,0) 60%)}
.inhome-fig figcaption{position:absolute;right:var(--pad);bottom:18px;z-index:1;font-size:.72rem;letter-spacing:.04em;color:rgba(255,255,255,.6)}
.inhome-copy{position:relative;width:100%;padding-block:clamp(120px,20vh,220px) clamp(64px,9vw,120px)}
.inhome-copy h2{max-width:12.5em;margin-top:18px}
.inhome-copy p{max-width:31em;margin-top:22px}
@media (min-width:901px){.inhome-fig::after{background:linear-gradient(180deg,rgba(21,41,52,.28) 0,rgba(21,41,52,0) 22%,rgba(21,41,52,0) 45%,rgba(13,27,35,.5) 72%,rgba(13,27,35,.88) 100%),linear-gradient(270deg,rgba(13,27,35,.62),rgba(13,27,35,0) 58%)}.inhome-copy{padding-left:max(52%,calc(100% - 620px))}.inhome-fig figcaption{right:auto;left:var(--pad)}.film-frame{aspect-ratio:2.25/1}}
@media (max-width:700px){.inhome{min-height:92svh}.inhome-fig img{object-position:50% 40%;transform-origin:50% 50%}.inhome-fig figcaption{top:calc(var(--hdr) + 14px);bottom:auto}}
/* ---------- Product close-ups ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.g-item{margin:0}
.g-img{border-radius:16px;overflow:hidden;background:#0C2226;aspect-ratio:4/3}
.g-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.g-item:hover .g-img img{transform:scale(1.045)}
.g-item figcaption{margin-top:16px;font-size:.95rem;line-height:1.55;color:var(--body);max-width:30em}
.g-item figcaption strong{display:block;font-weight:500;color:var(--ink);margin-bottom:4px}
.g-main .g-img img{object-position:28% 50%}
@media (max-width:900px){.gallery{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-inline:calc(-1*var(--pad));padding-inline:var(--pad);scroll-padding-inline:var(--pad);padding-bottom:6px;scrollbar-width:none}.gallery::-webkit-scrollbar{display:none}.g-item{scroll-snap-align:start}}
@media (prefers-reduced-motion:reduce){.inhome-fig img{transform:none}.g-img img{transition:none}}

/* ===== 28 Sep: two product lines (copper = hot water, blue = air conditioning) and more motion ===== */
:root{
  --hw1:#A04D31; --hw2:#C27446; --hw3:#EDB38A; --hw-dk1:#F4C29E; --hw-dk2:#E0916A;
  --ac1:#1B6591; --ac2:#3597C8; --ac3:#9ED7F2; --ac-dk1:#AEE0F6; --ac-dk2:#6CBDE6;
  --ac-btn:#21698F; --ac-btn-h:#185473; --ac-mist:#EEF5F9; --ac-text:#1B6591;
}
/* punch words: tagged by e06.js (pw, pw-hw or pw-ac, pw-dk on dark grounds, pw-split when the words are split for the reveal) */
.pw-hw{--pw1:var(--hw1);--pw2:var(--hw2);--pw3:var(--hw3)}
.pw-ac{--pw1:var(--ac1);--pw2:var(--ac2);--pw3:var(--ac3)}
.pw-hw.pw-dk{--pw1:var(--hw-dk2);--pw2:var(--hw-dk1);--pw3:#FFE7D4}
.pw-ac.pw-dk{--pw1:var(--ac-dk2);--pw2:var(--ac-dk1);--pw3:#E6F7FF}
.pw-hw,.pw-ac{color:var(--pw2)}
.pw{--pw0:#8E9C9D}.pw-dk{--pw0:rgba(255,255,255,.5)}
a.pw{text-decoration:none;border-bottom:1px solid currentColor;border-bottom-color:rgba(53,151,200,.35)}
.js .kin.in .pw-split .w>span{animation:pwheat 1.5s var(--ease) both;animation-delay:calc(var(--d,0s) + .45s + var(--i,0)*55ms)}
.js .pw:not(.pw-split).in{animation:pwheat 1.5s var(--ease) both}
@keyframes pwheat{from{color:var(--pw0)}to{color:var(--pw2)}}

/* nav: a small dot names each line */
.ln::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;vertical-align:1px;background:linear-gradient(135deg,var(--hw3),var(--hw1));transition:transform .4s var(--ease)}
.ln-ac::before{background:linear-gradient(135deg,var(--ac3),var(--ac1))}
.ln:hover::before{transform:scale(1.5)}

/* reading progress along the bottom of the header */
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;transform:scaleX(var(--prog,0));transform-origin:0 50%;background:linear-gradient(90deg,var(--hw1),var(--hw2) 60%,var(--hw3));pointer-events:none;opacity:.9}
.line-ac .hdr::after{background:linear-gradient(90deg,var(--ac1),var(--ac2) 60%,var(--ac3))}

/* air conditioning buttons and accents */
.btn-ac,.line-ac .btn-primary,.line-ac .btn-copper,.line-ac .nav .cta{background:var(--ac-btn);color:#fff}
.btn-ac:hover,.line-ac .btn-primary:hover,.line-ac .btn-copper:hover,.line-ac .nav .cta:hover{background:var(--ac-btn-h)}
.line-ac .eyebrow,.ac .eyebrow{color:var(--ac-text)}
.line-ac .page-hero .eyebrow,.line-ac .close .eyebrow,.line-ac .on-dark .eyebrow{color:var(--ac-dk1)}
.line-ac :focus-visible{outline-color:var(--ac2)}

/* buttons: a gentle pull towards the pointer (set in e06.js) */
.btn{transition:background-color .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease),transform .6s var(--ease)}

/* pointer light on cards */
.has-glow{position:relative;isolation:isolate}
.glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .5s var(--ease);background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),var(--glow,rgba(194,116,70,.14)),rgba(255,255,255,0) 64%)}
.has-glow:hover>.glow{opacity:1}
.ac .glow,.line-ac .glow{--glow:rgba(53,151,200,.15)}
.on-dark .glow,.bg-deep .glow,.route-trade .glow{--glow:rgba(255,255,255,.09)}
@media (hover:hover) and (pointer:fine){.js .rv.in.tilt{transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),opacity 1s var(--ease)}}

/* pictures open out as they arrive */
.js .wipe{clip-path:inset(6% 4% 6% 4%);opacity:.001;transition:clip-path 1.1s var(--ease),opacity .6s var(--ease)}
.js .wipe.in{clip-path:inset(0 0 0 0);opacity:1}

/* eyebrow rule draws in */
.js .rv:not(.in) .eyebrow::before{transform:scaleX(0)}
.eyebrow::before{transform-origin:0 50%;transition:transform 1s var(--ease) .15s}

/* ticker */
.ticker{--tk:var(--hw2);position:relative;overflow:hidden;background:#fff;border-block:1px solid var(--rule);padding:clamp(18px,2.2vw,28px) 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.ticker.ac{--tk:var(--ac2);background:var(--ac-mist);border-color:#D6E7F0}
.tk-track{display:flex;width:max-content;animation:tk 60s linear infinite}
.ticker.ac .tk-track{animation-duration:46s}
.ticker:hover .tk-track,.ticker.off .tk-track{animation-play-state:paused}
.ticker ul{display:flex;flex:none}
.ticker li{display:flex;align-items:center;white-space:nowrap;font-size:clamp(1.05rem,.85rem + .8vw,1.6rem);font-weight:300;letter-spacing:-.02em;color:var(--ink)}
.ticker li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tk);margin:0 clamp(22px,2.6vw,40px);flex:none;box-shadow:0 0 0 5px color-mix(in srgb,var(--tk) 16%,transparent)}
@keyframes tk{to{transform:translateX(-50%)}}

/* line art: small drawings that keep moving while on screen */
.art{width:100%;height:auto;overflow:visible}
.art .fan{transform-box:view-box;transform-origin:110px 65px;animation:spin 2.2s linear infinite}
.art .lvl{transform-box:fill-box;transform-origin:50% 100%;animation:lvl 5.5s var(--ease-io) infinite alternate}
.art .ripple{animation:ripple 2.4s ease-in-out infinite}
.art .wisps path{stroke-dasharray:44;stroke-dashoffset:44;opacity:0;animation:wisp 3s var(--ease) infinite}
.art .wisps path:nth-child(2){animation-delay:.9s}.art .wisps path:nth-child(3){animation-delay:1.8s}
.art .air-in path{stroke-dasharray:6 8;animation:flow14 1.2s linear infinite}
.art-ac .air{transform-box:view-box;transform-origin:130px 104px;animation:sweep 6s ease-in-out infinite alternate}
.art-ac .air path{stroke-dasharray:14 12;animation:flow 1.4s linear infinite}
.art-ac .air path:nth-child(2n){animation-duration:1.7s}
.art-ac .led{animation:led 2.4s ease-in-out infinite}
.art-ac .fresh-air{stroke-dasharray:6 7;animation:flow 1s linear infinite}
.art-phone .knob{animation:knob 4.8s var(--ease) infinite}
.art-phone .k2{animation-delay:2.4s}
.art-phone .flake{transform-box:fill-box;transform-origin:center;animation:spin 9s linear infinite}
.art-phone .drop{transform-box:fill-box;transform-origin:50% 100%;animation:drop 2.6s ease-in-out infinite}
.art-phone .tile{transform-box:fill-box;transform-origin:center;animation:tile 4.8s var(--ease) infinite}
.art-phone .t-ac{animation-delay:2.4s}
.anim-off .art *,.anim-off.art *{animation-play-state:paused!important}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes lvl{from{transform:scaleY(.22)}to{transform:scaleY(.94)}}
@keyframes ripple{50%{transform:translateY(2px)}}
@keyframes wisp{0%{stroke-dashoffset:44;opacity:0;transform:translateY(6px)}35%{opacity:.9}100%{stroke-dashoffset:0;opacity:0;transform:translateY(-10px)}}
@keyframes flow{to{stroke-dashoffset:-26}}
@keyframes sweep{from{transform:skewX(-7deg)}to{transform:skewX(7deg)}}
@keyframes led{50%{opacity:.25}}
@keyframes knob{0%,40%{transform:none}50%,90%{transform:translateX(-13px)}100%{transform:none}}
@keyframes drop{50%{transform:scaleY(.9) translateY(1px)}}
@keyframes tile{0%,40%{transform:none}45%{transform:scale(.97)}52%{transform:none}}

/* homepage: the two lines */
.lines{padding-top:0}
.ln-panels{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,22px)}
.ln-panel{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:clamp(440px,42vw,560px);padding:clamp(24px,2.6vw,38px);border-radius:26px;text-decoration:none;color:var(--ink);overflow:hidden}
.ln-panel.hw{background:radial-gradient(90% 70% at 70% 30%,#FFF8F2 0%,rgba(255,248,242,0) 70%),linear-gradient(160deg,#FBF1E8,#F2DDCB)}
.ln-panel.ac{background:radial-gradient(90% 70% at 70% 30%,#F5FBFE 0%,rgba(245,251,254,0) 70%),linear-gradient(160deg,#EEF6FB,#D8EAF4)}
.lp-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.hw .lp-tag{color:var(--copper-text)} .ac .lp-tag{color:var(--ac-text)}
.lp-status{letter-spacing:.02em;text-transform:none;font-weight:500;font-size:.82rem;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.7);color:var(--body)}
.lp-art{display:grid;place-items:center;padding:18px 0}
.lp-art .art-hw{width:min(52%,200px)}
.lp-art .art-ac{width:min(76%,300px)}
.lp-body{display:block}
.lp-h{display:block;font-size:clamp(1.6rem,1.1rem + 1.4vw,2.4rem);font-weight:300;letter-spacing:-.035em;line-height:1.08}
.lp-p{display:block;margin-top:10px;color:var(--body);max-width:30em}
.lp-go{display:inline-flex;align-items:center;gap:.6em;margin-top:22px;font-weight:600}
.hw .lp-go{color:var(--copper-text)} .ac .lp-go{color:var(--ac-text)}
.lp-go .arr{transition:transform .45s var(--ease)}
.ln-panel:hover .lp-go .arr{transform:translateX(5px)}
.lp-app{display:flex;align-items:center;gap:14px;margin-top:22px;color:var(--body);font-size:.98rem}
.dots{display:inline-flex}.dots i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 2px #fff}
.d-hw{background:var(--hw2)}.d-ac{background:var(--ac2);margin-left:-4px}

/* app figure */
.app-fig{margin:0;display:grid;justify-items:center;gap:12px}
.app-fig .art-phone{width:min(64%,250px);filter:drop-shadow(0 30px 40px rgba(21,41,52,.16))}
.app-fig figcaption{font-size:.78rem;color:var(--muted)}







@media (max-width:900px){
  .ln-panels{grid-template-columns:1fr}
  .ln-panel{min-height:0}
  .lp-art .art-hw{width:min(40%,170px)}
  .lp-art .art-ac{width:min(70%,260px)}
}
@media (prefers-reduced-motion:reduce){
  .tk-track{animation:none}.ticker{overflow-x:auto}
  .art *,.art-ac .air{animation:none!important}
  .art .wisps path{opacity:.7;stroke-dashoffset:0}
  .js .wipe{clip-path:none;transform:none;transition:none}
  .js .kin.in .pw-split .w>span,.js .pw.in{animation:none}
  .js .rv.in.tilt{transform:none}

  .eyebrow::before{transition:none}.js .rv:not(.in) .eyebrow::before{transform:none}
}
.ph-waves g{animation:wdrift 11s ease-in-out infinite alternate}
.ph-waves .comet{stroke:#fff;stroke-width:2;stroke-dasharray:70 1000;stroke-dashoffset:1070;opacity:.8;animation:comet 7s var(--ease-io) 1.4s infinite}
@keyframes wdrift{to{transform:translateY(-12px)}}
@keyframes comet{0%{stroke-dashoffset:1070}72%,100%{stroke-dashoffset:0}}
.spec-grp.opening tbody tr{animation:rowin .55s var(--ease) both;animation-delay:calc(var(--r,0)*40ms)}
.feat.opening .fd{animation:rowin .6s var(--ease) both}
@keyframes rowin{from{opacity:0;transform:translateY(10px)}}
@media (prefers-reduced-motion:reduce){.ph-waves g,.ph-waves .comet{animation:none}}
.lp-tag,.lp-status{white-space:nowrap}
@media (max-width:420px){.lp-top{letter-spacing:.1em}.lp-status{font-size:.74rem;padding:5px 10px}}

@keyframes flow14{to{stroke-dashoffset:-28}}
/* header while the menu is open: solid white, so the panel reads as part of it */
.menu-open .hdr,.menu-open .hdr.dark:not(.solid),.menu-open .hdr.dark.scrim{color:var(--ink);background:#fff;box-shadow:0 1px 0 rgba(26,43,46,.06);transform:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.menu-open .hdr.dark:not(.solid) .brand .lw,.menu-open .hdr .brand .lw{display:none}
.menu-open .hdr.dark:not(.solid) .brand .ld,.menu-open .hdr .brand .ld{display:block}
.menu-open .hdr::after{opacity:0}
.menu-btn .bars{transition:background-color .35s var(--ease),box-shadow .35s var(--ease)}
.menu-open .menu-btn .bars{background:var(--ink);box-shadow:none}
.menu-open .menu-btn .bars::before,.menu-open .menu-btn .bars::after{background:#fff}
/* desktop nav: a soft pill glides to the link under the pointer; the current page carries a short line in its colour */
.nav{position:relative;isolation:isolate}
.nav-pill{position:absolute;left:0;top:50%;height:38px;margin-top:-19px;width:0;border-radius:999px;background:rgba(26,43,46,.07);opacity:0;z-index:-1;pointer-events:none;transition:transform .5s var(--ease),width .5s var(--ease),opacity .3s var(--ease)}
.hdr.dark:not(.solid) .nav-pill{background:rgba(255,255,255,.12)}
.nav.has-pill a:not(.cta):hover{background:transparent}
.nav a{position:relative}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:2px;width:16px;height:2px;margin-left:-8px;border-radius:2px;background:var(--hw2)}
.line-ac .nav a[aria-current="page"]::after{background:var(--ac2)}
.hdr.dark:not(.solid) .nav a[aria-current="page"]::after{background:var(--hw-dk1)}
.line-ac .hdr.dark:not(.solid) .nav a[aria-current="page"]::after{background:var(--ac-dk1)}
.menu-panel:focus{outline:none}
.nav-sep{width:1px;height:18px;background:currentColor;opacity:.18;margin:0 8px}
.ftr li a{display:inline-block;padding:3px 0}
a.pw{white-space:nowrap}
@media (max-width:420px){.mp-foot{flex-wrap:wrap;gap:10px}.mp-foot .btn{flex:1 1 100%}.mp-mail{margin:0 auto 2px}}
