:root{--bg:#f2f2f0;--panel-bg:#fff;--ink:#101318;--dim:#565c66;--navy:#14306b;--navy-strong:#0d2452;--blue:#6f9bff;--border:#e0e2e6;--card-border:#c7cbd2;--red:#c0392b;--red-dark:#ff6a5b;--over-dark:#e8eefc;--over-dark-dim:#93a5c9;--font-mono:ui-monospace, "Cascadia Mono", "JetBrains Mono", Consolas, "Courier New", monospace;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--radius-card:6px}*{box-sizing:border-box;margin:0}:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.viewport :focus-visible{outline-color:var(--blue)}html,body{height:100%}body{font-family:var(--font-mono);background:var(--bg);color:var(--ink);font-size:14px}#root,.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--panel-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.9rem 1rem;display:flex}.brand{letter-spacing:.15em;color:var(--ink);font-weight:700;text-decoration:none}@media (hover:hover) and (pointer:fine){.brand:hover{color:var(--navy)}}.auth-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.ghost-btn{color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease-out), color .2s var(--ease-out), transform .15s var(--ease-out);background:0 0;border:1px solid #c7cbd2;padding:.35rem .8rem;font-family:inherit;font-size:.8rem}@media (hover:hover) and (pointer:fine){.ghost-btn:not(:disabled):hover{border-color:var(--navy);color:var(--navy)}}.ghost-btn:not(:disabled):active{transform:scale(.97)}.ticker{border-bottom:1px solid var(--border);color:var(--navy);letter-spacing:.12em;text-align:center;background:#14306b0f;padding:.6rem 1rem;font-size:.75rem}.purchase-banner{border-bottom:1px solid var(--border);color:var(--navy);text-align:center;background:#14306b17;padding:.6rem 1rem;font-size:.8rem}.layout{flex-direction:column;flex:1;display:flex}@media (width>=900px){.layout{grid-template-columns:minmax(220px,1fr) minmax(0,3fr) minmax(240px,1fr);align-items:stretch;display:grid}}.panel{background:var(--panel-bg);border-bottom:1px solid var(--border);padding:1rem}@media (width>=900px){.panel{border-bottom:none;border-right:1px solid var(--border)}.panel:last-child{border-right:none}}.panel-label{letter-spacing:.15em;color:var(--dim);text-transform:uppercase;margin-bottom:.75rem;font-size:.72rem;display:block}.card{background:var(--panel-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);margin-bottom:1rem;padding:.9rem}.card .panel-label{color:var(--navy)}.intro h1{font-family:var(--font-sans);color:var(--ink);margin-bottom:1rem;font-size:2.4rem;font-weight:800;line-height:1.05}.tagline{color:var(--dim);margin-bottom:1.5rem;font-size:.85rem;line-height:1.6}.pose-selector{margin-bottom:1.5rem}.pose-list{flex-direction:column;gap:.35rem;display:flex}.pose-item{letter-spacing:.06em;background:var(--bg);color:var(--ink);border:1px solid var(--border);cursor:pointer;text-align:left;transition:border-color .2s var(--ease-out), background-color .2s var(--ease-out), color .2s var(--ease-out);justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .6rem;font-family:inherit;font-size:.8rem;display:flex}@media (hover:hover) and (pointer:fine){.pose-item:hover{border-color:var(--navy)}}.pose-item.selected{border-color:var(--navy);color:var(--navy);background:#14306b12}.dim{color:var(--dim)}.ok{color:var(--navy)}.err{color:var(--red)}.viewport{aspect-ratio:3/4;border:1px solid var(--border);background:#000;width:100%;position:relative}@media (width>=900px){.viewport{aspect-ratio:4/3}}.camera-feed{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.skeleton{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.viewport-msg{text-align:center;color:var(--over-dark);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;font-size:.85rem;line-height:1.6;display:flex;position:absolute;inset:0}.viewport-msg .dim{color:var(--over-dark-dim)}.viewport-msg .err{color:var(--red-dark)}.cue-stack{pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:flex-end;gap:.4rem;padding:.9rem;display:flex;position:absolute;inset:0}.cue{letter-spacing:.08em;opacity:1;filter:blur();background:#060a14d9;border:1px solid #1b2c50;padding:.35rem .6rem;font-size:.8rem;transition:opacity .2s,filter .2s}@starting-style{.cue{opacity:0;filter:blur(4px)}}.cue.ok{color:var(--blue);border-color:#2b477e}@media (prefers-reduced-motion:no-preference){.cue.ok{transition:opacity .24s,filter .24s,transform .24s;transform:scale(1)}@starting-style{.cue.ok{transform:scale(.96)}}}.cue.fix{color:var(--red-dark);border-color:#ff6a5b66}.cue.dim{color:var(--over-dark-dim)}.cue.tip{color:var(--over-dark);border-color:#e8eefc59}.cue-progress{letter-spacing:.05em;opacity:.65;margin-left:.5rem;font-size:.9em}.session-overlay{pointer-events:none;--session-inset:.9rem;padding:.9rem;position:absolute;inset:0}.session-overlay .session-btn{pointer-events:auto;letter-spacing:.08em;transition:top .26s var(--ease-out), translate .26s var(--ease-out), background-color .2s var(--ease-out), border-color .2s var(--ease-out), box-shadow .2s var(--ease-out), transform .15s var(--ease-out);padding:calc(.45rem - 1px) calc(.9rem - 1px);font-size:.75rem;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 2px 10px #060a1473}.session-overlay.in-session .session-btn{translate:-50% calc(-100% - var(--session-inset));top:100%}@media (hover:hover) and (pointer:fine){.session-overlay .session-btn:not(:disabled):hover{box-shadow:0 2px 10px #060a1473,inset 0 0 0 2px #fff}}@media (prefers-reduced-motion:reduce){.session-overlay .session-btn{transition:background-color .2s var(--ease-out), box-shadow .2s var(--ease-out), transform .15s var(--ease-out)}}.pose-name{font-family:var(--font-sans);color:var(--ink);margin-bottom:.6rem;font-size:1.2rem;font-weight:700}.steps-list{color:var(--ink);scrollbar-width:thin;counter-reset:step;flex-direction:column;gap:.55rem;max-height:11rem;margin:0;padding-left:0;font-size:.95rem;line-height:1.5;list-style:none;display:flex;overflow-y:auto}.steps-list[data-more]{-webkit-mask-image:linear-gradient(#000 calc(100% - 1.5rem),#0000);mask-image:linear-gradient(#000 calc(100% - 1.5rem),#0000)}.steps-list li{counter-increment:step;grid-template-columns:2.6ch 1fr;align-items:start;gap:.5ch;display:grid}.steps-list li:before{content:counter(step) ".";color:var(--navy);font-weight:700}.steps-list li.active{color:#157a3a;transition:background-color .2s var(--ease-out), color .2s var(--ease-out);background:#157a3a1a;font-weight:700}.steps-list li.active:before{color:#157a3a}.status-rows{flex-direction:column;gap:.55rem;margin-bottom:1.25rem;display:flex}.status-row{letter-spacing:.1em;border-bottom:1px dashed var(--border);justify-content:space-between;gap:1rem;padding-bottom:.35rem;font-size:.8rem;display:flex}.status-row span:first-child{color:var(--dim)}.primary{letter-spacing:.1em;background:var(--navy);color:#fff;border:1px solid var(--navy);cursor:pointer;transition:background-color .2s var(--ease-out), border-color .2s var(--ease-out), box-shadow .2s var(--ease-out), transform .15s var(--ease-out);padding:calc(.7rem - 1px) calc(1.4rem - 1px);font-family:inherit;font-size:.9rem;font-weight:700}@media (hover:hover) and (pointer:fine){.primary:not(:disabled):hover{background:var(--navy-strong);border-color:var(--navy-strong);box-shadow:inset 0 0 0 2px #fff}}.primary:not(:disabled):active{transform:scale(.97)}.primary:disabled,.ghost-btn:disabled,.chip:disabled,.pose-item:disabled,.pose-item-btn:disabled,input:disabled{opacity:.4;cursor:not-allowed}.note{color:var(--navy);margin-top:.75rem;font-size:.75rem;line-height:1.6}.debug-toggle{margin-top:.75rem}.debug-metrics{flex-direction:column;gap:.25rem;margin-top:.6rem;font-size:.72rem;display:flex}.debug-metrics .status-row{padding-bottom:.2rem}.logline{margin:.15rem 0;font-size:.8rem}.logline.ok{color:#157a3a}.logline.fix{color:var(--red)}.calib-main{flex-direction:column;flex:1;display:flex}@media (width>=900px){.calib-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}}.calib-select{background:var(--panel-bg);color:var(--ink);border:1px solid #c7cbd2;margin-bottom:1.25rem;padding:.4rem .6rem;font-family:inherit;font-size:.85rem;display:block}.calib input[type=file]{color:var(--dim);margin-bottom:1rem;font-family:inherit;font-size:.8rem;display:block}.calib-canvas{border:1px solid var(--border);max-width:100%;display:block}.calib-json{color:var(--ink);border:1px solid var(--border);-webkit-user-select:all;user-select:all;background:#14306b0d;padding:.6rem;font-size:.7rem;line-height:1.5;overflow-x:auto}.figure-card{text-align:center}.figure-card-svg{width:60%;max-width:180px;margin:0 auto;display:block}.history{background:var(--panel-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);margin-bottom:1rem;padding:.9rem}.history .panel-label{color:var(--navy)}.history-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.history-main{flex-direction:column;gap:.1rem;font-size:.75rem;line-height:1.5;display:flex}.history-pose{color:var(--navy)}.ghost-btn.small{padding:.15rem .45rem;font-size:.7rem}.privacy{padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--panel-bg);color:var(--dim);text-align:center;font-size:.72rem;line-height:1.6}.privacy-toggle{font-family:inherit;font-size:inherit;color:var(--navy);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.privacy-details{text-align:left;flex-direction:column;gap:.6rem;max-width:640px;margin:.75rem auto 0;display:flex}.privacy-details strong{color:var(--navy)}.pose-item.custom{background:var(--bg);padding:0}.pose-item.custom .pose-item-btn{letter-spacing:.06em;min-width:0;color:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;padding:.45rem .6rem;font-family:inherit;font-size:.8rem;overflow:hidden}.pose-item.custom .ghost-btn.small{margin-right:.35rem}.new-pose-btn{width:100%;margin-top:.6rem}.modal-backdrop{z-index:50;opacity:1;transition:opacity .2s var(--ease-out);background:#1013188c;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}@starting-style{.modal-backdrop{opacity:0}}.modal-card{background:var(--bg);border:1px solid var(--card-border);opacity:1;width:100%;max-width:460px;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);flex-direction:column;gap:.7rem;padding:1.2rem;display:flex;transform:scale(1)}@starting-style{.modal-card{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.modal-card{transition:opacity .2s var(--ease-out)}@starting-style{.modal-card{transform:none}}}.modal-head{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;gap:.75rem;margin:-1.2rem -1.2rem 0;padding:.8rem 1.2rem;display:flex}.modal-title{font-family:var(--font-sans);letter-spacing:-.01em;color:#fff;font-size:1.35rem;font-weight:700;line-height:1.2}.modal-head .ghost-btn{color:#fff;border-color:#ffffff73}@media (hover:hover) and (pointer:fine){.modal-head .ghost-btn:not(:disabled):hover{color:#fff;background:#ffffff24;border-color:#fff}}.modal-lede{color:var(--ink);font-size:.8rem;line-height:1.5}.modal-reqs{color:var(--dim);flex-direction:column;gap:.2rem;margin:-.2rem 0 0;padding:0;font-size:.75rem;line-height:1.45;list-style:none;display:flex}.modal-reqs li{padding-left:.9rem;position:relative}.modal-reqs li:before{content:"·";color:var(--navy);position:absolute;left:.2rem}.modal-fineprint{color:var(--dim);margin-top:-.2rem;font-size:.72rem;line-height:1.5}.modal-fineprint strong{color:var(--navy);font-weight:600}.modal-fineprint a,.modal-optional summary{color:var(--navy);text-underline-offset:2px;text-decoration:underline}.modal-optional-body{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.modal-optional summary{cursor:pointer;width:fit-content;font-size:.75rem;list-style:none}.modal-optional summary::-webkit-details-marker{display:none}.modal-optional summary:before{content:"+ ";text-decoration:none}.modal-optional[open] summary:before{content:"− "}.modal-field{flex-direction:column;gap:.3rem;display:flex}.modal-field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--navy);font-size:.72rem}.modal-field input[type=text]{border:1px solid var(--border);background:var(--panel-bg);color:var(--ink);padding:.5rem .6rem;font-family:inherit;font-size:16px}.modal-field input[type=text]:focus{border-color:var(--navy)}.facing-toggle{gap:.4rem;display:flex}.chip{letter-spacing:.04em;border:1px solid var(--border);background:var(--panel-bg);color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease-out), background-color .2s var(--ease-out), color .2s var(--ease-out), transform .15s var(--ease-out);padding:.4rem .7rem;font-family:inherit;font-size:.78rem}.chip:not(:disabled):active{transform:scale(.97)}.chip.on{border-color:var(--navy);color:var(--navy);background:#14306b17}.modal-canvas{object-fit:contain;width:100%;max-height:320px;display:block}.modal-canvas:not([width]){display:none}.modal-details{border:1px dashed var(--red);color:var(--red);margin:-.3rem 0 0;padding:.5rem .6rem;font-size:.72rem;line-height:1.5;list-style:none}.modal-actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.3rem;display:flex}.modal-actions .modal-credits{white-space:nowrap}.modal-buy{flex-direction:column;gap:.4rem;display:flex}.modal-optional .modal-buy{margin-top:.5rem}.modal-buy-tiers{flex-wrap:wrap;gap:.4rem;display:flex}.modal-buy-terms{margin-top:.5rem;font-size:.75rem}.modal-buy-terms a{color:inherit;text-underline-offset:2px;text-decoration:underline}@media (width<=899px) and (orientation:portrait){.layout>.status{order:1}.layout>.viewport-panel{order:2}.layout>.intro{order:3}.panel{padding:.75rem}.panel-label{margin-bottom:.4rem}.ticker{letter-spacing:.06em;padding:.5rem .75rem;font-size:.68rem}.status{flex-direction:row;align-items:stretch;gap:.5rem;display:flex}.status>.card{margin-bottom:0;padding:.7rem}.status>.figure-card{flex-direction:column;flex:0 0 30%;order:-1;justify-content:center;display:flex}.status>.card:not(.figure-card){flex:auto;min-width:0}.figure-card-svg{width:100%;max-width:none;max-height:150px}.pose-name{margin-bottom:.4rem;font-size:1rem}.steps-list{gap:.35rem;min-height:4.5rem;max-height:calc(100dvh - 100vw - 203px);font-size:1rem;line-height:1.45;overflow-y:auto}.viewport{aspect-ratio:1}.cue-stack{gap:.25rem;padding:.5rem}.cue{letter-spacing:.03em;max-width:95%;padding:.3rem .5rem;font-size:.82rem;line-height:1.3}.session-overlay{--session-inset:.5rem;padding:.5rem}}
