/* "See how it works" pages: one screen, nothing scrolls. Built on shared/site.css (same palette and type). */
html,body{height:100%}
body.hw-page{overflow:hidden}
.hw{height:100vh;height:100dvh;display:flex;flex-direction:column;max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,40px) clamp(14px,2.6vh,28px)}
.hw-top{flex:none;display:flex;justify-content:space-between;align-items:center;height:64px;gap:16px}
.hw-top nav{display:flex;gap:24px;font-size:14px}
.hw-top nav a{color:var(--muted);text-decoration:none;transition:color .25s}.hw-top nav a:hover{color:var(--text)}
.hw-body{flex:1;min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px}
.hw-list{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:0}
.hw-list button{appearance:none;display:flex;align-items:center;gap:14px;text-align:left;width:100%;border:1px solid transparent;background:transparent;color:var(--muted);font:400 15px Geist,sans-serif;padding:clamp(10px,2vh,16px) 14px;border-radius:16px;cursor:pointer;transition:background .3s,color .25s,border-color .3s}
.hw-list button .n{font:400 11px var(--mono);letter-spacing:.12em;color:var(--faint);transition:color .25s}
.hw-list button:hover{color:var(--text);background:#0C0C0D}
.hw-list button.on{color:var(--text);background:#0C0C0D;border-color:var(--divider)}
.hw-list button.on .n{color:var(--ac,var(--text))}
.hw-card{position:relative;overflow:hidden;isolation:isolate;min-height:0;display:flex;flex-direction:column;gap:clamp(10px,2vh,18px);background:var(--surface);border:1px solid var(--divider);border-radius:24px;padding:clamp(18px,3vh,36px) clamp(18px,3vw,36px)}
.hw-card::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.05),transparent 70%)}
.hw-card:hover::before{opacity:1}
.hw-meta{flex:none;display:flex;justify-content:space-between;gap:12px;font:400 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.hw-meta .k{color:var(--ac,var(--muted))}
.hw-copy{flex:none}
.hw-card h1{margin:0 0 clamp(6px,1.4vh,14px);max-width:none;font-weight:500;font-size:clamp(28px,5.4vh,60px);line-height:1;letter-spacing:-.045em}
.hw-card p{margin:0;max-width:60ch;color:var(--soft);font-weight:300;font-size:clamp(15px,2.3vh,20px);line-height:1.55}
.hw-viz{flex:1;min-height:90px;width:100%;display:block;background:#050506;border:1px solid var(--divider);border-radius:16px}
.hw-foot{flex:none;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.hw-nav{display:flex;gap:8px;align-items:center}
.hw-nav .btn{height:44px;padding:0 22px}
.hw-dots{display:flex;gap:6px;margin:0 8px}
.hw-dots i{width:6px;height:6px;border-radius:99px;background:var(--line3);transition:width .35s var(--e),background .3s}
.hw-dots i.on{width:22px;background:var(--ac,var(--text))}
.hw-copy.swap,.hw-meta.swap{animation:hwSwap .55s var(--e)}
@keyframes hwSwap{from{opacity:0;transform:translateY(10px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
.hw-card{animation:hwIn .9s var(--e) both}
@keyframes hwIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:860px){
  .hw-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:10px}
  .hw-list{flex-direction:row;gap:6px;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}
  .hw-list::-webkit-scrollbar{display:none}
  .hw-list button{flex:1 0 auto;width:auto;justify-content:center;padding:10px 14px;white-space:nowrap}
  .hw-list button .t{display:none}
  .hw-list.titles button .t{display:inline}
  .hw-top nav .hide-m{display:none}
}
/* very short windows: let the page scroll instead of clipping */
@media (max-height:520px){body.hw-page{overflow:auto}.hw{height:auto;min-height:100dvh}.hw-viz{min-height:140px}}
@media (prefers-reduced-motion:reduce){.hw-card,.hw-copy.swap,.hw-meta.swap{animation:none}}

/* ---- Health OS explorer inside the one-screen layout ---- */
.hw-xp{flex:1;min-height:0;display:flex}
.hw-xp #explorer{flex:1;min-height:0;display:flex}
.hw-xp .xp{flex:1;min-height:0;display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px}
@media (max-width:900px){.hw-xp .xp{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}}
.xp-list{display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:0}
@media (max-width:900px){.xp-list{flex-direction:row;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.xp-list::-webkit-scrollbar{display:none}}
.xp-list button{appearance:none;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid transparent;background:transparent;color:var(--muted);font:400 15px Geist,sans-serif;padding:clamp(8px,1.5vh,12px) 14px;border-radius:14px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.xp-list button i{width:8px;height:8px;border-radius:50%;flex:none;opacity:.5;transition:opacity .25s,transform .25s}
.xp-list button:hover{color:var(--text);background:#0C0C0D}
.xp-list button.on{color:var(--text);background:#0C0C0D;border-color:var(--divider)}
.xp-list button.on i{opacity:1;transform:scale(1.3)}
.xp-card{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden auto;scrollbar-width:none;background:var(--surface);border:1px solid var(--divider);border-radius:24px;padding:clamp(16px,2.6vh,30px) clamp(18px,3vw,32px);animation:hwIn .9s var(--e) both}
.xp-card::-webkit-scrollbar{display:none}
.xp-tag{font:400 11px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.xp-card h3{margin:4px 0 clamp(6px,1.2vh,10px);font-weight:500;font-size:clamp(24px,4.4vh,38px);letter-spacing:-.035em;line-height:1.05}
.xp-card p{margin:0;color:var(--soft);font-weight:300;font-size:clamp(14px,1.9vh,15.5px);line-height:1.55;max-width:78ch}
.xp-steps{list-style:none;padding:0;margin:clamp(8px,1.6vh,16px) 0;display:flex;flex-wrap:wrap;gap:6px;counter-reset:st}
.xp-steps li{counter-increment:st;font:400 12px var(--mono);color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:5px 11px}
.xp-steps li::before{content:counter(st) " ";color:var(--faint)}
.xp-card canvas{flex:1;min-height:110px;width:100%;display:block;background:#050506;border:1px solid var(--divider);border-radius:16px}
.xp-ctl{flex:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 22px;margin-top:clamp(8px,1.6vh,16px)}
.xp-ctl label{display:flex;flex-direction:column;gap:4px;font:400 12px var(--mono);color:var(--muted)}
.xp-ctl label span{display:flex;justify-content:space-between}
.xp-ctl label b{color:var(--text);font-weight:500}
.xp-ctl input{width:100%}
.xp-out{flex:none;margin-top:clamp(8px,1.6vh,14px);padding:11px 14px;border-radius:14px;background:#050506;border:1px solid var(--divider);font-size:14px;color:var(--soft);line-height:1.5;min-height:48px}
.xp-out b{color:var(--text);font-weight:500}
.beta{appearance:none;display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:6px;border-radius:999px;border:1px solid rgba(242,193,78,.5);background:rgba(242,193,78,.1);color:#F2C14E;font:500 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:help;vertical-align:middle;flex:none}
.betatip{position:fixed;z-index:600;max-width:260px;padding:10px 12px;border-radius:12px;background:#141416;border:1px solid var(--line3);color:var(--soft);font:400 12.5px/1.5 Geist,sans-serif;box-shadow:0 12px 40px rgba(0,0,0,.6);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.betatip.on{opacity:1;transform:none}
@media (max-width:520px){.hw-meta span:last-child{display:none}.hw-foot{gap:10px}.hw-foot>.btn{flex:1}}
@media (max-width:600px){
  .xp-card{padding:14px 16px}
  .xp-card h3{font-size:24px}
  .xp-card p{font-size:13.5px;line-height:1.5}
  .xp-steps{display:none}
  .xp-card canvas{min-height:130px}
  .xp-ctl{grid-template-columns:1fr;gap:6px}
  .xp-ctl label{flex-direction:row;align-items:center;gap:10px}
  .xp-ctl label span{flex:0 0 46%}
  .xp-ctl input{flex:1}
  .xp-out{font-size:13px;padding:9px 12px;min-height:0}
}
