/* Integración exclusiva de la página Nuestra filosofía. */
html:has(> body.nutryt-filosofia-page) { overflow-x:hidden; overscroll-behavior-x:none; }
body.nutryt-filosofia-page { overflow-x:clip; }
body.nutryt-filosofia-page #masthead,
body.nutryt-filosofia-page #ast-fixed-header,
body.nutryt-filosofia-page .ast-mobile-popup-drawer,
body.nutryt-filosofia-page #colophon,
body.nutryt-filosofia-page .nf-wrapper,
body.nutryt-filosofia-page #ast-scroll-top { display:none !important; }
body.nutryt-filosofia-page.admin-bar .home-return { top:calc(48px + env(safe-area-inset-top,0px)); }
@media(max-width:782px) { body.nutryt-filosofia-page.admin-bar .home-return { top:calc(62px + env(safe-area-inset-top,0px)); } }
body.nutryt-filosofia-page #content > .ast-container {
  display: block;
  width: 100%;
  max-width: none;
  padding: 0;
}
body.nutryt-filosofia-page #primary,
body.nutryt-filosofia-page .site-main,
body.nutryt-filosofia-page article,
body.nutryt-filosofia-page .entry-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.nutryt-filosofia-page .entry-header { display: none; }
body.nutryt-filosofia-page .entry-content > .nutryt-philosophy-v2 { margin: 0; }

