@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("fonts/fraunces-latin-600-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Source Sans 3";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Source Sans 3";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Source Sans 3";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}

:root{
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --space-7:48px;
  --radius-sm:10px; --radius-md:16px; --radius-lg:24px;
  --page-pad:16px; --card-pad:16px; --tap:44px; --navh:64px;
  --shadow:0 1px 2px rgba(28,25,22,.06), 0 8px 24px rgba(28,25,22,.05);
  --bg:#f3efe6; --bg-sunken:#e8e1d4; --bg-elev:#fffdf8;
  --ink:#1c1916; --mut:#575148; --line:#e3dacb;
  --brand:#1f5c4b; --brand-2:#2e7a64; --brand-soft:#e3f0eb; --brand-on:#ffffff;
  --hero-mut:#d7ece5;
  --copper:#a44c20; --copper-ink:#8a3d14; --copper-bg:#f8e6d9;
  --gold-ink:#6f5218; --gold-bg:#f5edd6;
  --red:#b42318; --red-bg:#fdecea;
  --safe-ink:#7a3e16; --safe-bg:#f8e6d9;
  --focus:#1f5c4b;
  --disabled-bg:#e8e1d4; --disabled-ink:#575148;
  --font-display:"Fraunces", ui-serif, Georgia, serif;
  --font-ui:"Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --fs-display:32px; --fs-h2:20px; --fs-h3:12px; --fs-body:16px;
  --fs-small:14px; --fs-caption:12px; --fs-button:16px;
  --fs-timer:64px; --fs-kpi:28px; --fs-price:40px; --fs-wordmark:22px;
  --safeb:env(safe-area-inset-bottom, 0px);
  --safet:env(safe-area-inset-top, 0px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.5;
  -webkit-font-smoothing:antialiased; min-height:100%;}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:var(--brand)}
