/* The Replant · living page · v9 2026-10-16. One rAF loop in replant.js drives every scroll/pointer effect. */
:root{--gutter:max(16px,calc((100vw - 1140px)/2))}
.rp-hero{position:relative;min-height:calc(100svh - 68px);display:grid;align-items:center;overflow:hidden;background:radial-gradient(120% 90% at 70% 40%,#22342B 0%,#141F1A 62%);color:#F3EEE3;padding:40px 0 56px}
.rp-hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rp-hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.rp-hero h1{color:#FAF7F1;font-size:clamp(44px,7.4vw,96px);line-height:1.02;letter-spacing:-1px}
.rp-hero h1 em{color:#E2B868;font-style:italic}
.rp-hero .lede{color:#D9D2C2;font-size:clamp(18px,2.1vw,22px);max-width:560px}
.rp-hero .eyebrow{color:#E2B868}
.rp-hero .btn.ghost{color:#FAF7F1;border-color:#FAF7F1}
.rp-hero .btn.ghost:hover{background:rgba(250,247,241,.08)}
.rp-hero .note{color:#C9C3B4}
.rp-plant{position:relative;justify-self:center;width:min(420px,100%);aspect-ratio:4/5}
.rp-plant .frame{position:absolute;inset:8% 10% 0 10%;border-radius:200px 200px 22px 22px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);transform:translate3d(calc(var(--mx,0)*10px),calc(var(--my,0)*8px + var(--py,0px)),0)}
.rp-plant .frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.rp-plant .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,31,26,0) 45%,rgba(20,31,26,.75))}
.rp-plant svg{position:absolute;left:-6%;bottom:-2%;width:62%;height:auto;overflow:visible;transform-origin:50% 100%;transform:rotate(calc(var(--mx,0)*4deg))}
.rp-plant .stem{fill:none;stroke:#9CC08F;stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--grow,1))}
.rp-plant .leaf{fill:#7E9A78;transform-box:fill-box;transform-origin:0% 100%;transform:scale(var(--lf,1)) rotate(calc(var(--mx,0)*6deg))}
.rp-plant .leaf.r{transform-origin:100% 100%}
.rp-plant .bud{fill:#E2B868;transform-box:fill-box;transform-origin:50% 100%;transform:scale(var(--bd,1))}
.rp-plant .soil{fill:#3A2C1E}
.rp-badge{position:absolute;right:2%;top:4%;background:#FAF7F1;color:#141F1A;border-radius:16px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.3;box-shadow:0 12px 30px rgba(0,0,0,.25);max-width:170px;transform:translate3d(calc(var(--mx,0)*-14px),calc(var(--my,0)*-10px),0)}
.rp-badge b{display:block;font-family:var(--disp);font-size:26px;font-weight:500}
@media(max-width:860px){.rp-hero .wrap{grid-template-columns:1fr;gap:14px}.rp-plant{order:-1;width:min(230px,60vw)}.rp-hero{padding:16px 0 40px;min-height:0}.rp-hero h1{font-size:clamp(38px,10.5vw,52px)}.rp-hero .lede{font-size:17px;line-height:1.5}.rp-badge{font-size:12.5px;padding:9px 11px;max-width:140px;right:-6%}.rp-badge b{font-size:21px}}
/* opening moment */
html.live .rp-in{opacity:0;transform:translate3d(0,22px,0)}
html.live.lit .rp-in{opacity:1;transform:none;transition:opacity .55s cubic-bezier(.2,.7,.2,1) calc(var(--d,0)*1ms),transform .6s cubic-bezier(.2,.7,.2,1) calc(var(--d,0)*1ms)}
/* growth scene: 8 weeks = 8 leaves */
.rp-grow{position:relative;height:240vh;background:var(--paper)}
.rp-grow .pin{position:sticky;top:68px;height:calc(100svh - 68px);display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:30px;width:min(1140px,100% - 32px);margin-inline:auto}
.rp-grow svg{width:100%;max-height:calc(100svh - 120px);overflow:visible}
.rp-grow .stem2{fill:none;stroke:#4C6847;stroke-width:6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,1))}
.rp-grow .wk{transform-box:fill-box;transform-origin:0 100%;transition:none}
.rp-grow .wk path{fill:#7E9A78}
.rp-grow .wk.on path{fill:#4C6847}
.rp-grow .wk text{font:700 15px var(--body);fill:#24312A}
.rp-grow .wk circle{fill:#C9963F}
.rp-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 26px;box-shadow:var(--shadow);min-height:330px}
.rp-card .wnum{font:700 13px var(--body);letter-spacing:2px;text-transform:uppercase;color:var(--amber-deep)}
.rp-card h3{font-size:clamp(28px,3.4vw,40px);margin:8px 0 10px}
.rp-card .seedline{border-left:4px solid var(--moss);padding:10px 14px;background:var(--bone);border-radius:10px;margin:14px 0}
.rp-card .verse{font-family:var(--disp);font-style:italic;color:var(--dim);font-size:17px}
.rp-dots{display:flex;gap:6px;margin-top:16px}.rp-dots i{width:22px;height:6px;border-radius:4px;background:var(--line)}.rp-dots i.on{background:var(--moss-deep)}
@media(max-width:860px){.rp-grow{height:auto}.rp-grow .pin{position:relative;top:0;height:auto;grid-template-columns:1fr;padding:56px 0}.rp-grow svg{display:none}.rp-card{min-height:0}}
.rp-list{display:none}
@media(max-width:860px){html.live .rp-card{display:none}.rp-list{display:grid;gap:14px}html:not(.live) .rp-list{display:grid}}
html:not(.live) .rp-grow{height:auto}html:not(.live) .rp-grow .pin{position:relative;height:auto}
.rp-week{background:#fff;border:1px solid var(--line);border-left:4px solid var(--moss);border-radius:14px;padding:18px}
.rp-week b{display:block;font-family:var(--disp);font-size:22px;font-weight:500;color:var(--soil)}
.rp-week small{font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--amber-deep);font-size:12.5px}
/* value stack */
.stack{max-width:760px;margin:26px auto 0;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;text-align:left}
.stack .row{display:flex;justify-content:space-between;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line)}
.stack .row span:last-child{font-weight:700;white-space:nowrap}
.stack .row.free span:last-child{color:var(--moss-deep)}
.stack .row.tot{background:var(--bone);font-weight:700}
.stack .row.tot span:last-child{text-decoration:line-through;color:var(--dim)}
.offer{max-width:760px;margin:24px auto 0;background:#141F1A;color:#F3EEE3;border-radius:22px;padding:32px 26px;text-align:center}
.offer h3{color:#FAF7F1;font-size:clamp(30px,4vw,44px)}
.offer .amt{font-family:var(--disp);font-size:clamp(48px,7vw,72px);color:#E2B868;line-height:1}
.offer p{color:#D9D2C2}
.offer .btn.amber{min-height:56px}
.promise{max-width:760px;margin:26px auto 0;border:2px dashed var(--moss);border-radius:22px;padding:24px;background:#fff}
.rp-spot{position:relative;overflow:hidden}
.rp-spot::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--lx,50%) var(--ly,50%),rgba(201,150,63,.16),transparent 60%);opacity:var(--on,0)}
@media(prefers-reduced-motion:reduce){html.live .rp-in{opacity:1;transform:none}.rp-grow{height:auto}.rp-grow .pin{position:relative;height:auto}}
/* portal */
.pt-wrap{width:min(980px,100% - 32px);margin:0 auto;padding:40px 0 70px}
.pt-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 22px;box-shadow:var(--shadow);margin-bottom:18px}
.pt-card label{display:block;font-weight:700;margin:12px 0 6px}
.pt-card input,.pt-card select,.pt-card textarea{width:100%;padding:13px 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:16px}
.pt-err{display:none;color:#8a2d1f;font-weight:700;margin-top:10px}
.pt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:760px){.pt-grid{grid-template-columns:1fr}}
.pt-stat{font-family:var(--disp);font-size:44px;color:var(--soil);line-height:1}
.pt-weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
@media(max-width:760px){.pt-weeks{grid-template-columns:repeat(2,1fr)}}
.pt-week{display:flex;flex-direction:column;gap:4px;min-height:84px;padding:14px;border-radius:14px;border:1.5px solid var(--line);background:#fff;text-align:left;font:inherit;cursor:pointer;color:var(--ink)}
.pt-week small{font-weight:700;letter-spacing:1.4px;text-transform:uppercase;font-size:12px;color:var(--amber-deep)}
.pt-week.lock{opacity:.55;cursor:default;background:var(--bone)}
.pt-week.cur{border-color:var(--soil)}
.pt-week.done small::after{content:" · done";color:var(--moss-deep)}
.pt-vid{aspect-ratio:9/16;max-width:360px;background:var(--soil);border-radius:16px;overflow:hidden;margin:14px 0}
.pt-vid video,.pt-vid img{width:100%;height:100%;object-fit:cover}
.pt-list a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-weight:700}
.pt-check{display:flex;align-items:center;gap:12px;min-height:48px;font-weight:700}
.pt-check input{width:26px;height:26px}
.pt-table{width:100%;border-collapse:collapse;font-size:15px}.pt-table td,.pt-table th{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}

.rp-why{align-items:center}.rp-clip{max-width:300px;margin:0 auto}.rp-clip video{aspect-ratio:9/16;width:100%;object-fit:cover;border-radius:16px;background:#141F1A}
.rp-clip figcaption{font-family:var(--disp);font-style:italic;font-size:18px;color:var(--soil);text-align:center;margin-top:10px;line-height:1.3}
.rp-close{max-width:300px;margin:26px auto 0}
.pt-quote{font-family:var(--disp);font-style:italic;font-size:19px;color:var(--soil);margin:4px 0 12px}
.tclip.rp-clip{background:transparent;box-shadow:none;border:0}
.tclip.rp-clip video{box-shadow:var(--shadow)}
.tclip.rp-clip figcaption{background:transparent;color:var(--soil);padding:10px 4px 0;position:static}
.pt-card .pt-check{display:flex;align-items:center;gap:12px;margin:14px 0 0}
.pt-card .pt-check input{width:26px;height:26px;flex:0 0 26px;padding:0;margin:0}

#wypDepth{margin:28px 0;padding:24px;border:1px solid #b58b45;border-radius:16px;line-height:1.7}#wypDepth h3{font-size:26px}#wypDepth h4{margin-top:26px}#wypDepth select{max-width:100%;min-height:44px;padding:8px;font:inherit;background:#f0ebe0;color:#141f1a;border-radius:8px}#wypDepth li{padding-left:6px}
/* 11/4 testimonials: one sideways row on every screen size (Replant page only) */
.tst[data-page="replant"] .tclips{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;justify-content:flex-start;padding:0 4px 12px;-webkit-overflow-scrolling:touch}
.tst[data-page="replant"] .tclip{flex:0 0 240px;scroll-snap-align:start}
@media (max-width:640px){.tst[data-page="replant"] .tclips{padding:0 16px 10px;margin:24px -16px 0}.tst[data-page="replant"] .tclip{flex:0 0 64%;scroll-snap-align:center}}
