@font-face{font-family:"Work Sans";src:url("../assets/fonts/work-sans-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Work Sans";src:url("../assets/fonts/work-sans-semibold.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Work Sans";src:url("../assets/fonts/work-sans-bold.ttf") format("truetype");font-weight:700;font-display:swap}

:root{
  --ink:#11221c;
  --ink-soft:#52625c;
  --night:#0b211b;
  --night-2:#12342a;
  --paper:#f6f7f2;
  --surface:#fff;
  --surface-soft:#eef1eb;
  --green:#14a875;
  --green-dark:#087552;
  --lime:#c7f45b;
  --cyan:#78dcdf;
  --sky:#dff6f2;
  --violet:#dcd9ff;
  --peach:#ffe3cf;
  --danger:#a33d32;
  --line:rgba(17,34,28,.13);
  --line-dark:rgba(255,255,255,.16);
  --shadow-sm:0 10px 30px rgba(11,33,27,.08);
  --shadow-lg:0 28px 80px rgba(11,33,27,.16);
  --radius-sm:.75rem;
  --radius-md:1.25rem;
  --radius-lg:2rem;
  --pill:999px;
  --content:76rem;
  --space-section:clamp(5rem,9vw,8.5rem);
  --text-xs:clamp(.72rem,.7rem + .08vw,.8rem);
  --text-sm:clamp(.9rem,.86rem + .12vw,1rem);
  --text-base:clamp(1rem,.94rem + .18vw,1.13rem);
  --text-lg:clamp(1.2rem,1.05rem + .6vw,1.65rem);
  --text-xl:clamp(2.2rem,1.45rem + 2.6vw,4.35rem);
  --text-hero:clamp(3.2rem,2.15rem + 4vw,6.5rem);
  --ease:cubic-bezier(.2,.75,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem;scroll-snap-type:y proximity}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Work Sans",Arial,sans-serif;font-size:var(--text-base);line-height:1.6;overflow-x:hidden}
body.dialog-open{overflow:hidden}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{margin-bottom:1rem;line-height:1.02;letter-spacing:-.045em}
h2{font-size:var(--text-xl)}
h3{font-size:clamp(1.45rem,1.15rem + .8vw,2.15rem)}
::selection{background:var(--lime);color:var(--night)}
:focus-visible{outline:3px solid var(--green);outline-offset:4px}

.grid-shell{width:min(calc(100% - 3rem),var(--content));margin-inline:auto}
.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:200;padding:.7rem 1rem;border-radius:var(--pill);background:var(--lime);color:var(--night);font-weight:700;text-decoration:none;transform:translateY(-180%);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
.eyebrow{display:flex;align-items:center;gap:.7rem;margin-bottom:1.25rem;color:var(--lime);font-size:var(--text-xs);font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.eyebrow-dark{color:var(--green-dark)}
.signal-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--lime);box-shadow:0 0 0 .28rem rgba(199,244,91,.14)}

.button{display:inline-flex;min-height:3.25rem;align-items:center;justify-content:center;gap:.7rem;padding:.82rem 1.25rem;border:1px solid transparent;border-radius:var(--pill);font-size:.82rem;font-weight:700;line-height:1;text-decoration:none;transition:transform .18s var(--ease),background .18s ease,box-shadow .18s ease}
.button:hover{transform:translateY(-2px)}
.button:active{transform:translateY(0)}
.button-primary{background:var(--lime);color:var(--night);box-shadow:0 8px 24px rgba(199,244,91,.18)}
.button-primary:hover{background:#d7ff76;box-shadow:0 12px 30px rgba(199,244,91,.25)}
.button-secondary{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff}
.button-secondary:hover{background:rgba(255,255,255,.14)}
.button-small{min-height:2.75rem;padding:.65rem 1rem;font-size:.75rem}

.site-header{position:fixed;inset:0 0 auto;z-index:100;border-bottom:1px solid transparent;background:rgba(11,33,27,.88);backdrop-filter:blur(18px);transition:border-color .25s ease,background .25s ease}
.site-header.is-scrolled{border-color:var(--line-dark);background:rgba(11,33,27,.97)}
.header-inner{display:grid;width:min(calc(100% - 3rem),var(--content));min-height:5rem;margin-inline:auto;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem}
.brand{display:inline-flex;width:fit-content;min-height:2.75rem;align-items:center}
.brand img{width:8.7rem;height:auto}
.main-nav{display:flex;align-items:center;gap:2rem}
.main-nav a{display:flex;min-height:2.75rem;align-items:center;color:rgba(255,255,255,.72);font-size:.78rem;font-weight:600;text-decoration:none;transition:color .15s ease}
.main-nav a:hover{color:#fff}
.header-inner>.header-actions{display:flex;align-items:center;gap:.85rem;justify-self:end}
.lang-switch{display:flex;border:1px solid var(--line-dark);border-radius:var(--pill);overflow:hidden}
.lang-btn{display:grid;min-width:2.25rem;height:2.1rem;place-items:center;border:0;background:transparent;color:#fff;cursor:pointer;opacity:.5;transition:opacity .15s ease,background .15s ease}
.lang-btn svg{width:1.35rem;height:.85rem;border-radius:1px}
.lang-btn:hover{opacity:.85}
.lang-btn.is-active{background:rgba(255,255,255,.12);opacity:1}
.lang-btn:focus-visible{outline:2px solid var(--lime);outline-offset:2px}

.hero{position:relative;padding:5rem 0 4rem;overflow:hidden;background:var(--night);color:#fff;scroll-snap-align:start}
.hero::after{position:absolute;inset:auto 0 0;height:22rem;background:linear-gradient(180deg,transparent,rgba(20,168,117,.1));content:"";pointer-events:none}
.ambient{position:absolute;border-radius:50%;filter:blur(4px);pointer-events:none}
.ambient-one{top:10%;right:-10rem;width:34rem;height:34rem;background:radial-gradient(circle,rgba(120,220,223,.26),rgba(120,220,223,0) 68%)}
.ambient-two{bottom:-10rem;left:25%;width:30rem;height:30rem;background:radial-gradient(circle,rgba(199,244,91,.12),rgba(199,244,91,0) 70%)}
.hero-grid{position:relative;z-index:2;display:grid;min-height:calc(100svh - 9rem);grid-template-columns:minmax(0,.92fr) minmax(28rem,.78fr);align-items:center;gap:clamp(3rem,7vw,7rem);padding-block:clamp(4rem,8vw,7rem) 4rem}
.hero h1{max-width:10ch;margin-bottom:1.7rem;font-size:var(--text-hero);font-weight:600}
.hero h1 span{display:block;color:var(--lime)}
.hero-lede{max-width:38rem;margin-bottom:2rem;color:rgba(255,255,255,.72);font-size:var(--text-lg)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:2rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;margin:0;padding:0;color:rgba(255,255,255,.62);font-size:.78rem;list-style:none}
.hero-facts span{margin-right:.35rem;color:var(--lime)}
.hero-media{--hero-tilt:1.2deg;--hero-counter-tilt:-1.2deg;position:relative;display:grid;min-height:39rem;place-items:center}

.screenshot-placeholder{position:relative;overflow:hidden;border:1px solid rgba(17,34,28,.14);border-radius:var(--radius-lg);background-color:#edf3ed;background-image:linear-gradient(rgba(17,34,28,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,34,28,.045) 1px,transparent 1px);background-size:2rem 2rem;color:var(--ink)}
.screenshot-placeholder::before{position:absolute;inset:0;background:radial-gradient(circle at 25% 15%,rgba(120,220,223,.3),transparent 38%),radial-gradient(circle at 80% 80%,rgba(199,244,91,.26),transparent 42%);content:"";pointer-events:none}
.placeholder-topline{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--line);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.6rem;letter-spacing:.08em}
.placeholder-topline b{color:var(--green-dark)}
.placeholder-center{position:relative;z-index:2;display:flex;height:100%;min-height:14rem;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}
.placeholder-center svg{width:3.3rem;margin-bottom:1rem;fill:none;stroke:var(--green-dark);stroke-width:1.6}
.placeholder-center strong{margin-bottom:.45rem;font-size:clamp(1rem,1.5vw,1.3rem)}
.placeholder-center p{max-width:22rem;margin-bottom:1rem;color:var(--ink-soft);font-size:.83rem}
.placeholder-center code{max-width:100%;padding:.35rem .55rem;border-radius:.4rem;background:rgba(255,255,255,.74);color:var(--green-dark);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem;overflow-wrap:anywhere}
.placeholder-center small{margin-top:.6rem;color:var(--ink-soft);font-size:.65rem}
.placeholder-icon{display:grid;width:2.7rem;height:2.7rem;margin-bottom:1rem;place-items:center;border:1px solid var(--green);border-radius:50%;color:var(--green-dark);font-size:1.5rem;font-weight:400}
.screenshot-placeholder-hero{width:min(100%,20rem);aspect-ratio:9/19.5;border-color:rgba(255,255,255,.22);background-color:#dfeae3;box-shadow:var(--shadow-lg);transform:rotate(var(--hero-tilt))}
.screenshot-hero{width:min(100%,20rem);aspect-ratio:9/19.5;transform:rotate(var(--hero-tilt))}
.hero-chip-cloud{position:absolute;inset:0;z-index:5;pointer-events:none;transform:rotate(var(--hero-tilt));transform-origin:center}
.floating-chip{position:absolute;top:var(--chip-y);display:flex;max-width:11.5rem;align-items:center;gap:.55rem;padding:.48rem .7rem;border:1px solid rgba(255,255,255,.17);border-radius:var(--pill);background:rgba(18,52,42,.96);box-shadow:0 10px 30px rgba(0,0,0,.16);color:#fff;font-size:.67rem;line-height:1.15;transform:translateY(-50%) rotate(var(--hero-counter-tilt));transition:opacity .45s ease var(--chip-delay)}
.floating-chip[data-side="left"]{right:calc(50% + 8.65rem);flex-direction:row-reverse;text-align:right}
.floating-chip[data-side="right"]{left:calc(50% + 8.65rem)}
.floating-chip i{width:.42rem;height:.42rem;flex:0 0 auto;border-radius:50%;background:var(--chip-color,var(--cyan));box-shadow:0 0 0 .2rem rgba(255,255,255,.06)}
.floating-chip span{font-weight:600}
.js .hero-chip-cloud:not(.is-loaded) .floating-chip{opacity:0}
.js .hero-chip-cloud.is-loaded .floating-chip{opacity:1}
.hero-proof{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--line-dark);color:rgba(255,255,255,.68);font-size:.72rem;font-weight:600}
.hero-proof i{height:1px;flex:1;background:var(--line-dark)}

.system{padding-block:var(--space-section);background:var(--paper);scroll-snap-align:start}
.section-heading{display:grid;margin-bottom:clamp(2.5rem,5vw,4.5rem);grid-template-columns:minmax(0,1.35fr) minmax(18rem,.55fr);align-items:end;gap:clamp(2rem,7vw,7rem)}
.section-heading h2{max-width:16ch;margin-bottom:0}
.section-heading>p{margin-bottom:.35rem;color:var(--ink-soft);font-size:var(--text-sm)}
.system-flow{display:grid;margin:0 0 1.1rem;padding:0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:repeat(4,1fr);list-style:none;overflow:hidden}
.system-flow li{position:relative;display:flex;min-height:10.5rem;gap:1rem;padding:1.25rem;border-right:1px solid var(--line)}
.system-flow li:last-child{border-right:0}
.system-flow li:first-child{box-shadow:inset 0 3px 0 var(--lime)}
.system-flow li:not(:last-child)::after{position:absolute;top:50%;right:-.75rem;z-index:2;display:grid;width:1.5rem;height:1.5rem;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--green-dark);content:"→";font-size:.75rem;transform:translateY(-50%)}
.system-flow>li>span{color:var(--green-dark);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem}
.system-flow div{display:flex;flex-direction:column;justify-content:flex-end}
.system-flow b{font-size:1rem;line-height:1.25}
.system-flow small{margin-top:.45rem;color:var(--ink-soft);font-size:.7rem;line-height:1.4}
.loop-close{position:relative;display:grid;padding:clamp(2rem,5vw,4rem);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);background:var(--night-2);box-shadow:0 24px 70px rgba(11,33,27,.16);color:#fff;grid-template-columns:minmax(0,1.15fr) minmax(17rem,.85fr);align-items:center;gap:clamp(2.5rem,7vw,6rem);overflow:hidden}
.loop-close::before{position:absolute;top:-14rem;left:-10rem;width:34rem;height:34rem;border-radius:50%;background:radial-gradient(circle,rgba(120,220,223,.2),transparent 68%);content:"";pointer-events:none}
.loop-close-copy,.loop-close-outputs{position:relative;z-index:2}
.loop-close .eyebrow{margin-bottom:1.2rem;color:var(--lime);border-color:rgba(255,90,31,.55)}
.loop-close .eyebrow span{display:inline-block;animation:b72-spin 9s linear infinite}
.loop-close h3{font-size:clamp(2.1rem,3.2vw,3.3rem)}
.loop-close-copy>p:not(.eyebrow){max-width:38rem;margin:1rem 0 0;color:rgba(255,255,255,.72)}
.loop-close-outputs>p{margin-bottom:.8rem;color:var(--cyan);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

.journey{padding-block:var(--space-section);background:var(--night);color:#fff;scroll-snap-align:start}
.section-heading-light>p{color:rgba(255,255,255,.65)}
.journey-shell{overflow:hidden;border:1px solid var(--line-dark);border-radius:var(--radius-lg);background:var(--night-2);box-shadow:0 30px 90px rgba(0,0,0,.2)}
.mobile-feature-nav{display:none}
.system-map{border-bottom:1px solid var(--line-dark);background:radial-gradient(circle at 50% 52%,rgba(120,220,223,.07),transparent 32%)}
.system-map-caption{display:flex;min-height:3.75rem;align-items:center;gap:1.2rem;padding:.8rem clamp(1rem,3vw,2rem);border-bottom:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.54);font-size:.66rem}
.system-map-caption span{display:inline-flex;align-items:center;gap:.42rem}.system-map-caption i{width:.48rem;height:.48rem;border-radius:50%;background:var(--lime);box-shadow:0 0 0 .2rem rgba(199,244,91,.1)}.system-map-caption .legend-outgoing i{background:#7896a3;box-shadow:0 0 0 .2rem rgba(120,150,163,.1)}.system-map-caption .legend-incoming i{background:#bb7554;box-shadow:0 0 0 .2rem rgba(187,117,84,.1)}.system-map-caption p{margin:0 0 0 auto}
.system-map-canvas{position:relative;height:250px;overflow:hidden;isolation:isolate}
.system-map-canvas::before,.system-map-canvas::after{position:absolute;top:50%;left:50%;z-index:-1;border:1px solid rgba(255,255,255,.045);border-radius:50%;content:"";transform:translate(-50%,-50%)}.system-map-canvas::before{width:45%;height:65%}.system-map-canvas::after{width:76%;height:92%}
.map-links{position:absolute;inset:0;z-index:4;width:100%;height:100%;overflow:hidden;pointer-events:none}.map-links marker path{fill:rgba(255,255,255,.16)}.map-links #map-arrow-outgoing path{fill:#7896a3}.map-links #map-arrow-incoming path{fill:#bb7554}
.map-link{fill:none;stroke:rgba(255,255,255,.09);stroke-width:1;vector-effect:non-scaling-stroke;marker-end:url(#map-arrow);transition:opacity .2s ease,stroke .2s ease,stroke-width .2s ease}.map-link.is-muted{opacity:.13}.map-link.is-outgoing{opacity:1;stroke:#7896a3;stroke-width:1.7;marker-end:url(#map-arrow-outgoing)}.map-link.is-incoming{opacity:1;stroke:#bb7554;stroke-width:1.7;marker-end:url(#map-arrow-incoming)}
.map-node{position:absolute;z-index:3;display:inline-flex;min-width:6.8rem;min-height:2.8rem;align-items:center;justify-content:center;gap:.48rem;padding:.55rem .75rem;border:1px solid rgba(255,255,255,.16);border-radius:var(--pill);background:rgba(18,52,42,.94);color:rgba(255,255,255,.72);cursor:pointer;font-size:.73rem;transform:translate(-50%,-50%);transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s var(--ease)}
.map-node:hover{border-color:rgba(255,255,255,.35);color:#fff;transform:translate(-50%,-50%) scale(1.03)}.map-node.is-active{border-color:var(--lime);background:var(--lime);box-shadow:0 0 0 .3rem rgba(199,244,91,.09),0 8px 22px rgba(0,0,0,.16);color:var(--night)}.map-node.is-outgoing:not(.is-active){border-color:rgba(120,150,163,.72);background:#183c36;color:#fff;box-shadow:0 0 0 .18rem rgba(120,150,163,.07)}.map-node.is-incoming:not(.is-active){border-color:rgba(187,117,84,.76);background:#41362c;color:#fff;box-shadow:0 0 0 .18rem rgba(187,117,84,.06)}
.node-bag{top:14%;left:7%}.node-distance{top:26%;left:30%}.node-play{top:60%;left:30%}.node-stats{top:26%;left:70%}.node-coach{top:38%;left:50%}.node-train{top:60%;left:70%}.node-swing{top:14%;left:93%}.node-fitting{top:82%;left:50%}.node-knowledge{top:86%;left:93%}.node-simulator{top:86%;left:7%}
.feature-panel{display:grid;min-height:41rem;grid-template-columns:minmax(18rem,.78fr) minmax(21rem,1.22fr);transition:opacity .18s ease,transform .18s var(--ease)}
.feature-panel.is-changing{opacity:0;transform:translateY(.5rem)}
.feature-panel.is-landscape{grid-template-columns:minmax(18rem,.72fr) minmax(25rem,1.28fr)}
.feature-media{display:grid;grid-column:2;grid-row:1;place-items:center;padding:clamp(1.5rem,4vw,3.5rem);border-left:1px solid var(--line-dark);background:rgba(7,30,24,.2)}
.screenshot-placeholder-feature{width:min(100%,18rem);height:auto;min-height:0;aspect-ratio:9/19.5;border-color:rgba(255,255,255,.18);border-radius:1.7rem;box-shadow:0 22px 60px rgba(0,0,0,.2)}
.feature-panel.is-landscape .screenshot-placeholder-feature{width:min(100%,42rem);aspect-ratio:16/9;border-radius:1.35rem}
.feature-copy{display:flex;grid-column:1;grid-row:1;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4.5rem)}
.feature-kicker{margin-bottom:.9rem;color:var(--cyan);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.feature-copy h3{max-width:12ch;font-size:clamp(2rem,3.2vw,3.45rem)}
.feature-copy>p:not(.feature-kicker){color:rgba(255,255,255,.68);font-size:var(--text-sm)}
.feature-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.1rem 0 0;padding:0;list-style:none}
.feature-tags li{padding:.38rem .62rem;border:1px solid var(--line-dark);border-radius:var(--pill);color:rgba(255,255,255,.72);font-size:.63rem}
.no-script-journey{margin-top:1rem;padding:1.5rem;border:1px solid var(--line-dark);border-radius:var(--radius-md);background:var(--night-2)}
.no-script-journey h3:not(:first-child){margin-top:2rem}.no-script-connections{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;font-size:.8rem}.no-script-connections dt{font-weight:700}.no-script-connections dd{margin:0;color:rgba(255,255,255,.68)}

.coach-outputs{display:flex;flex-direction:column;margin:0;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);list-style:none;overflow:hidden}
.coach-outputs li{display:flex;align-items:center;gap:.75rem;padding:.95rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.14);font-size:.82rem;font-weight:600}
.coach-outputs li:last-child{border-bottom:0}
.coach-outputs li::before{flex:0 0 auto;width:.45rem;height:.45rem;background:var(--lime);content:""}

.install{padding-block:var(--space-section);background:var(--night);color:#fff;scroll-snap-align:start}
.install-grid{display:grid;grid-template-columns:1.2fr .55fr;align-items:center;gap:clamp(3rem,9vw,9rem)}
.install h2{max-width:13ch;color:var(--lime)}
.install-copy>p:not(.eyebrow){max-width:38rem;color:rgba(255,255,255,.7)}
.store-buttons{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.store-button{position:relative;display:flex;min-width:12rem;min-height:4.2rem;align-items:center;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.34);border-radius:var(--radius-sm);background:#102b23;color:#fff;cursor:not-allowed}
.store-button>span{display:flex;flex-direction:column}.store-button small{font-size:.5rem;letter-spacing:.06em}.store-button b{font-size:1rem}
.store-button i{position:absolute;top:.35rem;right:.4rem;color:rgba(255,255,255,.45);font-size:.48rem;font-style:normal}
.install-mark{display:flex;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:radial-gradient(circle,rgba(199,244,91,.12),transparent 66%)}
.install-mark small{color:var(--cyan);font-size:.6rem;letter-spacing:.12em}.install-mark strong{color:var(--lime);font-size:clamp(7rem,15vw,12rem);line-height:.8;letter-spacing:-.12em;transform:translateX(-.06em)}.install-mark span{margin-top:1.2rem;color:rgba(255,255,255,.6);font-size:.7rem;text-transform:uppercase}

.site-footer{padding-block:3rem;border-top:1px solid var(--line-dark);background:var(--night);color:#fff;scroll-snap-align:start}
.footer-grid{display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:start;gap:2rem}
.footer-grid>p{max-width:26rem;margin-bottom:0;color:rgba(255,255,255,.58);font-size:.78rem}
.footer-links{display:flex;justify-content:flex-end;gap:1.2rem}
.footer-links a{display:flex;min-height:2.75rem;align-items:center;color:rgba(255,255,255,.72);font-size:.72rem;font-weight:600;text-decoration:none}.footer-links a:hover{color:var(--lime)}
.copyright{grid-column:1/-1;padding-top:1.5rem;border-top:1px solid var(--line-dark)}

.site-dialog{width:min(calc(100% - 2rem),42rem);max-height:min(88svh,54rem);padding:0;border:0;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:0 35px 120px rgba(0,0,0,.35);overflow:hidden}
.site-dialog-wide{width:min(calc(100% - 2rem),62rem)}
.site-dialog::backdrop{background:rgba(5,20,15,.72);backdrop-filter:blur(6px)}
.site-dialog:target:not([open]){position:fixed;inset:5vh auto auto 50%;z-index:150;display:block;max-height:90vh;transform:translateX(-50%)}
.dialog-shell{max-height:inherit;overflow-y:auto;overscroll-behavior:contain}
.dialog-header{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}
.dialog-header h2{margin:0;font-size:2.2rem}.dialog-kicker{margin-bottom:.2rem;color:var(--green-dark);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.dialog-close{display:grid;width:2.8rem;height:2.8rem;flex:0 0 auto;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface-soft);color:var(--ink);cursor:pointer;font-size:1.6rem;line-height:1;text-decoration:none}.dialog-close:hover{background:var(--sky)}
.dialog-status{display:flex;gap:.8rem;margin:1.5rem 1.5rem 0;padding:1rem;border:1px solid #b4ddd2;border-radius:var(--radius-sm);background:var(--sky);font-size:.75rem}.dialog-status b{flex:0 0 auto;color:var(--green-dark)}
.dialog-status-warning{border-color:#e7c6ad;background:#fff4eb}.dialog-status-warning b{color:#8d4c21}
.legal-grid{display:grid;padding:1.5rem;grid-template-columns:1fr 1fr;gap:1rem}.legal-section{padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.legal-section-wide{grid-column:1/-1}.legal-section h3{margin-bottom:.35rem;font-size:1.15rem;letter-spacing:-.02em}.legal-reference{color:var(--green-dark);font-size:.64rem;font-weight:600}.legal-section dl{display:grid;margin:1rem 0 0;grid-template-columns:minmax(8rem,.7fr) 1fr;gap:.55rem 1rem;font-size:.7rem}.legal-section dt{color:var(--ink-soft);font-weight:600}.legal-section dd{margin:0;font-weight:600}.legal-section>p:not(.legal-reference){margin-bottom:0;color:var(--ink-soft);font-size:.75rem}.legal-note{margin-top:.7rem!important;padding-top:.7rem;border-top:1px solid var(--line);color:#7c4330!important}

.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(1rem);transition:opacity .65s var(--ease),transform .65s var(--ease)}.js .reveal.is-visible{opacity:1;transform:none}

@media(max-width:64rem){
  .hero-grid{grid-template-columns:1fr minmax(23rem,.75fr);gap:3rem}.hero-media{min-height:34rem}.screenshot-placeholder-hero{width:18rem}
  .map-node{min-width:6rem}
}

@media(max-width:52rem){
  .header-inner{grid-template-columns:1fr auto}.main-nav{display:none}
  .hero-grid{min-height:auto;grid-template-columns:1fr;padding-top:5rem}.hero h1{max-width:12ch}.hero-media{min-height:42rem}.screenshot-placeholder-hero{width:min(100%,19rem)}
  .section-heading{grid-template-columns:1fr;gap:1.2rem}.section-heading>p{max-width:40rem}
  .system-flow{grid-template-columns:1fr 1fr}.system-flow li:nth-child(2){border-right:0}.system-flow li:nth-child(-n+2){border-bottom:1px solid var(--line)}.system-flow li:nth-child(2)::after{display:none}
  .feature-panel,.feature-panel.is-landscape{min-height:0;grid-template-columns:1fr}.feature-copy{grid-column:1;grid-row:1}.feature-media{grid-column:1;grid-row:2;padding:2rem;border-top:1px solid var(--line-dark);border-left:0}.screenshot-placeholder-feature{width:min(100%,17rem)}.feature-panel.is-landscape .screenshot-placeholder-feature{width:min(100%,38rem)}
  .loop-close{grid-template-columns:1fr;gap:2rem}
  .install-grid{grid-template-columns:1fr}.install-mark{width:min(100%,26rem);margin-inline:auto}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-links{grid-column:1/-1;justify-content:flex-start}
}

@media(max-width:40rem){
  :root{--space-section:4.5rem}
  .grid-shell,.header-inner{width:min(calc(100% - 2rem),var(--content))}.header-inner{min-height:4.5rem}.brand img{width:7.4rem}.header-inner .header-actions .button{min-height:2.75rem;padding-inline:.8rem}
  .hero{padding-top:4.5rem}.hero-grid{padding-block:3.8rem 2.5rem}.hero-lede{font-size:1.05rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.hero-facts{display:grid;gap:.55rem}
  .hero-media{min-height:auto;padding:1.5rem 1.25rem 2.5rem}.screenshot-placeholder-hero{width:min(100%,15rem);aspect-ratio:9/19.5;border-radius:1.5rem}.hero-media{display:flex;flex-direction:column}.hero-chip-cloud{position:static;display:grid;width:100%;margin-top:1.25rem;grid-template-columns:1fr 1fr;gap:.5rem;pointer-events:auto;transform:none}.floating-chip,.floating-chip[data-side="left"],.floating-chip[data-side="right"]{position:relative;inset:auto;top:auto;right:auto;left:auto;max-width:none;min-width:0;flex-direction:row;justify-content:flex-start;text-align:left;transform:none}.hero-proof{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.hero-proof i{display:none}
  .system-flow{grid-template-columns:1fr}.system-flow li{min-height:7.5rem;border-right:0!important;border-bottom:1px solid var(--line)}.system-flow li:last-child{border-bottom:0}.system-flow li::after{display:none!important}
  .loop-close{padding:1.5rem}.loop-close h3{font-size:2.15rem}
  .system-map{display:none}.mobile-feature-nav{display:grid;padding:1.25rem;border-bottom:1px solid var(--line-dark);background:linear-gradient(135deg,rgba(120,220,223,.07),rgba(199,244,91,.035));gap:.55rem}.mobile-feature-nav label{color:var(--cyan);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.mobile-feature-nav select{width:100%;min-height:3.25rem;padding:.75rem 2.8rem .75rem 1rem;border:1px solid rgba(120,220,223,.38);border-radius:.85rem;background:var(--night-2);color:#fff;cursor:pointer;font-weight:600}.mobile-feature-nav small{color:rgba(255,255,255,.52);font-size:.68rem}.feature-media{padding:1.5rem}.screenshot-placeholder-feature{width:min(100%,15rem);border-radius:1.45rem}.feature-panel.is-landscape .screenshot-placeholder-feature{width:100%;border-radius:1rem}.feature-copy{padding:1.75rem}.feature-copy h3{font-size:2.15rem}
  .store-buttons{flex-direction:column}.store-button{width:100%}.install-mark{max-width:20rem}
  .footer-grid{grid-template-columns:1fr}.footer-links{grid-column:1;flex-wrap:wrap}.copyright{grid-column:1}
  .site-dialog,.site-dialog-wide{width:100%;max-width:none;max-height:92svh;margin:0;border-radius:1.5rem 1.5rem 0 0}.site-dialog[open]{position:fixed;inset:auto 0 0}.site-dialog:target:not([open]){inset:auto 0 0;transform:none}.dialog-header{padding:1.1rem}.dialog-status{flex-direction:column;margin:1rem 1rem 0}.legal-grid{padding:1rem;grid-template-columns:1fr}.legal-section-wide{grid-column:1}.legal-section dl{grid-template-columns:1fr;gap:.15rem}.legal-section dd{margin-bottom:.55rem}
}

@media(max-width:23rem){.header-inner .header-actions .button{display:none}.header-inner{grid-template-columns:1fr}.hero h1{font-size:2.8rem}.placeholder-center{padding:1.25rem}.map-node{min-width:4.75rem;padding-inline:.35rem;font-size:.6rem}.map-node span{display:none}.node-bag{left:15%}.node-play{left:85%}.node-stats,.node-coach{left:86%}.node-fitting,.node-knowledge,.node-simulator{left:14%}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal,.js .reveal,.js .floating-chip{opacity:1;transform:none}.button:hover{transform:none}}

@media print{.site-header,.ambient,.floating-chip{display:none}.hero{padding-top:0}.reveal,.js .reveal{opacity:1;transform:none}.site-dialog{display:none!important}*{box-shadow:none!important}}

/* ============================================================
   Enhancements — living signal map, looped process, ambient
   (all motion below is disabled by the reduced-motion rule above)
   ============================================================ */

@keyframes b72-drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-2.4rem,1.6rem,0)}}
@keyframes b72-drift-2{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(2rem,-1.8rem,0)}}
@keyframes b72-flow{to{stroke-dashoffset:-20}}
@keyframes b72-node-pulse{0%,100%{box-shadow:0 0 0 .3rem rgba(199,244,91,.10),0 8px 22px rgba(0,0,0,.16)}50%{box-shadow:0 0 0 .6rem rgba(199,244,91,.16),0 8px 26px rgba(0,0,0,.22)}}

/* Hero atmosphere breathes */
.ambient-one{will-change:transform;animation:b72-drift 19s var(--ease) infinite}
.ambient-two{will-change:transform;animation:b72-drift-2 23s var(--ease) infinite}

/* Signature: current flowing along the active connections */
.map-link.is-outgoing,.map-link.is-incoming{stroke-dasharray:3 7;animation:b72-flow 1.1s linear infinite}
.map-node.is-active{animation:b72-node-pulse 2.4s ease-in-out infinite}

/* The improvement loop reads as a numbered, closing cycle */
.system-flow li{flex-direction:column}
.system-flow li>div{flex:1}
.system-flow>li>span{font-size:.82rem;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}
@keyframes b72-spin{to{transform:rotate(360deg)}}

/* ============================================================
   BOLD REDESIGN — "Yardage Book Brutalism"
   Condensed display type · flag-orange signal · hard flat edges
   · kinetic feature marquee · app-style bottom dock nav.
   Cascades over the base via redefined tokens.
   ============================================================ */

:root{
  --ink:#12211a;--ink-soft:#5b6b62;
  --night:#0b1611;--night-2:#122a1f;
  --paper:#ece7d8;--surface:#fbf9f2;--surface-soft:#e3dfcf;
  --lime:#ff5a1f;                 /* SIGNAL — flag orange replaces acid lime */
  --green:#0ba45b;--green-dark:#0a7d4f;
  --line:rgba(18,33,26,.9);--line-dark:rgba(255,255,255,.8);
  --radius-sm:2px;--radius-md:3px;--radius-lg:4px;--pill:4px;   /* flatten all corners */
  --display:"Bebas Neue","Work Sans",Arial,sans-serif;
}

/* Oversized condensed uppercase display */
h1,h2,h3,.install-mark strong,.marquee-track span{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:.92}
.hero h1{font-weight:400;letter-spacing:.01em}
.eyebrow,.feature-kicker{width:fit-content;border:2px solid currentColor;padding:.34rem .6rem}

/* Hard-edged buttons */
.button{border-width:2px;font-family:var(--display);font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase}
.button-primary{border-color:var(--ink)}
.button-secondary{border-color:rgba(255,255,255,.7)}

/* Flat, hard-bordered surfaces */
.system-flow,.loop-close,.journey-shell,.system-flow li,.map-node,.coach-outputs,.store-button,.install-mark,.site-dialog{border-width:2px}
.system-flow li{border-right-width:2px}
.map-node{border-color:rgba(255,255,255,.4)}
.map-node.is-active{background:var(--lime);color:var(--night);border-color:var(--lime)}
.system-flow>li>span{color:var(--lime);font-family:var(--display);font-size:1.5rem}

/* Feature marquee — the sheer breadth, in motion */
.feature-marquee{overflow:hidden;border-block:2px solid var(--ink);background:var(--night)}
.marquee-track{display:flex;width:max-content;will-change:transform;animation:b72-marquee 42s linear infinite}
.marquee-track span{display:inline-flex;align-items:center;gap:1rem;padding:.85rem 1.35rem;color:#fff;font-size:1.5rem;white-space:nowrap}
.marquee-track span::after{content:"";width:.4rem;height:.4rem;background:var(--lime)}
@keyframes b72-marquee{to{transform:translateX(-50%)}}
.feature-marquee:hover .marquee-track{animation-play-state:paused}

/* App-style bottom dock — the site navigates like the app */
.main-nav{display:none}
body{padding-bottom:6rem}
.app-dock{position:fixed;inset:auto 0 1rem;z-index:120;display:flex;width:fit-content;max-width:calc(100% - 1.5rem);margin-inline:auto;padding:.4rem;gap:.25rem;border:2px solid var(--ink);border-radius:4px;background:var(--surface);box-shadow:0 14px 40px rgba(11,22,17,.28)}
.app-dock a{display:flex;min-width:4.6rem;min-height:3.1rem;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.35rem .5rem;border-radius:2px;color:var(--ink);font-size:.6rem;font-weight:700;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;transition:background .15s ease,color .15s ease}
.app-dock a svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app-dock a:hover{background:var(--surface-soft)}
.app-dock a.is-current{background:var(--ink);color:var(--surface)}
.app-dock a.app-dock-cta{background:var(--lime);color:var(--ink)}
.app-dock a.app-dock-cta:hover{background:#ff6f3b}

@media(max-width:52rem){.app-dock{inset:auto .75rem .75rem;width:auto;justify-content:space-between}.app-dock a{flex:1;min-width:0}}
@media print{.feature-marquee,.app-dock{display:none}body{padding-bottom:0}}

/* ---- Refinements: single nav, live loop, mobile map ---- */

/* Top bar retracts once you scroll down; the dock is the primary nav */
.site-header{transition:transform .3s var(--ease),border-color .25s ease,background .25s ease}
.site-header.is-hidden{transform:translateY(-100%)}

/* Feedback loop runs itself — a spotlight travels 1 → 2 → 3 → 4, forever */
.system-flow li{animation:b72-step 8s linear infinite}
.system-flow li:nth-child(1){animation-delay:0s}
.system-flow li:nth-child(2){animation-delay:2s}
.system-flow li:nth-child(3){animation-delay:4s}
.system-flow li:nth-child(4){animation-delay:6s}
@keyframes b72-step{0%,20%{background:color-mix(in srgb,var(--lime) 15%,transparent)}22%,100%{background:transparent}}
.system-flow>li>span{animation:b72-step-num 8s linear infinite}
.system-flow li:nth-child(2)>span{animation-delay:2s}
.system-flow li:nth-child(3)>span{animation-delay:4s}
.system-flow li:nth-child(4)>span{animation-delay:6s}
@keyframes b72-step-num{0%,20%{color:var(--lime);transform:scale(1.14)}22%,100%{color:var(--green-dark);transform:none}}
.system-flow>li>span{display:inline-block;transform-origin:left center}

/* Mobile: bring the connection map back. Tap a node — its links light up
   (outgoing / incoming node colours) and its detail appears just below. */
@media(max-width:40rem){
  .mobile-feature-nav{display:none!important}
  .system-map{display:block}
  .map-links{display:none}
  .system-map-canvas{height:26rem}
  .map-node{min-width:5rem;padding:.5rem .55rem;font-size:.66rem}
  .node-bag{top:9%;left:24%}.node-distance{top:15%;left:74%}
  .node-play{top:30%;left:26%}.node-stats{top:36%;left:76%}
  .node-coach{top:52%;left:50%}
  .node-swing{top:63%;left:24%}.node-train{top:69%;left:74%}
  .node-fitting{top:82%;left:48%}
  .node-simulator{top:89%;left:22%}.node-knowledge{top:91%;left:76%}
  .system-map-caption{flex-wrap:wrap;gap:.5rem 1rem}.system-map-caption p{margin-left:0}
}

/* ---- Signal accent: teal (rangefinder) ---- */
:root{--lime:#159a96}
.button-primary{box-shadow:0 8px 24px rgba(21,154,150,.22)}
.button-primary:hover{background:#1bb3ad;box-shadow:0 12px 30px rgba(21,154,150,.3)}
.signal-dot{box-shadow:0 0 0 .28rem rgba(21,154,150,.16)}
.map-node.is-active{box-shadow:0 0 0 .3rem rgba(21,154,150,.14),0 8px 22px rgba(0,0,0,.18)}
@keyframes b72-node-pulse{0%,100%{box-shadow:0 0 0 .3rem rgba(21,154,150,.14),0 8px 22px rgba(0,0,0,.16)}50%{box-shadow:0 0 0 .6rem rgba(21,154,150,.2),0 8px 26px rgba(0,0,0,.22)}}

/* ---- Brand returns to the dock while the top bar is retracted ---- */
.app-dock a.app-dock-brand{min-width:0;flex:0 0 auto;overflow:hidden;max-width:0;padding-inline:0;background:var(--night);border-radius:2px;opacity:0;transition:max-width .3s var(--ease),opacity .25s ease,padding .3s var(--ease)}
.app-dock a.app-dock-brand img{width:5.4rem;height:auto}
.app-dock.show-brand a.app-dock-brand{max-width:7rem;padding-inline:.65rem;opacity:1}
@media(max-width:52rem){.app-dock a.app-dock-brand{display:none}}
