:root{--ink:#141414;--bg:#f7f4ec;--surface:#fff;--muted:#777;--locked:#ede9de;--danger:#b23a2e;--amber:#e39a2e;--pet-peach:#f0a868;--pet-coral:#e8846b;--pet-cream:#f7e3c4;--pet-ground:#f0c88a;--pet-gold:#e3b23c;--pet-rose:#d98c7a;--rule:3px;--rule-strong:4px;--rule-thin:2px;--bar:12px;--nav-h:66px;--pad:14px;--pad-form:18px;--sans:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f7f4ec;--bg:#16140e;--surface:#211f1a;--muted:#9a978c;--locked:#2a2822;--danger:#e86a5c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ink:#f7f4ec;--bg:#16140e;--surface:#211f1a;--muted:#9a978c;--locked:#2a2822;--danger:#e86a5c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--ink:#141414;--bg:#f7f4ec;--surface:#fff;--muted:#777;--locked:#ede9de;--danger:#b23a2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;border-radius:0;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select{font:inherit;color:inherit;background:0 0;border:none}button{cursor:pointer;text-align:inherit}img{max-width:100%;display:block}ul{list-style:none}:focus-visible{outline:var(--rule) solid var(--amber);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{background:var(--bg);max-width:520px;height:100%;padding-top:max(env(safe-area-inset-top,0px), 8px);flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.screen__scroll{-webkit-overflow-scrolling:touch;min-height:0;padding:var(--pad);gap:var(--pad);flex-direction:column;flex:1;display:flex;overflow-y:auto}.screen__scroll--form{padding:var(--pad-form);gap:22px}.status{height:46px;padding:0 22px calc(6px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);flex:none;justify-content:space-between;align-items:flex-end;font-size:15px;font-weight:800;display:flex}.status__icons{align-items:center;gap:5px;display:flex}.masthead{padding:4px var(--pad) 0;flex:none}.masthead__kicker{font-family:var(--mono);letter-spacing:3px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.masthead__row{justify-content:space-between;align-items:baseline;gap:12px;padding:2px 0 8px;display:flex}.masthead__title{letter-spacing:-2px;text-transform:uppercase;font-size:46px;font-weight:900;line-height:.85}.masthead__meta{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:700}.bar{height:var(--bar);background:var(--ink);margin:0 var(--pad);flex:none}.bar--flush{margin:0}.ctxhead{padding:10px var(--pad);flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.ctxhead__back{letter-spacing:1px;text-transform:uppercase;min-width:60px;font-size:13px;font-weight:800}.ctxhead__title{letter-spacing:2px;text-transform:uppercase;text-align:center;flex:1;font-size:15px;font-weight:900}.ctxhead__slot{justify-content:flex-end;min-width:60px;font-size:20px;font-weight:800;display:flex}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);border-top:var(--rule-strong) solid var(--ink);background:var(--bg);flex:none;display:flex}.nav__tab{letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;font-size:10px;font-weight:800;display:flex}.nav__tab--on{background:var(--ink);color:var(--bg)}.nav__glyph{border:var(--rule-thin) solid currentColor;width:18px;height:18px}.nav__glyph--circle{border-radius:50%}.nav__glyph--chart{border:none;align-items:flex-end;gap:2px;display:flex}.nav__glyph--chart i{background:currentColor;flex:1}.btn{border:var(--rule) solid var(--ink);background:var(--surface);width:100%;color:var(--ink);letter-spacing:1px;text-transform:uppercase;text-align:center;padding:16px 12px;font-size:15px;font-weight:800;display:block}.btn--primary{background:var(--ink);color:var(--bg)}.btn--danger{color:var(--danger);border-color:var(--danger)}.btn:disabled{color:var(--muted);border-color:var(--muted);background:var(--locked);cursor:not-allowed}.btn--primary:disabled{background:var(--locked)}.btn--ghost{color:var(--muted);background:0 0;border-color:#0000;padding:12px;font-size:13px}.btnrow{gap:8px;display:flex}.btnrow .btn{flex:1}.btnrow__wide{flex:2!important}.meter{border:var(--rule) solid var(--ink);background:var(--surface);height:22px;position:relative;overflow:hidden}.meter__fill{background:var(--amber);border-right:var(--rule) solid var(--ink);position:absolute;top:0;bottom:0;left:0}.meter__fill--coral{background:var(--pet-coral)}.meter__over{background-color:var(--amber);background-image:repeating-linear-gradient(135deg, var(--ink) 0 4px, transparent 4px 8px);border-right:var(--rule) solid var(--ink);position:absolute;top:0;bottom:0}.meter__tick{width:var(--rule);background:var(--ink);position:absolute;top:0;bottom:0}.meter__legend{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;justify-content:space-between;align-items:baseline;padding-top:6px;font-size:11px;font-weight:700;display:flex}.card{border:var(--rule) solid var(--ink);background:var(--surface)}.card__bar{background:var(--ink);color:var(--bg);letter-spacing:2px;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:12px;font-weight:800;display:flex}.card__body{padding:12px}.card__body--tight{padding:0}.row{border-bottom:var(--rule-thin) solid var(--ink);width:100%;color:inherit;background:0 0;align-items:center;gap:10px;padding:12px;display:flex}.row:last-child{border-bottom:none}.row__main{flex-direction:column;flex:1;align-items:flex-start;gap:3px;min-width:0;display:flex}.row__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:800;display:block;overflow:hidden}.row__sub{font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700}.row__value{font-family:var(--mono);white-space:nowrap;font-size:14px;font-weight:800}.row__add{border:var(--rule-thin) solid var(--ink);flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;font-size:17px;font-weight:900;line-height:1;display:flex}.row--ghost{color:var(--muted);letter-spacing:1px;text-transform:uppercase;justify-content:center;font-size:13px;font-weight:800}.row--empty{color:var(--muted);text-align:center;justify-content:center;padding:22px 12px;font-size:13px;font-weight:700}.seg{border:var(--rule) solid var(--ink);display:flex}.seg__opt{text-align:center;letter-spacing:1px;text-transform:uppercase;background:var(--surface);color:var(--ink);flex:1;padding:13px 6px;font-size:13px;font-weight:800}.seg__opt+.seg__opt{border-left:var(--rule) solid var(--ink)}.seg__opt--on{background:var(--ink);color:var(--bg)}.seg--thin{border-width:var(--rule-thin)}.seg--thin .seg__opt{padding:9px 6px;font-size:12px}.seg--thin .seg__opt+.seg__opt{border-left-width:var(--rule-thin)}.stepper{border:var(--rule) solid var(--ink);display:flex}.stepper__btn{background:var(--surface);width:56px;color:var(--ink);flex:0 0 56px;justify-content:center;align-items:center;font-size:24px;font-weight:800;line-height:1;display:flex}.stepper__btn--acted{background:var(--ink);color:var(--bg)}.stepper__value{text-align:center;border-left:var(--rule) solid var(--ink);border-right:var(--rule) solid var(--ink);flex:1;min-width:0;padding:14px 4px;font-size:22px;font-weight:900}.stepper__value small{font-family:var(--mono);letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700;display:block}.field{flex-direction:column;gap:7px;display:flex}.field__label{letter-spacing:2px;text-transform:uppercase;font-size:12px;font-weight:800}.field__input{border:var(--rule) solid var(--ink);background:var(--surface);width:100%;padding:14px;font-size:17px;font-weight:800}.field__input::placeholder{color:var(--muted);font-weight:700}.field__help{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.searchbox{border:var(--rule) solid var(--ink);background:var(--surface);align-items:center;gap:8px;padding:0 12px;display:flex}.searchbox__input{flex:1;min-width:0;padding:14px 0;font-size:17px;font-weight:800}.searchbox__input::placeholder{color:var(--muted);font-weight:700}.fieldrow{align-items:flex-end;gap:10px;display:flex}.fieldrow>*{flex:1;min-width:0}.macros{border:var(--rule) solid var(--ink);display:flex}.macros__cell{text-align:center;flex:1;padding:9px 4px}.macros__cell+.macros__cell{border-left:var(--rule-thin) solid var(--ink)}.macros__k{font-family:var(--mono);letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.macros__v{font-size:18px;font-weight:900}.hero__top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.hero__who{letter-spacing:1px;text-transform:uppercase;font-size:16px;font-weight:900}.hero__goal{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.hero__fig{letter-spacing:-3px;padding:8px 0 0;font-size:76px;font-weight:900;line-height:1}.hero__fig--over{color:var(--ink)}.hero__figlab{letter-spacing:2px;text-transform:uppercase;font-size:13px;font-weight:800}.hero__split{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;padding-bottom:12px;font-size:11px;font-weight:700}.stage{background:var(--pet-cream);justify-content:center;align-items:flex-end;height:190px;display:flex;position:relative;overflow:hidden}.stage--tall{height:240px}.stage__ground{background:var(--pet-ground);border-top:var(--rule) solid var(--ink);height:34px;position:absolute;bottom:0;left:0;right:0}.stage__pet{width:132px;height:132px;image-rendering:pixelated;margin-bottom:14px;position:relative}.stage__pet--anim{background-repeat:no-repeat;background-size:calc(132px * var(--frames)) 132px;animation:sprite-strip var(--dur) steps(var(--frames)) infinite}.stage__pet--anim.stage__pet--lg{background-size:calc(168px * var(--frames)) 168px}@keyframes sprite-strip{to{background-position-x:calc(-132px * var(--frames))}}.stage__pet--lg{animation-name:sprite-strip-lg}@keyframes sprite-strip-lg{to{background-position-x:calc(-168px * var(--frames))}}@media (prefers-reduced-motion:reduce){.stage__pet--anim{animation:none}}.stage__pet--lg{width:168px;height:168px}.stage__fallback{margin-bottom:22px;font-size:84px;line-height:1;position:relative}.pet__id{justify-content:space-between;align-items:baseline;gap:10px;padding:12px 12px 4px;display:flex}.pet__name{letter-spacing:-.5px;text-transform:uppercase;font-size:26px;font-weight:900}.pet__species{font-family:var(--mono);letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.pet__mood{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;text-align:center;padding:10px 12px 12px;font-size:11px;font-weight:700}.tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tiles--three{grid-template-columns:1fr 1fr 1fr}.tile{border:var(--rule) solid var(--ink);background:var(--pet-cream);flex-direction:column;align-items:center;gap:3px;padding:10px 6px 12px;display:flex;position:relative}.tile--on{border-width:var(--rule-strong)}.tile--locked{background:var(--locked);color:var(--muted)}.tile__art{width:84px;height:84px;image-rendering:pixelated}.tile__art--sm{width:54px;height:54px}.tile__fallback{justify-content:center;align-items:center;width:84px;height:84px;font-size:44px;line-height:1;display:flex}.tile__name{letter-spacing:.5px;text-transform:uppercase;font-size:15px;font-weight:900}.tile__trait{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.tile__badge{background:var(--ink);color:var(--bg);padding:3px 6px;font-size:11px;font-weight:900;line-height:1;position:absolute;top:0;right:0}.tile__swatch{border:var(--rule-thin) solid var(--ink);width:44px;height:44px}.chart{align-items:flex-end;gap:6px;height:150px;padding:0 2px;display:flex;position:relative}.chart__col{flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.chart__bar{background:var(--amber);border:var(--rule-thin) solid var(--ink);min-height:3px}.chart__bar--over{background-color:var(--amber);background-image:repeating-linear-gradient(135deg, var(--ink) 0 4px, transparent 4px 8px)}.chart__target{border-top:var(--rule-thin) dashed var(--ink);pointer-events:none;position:absolute;left:0;right:0}.chart__targetlab{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;background:var(--surface);padding:0 3px;font-size:10px;font-weight:700;position:absolute;top:-14px;right:0}.chart__days{gap:6px;padding:6px 2px 0;display:flex}.chart__day{text-align:center;font-family:var(--mono);color:var(--muted);flex:1;font-size:11px;font-weight:700}.strip{border:var(--rule) solid var(--ink);background:var(--surface);display:flex}.strip__cell{text-align:center;flex:1;padding:10px 4px}.strip__cell+.strip__cell{border-left:var(--rule-thin) solid var(--ink)}.strip__k{font-family:var(--mono);letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:700}.strip__v{font-size:17px;font-weight:900}.grade{background:var(--ink);width:120px;height:120px;color:var(--bg);letter-spacing:-3px;flex:0 0 120px;justify-content:center;align-items:center;font-size:64px;font-weight:900;display:flex}.gradebox{align-items:stretch;gap:12px;display:flex}.gradebox__stats{border:var(--rule) solid var(--ink);background:var(--surface);flex-direction:column;flex:1;display:flex}.gradebox__row{flex:1;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;display:flex}.gradebox__row+.gradebox__row{border-top:var(--rule-thin) solid var(--ink)}.gradebox__k{font-family:var(--mono);letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.gradebox__v{font-size:17px;font-weight:900}.sheet__scrim{z-index:20;background:#00000073;position:fixed;inset:0}.sheet{z-index:21;background:var(--bg);border-top:var(--rule) solid var(--ink);width:100%;max-width:520px;padding:12px var(--pad) calc(var(--pad) + env(safe-area-inset-bottom,0px));flex-direction:column;gap:12px;max-height:88%;animation:.22s ease-out sheet-in;display:flex;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}@keyframes sheet-in{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.sheet__grab{background:var(--ink);align-self:center;width:46px;height:4px}.sheet__title{letter-spacing:1px;text-transform:uppercase;border-bottom:6px solid var(--ink);padding-bottom:8px;font-size:17px;font-weight:900}.scan{color:#f7f4ec;background:#0d0c09;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.scan__feed{background-image:repeating-linear-gradient(45deg,#17150f 0 12px,#211f16 12px 24px);position:absolute;inset:0}.scan__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.sheet--static{flex:none;max-width:none;animation:none;position:static;transform:none}.scan__note{text-align:center;font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:#cfcabb;font-size:11px;font-weight:700;position:absolute;left:0;right:0}.scan__note--top{top:18px}.scan__note--bottom{bottom:22px}.scan__frame{width:260px;height:150px;position:relative}.scan__corner{border:5px solid #f7f4ec;width:30px;height:30px;position:absolute}.scan__corner--tl{border-bottom:none;border-right:none;top:0;left:0}.scan__corner--tr{border-bottom:none;border-left:none;top:0;right:0}.scan__corner--bl{border-top:none;border-right:none;bottom:0;left:0}.scan__corner--br{border-top:none;border-left:none;bottom:0;right:0}.scan__line{background:var(--pet-coral);height:3px;box-shadow:0 0 12px 2px var(--pet-coral);animation:1.4s ease-in-out infinite alternate scan-sweep;position:absolute;left:6px;right:6px}@keyframes scan-sweep{0%{top:8px}to{top:138px}}.group+.group{margin-top:3px}.check{border:var(--rule) solid var(--ink);flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:900;line-height:1;display:flex}.check--on{background:var(--ink);color:var(--bg)}.stack{flex-direction:column;gap:12px;display:flex}.stack--tight{gap:8px}.center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.wordmark{letter-spacing:-3px;text-transform:uppercase;font-size:68px;font-weight:900;line-height:.82}.lede{color:var(--muted);text-wrap:pretty;max-width:30ch;font-size:15px;font-weight:700}.toast{left:50%;bottom:calc(var(--nav-h) + 18px);z-index:30;background:var(--ink);color:var(--bg);letter-spacing:1px;text-transform:uppercase;text-align:center;max-width:88%;padding:11px 18px;font-size:13px;font-weight:800;position:fixed;transform:translate(-50%)}.err{border:var(--rule) solid var(--danger);color:var(--danger);text-wrap:pretty;padding:12px;font-size:13px;font-weight:800}