img{max-width:100%;display:block}
h1{font-family:var(--font-display);font-size:var(--fs-display);line-height:1.15;font-weight:600;letter-spacing:-0.02em;margin:0 0 8px}
h2{font-family:var(--font-ui);font-size:var(--fs-h2);line-height:1.25;font-weight:600;letter-spacing:-0.01em;margin:0 0 8px}
h3,.h3{font-size:var(--fs-h3);line-height:1.3;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:24px 0 8px}
p{margin:0 0 12px}
ul{margin:0 0 12px;padding:0 0 0 1.15em}
.time b,.kpi .v,.price,.repn{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

#app{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}
#top{display:flex;align-items:center;gap:12px;padding:calc(10px + var(--safet)) 16px 10px;min-height:calc(56px + var(--safet));border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}
#top.hidden,#nav.hidden{display:none}
.brand{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;color:inherit}
.mark{width:32px;height:32px;flex:none}
.wordmark{font-family:var(--font-display);font-size:var(--fs-wordmark);font-weight:600;letter-spacing:-0.02em}
.modes{margin-left:auto;display:flex;background:var(--bg-sunken);border-radius:99px;padding:3px}
.modes button{min-height:44px;min-width:64px;padding:0 14px;border-radius:99px;color:var(--mut);font-weight:600;font-size:14px}
.modes button[aria-pressed="true"]{background:var(--brand);color:#fff}
.iconbtn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;color:var(--ink)}
.iconbtn:focus-visible,.btn:focus-visible,.modes button:focus-visible,.choice:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

#main{flex:1;padding:16px 16px calc(var(--navh) + var(--safeb) + 16px);width:100%;max-width:720px;margin:0 auto}
#main.wide{max-width:1080px}

.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--card-pad);box-shadow:var(--shadow)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.kpi{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px}
.kpi .l{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.kpi .v{font-size:var(--fs-kpi);font-weight:700;line-height:1;margin-top:6px}

.hero{background:var(--brand);color:#fff;padding:20px 16px 16px;margin-bottom:16px;border-radius:var(--radius-md);box-shadow:var(--shadow)}
.hero h2{color:#fff;font-family:var(--font-display);font-size:24px;line-height:1.2;margin:0 0 6px}
.hero p{color:var(--hero-mut);margin:0 0 16px}
.hero .btn.pri{background:#fff;color:var(--brand)}
.hero .btn.pri:hover{background:#f3efe6}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 18px;border-radius:14px;font-size:var(--fs-button);font-weight:600;text-align:center;width:100%}
.btn.pri{background:var(--brand);color:#fff}
.btn.sec{background:var(--bg-sunken);color:var(--ink);border:1px solid var(--line)}
.btn.ghost{background:transparent;color:var(--brand);min-height:44px}
.btn:disabled,.btn.pri:disabled{background:var(--disabled-bg);color:var(--disabled-ink);cursor:not-allowed}
.rowbtns{display:flex;gap:8px;align-items:stretch}
.rowbtns .btn{flex:1}

.safe{background:var(--safe-bg);color:var(--safe-ink);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45;margin:0 0 16px}
.safe strong{font-weight:700}
.strip{background:var(--safe-bg);color:var(--safe-ink);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.4;margin:0 0 12px}
.banner-demo{background:var(--gold-bg);color:var(--gold-ink);border-radius:12px;padding:12px 14px;font-size:14px;margin:0 0 16px}

.media{position:relative;overflow:hidden;border-radius:20px;background:var(--brand-soft);border:1px solid var(--line)}
.media>img,.media>video,.media>svg{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.media.detail{aspect-ratio:4/5;max-height:52svh}
.media.player{aspect-ratio:16/10;max-height:32svh}
.media.dim img{opacity:.45}
.media .cap{position:absolute;left:10px;bottom:10px;background:rgba(31,92,75,.92);color:#fff;font-size:12px;font-weight:600;padding:4px 8px;border-radius:8px}
.thumb{width:80px;height:80px;border-radius:14px;overflow:hidden;background:var(--brand-soft);flex:none;border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover}
.caption{font-size:12px;color:var(--mut);margin:8px 0 0}

.list{display:flex;flex-direction:column;gap:8px}
.exrow,.progrow{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:var(--bg-elev);border:1px solid var(--line);border-radius:16px;padding:10px 12px;min-height:96px}
.exrow .meta,.progrow .meta{flex:1;min-width:0}
.exrow b,.progrow b{display:flex;align-items:center;flex-wrap:wrap;font-weight:700;font-size:16px}
.exrow p,.progrow p{margin:2px 0 0;color:var(--mut);font-size:14px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;line-height:1.2}
.tag.mob{background:var(--brand-soft);color:var(--brand)}
.tag.str{background:var(--copper-bg);color:var(--copper-ink)}
.tag.mod{background:var(--gold-bg);color:var(--gold-ink)}
.tag.easy{background:var(--brand-soft);color:var(--brand)}
.tag.adv{background:var(--red-bg);color:var(--red)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.chip{min-height:44px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);font-weight:600;font-size:14px}
.chip[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}

.protag{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;line-height:1.2;vertical-align:middle;background:var(--gold-bg);color:var(--gold-ink);letter-spacing:.02em}
.prow .t .protag{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;line-height:1.2;vertical-align:middle;background:var(--gold-bg);color:var(--gold-ink)}
.prow .t b{display:flex;align-items:center;flex-wrap:wrap;gap:0}

.practice-bar{position:sticky;bottom:calc(var(--navh) + var(--safeb));background:rgba(243,239,230,.94);backdrop-filter:blur(12px);padding:12px 16px;margin:16px -16px 0;z-index:15}

#nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--navh) + var(--safeb));padding:0 8px var(--safeb);background:rgba(243,239,230,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:space-around;z-index:30}
#nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;color:var(--mut);font-size:11px;font-weight:700;letter-spacing:.02em}
#nav button.on{color:var(--brand)}
#nav svg{width:22px;height:22px}

.onboard{min-height:100dvh;padding:24px 20px calc(24px + var(--safeb));display:flex;flex-direction:column;max-width:520px;margin:0 auto}
.onboard .dots{display:flex;gap:8px;justify-content:center;margin:8px 0 24px}
.onboard .dot{width:8px;height:8px;border-radius:99px;background:var(--line)}
.onboard .dot.on{width:20px;background:var(--brand)}
.onboard h1{font-size:32px}
.onboard .grow{flex:1}
.choice{min-height:88px;padding:16px;border:2px solid var(--line);border-radius:16px;text-align:left;width:100%;background:var(--bg-elev);margin:0 0 8px}
.choice b{display:block;font-size:17px}
.choice span{display:block;color:var(--mut);font-size:14px;margin-top:2px}
.choice[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft)}
.consent{display:flex;gap:12px;align-items:flex-start;min-height:44px;margin:16px 0}
.consent input{width:22px;height:22px;margin-top:2px;accent-color:var(--brand);flex:none}
.onboard-nav{display:flex;gap:8px;margin-top:16px}

.player-head{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.player-head h1{flex:1;font-size:24px;margin:0}
.setline{color:var(--mut);font-size:14px;font-weight:600;margin:0 0 8px}
.clock{display:flex;flex-direction:column;align-items:center;margin:8px 0 12px}
.ringwrap{width:168px;height:168px;position:relative}
.ringwrap svg{width:100%;height:100%;transform:rotate(-90deg)}
.ringwrap .time{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:none}
.ringwrap .time b{font-size:var(--fs-timer);font-weight:700;line-height:1;letter-spacing:-0.02em}
.ringwrap .time span{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-top:4px}
.repbox{display:flex;flex-direction:column;align-items:center;margin:8px 0 12px}
.repn{font-size:72px;font-weight:700;line-height:1;letter-spacing:-0.03em}
.repbox .sub{color:var(--mut);font-weight:600;margin-top:4px}
.upnext{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:10px;margin-top:12px;font-size:14px}
.upnext .thumb{width:56px;height:56px;border-radius:10px}
.progbar{height:6px;background:var(--bg-sunken);border-radius:99px;overflow:hidden;margin:0 0 12px}
.progbar>i{display:block;height:100%;background:var(--brand);border-radius:99px}

.pain-grid{display:grid;grid-template-columns:repeat(11,1fr);gap:4px;margin:12px 0 16px}
.pain-grid button{min-height:44px;border-radius:8px;font-weight:700;color:#fff;font-size:13px}
.pain-grid button[aria-pressed="true"]{outline:3px solid var(--ink);outline-offset:1px}

.plan-grid{display:grid;gap:16px;margin:16px 0}
.plan{padding:24px 16px 16px;border-radius:16px;border:1px solid var(--line);position:relative;background:var(--bg-elev)}
.plan.hot{border:2px solid var(--brand)}
.plan .ribb{position:absolute;top:-10px;left:16px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 8px;border-radius:99px}
.price{font-size:var(--fs-price);line-height:1;font-weight:700;letter-spacing:-0.02em;margin:4px 0}
.price small{font-size:14px;font-weight:600;color:var(--mut)}
.plan .math{color:var(--mut);font-size:14px;margin:0 0 12px}
.features{display:grid;gap:8px;margin:0 0 20px;padding:0;list-style:none}
.features li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.4}
.features li::before{content:"";width:18px;height:18px;flex:none;margin-top:2px;background:var(--brand);border-radius:99px;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'><path d='M5 12l5 5L20 7'/></svg>") center/16px no-repeat;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'><path d='M5 12l5 5L20 7'/></svg>") center/16px no-repeat}
.legal-links{text-align:center;font-size:14px;margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:0}
.legal-links button{color:var(--brand);font-weight:600;min-height:44px;padding:0 8px}

.donebox{text-align:center;padding:24px 8px}
.donebox .big{font-family:var(--font-display);font-size:32px}

#toast{position:fixed;left:50%;bottom:calc(var(--navh) + var(--safeb) + 16px);transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:99px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50;max-width:90%}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

.modal{position:fixed;inset:0;background:rgba(28,25,22,.45);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:16px}
.modal .sheet{background:var(--bg);border-radius:20px 20px 16px 16px;padding:20px 16px calc(16px + var(--safeb));width:100%;max-width:480px}
.modal.center{align-items:center}
.modal.center .sheet{border-radius:20px}

.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.linkish{color:var(--brand);font-weight:600;min-height:44px;display:inline-flex;align-items:center}

.empty{padding:24px 16px;text-align:left}
.source{font-size:14px;margin:6px 0}
.source a{word-break:break-word}

@media (min-width:900px){
  body{background:var(--bg)}
  #app{max-width:1080px;margin:0 auto;flex-direction:row;min-height:100dvh}
  #nav{position:sticky;top:0;left:auto;right:auto;bottom:auto;width:220px;height:100dvh;flex-direction:column;justify-content:flex-start;padding:24px 12px;border-top:0;border-right:1px solid var(--line);gap:4px}
  #nav button{flex-direction:row;justify-content:flex-start;gap:10px;min-height:44px;padding:0 12px;border-radius:12px;font-size:15px}
  #nav button.on{background:var(--brand-soft)}
  #top{flex:none;width:100%}
  .shell{flex:1;display:flex;flex-direction:column;min-width:0}
  #main{max-width:none;padding:24px 32px 32px}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
  .media.detail{max-height:none}
  .media.player{max-height:none}
  .practice-bar{position:static;margin:16px 0 0;padding:0;background:none;backdrop-filter:none}
  #toast{bottom:24px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  #toast{transition:none}
}

#app.app-shell{display:flex;flex-direction:column}
@media (min-width:900px){
  #app.app-shell{display:grid;grid-template-columns:220px 1fr;grid-template-rows:auto 1fr;max-width:1080px;margin:0 auto}
  #app.app-shell #nav{grid-column:1;grid-row:1 / span 2;position:sticky;top:0;left:auto;right:auto;bottom:auto;width:220px;height:100dvh;flex-direction:column;justify-content:flex-start;padding:24px 12px;border-top:0;border-right:1px solid var(--line);gap:4px}
  #app.app-shell #top{grid-column:2;grid-row:1}
  #app.app-shell #main{grid-column:2;grid-row:2;max-width:none}
  #app.solo{display:flex;flex-direction:column;max-width:720px;margin:0 auto}
}
