:root{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#193842;background:#f2f6f5;font-synthesis:none;--ink:#102b39;--mint:#b8f3dc}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,select:focus-visible{outline:3px solid #168979;outline-offset:4px}button{border:0}main{max-width:1000px;margin:auto;padding:32px 40px 40px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.brand{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:650}.brand-mark{width:34px;height:34px;background:var(--ink);border-radius:12px;display:grid;place-items:center;color:var(--mint);font-size:28px;font-weight:400}.eyebrow{font-size:12px;letter-spacing:2px;color:#58727a}.quiet{font-size:14px;color:#617880}.today{border:1px solid #d6e3e0;padding:8px 12px;border-radius:30px;font-size:13px}.intro h1{font-size:32px;line-height:1.35;font-weight:600;letter-spacing:-1px;margin:8px 0 12px}.intro p{color:#587079;font-size:15px;line-height:1.8;margin:0}.routine{position:relative;overflow:hidden;border-radius:24px;background:var(--ink);color:white;margin:26px 0 30px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px}.routine h2{font-size:23px;margin:10px 0}.routine p{font-size:14px;line-height:1.8;color:#bad1d6;margin:0 0 20px}.routine .eyebrow{color:var(--mint)}.primary{background:var(--mint);color:#153e37;border-radius:14px;padding:14px 22px;font-weight:650;font-size:16px;min-height:48px}.primary:hover{background:#a1e6cb}.orbit{width:150px;height:150px;flex-shrink:0;border:1px solid #47616c;border-radius:50%;display:grid;place-items:center;position:relative}.orbit:before{content:"";width:98px;height:98px;border:1px solid #58747a;border-radius:50%}.orbit:after{content:"";position:absolute;width:30px;height:30px;background:var(--mint);border-radius:50%;box-shadow:0 0 45px #b8f3dc44}.section-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.section-head h2{font-size:19px;margin:0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card{text-align:left;background:white;padding:23px;border-radius:20px;border:1px solid #e1e9e7;color:inherit;position:relative;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-2px);border-color:#98beb2}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.icon{font-size:31px;width:54px;height:54px;border-radius:17px;display:grid;place-items:center;color:#183d43}.card h3{font-size:18px;margin:0 0 7px;font-weight:600}.card p{font-size:14px;line-height:1.65;color:#607780;margin:0}.card-foot{margin-top:20px;display:flex;justify-content:space-between;font-size:13px;color:#647b80}.note{margin-top:25px;padding:17px 19px;border-left:2px solid #aac7bd;font-size:13px;line-height:1.9;color:#607780}.footer{margin-top:25px;font-size:12px;color:#71848a;display:flex;justify-content:space-between}.back,.secondary{background:#e6eeeb;color:#244750;padding:12px 17px;border-radius:12px;font-size:15px}.back{padding:8px 12px}.setup{max-width:580px;margin:45px auto}.setup h1{font-size:30px}.setup .description{font-size:16px;line-height:1.9;color:#587079}.setting{padding:20px 0;border-bottom:1px solid #dce7e3;display:flex;justify-content:space-between;align-items:center;gap:20px}.setting label{line-height:1.8}.setting small{display:block;font-size:13px;color:#657c81}.setting select{padding:10px;border:1px solid #b9cdc5;border-radius:10px;background:white;color:var(--ink)}input[type=checkbox]{width:24px;height:24px;accent-color:#236955}.setup .primary{width:100%;margin-top:28px}.sequence{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.chip{padding:8px 12px;border-radius:20px;background:#e1ece8;font-size:13px}.training{max-width:760px;margin:auto}.training-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}.training-title h1{font-size:22px;margin:0}.progress{height:4px;background:#dce7e3;border-radius:5px;overflow:hidden;margin:0 0 18px}.progress-fill{height:100%;background:#408a70}.stage{height:440px;background:var(--ink);border-radius:24px;position:relative;overflow:hidden;color:#c2dadc}.stage-label{position:absolute;top:20px;left:22px;font-size:12px;letter-spacing:2px;color:#9eb8c1}.stage-counter{position:absolute;right:22px;top:18px;font-size:15px;font-variant-numeric:tabular-nums}.crosshair{position:absolute;left:50%;top:50%;width:100px;height:100px;border:1px solid #ffffff10;border-radius:50%;transform:translate(-50%,-50%)}.dot{position:absolute;left:50%;top:50%;width:23px;height:23px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 8px #b8f3dc0b,0 0 32px #b8f3dc30;transform:translate(-50%,-50%);will-change:transform,left,top}.depth-ring{position:absolute;border:1px solid #b8f3dc18;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);width:65%;aspect-ratio:1;max-height:330px}.depth-ring.inner{width:38%;max-height:200px}.stage-rest{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;text-align:center;font-size:20px}.stage-rest small{font-size:14px;color:#a9c4cb}.eye{width:104px;height:58px;border:3px solid var(--mint);border-radius:70% 30% 70% 30%;transform:rotate(45deg);position:absolute;left:calc(50% - 52px);top:calc(50% - 29px);transition:height .4s,top .4s}.eye:after{content:"";position:absolute;left:calc(50% - 11px);top:calc(50% - 11px);width:22px;height:22px;background:var(--mint);border-radius:50%}.eye.closed{height:3px;top:50%;transform:rotate(0);border-radius:50%;border-width:2px}.eye.closed:after{display:none}.paused{position:absolute;inset:0;background:#102b39ee;display:grid;place-items:center;color:white;font-size:24px}.instruction{font-size:19px;min-height:62px;line-height:1.7;text-align:center;margin:23px 0 8px}.subinstruction{text-align:center;color:#657c81;font-size:13px;min-height:20px}.controls{display:flex;justify-content:center;gap:12px;margin:22px 0}.controls button{flex:1;max-width:240px}.audio-error{color:#825518;background:#fff0d9;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.7;margin:12px 0}.result{text-align:center;max-width:520px;margin:60px auto}.result-mark{font-size:45px;width:100px;height:100px;display:grid;place-items:center;background:#d8eee4;border-radius:50%;margin:auto;color:#285f4d}.result h1{font-size:30px}.result p{color:#607780;line-height:1.8}.result-stat{font-size:40px;margin:24px 0 5px}.result .primary{width:100%;margin-top:25px}[hidden]{display:none!important}@media(max-width:600px){main{padding:24px 20px calc(25px + env(safe-area-inset-bottom))}header{margin-bottom:27px}.intro h1{font-size:28px}.routine{padding:24px;border-radius:22px;gap:8px}.routine h2{font-size:21px}.orbit{width:94px;height:94px}.orbit:before{width:62px;height:62px}.orbit:after{width:21px;height:21px}.routine .primary{padding:12px 18px}.grid{gap:12px}.card{padding:18px 15px}.card h3{font-size:17px}.card p{font-size:13px;min-height:43px}.card-top{margin-bottom:18px}.icon{width:45px;height:45px;font-size:28px;border-radius:14px}.card .eyebrow{font-size:10px;letter-spacing:1px}.stage{height:48svh;min-height:290px;max-height:470px}.training-title{margin-top:12px}.training-title h1{font-size:19px}.instruction{font-size:17px}.setup{margin:32px auto}.today{font-size:12px}.footer{font-size:12px}}@media(prefers-reduced-motion:reduce){.card,.eye{transition:none}}
:root{--chrome-fade:650ms}
body.is-training{overflow:hidden;background:#102b39}
.is-training #app{padding:0;max-width:none}
.is-training .training{position:fixed;inset:0;max-width:none;margin:0;background:#102b39;color:#e1efed;isolation:isolate;overflow:hidden;touch-action:manipulation}
.is-training .stage{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;border-radius:0}
.is-training .training-top{position:absolute;z-index:3;top:0;left:0;right:0;padding:calc(20px + env(safe-area-inset-top)) 24px 28px;background:linear-gradient(#102b39f5,#102b3900)}
.is-training .training-top .back{float:right;background:#ffffff14;color:#e1efed}
.is-training .training-title{clear:both;padding-top:20px;margin:0 0 14px}
.is-training .quiet{color:#b5cbd0}
.is-training .progress{background:#ffffff16;margin-bottom:0}
.is-training .progress-fill{background:#8bcbb2}
.is-training .training-bottom{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:30px 24px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(#102b3900,#102b39fa 45%);max-height:55%;overflow-y:auto}
.is-training .instruction{margin:0 0 8px;min-height:0;font-size:18px}
.is-training .subinstruction{color:#acc5cb;margin:8px 0}
.is-training .controls{margin:18px 0 0}
.is-training .secondary{background:#ffffff18;color:#e1efed}
.is-training .stage-label,.is-training .stage-counter{top:calc(155px + env(safe-area-inset-top))}
.is-training .train-ui{opacity:1;visibility:visible;transition:opacity var(--chrome-fade) ease,visibility 0s}
.is-training .controls-hidden .train-ui{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--chrome-fade) ease,visibility 0s var(--chrome-fade)}
.is-training .paused{z-index:2;background:#102b39cc;pointer-events:none}
@media(prefers-reduced-motion:reduce){:root{--chrome-fade:0ms}}
.is-training .dot{width:32px;height:32px;background:transparent url('fixation-target.svg') center/contain no-repeat;border-radius:0;box-shadow:none}

/* Shared day/night palette; the training background stays fixed for a session. */
:root{color-scheme:light;--page:#edf0f2;--surface:#ffffff;--surface-soft:#e2e7ed;--text:#263746;--muted:#5e6f7e;--border:#d4dce3;--accent:#345fbd;--accent-text:#ffffff;--target:#29475a;--train:#edf0f2;--train-fade:#edf0f2f5;--train-clear:#edf0f200;--train-paused:#edf0f2ed;--target-image:url('fixation-target-light.svg')}
:root[data-theme="dark"]{color-scheme:dark;--page:#102b39;--surface:#193746;--surface-soft:#244351;--text:#e4edf2;--muted:#adc1cc;--border:#345260;--accent:#a8c9ff;--accent-text:#152f49;--target:#b7cbc4;--train:#102b39;--train-fade:#102b39f5;--train-clear:#102b3900;--train-paused:#102b39ed;--target-image:url('fixation-target.svg')}
:root,body{background:var(--page);color:var(--text)}
main{max-width:680px;padding:32px 28px}
header{margin-bottom:36px;gap:14px}
.brand{font-size:23px;letter-spacing:2px}.brand-mark{background:var(--text);color:var(--page);border-radius:9px}
.header-actions{display:flex;align-items:center;gap:8px}
.theme-select{font:inherit;font-size:14px;padding:10px 12px;min-height:42px;max-width:150px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--surface);cursor:pointer}
.home-simple h1{font-size:27px;font-weight:550;letter-spacing:-.5px;margin:0 0 24px}
.routine-start{display:flex;align-items:center;gap:18px;width:100%;padding:24px;color:var(--accent-text);background:var(--accent);border-radius:15px;text-align:left}
.routine-start-icon{font-size:30px}.routine-start strong{font-size:20px;font-weight:600;display:block}.routine-start small{display:block;font-size:14px;margin-top:7px;opacity:.85}.routine-arrow{margin-left:auto;font-size:24px}
.single-heading{font-size:14px;color:var(--muted);font-weight:500;margin:30px 0 14px}
.simple-card{display:flex;align-items:center;gap:18px;padding:27px 22px;border-radius:14px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:18px;font-weight:500;min-height:115px}
.simple-card .icon{background:transparent;color:var(--text);width:34px;height:40px;font-size:32px;border-radius:0}.simple-card:hover{border-color:var(--accent);transform:none}
.home-hint{font-size:14px;color:var(--muted);text-align:center;margin:32px 0 0}
.primary{background:var(--accent);color:var(--accent-text);border-radius:11px}.primary:hover{background:var(--accent);filter:brightness(.96)}
.back,.secondary{background:var(--surface-soft);color:var(--text);border-radius:10px}
.quiet,.eyebrow,.description,.setup .description,.setting small,.note,.result p,.subinstruction{color:var(--muted)}
.setting{border-color:var(--border)}.setting select{background:var(--surface);color:var(--text);border-color:var(--border)}
.chip,.result-mark{background:var(--surface-soft);color:var(--text)}.note{border-color:var(--border)}input[type=checkbox]{accent-color:var(--accent)}
body.is-training,.is-training .training,.is-training .stage{background:var(--train);color:var(--text)}
.is-training .training-top{background:linear-gradient(var(--train-fade),var(--train-clear))}
.is-training .training-bottom{background:linear-gradient(var(--train-clear),var(--train-fade) 45%)}
.is-training .training-top .back,.is-training .secondary{background:var(--surface-soft);color:var(--text)}
.is-training .quiet,.is-training .subinstruction,.is-training .stage-label,.is-training .stage-counter,.is-training .stage-rest small{color:var(--muted)}
.is-training .progress{background:var(--border)}.is-training .progress-fill{background:var(--accent)}
.is-training .paused{background:var(--train-paused);color:var(--text)}
.is-training .dot{background-image:var(--target-image)}
.is-training .eye{border-color:var(--target)}.is-training .eye:after{background:var(--target)}
.is-training .depth-ring{border-color:var(--border)}
.is-training .audio-error{background:var(--surface);color:var(--text);border:1px solid var(--border)}
@media(max-width:600px){main{padding:24px 22px calc(24px + env(safe-area-inset-bottom))}header{margin-bottom:38px}.home-simple h1{font-size:25px}.simple-card{flex-direction:column;justify-content:center;gap:10px;padding:23px 16px;min-height:125px}.routine-start{padding:23px 20px}.theme-select{max-width:138px}.setup{margin:26px auto}.header-actions .back{padding:10px}}

/* Eye-inspired visual identity, confined to the home screen. */
:root{--art:#52748d;--art-soft:#b8c8d4;--card-focus:#e4ebf4;--card-saccade:#e8eee9;--card-rotate:#eae8f2;--card-blink:#f1ece5}
:root[data-theme="dark"]{--art:#aac8db;--art-soft:#456375;--card-focus:#1c3b50;--card-saccade:#1d403f;--card-rotate:#303b53;--card-blink:#3c3f42}
header{margin-bottom:14px}.brand{font-weight:600;letter-spacing:3px}.brand-mark{border-radius:50%;width:32px;height:32px;background:transparent;color:var(--text);font-size:35px}.theme-select{background:transparent;border-color:var(--border);border-radius:24px;font-size:13px;padding:9px 10px}
.home-hero{display:flex;align-items:center;justify-content:space-between;min-height:200px;position:relative;margin-bottom:16px;gap:10px}.hero-copy{position:relative;z-index:1;flex-shrink:0}.hero-kicker{font-size:12px;color:var(--muted);letter-spacing:2px}.home-simple h1{font-family:"Songti SC","STSong","SimSun",serif;font-size:40px;letter-spacing:2px;line-height:1.4;font-weight:500;margin:15px 0 0}.hero-art{width:210px;max-width:48%;flex-shrink:0;position:relative}.iris-art{display:block;width:100%;height:auto}.iris-orbit{stroke:var(--art-soft);stroke-width:.7}.iris-lid{stroke:var(--art);stroke-width:1.7;fill:var(--surface);fill-opacity:.35}.iris-ring{stroke:var(--art);stroke-width:1}.iris-ring.faint{opacity:.4}.iris-pupil{fill:var(--art)}.iris-spark{fill:var(--page)}.iris-tick{stroke:var(--art-soft);stroke-width:.8}
.routine-start{border-radius:18px;background:#294e66;color:#eff7fb;padding:22px 24px;box-shadow:0 7px 18px #16334512}.routine-start-icon{width:43px;height:43px;display:grid;place-items:center;border:1px solid #ffffff38;border-radius:50%;flex-shrink:0}.routine-start-icon svg{width:29px;height:29px}.routine-start strong{font-size:18px;letter-spacing:1px}.routine-start small{font-size:12px;letter-spacing:.6px;margin-top:5px;color:#bfd3df;opacity:1}.routine-arrow{font-size:24px;font-weight:300}
[data-theme="dark"] .routine-start{background:#bed1dd;color:#183747;box-shadow:none}[data-theme="dark"] .routine-start small{color:#38576b}[data-theme="dark"] .routine-start-icon{border-color:#18374744}
.single-heading{display:flex;align-items:center;gap:18px;font-size:13px;letter-spacing:1px;margin:27px 0 15px}.section-rule{flex:1;height:1px;background:var(--border)}
.art-card{position:relative;align-items:flex-start;justify-content:space-between;flex-direction:column;gap:15px;min-height:159px;padding:22px;border:1px solid transparent;border-radius:18px;overflow:hidden;transition:border-color .2s,transform .2s}.card-focus{background:var(--card-focus)}.card-saccade{background:var(--card-saccade)}.card-rotate{background:var(--card-rotate)}.card-blink{background:var(--card-blink)}.art-card .icon{width:45px;height:45px;color:var(--art);padding:0}.art-card .icon svg{width:100%;height:100%}.card-index{position:absolute;right:18px;top:17px;font-size:11px;font-family:Georgia,serif;letter-spacing:1px;color:var(--muted)}.card-copy{text-align:left;display:flex;flex-direction:column;gap:5px}.card-copy strong{font-size:18px;font-weight:550;letter-spacing:2px}.card-copy small{font-size:12px;color:var(--muted);letter-spacing:1px}.card-corner{position:absolute;right:18px;bottom:18px;color:var(--muted);font-size:20px}.art-card:hover{transform:translateY(-2px);border-color:var(--art-soft)}.home-hint{font-size:12px;letter-spacing:1px;margin-top:26px}.home-hint span{opacity:.45;padding:0 10px}
@media(max-width:600px){main{padding:22px 22px calc(22px + env(safe-area-inset-bottom))}header{margin-bottom:6px}.home-hero{min-height:187px;margin-bottom:14px}.hero-art{width:170px;max-width:48%}.home-simple h1{font-size:34px}.hero-kicker{font-size:11px;letter-spacing:1px}.routine-start{padding:19px 20px;gap:14px}.art-card{min-height:149px;padding:18px;gap:12px}.single-heading{margin-top:25px}.home-hint{margin-top:24px}.art-card .icon{width:43px;height:43px}}
@media(max-width:350px){.home-simple h1{font-size:29px}.hero-kicker{font-size:10px}.home-hero{min-height:165px}.art-card{min-height:140px}.routine-start{padding:18px 15px}.routine-start strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.art-card{transition:none}.art-card:hover{transform:none}}
.art-card .icon{width:52px;height:52px}
/* Duskglow brand: expressive home, quiet training. */
.brand-logo{width:42px;height:42px;border-radius:13px;display:block}.brand>span{line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;color:var(--muted)}
body.is-home{background:var(--home-bg,#eff6f5)}
.is-home #app{--text:#224445;--muted:#5d787a;--border:#cfdfde;--surface:#f8fcfc;--art:#377775;max-width:680px;color:var(--text);background:radial-gradient(ellipse at 90% 8%,#b8eae548,transparent 48%);min-height:100svh}
[data-theme="dark"] .is-home{--home-bg:#10282c}
[data-theme="dark"] .is-home #app{--text:#ecf8f4;--muted:#9bbabb;--border:#315459;--surface:#19373d;--art:#8ce4d3;background:radial-gradient(ellipse at 90% 10%,#21787a25,transparent 48%)}
.is-home .theme-select{color:var(--text);border-color:var(--border);background:var(--surface)}
.is-home .home-hero{min-height:202px;gap:16px}.is-home .home-simple h1{font-family:inherit;font-size:38px;font-weight:750;line-height:1.4;letter-spacing:1px}.hero-kicker{font-size:10px;letter-spacing:1.2px}
.gradient-text{color:#347e87;background:linear-gradient(100deg,#247b76,#6861aa 65%,#b45c80);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
[data-theme="dark"] .gradient-text{background-image:linear-gradient(100deg,#8af7da,#b3b5ff 60%,#ffc5bc)}
.brand-art{height:168px;display:flex;align-items:center;justify-content:center;transform:rotate(-7deg);border:1px solid #64c9c980;border-radius:40px;background:#173b40;box-shadow:0 0 24px #4bd9cd15,inset 0 0 20px #52d6d014;max-width:45%;width:168px}
.hero-word{font-size:49px;font-weight:850;line-height:.87;letter-spacing:-3px;background:linear-gradient(110deg,#8df8d9 5%,#9ad8f8 35%,#d7aef7 64%,#ffbea8);background-clip:text;-webkit-background-clip:text;color:transparent;transform:rotate(3deg)}
.hero-wink{position:absolute;right:13px;top:21px;width:27px;height:20px;color:#a2f5e9}
.is-home .routine-start{background:linear-gradient(110deg,#a1efd9,#bad5f0 58%,#e5c6ec);color:#173f43;border-radius:22px;border:1px solid #d0f5eb;box-shadow:0 8px 24px #173f4310}.is-home .routine-start small{color:#3d6268}.is-home .routine-start-icon{border:0;background:#ffffff65;color:#264d53;border-radius:15px}
.is-home .art-card{border-radius:23px;border-color:var(--border);background:var(--surface);min-height:150px}.is-home .card-focus{--card-color:#377e79}.is-home .card-saccade{--card-color:#507dc0}.is-home .card-rotate{--card-color:#8f68af}.is-home .card-blink{--card-color:#b77571}.is-home .art-card .icon{color:var(--card-color)}
[data-theme="dark"] .is-home .card-focus{--card-color:#89dfca}[data-theme="dark"] .is-home .card-saccade{--card-color:#92c9f2}[data-theme="dark"] .is-home .card-rotate{--card-color:#c9aff1}[data-theme="dark"] .is-home .card-blink{--card-color:#f1bcb1}
.is-home .art-card:after{content:"";position:absolute;width:85px;height:85px;right:-34px;top:-30px;border-radius:50%;background:var(--card-color);opacity:.08;pointer-events:none}.is-home .card-copy strong{font-weight:650;letter-spacing:1px}.is-home .card-index{font-family:inherit;font-size:10px;opacity:.6}.is-home .card-corner{color:var(--card-color)}
@media(max-width:600px){.is-home .home-hero{min-height:195px}.is-home .home-simple h1{font-size:32px}.brand-art{width:145px;height:145px;border-radius:34px}.hero-word{font-size:43px}.is-home .art-card{min-height:142px}.is-home .home-hint{margin-top:22px}}
@media(max-width:360px){.is-home #app{padding-left:17px;padding-right:17px}.is-home .home-simple h1{font-size:29px}.brand-art{width:125px;height:135px}.hero-word{font-size:38px}.hero-kicker{font-size:9px}.brand{gap:8px;font-size:20px}.theme-select{font-size:12px}}
/* Colored practice tiles with one solid ink per icon. */
.is-home .card-focus{--tile:#b8ecd8;--tile-ink:#20594d}
.is-home .card-saccade{--tile:#bfddfb;--tile-ink:#2a527f}
.is-home .card-rotate{--tile:#dcccf4;--tile-ink:#634480}
.is-home .card-blink{--tile:#ffd6be;--tile-ink:#824a37}
[data-theme="dark"] .is-home .card-focus{--tile:#8fcbb6;--tile-ink:#153f35}
[data-theme="dark"] .is-home .card-saccade{--tile:#a4c6e7;--tile-ink:#25496c}
[data-theme="dark"] .is-home .card-rotate{--tile:#bba8d9;--tile-ink:#493360}
[data-theme="dark"] .is-home .card-blink{--tile:#e3b59d;--tile-ink:#603d2e}
.is-home .art-card{background:var(--tile);color:var(--tile-ink);border-color:transparent}
.is-home .art-card .icon,.is-home .art-card .card-corner,.is-home .art-card .card-index,.is-home .art-card .card-copy small{color:var(--tile-ink)}
.is-home .art-card .card-copy small{opacity:.85}.is-home .art-card .card-index{opacity:.55}
.is-home .art-card:after{display:none}.is-home .art-card:hover{border-color:var(--tile-ink)}

/* Daily calendar and fixed primary navigation. */
.checkin-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:22px;margin:24px 0;color:var(--text)}
.checkin-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.checkin-kicker{font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:8px}.checkin-title{font-size:20px;font-weight:650}.checkin-stamp{flex-shrink:0;border-radius:24px;padding:8px 12px;font-size:12px;color:var(--accent);background:var(--surface-soft)}.checkin-summary{font-size:13px;color:var(--muted);margin-top:12px}
.month-head{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px;font-size:15px;font-weight:600}.month-head button{background:transparent;color:var(--text);font-size:26px;width:44px;height:44px;padding:0;border:0;line-height:44px}.month-head button:disabled{opacity:.25}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;font-size:12px;color:var(--muted);padding-bottom:10px}.calendar-day{height:45px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;border-radius:12px;border:1px solid transparent;box-sizing:border-box}.calendar-day.is-today{border-color:var(--accent)}.calendar-day.is-checked{background:var(--accent);color:var(--accent-text)}.calendar-day.is-future{color:var(--muted);opacity:.5}.day-mark{font-size:10px;line-height:14px;height:14px}.checkin-foot{border-top:1px dashed var(--border);padding-top:16px;margin-top:18px;text-align:center;font-size:12px;color:var(--muted)}
.nav-training{display:block;width:26px;height:19px;border:2px solid currentColor;border-radius:60% 40%;position:relative;box-sizing:border-box;margin:4px 0}.nav-training:after{content:'';position:absolute;width:7px;height:7px;border:2px solid currentColor;border-radius:50%;top:2px;left:7px}.nav-person{display:block;width:26px;height:27px;position:relative}.nav-person:before{content:'';position:absolute;left:8px;top:0;width:10px;height:10px;border:2px solid currentColor;border-radius:50%;box-sizing:border-box}.nav-person:after{content:'';position:absolute;left:2px;bottom:0;width:22px;height:13px;border:2px solid currentColor;border-radius:14px 14px 4px 4px;box-sizing:border-box}.profile-hero{text-align:center;padding:28px 0}.profile-avatar{width:72px;height:72px;border-radius:50%;background:var(--surface-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:auto}.profile-stats{display:flex;justify-content:space-around;padding:26px 12px;background:var(--surface);border:1px solid var(--border);border-radius:24px;font-size:13px;text-align:center;color:var(--muted)}.stat-number{font-size:32px;color:var(--text);font-weight:650;margin-bottom:8px}

:root, :root:has(body.is-home){--page:#fafafa;--surface:#fff;--surface-soft:#ededf0;--text:#202126;--muted:#73757c;--border:#e2e3e8;--train:#fafafa;--train-fade:#fafafaf5;--train-clear:#fafafa00;--train-paused:#fafafaed}
:root[data-theme="dark"],:root[data-theme="dark"]:has(body.is-home){--page:#141416;--surface:#202023;--surface-soft:#2c2c31;--text:#f4f4f5;--muted:#a5a5ae;--border:#37373e;--train:#141416;--train-fade:#141416f5;--train-clear:#14141600;--train-paused:#141416ed}
body.is-home{background:var(--page)}body:not(.is-training) #app{padding-bottom:calc(115px + env(safe-area-inset-bottom))}.setting small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}

.is-home #app,[data-theme="dark"] .is-home #app{--text:inherit;--muted:inherit;--border:inherit;--surface:inherit;background:none}

/* Floating capsule menu with a separate selected pill. */
.bottom-nav{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom));left:0;right:0;width:calc(100% - 48px);max-width:300px;margin:0 auto;z-index:10;display:flex;align-items:center;gap:6px;padding:4px;box-sizing:border-box;background:rgba(241,241,243,.9);border:1px solid rgba(255,255,255,.85);border-radius:999px;box-shadow:0 8px 30px #15152518,inset 0 1px 0 #ffffff80;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#303035}
.bottom-nav .nav-item{position:relative;isolation:isolate;flex:1;min-width:0;height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;padding:5px 0;background:transparent;color:#36363b;font-size:12px;border:0;border-radius:999px;line-height:1.2;font-weight:400;cursor:pointer}
.bottom-nav .nav-item:before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:88px;max-width:100%;transform:translateX(-50%);border-radius:999px;background:transparent;transition:background .18s ease,box-shadow .18s ease}
.bottom-nav .nav-item.active{color:#2424ce;font-weight:600}.bottom-nav .nav-item.active:before{background:#fff;box-shadow:0 2px 12px #1e1e3c04}
.bottom-nav .nav-training{width:27px;height:21px;margin:3px 0}.bottom-nav .nav-training:after{left:7px;top:3px}.bottom-nav .nav-item.active .nav-training{background:currentColor}.bottom-nav .nav-item.active .nav-training:after{border-color:#fff;background:#fff}.bottom-nav .nav-item.active .nav-person:before,.bottom-nav .nav-item.active .nav-person:after{background:currentColor}
[data-theme="dark"] .bottom-nav{background:rgba(39,39,44,.92);border-color:#484850;box-shadow:0 8px 30px #0005,inset 0 1px 0 #ffffff08}[data-theme="dark"] .bottom-nav .nav-item{color:#b9b9c2}[data-theme="dark"] .bottom-nav .nav-item.active{color:#b4bbff}[data-theme="dark"] .bottom-nav .nav-item.active:before{background:#414149;box-shadow:0 2px 12px #0001}[data-theme="dark"] .bottom-nav .nav-item.active .nav-training:after{background:#414149;border-color:#414149}

.bottom-nav .nav-item:focus-visible{outline:2px solid #7676ef;outline-offset:2px}@media(prefers-reduced-motion:reduce){.bottom-nav .nav-item:before{transition:none}}

.bottom-nav .nav-training,.bottom-nav .nav-person{transform:scale(.8);transform-origin:center;flex-shrink:0}.bottom-nav .nav-training{margin:0}

/* Balanced proportions across both primary screens. */
.bottom-nav{max-width:235px;padding:3px;gap:3px;bottom:calc(10px + env(safe-area-inset-bottom))}.bottom-nav .nav-item{height:51px;gap:2px;padding:3px 0;font-size:12px}.bottom-nav .nav-item:before{width:75px}.bottom-nav .nav-training,.bottom-nav .nav-person{transform:scale(.68)}
.profile-hero{display:grid;grid-template-columns:51px 1fr;column-gap:14px;text-align:left;align-items:center;padding:16px 3px 20px}.profile-avatar{grid-row:1 / 3;width:51px;height:51px;margin:0}.profile-hero h1,.profile-hero .setup-title{font-size:18px;margin:0;line-height:1.4}.profile-hero .description{font-size:12px;margin:3px 0 0;line-height:1.5}.profile-stats{padding:14px 10px;border-radius:20px;font-size:12px}.stat-number{font-size:24px;margin-bottom:3px}
.checkin-card{padding:16px;margin:12px 0;border-radius:22px}.checkin-kicker{font-size:9px;margin-bottom:5px}.checkin-title{font-size:16px}.checkin-stamp{padding:6px 9px;font-size:12px}.checkin-summary{font-size:12px;margin-top:8px}.month-head{margin:8px 0;font-size:13px}.month-head button{width:36px;height:36px;line-height:36px;font-size:23px}.calendar-grid{gap:3px}.weekday{font-size:12px;padding-bottom:3px}.calendar-day{height:31px;font-size:12px;border-radius:10px}.day-mark{font-size:9px;line-height:10px;height:10px}.checkin-foot{font-size:12px;padding-top:10px;margin-top:10px}
.checkin-link{display:block;width:100%;margin-top:12px;font-size:13px;padding:12px}
.result{position:relative}.celebration{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden;animation:celebration-hide 2.2s forwards}.celebration-particle{position:absolute;width:5px;height:9px;border-radius:2px;background:var(--spark);opacity:0;animation:checkin-burst 1.6s var(--delay) ease-out both}
@keyframes checkin-burst{0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0deg)}12%{opacity:1}65%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.65) rotate(210deg)}}
@keyframes celebration-hide{0%,95%{visibility:visible}100%{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.celebration{display:none}}

body:not(.is-training) #app{padding:24px 24px calc(96px + env(safe-area-inset-bottom));max-width:540px}body:not(.is-training) header{margin-bottom:14px}.brand{font-size:18px;gap:10px}.brand-logo{width:33px;height:33px;border-radius:10px}.brand small{font-size:9px}
.is-home .home-hero{min-height:147px;gap:12px}.is-home .home-simple h1{font-size:28px;margin:14px 0}.brand-art{width:109px;height:109px;border-radius:28px}.hero-word{font-size:35px}.hero-kicker{font-size:10px}.is-home .routine-start{padding:16px;border-radius:20px;gap:12px}.routine-start strong{font-size:16px}.routine-start small{font-size:12px;margin-top:3px}.routine-start-icon{width:31px;height:31px}.single-heading{font-size:12px;margin:22px 0 12px}.is-home .art-card{min-height:115px;padding:17px;border-radius:20px}.is-home .art-card .icon{width:39px;height:39px;margin-bottom:10px}.is-home .card-copy strong{font-size:17px}.is-home .card-copy small{font-size:12px}.is-home .home-hint{font-size:12px;margin-top:14px}.setting{padding:17px 0;font-size:14px}.theme-select{font-size:12px;min-height:36px;padding:8px 10px}.note{font-size:12px;margin-top:17px;padding:10px 14px}

/* Keep secondary screens in the same comfortable scale. */
body:not(.is-training) .setup{margin:28px auto}body:not(.is-training) .setup h1,body:not(.is-training) .result h1{font-size:26px}body:not(.is-training) .description{font-size:15px}body:not(.is-training) .profile-hero .description{font-size:12px}body:not(.is-training) .chip{font-size:13px;padding:7px 12px}body:not(.is-training) .primary,body:not(.is-training) .secondary,body:not(.is-training) .back{font-size:15px;padding:13px 18px}body:not(.is-training) .result{margin:37px auto}body:not(.is-training) .result-mark{width:81px;height:81px;font-size:37px}body:not(.is-training) .result-stat{font-size:35px}body:not(.is-training) .result p{font-size:15px}.is-home .card-index{top:16px;right:18px}.is-home .card-corner{right:18px;bottom:16px;font-size:23px}.is-home .grid{gap:12px}

/* Calendar arrows: override the native disabled button surface. */
.checkin-card .month-head{align-items:center;min-height:36px}
.checkin-card .month-head button.month-arrow{display:flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text);box-shadow:none;line-height:1;opacity:1}
.checkin-card .month-head button.month-arrow[disabled]{background:transparent!important;background-color:transparent!important;color:var(--muted)!important;opacity:.3;box-shadow:none;cursor:default}
.checkin-card .month-head button.month-arrow::after{border:0;background:transparent}
.month-chevron{display:block;box-sizing:border-box;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.month-chevron.previous{transform:rotate(-135deg)}

.month-arrow:not(:disabled):hover,.month-arrow:not(:disabled):active{background:var(--surface-soft)!important}.month-arrow:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

@media(max-width:350px){body:not(.is-training) #app{padding-left:20px;padding-right:20px}.is-home .home-simple h1{font-size:26px}.is-home .home-hero{gap:8px}.brand-art{width:96px;height:96px}.is-home .art-card{padding:16px}.checkin-card{padding:14px}}

/* Original luminous logo takes the place of the home wordmark tile. */
.is-home .home-hero{min-height:180px;margin-bottom:20px;gap:12px}.is-home .hero-copy{flex:1;min-width:0}.hero-logo-wrap{position:relative;flex:0 0 132px;width:132px;height:132px;transform:rotate(-7deg)}.hero-logo{display:block;width:100%;height:100%;border-radius:28px;box-shadow:0 0 28px #26e5dc28,0 10px 28px #072f3520}.is-home .hero-kicker{letter-spacing:.5px}
@media(max-width:350px){.hero-logo-wrap{flex-basis:112px;width:112px;height:112px}.hero-logo{border-radius:24px}.is-home .hero-kicker{font-size:9px}.is-home .home-hero{min-height:165px}}

/* Keep the target area separate from the persistent bottom controls. */
.is-training .training{display:flex;flex-direction:column;height:100vh;height:100dvh}
.is-training .training-top{position:relative;order:0;flex-shrink:0;padding:calc(env(safe-area-inset-top) + 18px) 24px 12px;background:none}
.is-training .training-title{margin:12px 0}.stage-meta{margin-top:12px}
.is-training .stage{position:relative;inset:auto;width:auto;height:auto;max-height:none;order:1;flex:1;min-height:0;margin:0 20px;overflow:hidden}
.is-training .training-bottom{position:relative;order:2;flex-shrink:0;max-height:none;overflow:visible;padding:12px 24px calc(16px + env(safe-area-inset-bottom));background:var(--page)}
.is-training .training-range{position:absolute;inset:10px;border:1px solid var(--muted);opacity:.22;border-radius:24px;pointer-events:none}
.is-training .dot{width:44px;height:44px;will-change:left,top,transform}
.is-training .motion-arrow{position:absolute;top:14px;left:0;right:0;text-align:center;font-size:32px;line-height:1.2;color:var(--muted);pointer-events:none}
.is-training .instruction{font-size:16px;line-height:1.5;margin:0 0 8px}.controls{margin-top:12px}
.is-training .stage-label,.is-training .stage-counter{display:none}
@media(max-height:600px){.training-top{padding-top:8px}.training-title{margin:6px 0}.stage-meta{display:none}.training-bottom{padding-top:8px}.instruction{font-size:14px}.controls{margin-top:6px}}

/* Preparation timeline and quiet, text-free exercise controls. */
.guide-title{font-size:18px;font-weight:600;margin:28px 0 20px}.guide-step{position:relative;display:flex;gap:16px;padding-bottom:26px}.guide-step:not(:last-child):before{content:'';position:absolute;left:14px;top:30px;bottom:0;border-left:1px solid var(--border)}.guide-node{flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:13px}.guide-copy{flex:1;min-width:0;padding-top:3px}.guide-name{font-size:16px;font-weight:600}.guide-detail{font-size:14px;line-height:1.8;color:var(--muted);margin-top:6px}
.training .stage{margin-top:var(--top-inset,40px)}
.training .controls{margin:0;justify-content:center;gap:20px}.training .controls .icon-control{display:flex;align-items:center;justify-content:center;flex:0 0 64px;width:64px;height:52px;min-height:52px;padding:0;border-radius:20px}
.control-symbol{display:block;box-sizing:border-box;color:inherit}.symbol-pause{width:18px;height:22px;border-left:6px solid currentColor;border-right:6px solid currentColor}.symbol-play{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:19px solid currentColor;margin-left:4px}.symbol-stop{width:18px;height:18px;background:currentColor;border-radius:3px}
.away-icon{position:relative;width:70px;height:52px;border:2px solid var(--muted);border-radius:12px;overflow:hidden;opacity:.65}.away-icon:before{content:'';position:absolute;width:40px;height:40px;left:4px;top:26px;border:2px solid var(--muted);transform:rotate(45deg)}.away-icon:after{content:'';position:absolute;right:12px;top:10px;width:9px;height:9px;border:2px solid var(--muted);border-radius:50%}.ready-icon{width:16px;height:16px;border-radius:50%;background:var(--muted);opacity:.4}

/* Active step progress uses the same paused clock as target motion. */
.training .dot{isolation:isolate}
.target-progress{position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(from 0deg,#ed9638 0deg,#ed9638 var(--step-angle,0deg),transparent var(--step-angle,0deg),transparent 360deg);pointer-events:none;z-index:-1}
.target-progress:before{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid var(--border)}
.target-progress:after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--page)}

/* Match the native eyelid motion. */
.eye{border-radius:50%;transform:rotate(0);overflow:hidden;transition:transform .28s ease-in-out}
.eye.closed{height:58px;top:calc(50% - 29px);border-width:3px;border-radius:50%;transform:scaleY(.06)}
.eye:after{transition:opacity .18s ease}
.eye.closed:after{display:block;opacity:0}
@media(prefers-reduced-motion:reduce){.eye,.eye:after{transition:none}}

/* Preparation disclosure and quiet completion. */
.setup-details{margin:16px 0;padding:16px;border-radius:14px;background:var(--surface-soft);color:var(--text)}.setup-details summary{cursor:pointer;line-height:1.6}.setup-duration{color:var(--muted);font-size:14px}.session-meta{display:flex;justify-content:space-between;gap:16px;padding:calc(env(safe-area-inset-top) + 20px) 24px 12px;color:var(--muted);font-size:13px;flex-shrink:0}.is-training .training .stage{margin-top:0}.session-hint{min-height:44px;font-size:14px;line-height:1.6;text-align:center;color:var(--muted);padding-bottom:10px}.training .controls .icon-control{flex:1;max-width:180px;width:auto;gap:12px;font-size:15px}.result-rest{font-size:20px;color:var(--text);margin:28px 0;line-height:1.7}.rest-detail{margin-top:10px;font-size:14px;color:var(--muted)}.training .audio-error{margin:0 0 12px;padding:10px;font-size:13px}

.language-nav{max-width:680px;margin:0 auto;padding:18px 24px 0;display:flex;justify-content:flex-end;gap:16px;font-size:13px}.language-nav a,.site-intro a{color:var(--accent)}.language-nav [aria-current=page]{color:var(--text);text-decoration:none}.site-intro{max-width:680px;margin:0 auto;padding:12px 24px 110px;line-height:1.8;color:var(--muted)}.site-intro h2{font-size:22px;color:var(--text);margin-top:36px}.site-intro h3{font-size:17px;color:var(--text);margin:20px 0 8px}.site-intro p{margin-top:0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.site-intro footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}body:not(.is-home) .site-intro,body.is-training .language-nav{display:none}html[lang=en] .home-simple h1{font-family:inherit;font-size:36px;letter-spacing:-1px}html[lang=en] .hero-kicker{letter-spacing:1px;font-size:10px}html[lang=en] .card-copy strong{font-size:22px}html[lang=en] .checkin-title{font-size:18px}html[lang=en] .checkin-top{flex-wrap:wrap;gap:12px}html[lang=en] .session-meta{flex-wrap:wrap}@media(max-width:420px){.intro-grid{grid-template-columns:1fr}html[lang=en] .home-simple h1{font-size:30px}html[lang=en] .card-copy small{font-size:11px}}
