:root {
  color-scheme:light;
  --ink:#14243d;
  --muted:#51627b;
  --blue:#0e3f88;
  --blue-dark:#0b316c;
  --line:#dce5f0;
  --wash:#f4f8fd;
  --wash-blue:#eaf2fd;
  --paper:#fff;
  --shadow:0 22px 60px rgba(20,55,110,.09);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);line-height:1.6}
img{max-width:100%}
a{color:var(--blue);text-underline-offset:.2em}
a:hover{color:var(--blue-dark)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.screenshots:focus-visible{outline:3px solid #448dcf;outline-offset:4px}
.container{width:min(100% - 2.5rem,1180px);margin-inline:auto}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(3.1rem,6.5vw,6rem);line-height:1.02;letter-spacing:-.064em}
h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.12;letter-spacing:-.045em}
h3{font-size:1.25rem;line-height:1.25;letter-spacing:-.025em}
p{color:var(--muted)}
.eyebrow{display:inline-block;color:var(--blue);font-size:.75rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.section{padding:clamp(4.5rem,8vw,7.5rem) 0;scroll-margin-top:2rem}
.section-heading{max-width:760px;margin-bottom:3rem}
.section-heading p{max-width:66ch;font-size:1.08rem}
.section-heading h2,.split-heading h2{margin:.7rem 0 1rem}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:49px;padding:.75rem 1.35rem;border:1px solid var(--blue);border-radius:10px;background:var(--blue);color:#fff;font:inherit;font-size:.91rem;font-weight:750;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}
.button:hover{background:var(--blue-dark);color:#fff;transform:translateY(-2px);box-shadow:0 9px 20px rgba(14,63,136,.16)}
.button.secondary{background:#fff;color:var(--blue)}
.button.secondary:hover{background:var(--wash-blue);color:var(--blue-dark)}
.button-small{min-height:41px;padding:.55rem .95rem}
.button:disabled,.button.secondary:disabled{background:#e9eff8;border-color:#e9eff8;color:#455a77;cursor:not-allowed;transform:none;box-shadow:none}

/* Shared navigation */
.site-header{position:relative;z-index:20;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)}
.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:inline-flex;align-items:center;gap:.45rem;min-width:0;color:var(--blue);text-decoration:none}
.brand:hover{color:var(--blue-dark)}
.brand-icon{display:block;width:44px;height:48px;flex:none;object-fit:contain}
.brand-name{display:flex;flex-direction:column;line-height:1.05;white-space:nowrap}
.brand-name strong{font-size:.91rem;font-weight:900;letter-spacing:.075em}
.brand-name small{margin-top:.25rem;font-size:.62rem;font-weight:800;letter-spacing:.31em}
.desktop-nav{display:flex;align-items:center;gap:1.45rem}
.desktop-nav a{color:var(--ink);font-size:.88rem;font-weight:700;text-decoration:none}
.desktop-nav a:hover{color:var(--blue)}
.header-actions{display:flex;align-items:center;gap:.7rem}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{display:block;padding:.5rem .8rem;border:1px solid var(--line);border-radius:9px;color:var(--blue);font-size:.9rem;font-weight:750;cursor:pointer;list-style:none}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu[open] nav{position:absolute;right:0;top:calc(100% + .65rem);width:220px;padding:.5rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:grid}
.mobile-menu nav a{padding:.7rem .8rem;border-radius:7px;color:var(--ink);font-size:.92rem;font-weight:650;text-decoration:none}
.mobile-menu nav a:hover{background:var(--wash);color:var(--blue)}

/* Home hero and app frames */
.home-hero{overflow:hidden;background:radial-gradient(circle at 80% 38%,#e5effd 0,transparent 34%),linear-gradient(180deg,#fff,#f7faff);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.03fr .97fr;align-items:center;gap:2rem;min-height:700px}
.hero-copy{position:relative;z-index:2;padding:4rem 0;animation:rise-in .8s ease-out both}
.hero-copy h1{margin:.8rem 0 1.5rem;color:var(--ink)}
.hero-copy h1 em{color:var(--blue);font-style:normal}
.lead{max-width:56ch;font-size:clamp(1.08rem,1.8vw,1.27rem)}
.hero-note{margin:1.35rem 0 0;font-size:.85rem}
.hero-visual{position:relative;min-height:650px;isolation:isolate}
.hero-glow{position:absolute;inset:13% 2% 15%;z-index:-1;border-radius:50%;background:radial-gradient(circle,#cadbf5 0,#e8f1fc 43%,transparent 70%)}
.phone{--frame-light:#f6f8fc;--frame-mid:#8191a8;--frame-dark:#26374f;position:relative;width:min(100%,276px);padding:7px;border-radius:45px;background:linear-gradient(140deg,var(--frame-light),var(--frame-mid) 24%,var(--frame-dark) 52%,var(--frame-light) 88%);box-shadow:0 22px 38px rgba(20,43,78,.18),inset 0 0 0 1px var(--frame-mid)}
.phone-blue{--frame-light:#c9dbf7;--frame-mid:#4270ae;--frame-dark:#133b77}
.phone-midnight{--frame-light:#748398;--frame-mid:#263952;--frame-dark:#101a2b}
.phone::before,.phone::after{position:absolute;width:3px;border-radius:2px;background:var(--frame-mid);content:""}
.phone::before{left:-2px;top:105px;height:38px;box-shadow:0 51px 0 var(--frame-mid)}
.phone::after{right:-2px;top:145px;height:55px}
.phone-screen{position:relative;overflow:hidden;padding-top:25px;border:4px solid #17253a;border-radius:38px;background:#fff}
.phone-screen img{display:block;width:100%;height:auto}
.phone-island{position:absolute;z-index:1;top:5px;left:50%;width:70px;height:13px;transform:translateX(-50%);border-radius:99px;background:#17253a}
.hero-phone{position:absolute;top:2.6rem;width:250px}
.hero-phone-front{left:7%;z-index:2;transform:rotate(-7deg);animation:float-front 7s ease-in-out infinite}
.hero-phone-back{right:5%;top:5rem;width:223px;transform:rotate(9deg);animation:float-back 7.5s ease-in-out infinite}
.hero-stamp{position:absolute;right:1rem;bottom:1rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.93);box-shadow:var(--shadow);color:var(--blue);font-size:.72rem;font-weight:850;letter-spacing:.12em;white-space:nowrap}
.hero-stamp span{color:#94accd}
.step-strip{border-bottom:1px solid var(--line);background:#fff}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.step-grid div{display:flex;align-items:center;gap:1rem;padding:1.35rem 1.5rem;border-right:1px solid var(--line)}
.step-grid div:first-child{padding-left:0}
.step-grid div:last-child{border-right:0}
.step-grid span{color:#8ca9ce;font-size:.75rem;font-weight:900;letter-spacing:.15em}
.step-grid strong{font-size:.9rem}

/* Platform and app preview */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.feature-card{min-height:310px;display:flex;flex-direction:column;padding:2rem;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(20,63,135,.04)}
.feature-index,.device-number{color:var(--blue);font-size:.75rem;font-weight:850;letter-spacing:.14em}
.feature-icon{width:58px;height:58px;margin:1.75rem 0 1.2rem;border-radius:15px;background:var(--wash-blue);display:grid;place-items:center;color:var(--blue);font-size:2rem;font-weight:650}
.feature-card h3{margin-bottom:.6rem}
.feature-card p{margin-bottom:0}
.app-section{background:var(--wash)}
.split-heading{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:2.6rem}
.app-identity{display:flex;align-items:center;gap:.8rem}
.app-identity img{display:block;width:82px;height:auto}
.split-heading p{max-width:46ch;margin:0 0 .25rem;font-size:1.06rem}
.screenshots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.screenshot-card{min-width:0;margin:0;padding:2rem 1rem 1.5rem;border:1px solid var(--line);border-radius:22px;background:#fff;display:flex;flex-direction:column;align-items:center}
.screenshot-card .phone{width:min(100%,270px)}
.screenshot-card figcaption{margin-top:1.7rem;text-align:center}
.screenshot-card figcaption strong{display:block;color:var(--blue);font-size:1.06rem}
.screenshot-card figcaption span{display:block;margin-top:.25rem;color:var(--muted);font-size:.88rem}
.gallery-hint{display:none}

/* Equipment */
.equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.equipment-card{overflow:hidden;border:1px solid var(--line);border-radius:23px;background:#fff;box-shadow:0 12px 35px rgba(20,63,135,.045)}
.equipment-image,.beacon-demo{height:320px;overflow:hidden;background:#e9f1fa}
.equipment-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 32%}
.equipment-copy{padding:2rem}
.equipment-copy h3{margin:.55rem 0 .75rem;font-size:clamp(1.5rem,2vw,2rem)}
.equipment-copy p{max-width:58ch}
.equipment-copy a{font-weight:750;text-decoration:none}
.equipment-copy a:hover{text-decoration:underline}
.beacon-demo{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.5rem;background:radial-gradient(circle at 70% 30%,#d3e5fa,#f3f8fd 60%)}
.beacon-track{position:relative;width:min(72%,360px);height:5px;border-radius:99px;background:#a9c6e7}
.beacon-node{position:absolute;top:50%;width:37px;height:37px;transform:translate(-50%,-50%);border:8px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 0 0 1px #a5bfdf,0 7px 15px rgba(14,63,136,.15)}
.beacon-start{left:0}.beacon-end{left:100%}
.beacon-traveller{position:absolute;z-index:2;top:50%;left:6%;width:20px;height:20px;transform:translate(-50%,-50%);border:4px solid #fff;border-radius:50%;background:#66a2df;box-shadow:0 0 0 7px rgba(102,162,223,.22);animation:beacon-travel 5s ease-in-out infinite}
.beacon-readout{text-align:center;animation:beacon-readout 5s ease-in-out infinite}
.beacon-readout span{display:block;color:#7189ab;font-size:.7rem;font-weight:850;letter-spacing:.18em}
.beacon-readout strong{display:block;margin-top:.25rem;color:var(--blue);font-size:1.45rem;letter-spacing:-.03em}
.concept-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.concept-card .equipment-copy{align-self:center}
.erg-icons{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:1rem;padding:2rem;background:var(--wash-blue)}
.erg-icons div{text-align:center}
.erg-icons img{display:block;width:min(100%,110px);height:auto;margin:0 auto 1rem;opacity:.88}
.erg-icons span{color:var(--blue);font-size:.7rem;font-weight:850;letter-spacing:.13em}
.equipment-note{margin:1.3rem 0 0;font-size:.84rem}
.future-section{background:var(--wash)}
.future-inner{display:grid;grid-template-columns:1fr .55fr;gap:3rem;align-items:center}
.future-inner p{max-width:60ch;margin-bottom:0;font-size:1.07rem}
.future-mark{display:flex;justify-content:center;align-items:center;gap:.7rem;color:var(--blue);font-size:clamp(3rem,8vw,7rem);font-weight:850;letter-spacing:-.08em}
.future-mark span:first-child,.future-mark span:last-child{width:1.45em;height:1.45em;border:2px solid #c8daf1;border-radius:50%;display:grid;place-items:center}
.future-mark span:nth-child(2){color:#9ab7da}
.download-panel{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(2rem,5vw,4rem);border:1px solid #cbdcf1;border-radius:26px;background:linear-gradient(115deg,#e9f2fe,#fff 72%);box-shadow:var(--shadow)}
.download-panel h2{margin:.7rem 0}
.download-panel p{margin:0}
.download-actions{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;min-width:225px}
.download-actions small{max-width:240px;color:var(--muted);font-size:.76rem;line-height:1.4}

/* Support and legal pages */
.page-hero{padding:clamp(3.5rem,7vw,5.5rem) 0 3rem;border-bottom:1px solid var(--line);background:var(--wash)}
.page-hero h1{margin:.55rem 0 1rem;font-size:clamp(2.7rem,5vw,4.5rem)}
.page-hero p{max-width:66ch;margin:0;font-size:1.1rem}
.content-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(190px,1fr);gap:5rem;padding:3.5rem 0 6rem}
.prose{max-width:760px}
.prose h2{margin:2.5rem 0 .7rem;font-size:1.55rem;scroll-margin-top:2rem}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--muted)}
.prose ul{padding-left:1.3rem}
.prose li{margin:.5rem 0}
.aside{align-self:start;position:sticky;top:2rem;padding:1.5rem;border:1px solid var(--line);border-radius:16px;background:var(--wash)}
.aside h2{font-size:1rem;letter-spacing:0}
.aside a{display:block;margin:.65rem 0;font-size:.9rem}
.placeholder{padding:.05rem .3rem;border-radius:4px;background:#e8f0fc;color:var(--blue);font-weight:750}
.contact-grid{display:grid;grid-template-columns:minmax(0,690px) 1fr;gap:4rem;padding:4rem 0 6rem}
.form-card{padding:clamp(1.4rem,4vw,2.5rem);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.field{margin-bottom:1.3rem}
.field label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:700}
.field input,.field select,.field textarea{display:block;width:100%;padding:.75rem .9rem;border:1px solid #aebfd7;border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.field textarea{min-height:170px;resize:vertical}
.field input:invalid:not(:placeholder-shown),.field textarea:invalid:not(:placeholder-shown){border-color:#ae6048}
.field-help{margin:.35rem 0 0;font-size:.78rem}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.5rem;margin:1rem 0 0;font-size:.9rem;font-weight:650}
.form-status.error{color:#a53d2c}.form-status.success{color:var(--blue)}
.support-aside{padding-top:1rem}.support-aside h2{font-size:1.5rem}

/* Footer */
.site-footer{padding:3.5rem 0;border-top:1px solid var(--line);background:var(--wash)}
.footer-inner{display:flex;justify-content:space-between;align-items:start;gap:3rem}
.footer-brand{max-width:340px}
.footer-brand p{margin:1rem 0 .6rem;font-size:.9rem}
.footer-brand>small{color:var(--muted);font-size:.8rem}
.footer-links{display:grid;grid-template-columns:repeat(2,max-content);gap:.65rem 2.5rem}
.footer-links a{color:var(--ink);font-size:.88rem;font-weight:650;text-decoration:none}
.footer-links a:hover{color:var(--blue);text-decoration:underline}

@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes float-front{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-12px) rotate(-7deg)}}
@keyframes float-back{0%,100%{transform:translateY(0) rotate(9deg)}50%{transform:translateY(10px) rotate(9deg)}}
@keyframes beacon-travel{0%,8%{left:6%}48%,62%{left:94%}100%{left:6%}}
@keyframes beacon-readout{0%,40%,78%,100%{opacity:.48}52%,65%{opacity:1}}

@media(max-width:1000px){
  .desktop-nav{gap:.75rem}
  .desktop-nav a{font-size:.8rem}
  .hero-phone-front{left:1%}.hero-phone-back{right:0}
}
@media(max-width:850px){
  .desktop-nav{display:none}.mobile-menu{display:block}
  .hero-grid{grid-template-columns:1fr;min-height:0;gap:0}
  .hero-copy{padding:4.5rem 0 0}.hero-visual{min-height:620px;width:min(100%,590px);margin:auto}
  .hero-phone-front{left:12%}.hero-phone-back{right:10%}
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-card:last-child{grid-column:1/-1;min-height:0}
  .screenshots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .content-layout,.contact-grid{grid-template-columns:1fr;gap:2rem}
  .aside{position:static}
}
@media(max-width:650px){
  .container{width:min(100% - 2rem,1180px)}
  .header-inner{min-height:70px;gap:.7rem}
  .brand-name strong{font-size:.75rem}.brand-name small{font-size:.53rem}
  .brand-icon{width:39px;height:43px}
  .header-actions>.button{display:none}
  .hero-copy{padding-top:3.5rem}.hero-copy h1{font-size:clamp(2.7rem,10vw,4.3rem)}
  .hero-visual{min-height:525px}
  .hero-phone-front{top:1.6rem;left:3%;width:min(61vw,225px)}
  .hero-phone-back{top:4rem;right:0;width:min(54vw,198px)}
  .hero-stamp{right:0;bottom:1.5rem;font-size:.58rem}
  .step-grid{grid-template-columns:1fr}.step-grid div,.step-grid div:first-child{padding:1rem 0;border-right:0;border-bottom:1px solid var(--line)}.step-grid div:last-child{border-bottom:0}
  .feature-grid,.equipment-grid,.split-heading,.future-inner{grid-template-columns:1fr}
  .feature-card:last-child,.concept-card{grid-column:auto}
  .feature-card{min-height:0}
  .split-heading{gap:.5rem}
  .screenshots{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.2rem .1rem 1.25rem;margin-inline:-.1rem}
  .screenshot-card{flex:0 0 min(82vw,320px);scroll-snap-align:center;padding:1.5rem 1rem}
  .gallery-hint{display:block;margin:.5rem 0 0;font-size:.85rem}
  .concept-card{display:block}
  .erg-icons{min-height:240px;padding:1rem}
  .future-mark{justify-content:flex-start;font-size:3.5rem}
  .download-panel,.footer-inner{display:block}
  .download-actions{margin-top:1.8rem}
  .footer-links{margin-top:2rem;gap:.6rem 1.2rem}
}
@media(max-width:390px){
  .hero-visual{min-height:475px}
  .hero-phone-front{width:190px}.hero-phone-back{width:165px}
  .hero-stamp{font-size:.53rem}
  .brand-name strong{font-size:.68rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-copy,.hero-phone,.beacon-traveller,.beacon-readout{animation:none}
  .button{transition:none}
}

/* Editorial landing page */
.new-home{overflow:hidden}
.new-home .section{padding:clamp(6rem,11vw,10rem) 0}
.new-home .overline{display:block;color:#235b9f;font-size:.7rem;font-weight:850;letter-spacing:.22em;line-height:1.5}
.new-home h2{font-size:clamp(3.2rem,6.7vw,6.5rem);line-height:1.02;letter-spacing:-.075em;font-weight:760}
.new-home h3{font-size:clamp(2.7rem,5.1vw,5rem);line-height:1.06;letter-spacing:-.065em;font-weight:750}
.new-home p{line-height:1.65}
.new-home .button{border-radius:999px;padding:.82rem 1.55rem;min-height:52px}
.editorial-hero{min-height:min(850px,90vh);position:relative;display:flex;align-items:center;isolation:isolate;background:#f1f2f2;overflow:hidden}
.hero-photo{position:absolute;inset:0;z-index:-2;background:url('/assets/images/training-editorial.png') center center/cover no-repeat}
.editorial-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(248,250,252,.94) 0%,rgba(248,250,252,.86) 27%,rgba(248,250,252,.26) 60%,rgba(248,250,252,0) 88%)}
.hero-content{padding-top:7rem;padding-bottom:9rem}
.hero-content h1{max-width:810px;margin:1.1rem 0 1.5rem;font-size:clamp(4.5rem,9.2vw,9.2rem);letter-spacing:-.09em;line-height:.95;font-weight:760}
.hero-content h1 em,.equipment-intro h2 em{font-style:normal;color:#12529e}
.hero-content p{max-width:480px;color:#253a56;font-size:clamp(1.1rem,1.5vw,1.3rem);font-weight:480}
.hero-links{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;margin-top:2.4rem}
.text-link,.story-link{color:#0e3f88;text-decoration:none;font-weight:760}
.text-link:hover,.story-link:hover{text-decoration:underline}
.hero-rail{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:1.1rem max(1.25rem,calc((100vw - 1180px)/2));border-top:1px solid rgba(20,36,61,.2);color:#294465;font-size:.68rem;font-weight:800;letter-spacing:.18em}
.manifesto{background:#fff}
.manifesto-grid{display:grid;grid-template-columns:1fr 2fr;gap:4rem}
.manifesto-grid>.overline{padding-top:.9rem}
.manifesto h2{max-width:850px;margin:0 0 2rem}
.large-copy{max-width:770px;font-size:clamp(1.22rem,2vw,1.65rem);line-height:1.5!important;color:#465a72}
.manifesto-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem;border-top:1px solid #cdd8e4}
.manifesto-steps div{padding-top:1.2rem;display:flex;flex-direction:column;gap:.6rem}
.manifesto-steps b{color:#18579d;font-size:.75rem;letter-spacing:.1em}.manifesto-steps span{font-size:1.1rem;font-weight:700}
.app-showcase{background:#eef3f8}
.app-showcase-grid{display:grid;grid-template-columns:1fr 1fr;gap:5%;align-items:center}
.app-copy h2{margin:1.3rem 0 1.7rem}
.app-copy>p{max-width:530px;font-size:1.14rem}
.app-points{margin-top:3.3rem;border-top:1px solid #c9d6e5}
.app-points>div{display:grid;grid-template-columns:3rem 1fr;column-gap:.8rem;padding:1.05rem 0;border-bottom:1px solid #c9d6e5}
.app-points span{grid-row:span 2;color:#366faa;font-size:.75rem;font-weight:850;letter-spacing:.08em;padding-top:.15rem}
.app-points strong{font-size:1.06rem}.app-points p{margin:.25rem 0 0;font-size:.9rem}
.app-stage{min-height:690px;position:relative;display:flex;align-items:center;justify-content:center}
.stage-halo{position:absolute;width:95%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 0%,#e5eef9 54%,transparent 72%)}
.showcase-phone{position:absolute;width:260px}.showcase-phone.front{z-index:2;left:15%;transform:rotate(-8deg);box-shadow:0 35px 70px rgba(10,42,82,.22)}.showcase-phone.back{z-index:1;right:3%;top:15%;transform:rotate(11deg);box-shadow:0 30px 60px rgba(10,42,82,.15)}
.stage-caption{position:absolute;bottom:1rem;right:0;color:#637b96;font-size:.65rem;font-weight:850;letter-spacing:.18em}
.equipment-intro{background:#fff;text-align:center}
.equipment-intro h2{margin:1rem 0 1.5rem}.equipment-intro p{max-width:680px;margin:0 auto;font-size:1.2rem}
.product-story{border-top:1px solid #dce5ef;background:#f8fafc}
.product-story:nth-of-type(even){background:#fff}
.product-grid{min-height:630px;display:grid;grid-template-columns:1fr 1.1fr;gap:5%;align-items:center;padding-top:5rem;padding-bottom:5rem}
.product-copy{max-width:500px}.product-kicker{display:block;color:#155093;font-size:.75rem;font-weight:850;letter-spacing:.16em}.product-kicker b{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-right:.7rem;border:1px solid #b5cce7;border-radius:50%}
.product-copy h3{margin:1.6rem 0}.product-copy>p{font-size:1.11rem}.product-detail{display:flex;flex-direction:column;gap:.25rem;margin:2rem 0;padding:1rem 0;border-top:1px solid #cfdae6;border-bottom:1px solid #cfdae6}.product-detail span{font-size:.68rem;color:#6c82a0;font-weight:850;letter-spacing:.18em}.product-detail strong{font-size:1.04rem;color:#173b67}
.story-link{display:inline-block;margin-top:.3rem}.product-visual{position:relative;min-height:510px;overflow:hidden;border-radius:3px;background:#e9f0f7;box-shadow:0 20px 60px rgba(20,55,110,.08)}
.visual-footnote{position:absolute;bottom:1.2rem;left:1.4rem;color:#6781a0;font-size:.62rem;font-weight:800;letter-spacing:.18em}
.visual-readout{position:absolute;bottom:3.2rem;right:2rem;text-align:right;color:#0e3f88}.visual-readout small{display:block;font-size:.7rem;font-weight:850;letter-spacing:.17em}.visual-readout strong{display:block;font-size:clamp(2rem,4vw,3.7rem);line-height:1;letter-spacing:-.07em}.visual-readout strong span{font-size:.43em;letter-spacing:-.01em}
.target-visual{background:radial-gradient(circle at 49% 42%,#fafdff 0%,#e5eff9 54%,#dce8f5 100%)}
.target-rings{position:absolute;left:50%;top:43%;width:310px;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid #9abbe0;border-radius:50%;box-shadow:0 0 0 36px #e4eff9,0 0 0 38px #aac7e5,0 0 0 73px #d9e9f8,0 0 0 75px #bcd3eb,0 0 0 112px #eef5fb,0 0 0 114px #c8daec,0 28px 40px rgba(25,68,118,.13);background:radial-gradient(circle,#15549d 0 22%,#fff 22% 23%,#b9d4ed 23% 50%,#fff 50% 51%,#eaf3fb 51%)}
.target-core{position:absolute;inset:42%;border-radius:50%;background:#fff;box-shadow:0 0 0 14px #15549d}
.ball-path{position:absolute;left:11%;top:27%;width:34%;height:36%;border-top:2px dashed #7aa6d1;border-radius:50%;transform:rotate(-23deg)}
.ball-dot{position:absolute;left:15%;top:36%;width:35px;height:35px;border-radius:50%;background:#173d6c;box-shadow:inset -8px -7px 12px #0c2548,0 8px 15px #b1c8dc;animation:ball-approach 3.5s ease-in-out infinite}
.beacon-visual{background:linear-gradient(160deg,#f7fbff,#dce9f7)}
.beacon-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,#c5d9ed 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,#c5d9ed 50%,transparent 50.2%);background-size:48px 48px;opacity:.45;transform:perspective(250px) rotateX(20deg) scale(1.3)}
.route-top{position:absolute;top:25%;left:16%;right:16%;display:flex;justify-content:space-between;color:#5478a2;font-size:.7rem;font-weight:850;letter-spacing:.16em}
.route-line{position:absolute;top:42%;left:17%;right:17%;height:4px;background:#83acd5;border-radius:5px}.route-line:after{content:"";position:absolute;top:-38px;right:0;width:85px;height:42px;border:4px solid #83acd5;border-left:0;border-bottom:0;border-radius:0 55px 0 0}.route-origin,.route-end{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:#13539c;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #e9f4fd,0 0 0 10px #9dbfe0}.route-origin{left:0}.route-end{left:100%}.route-runner{position:absolute;left:36%;top:50%;width:27px;height:27px;border:5px solid white;border-radius:50%;background:#2d75bc;transform:translate(-50%,-50%);box-shadow:0 0 0 10px rgba(45,117,188,.17);animation:route-move 4s ease-in-out infinite}
.beacon-unit{position:absolute;top:48%;left:17%;width:100px;height:58px;transform:translateX(-50%);border-radius:50%;background:linear-gradient(#497dad,#153e73);box-shadow:0 16px 23px rgba(22,62,107,.24),inset 0 5px 8px rgba(255,255,255,.4)}.beacon-unit:before{content:"";position:absolute;top:10px;left:15px;right:15px;height:34px;border:1px solid rgba(255,255,255,.4);border-radius:50%}.beacon-unit span{position:absolute;top:23px;left:44px;width:12px;height:12px;border-radius:50%;background:#bfe4ff;box-shadow:0 0 15px #fff}
.erg-visual{display:flex;flex-direction:column;justify-content:center;padding:3rem;background:linear-gradient(145deg,#f0f5fa,#dce9f7)}.erg-headline{color:#0f407c;font-size:clamp(1.5rem,3vw,2.6rem);font-weight:850;letter-spacing:-.07em;line-height:1.1}.erg-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:3rem}.erg-row>div{min-width:0;padding:1.2rem .4rem;border:1px solid #c7d7e8;background:rgba(255,255,255,.72);text-align:center}.erg-row img{display:block;width:min(100%,115px);height:auto;margin:auto;opacity:.85}.erg-row span{display:block;margin-top:1rem;color:#234e80;font-size:.67rem;font-weight:850;letter-spacing:.1em}
.availability-note{padding-top:1.1rem;padding-bottom:1.4rem;color:#64768a;font-size:.81rem}.availability-note a{font-weight:700}
.screen-gallery{background:#f0f4f8}.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem}.gallery-heading h2{margin:1rem 0 2rem}.gallery-heading p{max-width:320px;font-size:1.07rem}.gallery-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:2rem 0 2.5rem}.gallery-track figure{flex:0 0 min(25%,280px);min-width:230px;margin:0;scroll-snap-align:start;text-align:center}.gallery-track .phone{margin:auto;width:225px}.gallery-track figcaption{margin-top:1.5rem;font-size:1rem;font-weight:750}.new-home .gallery-hint{display:block;text-align:right;font-size:.83rem}
.closing-section{background:linear-gradient(135deg,#e1edf9,#f9fbfe)}.closing-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:5rem;align-items:center}.closing-grid h2{margin:1rem 0 1.5rem}.closing-grid p{max-width:630px;font-size:1.1rem}.closing-action{display:flex;flex-direction:column;align-items:flex-start;padding:2.3rem;border:1px solid #cadbec;background:#fff;box-shadow:0 24px 65px rgba(14,63,136,.09)}.closing-action img{width:82px;height:auto}.closing-action strong{margin-top:1rem;font-size:1.5rem;letter-spacing:-.04em}.closing-action>span{margin:.25rem 0 2rem;color:#60728b}.closing-action small{margin-top:1rem;color:#697e97}.closing-action .button:disabled{border-radius:999px}
@keyframes ball-approach{50%{transform:translate(95px,-36px) scale(.65)}}
@keyframes route-move{50%{left:92%}}
@media(max-width:850px){.editorial-hero{min-height:680px}.hero-content{padding-top:5rem;padding-bottom:7rem}.manifesto-grid,.app-showcase-grid,.product-grid,.closing-grid{grid-template-columns:1fr;gap:2rem}.app-stage{min-height:640px}.product-grid{padding-top:4rem;padding-bottom:4rem}.product-copy{max-width:720px}.product-visual{min-height:500px}.gallery-track figure{flex-basis:240px}}
@media(max-width:650px){.new-home .section{padding:5.5rem 0}.editorial-hero{min-height:660px;align-items:flex-start}.hero-photo{background-position:62% center}.editorial-hero::after{background:linear-gradient(90deg,rgba(249,251,253,.96),rgba(249,251,253,.75) 63%,rgba(249,251,253,.26))}.hero-content{padding-top:5rem;padding-bottom:8rem}.hero-content h1{font-size:clamp(4rem,15vw,6.2rem)}.hero-content p{max-width:390px}.hero-links{align-items:flex-start;flex-direction:column;gap:1rem}.manifesto-grid{gap:1.5rem}.manifesto-steps{margin-top:2.5rem;gap:.4rem}.manifesto-steps span{font-size:.85rem}.app-stage{min-height:530px;margin-inline:-1rem}.showcase-phone{width:min(50vw,235px)}.showcase-phone.front{left:6%}.showcase-phone.back{right:2%;top:12%}.stage-caption{bottom:0;right:1rem}.equipment-intro{text-align:left}.equipment-intro p{margin-left:0}.product-visual{min-height:390px}.product-grid{gap:2.6rem}.target-rings{width:210px}.visual-readout{right:1rem;bottom:2.5rem}.beacon-unit{width:70px;height:45px}.beacon-unit span{left:29px;top:16px}.erg-visual{padding:2rem 1rem}.erg-row{gap:.35rem}.erg-row>div{padding:.8rem .25rem}.erg-row span{font-size:.54rem}.gallery-heading{display:block}.gallery-heading h2{margin-bottom:1rem}.closing-grid{gap:2.5rem}}
@media(max-width:390px){.hero-content h1{font-size:3.65rem}.showcase-phone{width:185px}.app-stage{min-height:480px}}
@media(prefers-reduced-motion:reduce){.ball-dot,.route-runner{animation:none}}
/* Concept visuals use editorial renders; labels keep their status explicit. */
.target-visual{background:#e8edf2 url('/assets/images/equipment/wall-ball-concept.png') center center/cover no-repeat}
.beacon-visual{background:#e8edf2 url('/assets/images/equipment/beacon-concept.png') center center/cover no-repeat}
.beacon-visual::before{display:none}
.target-visual .visual-readout,.beacon-visual .visual-readout{padding:.85rem 1.1rem;border:1px solid rgba(255,255,255,.8);background:rgba(255,255,255,.86);backdrop-filter:blur(12px);box-shadow:0 8px 25px rgba(13,48,87,.08)}
.target-visual .visual-footnote,.beacon-visual .visual-footnote{padding:.5rem .65rem;background:rgba(255,255,255,.83);backdrop-filter:blur(9px);color:#234b76}
@media(max-width:650px){.target-visual{background-position:55% center}.beacon-visual{background-position:30% center}.target-visual .visual-readout,.beacon-visual .visual-readout{right:.75rem;bottom:3.1rem;padding:.55rem .7rem}.target-visual .visual-footnote,.beacon-visual .visual-footnote{left:.5rem;bottom:.5rem;font-size:.5rem}}
/* Shared chrome */
.site-header{position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom-color:rgba(179,196,216,.55)}
.desktop-nav a{font-weight:620;transition:color .2s}
.site-footer{background:#fff;padding:4.5rem 0}
.footer-links a{font-weight:580}
[id]{scroll-margin-top:6rem}

/* Language selector */
.language-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#f3f7fc;white-space:nowrap}
.language-switch button{min-width:34px;padding:.34rem .38rem;border:0;border-radius:999px;background:transparent;color:#526783;font:inherit;font-size:.69rem;font-weight:850;letter-spacing:.06em;cursor:pointer}
.language-switch button[aria-pressed="true"]{background:var(--blue);color:#fff;box-shadow:0 2px 6px rgba(14,63,136,.16)}
.language-switch button:focus-visible{outline:2px solid #448dcf;outline-offset:2px}
@media(max-width:390px){.header-actions{gap:.35rem}.language-switch button{min-width:29px;padding:.3rem}.mobile-menu summary{padding:.45rem .55rem}}
/* Photographic erg equipment gallery */
.erg-visual{padding:2.25rem 2rem 3.5rem;min-height:500px}
.erg-visual .erg-headline{font-size:clamp(1.55rem,2.6vw,2.4rem)}
.erg-visual .erg-row{gap:.75rem;margin-top:2rem}
.erg-tile{min-width:0;margin:0;overflow:hidden;border:1px solid #c7d7e8;background:#fff;box-shadow:0 10px 25px rgba(20,55,110,.07)}
.erg-visual .erg-tile img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;margin:0;opacity:1}
.erg-tile figcaption{padding:.9rem .8rem;color:#153f72;font-size:.74rem;font-weight:850;letter-spacing:.15em}
.erg-visual .visual-footnote{bottom:1rem;left:2rem}
@media(max-width:650px){
  .erg-visual{min-height:0;padding:2rem 1rem 2.9rem}
  .erg-visual .erg-row{display:flex;gap:.7rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem;margin-right:-1rem}
  .erg-tile{flex:0 0 76%;scroll-snap-align:start}
  .erg-visual .erg-tile img{width:100%;height:auto}
  .erg-visual .visual-footnote{left:1rem;bottom:.7rem;font-size:.51rem}
}
