.screen-page{z-index:100;overscroll-behavior:contain;touch-action:pan-y;color:var(--text);padding-bottom:env(safe-area-inset-bottom);animation:page-enter .42s var(--ease-spring) both;background:#000;outline:none;flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto;box-shadow:-30px 0 60px #000c}.screen-header{z-index:5;width:100%;max-width:calc(var(--app-width) + 16px);height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;background:0 0;flex:none;grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr);align-items:center;gap:6px;margin:0 auto;transition:background .2s,box-shadow .2s;display:grid;position:sticky;top:0}.screen-header.scrolled{-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);box-shadow:0 1px 0 var(--line);background:#000000e0}.screen-header.large-title h2{opacity:0;transition:opacity .2s var(--ease-out), transform .26s var(--ease-out);transform:translateY(6px)}.screen-header.large-title.scrolled h2{opacity:1;transform:none}.screen-header h2{letter-spacing:-.015em;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:62vw;margin:0;font-size:16px;font-weight:600;overflow:hidden}.screen-back{color:var(--text);justify-self:start}.screen-actions{justify-self:end;align-items:center;gap:2px;display:flex}.screen-actions .icon-btn{color:var(--text)}.screen-body{width:100%;max-width:var(--app-width);padding:8px var(--gutter) 40px;flex:1 0 auto;margin:0 auto}.screen-footer{z-index:4;width:100%;max-width:var(--app-width);padding:14px var(--gutter) max(16px, env(safe-area-inset-bottom));background:linear-gradient(#0000,#000 38%);flex:none;margin:0 auto;position:sticky;bottom:0}.screen-leaving{animation:page-leave .24s var(--ease-out) forwards;pointer-events:none}.screen-dragging{transform:translateX(var(--page-drag));animation:none}@keyframes page-enter{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes page-leave{0%{transform:translateX(var(--page-drag,0px))}to{transform:translate(100%)}}.sheet-layer{z-index:150;outline:none;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .3s var(--ease-out) both;background:#0000009e;position:absolute;inset:0}.sheet{width:min(100%, var(--app-width));max-height:calc(100dvh - 48px - env(safe-area-inset-top));border-radius:var(--r-xl) var(--r-xl) 0 0;border:1px solid var(--line-2);transform:translateY(var(--sheet-drag,0px));transition:transform .34s var(--ease-spring);animation:sheet-in .46s var(--ease-spring) both;background:#0d0d0d;border-bottom:0;flex-direction:column;display:flex;position:relative;box-shadow:0 -20px 60px #000000b3,inset 0 1px #ffffff0f}.sheet:before{content:"";border-radius:inherit;background:radial-gradient(80% 100% at 50% 0%, rgb(var(--accent-rgb) / 22%), transparent 70%);pointer-events:none;height:120px;position:absolute;inset:0 0 auto;-webkit-mask:radial-gradient(circle,#000 .7px,#0000 1px) 0 0/3px 3px;mask:radial-gradient(circle,#000 .7px,#0000 1px) 0 0/3px 3px}.sheet-dragging{transition:none}.sheet-grab{padding:10px var(--gutter) 6px;touch-action:none;cursor:grab;flex:none;position:relative}.sheet-handle{border-radius:var(--r-s);background:var(--line-3);width:38px;height:5px;margin:0 auto 12px;display:block}.sheet-title{letter-spacing:-.025em;margin:0 0 6px;font-size:20px;font-weight:650}.sheet-body{overscroll-behavior:contain;padding:8px var(--gutter) calc(22px + env(safe-area-inset-bottom));position:relative;overflow:auto}.sheet-leaving .sheet{animation:sheet-out .24s var(--ease-out) forwards}.sheet-leaving .sheet-backdrop{animation:fade-out .24s var(--ease-out) forwards}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{0%{transform:translateY(var(--sheet-drag,0px))}to{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.action-list{gap:8px;display:grid}.action-item{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-2);width:100%;min-height:64px;color:var(--text);text-align:left;transition:transform .14s var(--ease-press), background .14s;align-items:center;gap:14px;padding:10px 16px;font-size:16px;font-weight:550;display:flex}.action-item:not(:disabled):active{background:var(--bg-3);transform:scale(.98)}.action-item small{color:var(--text-3);margin-top:2px;font-size:13px;font-weight:450;display:block}.action-item.danger{color:var(--danger)}.swipe-row{isolation:isolate;border-radius:var(--r-m);position:relative;overflow:hidden}.swipe-content{background:var(--bg-1);touch-action:pan-y;align-items:stretch;display:flex;position:relative}.swipe-main{flex:1;min-width:0}.swipe-toggle{clip:rect(0, 0, 0, 0);background:0 0;border:0;width:1px;height:1px;padding:0;position:absolute;top:50%;right:4px;overflow:hidden}.swipe-toggle:focus-visible{clip:auto;background:var(--bg-3);border-radius:50%;width:36px;height:36px;transform:translateY(-50%)}.swipe-settle{transition:transform .38s var(--ease-spring)}.swipe-actions{transition:visibility;display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-row:not(.swipe-open):not(.swipe-dragging) .swipe-actions{visibility:hidden;transition:visibility 0s .4s}.swipe-actions button{border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:76px;font-size:11px;font-weight:600;display:flex}.swipe-edit{background:var(--bg-4);color:var(--text)}.swipe-delete{background:var(--danger);color:var(--accent-ink)}.stepper{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--bg-1);grid-template-columns:60px minmax(0,1fr) 60px;align-items:center;gap:8px;padding:8px;display:grid}.stepper-btn{border-radius:var(--r-l);background:var(--bg-3);width:60px;height:60px;color:var(--text);transition:transform .14s var(--ease-press), background .14s;border:0;place-items:center;display:grid}.stepper-btn:not(:disabled):active{background:var(--bg-4);transform:scale(.9)}.stepper-field{cursor:text;justify-items:center;gap:2px;min-width:0;display:grid}.stepper-label{color:var(--gold-3);font:500 10px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.stepper-value{justify-content:center;align-items:baseline;gap:4px;max-width:100%;display:flex}.stepper-value input{width:auto;min-width:0;max-width:100%;color:var(--text);font:600 46px/1.1 var(--font-sans);letter-spacing:-.04em;text-align:center;caret-color:var(--accent);text-shadow:-1px 0 var(--chroma-a), 1px 0 var(--chroma-b);transition:transform .22s var(--ease-spring);background:0 0;border:0;outline:none;padding:0}.stepper-value input:focus{text-shadow:-1px 0 var(--chroma-a), 1px 0 var(--chroma-b), 0 0 22px #ffffff40}.stepper:focus-within{border-color:var(--line-3)}.stepper-unit{color:var(--text-3);font-size:15px;font-weight:550}.stepper.bump-up .stepper-value input{animation:bump-up .22s var(--ease-out)}.stepper.bump-down .stepper-value input{animation:bump-down .22s var(--ease-out)}@keyframes bump-up{0%{opacity:.4;transform:translateY(6px)}}@keyframes bump-down{0%{opacity:.4;transform:translateY(-6px)}}.toast-stack{z-index:60;left:50%;bottom:calc(var(--tabbar-space) + 8px);pointer-events:none;gap:8px;width:min(100% - 28px,440px);display:grid;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--r-l);-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);border:1px solid var(--line-2);min-height:52px;box-shadow:var(--shadow-float);color:var(--text);pointer-events:auto;animation:toast-in .42s var(--ease-spring) both;background:#1c1c1ce0;align-items:center;gap:10px;padding:6px 8px 6px 16px;font-size:14px;font-weight:550;display:flex}.toast>span{flex:1;min-width:0}.toast .text-link{color:var(--text);min-height:40px;padding:0 10px;font-weight:650}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}@media (width>=700px){.screen-page{box-shadow:none}}.movement-heading{margin:8px 0 22px}.movement-credit{color:var(--text-2);margin:12px 0;font-size:12px;line-height:1.6}.movement-credit a{color:var(--accent)}.movement-heading h1{letter-spacing:-.035em;margin:0;font-size:clamp(25px,6vw,34px);line-height:1.12}.movement-heading p{color:var(--text-3);margin:9px 0 0;font-size:14px}.movement-player{border:1px solid var(--line);border-radius:var(--r-l);background:#000;overflow:hidden}.movement-stage{aspect-ratio:4/3;background:radial-gradient(at 50% 55%,#101319,#000 70%);position:relative}.movement-stage iframe{pointer-events:none;border:0;width:100%;height:100%;display:block}.movement-status{text-align:center;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;padding:20px;font-size:14px;display:flex;position:absolute;inset:0}.movement-controls{border-top:1px solid var(--line);padding:16px}.movement-playback{align-items:center;gap:6px;display:flex}.movement-playback .btn{min-height:44px;padding:10px 13px}.movement-speeds{border:1px solid var(--line);border-radius:var(--r-l);margin-left:auto;display:flex;overflow:hidden}.movement-speeds button{min-width:42px;min-height:44px;color:var(--text-3);background:0 0;border:0;padding:4px;font-size:13px}.movement-speeds button[aria-pressed=true]{background:var(--bg-2,#222);color:var(--text)}.movement-timeline{color:var(--text-3);grid-template-columns:1fr auto;gap:6px;margin-top:16px;font-size:12px;display:grid}.movement-timeline output{font-variant-numeric:tabular-nums}.movement-timeline input{width:100%;height:44px;accent-color:var(--accent,#d8b768);cursor:pointer;grid-column:1/-1;margin:0}.movement-hold{border-top:1px solid var(--line);color:var(--text-2);text-align:center;margin:0;padding:16px;font-size:14px}.movement-details{gap:18px;margin:24px 0;display:grid}.movement-details dt{color:var(--text-3);margin-bottom:5px;font-size:12px}.movement-details dd{margin:0;font-size:15px}.movement-open{min-height:44px;color:var(--text-2);background:0 0;border:0;justify-self:start;align-items:center;gap:6px;padding:7px 0;font-size:13px;display:inline-flex}.catalogue-preview{border-radius:var(--r-l);color:var(--text);background:#000;border:0;flex:0 0 68px;margin-right:8px;padding:0;position:relative;overflow:hidden}.catalogue-preview .exercise-art{width:68px;height:68px}.catalogue-preview>span{border-radius:var(--r-l);background:#252528;align-items:center;gap:3px;padding:3px 5px;font-size:10px;display:flex;position:absolute;bottom:2px;right:2px}.catalogue-select>.catalogue-add-icon{color:var(--text-3);flex:none;margin-left:auto}.cardio-movement-preview>span{min-width:0}@media (width<=360px){.movement-controls{padding:12px}.movement-speeds button{min-width:35px}}.catalogue-controls{top:calc(54px + env(safe-area-inset-top));z-index:3;margin:0 calc(var(--gutter) * -1) 6px;padding:4px var(--gutter) 12px;background:linear-gradient(#000 82%,#0000);gap:12px;display:grid;position:sticky}.catalogue-controls .filter-row{margin:0 calc(var(--gutter) * -1)}.catalogue-count{color:var(--text-3);margin-left:auto;font-size:13px}.catalogue-list{display:grid}.catalogue-row{border-radius:var(--r-m);align-items:center;gap:4px;transition:background .14s;display:flex}.catalogue-row+.catalogue-row{box-shadow:inset 0 1px 0 var(--line)}.catalogue-select{min-width:0;min-height:72px;color:var(--text);text-align:left;transition:transform .14s var(--ease-press);background:0 0;border:0;flex:1;align-items:center;gap:14px;padding:10px 0;display:flex}.catalogue-select:not(:disabled):active{transform:scale(.98)}.catalogue-select>span{gap:3px;min-width:0;display:grid}.catalogue-select strong{letter-spacing:-.012em;font-size:16px;font-weight:550;line-height:1.25}.catalogue-select small{color:var(--text-3);font-size:13px}.favourite-button{color:var(--text-3)}.favourite-button.active{color:var(--text)}.favourite-button.active svg{filter:drop-shadow(0 0 8px #fff6)}.catalogue-propose{color:var(--text-2);margin-top:18px}.routine-list{gap:12px;display:grid}.routine-list .swipe-row{border-radius:var(--r-xl);border:1px solid var(--line)}.routine-item{background:var(--bg-1);gap:14px;padding:18px;display:grid}.routine-title{width:100%;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:0;display:flex}.routine-title:not(:disabled):active{opacity:.75}.routine-stack{flex:none;display:flex}.routine-stack .exercise-art{border-radius:var(--r-l);border:2px solid var(--bg-1);background:var(--bg-3);width:44px;height:44px}.routine-stack .exercise-art+.exercise-art{margin-left:-18px}.routine-heading{flex:1;gap:3px;min-width:0;display:grid}.routine-heading strong{letter-spacing:-.02em;font-size:18px;font-weight:650;line-height:1.2}.routine-heading small{color:var(--text-3);font-size:13px}.routine-chev{color:var(--text-3)}.routine-preview{color:var(--text-2);margin:0;font-size:14px;line-height:1.5}.routine-apply{border-radius:var(--r-l);min-height:50px}.routine-apply-day{border-radius:var(--r-l);color:#0009;background:#00000014;margin-left:auto;padding:3px 8px;font-size:13px;font-weight:600}.routine-create{color:var(--text-2);background:0 0;border-style:dashed;margin-top:16px}.routine-empty{text-align:center;justify-items:center;gap:10px;padding:36px 12px 16px;display:grid}.routine-empty-mark{width:168px;height:168px;image-rendering:pixelated;background:url(/grimoire/routine-empty.png) 50%/168px 168px no-repeat;margin-bottom:10px}.routine-empty-mark:before,.routine-empty-mark>*{display:none}.routine-empty-title{margin:0;font-size:22px}.routine-empty-text{max-width:290px;color:var(--text-2);margin:0}.routine-editor{gap:22px;padding-bottom:20px;display:grid}.routine-name{gap:2px;display:grid}.routine-name .section-label{margin:0}.routine-name input{border:0;border-bottom:1px solid var(--line-2);width:100%;color:var(--text);letter-spacing:-.035em;background:0 0;border-radius:0;outline:none;padding:4px 0 10px;font-size:30px;font-weight:650;transition:border-color .16s}.routine-name input:focus{border-color:var(--text-2)}.routine-exercises{gap:10px;display:grid}.routine-exercise{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);transition:border-color .2s;overflow:hidden}.routine-exercise.open{border-color:var(--line-2)}.routine-exercise-head{width:100%;min-height:68px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:12px 16px;display:flex}.entry-index{border-radius:var(--r-l);background:var(--bg-3);width:30px;height:30px;color:var(--text-2);flex:none;place-items:center;font-size:13px;font-weight:600;display:grid}.routine-exercise.open .entry-index{background:var(--fill-gold);image-rendering:pixelated;color:var(--accent-ink)}.routine-exercise-name{flex:1;gap:2px;min-width:0;display:grid}.routine-exercise-name strong{font-size:16px;font-weight:600}.routine-exercise-name small{color:var(--text-3);font-size:13px}.routine-exercise-head>svg{color:var(--text-3);transition:transform .26s var(--ease-spring)}.routine-exercise-head>svg.rotated{transform:rotate(180deg)}.routine-exercise-body{animation:fade-up .3s var(--ease-out) both;gap:12px;padding:4px 16px 16px;display:grid}.routine-target-head,.routine-target{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 40px;align-items:center;gap:8px;display:grid}.routine-target.single{grid-template-columns:28px minmax(0,1fr) 40px}.routine-target-head span{color:var(--text-3);font-size:12px;font-weight:500}.routine-target-index{color:var(--text-3);text-align:center;font-size:14px;font-weight:600}.routine-target .field input{text-align:center;min-height:48px;font-size:18px;font-weight:550}.routine-target .icon-btn{width:40px;min-width:40px;height:40px;color:var(--text-3)}.routine-add-target,.routine-add-exercise{border:1px dashed var(--line-3);border-radius:var(--r-m);min-height:48px;color:var(--text-2);transition:background .14s, transform .14s var(--ease-press);background:0 0;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:550;display:flex}.routine-add-exercise{border-radius:var(--r-l);min-height:60px;color:var(--text)}.routine-add-target:active,.routine-add-exercise:active{background:var(--bg-2);transform:scale(.98)}.routine-order{align-items:center;gap:8px;padding-top:4px;display:flex}.routine-order .text-link{margin-left:auto}.text-link.danger{color:var(--danger)}.routine-delete{justify-self:center}.routine-confirm{display:grid}.routine-confirm .row{justify-content:flex-end}.journal{touch-action:pan-y;min-height:calc(100dvh - 160px);padding-bottom:72px;position:relative}.journal-head{justify-content:space-between;align-items:flex-end;gap:8px;margin:6px 0 18px;display:flex}.journal-date-toggle{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;justify-items:start;gap:4px;padding:0;display:grid}.journal-date-toggle:active{opacity:.7}.journal-kicker{color:var(--accent);font:500 11px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:7px;display:inline-flex}.journal-kicker:not(.live):before{content:"";clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;width:5px;height:7px}.journal-kicker.live{color:var(--accent-2)}.journal-kicker.live:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%;animation:2.4s step-end infinite rec-blink}.journal-date-toggle h1{white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:30px;line-height:1.05;display:flex}.journal-date-toggle h1 svg{color:var(--text-3);margin-top:4px}.journal-nav{gap:2px;margin-bottom:-6px;display:flex}.journal-nav .icon-btn{color:var(--text)}.journal-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:0 -4px 22px;display:grid}.journal-week button{border-radius:var(--r-l);min-height:70px;color:var(--text-2);transition:background .22s var(--ease-out), color .22s, transform .14s var(--ease-press);background:0 0;border:0;justify-items:center;gap:5px;padding:10px 0 9px;display:grid}.journal-week button:not(:disabled):active{transform:scale(.92)}.journal-week button span{color:var(--text-3);text-transform:uppercase;font-size:12px;font-weight:550}.journal-week button strong{font-size:19px;font-weight:550;line-height:1}.journal-week button i{background:0 0;border-radius:50%;width:5px;height:5px}.journal-week button.today strong{color:var(--accent-2)}.journal-week button.selected{border-radius:var(--r-xs);image-rendering:pixelated;color:var(--accent-ink);background:url(/grimoire/tile-column.png) 0 0/8px 96px repeat-x}.journal-week button.selected span,.journal-week button.selected strong,.journal-week button.selected.today strong{color:var(--accent-ink);font-weight:700}.journal-week button i,.journal-week button i.filled{border-radius:0}.journal-week button i.filled{background:var(--accent)}.journal-week button.selected i.filled{background:var(--accent-ink)}.journal-week button:disabled{opacity:.28}.journal-back-today{border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--bg-1);min-height:34px;color:var(--text);font:500 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:6px;margin:-8px 0 18px;padding:0 14px;display:inline-flex}.journal-day{animation:day-in .36s var(--ease-out) both}.journal-day.from-next{animation-name:day-from-next}.journal-day.from-previous{animation-name:day-from-previous}.day-hero{border:1px solid var(--line);border-radius:var(--r-l);min-height:150px;image-rendering:pixelated;background:#000 url(/grimoire/hero-day.png) 100% 0/600px 150px no-repeat;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;padding:22px 20px 20px;display:flex;position:relative;overflow:hidden}.day-hero:before{background:linear-gradient(90deg,#000000c7,#0000 42% 58%,#000000d1);-webkit-mask:none;mask:none}.day-hero-main,.day-hero-stats{text-shadow:0 0 6px #000,0 0 14px #000}.day-hero-main{gap:2px;display:grid}.day-hero-main strong{letter-spacing:-.06em;font-size:64px;font-weight:600;line-height:.9}.day-hero-main span{color:var(--accent);font:500 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.day-hero-stats{text-align:right;gap:12px;margin:0;display:grid}.day-hero-stats div{gap:1px;display:grid}.day-hero-stats dt{color:var(--gold-3);font:500 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.day-hero-stats dd{margin:0;font-size:20px;font-weight:550;line-height:1.1}.day-hero-stats small{color:var(--text-3);font-size:13px}.journal-list{gap:10px;display:grid}.exercise-card{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);width:100%;min-height:84px;color:var(--text);text-align:left;transition:transform .16s var(--ease-press), background .16s, border-color .16s;align-items:center;gap:14px;padding:16px 14px 16px 16px;display:flex;position:relative}.exercise-card:active{background:var(--bg-2);border-color:var(--line-2);transform:scale(.985)}.exercise-card-index{color:var(--accent);align-self:flex-start;margin-top:2px;font-size:12px;font-weight:500}.exercise-card-body{flex:1;gap:10px;min-width:0;display:grid}.exercise-card-title{align-items:center;gap:8px;min-width:0;display:flex}.exercise-card-title strong{letter-spacing:-.015em;font-size:16px;font-weight:600;line-height:1.25}.exercise-card-hint{color:var(--text-3);font-size:13px}.exercise-card-chev{color:var(--text-3)}.exercise-card-ring{--size:40px;width:var(--size);height:var(--size);background:conic-gradient(var(--accent) calc(var(--p) * 360deg), var(--bg-4) 0);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.exercise-card-ring:before{content:"";background:var(--bg-1);border-radius:50%;position:absolute;inset:3px}.exercise-card-ring span{font-size:11px;font-weight:600;position:relative}.set-chips{flex-wrap:wrap;gap:6px;display:flex}.set-chip{min-height:26px;box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / 24%);color:var(--text);background:0 0;border-radius:0;align-items:center;padding:0 9px;font-size:13px;font-weight:500;display:inline-flex}.set-chip.warmup{box-shadow:none;outline:1px dashed rgb(var(--accent-rgb) / 32%);outline-offset:-1px;color:var(--text-3);background:0 0}.set-chip.more{color:var(--text-3)}.journal-unknown{border:1px dashed var(--line-2);border-radius:var(--r-l);color:var(--text-3);padding:16px;font-size:13px}.journal-cardio-item .swipe-row{border-radius:var(--r-l);border:1px solid var(--line)}.journal-cardio-record{width:100%;min-height:76px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:14px 16px;display:flex}.journal-cardio-body{flex:1;gap:2px;min-width:0;display:grid}.journal-cardio-body strong{font-size:16px;font-weight:600}.journal-cardio-body small{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.journal-cardio-values{justify-items:end;gap:2px;font-size:16px;font-weight:550;display:grid}.journal-cardio-values span+span{color:var(--text-2);font-size:13px}.cardio-sports{border:0;min-width:0;margin:0;padding:0}.cardio-sports .chip{cursor:pointer}.cardio-sports .filter-row{flex-wrap:wrap;margin:0;padding:2px 0;overflow:visible}.cardio-movement-preview{border-radius:var(--r-l);background:#000;border:1px solid #292d33;align-items:center;gap:16px;display:flex;overflow:hidden}.cardio-movement-preview .exercise-art{flex:0 0 144px;width:144px;height:108px}.cardio-movement-preview strong,.cardio-movement-preview small{display:block}.cardio-movement-preview small{color:var(--text-3);margin-top:5px}.cardio-big input{min-height:64px;font-family:var(--font-mono);letter-spacing:-.03em;font-size:28px;font-weight:550}.journal-empty{text-align:center;justify-items:center;gap:10px;padding:40px 12px 20px;display:grid}.journal-empty .journal-add{border-radius:var(--r-l);width:min(100%,320px);min-height:54px}.journal-more{color:var(--text-3);justify-content:center;align-items:center;gap:12px;margin-top:18px;display:flex}.journal-more .text-link{min-height:44px;color:var(--text-3)}.journal-empty-alt{color:var(--text-3);align-items:center;gap:12px;display:flex}.journal-empty-alt .text-link{min-height:44px}.journal-fab{z-index:35;right:max(var(--gutter), calc((100vw - var(--app-width)) / 2 + var(--gutter)));bottom:calc(var(--tabbar-space) + 4px);width:60px;height:60px;image-rendering:pixelated;color:var(--accent-ink);box-shadow:0 0 0 1px rgb(var(--accent-rgb) / 35%), 0 0 28px rgb(var(--accent-rgb) / 35%), 0 12px 30px #0009;transition:transform .18s var(--ease-spring), bottom .42s var(--ease-spring);animation:fab-in .5s var(--ease-spring) both;background:#000 url(/grimoire/seal.png) 50%/64px 64px no-repeat;border:0;border-radius:50%;place-items:center;display:grid;position:fixed}.journal-fab svg{stroke-width:2.8px;filter:drop-shadow(0 1px #fcecb899)}.journal-fab:not(:disabled):active{transform:scale(.9)rotate(90deg)}.journal-fab:disabled{opacity:.4;box-shadow:none}.rest-pill{--rest:1;z-index:36;left:max(var(--gutter), calc((100vw - var(--app-width)) / 2 + var(--gutter)));right:max(var(--gutter), calc((100vw - var(--app-width)) / 2 + var(--gutter)));bottom:calc(var(--tabbar-space) + 4px);border-radius:var(--r-l);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);min-height:60px;box-shadow:var(--shadow-float);animation:toast-in .46s var(--ease-spring) both;background:#0e0e0ee0;align-items:center;gap:4px;padding:0 6px 0 16px;display:flex;position:fixed;overflow:hidden}body[data-rest=on] .journal-fab{bottom:calc(var(--tabbar-space) + 76px)}.rest-pill.in-page{top:calc(58px + env(safe-area-inset-top));z-index:6;animation-name:drop-in;bottom:auto}@keyframes drop-in{0%{opacity:0;transform:translateY(-14px)scale(.96)}}.rest-progress{background:var(--accent);height:2px;box-shadow:0 0 12px var(--accent);transform-origin:0;transform:scaleX(var(--rest));transition:transform .26s linear;position:absolute;inset:auto 0 0}.rest-rec{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%;flex:none;animation:1s step-end infinite rec-blink}.rest-pill.paused .rest-rec{background:var(--text-3);box-shadow:none;animation:none}.journal-rest-label{color:var(--text-2);margin-left:6px;font-size:13px;font-weight:550}.rest-pill strong{letter-spacing:-.04em;margin:0 auto 0 8px;font-size:26px;font-weight:600}.rest-btn{border-radius:var(--r-l);min-width:44px;height:44px;color:var(--text);transition:background .14s, transform .14s var(--ease-press);background:0 0;border:0;place-items:center;padding:0 8px;font-size:14px;font-weight:600;display:grid}.rest-btn:active{background:var(--bg-4);transform:scale(.92)}.rest-pill.elapsed{border-color:var(--accent-line);box-shadow:var(--glow), var(--shadow-float)}.rest-pill.elapsed strong,.rest-pill.elapsed .journal-rest-label{color:var(--accent-2)}.rest-error{color:var(--accent-2);font-size:11px;position:absolute;inset:auto 12px 4px}.journal-toasts{z-index:170}body:has(.screen-page) .journal-toasts{top:calc(64px + env(safe-area-inset-top));bottom:auto}body:has(.screen-page) .journal-toasts .toast{animation-name:drop-in}.journal-toast{pointer-events:none}.toast-icon{border-radius:var(--r-l);background:var(--bg-4);flex:none;place-items:center;width:30px;height:30px;display:grid}.journal-toast.record{border-color:var(--accent-line);box-shadow:var(--glow), var(--shadow-float)}.journal-toast.record .toast-icon{background:var(--accent);color:#fff}.journal-toast.record span.chroma{font-family:var(--font-mono);font-weight:650;animation:.6s steps(3,end) 2 rgb-split}.journal-toast.peer .toast-icon{background:var(--fill-gold);image-rendering:pixelated;color:var(--accent-ink)}.journal-calendar{gap:14px;display:grid}.journal-calendar-heading{justify-content:space-between;align-items:center;display:flex}.journal-calendar-heading strong{text-transform:capitalize;font-size:17px;font-weight:600}.journal-calendar-heading .icon-btn{color:var(--text)}.journal-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.journal-calendar-weekday{color:var(--text-3);text-align:center;padding:4px 0 8px;font-size:12px;font-weight:550}.journal-calendar-grid button{aspect-ratio:1;border-radius:var(--r-l);min-height:42px;color:var(--text-2);background:0 0;border:0;place-items:center;font-size:16px;font-weight:500;display:grid;position:relative}.journal-calendar-grid button.has-sets{background:var(--bg-3);color:var(--text)}.journal-calendar-grid button i{border-radius:50%;width:4px;height:4px;position:absolute;bottom:6px}.journal-calendar-grid button i.filled{background:var(--accent);box-shadow:0 0 6px var(--accent)}.journal-calendar-grid button.today{color:var(--accent-2);font-weight:650}.journal-calendar-grid button.selected{background:var(--fill-gold);image-rendering:pixelated;color:var(--accent-ink)}.journal-calendar-grid button:disabled{opacity:.25}.logger{gap:18px;padding-bottom:32px;display:grid}.logger-hero{margin:calc(-62px - env(safe-area-inset-top)) calc(var(--gutter) * -1) 0;padding:calc(62px + env(safe-area-inset-top)) var(--gutter) 10px;align-items:center;gap:16px;display:flex}.logger-hero:before{background:radial-gradient(60% 140% at 0% 50%, rgb(var(--accent-rgb) / 45%), rgb(var(--accent-rgb) / 5%) 60%, transparent 80%)}.logger-art{border-radius:var(--r-l);width:76px;height:76px;box-shadow:inset 0 0 0 1px var(--line-2);background:#000000d1}.logger-hero-text{gap:4px;min-width:0;display:grid}.logger-kicker{color:var(--accent);font:500 11px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.logger-kicker:before{content:"";vertical-align:1px;clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;width:5px;height:7px;margin-right:8px;display:inline-block}.logger-hero h1{margin:0;font-size:23px;line-height:1.04}.logger-note{border-radius:var(--r-m);background:var(--bg-1);border:1px solid var(--line);color:var(--text-2);gap:8px;margin:0;padding:12px 14px;font-size:14px;display:flex}.logger-note svg{flex:none;margin-top:2px}.logger-context{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);gap:12px;padding:14px 16px;display:grid}.logger-context-label{color:var(--text-3);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.logger-target{justify-content:space-between;align-items:baseline;display:flex}.logger-previous+.logger-target{border-top:1px solid var(--line);padding-top:12px}.logger-target .logger-context-label{margin:0}.logger-target strong{color:var(--accent-2);font-size:17px;font-weight:600}.composer{gap:12px;display:grid}.composer.is-editing .stepper{border-color:var(--line-3);background:var(--bg-2)}.composer-editing{color:var(--text);justify-content:space-between;align-items:center;padding:0 4px;font-size:15px;font-weight:600;display:flex}.composer-editing .text-link{color:var(--accent-2)}.composer-steppers{gap:10px;display:grid}.composer-options{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.composer-toggle{border:1px solid var(--line-2);border-radius:var(--r-s);min-height:38px;color:var(--text-2);font:500 11px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;gap:7px;padding:0 14px;transition:background .16s,color .16s,border-color .16s;display:inline-flex;position:relative}.composer-toggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.composer-toggle:has(input:focus-visible){outline:2px solid var(--text);outline-offset:2px}.composer-toggle.on{border-color:var(--line-3);background:var(--bg-3);color:var(--text)}.journal-date-hint{color:var(--text-3);margin-left:4px;font-size:13px}.journal-note-field input{min-height:46px}.composer-save{min-height:60px;margin-top:4px;position:relative}.composer-save-label{align-items:center;gap:8px;display:inline-flex}.composer-save.saved{color:var(--gold-5)}.composer-save.saved .composer-save-label{animation:fade-up .3s var(--ease-out) both}.composer.just-saved .composer-save:after{content:"";animation:sweep .7s var(--ease-out) both;background:linear-gradient(100deg,#0000 30%,#fcecb859 50%,#0000 70%);position:absolute;inset:0}.logger-sets{gap:8px;margin-top:6px;display:grid}.logger-sets-head{justify-content:space-between;align-items:baseline;display:flex}.logger-sets-head .section-label{margin:0}.logger-empty{color:var(--text-3);text-align:center;margin:0;padding:18px 0;font-size:14px}.journal-set-list{gap:6px;display:grid}.journal-set-item{animation:fade-up .36s var(--ease-out) both}.journal-set-row{width:100%;min-height:60px;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;column-gap:12px;padding:10px 16px 10px 12px;display:grid}.journal-set-number{border-radius:var(--r-l);background:var(--bg-3);width:32px;height:32px;color:var(--text-2);place-items:center;font-size:13px;font-weight:600;display:grid}.journal-set-row.warmup .journal-set-number{box-shadow:inset 0 0 0 1px var(--line-2);color:var(--text-3);font-family:var(--font-sans);background:0 0}.journal-set-value{letter-spacing:-.03em;white-space:nowrap;font-size:21px;font-weight:550}.journal-set-value small{color:var(--text-3);font-family:var(--font-sans);letter-spacing:0;font-size:13px;font-weight:500}.journal-set-value em{color:var(--text-3);font-style:normal;font-weight:400}.journal-set-row.warmup .journal-set-value{color:var(--text-2)}.journal-set-best{border-radius:var(--r-l);background:var(--accent-soft);width:24px;height:24px;color:var(--accent-2);place-items:center;display:grid}.journal-set-time{color:var(--text-3);grid-column:4;font-size:13px}.journal-set-note{color:var(--text-2);grid-column:2/-1;margin-top:4px;font-size:13px}.journal-set-row.editing{background:var(--bg-3)}.journal-set-row.editing .journal-set-number{background:var(--accent);color:#fff}.logger-hint{color:var(--text-3);text-align:center;margin:4px 0 0;font-size:12px}.journal-instructions{font-size:14px}.journal-option-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.action-trail{color:var(--text-3);margin-left:auto}.journal-routine strong{font-weight:600;display:block}@keyframes rec-blink{50%{opacity:.25}}@keyframes day-in{0%{opacity:0}}@keyframes day-from-next{0%{opacity:0;transform:translate(28px)}}@keyframes day-from-previous{0%{opacity:0;transform:translate(-28px)}}@keyframes fab-in{0%{opacity:0;transform:scale(.4)rotate(-90deg)}}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=359px){.journal-date-toggle h1{font-size:28px}.day-hero-main strong{font-size:52px}.stepper{grid-template-columns:52px minmax(0,1fr) 52px}.stepper-btn{width:52px;height:52px}.stepper-value input{font-size:38px}}.stats-shell{position:relative}.stats-heading{margin-bottom:18px}.stats-heading-title{align-items:center;gap:6px;min-width:0;display:flex}.stats-heading-title>.icon-btn{color:var(--text);margin-left:-12px}.stats-tabs{margin-bottom:26px}.stats-view{animation:fade-up .36s var(--ease-out) both}.stats-month{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.stats-month h2{letter-spacing:-.03em;text-transform:capitalize;white-space:nowrap;margin:0;font-size:22px;font-weight:650}.stats-month-nav{gap:2px;margin-right:-10px;display:flex}.stats-month-nav .icon-btn{color:var(--text)}.stats-month-nav .icon-btn:disabled{color:var(--text-3)}.stats-hero{border:1px solid var(--line);border-radius:var(--r-l);min-height:150px;image-rendering:pixelated;background:#000 url(/grimoire/hero-month.png) 50% 0/150px 150px no-repeat;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;padding:22px 20px 20px;display:flex;overflow:hidden}.stats-hero:before{display:none}.stats-hero-main,.stats-hero-stats{text-shadow:0 0 6px #000,0 0 14px #000}.stats-hero-main{gap:4px;min-width:0;display:grid}.stats-hero-main strong{letter-spacing:-.06em;font-size:64px;font-weight:600;line-height:.9}.stats-hero-main span{color:var(--accent);font:500 11px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.stats-hero-stats{text-align:right;gap:12px;margin:0;display:grid}.stats-hero-stats div{gap:1px;display:grid}.stats-hero-stats dt{color:var(--gold-3);font:500 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.stats-hero-stats dd{white-space:nowrap;margin:0;font-size:20px;font-weight:550;line-height:1.1}.stats-hero-stats small{color:var(--text-3);font-size:13px}.stats-calendar{border-radius:var(--r-l);touch-action:pan-y;outline-offset:4px;margin:0 -4px}.stats-calendar-weekdays,.stats-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.stats-calendar-weekdays span{color:var(--text-3);font:500 11px/1.4 var(--font-mono);text-align:center;padding:0 0 8px}.stats-calendar-grid{animation:month-in .36s var(--ease-out) both}.stats-calendar-grid.from-next{animation-name:month-from-next}.stats-calendar-grid.from-previous{animation-name:month-from-previous}.stats-calendar-day{--heat:0;border-radius:var(--r-l);min-width:0;height:46px;color:var(--text-3);transition:transform .14s var(--ease-press), background .2s var(--ease-out), color .2s;background:0 0;border:0;place-items:center;padding:0;font-size:15px;font-weight:500;display:grid;position:relative}.stats-calendar-day:active{transform:scale(.9)}.stats-calendar-day.future{color:rgb(var(--accent-rgb) / 20%)}.stats-calendar-day.has-sets{border-radius:var(--r-xs);image-rendering:pixelated;filter:brightness(calc(.78 + var(--heat) * .3));color:var(--accent-ink);background:url(/grimoire/tile-cell.png) 0 0/8px 46px repeat-x;font-weight:700}.stats-calendar-day.has-sets:after{content:"";background:var(--accent-ink);width:3px;height:3px;position:absolute;bottom:6px}.stats-calendar-day.has-sets.has-cardio:after{transform:translate(-4px)}.stats-calendar-day.has-sets.has-cardio i{transform:translate(4px)}.stats-calendar-day.selected:after{background:var(--accent-ink)}.stats-calendar-day i{border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px}.stats-calendar-day.has-cardio{color:var(--text)}.stats-calendar-day.has-cardio i{background:var(--text);box-shadow:0 0 6px #fff9}.stats-calendar-day.today{border-radius:var(--r-xs);color:var(--gold-5);box-shadow:inset 0 0 0 1px var(--accent);font-weight:650}.stats-calendar-day.today:not(.has-sets):after{content:"";background:var(--gold-5);width:9px;height:2px;animation:1s step-end infinite cursor-blink;position:absolute;bottom:7px}.stats-calendar-day.today.has-sets{color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--gold-5)}.stats-calendar-day.selected,.stats-calendar-day.selected.has-sets{border-radius:var(--r-xs);box-shadow:0 0 0 2px var(--gold-5), 0 0 18px rgb(var(--accent-rgb) / 45%)}.stats-calendar-day.selected:not(.has-sets){background:rgb(var(--accent-rgb) / 14%);color:var(--gold-5)}.stats-calendar-day.selected i{background:var(--accent-ink);box-shadow:none}.stats-section-title{justify-content:space-between;align-items:baseline;gap:12px;margin:34px 0 12px;display:flex}.stats-section-title h2{letter-spacing:-.025em;margin:0;font-size:20px;font-weight:650}.stats-section-title>span{color:var(--text-3);font-size:13px;font-weight:500}.stats-section-title .text-link{min-height:32px;color:var(--accent-2)}.stats-empty{border:1px dashed var(--line-2);border-radius:var(--r-l);color:var(--text-3);text-align:center;margin:0;padding:28px 16px;font-size:14px}.stats-date-list{gap:10px;display:grid}.stats-date-row{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);width:100%;min-height:76px;color:var(--text);text-align:left;transition:transform .16s var(--ease-press), background .16s, border-color .16s;align-items:center;gap:16px;padding:14px 14px 14px 16px;display:flex}.stats-date-row:active{background:var(--bg-2);border-color:var(--line-2);transform:scale(.985)}.stats-date-number{border-radius:var(--r-l);background:var(--bg-3);flex:none;justify-items:center;width:48px;padding:6px 0 7px;display:grid}.stats-date-number strong{letter-spacing:-.03em;font-size:20px;font-weight:600;line-height:1.05}.stats-date-number small{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:550}.stats-date-description{flex:1;gap:3px;min-width:0;display:grid}.stats-date-title{align-items:center;gap:8px;min-width:0;display:flex}.stats-date-title strong{letter-spacing:-.015em;text-transform:capitalize;font-size:16px;font-weight:600}.stats-date-description>small{color:var(--text-2);overflow-wrap:anywhere;font-size:13px}.stats-local{background:var(--warn);border-radius:50%;flex:none;width:6px;height:6px;box-shadow:0 0 8px #ffb22499}.stats-chev{color:var(--text-3);flex:none}.stats-exercise-search{border-radius:var(--r-m);background:var(--bg-2);width:100%;min-height:50px;color:var(--text-3);text-align:left;transition:transform .14s var(--ease-press), background .16s;border:0;align-items:center;gap:10px;padding:0 16px;font-size:16px;display:flex}.stats-exercise-search:active{background:var(--bg-3);transform:scale(.985)}.stats-label{margin-top:28px}.stats-practiced .list-row,.stats-picker-list .list-row{min-height:68px;padding:10px 14px}.stats-practiced-art{border-radius:var(--r-l);width:44px;height:44px}.stats-practiced-text,.stats-exercise-text{flex:1;gap:2px;min-width:0;display:grid}.stats-practiced-text strong,.stats-exercise-text strong{letter-spacing:-.012em;font-size:15px;font-weight:600;line-height:1.3}.stats-practiced-text small,.stats-exercise-text small{color:var(--text-3);font-size:13px;display:block}.stats-practiced-text small:first-letter,.stats-exercise-text small:first-letter{text-transform:uppercase}.stats-exercise-select{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);width:100%;min-height:76px;color:var(--text);text-align:left;transition:transform .16s var(--ease-press), background .16s;align-items:center;gap:14px;margin-bottom:14px;padding:12px 14px;display:flex}.stats-exercise-select:active{background:var(--bg-2);transform:scale(.985)}.stats-exercise-select .stats-exercise-text strong{font-size:17px}.stats-exercise-change{background:var(--bg-3);width:32px;height:32px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;display:grid}.stats-period{margin-bottom:14px}.stats-chart-card{border:1px solid var(--line);border-radius:var(--r-xl);background:radial-gradient(70% 55% at 100% 0%, rgb(var(--accent-rgb) / 9%), transparent 70%), linear-gradient(180deg, #0f0f0f, #060606);padding:16px 0 14px;position:relative;overflow:hidden}.stats-metric{border-radius:var(--r-s);max-width:calc(100% - 28px);min-height:36px;color:var(--text-2);text-align:left;background:0 0;border:0;align-items:center;gap:6px;margin:0 0 0 10px;padding:0 10px;font-size:14px;font-weight:550;transition:background .16s;display:inline-flex}.stats-metric span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats-metric svg{color:var(--text-3)}.stats-metric:active{background:var(--bg-3)}.stats-chart-readout{gap:6px;padding:2px 20px 0;display:grid}.stats-chart-readout strong{letter-spacing:-.055em;align-items:baseline;gap:6px;font-size:52px;font-weight:600;line-height:.95;display:flex}.stats-chart-readout strong span{color:var(--text-3);letter-spacing:-.01em;text-shadow:none;font-size:17px;font-weight:550}.stats-chart-readout time{color:var(--text-2);font-size:13px;font-weight:500}.stats-chart-touch{touch-action:pan-y;cursor:crosshair;-webkit-user-select:none;user-select:none;outline:none;margin-top:8px;position:relative}.stats-chart-touch:focus-visible{box-shadow:inset 0 0 0 2px var(--text);border-radius:var(--r-s)}.stats-chart-touch svg{width:100%;height:auto;display:block;overflow:visible}.stats-chart-grid{stroke:#ffffff12;stroke-width:1px;stroke-dasharray:2 4;vector-effect:non-scaling-stroke}.stats-chart-area{fill-opacity:1}.stats-chart-touch pattern circle{fill:rgb(var(--accent-rgb) / 75%)}.stats-chart-line{stroke:var(--accent);stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgb(var(--accent-rgb) / 85%)) drop-shadow(0 0 12px rgb(var(--accent-rgb) / 40%))}.stats-chart-cursor{stroke:#ffffff47;stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.stats-chart-dot{fill:var(--accent-2);opacity:.7;transition:r .2s var(--ease-spring)}.stats-chart-dot.selected{fill:#fff;opacity:1;stroke:var(--accent);stroke-width:2.5px;filter:drop-shadow(0 0 6px rgb(var(--accent-rgb) / 90%))}.stats-chart-axis{color:var(--text-3);justify-content:space-between;gap:8px;padding:8px 20px 0;font-size:12px;font-weight:500;display:flex}.stats-chart-axis span:nth-child(2){color:var(--text-2);text-align:center}.stats-chart-empty{margin:12px 16px 4px}.stats-method{color:var(--text-3);margin:12px 4px 0;font-size:12.5px;line-height:1.5}.stats-volume{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-top:14px;padding:16px 18px;display:flex}.stats-volume>span{color:var(--text-2);font-size:13px;font-weight:500}.stats-volume strong{letter-spacing:-.03em;font-size:24px;font-weight:600}.stats-volume small{color:var(--text-3);letter-spacing:0;font-size:13px;font-weight:500}.stats-record-row{justify-content:space-between;min-height:62px;position:relative}.stats-record-text{gap:2px;min-width:0;font-size:15px;font-weight:500;display:grid}.stats-record-text small{color:var(--text-3);font-size:12.5px;font-weight:450}.stats-record-row>strong{letter-spacing:-.025em;flex:none;font-size:18px;font-weight:600}.stats-record-row>strong small{color:var(--text-3);letter-spacing:0;font-size:13px;font-weight:500}.stats-record-row[aria-pressed=true]{background:var(--bg-2)}.stats-record-row[aria-pressed=true]:before{content:"";background:var(--accent);width:3px;box-shadow:var(--glow-soft);border-radius:0 3px 3px 0;position:absolute;top:14px;bottom:14px;left:0}.stats-record-row[aria-pressed=true]>strong{color:var(--accent-2)}.stats-series{gap:18px;display:grid}.stats-series-day h3{color:var(--text-3);letter-spacing:.02em;margin:0 0 8px 4px;font-size:12px;font-weight:550}.stats-series-row{min-height:56px}.stats-series-row time{width:44px;color:var(--text-3);flex:none;font-size:13px;font-weight:500}.stats-series-text{flex-wrap:wrap;flex:1;align-items:center;gap:4px 8px;min-width:0;display:flex}.stats-series-text strong{font-size:15px;font-weight:550}.stats-series-text small{color:var(--text-3);overflow-wrap:anywhere;flex-basis:100%;font-size:13px}.stats-picker{gap:14px;display:grid}.stats-picker-list .list-row[aria-pressed=true]{background:var(--bg-2)}.stats-metric-option{min-height:56px}.stats-metric-option .stats-record-text{flex:1}.stats-check{color:var(--accent-2);flex:none}.stats-check-space{flex:none;width:18px}@keyframes month-in{0%{opacity:0}}@keyframes month-from-next{0%{opacity:0;transform:translate(24px)}}@keyframes month-from-previous{0%{opacity:0;transform:translate(-24px)}}@media (width<=359px){.stats-hero{padding:18px 16px 16px}.stats-hero-main strong{font-size:54px}.stats-calendar-day{border-radius:var(--r-l);height:40px;font-size:14px}.stats-chart-readout strong{font-size:44px}.stats-date-row{gap:12px}}.mcp-consent{gap:18px;display:grid}.mcp-client-heading{margin:0 calc(var(--gutter) * -1);padding:28px var(--gutter) 18px;text-align:center;justify-items:center;gap:8px;display:grid}.mcp-client-heading:before{background:radial-gradient(50% 80% at 50% 30%, rgb(var(--accent-rgb) / 50%), rgb(var(--accent-rgb) / 5%) 70%, transparent)}.mcp-shield{border-radius:var(--r-l);border:1px solid var(--line-2);background:var(--bg-1);place-items:center;width:72px;height:72px;margin-bottom:6px;display:grid}.mcp-client-heading h2{letter-spacing:-.03em;margin:0;font-size:26px}.mcp-client-heading p{color:var(--text-2);margin:0}.mcp-facts{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);grid-template-columns:1fr 1fr;margin:0;display:grid}.mcp-facts>div{gap:4px;min-width:0;padding:14px 16px;display:grid}.mcp-facts>div+div{box-shadow:inset 1px 0 0 var(--line)}.mcp-facts dt{color:var(--text-3);font-size:12px;font-weight:500}.mcp-facts dd{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:550}.mcp-consent h3{color:var(--text-3);margin:4px 0 -6px;font-size:12px;font-weight:500}.mcp-scope-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.mcp-scope-list li{border:1px solid var(--line);border-radius:var(--r-m);background:var(--bg-1);gap:12px;padding:14px 16px;font-size:15px;display:flex}.mcp-scope-list svg{color:var(--ok);flex:none;margin-top:3px}.mcp-help{color:var(--text-3);margin:0;font-size:13px}.mcp-actions{grid-template-columns:1fr 1.4fr;gap:10px;margin-top:6px;display:grid}.mcp-connections{gap:14px;display:grid}.mcp-client-list .list-row>svg:first-child{color:var(--text-2)}.mcp-client-list .list-row>span{flex:1}.mcp-section-label{color:var(--text-3);margin:14px 0 0;font-size:12px;font-weight:500}.mcp-grants{margin:0;padding:0;list-style:none}.mcp-grants li{align-items:center;gap:12px;padding:14px 16px;display:flex}.mcp-grants li>div{flex:1;min-width:0}.mcp-grants strong{font-size:15px;display:block}.mcp-grants p{color:var(--text-2);margin:2px 0;font-size:13px}.mcp-grants time{color:var(--text-3);font-size:12px}.mcp-connect-page{gap:18px;display:grid}.mcp-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.mcp-steps>li{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);gap:14px;padding:16px;display:flex}.mcp-steps>li>span{border-radius:var(--r-l);background:var(--fill-gold);width:30px;height:30px;image-rendering:pixelated;color:var(--accent-ink);flex:none;place-items:center;font-size:14px;font-weight:650;display:grid}.mcp-steps>li>div{flex:1;gap:10px;min-width:0;display:grid}.mcp-steps h3{margin:4px 0 0;font-size:16px}.mcp-steps p{color:var(--text-2);margin:0;font-size:14px}.mcp-endpoint{border-radius:var(--r-s);background:var(--bg-3);color:var(--text);font:500 13px/1.5 var(--font-mono);overflow-wrap:anywhere;padding:12px 14px;display:block}.mcp-error{color:var(--accent-2);margin:0;font-size:14px}.merge-intro{color:var(--text-2);margin:0}.merge-summary{gap:6px;font-size:14px;display:grid}.merge-summary strong{font-size:17px}.merge-choice{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.merge-choice legend{color:var(--text-3);margin-bottom:8px;padding:0;font-size:12px;font-weight:500}.merge-option{border:1px solid var(--line-2);border-radius:var(--r-m);background:var(--bg-1);cursor:pointer;align-items:flex-start;gap:12px;min-width:0;padding:14px 16px;transition:border-color .16s,background .16s;display:flex}.merge-option.selected{border-color:var(--accent-line);background:var(--accent-soft)}.merge-option input{flex:none;margin-top:2px}.merge-option>span{min-width:0}.merge-option-value{max-height:180px;color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;font-size:14px;display:block;overflow-y:auto}.merge-details summary{min-height:44px;color:var(--text-2);cursor:pointer;padding:12px 0}.merge-details ol{padding-left:24px}.merge-details li{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;font-size:14px}.merge-note{color:var(--text-3);margin:0;font-size:13px}.merge-confirm{min-height:48px;font-size:14px}.install-prompt{z-index:80;bottom:calc(92px + env(safe-area-inset-bottom));border:1px solid var(--accent);width:min(420px,100% - 24px);color:var(--text);background:#000000f5;border-radius:6px;padding:18px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 48px #000}body:has(.auth-screen) .install-prompt{bottom:calc(16px + env(safe-area-inset-bottom))}.install-heading{align-items:center;gap:12px;margin-bottom:14px;padding-right:18px;display:flex}.install-heading img{object-fit:contain;flex:0 0 56px}.install-heading h2{color:var(--accent);margin:0 0 4px;font-size:18px}.install-heading p,.install-steps p{margin:0;font-size:13px;line-height:1.5}.install-prompt>.btn{width:100%}.install-close{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:0;right:0}.install-close:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}@font-face{font-family:Iron Digits;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin.woff2)format("woff2");unicode-range:U+30-39}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin.woff2)format("woff2")}@font-face{font-family:Archivo;font-style:italic;font-weight:700 900;font-stretch:100% 125%;font-display:swap;src:url(/fonts/archivo-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:italic;font-weight:700 900;font-stretch:100% 125%;font-display:swap;src:url(/fonts/archivo-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@layer base{:root{--bg:#000;--bg-1:#070605;--bg-2:#0e0c08;--bg-3:#16130d;--bg-4:#201b12;--line:#d8b7681c;--line-2:#d8b76833;--line-3:#d8b76857;--text:#ece3cc;--text-2:#a39a85;--text-3:#6f6756;--gold-1:#34260e;--gold-2:#705221;--gold-3:#b28a3f;--gold-4:#e4c272;--gold-5:#fcecb8;--accent:#d8b768;--accent-rgb:216 183 104;--accent-2:#f2d68c;--accent-ink:#140d02;--accent-soft:rgb(var(--accent-rgb) / 12%);--accent-line:rgb(var(--accent-rgb) / 38%);--chroma-a:#ff9f2e8c;--chroma-b:#8fe3f080;--ok:#9fd28a;--warn:#ffb224;--danger:#ff8a3d;--danger-rgb:255 138 61;--glass:#070605db;--frost:#0806036b;--frost-filter:blur(14px) saturate(140%);--fill-gold:url(/grimoire/tile-column.png) 0 0 / 8px 96px repeat-x #e4c272;--glow:0 0 0 1px rgb(var(--accent-rgb) / 45%), 0 0 22px rgb(var(--accent-rgb) / 30%), 0 0 64px rgb(var(--accent-rgb) / 12%);--glow-soft:0 0 18px rgb(var(--accent-rgb) / 24%);--shadow-float:0 18px 50px #000000b3, 0 2px 8px #0009;--r-xs:2px;--r-s:3px;--r-m:3px;--r-l:4px;--r-xl:6px;--gutter:20px;--tap:44px;--app-width:640px;--tabbar-h:72px;--tabbar-space:calc(var(--tabbar-h) + 22px + env(safe-area-inset-bottom));--font-sans:"Iron Digits", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-title:"Iron Digits", "Archivo", "Geist", -apple-system, system-ui, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.32, .72, 0, 1);--ease-press:cubic-bezier(.2, 0, 0, 1);--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--surface:var(--bg-1);--soft:var(--bg-2);--muted:var(--text-2);--faint:var(--text-3);--line-strong:var(--line-2);--red:var(--accent);--yellow:#ffc94d;--blue:#6e8bff;--blue-text:#9db0ff;font-family:var(--font-sans);font-synthesis:none;font-variant-numeric:tabular-nums;letter-spacing:-.006em;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-size:15px;font-weight:400;line-height:1.45}*{box-sizing:border-box}html{background:#000;min-width:320px;min-height:100%;scroll-padding-top:90px}body{overscroll-behavior-y:none;background:#000;min-width:320px;margin:0}body,button,input,textarea,select{font-family:var(--font-sans)}button,input,textarea,select{font-size:inherit;letter-spacing:inherit}button,input,textarea,select,a,label{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{cursor:not-allowed;opacity:.38}a{color:inherit;text-underline-offset:3px}:focus-visible{outline:2px solid var(--text);outline-offset:2px}button svg{flex:none}svg{vertical-align:middle}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{overflow-wrap:anywhere;letter-spacing:-.025em;font-weight:600}h1{margin-bottom:14px;font-size:30px;line-height:1.1}h2{margin-bottom:10px;font-size:19px;line-height:1.25}h3{margin-bottom:6px;font-size:15px;line-height:1.35}p{margin-bottom:12px;line-height:1.55}small{font-size:12px;line-height:1.4}strong{font-weight:600}ul{padding-left:18px}::selection{color:#fff;background:var(--accent)}::placeholder{color:var(--text-3);opacity:1}.app-shell{max-width:var(--app-width);background:#000;min-height:100dvh;margin:0 auto;position:relative}.app-topbar{z-index:30;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--gutter) 0;transition:background .22s var(--ease-out), box-shadow .22s var(--ease-out);background:0 0;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid;position:sticky;top:0}.app-topbar.scrolled{-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);box-shadow:0 1px 0 var(--line);background:#000000db}.app-topbar-title{letter-spacing:-.015em;opacity:0;transition:opacity .2s var(--ease-out), transform .26s var(--ease-out);white-space:nowrap;font-size:15px;font-weight:600;transform:translateY(6px)}.app-topbar.scrolled .app-topbar-title{opacity:1;transform:none}.app-brand{color:var(--text);font:700 15px/1 var(--font-mono);letter-spacing:.16em;text-shadow:-1px 0 var(--chroma-a), 1px 0 var(--chroma-b);justify-self:start;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.app-brand .rec-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%}.brand{font:700 15px/1 var(--font-mono);letter-spacing:.16em;align-items:center;gap:8px;display:inline-flex}.app-indicators{justify-self:end;align-items:center;gap:6px;min-width:0;display:flex}.status{border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg-1);min-height:32px;color:var(--text-2);white-space:nowrap;align-items:center;gap:7px;padding:0 11px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.status-led{background:var(--ok);width:6px;height:6px;box-shadow:0 0 8px var(--ok);border-radius:50%;flex:none}.status[data-tone=warn] .status-led{background:var(--warn);box-shadow:0 0 8px var(--warn)}.status[data-tone=error] .status-led,.status.error .status-led{background:var(--danger);box-shadow:0 0 8px var(--danger)}.status[data-tone=busy] .status-led{animation:1s ease-in-out infinite led-pulse}.status[data-tone=ok]{justify-content:center;width:32px;padding:0}.status[data-tone=ok] .status-text{display:none}.status-text{text-overflow:ellipsis;max-width:120px;overflow:hidden}.demo-tag{border-radius:var(--r-s);border:1px solid var(--accent-line);min-height:32px;color:var(--accent-2);font:600 11px/1 var(--font-mono);letter-spacing:.12em;background:var(--accent-soft);align-items:center;padding:0 10px;text-decoration:none;display:inline-flex}.content{min-width:0;padding:6px var(--gutter) calc(var(--tabbar-space) + 28px)}.screen-motion{animation:screen-in .26s var(--ease-out) both}.app-tabs{z-index:40;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));width:min(100% - 28px,440px);height:var(--tabbar-h);border-radius:var(--r-l);background:var(--glass);-webkit-backdrop-filter:blur(26px)saturate(180%);backdrop-filter:blur(26px)saturate(180%);border:1px solid var(--line-2);box-shadow:var(--shadow-float), inset 0 1px 0 #ffffff0f;grid-template-columns:repeat(3,minmax(0,1fr));padding:7px;display:grid;position:fixed;transform:translate(-50%)}.app-tabs:before{content:"";border-radius:var(--r-l);width:calc(33.3333% - 4.66667px);transform:translateX(calc(var(--tab-index,0) * 100%));transition:transform .38s var(--ease-spring);background:#ffffff14;position:absolute;top:7px;bottom:7px;left:7px;box-shadow:inset 0 1px #ffffff0f}.app-tab{z-index:1;border-radius:var(--r-l);min-width:0;color:var(--text-3);letter-spacing:0;transition:color .2s var(--ease-out);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:500;display:flex;position:relative}.app-tab svg{stroke-width:1.7px;width:24px;height:24px;transition:transform .24s var(--ease-spring)}.app-tab.active{color:var(--text)}.app-tab.active svg{filter:drop-shadow(0 0 7px #ffffff59)}.app-tab:active svg{transform:scale(.86)}.app-tab-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen-heading{justify-content:space-between;align-items:flex-end;gap:12px;min-height:44px;margin:8px 0 22px;display:flex}.screen-title{letter-spacing:-.035em;margin:0;font-size:34px;font-weight:650;line-height:1.05}.screen-heading p,.screen-subtitle{color:var(--text-2);margin:6px 0 0;font-size:14px}.screen-heading-actions{gap:8px;display:flex}.section-label,.eyebrow{color:var(--text-3);letter-spacing:.02em;margin:0 0 10px;font-size:12px;font-weight:500;display:block}.section{margin-top:32px}.btn{border:1px solid var(--line-2);border-radius:var(--r-m);background:var(--bg-2);min-height:48px;color:var(--text);letter-spacing:-.01em;transition:transform .14s var(--ease-press), background .16s, border-color .16s, box-shadow .2s;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:550;text-decoration:none;display:inline-flex}.btn:not(:disabled):active{background:var(--bg-3);transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--glow);border-color:#0000}.btn-primary:not(:disabled):active{filter:brightness(1.12)}.btn-white,.btn-secondary{background:var(--text);color:#000;border-color:#0000}.btn-secondary:not(:disabled):active,.btn-white:not(:disabled):active{background:#cfcfcf}.btn-quiet{background:0 0;border-color:#0000}.btn-danger,.btn.journal-delete{border-color:rgb(var(--danger-rgb) / 36%);background:rgb(var(--danger-rgb) / 9%);color:var(--danger)}.btn-yellow{background:var(--text);color:#000}.btn.full,.full{width:100%}.btn-small{border-radius:var(--r-s);min-height:36px;padding:0 12px;font-size:13px}.icon-btn{width:var(--tap);height:var(--tap);min-width:var(--tap);color:var(--text-2);transition:transform .14s var(--ease-press), background .16s, color .16s;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn:not(:disabled):active{background:var(--bg-3);transform:scale(.9)}.icon-btn.filled{background:var(--bg-2);border:1px solid var(--line);color:var(--text)}.icon-btn.active{color:var(--accent)}.text-link{min-height:36px;color:var(--text-2);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.text-link:not(:disabled):active{opacity:.6}.text-link.accent{color:var(--accent-2)}.panel,.card{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);padding:18px;position:relative}.panel h3,.card h3{margin-bottom:6px}.panel p:last-child{margin-bottom:0}.list{border:1px solid var(--line);border-radius:var(--r-l);background:var(--bg-1);overflow:hidden}.list-row{width:100%;min-height:56px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:12px 16px;font-size:15px;text-decoration:none;transition:background .14s;display:flex}.list-row+.list-row,.list>*+*{box-shadow:inset 0 1px 0 var(--line)}button.list-row:not(:disabled):active,a.list-row:active{background:var(--bg-3)}.list-row>svg:first-child{color:var(--text-2)}.list-row-value{color:var(--text-3);margin-left:auto;font-size:14px}.list-row .chev{color:var(--text-3)}.notice{border:1px solid var(--line-2);border-radius:var(--r-m);background:var(--bg-1);color:var(--text-2);align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;font-size:14px;line-height:1.45;display:flex}.notice>*{margin:0}.notice.row-between{align-items:center}.notice.danger{border-color:rgb(var(--danger-rgb) / 36%);background:rgb(var(--danger-rgb) / 9%);color:#ffc9a6}.notice.warning{color:#ffd99a;background:#ffb22414;border-color:#ffb2244d}.notice .text-link{color:var(--text);min-height:28px;margin-left:auto}.notice blockquote{margin:6px 0}.field{color:var(--text-2);gap:8px;font-size:13px;font-weight:500;display:grid}.field>span:first-child{color:var(--text-2)}.field input,.field textarea,.field select,.searchbox input,input.input{border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--bg-2);width:100%;min-height:50px;color:var(--text);outline:none;padding:0 14px;font-size:16px;font-weight:450;transition:border-color .16s,box-shadow .16s,background .16s}.field textarea{resize:vertical;min-height:104px;padding:13px 14px;line-height:1.5}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px}.field input:focus,.field textarea:focus,.field select:focus,.searchbox input:focus{border-color:var(--line-3);background:var(--bg-3);box-shadow:0 0 0 4px #ffffff0d}.field small{color:var(--text-3);font-weight:400}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.checkbox{min-height:44px;color:var(--text);align-items:center;gap:10px;display:flex}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:20px;height:20px}input[type=file]{color:var(--text-2);font-size:14px}.searchbox{display:block;position:relative}.searchbox>svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.searchbox input{border-radius:var(--r-m);background:var(--bg-2);appearance:none;border-color:#0000;padding-left:42px}.searchbox input::-webkit-search-cancel-button{filter:grayscale()brightness(1.6)}.switch{flex:none;width:51px;height:31px;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch span{border-radius:var(--r-s);background:var(--bg-4);transition:background .22s var(--ease-out);position:absolute;inset:0}.switch span:after{content:"";border-radius:var(--r-xs);background:var(--text);width:27px;height:27px;transition:transform .26s var(--ease-spring);position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #0006}.switch input:checked+span{background:var(--fill-gold);image-rendering:pixelated;box-shadow:var(--glow-soft)}.switch input:checked+span:after{background:var(--accent-ink);transform:translate(20px)}.switch input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}.switch input:disabled+span{opacity:.4}.segmented{border-radius:var(--r-l);background:var(--bg-2);border:1px solid var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin-bottom:20px;padding:3px;display:grid;position:relative}.segmented>button{border-radius:var(--r-l);min-height:36px;color:var(--text-2);transition:background .2s var(--ease-out), color .2s;background:0 0;border:0;padding:0 10px;font-size:14px;font-weight:550}.segmented>button[aria-selected=true],.segmented>button[aria-pressed=true],.segmented>button.active{background:var(--bg-4);color:var(--text);box-shadow:inset 0 1px #ffffff0f,0 4px 14px #00000080}.filter-row{scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter);align-items:center;gap:8px;display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-2);border-radius:var(--r-s);min-height:34px;color:var(--text-2);transition:background .16s, color .16s, border-color .16s, transform .14s var(--ease-press);background:0 0;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:550;display:inline-flex}.chip:active{transform:scale(.95)}.chip.active,.chip[aria-pressed=true]{background:var(--text);border-color:var(--text);color:#000}.tag{border-radius:var(--r-s);background:var(--bg-3);min-height:22px;color:var(--text-2);letter-spacing:.02em;align-items:center;gap:5px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.tag.red,.tag.accent{background:var(--accent-soft);color:var(--accent-2)}.stack{gap:14px;display:grid}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.accent{color:var(--accent-2)}.num,.tabular{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.chroma{text-shadow:-.035em 0 var(--chroma-a), .035em 0 var(--chroma-b)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;border-radius:var(--r-s);background:var(--text);color:#000;padding:10px 14px;font-weight:600;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.divider{color:var(--text-3);letter-spacing:.04em;align-items:center;gap:12px;margin:6px 0;font-size:12px;font-weight:500;display:flex}.divider:before,.divider:after{content:"";background:var(--line-2);flex:1;height:1px}.dither{isolation:isolate;position:relative}.dither:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(120% 90% at 50% 0%, rgb(var(--accent-rgb) / 55%), rgb(var(--accent-rgb) / 8%) 55%, transparent 75%);pointer-events:none;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#000 .75px,#0000 1.05px) 0 0/3px 3px;mask:radial-gradient(circle,#000 .75px,#0000 1.05px) 0 0/3px 3px}.grain:after{content:"";border-radius:inherit;background-image:var(--noise);opacity:.07;mix-blend-mode:overlay;pointer-events:none;position:absolute;inset:0}.scanlines:after{content:"";border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(#ffffff09 0 1px,#0000 1px 3px);position:absolute;inset:0}.avatar{background:var(--bg-3);border:1px solid var(--line-2);width:40px;height:40px;color:var(--text);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.exercise-art{border-radius:var(--r-l);background:var(--bg-2);border:1px solid var(--line);flex:none;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.exercise-art img{object-fit:contain;width:120%;max-width:none;height:120%}.empty-functional,.empty{color:var(--text-3);text-align:center;justify-items:center;gap:10px;padding:48px 20px;font-size:15px;display:grid}.empty-functional>svg,.empty>svg{color:var(--text-3)}.empty-functional p,.empty p{margin:0}.onboarding{max-width:440px;min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.onboarding>.app-brand,.onboarding>a>.app-brand{margin-bottom:8px}.onboarding .btn{width:100%}.auth-hero{text-align:left;margin:12px 0 18px;position:relative}.auth-mark{height:190px;font:700 64px/1 var(--font-mono);letter-spacing:.14em;text-indent:.14em;color:var(--text);text-shadow:-2px 0 var(--chroma-a), 2px 0 var(--chroma-b), 0 0 40px #ffffff2e;place-items:center;margin:0 -24px 22px;display:grid}.auth-mark:before{background:radial-gradient(closest-side, rgb(var(--accent-rgb) / 75%), rgb(var(--accent-rgb) / 10%) 70%, transparent)}.auth-hero h1{letter-spacing:-.04em;margin:0 0 10px;font-size:40px}.auth-hero p{color:var(--text-2);margin:0;font-size:16px}.login-panel,.login-panel form{gap:14px;display:grid}.login-panel .screen-title{margin-bottom:4px;font-size:28px}.demo-entry{text-align:center;margin-top:12px}.demo-entry .text-link{color:var(--text-2);padding:12px;font-size:13px;font-weight:400;display:inline-block}.legal-note{color:var(--text-3);font-size:13px}.splash{justify-content:center;align-items:center;gap:18px}.splash .app-brand{font-size:22px}.splash-text{color:var(--text-3);margin:0;font-size:14px;animation:1.4s ease-in-out infinite led-pulse}.sync-hero{margin:0 calc(var(--gutter) * -1) 6px;padding:30px var(--gutter) 18px;text-align:center;justify-items:center;gap:10px;display:grid}.sync-hero:before{background:radial-gradient(40% 70% at 50% 30%,#ffffff4d,#0000 75%)}.sync-hero[data-tone=error]:before,.sync-hero[data-tone=warn]:before{background:radial-gradient(40% 70% at 50% 30%, rgb(var(--accent-rgb) / 55%), transparent 75%)}.sync-orb{border:1px solid var(--line-2);background:var(--bg-1);width:76px;height:76px;color:var(--text);border-radius:50%;place-items:center;margin-bottom:8px;display:grid}.sync-hero[data-tone=busy] .sync-orb svg{animation:1.2s linear infinite spin}.sync-state{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:600}.sync-detail{max-width:320px;color:var(--text-3);margin:0;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.update-notice{border-color:var(--line-3)}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes led-pulse{50%{opacity:.3}}@keyframes rgb-split{0%,to{text-shadow:-.035em 0 var(--chroma-a), .035em 0 var(--chroma-b);transform:none}20%{text-shadow:-.12em 0 var(--chroma-a), .12em 0 var(--chroma-b);transform:translate(-1px)skew(-4deg)}40%{text-shadow:.08em 0 var(--chroma-a), -.08em 0 var(--chroma-b);transform:translate(1px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.stagger>*{animation:fade-up .42s var(--ease-out) both}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(n+6){animation-delay:.2s}@media (width>=700px){:root{--gutter:28px}}@media (width<=359px){:root{--gutter:16px}.screen-title{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :before,:root[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.app-brand{text-shadow:none;gap:0;font-size:0}.app-brand .rec-dot{display:none}.brand-logo{--logo-w:84px;width:var(--logo-w);aspect-ratio:680/151;isolation:isolate;display:block;position:relative}.brand-logo i{position:absolute;inset:0;-webkit-mask:url(/grimoire/logo.png) 50%/contain no-repeat;mask:url(/grimoire/logo.png) 50%/contain no-repeat}.brand-logo i:first-child{background:repeating-linear-gradient(0deg, #0000004d 0 1px, transparent 1px 3px), linear-gradient(180deg, var(--gold-5), #e0bd6c 55%, #a87c2e)}.brand-logo i:nth-child(2){z-index:-1;opacity:.55;background:#8fe3f0;animation:4.2s step-end infinite glitch-a;transform:translate(1.4px)}.brand-logo i:nth-child(3){z-index:-1;opacity:.6;background:#ff9f2e;animation:4.2s step-end infinite glitch-b;transform:translate(-1.4px)}.splash .brand-logo,.onboarding>a .brand-logo,.onboarding>.app-brand .brand-logo{--logo-w:120px}.auth-mark .brand-logo{--logo-w:min(300px, 78vw)}html :is(.screen-title,.journal-date-toggle h1,.logger-hero h1,.stats-month h2,.stats-section-title h2,.sheet-title,.settings-page-title,.routine-empty-title,.community-empty h3,.badge-inspector-title,.member-hero-name,.mcp-client-heading h2,.movement-heading h1,.screen-header.large-title h2,.auth-hero h1){font-family:var(--font-title);font-synthesis:style;text-transform:uppercase;letter-spacing:-.02em;color:#f4dc9c;text-shadow:-.05em 0 var(--chroma-a), .05em 0 var(--chroma-b);overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;font-style:italic;font-weight:900;font-stretch:125%;animation:7s step-end infinite title-glitch}html :is(.screen-title,.settings-page-title){font-size:clamp(26px,8vw,32px)}.section-label,.eyebrow{color:var(--accent);font:500 11px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.section-label:not(.num):before,.eyebrow:before{content:"";vertical-align:1px;clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;width:5px;height:7px;margin-right:8px;display:inline-block}.demo-tag{border-radius:var(--r-s);color:var(--accent-2)}.status{border-radius:var(--r-s)}.app-shell,.onboarding{isolation:isolate;position:relative}.screen-art{z-index:-1;width:min(480px,100%);height:780px;image-rendering:pixelated;opacity:.42;pointer-events:none;-webkit-mask-composite:source-in;animation:art-in .9s var(--ease-out) both;background:top/480px no-repeat;position:absolute;top:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 30%,#0000 82%),linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(#000 30%,#0000 82%),linear-gradient(90deg,#0000,#000 14% 86%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.screen-art[data-art=journal]{background-image:url(/grimoire/bg-journal.png)}.screen-art[data-art=stats]{background-image:url(/grimoire/bg-stats.png)}.screen-art[data-art=profile]{background-image:url(/grimoire/bg-profile.png)}.screen-art[data-art=routines],.screen-art[data-art=community]{opacity:.55;height:300px}.screen-art[data-art=routines]{background-image:url(/grimoire/bg-routines.png)}.screen-art[data-art=community]{background-image:url(/grimoire/bg-community.png)}.screen-art[data-art=login]{opacity:.5;background-image:url(/grimoire/bg-login.png);height:860px}body:after{content:"";z-index:1000;pointer-events:none;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}body:before{content:"";z-index:1000;pointer-events:none;background:linear-gradient(#0000,#ffe1a00a 45%,#8fe3f008 55%,#0000);height:80px;animation:9s linear infinite tracking;position:fixed;top:-90px;left:0;right:0}.dither:before{-webkit-mask:conic-gradient(#000 25%, transparent 0 50%, #000 0 75%, transparent 0) 0 0 / 2px 2px;-webkit-mask:conic-gradient(#000 25%, transparent 0 50%, #000 0 75%, transparent 0) 0 0 / 2px 2px;mask:conic-gradient(#000 25%, transparent 0 50%, #000 0 75%, transparent 0) 0 0 / 2px 2px}.checker{--ck:rgb(var(--accent-rgb) / 22%);background:conic-gradient(var(--ck) 25%, transparent 0 50%, var(--ck) 0 75%, transparent 0) 0 0 / 4px 4px}html :is(.card,.panel,.list,.swipe-content,.stepper,.logger-context,.logger-note,.feed-card,.session-hero,.score-formula,.stat-tiles>div,.stats-date-row,.stats-volume,.stats-exercise-select,.admin-card,.push-card,.invite-link-card,.settings-locked){background:var(--frost);-webkit-backdrop-filter:var(--frost-filter);backdrop-filter:var(--frost-filter)}.swipe-main :is(.exercise-card,.routine-item){background:0 0}.app-tabs{box-shadow:var(--shadow-float);background:#050403eb;border-radius:24px}.app-tabs:before{background:conic-gradient(rgb(var(--accent-rgb) / 24%) 25%, transparent 0 50%, rgb(var(--accent-rgb) / 24%) 0 75%, transparent 0) 0 0 / 4px 4px;box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / 28%);border-radius:17px}.app-tabs[data-active=false]:before{opacity:0}.app-tab{border-radius:17px;gap:2px}.app-tab.active{color:var(--gold-5)}.app-tab-art{width:40px;height:40px;image-rendering:pixelated;opacity:.42;filter:saturate(.5);transition:opacity .22s var(--ease-out), filter .22s var(--ease-out), transform .24s var(--ease-spring);background:50%/40px 40px no-repeat}.app-tab-art[data-art=journal]{background-image:url(/grimoire/tab-journal.png)}.app-tab-art[data-art=stats]{background-image:url(/grimoire/tab-stats.png)}.app-tab-art[data-art=community]{background-image:url(/grimoire/tab-community.png)}.app-tab.active .app-tab-art{opacity:1;filter:drop-shadow(0 0 8px rgb(var(--accent-rgb) / 45%))}.app-tab:active .app-tab-art{transform:scale(.88)}.app-tab-label{clip:auto;width:auto;height:auto;font:500 9px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;position:static;overflow:visible}.topbar-profile{border:1px solid var(--line-2);background:var(--bg-1);width:32px;height:32px;color:var(--text-2);font:600 11px/1 var(--font-mono);letter-spacing:.04em;border-radius:50%;place-items:center;padding:0;transition:box-shadow .2s,color .2s;display:grid;overflow:hidden}.topbar-profile img{object-fit:cover;width:100%;height:100%}.topbar-profile.active{color:var(--gold-5);border-color:var(--gold-4);box-shadow:0 0 14px rgb(var(--accent-rgb) / 40%)}.topbar-profile:not(:disabled):active{transform:scale(.92)}.btn{font:600 12.5px/1.2 var(--font-mono);letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;border-color:var(--line-2);background:var(--bg-1)}.btn-small{font-size:11px}.btn-white,.btn-secondary,.btn-yellow{border-color:rgb(var(--accent-rgb) / 45%);background:rgb(var(--accent-rgb) / 8%);color:var(--gold-5)}.btn-secondary:not(:disabled):active,.btn-white:not(:disabled):active{background:rgb(var(--accent-rgb) / 16%)}.btn-primary{isolation:isolate;box-shadow:none;color:var(--gold-5);font:700 13px/1.2 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;text-shadow:1px 0 #000,-1px 0 #000,0 1px #000,0 -1px #000,0 0 12px #000;background:0 0;border:0;position:relative}.btn-primary svg{filter:drop-shadow(0 0 2px #000)}.btn-primary:not(:disabled):active{background:0 0;transform:scale(.985)}.btn-primary:disabled{opacity:.55}.cta-dither{z-index:-1;width:100%;height:100%;image-rendering:pixelated;clip-path:polygon(13px 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%,0 13px);pointer-events:none;background:linear-gradient(#4a3714,#1c1407);position:absolute;inset:0}.cta-sparks{z-index:3;pointer-events:none;width:calc(100% + 28px);height:calc(100% + 30px);position:absolute;bottom:0;left:-14px;right:-14px}.btn-primary:before,.btn-primary:after{content:"";z-index:-2;opacity:0;clip-path:polygon(13px 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%,0 13px);pointer-events:none;position:absolute;inset:0}.btn-primary:before{background:#8fe3f0;transform:translate(3px)}.btn-primary:after{background:#ff9f2e;transform:translate(-3px)}.btn-primary.cta-glitch:before,.btn-primary.cta-glitch:after{opacity:.5}.chip[aria-pressed=true]{background:var(--fill-gold);image-rendering:pixelated;color:var(--accent-ink);border-color:#0000}.icon-btn.filled{border-radius:var(--r-s);border-color:var(--line-2)}.chip,.tag{border-radius:var(--r-xs);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.segmented{border-radius:var(--r-s)}.segmented>button{border-radius:var(--r-xs);font:500 11px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.segmented>button.active{color:var(--gold-5);background:conic-gradient(rgb(var(--accent-rgb) / 24%) 25%, transparent 0 50%, rgb(var(--accent-rgb) / 24%) 0 75%, transparent 0) 0 0 / 4px 4px;box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / 45%)}@keyframes glitch-a{0%{clip-path:none;transform:translate(1.4px)}88%{clip-path:inset(18% 0 58%);transform:translate(-6px)}90%{clip-path:inset(62% 0 8%);transform:translate(5px)}92%{clip-path:none;transform:translate(1.4px)}96%{clip-path:inset(40% 0 44%);transform:translate(-4px)}97%{clip-path:none;transform:translate(1.4px)}}@keyframes glitch-b{0%{clip-path:none;transform:translate(-1.4px)}88%{clip-path:inset(55% 0 20%);transform:translate(6px)}90%{clip-path:inset(10% 0 70%);transform:translate(-5px)}92%{clip-path:none;transform:translate(-1.4px)}96%{clip-path:inset(20% 0 66%);transform:translate(5px)}97%{clip-path:none;transform:translate(-1.4px)}}@keyframes title-glitch{0%,93%,to{text-shadow:-.05em 0 var(--chroma-a), .05em 0 var(--chroma-b);transform:none}94%{text-shadow:-.16em 0 var(--chroma-a), .12em 0 var(--chroma-b);transform:translate(1px)}95%{text-shadow:.1em 0 var(--chroma-a), -.14em 0 var(--chroma-b);transform:translate(-2px)}}@keyframes tracking{to{top:110%}}@keyframes art-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){body:before{display:none}}:root[data-reduced-motion=true] body:before{display:none}@keyframes cursor-blink{50%{opacity:0}}img[src^="/exercises/"]{filter:hue-rotate(48deg)saturate(.78)brightness(1.04)}.exercise-art img[src^="/workout-guide/"]{filter:none;width:100%;height:100%}
