/* FRELUMO V29 - full responsive visual treatment; existing business logic remains server-side. */
:root{--f29-bg:#020b1d;--f29-panel:#071c3b;--f29-line:#2a578d;--f29-soft:#adcee6;--f29-cyan:#16d6ff;--f29-purple:#a23cf5;}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{overflow-x:hidden}
.f28-site,.f28-member-app{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:#020c22;color:#eff7ff}
.f28-site .shell,.f28-member-app .shell{width:min(1420px,calc(100% - 56px));max-width:1420px}
.f28-site :focus-visible,.f28-member-app :focus-visible,.f29-mobile-nav :focus-visible{outline:3px solid #65e4ff;outline-offset:3px}
.f28-hero{min-height:640px}.f28-hero-content{min-height:640px}
.f28-hero-text{max-width:750px}.f28-hero h1{font-size:clamp(3rem,5.25vw,5.6rem);text-shadow:0 4px 18px #0006}
.f28-goal-grid{max-width:740px;gap:10px}.f28-goal{min-height:113px;max-width:146px;background:linear-gradient(165deg,#0a2658db,#070f2be7);border-radius:13px}
.f28-goal.active{background:linear-gradient(155deg,#163e8aed,#131e52df);border-color:#15deff;box-shadow:0 0 0 1px #1bc7fc,0 0 22px #5450ed75}
.f28-hero-actions .f28-btn{min-height:53px;font-size:.91rem}
.f28-guide-callout{backdrop-filter:blur(18px);background:linear-gradient(135deg,#092650e9,#171e5ad9);border-color:#3bc6ff}
/* Reviews visible immediately after the hero. No invented stars or endorsements. */
.f28-site .f22-stories{padding:54px 0 42px!important;background:radial-gradient(ellipse at 80% 0%,#142454,#040f29 65%,#030e24)}
.f28-site .f22-stories h2{font-size:clamp(1.95rem,3.6vw,3rem);line-height:1.12}
.f28-site .f22-stories .f23-examples,.f28-site .f22-stories .f22-review-grid{gap:17px}
.f28-site .f23-example,.f28-site .f22-review-card{background:linear-gradient(145deg,#0b2451,#09162e);border:1px solid #315e96;box-shadow:0 16px 35px #0003;border-radius:19px}
.f28-app-section{background:radial-gradient(ellipse at 60% 0%,#0b2456,#030c21 65%);padding:54px 0 68px}
.f28-app-grid{gap:25px;align-items:start}
.f28-calendar-box,.f28-action-board{border:1px solid #2d5b91;border-radius:18px;background:linear-gradient(156deg,#0b2854,#04162f 83%);box-shadow:inset 0 1px 0 #a8e7ff10,0 20px 42px #0007;padding:23px 23px 19px}
.f28-action-board{margin-top:19px}
.f28-section-title h2{font-weight:850;letter-spacing:-.045em}
.f28-days{scroll-snap-type:x proximity;overscroll-behavior-x:contain}.f28-day{scroll-snap-align:start;border:1px solid #265586;border-radius:11px;transition:transform .2s,border-color .2s}.f28-day.is-active{border-color:#28d8ff;box-shadow:0 0 0 1px #19a9ff,0 0 14px #185cef94;transform:translateY(-2px)}
.f28-tasks-grid{gap:13px}
.f28-task-card{border:1px solid #2f6396;border-radius:15px;background:#061a39;box-shadow:0 12px 28px #0003;overflow:hidden;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s}
.f28-task-card:hover{transform:translateY(-3px);border-color:#19cfff;box-shadow:0 0 17px #1689ea55}
.f28-task-card.is-highlight{border-color:#1cdbff;box-shadow:0 0 0 1px #17cbff,0 0 18px #2e72ee75}
.f28-task-media{height:164px;cursor:pointer}.f28-task-media img{object-position:center 45%;transition:transform .4s}.f28-task-card:hover .f28-task-media img{transform:scale(1.035)}
.f28-task-body h3{font-size:1rem;letter-spacing:-.02em;line-height:1.26}
.f28-task-body p{color:#c6dbef;line-height:1.44;font-size:.78rem}
.f28-task-link{min-height:43px;border-radius:11px;background:linear-gradient(105deg,#0eb6ee,#6557f5 68%,#943afa);font-weight:800;color:white;border:none}
.f28-task-link:hover{filter:brightness(1.1)}.f28-task-play{border:2px solid #b0ecff;background:#03204eb3;backdrop-filter:blur(6px);box-shadow:0 0 14px #36aefa}
.f28-phone-preview{position:sticky;top:100px}.f28-phone-frame{border:3px solid #4663bb;box-shadow:0 0 0 5px #080f31,0 0 47px #4a2dde88}
.f28-phone-item{border-color:#275a8d;background:#081c39;padding:7px}.f28-phone-item img{border-radius:9px}.f28-phone-item.is-hot{box-shadow:0 0 0 1px #2ac8ff,0 0 18px #1666e4}
.f28-phone-completion{background:linear-gradient(130deg,#081b44,#1d1145)}
/* ---------------- Paid member dashboard ---------------- */
.f28-member-app{background:radial-gradient(ellipse at 55% -5%,#111e51 0%,#06152e 42%,#020b20 91%);overflow:visible;padding:18px 0 70px}
.f28-member-shell{display:grid;grid-template-columns:224px minmax(0,1fr);gap:20px;align-items:stretch}
.f28-member-sidebar.f29-side{position:sticky;top:88px;min-height:calc(100vh - 110px);max-height:calc(100vh - 100px);overflow-y:auto;background:linear-gradient(180deg,#061a40,#030f2a);border:1px solid #295186;padding:16px 12px 14px;border-radius:17px;gap:5px;box-shadow:0 12px 35px #0005}
.f29-side-brand{display:flex;align-items:center;gap:11px;padding:8px 10px 14px;border-bottom:1px solid #224777;margin-bottom:12px;font-size:.97rem;letter-spacing:.2em;font-weight:950;color:white}
.f29-side-brand img{width:34px;height:34px}.f28-member-sidebar .f28-member-side-kicker{font-size:.6rem;letter-spacing:.15em;margin:0 11px 11px}
.f28-member-sidebar.f29-side>a{padding:12px 12px;display:flex;align-items:center;gap:13px;border-radius:11px;font-size:.85rem;color:#cbdaf3;white-space:nowrap;transition:background .18s,color .18s}
.f29-side>a svg,.f29-mobile-nav a svg,.f28-account-pill svg{height:21px;width:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.f28-member-sidebar.f29-side>a:hover,.f28-member-sidebar.f29-side>a.is-active{background:linear-gradient(100deg,#0c59b2,#066bbf);box-shadow:inset 0 1px 0 #ffffff17,0 8px 18px #145bc358;color:white}
.f29-side-bonus{margin-top:auto;border:1px solid #8753dd;border-radius:15px;padding:14px 12px;background:linear-gradient(155deg,#261849,#111e55 80%)}
.f29-side-spark{font-size:1.9rem;color:#ffd785}.f29-side-bonus strong{display:block;font-size:.91rem;color:#fff;line-height:1.32}.f29-side-bonus p{color:#d4d6f6;font-size:.73rem;line-height:1.55}
.f29-side-bonus a{display:block;text-align:center;border-radius:10px;background:linear-gradient(100deg,#12c4f5,#9a41f5);padding:11px 6px;font-size:.8rem;color:white;font-weight:800;text-decoration:none}
.f28-member-topbar{padding:0 2px;align-items:center}.f28-member-topbar h1{font-size:clamp(1.5rem,3vw,2.35rem);font-weight:900}
.f28-member-topbar .f28-account-pill{display:flex;align-items:center;gap:9px;background:#102a4f;border:1px solid #3766a0;color:white;font-size:.79rem;padding:10px 14px}
.f28-member-hero{height:345px;border-color:#3073a7;box-shadow:0 20px 43px #0005;border-radius:19px}
.f28-member-hero>img{object-position:67% 43%}.f28-member-hero-shade{background:linear-gradient(90deg,#050e2cf5 0%,#0a1d45d7 38%,#0b0e3600 86%),linear-gradient(0deg,#030d29be,transparent 60%)}
.f28-member-hero-copy{padding:30px;max-width:660px}.f28-member-hero-copy h2{font-size:clamp(1.9rem,3.2vw,3.3rem)}.f28-member-hero-copy p{color:#e0f1ff;font-size:.92rem}.f28-member-hero-progress{width:75px;height:75px;background:#031633d9}
.f28-member-calendar-box,.f28-member-actions{background:linear-gradient(150deg,#0a2248,#06152e);border:1px solid #2a578e;border-radius:18px;padding:21px 20px;box-shadow:0 14px 30px #0004}
.f28-member-calendar-box{margin:0 0 17px}.f28-member-actions{margin-bottom:0}
.f28-member-task-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.f28-member-card{background:#071c3d;border-radius:15px;border:1px solid #2c558c;min-width:0;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s}
.f28-member-card.is-current{border:1px solid #1bd9fa;box-shadow:0 0 0 1px #2e9cf4,0 0 19px #316cfa6b;transform:translateY(-1px)}
.f28-member-card.is-completed{border-color:#1abcab}
.f28-member-card-media{height:165px;background:#06132d}.f28-member-card-media img{object-position:center 45%}
.f28-member-card-copy{padding:13px 12px;gap:8px}.f28-member-card-copy h3{font-size:1rem;line-height:1.28;letter-spacing:-.03em;font-weight:850}.f28-member-card-copy p{font-size:.77rem;line-height:1.47;color:#b9d0e5}
.f28-member-card-cta{margin-top:auto;min-height:40px;display:grid;align-items:center;border-radius:10px;font-size:.79rem;background:#0b2b57;border:1px solid #3171a9;color:white}
.f28-member-card.is-current .f28-member-card-cta{background:linear-gradient(105deg,#13bfee,#8551f4);color:white}
.f28-member-card.is-completed .f28-member-card-cta{background:#09584e;border-color:#25a99c}
.f28-member-card.is-upcoming .f28-member-card-cta,.f28-member-card.is-waiting .f28-member-card-cta{color:#afcde5;border-color:#30547f;background:#091b34;cursor:default}
.f28-member-card-badge{background:#041b44df;backdrop-filter:blur(4px);font-size:.64rem;border:1px solid #6691c666;top:9px;left:9px}
.f28-member-card.is-current .f28-member-card-badge{background:#0b75a4}.f28-member-card.is-completed .f28-member-card-badge{background:#087f6d}
.f28-member-extras a{border-color:#31588a;background:linear-gradient(135deg,#0b2d54,#111c41)}
.f28-member-mobile-nav.f29-mobile-nav{display:none}
/* Daily step page */
.dv .f28-dv-action-media{height:238px;border:1px solid #5488cf;box-shadow:0 10px 26px #0005}.dv .dv-panel{border-radius:19px}.dv .dv-activity{box-shadow:0 0 0 1px #196ba5,0 20px 40px #0005}
@media(min-width:1240px){.f28-site .shell,.f28-member-app .shell{max-width:1510px}.f28-app-grid{grid-template-columns:minmax(0,1fr) 345px}}
@media(max-width:1180px) and (min-width:801px){.f28-member-shell{grid-template-columns:185px minmax(0,1fr);gap:13px}.f28-member-sidebar.f29-side>a{gap:8px;font-size:.78rem}.f29-side-brand{font-size:.78rem;gap:7px}.f28-member-task-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.f28-member-card-media{height:175px}}
@media(max-width:900px){.f28-phone-preview{position:relative;top:auto}.f28-app-grid{grid-template-columns:minmax(0,1fr) 290px}.f28-site .f22-stories{padding:37px 0!important}}
@media(max-width:800px){
 html{scroll-padding-top:70px}
 .f28-site .shell,.f28-member-app .shell{width:min(100% - 26px,620px)}
 .f28-hero,.f28-hero-content{min-height:680px}.f28-hero h1{font-size:clamp(2.38rem,9vw,3.8rem);line-height:1.055}.f28-hero-image{object-position:62% center}
 .f28-goal-grid{gap:7px}.f28-goal{min-width:85px;flex-basis:85px;min-height:98px}.f28-hero-actions .f28-btn{font-size:.83rem;min-height:48px}
 .f28-app-section{padding:25px 0 45px}.f28-app-grid{display:block}.f28-phone-preview{display:block!important;width:min(100%,345px);margin:28px auto 0;position:relative;top:auto}
 .f28-calendar-box,.f28-action-board{padding:16px 12px}
 .f28-tasks-grid{display:grid;grid-template-columns:1fr!important;gap:10px}
 .f28-task-card{display:grid;grid-template-columns:37% 1fr;min-height:144px}
 .f28-task-media{height:100%;min-height:144px}.f28-task-body{padding:12px;gap:7px}.f28-task-body h3{font-size:.96rem}.f28-task-body p{font-size:.74rem}.f28-task-link{font-size:.79rem;min-height:37px}
 .f28-site .f22-stories{padding:33px 0 22px!important}
 .f28-member-app{padding:13px 0 calc(94px + env(safe-area-inset-bottom))}.f28-member-shell{display:block}
 .f28-member-sidebar.f29-side{display:none}
 .f28-member-topbar{margin:4px 0 16px}.f28-member-topbar h1{font-size:clamp(1.4rem,6vw,2rem)}.f28-account-pill{width:42px;height:42px;display:grid!important;place-items:center;padding:9px!important}
 .f28-member-hero{height:275px;margin-bottom:13px}.f28-member-hero>img{object-position:66% center}.f28-member-hero-copy{padding:18px}.f28-member-hero-copy h2{font-size:clamp(1.68rem,6.3vw,2.3rem);max-width:290px}
 .f28-member-hero-copy p{font-size:.78rem;max-width:280px}.f28-member-hero-copy .f28-btn{min-height:40px}
 .f28-member-calendar-box,.f28-member-actions{padding:15px 12px;border-radius:15px}.f28-member-task-cards{display:grid;grid-template-columns:1fr!important;gap:11px}
 .f28-member-card{display:grid;grid-template-columns:122px minmax(0,1fr);min-height:157px;border-radius:13px}
 .f28-member-card-media{height:100%;min-height:157px}.f28-member-card-media img{height:100%}.f28-member-card-copy{padding:12px;gap:7px}.f28-member-card-copy h3{font-size:clamp(.88rem,3.4vw,1.04rem)}
 .f28-member-card-copy p{font-size:.73rem;line-height:1.38}.f28-member-card-cta{min-height:36px;font-size:.74rem;padding:7px;margin-top:auto}
 .f28-member-extras{grid-template-columns:1fr;gap:9px}.f28-member-privacy{font-size:.7rem}
 .f28-member-mobile-nav.f29-mobile-nav{display:flex!important;position:fixed;z-index:999;bottom:0;left:0;right:0;align-items:end;justify-content:space-around;gap:5px;background:#030f27f5;border-top:1px solid #2a5895;backdrop-filter:blur(18px);padding:12px 10px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -14px 35px #0008}
 .f29-mobile-nav a{min-width:48px;color:#a9c6e4;text-align:center;display:flex;align-items:center;flex-direction:column;gap:4px;text-decoration:none;font-size:.67rem}
 .f29-mobile-nav a svg{height:23px;width:23px}.f29-mobile-nav a.active{color:#27dcf8}
 .f29-mobile-nav .f29-mobile-main{height:59px;min-width:62px;border-radius:16px 16px 12px 12px;background:linear-gradient(155deg,#1bbff4,#8950f5);box-shadow:0 0 18px #5c68e7ac;color:white;transform:translateY(-10px);padding:10px}
 .f29-mobile-nav .f29-mobile-main svg{height:26px;width:26px}
 .dv .f28-dv-action-media{height:180px}
}
@media(max-width:375px){.f28-member-card{grid-template-columns:108px minmax(0,1fr);min-height:150px}.f28-member-card-media{min-height:150px}.f28-member-card-copy{padding:9px;gap:5px}.f28-member-card-copy p{font-size:.69rem}.f28-member-card-cta{font-size:.69rem}.f28-goal{flex-basis:80px;min-width:80px}.f28-hero h1{font-size:2.3rem}}
@media(prefers-reduced-motion:reduce){.f28-site *,.f28-member-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