/* Standalone document shell; never applied to WordPress body. */
html:has(> body.filosofia-preview) { overflow-x:hidden; overscroll-behavior-x:none; }
body.filosofia-preview { margin:0; background:#fff; overflow-x:clip; }
@scope (.nutryt-philosophy-v2) {
:scope {
  --ink:#2b1736;
  --muted:#716678;
  --purple:#ab45bf;
  --purple-deep:#6a2c78;
  --purple-soft:#f4ebf7;
  --green:#8dd317;
  --green-deep:#5f9414;
  --green-soft:#eef7df;
  --paper:#fff;
  --cream:#fbfafc;
  --line:rgba(43,23,54,.11);
  --shadow:0 28px 70px rgba(43,23,54,.12);
  --max:1180px;
}

*,*::before,*::after { box-sizing:border-box; }
:scope { scroll-behavior:auto; background:#fff; }
:scope { margin:0; overflow-x:hidden; color:var(--ink); background:#fff; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
img,svg { display:block; max-width:100%; }
img { height:auto; }
figure,p,h1,h2,ol,ul { margin-top:0; }
a { color:inherit; }
.skip-link { position:fixed; left:12px; top:12px; z-index:1000; padding:.65rem .9rem; border-radius:999px; color:var(--ink); background:#fff; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.home-return { position:fixed; top:calc(16px + env(safe-area-inset-top,0px)); left:calc(18px + env(safe-area-inset-left,0px)); z-index:100; display:inline-flex; align-items:center; min-height:44px; padding:10px 12px; border:0; background:none; mix-blend-mode:difference; font:400 11px/1.2 Inter,system-ui,sans-serif; text-decoration:none; transition:opacity .4s; }
.home-return:link,.home-return:visited,.home-return:hover,.home-return:active { color:#fff; }
.home-return:hover { opacity:.7; }
.home-return:focus-visible { outline:2px solid #c8a8d5; outline-offset:4px; }
:scope { position:relative; overflow:clip; isolation:isolate; }
.story-atmosphere { position:fixed; inset:0; z-index:-1; pointer-events:none; background:#030205; visibility:hidden; }
.story-atmosphere::before { content:""; position:absolute; inset:0; opacity:var(--opening-light,1); background:radial-gradient(circle at 76% 44%,#291332 0%,#120817 40%,transparent 82%); }
.story-atmosphere::after { content:""; position:absolute; inset:0; opacity:var(--closing-light,0); background:radial-gradient(circle at 50% 42%,#24102c 0%,#100617 48%,transparent 82%); }
:scope.atmosphere-active { --hero-bg:transparent; --closing-bg:transparent; --canvas-bg:transparent; }
:scope.atmosphere-active .story-atmosphere { visibility:visible; }
:scope h1,:scope h2 { color:inherit; margin-bottom:1.35rem; font-family:Georgia,"Times New Roman",serif; font-weight:500; letter-spacing:-.055em; line-height:.96; text-wrap:balance; }
h1 em,h2 em { color:var(--purple); font-style:normal; }
h2 { font-size:clamp(3rem,5.45vw,5.85rem); }
p { line-height:1.72; }
.eyebrow,.chapter-number { display:flex; align-items:center; gap:.72rem; margin-bottom:1.25rem; color:var(--purple); font-size:.67rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow > span { width:34px; height:1px; background:currentColor; }
.eyebrow b,.chapter-number span { display:inline-block; position:relative; font:inherit; letter-spacing:inherit; }
.eyebrow b { --sheen-base:var(--purple); }
.chapter-number span { --sheen-base:var(--muted); }
.eyebrow b::after,.chapter-number span::after { content:attr(data-sheen); position:absolute; inset:0; pointer-events:none; color:transparent; opacity:0; background-image:linear-gradient(105deg,transparent 0 35%,#f8dfff 46%,#fff 50%,#dca9e7 54%,transparent 65% 100%); background-size:240% 100%; background-position:110% 0; background-clip:text; -webkit-background-clip:text; }
.eyebrow b.label-sheen::after,.chapter-number span.label-sheen::after { opacity:1; animation:labelSheen 1.15s cubic-bezier(.22,.61,.36,1) 1; }
@keyframes labelSheen { to { background-position:-35% 0; } }
.eyebrow.centered { justify-content:center; }
.chapter-number span { color:var(--muted); }
.chapter-number::after { content:""; width:38px; height:1px; background:var(--line); }

/* Opening scene */
.hero { min-height:100svh; position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr); align-items:center; gap:clamp(1rem,4vw,4rem); padding:clamp(5rem,8vw,8rem) max(5vw,calc((100vw - var(--max))/2)); overflow:hidden; color:#fff; background:var(--hero-bg,#030205 radial-gradient(circle at 76% 44%,#291332 0%,#120817 40%,#030205 82%)); }
.hero::before { content:""; position:absolute; inset:-16%; z-index:-2; opacity:.34; background-image:radial-gradient(circle,rgba(255,255,255,.38) 0 1px,transparent 1.35px),radial-gradient(circle,rgba(171,69,191,.38) 0 1px,transparent 1.5px),radial-gradient(circle,rgba(141,211,23,.2) 0 .8px,transparent 1.25px); background-size:71px 71px,113px 113px,167px 167px; background-position:0 0,31px 45px,82px 23px; animation:ambientDrift 38s linear infinite; mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 78%,transparent); }
@keyframes ambientDrift { to { background-position:52px 74px,7px 103px,129px 82px; } }
.hero-copy { max-width:670px; position:relative; z-index:2; }
:scope .hero h1 { color:#fff; font-size:clamp(3.3rem,5.1vw,5.5rem); }
.hero h1 .hero-line { display:block; overflow:hidden; padding-bottom:.06em; }
.hero h1 em { color:var(--green); }
.hero-lede { max-width:620px; margin-bottom:1.8rem; color:rgba(255,255,255,.7); font-size:clamp(.95rem,1.25vw,1.12rem); }
.text-link { display:inline-flex; align-items:center; gap:.7rem; text-decoration:none; font-size:.68rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.text-link span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:var(--ink); background:var(--green); transition:transform .3s ease; }
.text-link:hover span,.text-link:focus-visible span { transform:translateY(3px); }
.hero-visual { position:relative; z-index:2; width:min(650px,46vw); margin:0 auto; perspective:1100px; }
.hero-visual::before { content:""; position:absolute; inset:24%; z-index:-1; border-radius:50%; background:rgba(171,69,191,.15); filter:blur(55px); }
.hero-visual img { width:100%; filter:drop-shadow(0 38px 65px rgba(0,0,0,.32)); transform-style:preserve-3d; }
.float-note { position:absolute; padding:.62rem .82rem; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(24,10,30,.5); backdrop-filter:blur(10px); font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.note-one { left:4%; top:34%; }.note-two { right:3%; bottom:22%; color:var(--green); }
.hero-arrow { width:18px; height:46px; position:absolute; left:50%; bottom:1.5rem; z-index:5; overflow:visible; transform:translateX(-50%); animation:arrowDrift 3.6s ease-in-out infinite; pointer-events:none; }
.hero-arrow path { fill:none; stroke:rgba(255,255,255,.64); stroke-width:1; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
@keyframes arrowDrift { 0%,100% { transform:translate(-50%,0); } 50% { transform:translate(-50%,4px); } }
.hero-light-bridge { height:40vh; position:relative; margin-top:-2px; pointer-events:none; }

/* Typographic interlude and shared canvas */
.manifesto,.story { background:var(--canvas-bg,#fff); }
.manifesto { min-height:92svh; position:relative; display:grid; place-content:center; padding:14vh 6vw; text-align:center; overflow:hidden; }
.manifesto::after { opacity:var(--watermark,1); content:"ESTRATEGIA"; position:absolute; left:50%; bottom:-.12em; transform:translateX(-50%); color:rgba(105,64,150,.025); font:500 clamp(7rem,19vw,19rem)/1 Georgia,serif; letter-spacing:-.075em; }
.manifesto > * { position:relative; z-index:2; }
.manifesto h2 { max-width:1080px; margin-inline:auto; font-size:clamp(3.2rem,6.6vw,7rem); }
.manifesto h2 span,.closing h2 span { display:block; }
/* One continuous route in document coordinates; one scroll-driven reveal. */
.story { position:relative; isolation:isolate; }
.story-route { position:absolute; inset:0; z-index:0; width:100%; height:100%; overflow:hidden; pointer-events:none; }
.story-route-line { fill:none; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.story-route-trail { opacity:.6; filter:blur(.2px); }
.story-route-active { opacity:.88; }
.story-route-echo { stroke-width:1.25; opacity:.4; transform:translateX(-18px); filter:blur(.3px); }
.story-route-diffuse { opacity:.42; filter:blur(.9px); }
.story > section { position:relative; z-index:1; }

/* Shared chapter composition */
.chapter { width:min(var(--max),90vw); min-height:86svh; margin:0 auto; padding:9vh 0; position:relative; display:grid; grid-template-columns:minmax(0,.86fr) minmax(380px,1.14fr); align-items:center; gap:clamp(3rem,7vw,7rem); }
.chapter::before { content:""; position:absolute; width:min(44vw,560px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(171,69,191,.045),transparent 68%); z-index:-1; }
.chapter-left::before { right:-14vw; }.chapter-right::before { left:-14vw; background:radial-gradient(circle,rgba(141,211,23,.05),transparent 68%); }
.chapter-copy { max-width:610px; position:relative; z-index:3; }
.chapter-copy > p:not(.chapter-number) { max-width:580px; color:var(--muted); font-size:clamp(.96rem,1.17vw,1.08rem); }
.chapter-visual { position:relative; z-index:3; min-width:0; margin:0; perspective:1000px; }
.life-copy,.life-stage,.method-heading,.method-viewport,.victory-heading,.victory-stage { position:relative; z-index:3; }
.chapter-visual img { width:100%; filter:drop-shadow(0 20px 28px rgba(43,23,54,.08)); }
.chapter-right .chapter-visual { order:1; }.chapter-right .chapter-copy { order:2; }
.chapter-right { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
.visual-index { position:absolute; right:3%; top:2%; z-index:-1; color:rgba(43,23,54,.035); font:500 clamp(8rem,18vw,17rem)/1 Georgia,serif; }
.micro-list,.metric-cloud { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.8rem; }
.micro-list span,.metric-cloud span { padding:.48rem .82rem; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:rgba(255,255,255,.75); font-size:.72rem; font-weight:750; }
.food-visual { clip-path:ellipse(76% 76% at 50% 50%); }

/* Life: one real layout, one pinned scene */
.life-chapter { position:relative; padding:0; }
.life-scene { width:min(1380px,92vw); position:relative; margin:0 auto; padding:3vh 0; display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,.66fr); align-items:center; gap:clamp(2rem,4vw,4.5rem); }
:scope.cinematic-desktop .life-scene { height:100svh; }
.life-copy h2 { font-size:clamp(2.6rem,3.7vw,4rem); }
.life-stage { min-width:0; display:grid; grid-template-columns:minmax(115px,.23fr) minmax(0,.77fr); grid-template-areas:"asset chart" "asset note"; align-items:end; gap:1.5rem clamp(1rem,2vw,2rem); }
.life-asset { grid-area:asset; align-self:end; position:relative; width:100%; margin:0; filter:drop-shadow(0 24px 36px rgba(43,23,54,.12)); }
.life-asset img { width:100%; max-height:520px; object-fit:contain; }
.life-asset-halo { position:absolute; inset:20% 4% 5%; z-index:-1; border-radius:48% 52% 55% 45%; background:linear-gradient(145deg,rgba(171,69,191,.11),rgba(141,211,23,.08)); filter:blur(22px); }
.life-asset figcaption { position:absolute; left:50%; bottom:2%; width:max-content; max-width:180px; transform:translateX(-50%); padding:.62rem .75rem; border:1px solid rgba(171,69,191,.12); border-radius:14px; background:rgba(255,255,255,.82); box-shadow:0 12px 28px rgba(43,23,54,.08); backdrop-filter:blur(10px); }
.life-asset figcaption span,.life-asset figcaption strong { display:block; }
.life-asset figcaption span { margin-bottom:.14rem; color:var(--purple); font-size:.47rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.life-asset figcaption strong { font:600 .8rem/1.15 Georgia,serif; }
.rhythm-chart { grid-area:chart; min-width:0; position:relative; padding:clamp(1rem,2vw,1.5rem); border:1px solid rgba(43,23,54,.09); border-radius:30px; color:var(--ink); background:rgba(255,255,255,.94); box-shadow:var(--shadow); }
.chart-title { display:grid; gap:.4rem; padding:.15rem .25rem 1rem; }
.chart-title span { font:500 clamp(1.25rem,2vw,2rem)/1.1 Georgia,serif; }.chart-title small { color:var(--muted); font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; }
.rhythm-chart > svg { width:100%; overflow:visible; }
.chart-grid path { fill:none; stroke:rgba(43,23,54,.075); stroke-width:1; stroke-dasharray:3 9; }
.chart-area { fill:url(#chartArea); }
.chart-line,.chart-line-glow { fill:none; stroke:url(#chartGradient); stroke-linecap:round; stroke-linejoin:round; }
.chart-line { stroke-width:5; }.chart-line-glow { stroke-width:15; opacity:.1; filter:url(#chartGlow); }
.chart-points circle { fill:#fff; stroke:var(--purple); stroke-width:4; }.chart-points circle:last-child { stroke:var(--green); }
.chart-label { position:absolute; z-index:3; display:grid; min-width:78px; padding:.5rem .64rem; border:1px solid rgba(105,64,150,.11); border-radius:12px; color:var(--ink); background:#fff; box-shadow:0 8px 20px rgba(43,23,54,.09); font-size:.62rem; font-weight:850; line-height:1.2; }
.chart-label small { margin-top:.14rem; color:var(--muted); font-size:.48rem; font-weight:650; }
.label-time { left:5%; top:64%; }.label-hunger { left:25%; top:35%; }.label-energy { left:47%; top:49%; }.label-training { left:61%; top:31%; }
.goal-trophy { position:absolute; right:0; top:13%; z-index:5; width:80px; text-align:center; }
.goal-trophy svg { width:66px; margin:0 auto; filter:drop-shadow(0 11px 12px rgba(165,107,24,.2)); }
.goal-trophy strong,.goal-trophy small { display:block; }.goal-trophy strong { font:600 .92rem Georgia,serif; }.goal-trophy small { color:var(--muted); font-size:.47rem; letter-spacing:.09em; text-transform:uppercase; }
.trophy-rays { position:absolute; left:8px; top:-6px; width:78px; height:78px; border-radius:50%; background:repeating-conic-gradient(rgba(220,166,60,.22) 0 2deg,transparent 2deg 17deg); mask:radial-gradient(circle,transparent 0 38%,#000 40%); }
.chart-footnote { grid-area:note; margin:.5rem 0 0; color:rgba(43,23,54,.62); text-align:center; font:italic 500 1rem Georgia,serif; }

/* Synergy assembly */
.system-list { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.65rem; margin:1.8rem 0 0; padding:0; }
.system-list li { padding:.65rem 0; border-bottom:1px solid var(--line); font-size:.82rem; font-weight:750; }.system-list li span { margin-right:.45rem; color:var(--green-deep); font-size:.63rem; }
.puzzle-visual { isolation:isolate; }
.puzzle-visual .assembly-piece { position:absolute; inset:0; }
.orbit { position:absolute; inset:7%; z-index:-1; border:1px solid rgba(171,69,191,.11); border-radius:50%; }.orbit-b { inset:17%; border-color:rgba(141,211,23,.15); }

/* Method: vertical input, horizontal camera */
.method-section { position:relative; padding:4vh 0; }
.method-scene { position:relative; padding:4vh 0; }
.method-heading { width:min(var(--max),90vw); margin:0 auto; position:relative; z-index:4; }
.method-heading h2 { margin-bottom:.75rem; }
.method-heading > p:last-child { max-width:760px; margin-bottom:1rem; color:var(--muted); }
.method-viewport { width:100%; position:relative; }
.method-track { width:min(var(--max),90vw); margin:auto; position:relative; }
.method-visual { width:min(1050px,100%); margin:0 auto; }
.method-visual img { width:100%; filter:drop-shadow(0 16px 24px rgba(43,23,54,.08)); }
.method-steps { list-style:none; width:100%; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(1rem,2vw,2rem); margin:0; padding:0; position:relative; z-index:3; }
.method-steps::before { content:""; position:absolute; left:2%; right:2%; top:22px; height:1px; background:linear-gradient(90deg,rgba(171,69,191,.18),rgba(141,211,23,.38)); transform:scaleX(var(--method-progress,.02)); transform-origin:left; }
.method-steps li { min-height:112px; position:relative; padding:0 .4rem 1rem; border-bottom:1px solid rgba(43,23,54,.1); opacity:1; transform:none;  }
:scope.cinematic-desktop .method-steps li { opacity:.2; transform:translateY(8px) scale(.94); }
.method-steps span { position:relative; z-index:2; display:grid; place-items:center; width:44px; height:44px; margin-bottom:.9rem; border:1px solid rgba(171,69,191,.2); border-radius:50%; color:var(--green-deep); background:rgba(255,255,255,.92); box-shadow:0 8px 22px rgba(43,23,54,.08); font-size:.61rem; }
.method-steps strong { font:600 clamp(1.05rem,1.45vw,1.32rem)/1 Georgia,serif; letter-spacing:-.02em; }
:scope.cinematic-desktop .method-scene { height:100svh; display:flex; flex-direction:column; }
:scope.cinematic-desktop .method-heading { display:grid; grid-template-columns:1.4fr .6fr; column-gap:5vw; align-items:end; }
:scope.cinematic-desktop .method-heading .chapter-number { grid-column:1/-1; }
:scope.cinematic-desktop .method-heading h2 { font-size:clamp(2.8rem,4.7vw,4.8rem); }
:scope.cinematic-desktop .method-heading > p:last-child { font-size:.9rem; }
:scope.cinematic-desktop .method-viewport { flex:1; min-height:0; overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
:scope.cinematic-desktop .method-track { width:100%; height:100%; perspective:1200px; }
:scope.cinematic-desktop .method-visual { position:absolute; width:min(120vw,180svh); max-width:none; left:0; top:0; margin:0; will-change:transform; }
:scope.cinematic-desktop .method-steps { position:absolute; width:132vw; left:39vw; bottom:1vh; grid-template-columns:repeat(6,22vw); gap:0; }
:scope.cinematic-desktop .method-steps li { text-align:center; border:0; min-height:105px; padding:1rem; background:radial-gradient(ellipse,rgba(255,255,255,.98),rgba(255,255,255,.7) 45%,transparent 72%); }
:scope.cinematic-desktop .method-steps span { margin:.1rem auto .8rem; }
:scope.cinematic-desktop .method-steps strong { font-size:clamp(1.5rem,2.6vw,2.5rem); }
:scope.cinematic-desktop .method-steps::before { top:38px; }

/* Weight and habits */
.weight-system { clip-path:polygon(0 0,68% 0,66% 30%,76% 39.5%,100% 42%,100% 100%,0 100%); }
.weight-visual .weight-piece { position:absolute; inset:0; clip-path:polygon(68% 0,100% 0,100% 42%,76% 39.5%,66% 30%); transform-origin:82% 24%; }
.weight-caption { position:absolute; right:0; top:0; z-index:3; padding:.72rem .9rem; border-radius:13px; color:#fff; background:var(--ink); box-shadow:0 14px 32px rgba(43,23,54,.18); font-size:.65rem; font-weight:800; line-height:1.35; }
.habits-chapter { width:min(var(--max),90vw); padding-inline:clamp(1.5rem,3vw,3rem); border-block:0; background:transparent; }
.habits-visual { width:100%; }
.habit-existing { clip-path:inset(0 56% 0 0); }
.habits-visual .habit-bridge,.habits-visual .habit-new { position:absolute; inset:0; }
.habit-bridge { clip-path:inset(0 39% 0 44%); }.habit-new { clip-path:inset(0 0 0 61%); }
.connection-line { position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.connection-line path { fill:none; stroke:var(--purple); stroke-width:.22; stroke-linecap:round; opacity:.65; }
.habit-formula { display:grid; grid-template-columns:auto 32px auto; align-items:center; gap:.65rem; margin-top:1.8rem; }
.habit-formula span { padding:.7rem .85rem; border:1px solid rgba(171,69,191,.1); border-radius:13px; background:rgba(255,255,255,.78); text-align:center; font-size:.7rem; font-weight:800; }.habit-formula b { color:var(--green-deep); text-align:center; }

/* Victories */
.victories { min-height:100svh; position:relative; padding:12vh 5vw 10vh; text-align:center; }
.victory-heading { max-width:890px; margin:0 auto 2rem; }.victory-heading .chapter-number { justify-content:center; }.victory-heading .chapter-number::after { display:none; }.victory-heading > p:last-child { color:var(--muted); }
.victory-stage { width:min(960px,88vw); margin:0 auto; position:relative; perspective:1100px; }
.victory-stage img { width:100%; filter:drop-shadow(0 20px 30px rgba(43,23,54,.08)); }
.victory-pill { position:absolute; padding:.68rem .92rem; border:1px solid rgba(171,69,191,.16); border-radius:999px; color:var(--ink); background:rgba(255,255,255,.9); box-shadow:0 12px 28px rgba(43,23,54,.1); backdrop-filter:blur(10px); font-size:clamp(.72rem,.82vw,.84rem); font-weight:800; white-space:nowrap; }
.pill-a { left:6%; top:55%; }.pill-b { left:18%; top:17%; }.pill-c { left:45%; top:18%; }.pill-d { left:55%; top:34%; }.pill-e { left:37%; bottom:3%; }.pill-f { right:5%; top:61%; }

/* Closing exposure */
.closing-dark-bridge { height:42vh; position:relative; margin-bottom:-2px; pointer-events:none; }
.closing { min-height:100svh; position:relative; isolation:isolate; display:grid; place-items:center; padding:12vh 6vw; overflow:hidden; color:#fff; text-align:center; background:var(--closing-bg,#07030a radial-gradient(circle at 50% 42%,#24102c 0%,#100617 48%,#07030a 82%)); }
.closing::before { content:""; position:absolute; inset:-12%; z-index:0; opacity:.16; background:radial-gradient(circle at 50% 48%,rgba(171,69,191,.22),transparent 54%); filter:blur(22px); pointer-events:none; }
.closing::after { content:""; position:absolute; inset:-18%; z-index:0; opacity:.24; background-image:radial-gradient(circle,rgba(255,255,255,.34) 0 1px,transparent 1.4px),radial-gradient(circle,rgba(171,69,191,.32) 0 1px,transparent 1.5px); background-size:79px 79px,131px 131px; animation:ambientDrift 44s linear infinite reverse; mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 90%); }
.closing-inner { max-width:1050px; position:relative; z-index:2; }
:scope .closing h2 { color:#fff; font-size:clamp(3.4rem,7vw,7.5rem); }.closing h2 em { color:var(--green); }.closing-inner > p:not(.eyebrow) { max-width:760px; margin:0 auto 2rem; color:rgba(255,255,255,.68); }
.primary-cta { display:inline-flex; align-items:center; justify-content:center; gap:.7rem; min-width:210px; padding:1rem 1.35rem; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.34); border-radius:999px; color:#fff; background:linear-gradient(135deg,rgba(196,85,216,.86),rgba(126,43,147,.78)); box-shadow:0 18px 44px rgba(56,14,67,.3),inset 0 1px rgba(255,255,255,.48),inset 0 -12px 24px rgba(53,10,65,.16); backdrop-filter:blur(16px) saturate(135%); text-decoration:none; font-weight:780; transition:transform .45s cubic-bezier(.2,.8,.2,1),background .45s ease,box-shadow .45s ease; }
.primary-cta::before { content:""; position:absolute; inset:-70% -35%; background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.5) 48%,transparent 60%); transform:translateX(-70%) rotate(8deg); transition:transform 1.8s cubic-bezier(.4,0,.2,1); }
.primary-cta > *,.primary-cta { isolation:isolate; }
.primary-cta:link,.primary-cta:visited,.primary-cta:hover,.primary-cta:focus,.primary-cta:active { color:#fff; }
.primary-cta:hover,.primary-cta:focus-visible { color:#fff; transform:translateY(-4px) scale(1.015); background:linear-gradient(135deg,rgba(209,103,226,.94),rgba(139,48,160,.86)); box-shadow:0 25px 58px rgba(67,16,80,.4),inset 0 1px rgba(255,255,255,.58),inset 0 -12px 24px rgba(53,10,65,.12); }
.primary-cta:hover::before,.primary-cta:focus-visible::before { transform:translateX(70%) rotate(8deg); }
:scope.motion-ready img { backface-visibility:hidden; }

/* Tablet: no long pinning, same story in a composed vertical flow. */
@media (max-width:959px) {
  .hero { min-height:auto; grid-template-columns:1fr; padding:100px 6vw 10svh; text-align:center; }
  .story-atmosphere { bottom:auto; height:100lvh; transform:translateZ(0); }
  .hero-copy { margin-inline:auto; }.hero .eyebrow { justify-content:center; }.hero-lede { margin-inline:auto; }.hero-visual { width:min(650px,82vw); margin-top:-2rem; }
  .manifesto { min-height:78svh; }
  .story-route-trail { opacity:.39; }
  .story-route-active { opacity:.77; }
  .story-route-echo { opacity:.3; transform:translateX(-9px); }
  .hero-light-bridge { height:34svh; }
  .closing-dark-bridge { height:36vh; }
  .chapter { min-height:auto; grid-template-columns:1fr; gap:2rem; padding:11vh 5vw; }
  .chapter-right { grid-template-columns:1fr; }
  .chapter-right .chapter-copy { order:1; }.chapter-right .chapter-visual { order:2; }
  .chapter-copy { max-width:720px; }
  .chapter-visual { width:min(700px,88vw); margin-inline:auto; }
  .life-chapter { padding:10vh 5vw; }
  .life-scene { min-height:auto; width:100%; grid-template-columns:1fr; }
  .life-copy { max-width:720px; }
  .life-stage { grid-template-columns:minmax(140px,.25fr) minmax(0,.75fr); }
  .method-section { padding:10vh 5vw; }
  .method-scene { min-height:0; display:block; }
  .method-heading { width:100%; }
  .method-viewport { width:100%; min-height:0; height:auto; overflow:visible; }
  .method-track { width:100%; min-height:0; height:auto; display:block; padding:0; }
  .method-visual { position:relative; left:auto; top:auto; width:min(850px,100%); margin:-2rem auto 0; }
  .method-visual img { max-height:none; }
  .method-steps { width:100%; grid-template-columns:repeat(3,1fr); gap:1rem; margin:0; }
  .method-steps::before { display:none; }
  .method-steps li { min-height:86px; opacity:1; transform:none; }
  .habits-visual { width:100%; margin-left:0; }
  .victory-stage { width:min(760px,90vw); }
}

@media (max-width:620px) {
  h2 { font-size:clamp(2.55rem,11vw,3.75rem); }
  .hero { padding:80px 22px 8svh; }
  .hero h1 { font-size:clamp(3rem,13.5vw,4.6rem); }
  .hero-visual { width:100%; margin-top:0; }.float-note { display:none; }
  .manifesto { min-height:72svh; padding-inline:24px; }.manifesto h2 { font-size:clamp(2.65rem,11.5vw,4rem); }
  .story-route-trail { opacity:.34; }
  .story-route-active { opacity:.7; }
  .story-route-echo { opacity:.25; transform:translateX(-5px); }
  .hero-light-bridge { height:30svh; }
  .closing-dark-bridge { height:34vh; }
  .chapter { width:100%; padding:9vh 24px; }
  .chapter-visual { width:100%; }.visual-index { display:none; }
  .system-list { grid-template-columns:1fr; }
  .life-chapter { padding:9vh 20px; }
  .life-stage { display:flex; flex-direction:column; align-items:stretch; }
  .life-asset { order:2; width:min(210px,58vw); margin:1rem auto; z-index:1; }
  .life-asset figcaption { bottom:2%; }
  .rhythm-chart { z-index:2; padding:.85rem; border-radius:22px; }
  .chart-title { align-items:flex-start; flex-direction:column; gap:.25rem; }.chart-title small { font-size:.45rem; }
  .chart-label { min-width:56px; padding:.34rem .42rem; border-radius:8px; font-size:.49rem; }.chart-label small { display:none; }
  .label-time { left:4%; top:66%; }.label-hunger { left:22%; top:42%; }.label-energy { left:45%; top:54%; }.label-training { left:60%; top:37%; }
  .goal-trophy { width:46px; right:0; top:25%; }.goal-trophy svg { width:36px; }.goal-trophy strong { font-size:.6rem; }.goal-trophy small { display:none; }.trophy-rays { width:42px; height:42px; left:2px; top:-3px; }
  .chart-footnote { order:3; margin-top:.8rem; font-size:.88rem; }
  .method-section { padding:9vh 20px; }
  .method-visual { margin:0 auto; }
  .method-steps { grid-template-columns:1fr 1fr; gap:.7rem; }
  .method-steps li { min-height:72px; display:grid; grid-template-columns:36px 1fr; align-items:center; gap:.7rem; padding:.5rem; }
  .method-steps span { width:36px; height:36px; margin:0; }.method-steps strong { font-size:.93rem; }
  .habits-chapter { width:calc(100% - 24px); padding-inline:18px; }
  .habit-formula { grid-template-columns:1fr; }.habit-formula b { line-height:1; }
  .victories { padding:10vh 20px; }
  .victory-stage { width:100%; }.victory-pill { position:relative; inset:auto !important; display:inline-block; margin:.2rem; }
  .closing { min-height:100svh; padding:10vh 22px; }.closing h2 { font-size:clamp(3rem,13vw,4.7rem); }
}

@keyframes imageFloat { 0%,100% { translate:0 3px; } 50% { translate:3px -8px; } }
.hero-visual,.chapter-visual,.life-asset,.method-visual,.victory-stage { animation:imageFloat 7s ease-in-out infinite; }

/* Static and reduced-motion paths never hide information. */
@media (prefers-reduced-motion:reduce) {
  :scope { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition-duration:.01ms !important; }
  .story-route { display:none; }
  .method-track { transform:none !important; }
  .method-steps li { opacity:1 !important; transform:none !important; }
}

}