*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:Arial,Helvetica,sans-serif;color:#132b42;background:#dce8ee}body{display:flex;justify-content:center;align-items:center}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #ffb551;outline-offset:3px}[hidden]{display:none!important}#stage{position:relative;width:min(100vw,430px);height:100dvh;max-height:920px;overflow:hidden;background:#f4f9fc;display:flex;flex-direction:column;box-shadow:0 20px 90px #243b5040}header{height:64px;flex-shrink:0;display:flex;align-items:center;padding:12px 16px;gap:9px;background:#fff;border-bottom:1px solid #e7eff4;z-index:5}header img{width:35px;height:35px;border-radius:10px}header strong{font-size:15px}header small{display:block;font-size:9px;color:#6d8191;margin-top:3px}header>div{flex:1}#sound{border:1px solid #dce8ef;border-radius:50%;height:30px;width:30px;color:#1764b9;background:#fff}.mini{background:#1064d9;color:white;border:0;padding:8px 11px;border-radius:18px;font-weight:700;font-size:11px}.progress{display:flex;gap:5px;padding:10px 18px 0;height:15px;flex-shrink:0}.progress i{height:3px;flex:1;border-radius:5px;background:#dfebf2}.progress i.done{background:#18b3a2}main{position:relative;flex:1;min-height:0}.screen{position:absolute;inset:0;display:none;flex-direction:column;padding:19px 22px 12px;overflow:hidden;animation:appear .4s ease}.screen.active{display:flex}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:800;color:#127a8c}h1{font-size:30px;letter-spacing:-1.2px;line-height:1.12;margin:9px 0 9px}p{font-size:13px;line-height:1.55;color:#677f91;margin:0}.heading{flex-shrink:0;margin-bottom:16px}.primary{width:100%;border:0;color:white;background:#1266db;padding:15px 17px;border-radius:16px;font-size:15px;font-weight:700;box-shadow:0 7px 20px #1266db20;display:flex;justify-content:center;align-items:center;gap:15px;min-height:48px}.primary span{font-size:19px}.primary:active{transform:scale(.98)}.demo-label{font-size:8px;color:#728a9b;letter-spacing:.9px;font-weight:700}#intro{padding:0;background:#d9f4fa}.hero{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 48%}.intro-copy{z-index:1;padding:21px 23px;background:linear-gradient(#f0fbff 65%,#f0fbff00);height:31%}.intro-copy h1{font-size:29px}.intro-copy p{font-size:12px}.intro-bottom{margin-top:auto;z-index:1;padding:45px 22px 16px;background:linear-gradient(transparent,#e7fafb 34%);text-align:center}.intro-bottom .primary{margin-top:8px}.intro-bottom small{display:block;font-size:10px;color:#4d6e7b;margin-top:7px}#fingerprint{position:absolute;left:52%;top:61%;width:25%;height:17%;background:transparent;border:2px solid #fff9;border-radius:24px;box-shadow:0 0 0 7px #54e4e533;animation:pulse 1.7s infinite}@keyframes pulse{50%{box-shadow:0 0 0 15px #54e4e500}}footer{background:#fff;flex-shrink:0;padding:11px 20px 10px;z-index:4;border-top:1px solid #e6eff4}#caption{font-size:11px;line-height:1.45;color:#49667c;min-height:30px}.footer-line{display:flex;justify-content:space-between;font-size:8px;color:#8ca0ae;margin-top:8px;letter-spacing:.4px}#next{width:100%;border:0;background:#e9f3ff;color:#1266d6;font-size:12px;font-weight:700;border-radius:11px;padding:10px;margin-top:7px}.report-preview{height:39%;min-height:130px;position:relative;overflow:hidden;border-radius:21px;box-shadow:0 8px 28px #244b7010}.report-preview img{width:100%;position:absolute;top:-8%;}.sample-badge{position:absolute;right:10px;top:10px;font-size:8px;font-weight:700;background:#ffffffed;color:#1266db;border-radius:12px;padding:6px}.report-shade{position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#f4f9fc)}.report-panel{margin-top:9px;padding:13px 18px 17px;border-radius:20px;background:#fff;text-align:center;box-shadow:0 6px 24px #20436708}.lock{font-size:30px}h2{font-size:18px;margin:8px 0}.report-panel p{font-size:11px;margin-bottom:13px}.insights{padding:14px 16px;border-radius:20px;background:linear-gradient(130deg,#fff,#e6fbf6);margin-top:10px;text-align:center}.insights>div{display:flex;align-items:center;justify-content:center;gap:10px}.insights strong{font-size:31px;color:#0f9f8d}.insights small{font-size:12px}.insights label{font-size:10px;color:#61798a;max-width:70px;text-align:left}.insights p{font-size:12px;margin:10px 0}.activity-card{background:white;border-radius:23px;padding:14px 17px 15px;box-shadow:0 8px 30px #244b7010}.card-top{display:flex;justify-content:space-between;font-size:11px;font-weight:bold}.ring{position:relative;width:163px;height:163px;margin:5px auto}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke:#e6f7f4;stroke-width:12}.ring #ringValue{stroke:#19b4a2;stroke-linecap:round;stroke-dasharray:490;stroke-dashoffset:266;transition:stroke-dashoffset .8s}.ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring strong{font-size:35px;letter-spacing:-1px}.ring span{font-size:12px;color:#8a9eab;margin-top:2px}.stats{display:flex;justify-content:space-around;text-align:center}.stats strong{display:block;font-size:17px}.stats small{font-size:9px;color:#8a9eab}.week{padding:14px 17px;background:white;border-radius:18px;margin-top:10px}.week-title{font-weight:700;font-size:11px;display:flex;justify-content:space-between}.week-title span{font-size:9px;color:#137b91}.bars{height:65px;display:flex;gap:10px;align-items:flex-end;margin-top:9px}.bars button{border:0;background:transparent;flex:1;padding:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;color:#8ba0ae;font-size:8px}.bars i{display:block;width:15px;border-radius:6px;background:#d2e5f7;transition:.4s}.bars button.selected i{background:#176ce2}.bars button.selected{color:#176ce2;font-weight:bold}.source-preview{display:flex;align-items:center;gap:12px;margin-top:12px;color:#617b8c;font-size:11px;line-height:1.5}.source-preview img{height:47px;width:40px;object-fit:cover;object-position:top;border-radius:7px}.water-card{padding:17px;background:white;text-align:center;border-radius:23px}.water-count strong{font-size:31px;letter-spacing:-1px}.water-count span{font-size:13px;color:#99acb8}#waterCaption{font-size:11px;color:#7991a1;display:block;margin-top:4px}.glass{height:153px;width:128px;border:2px solid #69b9ed;border-top:5px solid #74bbee;border-radius:12px 12px 36px 36px;position:relative;overflow:hidden;margin:19px auto 15px;background:#f1faff}.glass>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:bold;color:#2560a1}#waterFill{position:absolute;bottom:0;left:0;width:100%;height:3%;background:linear-gradient(#77d8f3,#2189e5);transition:height .65s ease}.wave{position:absolute;height:20px;top:-8px;left:-20%;width:140%;border-radius:45%;background:#8de5f4;animation:swell 2s infinite alternate}@keyframes swell{to{transform:translateX(8px) rotate(4deg)}}.water-meta{display:flex;justify-content:space-between;color:#91a5b3;font-size:9px;margin-top:12px}.habit-note{color:#157f7d;text-align:center;font-size:11px;margin-top:14px;line-height:1.5}.water-source{margin-top:12px}#end{align-items:center;text-align:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#fff,#e4f6fa);padding:24px}.end-logo{height:96px;width:96px;border-radius:26px;box-shadow:0 14px 30px #ff37632b;margin:27px 0 15px}#end h1{font-size:31px;margin:8px 0 13px}#end p{font-size:13px}.features{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:22px 0}.features span{font-size:10px;background:#ffffffc9;border-radius:20px;padding:9px;color:#357384}#end .primary{margin-top:3px}.android{font-size:9px;color:#7c92a1;margin:12px 0 18px}#replay{border:0;color:#1266d6;background:none;font-size:12px;padding:8px}#storeNotice{position:absolute;inset:0;background:#102c4bc9;z-index:20;display:flex;justify-content:center;align-items:center;padding:25px}#storeNotice>div{background:white;border-radius:25px;padding:25px;text-align:center}#storeNotice img{height:65px;width:65px;border-radius:17px}#storeNotice p{font-size:12px;margin:12px 0 20px}#closeStore{background:none;border:0;color:#607b90;padding:17px 0 0;font-size:12px}@media(max-height:730px){header{height:54px;padding:8px 16px}.screen{padding-top:13px}.heading{margin-bottom:10px}h1{font-size:26px}.heading p{font-size:11px}.ring{height:135px;width:135px}.activity-card{padding:12px}.week{margin-top:8px;padding:11px 14px}.source-preview{margin-top:7px}.glass{height:120px;margin:12px auto}.water-card{padding:13px}.report-panel{padding:9px 15px 13px}.report-panel p{margin-bottom:9px}.lock{font-size:24px}#end .end-logo{height:75px;width:75px;margin:15px 0 10px}.features{margin:16px 0}footer{padding:8px 18px}#caption{font-size:10px;min-height:27px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

