:root{
  --ground:#0b160d;--surface:#122115;--ink:#f1f4f1;--muted:#a9bcad;
  --accent:#55f172;--on-accent:#111111;--accent-2:#63eed9;--on-accent-2:#111111;
  --line:#26402b;--font-display:"IBM Plex Sans Hebrew",sans-serif;--font-text:"IBM Plex Sans Hebrew",sans-serif;
  --h1-weight:600;--h2-weight:500;--h1:clamp(2.6rem,6.2vw,5.4rem);--h1-lh:1.08;--h1-track:-0.015em;
  --r-sm:14px;--r-md:24px;--r-lg:36px;--r-btn:16px;--border:1px solid var(--line);
  --shadow:0 24px 50px -28px rgba(0,0,0,.4);--ease:cubic-bezier(.16,.84,.24,1);--dur:1200ms;
  --section-pad:clamp(88px,14vw,176px);--body:clamp(17px,.35vw + 16px,20px);--body-lh:1.75;--gap:clamp(28px,5vw,72px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font:400 var(--body)/var(--body-lh) var(--font-text);letter-spacing:0;overflow-x:hidden}
img{max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--h2-weight);letter-spacing:var(--h1-track);text-wrap:balance;margin:0}
p{max-width:38em}

body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}

.js .rv{opacity:0;transition:opacity var(--dur) var(--ease)}
.js .rv.in{opacity:1}
.js .rv-img{transform:scale(1.08);transition:transform 1600ms var(--ease)}
.js .in .rv-img{transform:none}
@media (prefers-reduced-motion:reduce){.js .rv,.js .rv-img{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;inset-inline:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:16px clamp(16px,4vw,48px);background:linear-gradient(to bottom,rgba(11,22,13,.85),transparent);overflow:hidden}
.nav__name{flex:none;min-width:0;font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:.02em}
.nav__cta{flex:none;min-width:0;max-width:62vw;overflow:hidden;text-overflow:ellipsis;background:var(--accent);color:var(--on-accent);padding:.55em 1.1em;border-radius:var(--r-btn);font-weight:600;font-size:.92rem;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow);transition:transform .25s var(--ease)}
.nav__cta:hover{transform:translateY(-2px)}
@media (max-width:420px){.nav__cta{font-size:.72rem;padding:.5em .75em;max-width:52vw}.nav__name{font-size:.98rem}}

.dotnav{position:fixed;z-index:50;top:50%;inset-inline-end:22px;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px}
.dotnav a{width:9px;height:9px;border-radius:50%;background:var(--line);display:block;transition:background .3s,transform .3s}
.dotnav a.active{background:var(--accent);transform:scale(1.4)}
@media (max-width:760px){.dotnav{display:none}}

/* ---------- hero: scroll-expand-media ---------- */
.fx-expand{height:240vh;position:relative}
.fx-expand__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center;background:var(--ground)}
.fx-expand__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:calc(1 - var(--p,0) * 1.15)}
.fx-expand__bg::after{content:""}
.fx-expand__media{position:relative;z-index:1;overflow:hidden;
  width:calc(300px + (100vw - 300px) * var(--p,0));
  height:calc(400px + (100svh - 400px) * var(--p,0));
  max-width:100vw;max-height:100svh;
  border-radius:calc(var(--r-lg) * (1 - var(--p,0)));box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}
.fx-expand__media img{width:100%;height:100%;object-fit:cover;display:block}
.fx-expand__media::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,calc(.3 + var(--p,0)*.25))}
.fx-expand__title{position:absolute;z-index:2;inset-inline:0;top:50%;margin:0;transform:translateY(-50%);
  display:flex;justify-content:center;gap:.3em;color:var(--ink);
  font:var(--h1-weight) var(--h1)/1 var(--font-display);text-shadow:0 2px 30px rgba(0,0,0,.55);pointer-events:none}
.fx-expand__title .fx-a{transform:translateX(calc(var(--p,0) * 30vw))}
.fx-expand__title .fx-b{transform:translateX(calc(var(--p,0) * -30vw));color:var(--accent)}
.fx-expand__hint{position:absolute;z-index:2;bottom:6vh;inset-inline:0;margin:0;text-align:center;color:var(--muted);letter-spacing:.04em;opacity:calc(1 - var(--p,0) * 4)}
.fx-expand.is-open{height:100vh;height:100svh;--p:1}
.fx-expand.is-open .fx-expand__stage{position:relative}
@media (max-width:640px){
  .fx-expand__title{flex-direction:column;align-items:center;gap:.1em;padding-inline:18px;width:100%;box-sizing:border-box}
  .fx-expand__title .fx-a,.fx-expand__title .fx-b{display:block;width:100%;text-align:center;white-space:normal;overflow-wrap:break-word}
  .fx-expand__title .fx-a{transform:translateY(calc(var(--p,0) * -18vh))}
  .fx-expand__title .fx-b{transform:translateY(calc(var(--p,0) * 18vh))}
}
@media (max-width:420px){.fx-expand__title{font-size:2.1rem}}

/* ---------- chapters ---------- */
.chapter{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:var(--section-pad) clamp(20px,6vw,88px);scroll-snap-align:start}
.chapter__num{position:absolute;top:clamp(28px,5vw,56px);inset-inline-start:clamp(20px,6vw,88px);
  font-family:var(--font-display);font-size:clamp(3rem,8vw,6rem);font-weight:300;color:var(--line);line-height:1;user-select:none}
