/* Ian Elliott app. Slate + pastel system (layout reference: Gear University). */
:root{
  --bg:#101010;
  --bg-2:#161616;
  --card:#181818;
  --card-2:#1d1d1d;
  --well:#131313;
  --line:rgba(255,255,255,.075);
  --line-2:#262626;
  --edge:#414141;
  --text:#fcfcfc;
  --soft:#f2f2f2;
  --mute:#949494;
  --dim:#6a6a6a;
  --blue:#f1f1f1;
  --blue-2:#f5f5f5;
  --blue-ink:#161616;
  --blue-wash:rgba(241,241,241,.1);
  --gold:#f3f3f3;
  --lav:#e9e9e9;
  --mint:#f1f1f1;
  --rose:#e8e8e8;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,"Segoe UI",Arial,sans-serif;
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,"Segoe UI",Arial,sans-serif;
  --gut:20px;
  --r:18px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--bg)}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
body.locked{overflow:hidden}
img,svg,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer;text-align:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
::selection{background:var(--blue);color:var(--blue-ink)}
[hidden]{display:none!important}

/* faint line-art backdrop at the top of every screen */
.app::before,.install::before{content:"";position:absolute;left:0;right:0;top:0;height:420px;pointer-events:none;z-index:0;opacity:.5;
  background:
    radial-gradient(120% 80% at 50% -20%,rgba(139,139,139,.22) 0%,rgba(16,16,16,0) 62%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='300' fill='none' stroke='%23858585' stroke-opacity='.35' stroke-width='1.2'%3E%3Cg transform='translate(36 60) rotate(-18)'%3E%3Crect x='0' y='10' width='8' height='30' rx='2'/%3E%3Crect x='10' y='4' width='10' height='42' rx='3'/%3E%3Cpath d='M20 25h44'/%3E%3Crect x='64' y='4' width='10' height='42' rx='3'/%3E%3Crect x='76' y='10' width='8' height='30' rx='2'/%3E%3C/g%3E%3Cg transform='translate(300 30)'%3E%3Ccircle cx='40' cy='40' r='38'/%3E%3Ccircle cx='40' cy='40' r='26'/%3E%3Ccircle cx='40' cy='40' r='6'/%3E%3C/g%3E%3Cg transform='translate(250 190) rotate(14)'%3E%3Cpath d='M0 20h90'/%3E%3Crect x='10' y='4' width='6' height='32' rx='2'/%3E%3Crect x='74' y='4' width='6' height='32' rx='2'/%3E%3C/g%3E%3Cg transform='translate(120 200)'%3E%3Cpath d='M10 40a30 30 0 1 1 40 0'/%3E%3Cpath d='M20 12h20'/%3E%3C/g%3E%3C/svg%3E") right -40px top 10px/420px auto no-repeat}
.app>*,.install>*{position:relative;z-index:1}

/* type */
.mono{font-family:var(--font);font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase}
.tiny{font-size:11px;letter-spacing:.02em;text-transform:none;font-weight:500}
.small{font-size:14px}
.red{color:var(--blue)}
.muted{color:var(--mute)}
.center{text-align:center}
.h-big{font-family:var(--display);font-weight:700;font-size:34px;line-height:1.08;letter-spacing:-.035em}
.h-mid{font-family:var(--display);font-weight:700;font-size:26px;line-height:1.12;letter-spacing:-.03em}
.h-num{font-family:var(--display);font-weight:700;font-size:40px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.kicker{display:flex;align-items:center;gap:8px;color:var(--soft)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 3px rgba(241,241,241,.15)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:14px 20px;font-weight:650;font-size:15px;border-radius:12px;transition:transform .15s,background .2s,border-color .2s,color .2s;white-space:nowrap;user-select:none;border:1px solid transparent}
.btn:active{transform:scale(.97)}
.btn--red{background:var(--blue);border-color:var(--blue-2);color:var(--blue-ink)}
.btn--red:hover{background:var(--blue-2)}
.btn--ghost{background:#121212;border-color:var(--line-2);color:var(--text)}
.btn--ghost:hover{border-color:var(--edge)}
.btn--sm{padding:10px 14px;font-size:14px;border-radius:10px}
.btn--block{display:flex;width:100%;margin-top:12px}
.btn .ico{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.link{color:var(--blue);padding:10px 0;display:inline-block;font-weight:600;font-size:14px;letter-spacing:0;text-transform:none}
.link.mono{font-size:14px;letter-spacing:0;text-transform:none}
.icon-btn{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;border:1px solid var(--line-2);background:rgba(18,18,18,.7);flex:none;transition:background .2s,border-color .2s;color:var(--text)}
.icon-btn:active{background:var(--card-2)}
.icon-btn:disabled{opacity:.3}
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-btn--red{background:var(--blue);border-color:var(--blue-2);color:var(--blue-ink)}
.tag{font-style:normal;font-size:10px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;background:var(--blue-wash);color:var(--blue);border:1px solid rgba(241,241,241,.25);padding:2px 7px;border-radius:99px;vertical-align:middle;margin-left:6px}

/* fields */
.field{width:100%;background:var(--well);border:1px solid var(--edge);border-radius:12px;padding:13px 14px;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.13);color:var(--text)}
.field:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(241,241,241,.15)}
.field::placeholder{color:var(--dim)}
.field--xl{font-size:22px;font-weight:600;padding:16px}
.field--sm{padding:10px;font-size:16px;text-align:center;border-radius:10px}
select.field{background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
textarea.field{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.lab{display:block;font-size:13px;color:var(--mute);margin-top:12px;font-weight:500}
.lab .field{margin-top:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}

/* ================= INSTALL LANDING ================= */
.mode-app .install{display:none}
.mode-install .app,.mode-install .tabbar{display:none}
.install{max-width:1080px;margin:0 auto;padding:0 var(--gut) 40px;position:relative}
.i-top{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;letter-spacing:-.01em}
.brand span{display:none}
.brand::before{content:"";width:34px;height:34px;background:url(../img/icon-192.png) center/cover;border-radius:9px}
.i-top__tag{border:1px solid var(--line-2);background:#121212;padding:7px 12px;border-radius:12px;font-size:12px;letter-spacing:.02em;text-transform:none;font-weight:600}
.i-hero{display:grid;gap:30px;padding:44px 0 40px;text-align:center}
.i-hero .kicker{justify-content:center;color:var(--soft)}
.i-h1{font-family:var(--display);font-weight:700;font-size:clamp(36px,9.5vw,64px);line-height:1.04;letter-spacing:-.045em;margin:16px 0 14px}
.i-h1 .red{color:var(--text)}
.i-sub{color:var(--soft);font-size:18px;max-width:30em;margin:0 auto;line-height:1.55}
.i-feats{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;justify-content:center}
.i-feats span{border:1px solid var(--line-2);background:#141414;padding:7px 12px;border-radius:40px;color:var(--soft);font-size:12px;letter-spacing:0;text-transform:none;font-weight:500}
.i-hero__video{position:relative;border-radius:28px;overflow:hidden;background:#000000;aspect-ratio:9/16;height:min(70vh,640px);max-width:100%;justify-self:center;border:1px solid var(--edge);box-shadow:0 30px 80px -24px rgba(0,0,0,.8),0 0 0 6px rgba(255,255,255,.03)}
.i-hero__video video{width:100%;height:100%;object-fit:cover}
.i-hero__label{position:absolute;left:12px;bottom:12px;background:rgba(10,10,10,.7);padding:7px 10px;border-radius:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:11px}
.i-steps{border-top:1px solid var(--line);padding:40px 0}
.i-tabs{display:inline-flex;background:var(--well);border:1px solid var(--line-2);border-radius:14px;padding:4px;margin-bottom:22px}
.i-tabs button{padding:9px 16px;border-radius:10px;font-weight:600;font-size:14px;color:var(--mute);transition:background .2s,color .2s}
.i-tabs button.is-on{background:#252525;color:var(--text);box-shadow:inset 0 0 0 1px var(--edge)}
.i-list{counter-reset:s;display:grid;gap:10px;max-width:640px}
.i-list li{counter-increment:s;position:relative;padding:18px 60px 18px 62px;background:var(--card);border:1px solid var(--line-2);border-radius:16px}
.i-list li::before{content:counter(s);position:absolute;left:16px;top:16px;width:30px;height:30px;border-radius:10px;background:var(--blue-wash);color:var(--blue);font-weight:700;display:grid;place-items:center;font-size:14px;border:1px solid rgba(241,241,241,.25)}
.i-list li b{display:block;font-size:16px;font-weight:650}
.i-list li span{color:var(--mute);font-size:14px}
.i-list em{font-style:normal;color:var(--text);font-weight:600}
.i-ico{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:30px;height:30px}
.i-ico svg{width:30px;height:30px;fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.i-list li.i-list__btn{padding:0;background:none;border:0}
.i-list li.i-list__btn::before{display:none}
.i-desk{display:flex;gap:24px;align-items:center;max-width:640px;background:var(--card);border:1px solid var(--line-2);border-radius:18px;padding:20px}
.i-desk b{display:block;font-size:17px}
.i-desk span{display:block;color:var(--mute);margin:6px 0 14px;font-size:15px}
.i-qr{background:#ffffff;padding:10px;border-radius:12px;flex:none;width:188px;height:188px}
.i-what{border-top:1px solid var(--line);padding:40px 0}
.i-what>.kicker{color:var(--mute)}
.i-grid{display:grid;gap:12px;margin-top:18px}
.i-grid article{background:linear-gradient(160deg,var(--tint,rgba(241,241,241,.08)),transparent 60%),var(--card);border:1px solid var(--line-2);border-top:2px solid var(--accent,var(--blue));border-radius:18px;padding:22px}
.i-grid article:nth-child(2){--accent:var(--gold);--tint:rgba(243,243,243,.08)}
.i-grid article:nth-child(3){--accent:var(--lav);--tint:rgba(233,233,233,.08)}
.i-grid article:nth-child(4){--accent:var(--mint);--tint:rgba(241,241,241,.07)}
.i-grid article .mono{color:var(--accent,var(--blue))}
.i-grid h3{font-weight:700;font-size:22px;letter-spacing:-.03em;margin:8px 0 6px;line-height:1.15}
.i-grid p{color:var(--soft);font-size:15px}
.i-foot{display:flex;justify-content:space-between;color:var(--mute);border-top:1px solid var(--line);padding-top:20px;font-size:13px;letter-spacing:0;text-transform:none}
@media (min-width:860px){
  .i-hero{padding:64px 0 56px}
  .i-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:480px){.i-desk{flex-direction:column;align-items:flex-start}}

/* ================= APP SHELL ================= */
.app{max-width:540px;margin:0 auto;min-height:100vh;position:relative}
.view{padding:calc(var(--safe-t) + 14px) var(--gut) calc(var(--safe-b) + 104px);display:flex;flex-direction:column;gap:12px}
.view.enter{animation:enter .3s var(--ease)}
@keyframes enter{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (min-width:600px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}

.tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:540px;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(18,18,18,.88);backdrop-filter:saturate(1.6) blur(20px);-webkit-backdrop-filter:saturate(1.6) blur(20px);border-top:1px solid var(--line);padding:8px 6px calc(var(--safe-b) + 6px)}
.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--dim);font-size:10.5px;font-weight:600;padding:4px 0;transition:color .2s;text-align:center}
.tabbar svg{width:24px;height:24px;fill:currentColor}
.tabbar button[data-tab="fuel"] svg,.tabbar button[data-tab="me"] svg{fill:none;stroke:currentColor;stroke-width:1.9}
.tabbar button.is-on{color:var(--blue)}

/* screen header */
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:10px 0 6px}
.top .mono{display:block;margin-bottom:6px;color:var(--mute)}
.top .h-big{font-size:32px}
.streak{text-align:center;border:1px solid var(--line-2);background:rgba(18,18,18,.7);border-radius:14px;padding:8px 12px;flex:none;min-width:70px}
.streak b{display:block;font-size:24px;line-height:1.05;font-weight:700;letter-spacing:-.03em;color:var(--gold)}
.streak .mono{font-size:9.5px;margin:3px 0 0;color:var(--mute)}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}
.row-between .mono{color:var(--mute)}
.row-between .mono.red{color:var(--blue)}
.sec-h{color:var(--mute);margin:16px 0 8px}

/* cards */
.card{display:block;width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:18px;position:relative;overflow:hidden}
button.card{transition:transform .15s,border-color .2s}
button.card:active{transform:scale(.985)}
.card>.mono{color:var(--mute)}
.card>.mono.red{color:var(--blue)}
.card h3{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin:6px 0 4px}
.card .muted{font-size:14px}
.card--hero{background:linear-gradient(160deg,rgba(241,241,241,.13),rgba(241,241,241,0) 65%),var(--card);border-top:2px solid var(--blue)}
.card--hero .h-mid{font-size:30px;margin:8px 0 4px}
.card--hero .btn{margin-top:14px}
.card--done{border-top:2px solid var(--mint);background:linear-gradient(160deg,rgba(241,241,241,.09),transparent 60%),var(--card)}
.card--done .mono.red{color:var(--mint)}
.card--fuel{display:flex;gap:18px;align-items:center;border-top:2px solid var(--gold);background:linear-gradient(160deg,rgba(243,243,243,.08),transparent 60%),var(--card)}
.card--fuel__bars{flex:1;display:grid;gap:10px}
.card--read{border-top:2px solid var(--lav);background:linear-gradient(160deg,rgba(233,233,233,.1),transparent 60%),var(--card)}
.card--read .mono.red{color:var(--lav)}
.card--read h3{font-size:18px}
.card .btn--ghost{margin-top:12px}
.note{font-size:14px;color:var(--soft);background:var(--blue-wash);border:1px solid rgba(241,241,241,.2);padding:12px 14px;border-radius:12px;margin-top:10px}

/* rings + bars */
.ring{position:relative;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none}
.ring__bg{stroke:#242424}
.ring__fg{stroke:var(--gold);stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}
.ring__fg.is-over{stroke:var(--rose)}
.ring__txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ring__txt b{font-weight:700;font-size:24px;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ring__txt .mono{font-size:9.5px;color:var(--mute);margin-top:4px}
.mbar__top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--mute);margin-bottom:5px}
.mbar__top .mono{font-size:10.5px}
.mbar__top b{color:var(--text);font-variant-numeric:tabular-nums}
.mbar__track{height:6px;background:#242424;border-radius:3px;overflow:hidden}
.mbar__track span{display:block;height:100%;background:var(--blue);border-radius:3px;transition:width .8s var(--ease)}
.mbar:nth-child(2) .mbar__track span{background:var(--gold)}
.mbar:nth-child(3) .mbar__track span{background:var(--lav)}
.fuel-sum__right .mbar:nth-child(2) .mbar__track span{background:var(--blue)}
.fuel-sum__right .mbar:nth-child(3) .mbar__track span{background:var(--gold)}
.fuel-sum__right .mbar:nth-child(4) .mbar__track span{background:var(--lav)}

/* checklist */
.checks{display:grid;margin-top:8px}
.checks li+li{border-top:1px solid var(--line)}
.check{display:flex;align-items:center;gap:12px;width:100%;padding:12px 0;font-size:15px;font-weight:500;color:var(--text);transition:color .2s}
.check i{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--edge);flex:none;position:relative;transition:background .2s,border-color .2s}
.check.is-on{color:var(--mute)}
.check.is-on i{background:var(--blue);border-color:var(--blue)}
.check.is-on i::after{content:"";position:absolute;left:7px;top:3px;width:5px;height:10px;border:solid var(--blue-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.water{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.water .check{width:auto}
.water__cups{display:flex;gap:5px}
.cup{width:18px;height:24px;border:1.5px solid var(--edge);border-radius:3px 3px 7px 7px;position:relative;overflow:hidden}
.cup::after{content:"";position:absolute;inset:auto 0 0 0;height:0;background:var(--blue);transition:height .3s var(--ease)}
.cup.is-on{border-color:var(--blue)}
.cup.is-on::after{height:72%}
.quote{background:var(--well);border:1px solid var(--line-2);border-radius:var(--r);padding:16px 18px;font-size:15px;line-height:1.5;color:var(--soft);text-align:left}
.quote::before{content:"Worth knowing";display:block;font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}

/* train */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.week span{aspect-ratio:1;border-radius:12px;display:grid;place-items:center;background:var(--well);border:1px solid var(--line);color:var(--dim);font-size:13px}
.week span.is-train{color:var(--text);border-color:var(--line-2);background:var(--card)}
.week span.is-train b{position:relative}
.week span.is-train b::after{content:"";position:absolute;left:50%;bottom:-7px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--blue)}
.week span.is-today{background:var(--blue);color:var(--blue-ink);border-color:var(--blue)}
.week span.is-today b::after{background:var(--blue-ink)!important}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips--scroll{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--gut));padding:0 var(--gut);scrollbar-width:none}
.chips--scroll::-webkit-scrollbar{display:none}
.chip{padding:8px 14px;border-radius:40px;border:1px solid var(--line-2);background:#141414;color:var(--soft);font-size:13px;font-weight:550;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:background .2s,color .2s,border-color .2s}
.chip.is-on{background:#252525;color:var(--text);border-color:var(--edge)}
.dotr{width:6px;height:6px;border-radius:50%;background:var(--blue);display:inline-block}
.exlist{counter-reset:e;margin:14px 0 4px;display:grid}
.exlist li{counter-increment:e;display:flex;flex-direction:column;gap:2px;padding:12px 0 12px 34px;border-top:1px solid var(--line);position:relative}
.exlist li::before{content:counter(e,decimal-leading-zero);position:absolute;left:0;top:13px;font-size:12px;font-weight:650;color:var(--blue);font-variant-numeric:tabular-nums}
.exlist li>div{display:flex;flex-direction:column;gap:2px}
.exlist b{font-size:16px;font-weight:600}
.exlist .mono{font-size:10.5px}
.last{color:var(--mint)!important;font-size:10.5px!important}
.hist{display:grid;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:0 16px}
.hist li{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.hist li:first-child{border-top:0}

/* session */
.sess-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;background:rgba(16,16,16,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);margin:calc(-1 * (var(--safe-t) + 14px)) calc(-1 * var(--gut)) 0;padding:calc(var(--safe-t) + 10px) var(--gut) 10px;border-bottom:1px solid var(--line)}
.sess-top div{flex:1;display:flex;flex-direction:column}
.sess-top b{font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1.15}
.sess-bar{height:3px;background:#242424;margin:0 calc(-1 * var(--gut));position:sticky;top:calc(var(--safe-t) + 62px);z-index:20}
.sess-bar span{display:block;height:100%;background:var(--blue);transition:width .4s var(--ease)}
.ex__head{display:flex;gap:12px;align-items:flex-start}
.ex__head .mono{padding-top:5px;color:var(--blue)}
.ex__head h3{margin:0 0 2px}
.ex__head .mono.muted{color:var(--mute)}
.ex__cue{font-size:14px;color:var(--soft);margin-top:10px}
.ex__note{color:var(--gold);margin-top:10px;font-size:12px;line-height:1.5;letter-spacing:.01em;text-transform:none;font-weight:600}
.ex__last{font-size:14px;margin-top:10px;padding:9px 12px;background:var(--well);border:1px solid var(--line);border-radius:10px;color:var(--soft)}
.ex__last b{color:var(--mint)}
.sets{margin-top:12px;display:grid;gap:8px}
.sets__h,.set{display:grid;grid-template-columns:34px 1fr 1fr 44px;gap:8px;align-items:center}
.sets__h{color:var(--mute);font-size:10.5px}
.sets__h span:nth-child(n+2){text-align:center}
.set .mono{text-align:center;font-size:13px;color:var(--mute)}
.set.is-done .field{border-color:rgba(241,241,241,.45);background:rgba(241,241,241,.07)}
.setcheck{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--edge);position:relative;transition:background .2s,border-color .2s}
.setcheck.is-on{background:var(--blue);border-color:var(--blue)}
.setcheck.is-on::after{content:"";position:absolute;left:16px;top:10px;width:8px;height:16px;border:solid var(--blue-ink);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.rest{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--safe-b) + 18px);z-index:45;display:flex;align-items:center;gap:14px;background:#252525;border:1px solid var(--edge);color:var(--text);padding:9px 10px 9px 18px;border-radius:99px;box-shadow:0 16px 40px rgba(0,0,0,.55)}
.rest .mono{color:var(--mute)}
.rest b{font-weight:700;font-size:24px;line-height:1;min-width:62px;text-align:center;font-variant-numeric:tabular-nums}
.rest button{background:var(--blue);color:var(--blue-ink);padding:8px 12px;border-radius:99px}

/* fuel */
.datenav{display:flex;align-items:center;justify-content:space-between}
.datenav .mono{color:var(--soft)}
.fuel-sum{display:flex;gap:16px;align-items:center;border-top:2px solid var(--gold);background:linear-gradient(160deg,rgba(243,243,243,.08),transparent 60%),var(--card)}
.fuel-sum__right{flex:1;display:grid;gap:9px}
.fuel-left{display:flex;align-items:baseline;gap:8px}
.fuel-left .h-num{font-size:30px}
.fuel-left .mono{color:var(--mute)}
.meal{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:4px 16px}
.meal__h{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0}
.meal__h h3{font-size:16px;font-weight:650}
.entry{display:flex;justify-content:space-between;gap:12px;width:100%;padding:11px 0;border-top:1px solid var(--line)}
.entry div{display:flex;flex-direction:column;min-width:0}
.entry b{font-weight:550;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.entry .mono{font-size:11px;letter-spacing:0;text-transform:none;font-weight:500}
.entry__r{text-align:right;flex:none}
.entry__r b{font-variant-numeric:tabular-nums}
.meal__add{display:block;width:100%;padding:12px 0;border-top:1px solid var(--line);color:var(--blue);text-align:left;font-size:14px;letter-spacing:0;text-transform:none;font-weight:600}

/* sheet */
.sheet{position:fixed;inset:0;z-index:60}
.sheet__scrim{position:absolute;inset:0;background:rgba(6,6,6,.6);opacity:0;transition:opacity .3s}
.sheet__panel{position:absolute;left:50%;bottom:0;width:100%;max-width:540px;max-height:92vh;background:var(--bg-2);border:1px solid var(--line-2);border-bottom:0;border-radius:22px 22px 0 0;transform:translate(-50%,100%);transition:transform .35s var(--ease);display:flex;flex-direction:column}
.sheet.is-on .sheet__scrim{opacity:1}
.sheet.is-on .sheet__panel{transform:translate(-50%,0)}
.sheet__grip{width:38px;height:5px;border-radius:3px;background:var(--edge);margin:9px auto 0;flex:none}
.sheet__body{overflow-y:auto;padding:8px var(--gut) calc(var(--safe-b) + 24px);-webkit-overflow-scrolling:touch}
.sheet__h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:6px 0 14px}
.sheet__h h3{font-size:20px;line-height:1.2;font-weight:700;letter-spacing:-.02em}
.sheet__acts{display:flex;gap:8px;margin:10px 0 4px}
.sheet__acts .btn{flex:1}
.foods li>button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 0;border-top:1px solid var(--line)}
.foods li>button div{display:flex;flex-direction:column;min-width:0}
.foods b{font-weight:550;font-size:15px}
.foods .mono{font-size:11px;letter-spacing:0;text-transform:none;font-weight:500;flex:none}
.fd__amt{display:grid;grid-template-columns:96px 1fr;gap:8px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--well);border:1px solid var(--line-2);border-radius:12px;padding:3px;margin-top:12px}
.seg button{padding:9px 4px;border-radius:9px;font-size:13px;font-weight:600;color:var(--mute);text-align:center}
.seg button.is-on{background:#252525;color:var(--text);box-shadow:inset 0 0 0 1px var(--edge)}
.fd__mac,.sum__mac{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.sum__mac{grid-template-columns:repeat(3,1fr)}
.sum__mac--4{grid-template-columns:repeat(4,1fr)}
.fd__mac div,.sum__mac div{background:var(--well);border:1px solid var(--line);border-radius:12px;padding:12px 6px;text-align:center;display:flex;flex-direction:column;gap:4px}
.fd__mac b,.sum__mac b{font-weight:700;font-size:19px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fd__mac .mono,.sum__mac .mono{font-size:9.5px;color:var(--mute)}
.fd__mac div:first-child{background:rgba(243,243,243,.1);border-color:rgba(243,243,243,.3)}
.fd__mac div:first-child b{color:var(--gold)}

/* scanner */
.scanner{position:fixed;inset:0;z-index:80;background:#000000}
.scanner video{width:100%;height:100%;object-fit:cover}
.scanner__frame{position:absolute;left:50%;top:42%;width:78%;max-width:360px;aspect-ratio:1.6;transform:translate(-50%,-50%);border-radius:20px;box-shadow:0 0 0 100vmax rgba(8,8,8,.6)}
.scanner__frame::before{content:"";position:absolute;inset:0;border:2px solid rgba(255,255,255,.9);border-radius:20px}
.scanner__frame span{position:absolute;left:8%;right:8%;top:50%;height:2px;background:var(--blue);box-shadow:0 0 14px var(--blue);animation:scan 1.8s ease-in-out infinite alternate}
@keyframes scan{from{transform:translateY(-40px)}to{transform:translateY(40px)}}
.scanner__top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:calc(var(--safe-t) + 14px) var(--gut)}
.scanner__top .icon-btn{background:rgba(10,10,10,.6);border-color:rgba(255,255,255,.25)}
.scanner__top .mono{color:#ffffff}
.scanner__manual{position:absolute;left:var(--gut);right:var(--gut);bottom:calc(var(--safe-b) + 24px);display:flex;gap:8px;max-width:480px;margin:0 auto}
.scanner__manual .field{background:rgba(19,19,19,.92)}
.scanner__msg{position:absolute;left:var(--gut);right:var(--gut);top:calc(42% + 140px);text-align:center;color:#ffffff;font-size:13px;letter-spacing:0;text-transform:none;font-weight:500}

/* library */
.arts{display:grid;gap:10px}
.arts button{display:block;width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:18px;transition:transform .15s,border-color .2s}
.arts button:active{transform:scale(.985)}
.arts .mono.red{color:var(--mute);font-size:11px;letter-spacing:.02em;text-transform:none;font-weight:500}
.arts h3{font-size:20px;font-weight:700;letter-spacing:-.025em;line-height:1.2;margin:8px 0 6px}
.arts p{font-size:15px;margin-bottom:12px;color:var(--soft)!important;line-height:1.5}
.arts .mono.muted{display:block;border-top:1px solid var(--line);padding-top:12px;font-size:12px;letter-spacing:0;text-transform:none;font-weight:500}
.arts .is-read{opacity:.7}
.article{display:flex;flex-direction:column;gap:6px}
.article .link{align-self:flex-start}
.article>.mono.red{color:var(--lav)}
.article .h-big{margin:6px 0 10px}
.article__dek{font-size:18px;color:var(--soft);line-height:1.45;padding-bottom:18px;border-bottom:1px solid var(--line)}
.article__body{font-size:17px;line-height:1.65;padding:8px 0 24px;color:#f8f8f8}
.article__body p{margin:14px 0}
.article__body h3{font-weight:700;font-size:21px;letter-spacing:-.02em;margin:26px 0 4px;line-height:1.25;color:var(--text)}
.article__body ul,.article__body ol{margin:12px 0;display:grid;gap:9px}
.article__body ul li{padding-left:20px;position:relative}
.article__body ul li::before{content:"";position:absolute;left:3px;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.article__body ol{counter-reset:o}
.article__body ol li{counter-increment:o;padding-left:30px;position:relative}
.article__body ol li::before{content:counter(o);position:absolute;left:0;top:.1em;font-weight:700;color:var(--blue);font-size:15px}
.article__body b{color:#ffffff;font-weight:650}
.callout{margin:22px 0;padding:16px 18px;background:var(--well);border:1px solid var(--line-2);border-left:3px solid var(--gold);color:var(--text);font-weight:550;font-size:16px;line-height:1.45;border-radius:12px}

/* me */
.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stats3 div{background:var(--card);border:1px solid var(--line-2);border-radius:16px;padding:14px 8px;text-align:center}
.stats3 b{display:block;font-weight:700;font-size:26px;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stats3 b.red{color:var(--mint)}
.stats3 .mono{font-size:9.5px;color:var(--mute)}
.wchart{margin:14px 0 6px}
.wchart svg{width:100%;height:120px}
.wchart__line{fill:none;stroke:var(--mint);stroke-width:2;vector-effect:non-scaling-stroke}
.wchart__fill{fill:rgba(241,241,241,.1);stroke:none}
.wchart circle{fill:var(--text)}
.wadd{display:flex;gap:8px;margin:10px 0 8px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.list{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.list>*{display:flex;justify-content:space-between;width:100%;padding:15px 18px;border-top:1px solid var(--line);font-weight:500;font-size:15px}
.list>*:first-child{border-top:0}
.list span{color:var(--mute)}
.list .danger{color:var(--rose)}

/* onboarding + paywall */
.ob{display:flex;flex-direction:column;gap:10px;min-height:calc(100vh - 140px)}
.ob__top{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:12px;margin-bottom:18px}
.ob__top .mono{text-align:right;color:var(--mute)}
.ob__bar{height:4px;background:#242424;border-radius:2px;overflow:hidden}
.ob__bar span{display:block;height:100%;background:var(--blue);transition:width .4s var(--ease)}
.ob .h-mid{font-size:30px}
.ob__body{margin-top:10px}
.picks{display:grid;gap:10px}
.pick{display:flex;flex-direction:column;gap:3px;width:100%;padding:16px 18px;background:var(--card);border:1px solid var(--line-2);border-radius:16px;transition:border-color .2s,background .2s}
.pick b{font-size:17px;font-weight:650}
.pick em{font-style:normal;color:var(--mute);font-size:10.5px;margin-left:6px}
.pick span{color:var(--mute);font-size:14px}
.pick.is-on{border-color:var(--blue);background:linear-gradient(160deg,rgba(241,241,241,.12),transparent 70%),var(--card)}
.sum{display:grid;gap:12px}
.sum__cal{background:linear-gradient(160deg,rgba(243,243,243,.14),transparent 70%),var(--card);border:1px solid var(--line-2);border-top:2px solid var(--gold);border-radius:var(--r);padding:20px;display:flex;flex-direction:column}
.sum__cal .h-num{font-size:52px;color:var(--gold)}
.sum__cal .mono{color:var(--mute);margin-top:6px}
.sum__plan{background:var(--card);border:1px solid var(--line-2);border-top:2px solid var(--blue);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:4px}
.sum__plan .mono.red{color:var(--blue)}
.sum__plan b{font-weight:700;font-size:24px;letter-spacing:-.03em}

.pay{margin:calc(-1 * (var(--safe-t) + 14px)) calc(-1 * var(--gut)) 0}
.pay__img{height:46vh;min-height:300px;background-size:cover;background-position:center 18%;position:relative;filter:saturate(.9)}
.pay__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,16,.15) 0%,rgba(16,16,16,0) 35%,var(--bg) 100%)}
.pay__body{padding:0 var(--gut);margin-top:-70px;position:relative;display:flex;flex-direction:column;gap:12px}
.pay__body .h-big{font-size:36px}
.pay__body .h-big .red{color:var(--blue)}
.pay__list{display:grid;margin:4px 0;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:0 16px}
.pay__list li{padding:13px 0 13px 32px;border-top:1px solid var(--line);position:relative}
.pay__list li:first-child{border-top:0}
.pay__list li::before{content:"";position:absolute;left:2px;top:15px;width:18px;height:18px;border-radius:6px;background:var(--blue-wash);border:1px solid rgba(241,241,241,.3)}
.pay__list li::after{content:"";position:absolute;left:8px;top:18px;width:5px;height:9px;border:solid var(--blue);border-width:0 2px 2px 0;transform:rotate(45deg)}
.pay__list b{display:block;font-weight:600}
.pay__list span{color:var(--mute);font-size:14px}
.pay__price{display:flex;align-items:baseline;gap:10px;margin-top:6px}
.pay__price .mono{color:var(--mute)}
.pay .link{align-self:center}

/* intro */
.intro{position:fixed;inset:0;z-index:90;background:#000000;display:grid;place-items:center}
.intro video{width:100%;height:100%;object-fit:contain}
.intro__skip{position:absolute;top:calc(var(--safe-t) + 16px);right:var(--gut);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);padding:9px 14px;border-radius:99px;backdrop-filter:blur(8px);color:#ffffff}
.intro__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12)}
.intro__bar span{display:block;height:100%;background:var(--blue);transform-origin:left;transform:scaleX(0)}

.toast{position:fixed;left:50%;top:calc(var(--safe-t) + 12px);transform:translate(-50%,-150%);z-index:100;background:#252525;border:1px solid var(--edge);color:var(--text);padding:11px 16px;border-radius:14px;font-weight:600;font-size:14px;box-shadow:0 16px 40px rgba(0,0,0,.5);transition:transform .4s var(--ease);max-width:calc(100% - 32px);text-align:center}
.toast.is-on{transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* library search */
.lib-head{padding:10px 0 2px}
.lib-head .mono{display:block;margin-bottom:6px}
.lib-sub{color:var(--soft);font-size:15px;margin-top:6px}
.lib-search{position:relative;background:rgba(15,15,15,.7);border:1px solid var(--edge);border-radius:16px;padding:8px}
.lib-search svg{position:absolute;left:20px;top:50%;width:19px;height:19px;transform:translateY(-50%);fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;pointer-events:none}
.lib-search .field{padding-left:42px;font-size:16px;border-color:var(--line-2);background:var(--well)}
.lib-explore{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.lib-explore .mono{margin-right:4px}
.lib-explore .chip{padding:6px 11px;font-size:12px}
.lib-types{margin-top:2px}
.lib-count{font-size:13px;color:var(--mute);margin:4px 0 2px}
.lib-card{display:block;width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:16px 18px;transition:transform .15s,border-color .2s;text-align:left}
button.lib-card:active{transform:scale(.985)}
.lib-card__meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute)}
.lib-type{font-style:normal;font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:99px;border:1px solid}
.lib-card--guide .lib-type{color:var(--lav);border-color:rgba(233,233,233,.35);background:rgba(233,233,233,.08)}
.lib-card--term .lib-type{color:var(--gold);border-color:rgba(243,243,243,.35);background:rgba(243,243,243,.08)}
.lib-card--exercise .lib-type{color:var(--blue);border-color:rgba(241,241,241,.35);background:rgba(241,241,241,.08)}
.lib-card--machine .lib-type{color:var(--mint);border-color:rgba(241,241,241,.35);background:rgba(241,241,241,.08)}
.lib-card h3{font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin:8px 0 4px}
.lib-card p{font-size:14.5px;color:var(--soft);line-height:1.5}
.lib-card__foot{display:block;border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:12px;color:var(--mute)}
.lib-card.is-read{opacity:.7}
.lib-card--term h3{font-size:17px}

/* fuel v2 */
.wk{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.wk__d{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 7px;border-radius:14px;border:1px solid var(--line);background:var(--well);color:var(--mute);transition:background .2s,border-color .2s}
.wk__d.is-on{background:var(--card-2);border-color:var(--edge);color:var(--text)}
.wk__bar{width:8px;height:34px;border-radius:4px;background:#202020;display:flex;align-items:flex-end;overflow:hidden}
.wk__bar i{display:block;width:100%;background:var(--gold);border-radius:4px}
.wk__d.is-over .wk__bar i{background:var(--rose)}
.wk__d b{font-size:11px;font-weight:650}
.wk__d em{font-style:normal;font-size:11px;color:var(--dim)}
.wk__d.is-on em{color:var(--soft)}
.meal__h{align-items:center}
.meal__h>div{display:flex;flex-direction:column}
.meal__sub{font-size:12px;color:var(--mute);margin-top:1px}
.icon-btn--sm{width:32px;height:32px;border-radius:10px}
.icon-btn--sm svg{width:16px;height:16px;fill:currentColor;stroke:none}
.list>button:disabled{opacity:.4}
.seg--sm{margin:14px 0 4px}
.seg--sm button{padding:7px 4px;font-size:12.5px}
.empty{font-size:14px;color:var(--mute);padding:16px 2px;line-height:1.5}
.frow{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line)}
.foods li:first-child .frow{border-top:0}
.frow__main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:11px 0}
.frow__main>div{flex:1;min-width:0;display:flex;flex-direction:column}
.frow__main b{font-weight:550;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frow__main .mono{font-size:11.5px;letter-spacing:0;text-transform:none;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frow__img{width:40px;height:40px;border-radius:10px;object-fit:cover;background:#ffffff;flex:none}
.frow__cal{font-weight:650;font-size:15px;text-align:right;flex:none;font-variant-numeric:tabular-nums;line-height:1.1}
.frow__cal small{display:block;font-size:10px;color:var(--mute);font-weight:500}
.frow__add{width:34px;height:34px;border-radius:50%;flex:none;background:var(--blue-wash);border:1px solid rgba(241,241,241,.3);color:var(--blue);font-size:20px;line-height:1;display:grid;place-items:center;transition:transform .15s,background .2s}
.frow__add:active{transform:scale(.88);background:var(--blue);color:var(--blue-ink)}
.fd__h{align-items:center}
.fd__h>div{flex:1;min-width:0}
.fd__img{width:52px;height:52px;border-radius:12px;object-fit:cover;background:#ffffff;flex:none}
.icon-btn.is-fav{color:var(--gold);border-color:rgba(243,243,243,.4)}
.icon-btn.is-fav svg{fill:var(--gold)}
.qchips{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.qchips .chip{padding:7px 11px;font-size:12.5px}
.fd__split{margin-top:12px}
.split{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#202020}
.split i{display:block;height:100%}
.sp-p{background:var(--blue)}.sp-c{background:var(--gold)}.sp-f{background:var(--lav)}
.split__key{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--mute)}
.split__key span{display:flex;align-items:center;gap:6px}
.split__key i{width:8px;height:8px;border-radius:2px;display:inline-block}

/* machines + swap */
.exlist__row{display:flex;align-items:center;gap:10px}
.exlist__row>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.swap-btn{display:inline-flex;align-items:center;gap:5px;flex:none;padding:6px 10px;border-radius:10px;border:1px solid var(--line-2);background:#121212;color:var(--blue);font-size:12px;font-weight:600}
.swap-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ex__head .swap-btn{margin-left:auto;align-self:flex-start}
.ex__head>div{flex:1;min-width:0}
.swap-brands{margin:12px calc(-1 * var(--gut)) 2px}
.brand-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.brand-pick{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;border:1px solid var(--line-2);background:var(--card);text-align:left;transition:border-color .2s,background .2s}
.brand-pick b{font-size:14.5px;font-weight:650}
.brand-pick span{font-size:12px;color:var(--mute)}
.brand-pick.is-on{border-color:var(--blue);background:linear-gradient(160deg,rgba(241,241,241,.14),transparent 70%),var(--card)}
.exlist li>.exlist__row{flex-direction:row;align-items:center}
.exlist__row>div{align-items:flex-start;text-align:left}

/* ===== Gear University layout ===== */
:root{--bg:#131313;--bg-2:#171717}
body{background:var(--bg)}
.app::before{height:760px;opacity:.75;background:
  radial-gradient(110% 70% at 50% 0%,rgba(130,130,130,.26) 0%,rgba(19,19,19,0) 70%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='390' height='760' fill='none' stroke='%23898989' stroke-opacity='.32' stroke-width='1.1' stroke-linecap='round'%3E%3Cg transform='translate(24 70) rotate(-22)'%3E%3Crect y='8' width='7' height='24' rx='2'/%3E%3Crect x='9' y='2' width='9' height='36' rx='3'/%3E%3Cpath d='M18 20h40'/%3E%3Crect x='58' y='2' width='9' height='36' rx='3'/%3E%3Crect x='69' y='8' width='7' height='24' rx='2'/%3E%3C/g%3E%3Cg transform='translate(300 120)'%3E%3Ccircle cx='34' cy='34' r='32'/%3E%3Ccircle cx='34' cy='34' r='21'/%3E%3Ccircle cx='34' cy='34' r='5'/%3E%3C/g%3E%3Cg transform='translate(30 330)'%3E%3Cpath d='M12 30a22 22 0 1 0 28 0'/%3E%3Cpath d='M16 30h20M20 18a6 6 0 0 1 12 0v12'/%3E%3C/g%3E%3Cg transform='translate(318 380) rotate(18)'%3E%3Cpath d='M0 16h56'/%3E%3Crect x='6' y='2' width='5' height='28' rx='2'/%3E%3Crect x='45' y='2' width='5' height='28' rx='2'/%3E%3C/g%3E%3Cg transform='translate(250 620)'%3E%3Ccircle cx='22' cy='22' r='20'/%3E%3Ccircle cx='22' cy='22' r='4'/%3E%3C/g%3E%3Cg transform='translate(40 600) rotate(-8)'%3E%3Cpath d='M4 30 18 12l10 10 18-20'/%3E%3Cpath d='M38 2h8v8'/%3E%3C/g%3E%3C/svg%3E") center top/390px auto no-repeat}
.eyebrow{display:block;font-size:11px;font-weight:650;letter-spacing:.065em;text-transform:uppercase;color:var(--soft)}
.eyebrow--blue{color:var(--blue)}

/* top bar */
.gh{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 10px) var(--gut) 10px;background:rgba(23,23,23,.97);border-bottom:1px solid rgba(255,255,255,.07);margin:0}
.gh__btn{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid #3f3f3f;background:#1c1c1c;color:var(--text);flex:none}
.gh__btn--sq{border-radius:13px}
.gh__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gh__btn svg.fill{fill:currentColor;stroke:none}
.gh__dot{position:absolute;top:9px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px #1c1c1c}
.gh__logo{width:38px;height:38px;background:url(../img/icon-192.png) center/cover;border-radius:10px;flex:none}
.gh__r{margin-left:auto;display:flex;align-items:center;gap:8px}
.gh__pill{height:42px;display:inline-flex;align-items:center;padding:0 14px;border-radius:13px;border:1px solid #3f3f3f;background:#1c1c1c;font-weight:650;font-size:14px}
.view{padding-top:18px}
.sess-top{margin-top:-18px}

/* hero */
.hero{text-align:center;padding:14px 0 10px;display:flex;flex-direction:column;align-items:center}
.hero__badge{width:64px;height:64px;border-radius:16px;background:url(../img/icon-192.png) center/cover;margin-bottom:16px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.hero__h1{font-family:var(--display);font-weight:700;font-size:38px;line-height:1.08;letter-spacing:-.045em;margin:12px 0 12px}
.hero__sub{color:var(--soft);font-size:16.5px;line-height:1.6;max-width:30em}
.hero__sub--left{text-align:left;margin:10px 0 4px}
.hsearch{position:relative;display:flex;gap:8px;align-items:center;width:100%;margin-top:22px;padding:10px;border-radius:18px;background:#181818;border:1px solid #454545}
.hsearch svg{width:20px;height:20px;flex:none;margin:0 4px 0 6px;fill:none;stroke:var(--soft);stroke-width:2;stroke-linecap:round}
.hsearch .field{flex:1;min-width:0;padding:11px 12px;background:#141414;border-color:#838383}
.hsearch .btn{flex:none;padding:11px 14px;border-radius:9px;font-size:13.5px}
.explore{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;align-items:center;margin-top:16px}
.explore .eyebrow{color:var(--mute);margin-right:4px}
.explore .chip{padding:6px 11px;font-size:11.5px;font-weight:500;background:#141414;border-color:#2a2a2a;color:#f4f4f4}
.hero__stats{font-size:13px;color:var(--mute);margin-top:16px}
.hero__cta{display:flex;align-items:center;gap:18px;margin-top:20px}
.hero__cta .btn{padding:14px 20px;border-radius:12px}
.ulink{color:#fafafa;font-weight:600;font-size:15px;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}

/* feature cards */
.fcard{display:flex;gap:14px;align-items:center;width:100%;text-align:left;border-radius:22px;padding:24px 22px;border:1px solid #3f3f3f;border-top:3px solid var(--fc);background:linear-gradient(170deg,var(--ft) 0%,rgba(26,26,26,.4) 60%),#1a1a1a;transition:transform .15s}
.fcard:active{transform:scale(.985)}
.fcard--blue{--fc:#f1f1f1;--ft:rgba(119,119,119,.22)}
.fcard--gold{--fc:#f3f3f3;--ft:rgba(111,111,111,.25)}
.fcard--lav{--fc:#e9e9e9;--ft:rgba(91,91,91,.28)}
.fcard__txt{flex:1;min-width:0}
.fcard .eyebrow{color:var(--fc)}
.fcard h3{font-size:26px;font-weight:700;letter-spacing:-.035em;line-height:1.15;margin:10px 0 10px}
.fcard p{font-size:15.5px;color:#f5f5f5;line-height:1.6}
.fcard__foot{display:block;margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:var(--fc)}
.fcard__art{width:96px;flex:none;color:var(--fc);opacity:.85}
.fcard__art svg{width:100%;height:auto}

/* topic panel */
.topic,.tools{padding:22px 0 4px}
.topic>.eyebrow,.tools>.eyebrow{color:var(--mute)}
.topic__h{font-family:var(--display);font-weight:700;font-size:30px;line-height:1.12;letter-spacing:-.04em;margin:10px 0 14px}
.topic__panel{border-radius:22px;border:1px solid #3f3f3f;background:#1a1a1a;padding:22px}
.topic__title{font-size:26px;font-weight:700;letter-spacing:-.035em;margin:6px 0 14px}
.trows{display:grid;gap:10px}
.trow{display:flex;align-items:center;gap:12px;width:100%;padding:15px 16px;border-radius:14px;border:1px solid #3f3f3f;background:#171717;text-align:left}
.trow b{flex:1;font-weight:600;font-size:15px}
.trow span{color:var(--blue);font-size:15px}
.trow__ck{width:20px;height:20px;border-radius:6px;border:1.5px solid #505050;flex:none;position:relative}
.trow.is-on b{color:var(--mute)}
.trow.is-on .trow__ck{background:var(--blue);border-color:var(--blue)}
.trow.is-on .trow__ck::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--blue-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.trow--water{flex-wrap:wrap}
.worth{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}
.worth .eyebrow{color:var(--mute);letter-spacing:.02em;text-transform:none;font-size:12.5px}
.worth p{margin-top:6px;color:#f5f5f5;font-size:15px;line-height:1.55}

/* tools list */
.tlist{display:grid;margin-top:14px}
.tlist li{border-top:2px solid var(--tc,#3f3f3f)}
.tlist li:last-child{border-bottom:1px solid rgba(255,255,255,.08)}
.tlist .t--mint{--tc:#f1f1f1}.tlist .t--gold{--tc:#f3f3f3}.tlist .t--lav{--tc:#e9e9e9}.tlist .t--blue{--tc:#f1f1f1}
.tlist button,.tlist a{display:flex;align-items:center;gap:16px;width:100%;padding:20px 2px;text-align:left}
.tlist i{width:46px;height:46px;border-radius:12px;background:#232323;display:grid;place-items:center;flex:none;color:var(--tc)}
.tlist i svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tlist div{flex:1;min-width:0}
.tlist b{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}
.tlist span{display:block;font-size:13.5px;color:var(--mute);margin-top:3px;line-height:1.45}
.tlist em{font-style:normal;color:var(--soft);font-size:17px}
.tlist--menu li{border-top:1px solid rgba(255,255,255,.08)}
.tlist--menu button,.tlist--menu a{padding:16px 2px}
.lib-head .h-big{font-size:38px;letter-spacing:-.045em;margin-top:2px}
.lib-head .mono{color:var(--soft)!important}
.lib-head--row{display:flex;align-items:flex-start;gap:12px}
.lib-head--row>div{flex:1}
.lib-head--row .icon-btn{margin-top:22px}

/* ===== Concept A (Higgsfield), Oct 20: blue navy, glow, refined controls ===== */
:root{
  --bg:#111111;--bg-2:#171717;--card:#191919;--card-2:#1e1e1e;--well:#161616;
  --line:rgba(237,237,237,.08);--line-2:#3a3a3a;--edge:#4f4f4f;
  --soft:#f3f3f3;--mute:#9c9c9c;--dim:#6d6d6d;
  --blue:#f2f2f2;--blue-2:#f5f5f5;--blue-ink:#151515;
}
html,body{background:#0f0f0f}
body{background:linear-gradient(180deg,#171717 0%,#111111 520px,#0f0f0f 100%) fixed}
.app::before{height:900px;opacity:1;background:
  radial-gradient(90% 55% at 50% -8%,rgba(83,83,83,.55) 0%,rgba(17,17,17,0) 70%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='390' height='900' fill='none' stroke='%23707070' stroke-opacity='.5' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(22 112) rotate(-32)'%3E%3Crect x='0' y='9' width='9' height='26' rx='3'/%3E%3Crect x='10' y='2' width='11' height='40' rx='4'/%3E%3Cpath d='M21 22h34'/%3E%3Crect x='55' y='2' width='11' height='40' rx='4'/%3E%3Crect x='67' y='9' width='9' height='26' rx='3'/%3E%3C/g%3E%3Cg transform='translate(310 96)'%3E%3Ccircle cx='27' cy='27' r='26'/%3E%3Ccircle cx='27' cy='27' r='17'/%3E%3Ccircle cx='27' cy='27' r='4'/%3E%3C/g%3E%3Cg transform='translate(322 262)'%3E%3Cpath d='M10 16a12 12 0 0 1 22 0'/%3E%3Crect x='8' y='14' width='26' height='8' rx='4'/%3E%3Ccircle cx='21' cy='36' r='17'/%3E%3C/g%3E%3Cg transform='translate(20 560) rotate(-32)'%3E%3Crect x='0' y='8' width='8' height='22' rx='3'/%3E%3Crect x='9' y='2' width='10' height='34' rx='4'/%3E%3Cpath d='M19 19h28'/%3E%3Crect x='47' y='2' width='10' height='34' rx='4'/%3E%3Crect x='58' y='8' width='8' height='22' rx='3'/%3E%3C/g%3E%3Cg transform='translate(318 560)'%3E%3Ccircle cx='24' cy='24' r='23'/%3E%3Ccircle cx='24' cy='24' r='14'/%3E%3Ccircle cx='24' cy='24' r='3'/%3E%3C/g%3E%3C/svg%3E") center 0/390px auto no-repeat}

/* top bar */
.gh{background:linear-gradient(180deg,rgba(32,32,32,.92),rgba(25,25,25,.88));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(147,147,147,.16);padding-top:calc(var(--safe-t) + 12px);padding-bottom:12px}
.gh__btn,.gh__pill{background:#171717;border:1px solid rgba(138,138,138,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.gh__btn{width:44px;height:44px}
.gh__btn--sq{border-radius:14px}
.gh__pill{height:44px;border-radius:14px;padding:0 18px;font-size:15px;font-weight:600;color:#fcfcfc}
.gh__logo{width:40px;height:40px;border-radius:11px;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.gh__dot{background:#ededed;box-shadow:0 0 0 2px #171717}

/* hero */
.hero{padding-top:20px}
.hero__badge{width:60px;height:60px;border-radius:17px;margin-bottom:18px;box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 1px rgba(235,235,235,.08)}
.hero .eyebrow{color:#f3f3f3;letter-spacing:.17em;font-size:11.5px}
.hero__h1{font-size:46px;font-weight:800;letter-spacing:-.055em;line-height:1.04;margin:14px 0 14px}
.hero__sub{color:#f3f3f3;font-size:17.5px;line-height:1.55}
.hsearch{border-radius:24px;padding:10px;background:rgba(23,23,23,.92);border:1px solid #434343;margin-top:24px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.hsearch .field{border-radius:18px;background:#161616;border:1px solid #616161;padding:12px 14px}
.hsearch .btn{border-radius:12px;padding:12px 16px;font-size:14px}
.explore{gap:9px;margin-top:20px}
.explore .eyebrow{color:var(--blue);letter-spacing:.17em;font-size:11px}
.explore .chip{border-radius:999px;border:1px solid #4e4e4e;background:#151515;color:#f8f8f8;font-size:13px;padding:8px 15px;font-weight:500}
.hero__stats{font-size:14.5px;color:#eaeaea;margin-top:20px}
.hero__cta{gap:24px;margin-top:22px}
.hero__cta .btn{padding:16px 34px;border-radius:17px;font-size:17px;font-weight:650;box-shadow:0 10px 26px rgba(233,233,233,.18)}
.ulink{color:#fafafa;font-size:16.5px;font-weight:600;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:6px}
.btn--red{background:var(--blue);border-color:var(--blue-2);color:var(--blue-ink)}

/* cards */
.fcard{border-radius:26px;border:1px solid #3e3e3e;border-top:3px solid var(--fc);background:linear-gradient(180deg,var(--ft) 0%,rgba(25,25,25,0) 55%),linear-gradient(180deg,#202020,#181818);box-shadow:0 -6px 22px -14px var(--fc),0 18px 40px -20px rgba(0,0,0,.6)}
.fcard--blue{--fc:#eeeeee;--ft:rgba(108,108,108,.28)}
.fcard--gold{--fc:#f3f3f3;--ft:rgba(117,117,117,.25)}
.fcard--lav{--fc:#e9e9e9;--ft:rgba(96,96,96,.28)}
.card,.meal,.hist,.list,.lib-card,.arts button,.stats3 div,.pick,.topic__panel,.sum__plan,.i-list li,.i-desk{background:linear-gradient(180deg,#1d1d1d,#181818);border-color:#3b3b3b}
.card--hero,.card--fuel,.card--read,.card--done,.fuel-sum,.sum__cal{border-top-width:3px}
.topic__panel{border-radius:26px}
.trow{background:#171717;border-color:#414141;border-radius:16px}
.chip{border-radius:999px;border-color:#4e4e4e;background:#151515;color:#f8f8f8}
.chip.is-on{background:#3c3c3c;border-color:#727272;color:#ffffff}
.seg{background:#161616;border-color:#3b3b3b}
.seg button.is-on{background:#3c3c3c;box-shadow:inset 0 0 0 1px #727272}
.field{background:#161616;border-color:#525252}
.lib-search{border-radius:24px;background:rgba(23,23,23,.92);border-color:#434343}
.lib-search .field{border-radius:18px;border-color:#616161}
.lib-head .mono{color:#f3f3f3!important;letter-spacing:.16em}
.lib-head .h-big{font-size:40px;font-weight:800;letter-spacing:-.05em}
.btn{border-radius:14px}
.btn--ghost{background:#171717;border-color:#4f4f4f}
.icon-btn{background:#171717;border-color:rgba(138,138,138,.5);border-radius:14px}
.icon-btn--red{background:var(--blue);border-color:var(--blue-2);color:var(--blue-ink)}
.swap-btn{background:#171717;border-color:#4e4e4e;border-radius:12px}
.week span{border-radius:14px;background:#161616;border-color:#262626}
.week span.is-train{background:#1d1d1d;border-color:#414141}
.wk__d{background:#161616;border-color:#262626;border-radius:16px}
.wk__d.is-on{background:#232323;border-color:#616161}

/* tab bar */
.tabbar{background:rgba(18,18,18,.94);border-top:1px solid rgba(147,147,147,.14);padding-top:10px}
.tabbar button{color:#8a8a8a;font-size:11px}
.tabbar button.is-on{color:#efefef}
.sheet__panel{background:#171717;border-color:#3e3e3e}
.toast{background:#232323;border-color:#616161}

/* ===== Real photos (Oct 20 pm): no more line-art ===== */
.app::before,.install::before{height:640px;opacity:1;background:
  linear-gradient(180deg,rgba(17,17,17,.35) 0%,rgba(17,17,17,.72) 55%,#111111 100%),
  radial-gradient(90% 50% at 50% -5%,rgba(83,83,83,.45) 0%,rgba(17,17,17,0) 70%),
  url(../img/photos/bg.webp) center top/cover no-repeat}
.fcard{flex-direction:column;align-items:stretch;padding:0;overflow:hidden;gap:0}
.fcard__img{height:168px;background-size:cover;background-position:center;position:relative}
.fcard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,17,17,0) 45%,rgba(24,24,24,.95) 100%)}
.fcard__txt{padding:4px 22px 22px;margin-top:-18px;position:relative}
.fcard--gold .fcard__img{background-position:center 40%}
.today-list{padding:16px 0 2px}
.today-list .row-between .eyebrow{color:var(--mute)}
.today-list .trows{margin-top:10px}
.lib-card--photo{position:relative;padding-right:112px;min-height:120px}
.lib-card__ph{position:absolute;right:14px;top:16px;width:84px;height:84px;border-radius:14px;background-size:cover;background-position:center;box-shadow:0 6px 18px rgba(0,0,0,.35)}

.article__ph{height:200px;border-radius:22px;background-size:cover;background-position:center;margin:6px 0 10px;border:1px solid #3b3b3b}

/* split editor */
.field--inline{width:auto;flex:1;min-width:0;padding:10px 32px 10px 12px;font-size:14px;border-radius:12px}
.week--pick{margin-top:8px}
.week--pick button{aspect-ratio:1;border-radius:14px;display:grid;place-items:center;background:#161616;border:1px solid #262626;color:var(--dim);font-size:14px;font-weight:650}
.week--pick button.is-on{background:var(--blue);border-color:var(--blue);color:var(--blue-ink)}
.ed-day__h{display:flex;align-items:center;gap:10px}
.ed-day__n{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--blue-wash);border:1px solid rgba(242,242,242,.3);color:var(--blue);font-weight:700;font-size:14px;flex:none}
.field--title{flex:1;font-weight:700;font-size:18px;padding:9px 12px;background:transparent;border-color:transparent}
.field--title:focus{background:#161616;border-color:var(--blue)}
.ed-ex{display:grid;margin-top:8px}
.ed-ex li{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.ed-ex__main{display:flex;flex-direction:column;gap:2px}
.ed-ex__main b{font-size:15.5px;font-weight:600}
.ed-ex__main .mono{font-size:10.5px}
.ed-ex__ctl{display:flex;align-items:center;gap:6px}
.ed-ex__ctl .field--sm{width:52px;padding:8px;font-size:15px}
.ed-ex__ctl .field--reps{width:76px}
.ed-ex__ctl span{color:var(--mute);font-size:13px}
.ed-mini{width:36px;height:36px;border-radius:10px;border:1px solid #4e4e4e;background:#171717;color:var(--soft);font-size:16px;margin-left:auto}
.ed-mini+.ed-mini{margin-left:0}
.ed-mini:disabled{opacity:.3}
.swap-pats{margin:12px calc(-1 * var(--gut)) 0}
.meal__quick{display:flex;gap:8px;align-items:center;padding:10px 0 4px;border-top:1px solid var(--line)}
.meal__quick .field{padding:11px 14px;border-radius:14px;font-size:15px}
.meal__quick .frow__add{width:42px;height:42px;font-size:22px;background:var(--blue);color:var(--blue-ink);border-color:var(--blue-2)}
.meal__add{border-top:0;padding:8px 0 12px;font-size:13px;color:var(--blue)}

/* ===== Black and white (Oct 20 pm) ===== */
:root{--blue:#f4f4f4;--blue-2:#ffffff;--blue-ink:#0b0b0b;--blue-wash:rgba(255,255,255,.08);--gold:#f4f4f4;--lav:#d9d9d9;--mint:#f4f4f4;--rose:#bdbdbd}
html,body{background:#0b0b0b}
body{background:#0b0b0b}
.btn--red,.icon-btn--red,.hsearch .btn,.meal__quick .frow__add{background:#fff;border-color:#fff;color:#0b0b0b}
.btn--red:hover{background:#e9e9e9}
.mbar__track span{background:#f4f4f4}
.mbar:nth-child(2) .mbar__track span,.fuel-sum__right .mbar:nth-child(3) .mbar__track span{background:#a8a8a8}
.mbar:nth-child(3) .mbar__track span,.fuel-sum__right .mbar:nth-child(4) .mbar__track span{background:#6a6a6a}
.fuel-sum__right .mbar:nth-child(2) .mbar__track span{background:#f4f4f4}
.sp-p{background:#f4f4f4}.sp-c{background:#a8a8a8}.sp-f{background:#6a6a6a}
.ring__fg{stroke:#f4f4f4}.ring__fg.is-over{stroke:#8a8a8a}
.wk__bar i{background:#f4f4f4}
.fcard{box-shadow:0 18px 40px -20px rgba(0,0,0,.7)}
.fcard--blue,.fcard--gold,.fcard--lav{--fc:#f4f4f4;--ft:rgba(255,255,255,.06)}

.gh__dot{background:#fff;box-shadow:0 0 0 2px #1a1a1a}
.lib-card--guide .lib-type,.lib-card--term .lib-type,.lib-card--exercise .lib-type,.lib-card--machine .lib-type{color:#e8e8e8;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.06)}

.frow__add{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff}
.tabbar button.is-on{color:#fff}
.last{color:#cfcfcf!important}
.ex__note{color:#e6e6e6}
.ex__last b{color:#fff}
.stats3 b.red{color:#fff}
.wchart__line{stroke:#f4f4f4}.wchart__fill{fill:rgba(255,255,255,.08)}
.vcard{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:12px;border-radius:20px;border:1px solid #333;background:linear-gradient(180deg,#1c1c1c,#151515);transition:transform .15s}
.vcard:active{transform:scale(.985)}
.vcard__ph{position:relative;width:74px;height:112px;border-radius:14px;background-size:cover;background-position:center;flex:none;display:grid;place-items:center;border:1px solid #333}
.vcard__play{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);position:relative;box-shadow:0 4px 14px rgba(0,0,0,.5)}
.vcard__play::after{content:"";position:absolute;left:13px;top:10px;border-left:11px solid #0b0b0b;border-top:7px solid transparent;border-bottom:7px solid transparent}
.vcard__txt{display:flex;flex-direction:column;gap:3px}
.vcard__txt .eyebrow{color:#9a9a9a}
.vcard__txt b{font-size:18px;font-weight:700;letter-spacing:-.02em}
.vcard__txt span:last-child{font-size:14px;color:#a8a8a8}
.lib-card{overflow:hidden}
.app::before,.install::before{background:
  linear-gradient(180deg,rgba(11,11,11,.3) 0%,rgba(11,11,11,.7) 50%,#0b0b0b 92%),
  url(../img/photos/bg.webp) center top/cover no-repeat}
.app::before,.install::before{height:560px;background:
  linear-gradient(180deg,#0b0b0b 0%,rgba(11,11,11,.55) 22%,rgba(11,11,11,.62) 55%,#0b0b0b 96%),
  url(../img/photos/bg.webp) center 40%/cover no-repeat}

/* ===== One accent on black and white (Oct 20) ===== */
:root{--acc:#e5484d;--acc-ink:#ffffff;--acc-wash:rgba(229,72,77,.14)}
.tabbar button.is-on{color:var(--acc)}
.ring__fg{stroke:var(--acc)}
.fuel-sum__right .mbar:nth-child(2) .mbar__track span,.card--fuel__bars .mbar:nth-child(1) .mbar__track span,.mbar:first-child .mbar__track span{background:var(--acc)}
.wk__bar i{background:var(--acc)}
.trow.is-on .trow__ck,.check.is-on i,.setcheck.is-on{background:var(--acc);border-color:var(--acc)}
.trow.is-on .trow__ck::after,.check.is-on i::after,.setcheck.is-on::after{border-color:var(--acc-ink)}
.fcard{border-top-color:var(--acc)}
.fcard .eyebrow,.fcard__foot{color:var(--acc)}
.week span.is-today{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.week span.is-train b::after{background:var(--acc)}
.gh__dot{background:var(--acc)}
.last,.ex__last b,.stats3 b.red{color:var(--acc)!important}
.dotr{background:var(--acc)}
.sess-bar span,.ob__bar span,.intro__bar span{background:var(--acc)}
.streak b{color:var(--acc)}
.hero .eyebrow{color:var(--acc)}
.lib-card--guide .lib-type{color:var(--acc);border-color:var(--acc-wash);background:var(--acc-wash)}
.vcard__txt .eyebrow{color:var(--acc)}
.wchart__line{stroke:var(--acc)}.wchart__fill{fill:var(--acc-wash)}
.sp-p{background:var(--acc)}
.ob__demo{align-self:center;margin-top:8px}

/* 1:1 coaching */
.fromian{border-radius:20px;border:1px solid rgba(229,72,77,.35);border-left:3px solid var(--acc);background:linear-gradient(180deg,#1a1414,#141212);padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.fromian .eyebrow{color:var(--acc)}
.fromian p{font-size:15.5px;line-height:1.5;color:#e6e6e6}
.fromian .btn{align-self:flex-start}
.ob__code{margin-top:14px}
.card--coach{border-top:3px solid var(--acc)}

/* chat with Ian */
body.in-chat .view{padding:0;gap:0;height:100vh;height:100dvh;display:flex;flex-direction:column}
body.in-chat .app::before{display:none}
.chat-top{display:flex;align-items:center;gap:12px;padding:calc(var(--safe-t) + 10px) var(--gut) 10px;border-bottom:1px solid #222;background:rgba(18,18,18,.96);flex:none}
.chat-top b{display:block;font-size:16px}
.chat-top .mono{font-size:10px}
.chat-top__av{width:38px;height:38px;border-radius:50%;background:url(../img/hero.webp) center 20%/cover;border:1px solid #333;flex:none}
.chat{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px var(--gut) 12px;display:flex;flex-direction:column;gap:6px}
.chat-day{align-self:center;font-size:11px;color:#8a8a8a;font-weight:600;letter-spacing:.04em;margin:10px 0 4px}
.bub{max-width:80%;display:flex;flex-direction:column;gap:3px}
.bub p{padding:10px 14px;border-radius:18px;font-size:15.5px;line-height:1.45;word-wrap:break-word}
.bub span{font-size:10.5px;color:#7d7d7d;padding:0 6px}
.bub--me{align-self:flex-end;align-items:flex-end}
.bub--me p{background:#f4f4f4;color:#0b0b0b;border-bottom-right-radius:6px}
.bub--ian{align-self:flex-start}
.bub--ian p{background:#1e1e1e;border:1px solid #2e2e2e;color:#f0f0f0;border-bottom-left-radius:6px}
.bub.is-pending p{opacity:.6}
.chat-empty{margin:auto;text-align:center;display:flex;flex-direction:column;gap:6px;max-width:280px}
.chat-empty b{font-size:18px}
.chat-empty span{color:#8f8f8f;font-size:14.5px}
.chat-in{display:flex;align-items:flex-end;gap:8px;padding:10px var(--gut) calc(var(--safe-b) + 10px);border-top:1px solid #222;background:rgba(18,18,18,.96);flex:none}
.chat-in .field{flex:1;resize:none;border-radius:20px;padding:11px 16px;font-family:var(--font);font-size:16px;line-height:1.35;max-height:140px}
.chat-send{width:44px;height:44px;border-radius:50%;background:var(--acc);display:grid;place-items:center;flex:none}
.chat-send svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.msg-count{font-style:normal;display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--acc);color:#fff;font-size:11px;font-weight:700;margin-left:6px}
.msg-count[hidden]{display:none}
.gh__pill{cursor:pointer}
.fromian .btnrow{margin-top:2px}
.gh__pill{white-space:nowrap;padding:0 14px}
.pushbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#161616;border:1px solid #2c2c2c;font-size:13.5px;color:#cfcfcf;line-height:1.4}
.pushbar svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--acc);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pushbar span{flex:1}
.pushbar .btn{flex:none}
.pushbar--chat{margin:8px var(--gut) 0;flex:none}
.pushbar--me{margin:4px 0 2px}

/* daily verse + motivation */
.daily{border-radius:22px;border:1px solid #2c2c2c;background:linear-gradient(180deg,#191919,#131313);padding:20px}
.daily .eyebrow{color:var(--acc)}
.daily__verse{font-size:18px;line-height:1.5;color:#f2f2f2;margin:10px 0 8px;font-weight:500;letter-spacing:-.01em}
.daily__ref{font-size:12.5px;color:#9a9a9a;font-weight:600}
.daily__rule{height:1px;background:#2a2a2a;margin:16px 0}
.daily__mot{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-top:8px}

/* weekly calorie check */
.adjust{border-radius:22px;border:1px solid rgba(229,72,77,.35);border-top:3px solid var(--acc);background:linear-gradient(180deg,#1a1515,#141212);padding:20px;display:flex;flex-direction:column;gap:8px}
.adjust .eyebrow{color:var(--acc)}
.adjust h3{font-size:22px;font-weight:800;letter-spacing:-.03em}
.adjust p{font-size:14.5px;color:#d6d6d6;line-height:1.5}
.adjust__row{display:flex;align-items:center;gap:14px;margin:4px 0}
.adjust__row div{display:flex;flex-direction:column}
.adjust__row span{font-size:11px;color:#8f8f8f;text-transform:uppercase;letter-spacing:.06em;font-weight:650}
.adjust__row b{font-size:28px;font-weight:800;letter-spacing:-.03em}
.adjust__row i{font-style:normal;color:var(--acc);font-size:22px}

/* ===== Glass tab bar (floating, frosted) ===== */
.tabbar{bottom:calc(var(--safe-b) + 10px);width:calc(100% - 24px);max-width:520px;border-radius:30px;padding:7px 6px;gap:2px;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.04)),rgba(22,22,22,.42);
  backdrop-filter:blur(26px) saturate(1.9);-webkit-backdrop-filter:blur(26px) saturate(1.9);
  border:1px solid rgba(255,255,255,.14);border-top-color:rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.25),0 14px 40px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.35)}
.tabbar button{border-radius:22px;padding:7px 0 6px;color:rgba(235,235,235,.62);transition:color .2s,background .25s,box-shadow .25s}
.tabbar button.is-on{color:var(--acc);background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.08)}
.view{padding-bottom:calc(var(--safe-b) + 112px)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.tabbar{background:rgba(28,28,28,.96)}}
.tabbar--6{grid-template-columns:repeat(6,1fr)}
.tabbar svg.stroke{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tabbar--6 button{font-size:10px}

/* =====================================================================
   SIMPLE (Oct 22): flat, quiet, less decoration. Red only for the active/primary thing.
   ===================================================================== */
:root{--sbg:#0a0a0a;--s1:#141414;--s2:#1b1b1b;--sline:#232323;--stext:#f2f2f2;--ssoft:#bdbdbd;--smute:#8a8a8a}
html,body{background:var(--sbg)}
body{background:var(--sbg)}
.app::before{display:none}
.view{gap:12px;padding-top:12px}

/* type: no spaced-out caps, smaller headings */
.eyebrow,.mono,.lib-head .mono,.top .mono,.card>.mono,.row-between .mono,.sec-h{font-family:var(--font);text-transform:none!important;letter-spacing:0!important;font-size:13px;font-weight:500;color:var(--smute)!important}
.h-big,.lib-head .h-big{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.h-mid{font-size:22px;font-weight:700;letter-spacing:-.015em}
.lib-head{padding:6px 0 0}
.lib-head .mono{display:none}
.lib-sub{display:none}
.lib-explore{display:none}

/* Today header */
.s-head{padding:10px 2px 4px}
.s-date{font-size:13px;color:var(--smute)}
.s-title{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:2px 0 4px}
.s-sub{font-size:15px;color:var(--ssoft)}

/* every card: flat, one hairline border, no glow, no colored top edge */
.card,.meal,.hist,.list,.lib-card,.arts button,.stats3 div,.pick,.topic__panel,.sum__plan,.sum__cal,.fcard,.daily,.fromian,.adjust,.vcard,.trow,.fuel-sum,.card--fuel,.card--hero,.card--done,.card--read,.card--coach,.wk__d,.week span,.i-list li,.i-desk,.i-grid article,.stat,.crow,.ci,.day,.codebox,.brand-pick,.seg,.lib-search,.hsearch{
  background:var(--s1)!important;background-image:none!important;border:1px solid var(--sline)!important;box-shadow:none!important}
.card,.meal,.hist,.list,.lib-card,.arts button,.fcard,.daily,.fromian,.adjust,.vcard,.topic__panel,.fuel-sum,.sum__cal,.sum__plan,.crow,.ci,.day,.stat,.pick{border-radius:16px!important}
.trow{border-radius:12px!important}
.fromian{border-left:1px solid var(--sline)!important}
.fromian .eyebrow,.daily .eyebrow,.adjust .eyebrow,.fcard .eyebrow,.card--read .mono.red,.card--done .mono.red{color:var(--smute)!important}

/* photo cards */
.fcard__img{height:150px;border-radius:15px 15px 0 0}
.fcard__img::after{display:none}
.fcard__txt{margin-top:0;padding:14px 16px 16px}
.fcard h3{font-size:19px;font-weight:700;letter-spacing:-.015em;margin:2px 0 2px}
.fcard p{font-size:14px;color:var(--smute)}
.fcard__foot{display:none}

/* daily verse + motivation */
.daily{padding:16px}
.daily__verse{font-size:16px;font-weight:400;margin:6px 0 6px;color:var(--stext)}
.daily__ref{font-size:12.5px;color:var(--smute);font-weight:500}
.daily__rule{margin:14px 0;background:var(--sline)}
.daily__mot{font-size:16px;font-weight:600;letter-spacing:-.01em;margin-top:4px}

/* checklist */
.today-list{padding:4px 0 0}
.trows{gap:8px}
.trow{padding:13px 14px}
.trow b{font-weight:500}
.trow.is-on .trow__ck{background:var(--acc);border-color:var(--acc)}
.trow.is-on .trow__ck::after{border-color:#fff}

/* intro row */
.vcard{padding:10px;gap:12px}
.vcard__ph{width:48px;height:48px;border-radius:12px}
.vcard__play{width:26px;height:26px}
.vcard__play::after{left:10px;top:7px;border-left-width:9px;border-top-width:6px;border-bottom-width:6px}
.vcard__txt b{font-size:15.5px;font-weight:600}
.vcard__txt span:last-child{font-size:13px}

/* buttons, chips, fields */
.btn{border-radius:12px;box-shadow:none!important}
.btn--red,.icon-btn--red,.hsearch .btn,.meal__quick .frow__add{background:#fff!important;border-color:#fff!important;color:#0a0a0a!important}
.btn--ghost,.icon-btn,.swap-btn,.ed-mini{background:var(--s2)!important;border:1px solid var(--sline)!important}
.chip{background:transparent!important;border:1px solid var(--sline)!important;color:var(--ssoft)!important;border-radius:999px}
.chip.is-on{background:var(--s2)!important;color:#fff!important;border-color:#3a3a3a!important}
.field{background:#0f0f0f!important;border-color:#2a2a2a!important;box-shadow:none!important}
.field:focus{border-color:#5a5a5a!important}
.seg{padding:3px}
.seg button.is-on{background:var(--s2)!important;box-shadow:none!important}

/* top bar: plain */
.gh{background:rgba(10,10,10,.92)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #1a1a1a!important}
.gh__btn,.gh__pill{background:transparent!important;border:1px solid var(--sline)!important;box-shadow:none!important}
.gh__logo{box-shadow:none}

/* glass tab bar, toned down */
.tabbar{background:rgba(24,24,24,.6)!important;backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);border:1px solid rgba(255,255,255,.09)!important;box-shadow:0 10px 30px rgba(0,0,0,.45)!important}
.tabbar button.is-on{background:rgba(255,255,255,.07)!important;box-shadow:none!important}

/* rings / bars / week strip: one accent */
.ring__fg{stroke:var(--acc)}
.ring__bg{stroke:#262626}
.mbar__track{background:#262626}
.mbar .mbar__track span{background:#d9d9d9!important}
.mbar:first-child .mbar__track span,.fuel-sum__right .mbar:nth-child(2) .mbar__track span{background:var(--acc)!important}
.week span.is-today{background:#fff;border-color:#fff!important;color:#0a0a0a}
.wk__d.is-on{background:var(--s2)!important}
.streak{background:transparent;border-color:var(--sline)}
.stats3 b.red{color:var(--stext)!important}

/* misc decoration off */
.pay__img::after{background:linear-gradient(180deg,rgba(10,10,10,0) 40%,var(--sbg) 100%)}
.adjust h3{font-size:19px}
.adjust__row b{font-size:24px}
.note{background:var(--s2);border-color:var(--sline)}
.dot{box-shadow:none}
.lib-type,.tag{background:transparent!important;color:var(--smute)!important;border:1px solid var(--sline)!important;text-transform:none!important;letter-spacing:0!important;font-size:11.5px;font-weight:500}

/* SIMPLE: Fuel */
.fz-head{display:flex;align-items:flex-end;justify-content:space-between;padding:10px 2px 2px}
.fz-head .s-title{margin:0}
.fz-head .s-date{margin-top:2px}
.fz-scan{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px;border-radius:999px;background:#fff;color:#0a0a0a;border:0;font:600 14px var(--font)}
.fz-scan svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fz-wk{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:2px 0}
.fz-wk__d{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 0;background:none;border:0;color:var(--smute);font-family:var(--font)}
.fz-wk__d span{font-size:12px}
.fz-wk__d b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:600;color:var(--ssoft)}
.fz-wk__d i{width:4px;height:4px;border-radius:50%;background:transparent}
.fz-wk__d.has-log i{background:#5a5a5a}
.fz-wk__d.is-on b{background:#fff;color:#0a0a0a}
.fz-wk__d.is-on span{color:#fff}
.fz-sum{background:var(--s1);border:1px solid var(--sline);border-radius:16px;padding:18px 16px 16px}
.fz-sum__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.fz-big{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1}
.fz-sum__top span{font-size:15px;color:var(--ssoft);margin-left:6px}
.fz-sum__top p{font-size:13px;color:var(--smute);margin:0;white-space:nowrap}
.fz-track{height:6px;border-radius:99px;background:#262626;overflow:hidden;margin-top:14px}
.fz-track i{display:block;height:100%;border-radius:inherit;background:#fff}
.fz-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.fz-m span{font-size:12.5px;color:var(--smute)}
.fz-m b{display:block;font-size:17px;font-weight:600;margin-top:3px}
.fz-m b em{font-style:normal;font-size:13px;font-weight:400;color:var(--smute)}
.fz-m .fz-track{height:4px;margin-top:8px}
.fz-m--p .fz-track i{background:var(--acc)}
.meal{padding:16px!important}
.meal__h .icon-btn{background:transparent!important;border:0!important;width:32px;height:32px}
.meal__add{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13.5px;color:var(--smute);background:none;border:0;padding:4px 0}
.meal__add svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* SIMPLE: Me */
.me-stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--s1);border:1px solid var(--sline);border-radius:16px;padding:14px 0}
.me-stats div{text-align:center;border-left:1px solid var(--sline)}
.me-stats div:first-child{border-left:0}
.me-stats b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em}
.me-stats span{font-size:12.5px;color:var(--smute)}
.me-card{background:var(--s1);border:1px solid var(--sline);border-radius:16px;padding:16px}
.me-lab{display:block;font-size:13px;color:var(--smute);margin-bottom:6px}
.me-w{display:flex;align-items:flex-end;justify-content:space-between}
.me-w b em{font-style:normal;font-size:15px;font-weight:500;color:var(--ssoft);letter-spacing:0}
.me-goal{font-size:13px;color:var(--ssoft);border:1px solid var(--sline);border-radius:999px;padding:4px 10px}
.me-card .wchart{margin:16px 0 6px;height:110px}
.me-card .wchart svg{width:100%;height:96px;display:block;overflow:visible}
.me-card .wchart__fill{fill:rgba(255,255,255,.05)!important;stroke:none!important}
.me-card .wchart__line{fill:none!important;stroke:#fff!important;stroke-width:2!important;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.me-card .wchart circle{fill:var(--acc)!important;stroke:none!important}
.wchart__axis{display:flex;justify-content:space-between;font-size:12px;color:var(--smute);margin-top:6px}
.me-card .wadd{margin-top:14px}
.me-hint{font-size:13px;color:var(--smute);margin:10px 0 0;line-height:1.45}
.me-tg{display:grid;grid-template-columns:repeat(4,1fr);margin-top:6px}
.me-tg div{border-left:1px solid var(--sline);padding-left:12px}
.me-tg div:first-child{border-left:0;padding-left:0}
.me-tg b{display:block;font-size:19px;font-weight:700;letter-spacing:-.02em}
.me-tg span{font-size:12.5px;color:var(--smute)}
.me-card .adjust{margin-top:12px}
.me-link{background:none;border:0;padding:0;margin-top:12px;color:#fff;font:600 14px var(--font);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#444}

/* SIMPLE: font (Oct 22). Inter for text, Instrument Serif for headings and big numbers. App only, not the install page. */
.app,.sheet,.intro,.scanner{--font:"Inter",-apple-system,system-ui,sans-serif;font-family:var(--font)}
.app :is(h1,h2,h3,.h-big,.h-mid,.s-title,.fz-big,.me-stats b,.me-tg b,.fz-m b),.sheet :is(h1,h2,h3){font-family:"Instrument Serif",Georgia,serif!important;font-weight:400!important;letter-spacing:0!important}
.app .s-title,.app .h-big,.app .lib-head .h-big{font-size:36px;line-height:1.05}
.app .h-mid{font-size:27px}
.app .fcard h3,.app .card h3,.app .me-card h3{font-size:24px;line-height:1.1}
.app .meal h3,.app .lib-card h3{font-size:21px}
.app .fz-big{font-size:44px}
.app .me-stats b{font-size:30px}
.app .me-tg b{font-size:23px}
.app .fz-m b{font-size:21px}

/* SIMPLE: workout logger (Oct 25) */
.ws-top{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:10px 0;margin:-12px 0 0;background:var(--sbg)}
.ws-x{width:40px;height:40px;border-radius:50%;border:1px solid var(--sline);font-size:22px;line-height:1;color:var(--ssoft)}
.ws-top__mid{text-align:center}
.ws-top__mid span{display:block;font-size:13px;color:var(--smute)}
.ws-top__mid b{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ws-fin{height:38px;padding:0 16px;border-radius:999px;background:#fff;color:#0a0a0a;font-weight:600;font-size:14px}
.ws-prog{height:4px;border-radius:99px;background:#262626;overflow:hidden}
.ws-prog span{display:block;height:100%;background:var(--acc);border-radius:inherit;transition:width .3s}
.ws-count{font-size:13px;color:var(--smute);margin:-4px 0 0}
.ws-ex{width:100%;text-align:left;background:var(--s1);border:1px solid var(--sline);border-radius:16px;padding:14px 16px;color:var(--stext)}
.ws-ex--mini{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px}
.ws-ex--mini b{display:block;font-size:16px;font-weight:600}
.ws-ex--mini span{font-size:13px;color:var(--smute)}
.ws-ex--mini i{font-style:normal;font-size:13px;font-weight:600;padding:7px 12px;border-radius:999px;border:1px solid #333}
.ws-ex--mini.is-done{opacity:.6}
.ws-ex--mini.is-done i{display:none}
.ws-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--s2);border:1px solid var(--sline);font-size:13px;font-weight:600;color:var(--ssoft)}
.ws-ex--mini.is-done .ws-n{background:var(--acc);border-color:var(--acc);color:#fff}
.ws-ex.is-open{border-color:#3a3a3a;padding:16px}
.ws-ex__h{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:start}
.ws-ex__h h3{margin:0 0 2px}
.ws-ex__h span{font-size:13px;color:var(--smute)}
.ws-ex.is-open .ws-n{background:#fff;color:#0a0a0a;border-color:#fff}
.ws-lt{font-variant-numeric:tabular-nums;font-size:14px!important;color:var(--ssoft)!important;padding-top:4px}
.ws-ex .ex__cue{font-size:14px;color:var(--ssoft);margin:12px 0 0}
.ws-ex .ex__note{font-size:13px;color:var(--smute);margin:6px 0 0}
.ws-beat{margin:12px 0 4px;padding:10px 12px;border-radius:12px;background:var(--s2);font-size:14px;color:var(--ssoft)}
.ws-beat b{color:#fff;font-weight:600}
.ws-beat span{display:block;font-size:12.5px;color:var(--smute);margin-top:3px}
.ws-sets{margin-top:10px}
.ws-row{display:grid;grid-template-columns:30px 1fr 64px 56px 44px;gap:8px;align-items:center;padding:5px 0}
.ws-row--h span{font-size:12px;color:var(--smute)}
.ws-sn{font-size:14px;font-weight:600;color:var(--ssoft);text-align:center}
.ws-prev{font-size:13px;color:var(--smute);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-row .field{height:44px;padding:0 8px;text-align:center;font-size:16px;font-weight:600}
.ws-row.is-done .field{background:transparent!important;border-color:transparent!important;color:#fff}
.ws-row.is-done .ws-prev{opacity:.5}
.ws-pr{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.02em;background:var(--acc);color:#fff;padding:3px 5px;border-radius:6px}
.ws-ex__foot{display:flex;gap:18px;margin-top:10px}
.ws-ex__foot .me-link{margin-top:4px;font-size:13.5px}
.ws-prs{font-size:15px;margin:14px 0}
.rest{bottom:calc(var(--safe-b) + 18px)}
.rest span{font-size:13px;color:var(--smute)}
.rest button{background:#fff!important;color:#0a0a0a!important;font-weight:600;font-size:13px}
.rest button[data-act=rest-add]{background:transparent!important;color:#fff!important;border:1px solid #444}
/* my lifts */
.lifts{list-style:none;margin:0;padding:0;background:var(--s1);border:1px solid var(--sline);border-radius:16px;overflow:hidden}
.lifts li+li{border-top:1px solid var(--sline)}
.lifts button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;text-align:left;color:var(--stext)}
.lifts b{display:block;font-size:15px;font-weight:600}
.lifts span{font-size:13px;color:var(--smute)}
.lifts em{font-style:normal;font-size:13px;font-weight:600;color:var(--ssoft);white-space:nowrap}
.lifts em.up{color:#4cc38a}
.lift-top{display:grid;grid-template-columns:repeat(3,1fr);margin:6px 0 14px}
.lift-top div{border-left:1px solid var(--sline);padding-left:12px}
.lift-top div:first-child{border-left:0;padding-left:0}
.lift-top span{display:block;font-size:12.5px;color:var(--smute)}
.lift-top b{font-size:18px;font-weight:700}
.lift-chart svg{width:100%;height:110px;display:block;overflow:visible}
.lc-fill{fill:rgba(255,255,255,.05);stroke:none}
.lc-line{fill:none;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.lift-chart circle{fill:var(--acc)}
.lift-hist{list-style:none;margin:16px 0 0;padding:0}
.lift-hist li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--sline);font-size:14px}
.lift-hist span{color:var(--smute);white-space:nowrap}
.lift-hist b{font-weight:500;text-align:right}
.app h3.sec-h{font-family:var(--font)!important;font-size:13px!important;font-weight:500!important;color:var(--smute)!important;margin:4px 2px 8px}
.ws-row .field::placeholder{color:#4a4a4a;font-weight:500}
/* backup card */
.bk-when{font-size:15px;font-weight:600;margin:0}
.bk-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--s2);border:1px dashed #3a3a3a}
.bk-code b{font-size:18px;font-weight:600;letter-spacing:.06em;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.bk-code .me-link{margin:0}
#restoreCode{text-transform:uppercase;letter-spacing:.08em;text-align:center;margin:14px 0 10px}
.ws-addset{width:100%;margin-top:8px;padding:11px;border-radius:12px;border:1px dashed #3a3a3a;color:var(--ssoft);font:600 14px var(--font);background:transparent}
.ws-addex{width:100%;padding:16px;border-radius:16px;border:1px dashed #3a3a3a;color:#fff;font:600 15px var(--font);background:var(--s1)}
.ws-lastday{display:block;width:100%;text-align:left;margin:12px 0 4px;padding:12px 14px;border-radius:12px;background:var(--s2);border:1px solid var(--sline);color:var(--stext)}
.ws-lastday span{display:block;font-size:12.5px;color:var(--smute)}
.ws-lastday b{display:block;font-size:15px;font-weight:600;margin:2px 0}
.ws-lastday em{font-style:normal;font-size:13px;color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#444}
.log-ex{list-style:none;margin:6px 0 0;padding:0}
.log-ex li{border-top:1px solid var(--sline)}
.log-ex button{width:100%;display:flex;justify-content:space-between;gap:14px;padding:12px 0;text-align:left;color:var(--stext)}
.log-ex b{font-size:15px;font-weight:600}
.log-ex span{font-size:14px;text-align:right;font-variant-numeric:tabular-nums;line-height:1.6;white-space:nowrap}
.log-ex i{font-style:normal;color:var(--smute);font-size:12px;margin-right:8px}
/* weekly check-in photos */
.ck-hint{font-size:13px;color:var(--smute);margin:-2px 0 10px}
.ck-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.ck-ph{position:relative;aspect-ratio:3/4;border-radius:12px;border:1px dashed #3a3a3a;background:var(--s2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;cursor:pointer}
.ck-ph i{font-style:normal;font-size:24px;color:var(--ssoft);line-height:1}
.ck-ph span{font-size:11px;color:var(--smute);text-align:center;line-height:1.2;padding:0 4px}
.ck-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ck-ph.has{border-style:solid;border-color:#555}
.ck-ph.has span{position:absolute;left:0;right:0;bottom:0;padding:4px;background:rgba(0,0,0,.6);color:#fff}
/* steps (1:1) */
.stp{margin:14px 0 4px;padding:14px;border-radius:12px;background:var(--s2);border:1px solid var(--sline)}
.stp__h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.stp__h .me-lab{margin:0}
.stp__src{font-size:12px;color:var(--smute)}
.stp__n{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em;margin:4px 0 8px}
.stp__n em{font-style:normal;font-size:13px;font-weight:500;color:var(--smute);letter-spacing:0}
.stp__bars{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;height:44px;align-items:end;margin-bottom:6px}
.stp__bars i{display:block;border-radius:4px;background:#3a3a3a}
.stp__bars i.hit{background:var(--acc)}
.stp .me-link{margin-top:6px}
.stp-steps{list-style:none;counter-reset:s;margin:0 0 8px;padding:0}
.stp-steps li{counter-increment:s;position:relative;padding:0 0 16px 38px}
.stp-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--s2);border:1px solid var(--sline);display:grid;place-items:center;font-size:13px;font-weight:600}
.stp-steps b{display:block;font-size:15px;margin:2px 0 4px}
.stp-steps span{display:block;font-size:14px;color:var(--ssoft);line-height:1.5}
.stp-steps em{font-style:normal;color:#fff;font-weight:600}
.stp-steps .btn{margin-top:10px}
.stp-steps .bk-code{margin-top:6px}
.stp-prov{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--sline)}
.stp-prov b{display:block;font-size:15px}
.stp-prov span{font-size:13px;color:var(--smute)}
.sheet h4.sec-h{margin:18px 0 10px}
/* Ian's meal plan on Fuel */
.mp{background:var(--s1);border:1px solid var(--sline);border-radius:16px;padding:4px 16px 8px}
.mp__h{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 0;text-align:left;color:var(--stext)}
.mp__h b{display:block;font-size:16px;font-weight:600}
.mp__h em{font-style:normal;font-size:13px;color:var(--smute)}
.mp__h i{font-style:normal;font-size:13px;color:var(--ssoft)}
.mp__m{padding:12px 0;border-top:1px solid var(--sline)}
.mp__t{display:flex;justify-content:space-between;align-items:baseline}
.mp__t b{font-size:15px;font-weight:600}
.mp__t span{font-size:13px;color:var(--smute)}
.mp__m p{font-size:14px;color:var(--ssoft);line-height:1.55;margin:6px 0 0}
.mp__f{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px;color:var(--smute)}
.mp__f .me-link{margin:0}
.mp__f em{font-style:normal;color:#4cc38a;font-weight:600}
.mp__note{font-size:13px;color:var(--smute);padding:10px 0 4px;border-top:1px solid var(--sline);margin:0}
/* photos and videos in chat */
.chat-att{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--sline);color:var(--ssoft);cursor:pointer}
.chat-att svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.bub--media{padding:4px!important;max-width:78%}
.bub__media img,.bub__media video{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:14px;background:#000}
.bub--media p{padding:6px 10px 0}
.bub--media>span{padding:4px 10px 4px}
.bub__ttl{display:block;font-style:normal;font-size:11px;opacity:.6;padding:4px 10px 0}
.bub__gone{padding:10px 12px;font-size:13px;opacity:.7;font-style:italic}
/* membership paywall */
.pw{display:flex;flex-direction:column;gap:12px;padding-bottom:40px}
.pw-note{background:var(--acc-wash);border:1px solid rgba(229,72,77,.35);border-radius:12px;padding:12px 14px;font-size:14px;margin:0}
.pw-list{list-style:none;margin:6px 0 0;padding:0;background:var(--s1);border:1px solid var(--sline);border-radius:16px}
.pw-list li{padding:14px 16px}
.pw-list li+li{border-top:1px solid var(--sline)}
.pw-list b{display:block;font-size:15.5px;font-weight:600}
.pw-list span{display:block;font-size:13.5px;color:var(--smute);margin-top:2px;line-height:1.45}
.pw-price{display:flex;align-items:baseline;gap:8px;margin:8px 2px 2px}
.pw-price b{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:46px;line-height:1}
.pw-price span{font-size:14px;color:var(--smute)}
.pw-wait{font-size:14px;color:var(--ssoft);margin:0}
.pw-link{align-self:center;margin-top:2px;font-size:14px}
.pw-fine{font-size:12px;color:var(--smute);text-align:center;margin:6px 0 0}

/* ===== About + install page (what Ian's "Get the app" opens) ===== */
.ip{--font:"Inter",-apple-system,system-ui,sans-serif;font-family:var(--font);max-width:1060px;margin:0 auto;padding:0 20px 40px;color:#f2f2f2}
.ip h1,.ip h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:0}
.ip-top{display:flex;justify-content:space-between;align-items:center;padding:16px 0}
.ip-brand{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.ip-pill{font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px;background:#fff;color:#0a0a0a}
.ip-hero{display:grid;gap:28px;align-items:center;padding:28px 0 48px}
.ip-kicker{font-size:13px;color:#8a8a8a;margin:0 0 12px}
.ip-h1{font-size:clamp(46px,11vw,84px);line-height:.98;margin:0 0 16px}
.ip-sub{font-size:17px;line-height:1.6;color:#bdbdbd;max-width:32em;margin:0}
.ip-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}
.ip-cta span{font-size:14px;color:#8a8a8a}
.ip-hero__video{justify-self:center;width:min(100%,360px);aspect-ratio:9/16;-webkit-mask-image:radial-gradient(120% 90% at 50% 45%,#000 62%,transparent 100%);mask-image:radial-gradient(120% 90% at 50% 45%,#000 62%,transparent 100%)}
.ip-hero__video video{width:100%;height:100%;object-fit:cover;display:block}
.ip-feats{display:grid;gap:14px;padding:8px 0 40px}
.ip-feats article{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;background:#141414;border:1px solid #232323;border-radius:20px;padding:16px}
.ip-feats img{width:100%;height:auto;border-radius:14px;border:1px solid #2a2a2a;display:block}
.ip-feats h2{font-size:28px;line-height:1.05;margin:0 0 8px}
.ip-feats p{font-size:15px;line-height:1.55;color:#bdbdbd;margin:0}
.ip-coach{background:#141414;border:1px solid #232323;border-radius:20px;padding:22px;margin-bottom:44px}
.ip-coach h2{font-size:30px;margin:0 0 8px}
.ip-coach p{font-size:15px;line-height:1.6;color:#bdbdbd;margin:0}
.ip em{font-style:normal;color:#fff;font-weight:600}
.ip-steps{padding:0 0 44px}
.ip-h2{font-size:clamp(34px,7vw,48px);line-height:1;margin:0 0 10px}
.ip-lead{font-size:15px;color:#8a8a8a;margin:0 0 18px}
.ip .i-tabs{background:#141414;border:1px solid #232323;border-radius:999px;padding:4px;margin-bottom:16px}
.ip .i-tabs button{border-radius:999px}
.ip .i-tabs button.is-on{background:#fff;color:#0a0a0a;box-shadow:none}
.ip-list{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:10px;max-width:640px}
.ip-list li{counter-increment:s;position:relative;padding:16px 18px 16px 58px;background:#141414;border:1px solid #232323;border-radius:16px}
.ip-list li::before{content:counter(s);position:absolute;left:16px;top:15px;width:28px;height:28px;border-radius:50%;background:#fff;color:#0a0a0a;font-weight:700;font-size:13px;display:grid;place-items:center}
.ip-list b{display:block;font-size:16px;font-weight:600;margin-bottom:3px}
.ip-list span{font-size:14px;color:#8a8a8a;line-height:1.5}
.ip-list .btn{margin-top:10px}
.ip-desk{display:flex;gap:22px;align-items:center;max-width:640px;background:#141414;border:1px solid #232323;border-radius:18px;padding:18px}
.ip-desk b{display:block;font-size:17px;margin-bottom:4px}
.ip-desk span{font-size:15px;color:#8a8a8a}
.ip-faq{padding:0 0 30px;max-width:720px}
.ip-faq details{border-top:1px solid #232323;padding:14px 0}
.ip-faq summary{cursor:pointer;font-size:16px;font-weight:600;list-style:none}
.ip-faq summary::-webkit-details-marker{display:none}
.ip-faq summary::after{content:"+";float:right;color:#8a8a8a}
.ip-faq details[open] summary::after{content:"\2212"}
.ip-faq p{font-size:15px;line-height:1.6;color:#bdbdbd;margin:8px 0 0}
.ip-foot{display:flex;justify-content:space-between;border-top:1px solid #232323;padding:18px 0;font-size:13px;color:#8a8a8a}
.ip-foot a{color:#bdbdbd}
@media(min-width:860px){
  .ip-hero{grid-template-columns:1.15fr .85fr;padding:56px 0 70px}
  .ip-feats{grid-template-columns:1fr 1fr}
  .ip-feats article{grid-template-columns:150px 1fr}
}
.ip-paid{background:#14261c;border:1px solid #275c3d;color:#d7f5e3;border-radius:14px;padding:12px 14px;font-size:15px;margin:4px 0 0}
/* selected state for choice boxes (brand picker, onboarding answers): the flat-card rule above was hiding it */
.brand-pick,.pick{position:relative}
.brand-pick.is-on,.pick.is-on{border-color:#fff!important;background:#202020!important;box-shadow:inset 0 0 0 1px #fff!important}
.brand-pick.is-on::after,.pick.is-on::after{content:"";position:absolute;top:10px;right:10px;width:20px;height:20px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/13px no-repeat}
.brand-pick:active,.pick:active{transform:scale(.98)}
.brand-pick.is-on b,.pick.is-on b{padding-right:24px}

/* Oct 30: headings and big numbers in Bebas Neue (tall caps). Text stays Inter. Install page unchanged. */
.app :is(h1,h2,h3,.h-big,.h-mid,.s-title,.fz-big,.me-stats b,.me-tg b,.fz-m b),.sheet :is(h1,h2,h3){font-family:"Bebas Neue","Inter",sans-serif!important;font-weight:400!important;letter-spacing:.01em!important;line-height:1!important}
.app .s-title,.app .h-big,.app .lib-head .h-big{font-size:40px}
.app .fcard h3,.app .card h3,.app .me-card h3{font-size:26px}
.app .meal h3,.app .lib-card h3{font-size:22px}
.app .fz-big{font-size:46px}
.pw-price b{font-family:"Bebas Neue","Inter",sans-serif;font-size:52px}
/* grams read wrong in Bebas ("197g" looks like "1976"): macro amounts stay in Inter */
.app .fz-m b,.app .me-tg b{font-family:"Inter",sans-serif!important;font-weight:700!important;letter-spacing:-.02em!important;font-size:19px!important}
.app .fz-m b em{font-family:"Inter",sans-serif!important}
.pw-fine a,.sheet p a{color:#fff;text-decoration:underline;text-underline-offset:2px}
/* Oct 31: gym brand logos */
.bmark{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:#fff;overflow:hidden;font-style:normal}
.bmark img{width:80%;height:80%;object-fit:contain}
.bmark--txt{background:#1c1c1c;border:1px solid #333;color:#ddd;font:700 12px/1 Inter,sans-serif;letter-spacing:.02em}
.brand-pick .bmark{margin-bottom:8px}
.foods li>button .bmark+div{flex:1;text-align:left}