#intro{padding:20px 24px 12px;align-items:center;background:radial-gradient(ellipse at 70% 30%,#ddfff5,transparent 60%),linear-gradient(150deg,#eefaff,#d5f1fa)}
.scan-heading{width:100%;text-align:center}.scan-heading h1{font-size:28px;margin:9px 0}.scan-heading p{font-size:12px}.reading-console{width:100%;max-width:305px;margin:17px auto 7px;padding:15px 24px 8px;border:2px solid #fff;border-radius:29px;background:#ffffffc9;box-shadow:0 12px 35px #198dab22}.console-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:8px}.console-top>span:first-child{font-size:8px;font-weight:bold;letter-spacing:1px;color:#118f91}.console-top .demo-label{font-size:7px}.reading-row{display:flex;justify-content:center;align-items:center;gap:13px}.reading-row strong{font-size:62px;line-height:1.05;letter-spacing:-3px;font-variant-numeric:tabular-nums;min-width:110px;text-align:right}.reading-row>span{font-size:11px;line-height:1.45;color:#718a9c}.pulse-reading{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:5px}.pulse-reading strong{font-size:30px;font-variant-numeric:tabular-nums}.pulse-reading>span:last-child{font-size:11px;color:#718a9c}#beatingHeart{display:inline-block;font-size:43px;color:#ff3867;filter:drop-shadow(0 4px 6px #ff386740);animation:heartBeat 1.1s infinite}.ecg-line{overflow:hidden;height:30px;margin-top:3px}.ecg-line svg{width:200%;height:30px;animation:ecgMove 4s linear infinite}.ecg-line path{stroke:#13bdb6;stroke-width:2;fill:none}.finger-area{display:flex;flex:1;min-height:157px;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:100%}#fingerprint{position:relative;left:auto;top:auto;width:118px;height:118px;flex-shrink:0;background:linear-gradient(140deg,#e8ffff,#92e9f6);border:2px solid white;border-radius:30px;box-shadow:0 8px 28px #16c9df40;animation:fingerGlow 2s infinite;touch-action:none;user-select:none;-webkit-user-select:none;overflow:visible;color:#fff}.finger-svg{position:absolute;inset:12px;width:90px;height:90px;filter:drop-shadow(0 0 4px #04a6de)}.laser{position:absolute;left:8px;right:8px;top:15%;height:3px;background:#fff;box-shadow:0 0 9px 3px #05dded,0 0 20px 6px #12d6e755;border-radius:4px;animation:laserScan 2s ease-in-out infinite alternate}.hold-ring{position:absolute;inset:-10px;width:134px;height:134px;transform:rotate(-90deg);pointer-events:none}.hold-ring circle{fill:none;stroke:#0bbba5;stroke-width:4;stroke-dasharray:409;stroke-dashoffset:409}#holdCount{position:absolute;right:-10px;bottom:-5px;border-radius:30px;background:#1266db;color:white;padding:7px 9px;font-size:12px;font-weight:bold;min-width:32px}#holdLabel{font-size:14px;color:#135c7a;margin-top:5px}#holdHint{font-size:10px;color:#63899b}.scan-disclaimer{text-align:center;font-size:8px;line-height:1.5;color:#6b929f;width:100%;flex-shrink:0}.is-scanning #beatingHeart{animation-duration:.55s}.is-scanning .laser{animation-duration:.35s}.is-scanning .reading-console{box-shadow:0 0 25px #16c9df55}.is-scanning #fingerprint{background:linear-gradient(140deg,#bafcf2,#28cae6)}.is-scanning .reading-row strong{color:#087c98}.scan-complete #fingerprint{background:#16bfa8}.scan-complete .laser{display:none}@keyframes heartBeat{0%,100%{transform:scale(1)}15%{transform:scale(1.17)}30%{transform:scale(1)}45%{transform:scale(1.12)}60%{transform:scale(1)}}@keyframes laserScan{from{top:15%}to{top:83%}}@keyframes fingerGlow{50%{box-shadow:0 0 30px #16c9df88}}@keyframes ecgMove{to{transform:translateX(-50%)}}@media(max-height:730px){#intro{padding:10px 23px 8px}.scan-heading h1{font-size:24px}.scan-heading p{font-size:10px}.reading-console{margin:9px auto 3px;padding:10px 23px 5px}.reading-row strong{font-size:48px}.pulse-reading strong{font-size:24px}#beatingHeart{font-size:33px}.ecg-line{height:22px}.finger-area{min-height:135px;gap:4px}#fingerprint{width:99px;height:99px;border-radius:25px}.finger-svg{width:75px;height:75px;inset:10px}.hold-ring{width:115px;height:115px}#holdLabel{font-size:12px}.scan-disclaimer{font-size:7px}} 

/* Fixed, high-contrast continuation controls; no automatic step skipping. */
#nextHint{font-size:10px;color:#367384;text-align:center;font-weight:700;padding:3px 0 7px;letter-spacing:.3px}
#next{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:54px;margin-top:0;padding:14px 19px;background:linear-gradient(110deg,#0874e9,#0854cb);color:white;font-size:15px;border:2px solid #ffffff;border-radius:16px;box-shadow:0 5px 16px #0868d744;position:relative;overflow:hidden}
#next b{font-size:26px;line-height:1;animation:nextArrow 1.3s ease-in-out infinite}
#next:after{content:'';position:absolute;top:0;bottom:0;width:45px;left:-65px;background:linear-gradient(90deg,transparent,#ffffff28,transparent);transform:skewX(-20deg);animation:nextShine 4s infinite;pointer-events:none}
.nav-nudge #next{animation:nextPulse 1.6s ease-in-out infinite}
@keyframes nextArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
@keyframes nextShine{0%,60%{left:-65px}100%{left:120%}}
@keyframes nextPulse{50%{box-shadow:0 0 0 4px #1387ef24,0 6px 20px #0868d755}}
@media(max-height:730px){#next{min-height:47px;padding:10px 16px;font-size:14px}#nextHint{font-size:9px;padding:2px 0 5px}}
@media(prefers-reduced-motion:reduce){#next,#next b,#next:after{animation:none!important}}

#stage:has(#steps.active) #caption,#stage:has(#water.active) #caption,#stage:has(#report.active) #caption{display:none}#nextHint{display:none!important}#report .report-preview{height:46%}#steps .heading,#water .heading,#report .heading{text-align:center;margin-bottom:20px}#water .water-card{margin-top:12px}.water-meta{justify-content:center}

.daily-reminder{margin-top:auto;padding:18px 4px 12px;min-height:48px;flex-shrink:0;text-align:center;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:.1px;color:#368b91}
@media(max-height:730px){.daily-reminder{font-size:12px;min-height:32px;padding:9px 2px 4px}}


/* Fluid layout: controls keep their actual touch size, no whole-page scaling. */
html,body{height:100%;overflow:hidden}
#stage{width:min(100%,430px);height:100%;height:100dvh;max-height:none;transform:none}
main{container-type:size}
.screen{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.screen>*{flex-shrink:0}
.finger-area{flex:1 0 auto}
#fingerprint{width:clamp(82px,20cqh,118px);height:clamp(82px,20cqh,118px)}
.finger-svg{inset:10%;width:80%;height:80%}.hold-ring{inset:-8%;width:116%;height:116%}
.reading-console{padding-top:clamp(7px,2cqh,15px);padding-bottom:6px}
.reading-row strong{font-size:clamp(38px,9cqh,62px)}
.scan-heading h1{font-size:clamp(20px,4.3cqh,28px)}
.ring{width:clamp(96px,25cqh,163px);height:clamp(96px,25cqh,163px)}
.glass{height:clamp(100px,27cqh,180px)}
#report .report-preview{height:auto;min-height:100px;flex:1 1 0}
#report .report-panel{flex-shrink:0}
#stage:has(#intro.active) #caption,#stage:has(#end.active) #caption{display:none}
.daily-reminder{max-width:100%;text-wrap:balance}
#end{gap:0}
@media(max-height:600px){
 header{height:44px;padding:6px 12px;gap:7px}header img{height:29px;width:29px;border-radius:8px}header strong{font-size:13px}header small{font-size:8px;margin-top:1px}
 .progress{height:9px;padding:4px 12px 0}
 footer{padding:6px 12px}.footer-line{font-size:7px;margin-top:4px}
 #next{min-height:44px;padding:8px 13px;font-size:13px}
 .screen{padding:8px 14px 6px}
 #intro{padding:6px 16px 5px;gap:2px}
 .scan-heading .eyebrow{display:none}.scan-heading h1{font-size:20px;line-height:1.08;margin:3px 0 5px}.scan-heading p{font-size:10px;line-height:1.3}
 .reading-console{max-width:260px;margin:5px auto 2px;padding:7px 19px 4px;border-radius:22px}
 .console-top{margin-bottom:2px}.console-top>span:first-child{font-size:7px;letter-spacing:.6px}.console-top .demo-label{font-size:6px}
 .reading-row strong{font-size:38px;min-width:80px;line-height:1.02}.reading-row>span{font-size:10px}
 .pulse-reading{gap:9px;margin-top:2px}.pulse-reading strong{font-size:22px}#beatingHeart{font-size:28px}
 .ecg-line,.ecg-line svg{height:17px}.ecg-line{margin-top:0}
 .finger-area{min-height:121px;gap:3px;padding-top:7px}
 #fingerprint{width:82px;height:82px;border-radius:23px}
 #holdCount{font-size:10px;padding:5px;min-width:26px;bottom:-3px;right:-7px}
 #holdLabel{font-size:11px;margin-top:3px}#holdHint{font-size:9px}.scan-disclaimer{font-size:7px;line-height:1.3}
 #steps .heading,#water .heading,#report .heading{margin-bottom:8px}.heading h1{font-size:23px;margin:3px 0 4px}.heading p{font-size:10px}
 .activity-card{padding:9px 12px;border-radius:19px}.ring{height:96px;width:96px;margin:3px auto}.ring strong{font-size:28px}.ring span{font-size:10px}.stats strong{font-size:15px}.stats small{font-size:9px}
 .week{padding:9px 12px;margin-top:7px}.bars{height:54px;margin-top:4px;gap:6px}.bars i{max-height:35px}.bars button{gap:3px;font-size:9px;min-width:24px}
 .daily-reminder{min-height:32px;font-size:12px;padding:8px 2px 3px}
 #water .water-card{margin-top:4px;padding:11px 15px}.water-count strong{font-size:28px}.glass{height:112px;width:110px;margin:12px auto}.water-meta{margin-top:6px;font-size:8px}.primary{min-height:44px;padding:11px 14px;font-size:14px}
 #report .report-preview{min-height:95px;border-radius:18px}#report .report-panel{margin-top:7px;padding:8px 12px 11px}.lock{font-size:24px}.report-panel h2{font-size:17px;margin:4px 0}.report-panel p{font-size:10px;margin-bottom:8px}
 #end{padding:12px 20px}#end .eyebrow{font-size:7px;letter-spacing:1px}#end .end-logo{width:58px;height:58px;margin:12px 0 5px;border-radius:16px}#end h1{font-size:26px;margin:5px 0 8px}#end p{font-size:12px}.features{margin:12px 0;gap:5px}.features span{padding:7px;font-size:9px}.android{margin:9px 0 5px;font-size:8px}#replay{padding:6px;font-size:11px}
}
@media(max-width:300px){header small{display:none}.heading h1{font-size:21px}.screen{padding-left:10px;padding-right:10px}.daily-reminder{font-size:11px}}
@media(max-height:520px){#steps .ring{height:84px;width:84px}#steps .heading{margin-bottom:5px}#steps .activity-card{padding:7px 11px}#steps .week{padding:7px 11px;margin-top:5px}#steps .bars{height:45px}#steps .bars i{max-height:28px}#steps .daily-reminder{min-height:28px;padding-top:6px;font-size:11px}}

/* Website embed fills its phone frame. */
#stage{width:100%;box-shadow:none}body{background:#f4f9fc}header small{max-width:180px}#holdLabel{text-align:center}#next span{font-size:inherit}.heading h1{overflow-wrap:anywhere}

#caption{display:none!important}
@media(max-height:700px){#steps .heading{margin-bottom:10px}#steps .ring{height:110px;width:110px}#steps .activity-card{padding:10px 12px}#steps .week{padding:10px 12px;margin-top:7px}#steps .daily-reminder{font-size:12px;min-height:34px;padding:8px 0 4px}#report .heading h1{font-size:24px}#next{font-size:13px}#next span{font-size:inherit}}
@media(max-width:330px){.scan-heading .eyebrow{display:none}.scan-heading h1{font-size:21px}.scan-heading p{font-size:11px}.reading-console{margin:10px auto 4px}.finger-area{min-height:133px}#fingerprint{width:93px;height:93px}#end{padding:12px 16px}#end .eyebrow{font-size:7px;letter-spacing:.5px}#end .end-logo{height:54px;width:54px;margin:10px 0 5px}#end h1{font-size:25px;line-height:1.12;margin:6px 0 8px}#end p{font-size:11px}.features{margin:12px 0;gap:4px}.features span{font-size:9px;padding:6px}.android{font-size:8px;margin:9px 0}#replay{font-size:11px;padding:6px}}