.chapter__kicker{color:var(--accent-2);font-weight:600;font-size:.85rem;letter-spacing:.08em;margin-bottom:.8em}
.chapter__title{font-size:clamp(1.9rem,4.2vw,3.2rem);max-width:22em}
.chapter__lede{color:var(--muted);font-size:1.05rem;margin-top:1em;max-width:34em}

/* ---------- horizontal scroll gallery ---------- */
.fx-hscroll{position:relative;scroll-snap-align:start}
.fx-hscroll__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3vh}
.fx-hscroll__kicker{padding-inline:clamp(20px,4vw,88px);color:var(--accent-2);font-weight:600;font-size:.85rem;letter-spacing:.08em}
.fx-hscroll__title{margin:0;padding-inline:clamp(20px,4vw,88px);font:var(--h2-weight) clamp(1.8rem,4vw,3.2rem)/1.05 var(--font-display)}
.fx-hscroll__track{display:flex;gap:clamp(14px,2vw,28px);padding-inline:clamp(20px,4vw,88px);will-change:transform;direction:ltr}
.fx-hscroll__track figure{flex:none;width:clamp(240px,34vw,460px);margin:0;direction:rtl}
.fx-hscroll__track img{display:block;width:100%;height:56vh;object-fit:cover;border-radius:var(--r-lg)}
.fx-hscroll__track figcaption{margin-top:.6em;font-size:.95rem;color:var(--muted)}
.fx-hscroll.is-native{height:auto!important}
.fx-hscroll.is-native .fx-hscroll__sticky{position:static;height:auto;overflow:visible}
.fx-hscroll.is-native .fx-hscroll__track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;direction:rtl;transform:none!important}
.fx-hscroll.is-native figure{scroll-snap-align:center}

/* ---------- pricing rows ---------- */
.pricelist{margin-top:clamp(32px,5vw,56px);width:100%;max-width:56em;border-top:var(--border)}
.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:clamp(22px,3vw,34px) 0;border-bottom:var(--border)}
.price-row__text{max-width:32em}
.price-row__name{font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.6rem);font-weight:500}
.price-row__desc{color:var(--muted);margin-top:.35em;font-size:.95rem}
.price-row__amount{font-variant-numeric:tabular-nums;font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:600;white-space:nowrap;color:var(--accent)}
.price-row__amount small{display:block;font-size:.55em;color:var(--muted);font-weight:400;text-align:end}

/* ---------- programs ---------- */
.programs{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-top:clamp(32px,5vw,56px);width:100%}
@media (max-width:860px){.programs{grid-template-columns:1fr}}
.program{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--surface)}
.program img{width:100%;height:100%;object-fit:cover;display:block}
.program__shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,10,6,.92) 10%,rgba(5,10,6,.25) 55%,transparent)}
.program__text{position:absolute;inset-inline:0;bottom:0;padding:clamp(20px,3vw,32px)}
.program__text h3{font-size:clamp(1.3rem,2.4vw,1.8rem);color:var(--ink)}
.program__text p{color:var(--muted);font-size:.95rem;margin-top:.5em}

/* ---------- trial cta ---------- */
.trial{align-items:center;text-align:center}
.trial__title{max-width:28em;margin-inline:auto}
.trial__btn{margin-top:clamp(28px,4vw,40px);display:inline-flex;align-items:center;gap:.6em;
  background:var(--accent);color:var(--on-accent);padding:1em 2em;border-radius:var(--r-btn);
  font-weight:600;font-size:1.05rem;text-decoration:none;box-shadow:var(--shadow);transition:transform .25s var(--ease)}
.trial__btn:hover{transform:translateY(-3px)}
.trial__note{margin-top:1.2em;color:var(--muted);font-size:.92rem}

/* ---------- about ---------- */
.about{flex-direction:row;align-items:center;gap:var(--gap)}
@media (max-width:860px){.about{flex-direction:column;align-items:flex-start}}
.about__img{flex:1 1 42%;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3}
.about__img img{width:100%;height:100%;object-fit:cover;display:block}
.about__text{flex:1 1 52%}

/* ---------- visit ---------- */
.visit{gap:var(--gap)}
.visit__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);margin-top:clamp(28px,4vw,48px);width:100%;max-width:60em}
@media (max-width:760px){.visit__grid{grid-template-columns:1fr}}
.visit__item h3{font-size:1.05rem;color:var(--accent-2);font-weight:600}
.visit__item p{color:var(--muted);margin-top:.5em;font-size:.95rem}
.visit__item a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent)}
.visit__btn{margin-top:clamp(28px,4vw,40px);display:inline-flex;align-items:center;gap:.6em;
  background:transparent;color:var(--ink);border:1.5px solid var(--accent);padding:.9em 1.8em;border-radius:var(--r-btn);
  font-weight:600;text-decoration:none;transition:background .25s var(--ease)}
.visit__btn:hover{background:rgba(85,241,114,.1)}

/* ---------- footer ---------- */
footer{padding:28px clamp(20px,6vw,88px) 40px;color:var(--muted);font-size:.78rem;border-top:var(--border);text-align:center}
footer a{color:var(--accent-2);text-decoration:underline}

/* svg line icon */
.ico{width:1.1em;height:1.1em;flex:none;stroke:currentColor;fill:none;stroke-width:1.6}
