.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}:root{--scroll-lock-gap: 0px;color-scheme:dark;scrollbar-color:var(--ink-muted) transparent;--ground: #0f1012;--raised: #191a1e;--ink: #edebe6;--ink-muted: #95918a;--rule: #2a2b31;--obi: #e0666a;--obi-ink: #0f1012;--plate: #191a1e;--met: #5fa97c;--short: #95918a;--overdue: #e0666a;--pending: #c9a227;--failed: #e0666a;--accolade: #c9a227;--sheen: #383940;--sheen-width: 12rem;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-data: ui-monospace, SFMono-Regular, Menlo, monospace;--t-display: 2rem;--t-display-lh: 1.15;--t-heading: 1.25rem;--t-heading-lh: 1.3;--t-body: 1rem;--t-body-lh: 1.6;--t-small: .875rem;--t-small-lh: 1.5;--t-label: .6875rem;--t-label-lh: 1;--t-label-tracking: .1em;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--radius: 10px;--radius-sm: 4px;--measure: 65ch;--tap-min: 44px;--tap-floor: 24px;--focus-ring: 2px solid var(--obi)}:root[data-theme=light]{color-scheme:light;--ground: #fbfaf7;--raised: #ffffff;--ink: #17171b;--ink-muted: #6e6a62;--rule: #e4e1d9;--plate: #fbfaf7;--obi: #b3272d;--obi-ink: #ffffff;--met: #2e7d51;--short: #6e6a62;--overdue: #b3272d;--pending: #8a6d00;--failed: #b3272d;--accolade: #8a6d00;--sheen: #f7f5f0}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;touch-action:manipulation}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-ui);font-size:var(--t-body);line-height:var(--t-body-lh);-webkit-text-size-adjust:100%}a,button,input,select,textarea{font:inherit;color:inherit}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.figure,.tabular{font-family:var(--font-data);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.eyebrow{font-size:var(--t-label);line-height:var(--t-label-lh);font-weight:600;letter-spacing:var(--t-label-tracking);text-transform:uppercase;color:var(--ink-muted)}.shimmer{background-color:var(--rule);background-image:linear-gradient(90deg,transparent,var(--sheen),transparent);background-size:var(--sheen-width) 100%;background-repeat:no-repeat;background-position:calc(-1 * var(--sheen-width)) 0;animation:shimmer-sweep 1.5s ease-in-out infinite}@keyframes shimmer-sweep{to{background-position:calc(100% + var(--sheen-width)) 0}}.sk-bar{display:block;border-radius:var(--radius-sm)}.sk-group{animation:sk-appear .2s ease-out .15s both}@keyframes sk-appear{0%{opacity:0}}.shimmer-reveal{animation:shimmer-reveal .2s ease-out}@keyframes shimmer-reveal{0%{opacity:0}}.try-again{min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-5);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-small);font-weight:600;cursor:pointer}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.app-sync-state-mark .mark--landed,.app-sync-state-mark .mark--landed .knot-tail{animation:none!important}}.app-root .shell-main{padding-bottom:0}@media(max-width:1023px){.app-root:not(.signed-out):not(.modal-route) .shell-main{padding-bottom:68px}.app-root.modal-route app-primary-nav{display:none}}@media(min-width:1024px){.app-root:not(.signed-out){display:grid;grid-template-columns:13.5rem 1fr;grid-template-areas:"nav main";min-height:100%}.app-root app-primary-nav{grid-area:nav}.app-root .shell-main{grid-area:main}}.app-root .signing-in-line{max-width:var(--measure);margin:var(--s-6) auto 0;text-align:center;color:var(--ink-muted)}.app-splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);height:100dvh;padding:var(--s-5);text-align:center}.app-splash-mark{color:var(--obi)}.app-splash-word{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600;color:var(--ink)}.app-splash .signing-in-line{margin:0;max-width:none}.app-turnstile-widget{display:block;min-height:var(--tap-min);min-width:var(--tap-min)}.app-curriculum-browse-page .curriculum-browse-page{max-width:40rem;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6)}.app-curriculum-browse-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.app-curriculum-browse-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-curriculum-browse-page .level-tabs{display:flex;border-bottom:1px solid var(--rule);margin-bottom:var(--s-4)}.app-curriculum-browse-page .level-tabs button{min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--s-3) 0;margin-right:var(--s-5);border:none;border-bottom:2px solid transparent;background:transparent;color:var(--ink-muted);font-size:.9375rem;cursor:pointer}.app-curriculum-browse-page .level-tabs button[aria-selected=true]{color:var(--ink);font-weight:600;border-bottom-color:var(--obi)}.app-curriculum-browse-page .recall-strip{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-4);margin-bottom:var(--s-4)}.app-curriculum-browse-page .recall-heading{display:flex;align-items:baseline;gap:var(--s-2)}.app-curriculum-browse-page .recall-label{font-size:.9375rem;font-weight:600}.app-curriculum-browse-page .recall-percentage{font-family:var(--font-data);font-size:1.625rem;font-variant-numeric:tabular-nums}.app-curriculum-browse-page .recall-detail{margin:2px 0 var(--s-3);color:var(--ink-muted);font-size:.8125rem}.app-curriculum-browse-page .progress-bar{position:relative;height:6px;background:var(--rule);border-radius:3px;overflow:visible}.app-curriculum-browse-page .progress-fill{height:100%;background:var(--obi);border-radius:3px}.app-curriculum-browse-page .progress-threshold{position:absolute;left:90%;top:-3px;width:2px;height:12px;background:var(--ink-muted)}.app-curriculum-browse-page .search-field{display:flex;flex-direction:column;gap:var(--s-1);margin:0 0 var(--s-4)}.app-curriculum-browse-page .search-field input{min-height:var(--tap-min);padding:var(--s-1) var(--s-2);background:var(--ground);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-sm)}.app-curriculum-browse-page .category-rail{display:flex;gap:var(--s-2);overflow-x:auto;margin-bottom:var(--s-4)}.app-curriculum-browse-page .category-rail button{min-height:var(--tap-min);height:40px;padding:0 var(--s-4);border-radius:var(--radius);border:1px solid var(--rule);background:var(--raised);color:var(--ink);font-size:.875rem;cursor:pointer;flex-shrink:0}.app-curriculum-browse-page .category-rail button[aria-selected=true]{background:var(--obi);border-color:var(--obi);color:var(--obi-ink);font-weight:600}.app-curriculum-browse-page .category-group{margin-bottom:var(--s-5)}.app-curriculum-browse-page .category-group .eyebrow{margin:0 0 var(--s-2)}.app-curriculum-browse-page .technique-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.app-curriculum-browse-page .technique-list>li{display:flex;align-items:center;gap:var(--s-3);padding:14px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-curriculum-browse-page .technique-main{flex:1;min-width:0}.app-curriculum-browse-page .japanese-name{display:block;font-family:var(--font-display);font-size:1.125rem;color:var(--ink)}.app-curriculum-browse-page .technique-main:has(.japanese-name) .name{display:block;margin-top:1px;font-size:.8125rem;color:var(--ink-muted)}.app-curriculum-browse-page .routine-strikes{display:block;list-style:none;margin:2px 0 0;padding:0;font-size:.8125rem;color:var(--ink-muted)}.app-curriculum-browse-page .routine-strikes li{display:inline}.app-curriculum-browse-page .routine-strikes li+li:before{content:" \2192  "}.app-curriculum-browse-page .search-meta{display:block;margin-top:1px;color:var(--ink-muted);font-size:.75rem}.app-curriculum-browse-page .search-meta .level-label:after{content:" \b7  "}.app-curriculum-browse-page .marker{flex-shrink:0;font-size:var(--t-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.app-curriculum-browse-page .marker-recalled{color:var(--met)}.app-curriculum-browse-page .marker-learning{color:var(--pending)}.app-curriculum-browse-page .marker-not-drillable{font-style:italic;font-weight:400;letter-spacing:normal;text-transform:lowercase;color:var(--ink-muted)}.app-curriculum-browse-page .retry-button{min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius-sm);background:none;color:var(--ink);font-size:var(--t-small);font-weight:600;cursor:pointer}.app-curriculum-browse-page .start-drill-link{display:flex;width:100%;min-width:var(--tap-min);min-height:var(--tap-min);height:52px;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:1rem;font-weight:600;text-decoration:none;margin-top:var(--s-4);box-sizing:border-box}.app-curriculum-browse-page .sk-recall-heading{display:flex;align-items:center;gap:var(--s-2);height:2.6rem}.app-curriculum-browse-page .sk-recall-label{width:3.75rem;height:15px}.app-curriculum-browse-page .sk-recall-figure{width:3.25rem;height:22px}.app-curriculum-browse-page .sk-line-detail{display:flex;align-items:center;height:1.3rem;margin:2px 0 var(--s-3)}.app-curriculum-browse-page .sk-recall-detail{width:62%;height:11px}.app-curriculum-browse-page .sk-track{height:6px;border-radius:3px}.app-curriculum-browse-page .sk-chip{flex-shrink:0;height:var(--tap-min);border-radius:var(--radius)}.app-curriculum-browse-page .sk-chip:nth-child(2){width:4.25rem}.app-curriculum-browse-page .sk-chip:nth-child(3){width:12rem}.app-curriculum-browse-page .sk-chip:nth-child(4){width:7rem}.app-curriculum-browse-page .sk-eyebrow{width:3.5rem;height:var(--t-label);margin:0 0 var(--s-2)}.app-curriculum-browse-page .sk-line-primary{display:flex;align-items:center;height:1.8rem}.app-curriculum-browse-page .sk-line-secondary{display:flex;align-items:center;height:1.3rem;margin-top:1px}.app-curriculum-browse-page .sk-line-meta{display:flex;align-items:center;height:calc(.75rem * 1.6);margin-top:1px}.app-curriculum-browse-page .sk-primary{width:58%;height:15px}.app-curriculum-browse-page .sk-secondary{width:42%;height:10px}.app-curriculum-browse-page .sk-meta{width:34%;height:9px}.app-curriculum-browse-page .sk-marker{flex-shrink:0;width:3.5rem;height:9px}.app-curriculum-browse-page .technique-list>li:nth-child(3n+2) .sk-primary{width:46%}.app-curriculum-browse-page .technique-list>li:nth-child(3n+2) .sk-secondary{width:52%}.app-curriculum-browse-page .technique-list>li:nth-child(3n) .sk-primary{width:66%}.app-curriculum-browse-page .technique-list>li:nth-child(3n) .sk-secondary{width:36%}.app-drill-question-page{display:block;overflow:hidden;overflow:clip;overflow-clip-margin:4px}.app-drill-question-page .drill-question-page{position:relative;min-height:100dvh;display:flex;flex-direction:column;max-width:40rem;margin:0 auto;padding:var(--s-3) var(--s-4) var(--s-6)}.app-drill-question-page .drill-question-page:focus{outline:none}.app-drill-question-page .drill-question-page.is-celebrating{animation:dq-rumble .5s ease-out .2s}@keyframes dq-rumble{0%,to{transform:translate(0)}15%{transform:translate(-3px,2px)}30%{transform:translate(3px,-2px)}45%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}75%{transform:translate(-1px,1px)}}.app-drill-question-page .celebration{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.app-drill-question-page .stamp-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;animation:dq-stamp-fade 2.4s ease-in both}@keyframes dq-stamp-fade{0%,70%{opacity:1}to{opacity:0}}.app-drill-question-page .stamp-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--accolade) 35%,transparent),transparent 65%);animation:dq-flash 1.1s ease-out both}@keyframes dq-flash{0%{opacity:0}12%{opacity:1}to{opacity:0}}.app-drill-question-page .stamp{position:relative;font-family:var(--font-display);font-size:76px;font-weight:700;letter-spacing:-.02em;color:var(--accolade);text-shadow:0 4px 30px color-mix(in srgb,var(--ground) 80%,transparent);border:4px solid var(--accolade);border-radius:14px;padding:6px 30px 14px;background:color-mix(in srgb,var(--ground) 75%,transparent);animation:dq-stamp .7s cubic-bezier(.2,.9,.3,1.2) .15s both}@keyframes dq-stamp{0%{transform:scale(3) rotate(-10deg);opacity:0}55%{transform:scale(.94) rotate(2deg);opacity:1}75%{transform:scale(1.06) rotate(-1deg)}to{transform:scale(1) rotate(0)}}.app-drill-question-page .confetti{position:absolute;inset:0}.app-drill-question-page .confetti-piece{position:absolute;top:-12px;animation-name:dq-fall;animation-timing-function:cubic-bezier(.2,.7,.4,1);animation-fill-mode:both}@keyframes dq-fall{0%{transform:translateY(-12px) rotate(0);opacity:1}to{transform:translateY(330px) rotate(280deg);opacity:0}}.app-drill-question-page .confetti-piece--obi{background:var(--obi)}.app-drill-question-page .confetti-piece--accolade{background:var(--accolade)}.app-drill-question-page .confetti-piece--met{background:var(--met)}.app-drill-question-page .confetti-piece--ink{background:var(--ink)}.app-drill-question-page .topbar{display:flex;align-items:center;gap:var(--s-2)}.app-drill-question-page .close-button{width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);cursor:pointer;margin-left:calc(-1 * var(--s-3))}.app-drill-question-page .counter{font-size:var(--t-small)}.app-drill-question-page .streak-chip{margin-left:auto;font:600 11px var(--font-data);letter-spacing:.1em;color:var(--accolade);border:1px solid color-mix(in srgb,var(--accolade) 45%,transparent);border-radius:999px;padding:5px 10px;animation:dq-pop .35s cubic-bezier(.2,.8,.3,1)}@keyframes dq-pop{0%{transform:scale(.4)}60%{transform:scale(1.18)}to{transform:scale(1)}}.app-drill-question-page .progress-bar{display:flex;gap:var(--s-1);margin:var(--s-2) 0 var(--s-6)}.app-drill-question-page .segment{flex:1;height:4px;border-radius:var(--radius-sm);background:var(--rule)}.app-drill-question-page .segment--filled{background:var(--obi)}.app-drill-question-page .segment--correct{background:var(--met);animation:dq-pulse .7s ease-out}@keyframes dq-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--met) 55%,transparent)}to{box-shadow:0 0 0 8px color-mix(in srgb,var(--met) 0%,transparent)}}.app-drill-question-page .segment--wrong{background:var(--failed)}.app-drill-question-page .stage{flex:1;min-height:0;overflow-y:auto;padding:0 var(--s-1);margin:0 calc(-1 * var(--s-1))}.app-drill-question-page .heading-block{display:flex;flex-direction:column;text-align:center}.app-drill-question-page .technique-name{order:2;font-family:var(--font-display);font-size:2.125rem;font-weight:600;margin:0 0 var(--s-3)}.app-drill-question-page .prompt-drawing{width:100%;object-fit:contain}.app-drill-question-page .drawing-plate{order:2;position:relative;height:clamp(140px,32dvh,260px);margin:0 0 var(--s-3);padding:10px;background-color:var(--plate);box-shadow:inset 0 0 0 1px var(--rule);border-radius:var(--radius)}.app-drill-question-page .drawing-plate.shimmer{--sheen-width: 20rem;background-color:var(--plate);background-image:linear-gradient(90deg,transparent,var(--rule),transparent)}.app-drill-question-page .drawing-plate .technique-name{height:100%;margin:0}.app-drill-question-page .drawing-plate .prompt-drawing{display:block;height:100%;opacity:0;transition:opacity .2s ease-out}.app-drill-question-page .drawing-plate--ready .prompt-drawing{opacity:1}.app-drill-question-page .drawing-plate--failed .prompt-drawing{visibility:hidden}.app-drill-question-page .plate-failure{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);text-align:center}.app-drill-question-page .plate-failure .icon{color:var(--ink-muted)}.app-drill-question-page .plate-failure-title{margin:0;font-size:1.0625rem;font-weight:600;color:var(--ink)}.app-drill-question-page .scope-label{order:1;margin:0 0 var(--s-3)}.app-drill-question-page .secondary-prompt{text-align:center;font-size:var(--t-small);color:var(--ink-muted);margin:0 0 var(--s-5)}.app-drill-question-page .options{list-style:none;margin:0 0 var(--s-3);padding:0;display:grid;gap:var(--s-2)}.app-drill-question-page .option{width:100%;min-width:var(--tap-min);min-height:52px;display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);color:var(--ink);font-size:.9375rem;cursor:pointer;text-align:left}.app-drill-question-page .option--display{font-family:var(--font-display)}.app-drill-question-page .option--selected{border-color:var(--obi)}.app-drill-question-page .option--pending{border-color:var(--obi);animation:dq-pending-pulse 1.1s ease-in-out infinite}@keyframes dq-pending-pulse{0%,to{opacity:1}50%{opacity:.6}}.app-drill-question-page .option--disabled{cursor:default}.app-drill-question-page .option-badge{flex-shrink:0;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--rule);color:var(--ink-muted);font-size:var(--t-label);display:flex;align-items:center;justify-content:center}.app-drill-question-page .option--correct{border-color:var(--met);background:color-mix(in srgb,var(--met) 10%,transparent)}.app-drill-question-page .option--wrong{border-color:var(--failed);background:color-mix(in srgb,var(--failed) 10%,transparent);animation:dq-shake .45s ease}@keyframes dq-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.app-drill-question-page .option--revealed{border-style:dashed;border-color:color-mix(in srgb,var(--met) 70%,transparent)}.app-drill-question-page .option--correct .option-badge,.app-drill-question-page .option--wrong .option-badge,.app-drill-question-page .option--revealed .option-badge{animation:dq-pop .4s cubic-bezier(.2,.8,.3,1)}.app-drill-question-page .option--correct .option-badge{background:var(--met);color:var(--obi-ink)}.app-drill-question-page .option--wrong .option-badge{background:var(--failed);color:var(--obi-ink)}.app-drill-question-page .option--revealed .option-badge{background:color-mix(in srgb,var(--met) 25%,transparent);color:var(--met)}.app-drill-question-page .combo-strip{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;gap:var(--s-2);list-style:none;margin:0 0 var(--s-4);padding:var(--s-2);min-height:52px;border:1px dashed var(--rule);border-radius:var(--radius)}.app-drill-question-page .combo-strip-empty{font-size:var(--t-small);color:var(--ink-muted)}.app-drill-question-page .strike-pool{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-2);list-style:none;margin:0 0 var(--s-4);padding:0;min-height:44px}.app-drill-question-page .strike-pool-empty{font-size:var(--t-small);color:var(--ink-muted)}.app-drill-question-page .combo-chip,.app-drill-question-page .strike-chip{display:flex;align-items:center;gap:6px;min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--s-4);border-radius:999px;font-size:.9375rem;font-weight:600;cursor:pointer}.app-drill-question-page .strike-chip{border:1px solid var(--rule);background:var(--raised);color:var(--ink)}.app-drill-question-page .combo-chip{border:1px solid var(--rule);background:color-mix(in srgb,var(--obi) 10%,transparent);color:var(--ink)}.app-drill-question-page .combo-chip--correct{border-color:var(--met);background:color-mix(in srgb,var(--met) 10%,transparent);animation:dq-hit .4s cubic-bezier(.2,.8,.3,1) both}@keyframes dq-hit{0%{transform:scale(1)}30%{transform:scale(1.12)}to{transform:scale(1)}}.app-drill-question-page .combo-chip--wrong{border-color:var(--failed);background:color-mix(in srgb,var(--failed) 10%,transparent);animation:dq-shake .45s ease}.app-drill-question-page .combo-chip-ordinal{font-size:12px;color:var(--ink-muted)}.app-drill-question-page .combo-chip--correct .combo-chip-ordinal{color:var(--met)}.app-drill-question-page .combo-chip--wrong .combo-chip-ordinal{color:var(--failed)}.app-drill-question-page .combo-chip-mark{font-size:13px}.app-drill-question-page .combo-chip--compact,.app-drill-question-page .strike-chip--compact{min-height:36px;min-width:36px;padding:0 11px;font-size:13px;gap:4px}.app-drill-question-page .combo-answer{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center;list-style:none;margin:0 0 var(--s-3);padding:0}.app-drill-question-page .combo-answer li{font-size:var(--t-small);color:var(--ink-muted);padding:4px 10px;border:1px solid var(--rule);border-radius:999px}.app-drill-question-page .banner{display:flex;align-items:center;gap:12px;border-radius:12px;padding:13px 16px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;animation:dq-up .35s cubic-bezier(.2,.8,.3,1)}.app-drill-question-page .banner:focus-visible{outline:var(--focus-ring);outline-offset:2px}@keyframes dq-up{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.app-drill-question-page .banner--correct{background:color-mix(in srgb,var(--met) 10%,transparent);border:1px solid color-mix(in srgb,var(--met) 40%,transparent)}.app-drill-question-page .banner--incorrect{background:color-mix(in srgb,var(--failed) 10%,transparent);border:1px solid color-mix(in srgb,var(--failed) 40%,transparent)}.app-drill-question-page .banner--oomph{animation:dq-up .35s cubic-bezier(.2,.8,.3,1),dq-glow .8s ease-out .25s}@keyframes dq-glow{0%{box-shadow:0 0 color-mix(in srgb,var(--accolade) 60%,transparent)}to{box-shadow:0 0 0 22px color-mix(in srgb,var(--accolade) 0%,transparent)}}.app-drill-question-page .banner-mark{position:relative;flex-shrink:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--obi-ink);animation:dq-pop .4s cubic-bezier(.2,.8,.3,1)}.app-drill-question-page .banner--correct .banner-mark{background:var(--met)}.app-drill-question-page .banner--incorrect .banner-mark{background:var(--failed)}.app-drill-question-page .banner--oomph .banner-mark{animation:dq-big .55s cubic-bezier(.2,.8,.3,1)}@keyframes dq-big{0%{transform:scale(.6)}45%{transform:scale(1.28)}70%{transform:scale(.96)}to{transform:scale(1)}}.app-drill-question-page .mark-rays{position:absolute;inset:0;pointer-events:none}.app-drill-question-page .mark-rays .ray{position:absolute;left:13px;top:-4px;width:3px;height:12px;border-radius:2px;background:var(--accolade);transform-origin:2px 20px;animation:dq-ray .6s ease-out both}@keyframes dq-ray{0%{transform:rotate(var(--ray-angle)) translateY(0) scaleY(.4);opacity:1}to{transform:rotate(var(--ray-angle)) translateY(-46px) scaleY(1);opacity:0}}.app-drill-question-page .mark-rays .ray:nth-child(1){--ray-angle: 0deg;animation-delay:.1s}.app-drill-question-page .mark-rays .ray:nth-child(2){--ray-angle: 60deg;animation-delay:.14s}.app-drill-question-page .mark-rays .ray:nth-child(3){--ray-angle: 120deg;animation-delay:.18s}.app-drill-question-page .mark-rays .ray:nth-child(4){--ray-angle: 180deg;animation-delay:.12s}.app-drill-question-page .mark-rays .ray:nth-child(5){--ray-angle: 240deg;animation-delay:.16s}.app-drill-question-page .mark-rays .ray:nth-child(6){--ray-angle: 300deg;animation-delay:.2s}.app-drill-question-page .banner-copy{display:block;min-width:0}.app-drill-question-page .banner-title{display:block;font-family:var(--font-display);font-size:19px;font-weight:700;margin:0;transform-origin:left center}.app-drill-question-page .banner--correct .banner-title{color:var(--met)}.app-drill-question-page .banner--incorrect .banner-title{color:var(--failed)}.app-drill-question-page .banner--oomph .banner-title{font-size:23px;color:var(--accolade);animation:dq-big .55s cubic-bezier(.2,.8,.3,1) .08s both}.app-drill-question-page .banner-sub{display:block;font-size:13px;color:var(--ink);margin:1px 0 0}.app-drill-question-page .answer-hint{text-align:center;font-size:var(--t-small);color:var(--ink-muted);margin:0 0 var(--s-3)}.app-drill-question-page .check-answer{width:100%;min-width:var(--tap-min);min-height:52px;border-radius:var(--radius);font-size:var(--t-body);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--s-2);border:1px solid var(--rule);background:var(--raised);color:var(--ink-muted)}.app-drill-question-page .check-answer[aria-disabled=true]{cursor:not-allowed}.app-drill-question-page .check-answer:not([aria-disabled=true]){border:none;background:var(--obi);color:var(--obi-ink)}.app-drill-question-page .error-text{color:var(--failed);font-size:var(--t-small)}@media(min-width:1024px){.app-drill-question-page .drill-question-page{max-width:min(80rem,100%);padding:0}.app-drill-question-page .topbar{padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--rule)}.app-drill-question-page .progress-bar{margin:var(--s-3) var(--s-6) 0}.app-drill-question-page .stage{display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:clamp(16px,2.4vh,32px);padding:var(--s-5) var(--s-7);margin:0}.app-drill-question-page .technique-name{font-size:clamp(2.125rem,3vw,3.5rem)}.app-drill-question-page .drawing-plate{height:clamp(220px,44dvh,640px);padding:var(--s-4)}.app-drill-question-page .secondary-prompt{font-size:clamp(.875rem,1vw,1.0625rem);margin:0}.app-drill-question-page .options{grid-template-columns:1fr 1fr;gap:var(--s-3);width:100%;max-width:clamp(640px,46vw,900px);margin:0}.app-drill-question-page .option{min-height:clamp(56px,5.5vh,80px);padding:0 var(--s-5);font-size:clamp(1rem,1.1vw,1.25rem)}.app-drill-question-page .option-badge{width:28px;height:28px}.app-drill-question-page .combo-strip,.app-drill-question-page .strike-pool{width:100%;max-width:clamp(680px,50vw,960px);margin-left:auto;margin-right:auto}.app-drill-question-page .combo-answer{max-width:clamp(680px,50vw,960px);margin-left:auto;margin-right:auto}.app-drill-question-page .combo-strip{min-height:clamp(56px,6vh,80px);padding:var(--s-3)}.app-drill-question-page .combo-chip,.app-drill-question-page .strike-chip{min-height:clamp(44px,4.5vh,56px);font-size:clamp(.9375rem,1vw,1.125rem)}.app-drill-question-page .footer{display:flex;align-items:center;gap:var(--s-4);min-height:76px;padding:var(--s-4) var(--s-6);border-top:1px solid var(--rule)}.app-drill-question-page .footer .answer-hint{flex:1;text-align:left;margin:0}.app-drill-question-page .footer .banner-status{flex:1}.app-drill-question-page .footer .banner{padding:0;border:none;background:none;animation:none}.app-drill-question-page .footer .banner-mark{width:26px;height:26px;font-size:13px}.app-drill-question-page .footer .mark-rays{display:none}.app-drill-question-page .footer .banner-copy{display:flex;align-items:baseline;gap:10px}.app-drill-question-page .footer .banner-title,.app-drill-question-page .footer .banner--oomph .banner-title{font-size:17px}.app-drill-question-page .footer .banner-sub{margin:0}.app-drill-question-page .footer .check-answer{width:auto;min-width:0;height:44px;min-height:44px;padding:0 32px;margin:0 0 0 auto;flex-shrink:0}}.app-drill-question-page .option-placeholder{min-height:52px;display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised)}.app-drill-question-page .sk-badge{flex-shrink:0;width:24px;height:24px}.app-drill-question-page .sk-option{width:48%;height:13px}.app-drill-question-page .options>li:nth-child(2) .sk-option{width:40%}.app-drill-question-page .options>li:nth-child(3) .sk-option{width:56%}.app-drill-question-page .options>li:nth-child(4) .sk-option{width:44%}.app-drill-question-page .options--still .shimmer{animation:none}.app-drill-question-page .answer-hint--waiting{visibility:hidden}.app-drill-results-page .drill-results-page{max-width:40rem;margin:0 auto;padding:var(--s-6) var(--s-4)}.app-drill-results-page .drill-results-page:focus{outline:none}.app-drill-results-page h1{font-family:var(--font-display);font-size:1.375rem;font-weight:600;text-align:center;margin:0 0 var(--s-5)}.app-drill-results-page .tally{text-align:center;margin:0 0 var(--s-3)}.app-drill-results-page .tally-number{font-size:2.75rem;color:var(--ink);margin:0}.app-drill-results-page .tally-label{font-size:var(--t-small);color:var(--ink-muted);margin:var(--s-1) 0 0}.app-drill-results-page .scope-label{text-align:center;margin:0 0 var(--s-5)}.app-drill-results-page .recall-card{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-4);margin-bottom:var(--s-5)}.app-drill-results-page .recall-card-title{font-size:.90625rem;font-weight:600;margin:0 0 var(--s-2)}.app-drill-results-page .recall-figures{font-size:1.75rem;margin-bottom:var(--s-2)}.app-drill-results-page .recall-track{position:relative;height:6px;border-radius:3px;background:var(--rule);margin-bottom:var(--s-2)}.app-drill-results-page .recall-fill{height:100%;border-radius:3px;background:var(--obi)}.app-drill-results-page .recall-threshold{position:absolute;left:90%;top:-3px;width:2px;height:12px;background:var(--ink-muted)}.app-drill-results-page .recall-detail{font-size:var(--t-small);color:var(--ink-muted);margin:0}.app-drill-results-page .review-label{margin-bottom:var(--s-2)}.app-drill-results-page .review-list{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;gap:var(--s-2)}.app-drill-results-page .review-card{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-3) var(--s-4)}.app-drill-results-page .review-name{font-family:var(--font-display);font-size:var(--t-body)}.app-drill-results-page .review-translation{font-size:var(--t-small);color:var(--ink-muted);margin-top:1px}.app-drill-results-page .drill-again-button{width:100%;min-width:var(--tap-min);min-height:52px;border-radius:var(--radius);border:none;background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer;margin-bottom:var(--s-2)}.app-drill-results-page .error-text{color:var(--failed);font-size:var(--t-small);margin:0 0 var(--s-3)}.app-drill-results-page .done-button{display:flex;align-items:center;justify-content:center;min-width:var(--tap-min);min-height:52px;border-radius:var(--radius);border:1px solid var(--rule);text-decoration:none;color:var(--ink);font-size:.9375rem;font-weight:600}.app-drill-results-page .sk-recall-title{width:55%;height:calc(.90625rem * 1.4);margin-bottom:var(--s-2)}.app-drill-results-page .sk-recall-pct{width:3.5rem;height:1.75rem;margin-bottom:var(--s-2)}.app-drill-results-page .sk-recall-track{height:6px;border-radius:3px;margin-bottom:var(--s-2)}.app-drill-results-page .sk-recall-detail{width:60%;height:calc(var(--t-small) * 1.4)}.app-drill-setup-page .drill-setup-page{max-width:40rem;margin:0 auto;padding:var(--s-4) var(--s-4) var(--s-6)}.app-drill-setup-page .drill-setup-page:focus{outline:none}.app-drill-setup-page .dialog-topbar{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.app-drill-setup-page .close-button{width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);cursor:pointer;margin-left:calc(-1 * var(--s-3))}.app-drill-setup-page h1{font-family:var(--font-display);font-size:var(--t-heading);font-weight:600;margin:0}.app-drill-setup-page .section-label{margin-bottom:var(--s-2)}.app-drill-setup-page .section-label-note{font-weight:400;letter-spacing:normal;text-transform:none}.app-drill-setup-page .level-tabs,.app-drill-setup-page .category-rail{display:flex;gap:var(--s-2);margin-bottom:var(--s-4);overflow-x:auto}.app-drill-setup-page .choice-button{flex:1 0 auto;min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--s-2) var(--s-4);border-radius:var(--radius);border:1px solid var(--rule);background:var(--raised);color:var(--ink);font-size:var(--t-small);cursor:pointer}.app-drill-setup-page .choice-button--selected{background:var(--obi);border-color:var(--obi);color:var(--obi-ink);font-weight:600}.app-drill-setup-page .mode-empty{font-size:.78125rem;color:var(--ink-muted);line-height:var(--t-body-lh);margin:0 0 var(--s-5)}.app-drill-setup-page .mode-list{list-style:none;margin:0 0 var(--s-3);padding:0;display:grid;gap:var(--s-2)}.app-drill-setup-page .mode-card{width:100%;display:flex;align-items:flex-start;gap:var(--s-3);text-align:left;border-radius:var(--radius);padding:var(--s-4);background:var(--raised);min-height:var(--tap-min);cursor:pointer}.app-drill-setup-page .mode-card--selected{border:2px solid var(--obi)}.app-drill-setup-page .mode-card--unavailable{border:1px dashed var(--rule);opacity:.75;cursor:default}.app-drill-setup-page .mode-card:not(.mode-card--selected):not(.mode-card--unavailable){border:1px solid var(--rule)}.app-drill-setup-page .mode-radio-dot{flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px solid var(--ink-muted);display:flex;align-items:center;justify-content:center}.app-drill-setup-page .mode-card--selected .mode-radio-dot{border-color:var(--obi)}.app-drill-setup-page .mode-card--selected .mode-radio-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--obi)}.app-drill-setup-page .mode-card-body{flex:1;min-width:0}.app-drill-setup-page .mode-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2)}.app-drill-setup-page .mode-card-name{font-size:.9375rem;font-weight:600}.app-drill-setup-page .mode-card--unavailable .mode-card-name{color:var(--ink-muted)}.app-drill-setup-page .mode-count{font-size:var(--t-small);font-weight:400;white-space:nowrap}.app-drill-setup-page .mode-desc{display:block;font-size:var(--t-small);color:var(--ink-muted);margin-top:2px}.app-drill-setup-page .mode-reason{display:block;font-size:var(--t-small);color:var(--ink-muted);margin-top:var(--s-1)}.app-drill-setup-page .start-button{width:100%;min-width:var(--tap-min);min-height:52px;border-radius:var(--radius);border:none;background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-drill-setup-page .start-button[aria-disabled=true]{cursor:not-allowed}.app-drill-setup-page .retry-button{min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--s-2) var(--s-4);border-radius:var(--radius);border:1px solid var(--rule);background:var(--raised);color:var(--ink);cursor:pointer}.app-drill-setup-page .start-error p{color:var(--ink-muted);font-size:var(--t-small)}.app-drill-setup-page .sk-mode-dot{flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%}.app-drill-setup-page .sk-mode-name{width:55%;height:1.3125rem}.app-drill-setup-page .sk-mode-desc{width:72%;height:calc(var(--t-small) * 1.4);margin-top:4px}.app-drill-setup-page .sk-start-btn{width:100%;height:52px;border-radius:var(--radius)}.app-drill-setup-page .sk-chip{flex-shrink:0;height:var(--tap-min);border-radius:var(--radius)}.app-drill-setup-page .sk-chip:nth-child(2){width:5rem}.app-drill-setup-page .sk-chip:nth-child(3){width:7rem}.app-drill-setup-page .sk-chip:nth-child(4){width:5.5rem}.app-log-attendance-page .log-attendance-page{max-width:64rem;margin:0 auto;padding:var(--s-4)}.app-log-attendance-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.app-log-attendance-page .back-button{display:flex;align-items:center;justify-content:center;width:var(--tap-min);height:var(--tap-min);margin-left:calc(-1 * var(--s-3));border:none;background:none;color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}.app-log-attendance-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-log-attendance-page .page-body{display:flex;flex-direction:column}.app-log-attendance-page .records-column{border-top:1px solid var(--rule);margin-top:var(--s-4);padding-top:var(--s-4)}@media(min-width:1024px){.app-log-attendance-page .page-body{flex-direction:row;align-items:flex-start;gap:var(--s-6)}.app-log-attendance-page .form-column{flex:0 0 400px;min-width:0}.app-log-attendance-page .records-column{flex:1;min-width:0;border-top:none;margin-top:0;padding:var(--s-4) var(--s-5);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}}.app-log-attendance-page .class-list{border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);padding:0;margin:0 0 var(--s-5)}.app-log-attendance-page .class-option{display:block;padding:0 var(--s-4);border-bottom:1px solid var(--rule);cursor:pointer}.app-log-attendance-page .class-option:last-child{border-bottom:none}.app-log-attendance-page .radio-row{display:flex;align-items:center;gap:var(--s-3);min-height:52px}.app-log-attendance-page .radio-row input[type=radio]{appearance:none;flex-shrink:0;width:20px;height:20px;margin:0;border-radius:50%;border:2px solid var(--ink-muted);display:grid;place-content:center;cursor:pointer}.app-log-attendance-page .radio-row input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--obi);transform:scale(0);transition:transform .12s ease}.app-log-attendance-page .radio-row input[type=radio]:checked{border-color:var(--obi)}.app-log-attendance-page .radio-row input[type=radio]:checked:before{transform:scale(1)}.app-log-attendance-page .option-label{flex:1;font-size:.9375rem}.app-log-attendance-page .class-option.selected .option-label{font-weight:600}.app-log-attendance-page .option-progress{font-family:var(--font-data);font-size:var(--t-small);color:var(--ink-muted);font-variant-numeric:tabular-nums}.app-log-attendance-page .confirm{width:100%;height:52px;border-radius:var(--radius);border:none;background:var(--obi);color:var(--obi-ink);cursor:pointer;font-size:var(--t-body);font-weight:600;margin-top:var(--s-5);margin-bottom:var(--s-5)}.app-log-attendance-page .confirm.is-disabled{background:var(--raised);border:1px solid var(--rule);color:var(--ink-muted);cursor:not-allowed}.app-log-attendance-page .cancel-edit{min-width:var(--tap-min);min-height:var(--tap-min)}.app-log-attendance-page .records-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;margin-bottom:2px}.app-log-attendance-page .records-header h2{margin:0;font-size:var(--t-body);font-weight:600}.app-log-attendance-page [role=alert]{color:var(--failed);font-size:var(--t-small)}.app-log-attendance-page .day-group+.day-group{margin-top:var(--s-1)}.app-log-attendance-page .day-heading{padding:var(--s-2) 0 var(--s-1);border-top:1px solid var(--rule);margin-top:var(--s-1);font-size:.84375rem;font-weight:600;color:var(--ink-muted)}.app-log-attendance-page .day-group:first-child .day-heading{border-top:none;padding-top:0;margin-top:0}.app-log-attendance-page .sk-heading-label{width:5rem;height:12px}.app-log-attendance-page .sk-desc{flex:1 1 auto;max-width:60%;height:12px}.app-log-attendance-page .sk-time{flex-shrink:0;width:3rem;height:11px}.app-log-attendance-page .sk-option-radio{flex-shrink:0;width:20px;height:20px;border-radius:50%}.app-log-attendance-page .sk-option-label{flex:1 1 auto;max-width:55%;height:14px}.app-log-attendance-page .sk-option-progress{flex-shrink:0;width:3rem;height:12px}.app-log-attendance-page .records-column .app-load-failed-panel{margin-top:var(--s-3)}.app-log-run-page .log-run-page{max-width:64rem;margin:0 auto;padding:var(--s-4)}.app-log-run-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.app-log-run-page .back-button{display:flex;align-items:center;justify-content:center;width:var(--tap-min);height:var(--tap-min);margin-left:calc(-1 * var(--s-3));border:none;background:none;color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}.app-log-run-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-log-run-page .page-body{display:flex;flex-direction:column}.app-log-run-page .records-column{border-top:1px solid var(--rule);margin-top:var(--s-4);padding-top:var(--s-4)}@media(min-width:1024px){.app-log-run-page .page-body{flex-direction:row;align-items:flex-start;gap:var(--s-6)}.app-log-run-page .form-column{flex:0 0 400px;min-width:0}.app-log-run-page .records-column{flex:1;min-width:0;border-top:none;margin-top:0;padding:var(--s-4) var(--s-5);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}}.app-log-run-page .stepper{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-2)}.app-log-run-page .stepper-button{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);font-size:1.625rem;cursor:pointer}.app-log-run-page .stepper-button.is-disabled{background:var(--raised);border-style:dashed;color:var(--ink-muted);opacity:.65;cursor:not-allowed}.app-log-run-page .stepper-value{text-align:center}.app-log-run-page .value{font-family:var(--font-data);font-size:2.875rem;line-height:1;font-variant-numeric:tabular-nums}.app-log-run-page .unit{font-size:1.375rem;color:var(--ink-muted)}.app-log-run-page .note{text-align:center;color:var(--ink-muted);font-family:var(--font-data);font-size:.8125rem;font-variant-numeric:tabular-nums;margin-bottom:var(--s-5)}.app-log-run-page .time-fields{display:flex;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-5)}.app-log-run-page .time-field{flex:1}.app-log-run-page .time-field input{width:100%;height:56px;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);font-family:var(--font-data);font-size:1.5rem;font-variant-numeric:tabular-nums;text-align:center;box-sizing:border-box}.app-log-run-page .time-field-label{display:block;margin-top:5px;font-size:.75rem;color:var(--ink-muted);text-align:center}.app-log-run-page .time-separator{font-size:1.5rem;color:var(--ink-muted);padding-bottom:22px}.app-log-run-page .confirm{width:100%;height:52px;border-radius:var(--radius);border:none;background:var(--obi);color:var(--obi-ink);cursor:pointer;font-size:var(--t-body);font-weight:600;margin-bottom:var(--s-5)}.app-log-run-page .confirm.is-disabled{background:var(--raised);border:1px solid var(--rule);color:var(--ink-muted);cursor:not-allowed}.app-log-run-page .cancel-edit{min-width:var(--tap-min);min-height:var(--tap-min)}.app-log-run-page .records-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;margin-bottom:2px}.app-log-run-page .records-header h2{margin:0;font-size:var(--t-body);font-weight:600}.app-log-run-page .run-row{padding-bottom:var(--s-1);margin-bottom:var(--s-1)}.app-log-run-page .does-not-count{margin:0;color:var(--ink-muted);font-size:.8125rem;font-style:italic}.app-log-run-page .error,.app-log-run-page [role=alert]{color:var(--failed);font-size:var(--t-small)}.app-log-run-page .day-group+.day-group{margin-top:var(--s-1)}.app-log-run-page .day-heading{padding:var(--s-2) 0 var(--s-1);border-top:1px solid var(--rule);margin-top:var(--s-1);font-size:.84375rem;font-weight:600;color:var(--ink-muted)}.app-log-run-page .day-group:first-child .day-heading{border-top:none;padding-top:0;margin-top:0}.app-log-run-page .sk-heading-label{width:5rem;height:12px}.app-log-run-page .sk-desc{flex:1 1 auto;max-width:60%;height:12px}.app-log-run-page .sk-time{flex-shrink:0;width:3rem;height:11px}.app-log-run-page .records-column .app-load-failed-panel{margin-top:var(--s-3)}.app-log-training-page .log-training-page{max-width:64rem;margin:0 auto;padding:var(--s-4)}.app-log-training-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.app-log-training-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-log-training-page .page-body{display:flex;flex-direction:column}.app-log-training-page .records-column{border-top:1px solid var(--rule);margin-top:var(--s-4);padding-top:var(--s-4)}@media(min-width:1024px){.app-log-training-page .page-body{flex-direction:row;align-items:flex-start;gap:var(--s-6)}.app-log-training-page .form-column{flex:0 0 400px;min-width:0}.app-log-training-page .records-column{flex:1;min-width:0;border-top:none;margin-top:0;padding:var(--s-4) var(--s-5);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}}.chip-row{display:flex;gap:var(--s-2);overflow-x:auto;padding-bottom:var(--s-1);margin-bottom:var(--s-5)}.chip{flex-shrink:0;height:44px;padding:0 13px;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);font-size:var(--t-small);cursor:pointer;white-space:nowrap}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--obi);color:var(--obi-ink);border-color:var(--obi);font-weight:600}.chip--day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:52px;min-width:44px;padding:0 var(--s-2)}.chip--day .chip-weekday{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.chip--day .chip-day{font-family:var(--font-data);font-size:var(--t-body);font-variant-numeric:tabular-nums}.app-log-training-page .progress-section{margin-bottom:var(--s-5)}.app-log-training-page .stepper{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-1)}.app-log-training-page .stepper-button{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);font-size:1.625rem;cursor:pointer}.app-log-training-page .stepper-value{text-align:center}.app-log-training-page .value{font-family:var(--font-data);font-size:2.875rem;line-height:1;font-variant-numeric:tabular-nums}.app-log-training-page .stepper-input{width:5ch;min-height:0;padding:0;text-align:center;background:none;border:none;color:var(--ink)}.app-log-training-page .stepper-hint{display:block;margin-top:var(--s-1);font-size:.71875rem;color:var(--ink-muted)}.app-log-training-page .presets{display:flex;gap:var(--s-2);margin:var(--s-3) 0}.app-log-training-page .preset{flex:1;height:44px;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);font-family:var(--font-data);font-size:.9375rem;cursor:pointer}.app-log-training-page .confirm{width:100%;height:52px;border-radius:var(--radius);border:none;background:var(--obi);color:var(--obi-ink);cursor:pointer;font-size:var(--t-body);font-weight:600;margin-bottom:var(--s-5)}.app-log-training-page .confirm.is-disabled{background:var(--raised);border:1px solid var(--rule);color:var(--ink-muted);cursor:not-allowed}.app-log-training-page .cancel-edit{min-width:var(--tap-min);min-height:var(--tap-min)}.app-log-training-page .editing-note{text-align:center;color:var(--ink-muted);font-size:var(--t-small)}.app-log-training-page .records-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;margin-bottom:2px}.app-log-training-page .records-header h2{margin:0;font-size:var(--t-body);font-weight:600}.app-log-training-page .day-group+.day-group{margin-top:var(--s-1)}.app-log-training-page .day-heading{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s-2) 0 var(--s-1);border-top:1px solid var(--rule);margin-top:var(--s-1)}.app-log-training-page .day-group:first-child .day-heading{border-top:none;padding-top:0;margin-top:0}.app-log-training-page .day-heading span:first-child{font-size:.84375rem;font-weight:600;color:var(--ink-muted)}.app-log-training-page .day-heading span:last-child{font-family:var(--font-data);font-size:.8125rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.app-log-training-page [role=alert]{color:var(--failed);font-size:var(--t-small)}.app-log-training-page .sk-chip{flex-shrink:0;height:44px;border-radius:var(--radius)}.app-log-training-page .chip-row .sk-chip:nth-child(1){width:5rem}.app-log-training-page .chip-row .sk-chip:nth-child(2){width:5.5rem}.app-log-training-page .chip-row .sk-chip:nth-child(3){width:4.5rem}.app-log-training-page .chip-row .sk-chip:nth-child(4){width:4.75rem}.app-log-training-page .sk-progress-heading{display:block;width:4rem;height:var(--t-label);margin:0 0 var(--s-2)}.app-log-training-page .top-line .sk-progress-label{width:40%;height:14px}.app-log-training-page .top-line .sk-progress-figures{width:3rem;height:14px}.app-log-training-page .bottom-line .sk-progress-track{flex:1 1 auto;height:6px;border-radius:3px}.app-log-training-page .bottom-line .sk-progress-status{width:2.5rem;height:10px}.app-log-training-page .app-target-progress-row:nth-child(2) .sk-progress-label{width:32%}.app-log-training-page .app-target-progress-row:nth-child(3) .sk-progress-label{width:48%}.app-log-training-page .day-heading .sk-heading-label{width:5rem;height:12px}.app-log-training-page .day-heading .sk-heading-subtotal{width:2.75rem;height:11px}.app-log-training-page .sk-desc{flex:1 1 auto;max-width:60%;height:12px}.app-log-training-page .sk-time{flex-shrink:0;width:3rem;height:11px}.app-log-training-page .day-group:nth-child(2) .app-record-row:nth-child(3) .sk-desc{max-width:44%}.app-log-training-page .records-column .app-load-failed-panel{margin-top:var(--s-3)}.app-placeholder-screen .placeholder-screen{max-width:var(--measure);margin:0 auto;padding:var(--s-6) var(--s-4)}.app-placeholder-screen h1{font-family:var(--font-display);font-size:var(--t-heading);line-height:var(--t-heading-lh);margin:0 0 var(--s-3)}.app-placeholder-screen p{margin:0;color:var(--ink-muted);line-height:var(--t-body-lh)}.app-privacy-page .privacy-page{max-width:36rem;margin:0 auto;padding:var(--s-6) var(--s-4)}.app-privacy-page h1{font-family:var(--font-display);font-size:1.3125rem;font-weight:600;margin:0 0 var(--s-5)}.app-reset-password-page .reset-password-page{max-width:480px;margin:0 auto;padding:36px var(--s-5) 28px}.app-reset-password-page .brand{display:flex;flex-direction:column;align-items:center;color:var(--ink)}.app-reset-password-page .brand app-icon{margin-bottom:var(--s-2)}.app-reset-password-page .brand h1{font-family:var(--font-display);font-size:1.5625rem;font-weight:600;text-align:center;margin:0 0 26px}.app-reset-password-page h2{font-family:var(--font-display);font-size:var(--t-heading);line-height:var(--t-heading-lh);margin:0 0 var(--s-3)}.app-reset-password-page .field{margin-bottom:var(--s-4)}.app-reset-password-page .field .eyebrow{display:block;margin-bottom:var(--s-2)}.app-reset-password-page .field input{display:block;width:100%;height:52px;box-sizing:border-box;padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);color:var(--ink);font-size:.9375rem}.app-reset-password-page .field input.field-error{border-color:var(--failed)}.app-reset-password-page app-turnstile-widget{display:block;margin:0 0 var(--s-4)}.app-reset-password-page .error{display:flex;align-items:center;gap:7px;margin:0 0 var(--s-4);color:var(--failed);font-size:.8125rem}.app-reset-password-page .error app-icon{flex-shrink:0}.app-reset-password-page .hint{margin:0 0 var(--s-4);color:var(--ink-muted);font-size:var(--t-small);line-height:var(--t-body-lh)}.app-reset-password-page .muted{color:var(--ink-muted);font-size:var(--t-small);margin:var(--s-2) 0 0}.app-reset-password-page .operator-fallback{margin:0 0 var(--s-5);padding:var(--s-3) var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);color:var(--ink-muted);font-size:var(--t-small);line-height:var(--t-body-lh)}.app-reset-password-page .operator-fallback a{color:var(--ink);text-decoration:underline}.app-reset-password-page button.primary{display:block;width:100%;height:52px;min-width:var(--tap-min);min-height:var(--tap-min);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-reset-password-page button.primary:disabled{cursor:not-allowed;opacity:.7}.app-reset-password-page .auth-footer{border-top:1px solid var(--rule);margin-top:var(--s-5);padding-top:var(--s-4);font-size:var(--t-small);color:var(--ink-muted);text-align:center}.app-settings-page .settings-page{max-width:36rem;margin:0 auto;padding:var(--s-6) var(--s-4)}.app-settings-page h1{font-family:var(--font-display);font-size:1.3125rem;font-weight:600;margin:0 0 var(--s-5)}.app-settings-page .card{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-5);margin-bottom:var(--s-5)}.app-settings-page .card h2{font-family:var(--font-display);font-size:var(--t-heading);line-height:var(--t-heading-lh);margin:0 0 var(--s-3)}.app-settings-page .card p{margin:0;line-height:var(--t-body-lh)}.app-settings-page .card p.muted{margin-top:var(--s-3);color:var(--ink-muted);font-size:var(--t-small)}.app-settings-page button.primary{min-width:var(--tap-min);min-height:var(--tap-min);height:52px;padding:0 var(--s-5);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-settings-page button.secondary{min-width:var(--tap-min);min-height:var(--tap-min);height:52px;padding:0 var(--s-5);border:1px solid var(--rule);border-radius:var(--radius);background:transparent;color:var(--ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-settings-page .confirm-row{margin-top:var(--s-3)}.app-settings-page .confirm-row p{margin-bottom:var(--s-3)}.app-settings-page .confirm-row .buttons{display:flex;gap:var(--s-3);flex-wrap:wrap}.app-sign-in-page .sign-in-page{max-width:480px;margin:0 auto;padding:36px var(--s-5) 28px}.app-sign-in-page .brand{display:flex;flex-direction:column;align-items:center;color:var(--ink)}.app-sign-in-page .brand app-icon{margin-bottom:var(--s-2)}.app-sign-in-page .brand h1{font-family:var(--font-display);font-size:1.5625rem;font-weight:600;text-align:center;margin:0 0 26px}.app-sign-in-page .retained-notice{display:flex;align-items:flex-start;gap:var(--s-2);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-3) var(--s-4);margin:0 0 var(--s-4);color:var(--ink-muted);font-size:var(--t-small);line-height:var(--t-small-lh)}.app-sign-in-page .retained-notice app-icon{margin-top:2px;flex-shrink:0}.app-sign-in-page .field{margin-bottom:var(--s-4)}.app-sign-in-page .field .eyebrow{display:block;margin-bottom:var(--s-2)}.app-sign-in-page .field input{display:block;width:100%;height:52px;box-sizing:border-box;padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);color:var(--ink);font-size:.9375rem}.app-sign-in-page .field input.field-error{border-color:var(--failed)}.app-sign-in-page .forgot-password-link{text-align:right;margin:0 0 var(--s-4)}.app-sign-in-page .forgot-password-link a{display:inline-block;min-height:var(--tap-min);line-height:var(--tap-min);color:var(--ink-muted);font-size:var(--t-small);text-decoration:underline}.app-sign-in-page .error{display:flex;align-items:center;gap:7px;margin:var(--s-2) 0 var(--s-5);color:var(--failed);font-size:.8125rem}.app-sign-in-page .error app-icon{flex-shrink:0}.app-sign-in-page button.primary{display:block;width:100%;height:52px;min-width:var(--tap-min);min-height:var(--tap-min);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-sign-in-page button.primary:disabled{cursor:not-allowed;opacity:.7}.app-sign-in-page .auth-footer{border-top:1px solid var(--rule);margin-top:var(--s-5);padding-top:var(--s-4);font-size:var(--t-small);color:var(--ink-muted);text-align:center}.app-sign-in-page .legal-footer{margin:var(--s-3) 0 0;font-size:var(--t-small);color:var(--ink-muted);text-align:center}.app-sign-in-page .legal-footer a{color:var(--ink-muted);text-decoration:underline}.app-sign-up-page .sign-up-page{max-width:480px;margin:0 auto;padding:36px var(--s-5) 28px}.app-sign-up-page .brand{display:flex;flex-direction:column;align-items:center;color:var(--ink)}.app-sign-up-page .brand app-icon{margin-bottom:var(--s-2)}.app-sign-up-page .brand h1{font-family:var(--font-display);font-size:1.5625rem;font-weight:600;text-align:center;margin:0 0 26px}.app-sign-up-page h2{font-family:var(--font-display);font-size:var(--t-heading);line-height:var(--t-heading-lh);margin:0 0 var(--s-3)}.app-sign-up-page .progress{color:var(--ink-muted);text-align:center;padding:var(--s-6) 0}.app-sign-up-page .field{margin-bottom:var(--s-4)}.app-sign-up-page .field .eyebrow{display:block;margin-bottom:var(--s-2)}.app-sign-up-page .field input{display:block;width:100%;height:52px;box-sizing:border-box;padding:0 var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);color:var(--ink);font-size:.9375rem}.app-sign-up-page .terms-disclosure{margin-bottom:var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-3) var(--s-4);background:var(--raised)}.app-sign-up-page .terms-disclosure summary{cursor:pointer;color:var(--ink);font-size:var(--t-small);font-weight:600}.app-sign-up-page .terms-disclosure[open] summary{margin-bottom:var(--s-3)}.app-sign-up-page .checkbox-field{margin-bottom:var(--s-3)}.app-sign-up-page .checkbox-field label{display:flex;align-items:flex-start;gap:var(--s-3);min-height:var(--tap-min);color:var(--ink);font-size:var(--t-small);line-height:var(--t-body-lh);cursor:pointer}.app-sign-up-page .checkbox-field input[type=checkbox]{appearance:none;width:20px;height:20px;margin-top:1px;flex-shrink:0;background:transparent;border:2px solid var(--ink-muted);border-radius:var(--radius-sm);cursor:pointer}.app-sign-up-page .checkbox-field input[type=checkbox]:checked{border-color:var(--obi);background:var(--obi)}.app-sign-up-page .legal-links{margin:0 0 var(--s-4);color:var(--ink-muted);font-size:var(--t-small);line-height:var(--t-body-lh)}.app-sign-up-page .legal-links a{color:var(--ink);text-decoration:underline}.app-sign-up-page .error{display:flex;align-items:center;gap:7px;margin:var(--s-2) 0 var(--s-5);color:var(--failed);font-size:.8125rem}.app-sign-up-page .error app-icon{flex-shrink:0}.app-sign-up-page .muted{color:var(--ink-muted);font-size:var(--t-small);margin:var(--s-2) 0 0}.app-sign-up-page button.primary{display:block;width:100%;height:52px;min-width:var(--tap-min);min-height:var(--tap-min);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer}.app-sign-up-page button.primary:disabled{cursor:not-allowed;opacity:.7}.app-sign-up-page button.link-button{display:block;width:100%;min-height:var(--tap-min);margin-top:var(--s-4);background:none;border:none;color:var(--ink);font-size:var(--t-small);font-weight:600;text-decoration:underline;cursor:pointer}.app-sign-up-page button.link-button:disabled{cursor:not-allowed;opacity:.7}.app-sign-up-page .auth-footer{border-top:1px solid var(--rule);margin-top:var(--s-5);padding-top:var(--s-4);font-size:var(--t-small);color:var(--ink-muted);text-align:center}.app-terms-page .terms-page{max-width:36rem;margin:0 auto;padding:var(--s-6) var(--s-4)}.app-terms-page h1{font-family:var(--font-display);font-size:1.3125rem;font-weight:600;margin:0 0 var(--s-5)}.app-today-page .today-page{max-width:36rem;margin:0 auto;padding:var(--s-5) var(--s-4)}.app-today-page .today-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-4)}.app-today-page h1{margin:0;font-size:1.1875rem;font-weight:600;line-height:1.3}.app-today-page .week-range{margin:2px 0 0;font-family:var(--font-data);font-size:var(--t-small);color:var(--ink-muted);font-variant-numeric:tabular-nums}.app-today-page .week-nav{display:flex;gap:var(--s-2);flex-shrink:0}.app-today-page .week-nav-button{width:var(--tap-min);height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);cursor:pointer}.app-today-page .card{margin:0 0 var(--s-3);padding:var(--s-4);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-today-page .running-eyebrow{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);color:var(--ink-muted)}.app-today-page .running-eyebrow app-icon{color:var(--ink-muted)}.app-today-page .running-eyebrow .eyebrow{margin:0;letter-spacing:.12em}.app-today-page .card-heading{margin:0 0 var(--s-3);font-family:var(--font-display);font-size:1.1875rem;font-weight:600;color:var(--ink)}.app-today-page .last-run{margin:var(--s-2) 0 0;padding-left:var(--s-3);color:var(--ink-muted);font-size:.8125rem}.app-today-page .status-line{margin:var(--s-3) 0;color:var(--ink-muted);font-size:var(--t-small)}.app-today-page .status-line[role=alert]{color:var(--failed)}.app-today-page .retry-button{margin-left:var(--s-2);min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-3);background:transparent;border:1px solid var(--rule);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer}.app-today-page .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:var(--s-2)}.app-today-page .action-button{display:flex;align-items:center;justify-content:center;gap:var(--s-2);height:52px;min-height:var(--tap-min);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);font-size:.90625rem;font-weight:600;text-decoration:none;color:var(--ink)}.app-today-page .action-button app-icon{color:var(--obi)}.app-today-page .action-button--wide{grid-column:1 / -1}.app-today-page .today-page>app-next-up-strip[hidden]{display:none}@media(min-width:1024px){.app-today-page .today-page{max-width:64rem}.app-today-page .today-page{display:block;column-count:2;column-gap:var(--s-4)}.app-today-page .today-page>app-offline-notice,.app-today-page .today-page>app-next-up-strip,.app-today-page .today-page>app-load-failed-panel{display:block;column-span:all}.app-today-page .today-page>app-load-failed-panel{margin-bottom:var(--s-4)}.app-today-page .today-page>.today-header,.app-today-page .today-page>.alert-card-slot,.app-today-page .today-page>.status-line{column-span:all}.app-today-page .card{margin-bottom:var(--s-4);break-inside:avoid}.app-today-page .today-page>.actions{display:flex;flex-direction:column;gap:var(--s-4);margin-top:0;break-inside:avoid}}.app-today-page .sk-eyebrow{width:3.5rem;height:var(--t-label)}.app-today-page .sk-heading{display:block;width:6rem;height:1.1875rem;margin:0 0 var(--s-3)}.app-today-page .sk-lastrun{width:9rem;height:.8125rem}.app-today-page .sk-label{width:40%;height:.9375rem}.app-today-page .sk-figures{flex-shrink:0;width:2.25rem;height:.9375rem}.app-today-page .sk-status{flex-shrink:0;width:3rem;height:var(--t-label)}.app-today-page .sk-track{flex:1 1 auto;height:6px;border-radius:3px}.app-today-page .pips.sk-pips .pip{background:var(--rule)}.app-weekly-report-page .weekly-report-page{max-width:36rem;margin:0 auto;padding:var(--s-5) var(--s-4)}.app-weekly-report-page .report-header{margin-bottom:var(--s-3)}.app-weekly-report-page h1{margin:0 0 14px;font-family:var(--font-display);font-size:1.625rem;font-weight:600;line-height:1.15}.app-weekly-report-page .card{margin:0 0 var(--s-3);padding:var(--s-4);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-weekly-report-page .card-heading{display:flex;align-items:center;gap:9px;margin:0 0 6px;padding-bottom:var(--s-3);border-bottom:1px solid var(--rule);font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--ink)}.app-weekly-report-page .card-heading app-icon{color:var(--ink-muted)}.app-weekly-report-page .row-wrap{display:flex;align-items:center;gap:var(--s-2)}.app-weekly-report-page .row-wrap app-target-progress-row{flex:1;min-width:0}.app-weekly-report-page .weekday-line{display:flex;align-items:center;gap:var(--s-2);margin:2px 0 0;padding-left:var(--s-3);font-size:var(--t-small);color:var(--ink-muted)}.app-weekly-report-page .weekday-line__text{flex:1}.app-weekly-report-page .review-count{margin:0;font-size:.9375rem;color:var(--ink)}.app-weekly-report-page .form-note,.app-weekly-report-page .source-note{margin:2px 0 0;padding-left:var(--s-3);font-size:.75rem;color:var(--ink-muted)}.app-weekly-report-page .form-note,.app-weekly-report-page .source-note--italic{font-style:italic}.app-weekly-report-page .best-time{display:flex;align-items:center;gap:var(--s-2);min-height:var(--s-7);margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--rule);font-size:.9375rem;color:var(--ink)}.app-weekly-report-page .best-time__label{flex:1}.app-weekly-report-page .runs-header,.app-weekly-report-page .run-row{display:grid;grid-template-columns:1fr 60px 60px;gap:var(--s-1) var(--s-3)}.app-weekly-report-page .runs-header{padding-top:var(--s-2);margin-top:var(--s-2);border-top:1px solid var(--rule)}.app-weekly-report-page .run-row{align-items:baseline;padding:2px 0;font-size:.84375rem;color:var(--ink)}.app-weekly-report-page .runs-num{text-align:right}.app-weekly-report-page .does-not-count{grid-column:1 / -1;margin:0;font-style:italic;font-size:.78125rem;color:var(--ink-muted)}.app-weekly-report-page .notice{display:flex;gap:var(--s-3);margin:0 0 var(--s-3);padding:14px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-weekly-report-page .notice__icon{flex-shrink:0;margin-top:1px;color:var(--ink-muted)}.app-weekly-report-page .notice__text{margin:0;font-size:.8125rem;line-height:1.55;color:var(--ink-muted)}.app-weekly-report-page .notice__lede{color:var(--ink)}.app-weekly-report-page .status-card{display:flex;gap:var(--s-3);margin:0 0 var(--s-3);padding:13px 14px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-weekly-report-page .status-card--missed{background:transparent;border-color:var(--overdue)}.app-weekly-report-page .status-card__icon{flex-shrink:0;margin-top:1px;color:var(--ink-muted)}.app-weekly-report-page .status-card--missed .status-card__icon{color:var(--overdue)}.app-weekly-report-page .status-card__body{min-width:0}.app-weekly-report-page .status-card__heading{margin:0;font-size:.90625rem;font-weight:600;color:var(--ink)}.app-weekly-report-page .status-card--missed .status-card__heading{color:var(--overdue)}.app-weekly-report-page .status-card__sub{margin:1px 0 0;font-size:.8125rem;line-height:1.5;color:var(--ink-muted)}.app-weekly-report-page .status-line{margin:var(--s-3) 0;font-size:var(--t-small);color:var(--ink-muted)}.app-weekly-report-page .status-line[role=alert]{color:var(--failed)}.app-weekly-report-page .retry-button{margin-left:var(--s-2);min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-3);background:transparent;border:1px solid var(--rule);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer}.app-weekly-report-page .dojo-form-link{display:flex;align-items:center;justify-content:center;width:100%;height:52px;min-height:var(--tap-min);margin-top:var(--s-3);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);font-size:var(--t-body);font-weight:600;text-decoration:none}.app-weekly-report-page .mark-button{width:100%;height:52px;min-height:var(--tap-min);margin-top:var(--s-3);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-body);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--s-2)}.app-weekly-report-page .mark-button .app-sync-state-mark .mark{color:var(--obi-ink)}.app-weekly-report-page .mark-note{margin:var(--s-2) 0 0;text-align:center;font-size:.78125rem;color:var(--ink-muted)}.app-weekly-report-page .mark-conflict{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised)}.app-weekly-report-page .mark-conflict p{margin:0 0 var(--s-2);color:var(--ink);font-size:var(--t-small)}.app-weekly-report-page .mark-conflict__actions{display:flex;gap:var(--s-2)}.app-weekly-report-page .mark-conflict__actions button{flex:1 1 0;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);font-size:var(--t-small);cursor:pointer}.app-weekly-report-page .mark-conflict__retry{background:var(--obi);border:none;color:var(--obi-ink);font-weight:600}.app-weekly-report-page .mark-conflict__discard{background:none;border:1px solid var(--rule);color:var(--ink)}.app-weekly-report-page .mark-refusal{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised)}.app-weekly-report-page .mark-refusal p{margin:0 0 var(--s-2);color:var(--ink);font-size:var(--t-small)}.app-weekly-report-page .mark-refusal__dismiss{width:100%;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);font-size:var(--t-small);background:none;border:1px solid var(--rule);color:var(--ink);cursor:pointer}.app-weekly-report-page [role=alert]{color:var(--failed)}@media(min-width:1024px){.app-weekly-report-page .weekly-report-page{max-width:40rem;padding:1.75rem 0}.app-weekly-report-page .report-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.app-weekly-report-page h1{margin-bottom:0}}.app-weekly-report-page .sk-status-icon{flex-shrink:0;margin-top:1px;width:19px;height:19px;border-radius:50%}.app-weekly-report-page .sk-status-heading{display:block;width:10rem;height:.90625rem}.app-weekly-report-page .sk-heading{width:7rem;height:1.125rem}.app-weekly-report-page .sk-label{width:40%;height:.9375rem}.app-weekly-report-page .sk-figures{flex-shrink:0;width:2.25rem;height:.9375rem}.app-weekly-report-page .sk-status{flex-shrink:0;width:3rem;height:var(--t-label)}.app-weekly-report-page .sk-track{flex:1 1 auto;height:6px;border-radius:3px}.app-weekly-report-page .pips.sk-pips .pip{background:var(--rule)}.app-weekly-report-page .sk-weekday{width:50%;height:var(--t-small)}.app-weekly-report-page .sk-copy-ph{min-width:var(--tap-min);min-height:var(--tap-min);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-weekly-report-page .sk-copy-dot{width:17px;height:17px;border-radius:50%}.app-weekly-report-page .sk-besttime{width:8rem;height:.9375rem}.app-weekly-report-page .sk-run-date{width:4rem;height:.84375rem}.app-weekly-report-page .sk-run-num{width:2.25rem;height:.84375rem;margin-left:auto}.app-weekly-report-page .sk-review{width:10rem;height:.9375rem}.app-weekly-report-page .sk-source{width:7rem;height:.75rem}.app-weekly-report-page .sk-notice-icon{flex-shrink:0;margin-top:1px;width:17px;height:17px;border-radius:50%}.app-weekly-report-page .notice__text .sk-notice{display:block;height:.8125rem}.app-weekly-report-page .sk-notice-1{width:92%}.app-weekly-report-page .sk-notice-2{width:58%;margin-top:5px}.app-weekly-targets-page .weekly-targets-page{max-width:36rem;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6)}.app-weekly-targets-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5)}.app-weekly-targets-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-weekly-targets-page .status-line{margin:var(--s-3) 0;color:var(--ink-muted);font-size:var(--t-small)}.app-weekly-targets-page h2.eyebrow{margin:0 0 var(--s-2)}.app-weekly-targets-page .target-list{list-style:none;margin:0 0 var(--s-5);padding:0;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.app-weekly-targets-page .target-row{display:flex;width:100%;justify-content:space-between;align-items:center;gap:var(--s-3);min-height:52px;padding:0 var(--s-4);border:none;border-bottom:1px solid var(--rule);background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit;font-size:.9375rem}.app-weekly-targets-page .target-list li:last-child>.target-row{border-bottom:none}.app-weekly-targets-page .value{display:inline-flex;align-items:center;justify-content:center;min-width:var(--s-8);height:36px;padding:0 var(--s-2);border-radius:var(--radius);background:var(--ground);border:1px solid var(--rule);color:var(--ink);font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:.9375rem}.app-weekly-targets-page li:has(>.qualifying-subline){padding:var(--s-2) 0 var(--s-3)}.app-weekly-targets-page li:has(>.qualifying-subline)>.target-row{min-height:44px;border-bottom:none;padding:0 var(--s-4)}.app-weekly-targets-page .qualifying-subline{display:flex;align-items:center;gap:var(--s-2);margin:0;padding:0 var(--s-4) 0 calc(var(--s-4) + var(--s-3));color:var(--ink-muted);font-size:.84375rem}.app-weekly-targets-page .qualifying-subline .qualifying-value{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-min);height:var(--s-6);padding:0 var(--s-2);border-radius:var(--radius);background:var(--ground);border:1px solid var(--rule);color:var(--ink);font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:.875rem}.app-weekly-targets-page .dojo-note{color:var(--ink-muted);font-size:.8125rem;line-height:1.55;margin-top:var(--s-4)}.app-weekly-targets-page button[data-testid=weekly-targets-add]{min-width:var(--tap-min);min-height:52px;padding:var(--s-2) var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:none;color:var(--ink);font-size:.9375rem;font-weight:600;cursor:pointer;width:100%}.app-weekly-targets-page .sheet{margin-top:var(--s-4);padding:var(--s-4);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-weekly-targets-page .field{display:flex;flex-direction:column;gap:var(--s-1);margin-bottom:var(--s-4)}.app-weekly-targets-page .text-input{min-height:52px;padding:0 14px;font-size:.9375rem;background:var(--raised);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius)}.app-weekly-targets-page .error{color:var(--failed)}.app-weekly-targets-page .sheet-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4)}.app-weekly-targets-page .sheet-actions button{min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--s-2) var(--s-4);background:none;color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-sm);cursor:pointer}.app-weekly-targets-page .retire-note{margin:var(--s-2) 0 0;color:var(--ink-muted);font-size:.8rem}.app-weekly-targets-page .sheet-header{display:flex;align-items:center;gap:var(--s-1);margin-bottom:18px}.app-weekly-targets-page .sheet-header h2{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-weekly-targets-page .close-button{width:var(--tap-min);height:var(--tap-min);margin-left:-12px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);cursor:pointer}.app-weekly-targets-page fieldset.field{min-width:0;margin:0 0 var(--s-4);padding:0;border:none}.app-weekly-targets-page fieldset.field>legend{width:100%;padding:0;margin:0 0 var(--s-2)}.app-weekly-targets-page .choice{gap:var(--s-2)}.app-weekly-targets-page .sheet input[type=radio],.app-weekly-targets-page .sheet input[type=checkbox]{appearance:none;width:20px;height:20px;margin:1px 0 0;flex-shrink:0;background:transparent;border:2px solid var(--ink-muted);border-radius:50%;cursor:pointer}.app-weekly-targets-page .sheet input[type=checkbox]{border-radius:var(--radius-sm)}.app-weekly-targets-page .sheet input[type=radio]:checked{border-color:var(--obi);background-image:radial-gradient(var(--obi) 0 5px,transparent 5px)}.app-weekly-targets-page .sheet input[type=checkbox]:checked{border-color:var(--obi);background:var(--obi)}.app-weekly-targets-page .choice-card{display:flex;gap:var(--s-3);align-items:flex-start;padding:14px;min-height:var(--tap-min);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer}.app-weekly-targets-page .choice-card--selected{border:2px solid var(--obi);padding:13px}.app-weekly-targets-page .choice-body{display:flex;flex-direction:column;gap:2px}.app-weekly-targets-page .choice-title{font-size:.9375rem;font-weight:600}.app-weekly-targets-page .choice-detail{font-size:var(--t-small);color:var(--ink-muted)}.app-weekly-targets-page .stepper{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.app-weekly-targets-page .stepper-button{width:56px;height:56px;font-size:1.5rem;background:var(--raised);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer}.app-weekly-targets-page .stepper-button--gated{border-style:dashed;color:var(--ink-muted);cursor:not-allowed}.app-weekly-targets-page .stepper-value{display:flex;flex-direction:column;align-items:center}.app-weekly-targets-page .stepper-input{width:6ch;min-height:0;padding:0;text-align:center;font-size:2.625rem;background:none;border:none;color:var(--ink)}.app-weekly-targets-page .stepper-hint{font-size:.71875rem;color:var(--ink-muted)}.app-weekly-targets-page .stepper-note{margin:var(--s-1) 0 0;text-align:center;font-size:var(--t-small);color:var(--ink-muted)}.app-weekly-targets-page .presets{display:flex;gap:var(--s-2);margin-top:var(--s-3)}.app-weekly-targets-page .preset{flex:1;min-height:var(--tap-min);font-size:.9375rem;background:var(--raised);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer}.app-weekly-targets-page .sheet-actions .primary-button{width:100%;min-height:52px;background:var(--obi);color:var(--obi-ink);border:none;border-radius:var(--radius);font-size:var(--t-body);font-weight:600}.app-weekly-targets-page .sheet-actions .primary-button--gated,.app-weekly-targets-page .sheet-actions .secondary-button--gated{background:var(--raised);color:var(--ink-muted);border:1px solid var(--rule);cursor:not-allowed}.app-weekly-targets-page .sk-heading{display:block;width:9rem;height:var(--t-label);margin:0 0 var(--s-2)}.app-weekly-targets-page .sk-target-list{list-style:none;margin:0 0 var(--s-5);padding:0;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.app-weekly-targets-page .sk-target-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:52px;padding:0 var(--s-4);border-bottom:1px solid var(--rule)}.app-weekly-targets-page .sk-target-list li:last-child{border-bottom:none}.app-weekly-targets-page .sk-target-list li.sk-qualifying{min-height:44px}.app-weekly-targets-page .sk-row-label{width:44%;height:14px}.app-weekly-targets-page .sk-row-value{flex-shrink:0;width:var(--s-8);height:36px;border-radius:var(--radius)}.app-weekly-targets-page .sk-target-list li.sk-qualifying .sk-row-label{width:62%;height:12px}.app-weekly-targets-page .sk-target-list li.sk-qualifying .sk-row-value{width:var(--tap-min);height:var(--s-6)}.app-weekly-targets-page .sk-target-list li:nth-child(2) .sk-row-label{width:30%}.app-weekly-targets-page .sk-target-list li:nth-child(3) .sk-row-label{width:52%}.app-weekly-targets-page .app-load-failed-panel{margin-top:var(--s-3)}.app-connection-required-panel .wrap{display:flex;flex-direction:column;align-items:center}.app-connection-required-panel .panel{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:36px 24px}.app-connection-required-panel .icon{color:var(--ink-muted);margin-bottom:14px}.app-connection-required-panel h2{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.app-connection-required-panel p{margin:0;max-width:30ch;font-size:var(--t-small);line-height:1.6;color:var(--ink-muted)}.app-connection-required-panel .footnote{margin:var(--s-3) 0 0;font-size:.8125rem;color:var(--ink-muted);text-align:center}.app-copy-control .copy-control-wrap{display:inline-flex;align-items:center}.app-copy-control .copy-control{min-width:var(--tap-min);min-height:var(--tap-min);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-1);padding:0 var(--s-2);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer}.app-copy-control .copy-control--copied{color:var(--met)}.app-copy-control .copied-text{font-size:var(--t-small)}.chip-row--week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;overflow:visible;padding-bottom:0;margin-bottom:0}.chip-row--week+.chip-row--week{margin-top:6px}.app-day-chips [role=radiogroup]{margin-bottom:var(--s-5)}.chip-row--week .chip--day{min-width:0;padding:0 2px}.chip-row--week .chip-slot{height:52px;border-radius:var(--radius);border:1px dashed var(--rule);opacity:.55}.delete-move-half{position:absolute;inset:0;margin:0;pointer-events:none}.delete-move-half--top{clip-path:polygon(0 0,100% 0,100% 36%,0 64%)}.delete-move-half--bottom{clip-path:polygon(0 64%,100% 36%,100% 100%,0 100%)}.delete-move-slash{position:absolute;left:-2%;width:104%;top:50%;height:2px;margin-top:-1px;background:var(--ink);box-shadow:0 0 6px var(--ink);pointer-events:none;transform:rotate(-2.6deg)}.app-icon{display:inline-flex;flex-shrink:0;line-height:0}.app-icon svg{display:block;height:var(--icon-size, var(--icon-intrinsic));width:auto;aspect-ratio:var(--icon-aspect)}.app-load-failed-panel{display:block}.app-load-failed-panel .wrap{display:flex;flex-direction:column;align-items:center}.app-load-failed-panel .panel{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:36px 24px}.app-load-failed-panel .icon{color:var(--ink-muted);margin-bottom:14px}.app-load-failed-panel h2{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.app-load-failed-panel p{margin:0;max-width:30ch;font-size:var(--t-small);line-height:1.6;color:var(--ink-muted)}.app-load-failed-panel .try-again{margin-top:var(--s-5)}.app-load-failed-panel .footnote{max-width:none;margin:var(--s-3) 0 0;font-size:.8125rem;text-align:center}.app-offline-notice .notice{margin:3px 0 14px;color:var(--ink-muted);font-size:.78125rem;line-height:1.5}.app-privacy-notice-text .privacy-text--boxed{max-height:24rem;overflow-y:auto}.app-privacy-notice-text .privacy-text p{margin:0 0 var(--s-3);line-height:var(--t-body-lh)}.app-privacy-notice-text .privacy-text ul{margin:0 0 var(--s-3);padding-inline-start:var(--s-4);line-height:var(--t-body-lh)}.app-privacy-notice-text .privacy-text li{margin-bottom:var(--s-1)}.app-privacy-notice-text .privacy-text h3{margin:var(--s-4) 0 var(--s-2);font-size:var(--t-body)}.app-privacy-notice-text .privacy-text h3:first-of-type{margin-top:0}.app-privacy-notice-text .privacy-text p:last-child{margin-bottom:0}.app-privacy-notice-text .privacy-version{color:var(--ink-muted);font-size:var(--t-small)}.app-record-row .row{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-2) 0;border-bottom:1px solid var(--rule)}.app-record-row .row-top{display:flex;align-items:center;gap:var(--s-2);min-height:var(--tap-min)}.app-record-row .description{flex:1 1 auto;font-size:var(--t-small);color:var(--ink)}.app-record-row .time{flex-shrink:0;font-family:var(--font-data);font-size:var(--t-small);color:var(--ink-muted);font-variant-numeric:tabular-nums}.app-record-row .row--failed{border:1px solid var(--obi);border-radius:var(--radius);padding:var(--s-3) var(--s-4);margin:10px 0}.app-record-row .icon-btn{flex-shrink:0;min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink-muted);cursor:pointer}.app-record-row .failed-actions{display:flex;gap:var(--s-2)}.app-record-row .failed-lead{font-size:var(--t-small);font-weight:600;color:var(--ink)}.app-record-row .btn{flex:1 1 0;min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius-sm);font-size:var(--t-small);cursor:pointer}.app-record-row .btn--retry{background:var(--obi);border:none;color:var(--obi-ink);font-weight:600}.app-record-row .btn--bordered{background:none;border:1px solid var(--rule);color:var(--ink)}.app-session-expired-panel .panel{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:32px 24px}.app-session-expired-panel h2{margin:0 0 8px;font-size:1.0625rem;font-weight:600}.app-session-expired-panel p{margin:0 0 16px;color:var(--ink-muted);font-size:var(--t-small);line-height:1.6}.app-session-expired-panel .sign-in-link{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap-min);min-height:var(--tap-min);padding:0 16px;border-radius:var(--radius-sm);background:var(--obi);color:var(--obi-ink);font-weight:600;text-decoration:none}.app-storage-persistence-notice .notice{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink-muted);font-size:var(--t-small)}.app-storage-persistence-notice .icon{flex-shrink:0;color:var(--pending)}.app-sync-failure-banner .banner{background:var(--raised);border:1px solid var(--obi);border-radius:var(--radius);padding:13px 14px}.app-sync-failure-banner .row{display:flex;align-items:center;gap:12px;width:100%;min-width:var(--tap-min);min-height:var(--tap-min);background:none;border:none;padding:0;cursor:pointer;text-align:left}.app-sync-failure-banner .alert-icon{flex-shrink:0;color:var(--obi)}.app-sync-failure-banner .message{flex:1;font-size:.90625rem;font-weight:600;color:var(--obi)}.app-sync-failure-banner .chevron{flex-shrink:0;color:var(--ink-muted)}.app-sync-state-mark .mark{display:inline-flex;align-items:center;gap:5px}.app-sync-state-mark .mark--pending{color:var(--pending)}.app-sync-state-mark .mark--failed{color:var(--failed);font-size:var(--t-label);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.app-sync-state-mark .knot-tail{transform-box:fill-box}.app-sync-state-mark .knot-tail--left{transform-origin:100% 0}.app-sync-state-mark .knot-tail--right{transform-origin:0 0}.app-sync-state-mark .mark--pending .knot-tail--left{animation:sync-knot-sway 1.1s ease-in-out infinite alternate}.app-sync-state-mark .mark--pending .knot-tail--right{animation:sync-knot-sway 1.1s .14s ease-in-out infinite alternate}@keyframes sync-knot-sway{0%{transform:rotate(-20deg)}to{transform:rotate(20deg)}}.app-sync-state-mark .mark--landed{color:var(--met);width:26px;overflow:visible;animation:sync-knot-cinch 1.6s ease-out both}.app-sync-state-mark .mark--landed .knot-tail--left{animation:sync-knot-tug-left .45s cubic-bezier(.3,1.7,.5,1) both}.app-sync-state-mark .mark--landed .knot-tail--right{animation:sync-knot-tug-right .45s cubic-bezier(.3,1.7,.5,1) both}@keyframes sync-knot-tug-left{0%{transform:rotate(36deg)}to{transform:rotate(0)}}@keyframes sync-knot-tug-right{0%{transform:rotate(-36deg)}to{transform:rotate(0)}}@keyframes sync-knot-cinch{0%{transform:scale(1)}14%{transform:scale(1.45)}26%{transform:scale(.9)}36%{transform:scale(1)}80%{opacity:1;width:26px}to{opacity:0;transform:scale(1);width:0}}.app-target-progress-row .row{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-2) 0;border-bottom:1px solid var(--rule)}.app-target-progress-row .top-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);font-size:.9375rem}.app-target-progress-row .single-line{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);font-size:.9375rem}.app-target-progress-row .right-group{display:flex;align-items:center;gap:10px;flex-shrink:0}.app-target-progress-row .figures{color:var(--ink)}.app-target-progress-row .bottom-line{display:flex;align-items:center;gap:var(--s-3)}.app-target-progress-row .track{flex:1 1 auto;height:6px;border-radius:3px;background:var(--rule);overflow:hidden}.app-target-progress-row .track-fill{height:100%;border-radius:3px;background:var(--obi)}.app-target-progress-row .pips{display:flex;gap:5px}.app-target-progress-row .pip{width:11px;height:11px;border-radius:50%;background:var(--rule);flex-shrink:0}.app-target-progress-row .pip--filled{background:var(--obi)}.app-target-progress-row .status{flex-shrink:0;font-size:var(--t-label);font-weight:600;letter-spacing:.08em;white-space:nowrap}.app-target-progress-row .row--met .status{color:var(--met)}.app-target-progress-row .row:not(.row--met) .status{color:var(--short)}.app-time-picker{display:block;margin-bottom:var(--s-5)}.app-time-picker .time-picker{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-4)}.app-time-picker .time-picker-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s-3)}.app-time-picker .time-picker-readout{font-family:var(--font-data);font-size:1.5rem;font-variant-numeric:tabular-nums}.app-time-picker .time-picker-now{min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-3);border-radius:var(--radius-sm);border:1px solid var(--rule);background:none;color:var(--ink);font-size:var(--t-small);cursor:pointer}.app-time-picker .time-picker-columns{position:relative;display:flex;gap:var(--s-2);height:auto}.app-time-picker .time-picker-columns:before,.app-time-picker .time-picker-columns:after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--obi);pointer-events:none}.app-time-picker .time-picker-columns:before{top:88px}.app-time-picker .time-picker-columns:after{top:132px}.app-time-picker .time-picker-col{flex:1;min-width:0;display:flex;flex-direction:column}.app-time-picker .time-picker-column{flex:none;height:132px;overflow-y:auto;scroll-snap-type:y mandatory;scroll-behavior:smooth;padding:44px 0;outline:none;scrollbar-width:none}.app-time-picker .time-picker-column::-webkit-scrollbar{display:none}.app-time-picker .time-picker-step{height:44px;display:flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:none;color:var(--ink-muted);cursor:pointer}.app-time-picker .time-picker-step:hover{color:var(--ink);background:var(--rule)}.app-time-picker .time-picker-step:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.app-time-picker .time-picker-step app-icon{--icon-size: 16px}.app-time-picker .time-picker-step--up app-icon{transform:rotate(-90deg)}.app-time-picker .time-picker-step--down app-icon{transform:rotate(90deg)}@media(min-width:1024px){.app-time-picker .time-picker-columns:before{top:72px}.app-time-picker .time-picker-columns:after{top:116px}.app-time-picker .time-picker-step{height:28px}}.app-time-picker .time-picker-row{height:44px;display:flex;align-items:center;justify-content:center;font-family:var(--font-data);font-size:1.0625rem;font-variant-numeric:tabular-nums;color:var(--ink-muted);scroll-snap-align:center;cursor:pointer}.app-time-picker .time-picker-row--selected{color:var(--ink);font-weight:600}.app-terms-of-service-text .terms-text--boxed{max-height:24rem;overflow-y:auto}.app-terms-of-service-text .terms-text p{margin:0 0 var(--s-3);line-height:var(--t-body-lh)}.app-terms-of-service-text .terms-text ul{margin:0 0 var(--s-3);padding-inline-start:var(--s-4);line-height:var(--t-body-lh)}.app-terms-of-service-text .terms-text li{margin-bottom:var(--s-1)}.app-terms-of-service-text .terms-text h3{margin:var(--s-4) 0 var(--s-2);font-size:var(--t-body)}.app-terms-of-service-text .terms-text h3:first-of-type{margin-top:0}.app-terms-of-service-text .terms-text p:last-child{margin-bottom:0}.app-terms-of-service-text .terms-version{color:var(--ink-muted);font-size:var(--t-small)}.app-week-selector .week-selector{display:flex;align-items:center;gap:var(--s-2)}.app-week-selector .chevron{flex-shrink:0;min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:var(--raised);border:1px solid var(--rule);color:var(--ink);cursor:pointer}.app-week-selector .range{font-size:.84375rem;color:var(--ink-muted)}.app-week-selector .week-selector--bar{width:100%;height:48px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);gap:0}.app-week-selector .week-selector--bar .chevron{background:none;border:none;border-radius:var(--radius)}.app-week-selector .week-selector--bar .range{flex:1 1 auto;text-align:center;font-size:.90625rem;color:var(--ink)}.app-header .app-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--s-4);min-height:var(--s-7);background:var(--ground)}.app-header .product-name{font-family:var(--font-display);font-size:1.3125rem;font-weight:600;color:var(--ink)}@media(min-width:1024px){.app-header{display:none}}.app-header-menu .header-menu{position:relative}.app-header-menu .trigger{min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}.app-header-menu .scrim{position:fixed;inset:0;background:#0000008c;z-index:19}.app-header-menu .panel{position:absolute;top:0;right:0;width:250px;padding:6px;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:0 16px 48px #0009;z-index:20}.app-header-menu .panel-close{display:flex;justify-content:flex-end}.app-header-menu .panel-close button{width:var(--tap-min);height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);cursor:pointer}.app-header-menu .panel a,.app-header-menu .panel [role=menuitem]{display:flex;align-items:center;gap:var(--s-3);width:100%;min-width:var(--tap-min);min-height:48px;padding:0 var(--s-3);border:none;border-radius:var(--radius);background:none;color:var(--ink);font-size:.9375rem;text-align:left;text-decoration:none;cursor:pointer}.app-header-menu .panel [role=menuitem] app-icon{color:var(--ink-muted)}.app-header-menu .panel a.active,.app-header-menu .panel [role=menuitem]:hover,.app-header-menu .panel [role=menuitem]:focus-visible{background:var(--ground)}.app-header-menu .divider{border-top:1px solid var(--rule);margin:6px var(--s-1)}.app-notice-layer .notice-layer{position:fixed;top:calc(var(--s-7) + var(--s-2));left:var(--s-2);right:var(--s-2);bottom:calc(68px + var(--s-2));z-index:10;display:flex;flex-direction:column;gap:var(--s-2);pointer-events:none}@media(min-width:1024px){.app-notice-layer .notice-layer{top:var(--s-2);left:calc(13.5rem + var(--s-2));bottom:var(--s-2)}}.app-root.signed-out .app-notice-layer .notice-layer{top:var(--s-2);left:var(--s-2);bottom:var(--s-2)}@media(max-width:1023px){.app-root.modal-route .app-notice-layer .notice-layer{top:var(--s-2);left:var(--s-2);bottom:var(--s-2)}}.app-notice-layer .notice-layer>*{pointer-events:auto}.app-notice-layer .offline-notice-slot{padding:0 var(--s-4)}.app-primary-nav .primary-nav{display:flex}.app-primary-nav .primary-nav .product-name,.app-primary-nav .primary-nav .secondary{display:none}.app-primary-nav .primary-nav ul{display:flex;list-style:none;margin:0;padding:0;width:100%}.app-primary-nav .primary-nav li{flex:1;display:flex}.app-primary-nav .primary-nav a{display:flex;flex:1;align-items:center;justify-content:center;min-width:var(--tap-min);min-height:var(--tap-min);text-decoration:none;color:var(--ink-muted);position:relative}.app-primary-nav .primary-nav .nav-label{font-size:var(--t-label)}.app-primary-nav .primary-nav a.active{color:var(--obi)}@media(max-width:1023px){.app-primary-nav .primary-nav{position:fixed;left:0;right:var(--scroll-lock-gap);bottom:0;height:68px;background:var(--ground);border-top:1px solid var(--rule);z-index:5}.app-primary-nav .primary-nav a{flex-direction:column;gap:var(--s-1);padding:10px 0 var(--s-3)}.app-primary-nav .primary-nav a.active:before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;background:var(--obi)}}@media(min-width:1024px){.app-primary-nav{display:block;height:100%}.app-primary-nav .primary-nav{position:sticky;top:0;height:100dvh;overflow-y:auto;box-sizing:border-box;flex-direction:column;width:13.5rem;flex-shrink:0;padding:var(--s-5) 14px;gap:var(--s-1);border-right:1px solid var(--rule)}.app-primary-nav .primary-nav .product-name{display:block;font-family:var(--font-display);font-size:var(--t-body);font-weight:600;padding:0 var(--s-3) 18px}.app-primary-nav .primary-nav ul{flex-direction:column;gap:var(--s-1)}.app-primary-nav .primary-nav li{flex:none}.app-primary-nav .primary-nav a{flex-direction:row;justify-content:flex-start;gap:var(--s-3);height:var(--tap-min);padding:0 var(--s-3);border-radius:var(--radius)}.app-primary-nav .primary-nav a app-icon{--icon-size: 19px}.app-primary-nav .primary-nav .nav-label{font-size:var(--t-small)}.app-primary-nav .primary-nav a.active{background:var(--raised);font-weight:600}.app-primary-nav .primary-nav .secondary{display:flex;flex-direction:column;gap:var(--s-1);margin-top:auto;padding-top:10px;border-top:1px solid var(--rule)}.app-primary-nav .primary-nav .secondary a,.app-primary-nav .primary-nav .secondary button{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--s-3);height:var(--tap-min);padding:0 var(--s-3);border:none;border-radius:var(--radius);background:none;color:var(--ink-muted);font-size:var(--t-small);text-decoration:none;cursor:pointer;text-align:left}.app-primary-nav .primary-nav .secondary a app-icon,.app-primary-nav .primary-nav .secondary button app-icon{--icon-size: 19px}.app-primary-nav .primary-nav .secondary a.active{background:var(--raised);color:var(--obi);font-weight:600}}.app-runtime-error-screen .runtime-error{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6);max-width:var(--measure);margin:0 auto;background:var(--ground);color:var(--ink)}.app-runtime-error-screen .runtime-error h1{font-family:var(--font-display);font-size:var(--t-heading);line-height:var(--t-heading-lh)}.app-runtime-error-screen .runtime-error p{color:var(--ink-muted)}.app-store-degraded-notice .notice{background:var(--raised);display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--pending);border-radius:var(--radius);color:var(--pending);font-size:var(--t-small);flex-wrap:wrap}.app-store-degraded-notice button{min-width:var(--tap-min);min-height:var(--tap-min);border:1px solid currentColor;border-radius:var(--radius-sm);background:transparent;cursor:pointer;color:inherit}.app-update-notice .notice{background:var(--raised);display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--pending);border-radius:var(--radius);color:var(--pending);font-size:var(--t-small);flex-wrap:wrap}.app-update-notice button{min-width:var(--tap-min);min-height:var(--tap-min);border:1px solid currentColor;border-radius:var(--radius-sm);background:transparent;cursor:pointer;color:inherit}.app-root.modal-route .app-update-notice{display:none}.app-submission-alert-card .submission-alert-card{display:flex;flex-direction:column;gap:var(--s-3);margin:var(--s-4) 0}.app-submission-alert-card .alert-line{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--obi);border-radius:var(--radius);text-decoration:none;color:inherit;min-height:var(--tap-min)}.app-submission-alert-card .alert-icon{flex-shrink:0;color:var(--obi)}.app-submission-alert-card .chevron{flex-shrink:0;color:var(--ink-muted)}.app-submission-alert-card .alert-text{flex:1;font-size:.90625rem;font-weight:600;line-height:1.3;color:var(--obi)}.app-submission-alert-card .last-week-label{display:block}.app-submission-alert-card .last-week-range{display:block;margin-top:1px;font-size:.8125rem;font-weight:400;color:var(--ink-muted)}.app-next-up-strip .next-up-strip{margin:0 0 var(--s-3);padding:var(--s-4);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius)}.app-next-up-strip .eyebrow{display:block;margin:0 0 var(--s-3);letter-spacing:.12em}.app-next-up-strip .next-up-list{list-style:none;margin:0;padding:0}.app-next-up-strip .next-up-row{display:flex;align-items:center;gap:var(--s-3);width:100%;min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--s-2) 0;text-decoration:none;color:inherit;border-top:1px solid var(--rule)}.app-next-up-strip li:first-child .next-up-row{border-top:none}.app-next-up-strip .next-up-main{display:flex;flex-direction:column;min-width:0;flex:1}.app-next-up-strip .next-up-name{font-weight:600;color:var(--ink);overflow-wrap:break-word}.app-next-up-strip .next-up-kind{margin-top:1px;font-size:var(--t-small);color:var(--ink-muted)}.app-next-up-strip .next-up-meta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0}.app-next-up-strip .next-up-date{color:var(--ink)}.app-next-up-strip .next-up-time-until{margin-top:1px;font-size:var(--t-small);color:var(--ink-muted)}.app-next-up-strip .chevron{flex-shrink:0;color:var(--ink-muted)}.app-next-up-strip .next-up-see-all{display:flex;align-items:center;justify-content:space-between;min-width:var(--tap-min);min-height:var(--tap-min);margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--rule);text-decoration:none;color:var(--obi);font-weight:600}.app-dates-page .dates-page{max-width:36rem;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6)}.app-dates-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.app-dates-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-dates-page .dates-subtitle{margin:0 0 var(--s-4);color:var(--ink-muted)}.app-dates-page .status-line{margin:var(--s-3) 0;color:var(--ink-muted);font-size:var(--t-small)}.app-dates-page .status-line[role=alert]{color:var(--failed)}.app-dates-page .retry-button{margin-left:var(--s-2);min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-3);background:transparent;border:1px solid var(--rule);border-radius:var(--radius-sm);color:inherit}.app-dates-page .dates-list{list-style:none;margin:0;padding:0}.app-dates-page .dates-row{display:flex;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--rule)}.app-dates-page .dates-row:first-child{border-top:none}.app-dates-page .dates-row-main{display:flex;flex-direction:column;min-width:0;flex:1}.app-dates-page .dates-row-name{font-weight:600;color:var(--ink);overflow-wrap:break-word}.app-dates-page .dates-row-kind{margin-top:1px;font-size:var(--t-small);color:var(--ink-muted)}.app-dates-page .dates-row-notes{margin:var(--s-2) 0 0;font-size:var(--t-small);color:var(--ink-muted)}.app-dates-page .dates-row-meta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0}.app-dates-page .dates-row-date{color:var(--ink)}.app-dates-page .dates-row-time-until,.app-dates-page .dates-row-location{margin-top:1px;font-size:var(--t-small);color:var(--ink-muted)}.app-dates-page .sk-line{display:flex;align-items:center}.app-dates-page .sk-line-name{height:calc(var(--t-body-lh) * var(--t-body))}.app-dates-page .sk-line-kind{height:calc(var(--t-small-lh) * var(--t-small));margin-top:1px}.app-dates-page .dates-row-meta .sk-line-date{height:calc(var(--t-body-lh) * var(--t-body));justify-content:flex-end}.app-dates-page .dates-row-meta .sk-line-time-until{height:calc(var(--t-small-lh) * var(--t-small));margin-top:1px;justify-content:flex-end}.app-dates-page .sk-name{width:62%;height:14px}.app-dates-page .sk-kind{width:34%;height:11px}.app-dates-page .sk-date{width:4rem;height:14px}.app-dates-page .sk-time-until{width:3rem;height:11px}.app-dates-page .dates-list.sk-group>li:nth-child(2) .sk-name{width:46%}.app-dates-page .dates-list.sk-group>li:nth-child(3) .sk-name{width:54%}.app-dates-page .dates-list.sk-group>li:nth-child(4) .sk-name{width:40%}.app-dates-page .dates-refresh-notice{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:0 0 var(--s-3);padding:var(--s-3);background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius-sm);color:var(--ink-muted);font-size:var(--t-small)}.app-dates-page .try-again--compact{flex-shrink:0;min-width:0;height:32px;padding:0 var(--s-3);font-size:var(--t-small)}.app-dates-page .try-again--compact[aria-disabled=true]{opacity:.6;cursor:default}.app-readiness-meter{display:block}.app-readiness-meter .eyebrow{margin:0 0 var(--s-2)}.app-readiness-meter .meter-head{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap}.app-readiness-meter .meter-pct{font-family:var(--font-data);font-size:1.625rem;font-variant-numeric:tabular-nums}.app-readiness-meter .verdict{font-size:var(--t-small);font-weight:600}.app-readiness-meter .verdict.ready{color:var(--met)}.app-readiness-meter .verdict.not{color:var(--ink-muted)}.app-readiness-meter .verdict.ready:before{content:"\2713  "}.app-readiness-meter .meter-detail{margin:2px 0 var(--s-3);color:var(--ink-muted);font-size:.8125rem}.app-readiness-meter .bar{position:relative;height:6px;background:var(--rule);border-radius:3px}.app-readiness-meter .bar-fill{height:100%;background:var(--obi);border-radius:3px;transition:width .5s ease}.app-readiness-meter .bar-fill.ready{background:var(--met)}.app-readiness-meter .bar-threshold{position:absolute;left:90%;top:-3px;width:2px;height:12px;background:var(--ink-muted)}.app-readiness-meter .topic-meter-row{display:grid;grid-template-columns:1fr auto;gap:4px var(--s-3);align-items:baseline;font-size:var(--t-small)}.app-readiness-meter .topic-meter-row .meter-detail{grid-column:1 / -1;margin:0}.app-readiness-meter .topic-meter-row .bar{grid-column:1 / -1;height:4px}.app-readiness-meter .topic-meter-row .bar-threshold{height:10px}.app-readiness-meter .tm-figure{font-family:var(--font-data);font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:.8125rem}.app-readiness-meter .tm-figure b{color:var(--ink);font-weight:600}.app-learn-switch{display:block}.app-learn-switch .seg-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;margin:0 0 var(--s-4);background:var(--ground);border:1px solid var(--rule);border-radius:999px}.app-learn-switch .seg-switch a{min-height:38px;min-width:var(--tap-min);border-radius:999px;color:var(--ink-muted);font-weight:600;font-size:.9375rem;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s ease,color .15s ease}.app-learn-switch .seg-switch a:hover:not([aria-current=page]){color:var(--ink)}.app-learn-switch .seg-switch a:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-learn-switch .seg-switch a[aria-current=page]{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px var(--rule)}.app-learn-switch .new-dot{width:7px;height:7px;border-radius:50%;background:var(--accolade)}@media(min-width:1024px){.app-learn-switch .seg-switch{max-width:360px}}.app-knowledge-start-error{display:block}.app-knowledge-start-error .start-error{margin:var(--s-3) 0 0;padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--failed) 40%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--failed) 10%,transparent);font-size:var(--t-small)}.app-knowledge-page .card,.app-knowledge-topic-page .card,.app-knowledge-results-page .card{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-4)}.app-knowledge-page .meter-card,.app-knowledge-topic-page .meter-card,.app-knowledge-results-page .meter-card{margin-bottom:var(--s-5)}.app-knowledge-page .btn,.app-knowledge-topic-page .btn,.app-knowledge-results-page .btn{min-height:48px;width:100%;border-radius:var(--radius);border:1px solid var(--rule);background:var(--raised);color:var(--ink);font:inherit;cursor:pointer;font-weight:600;display:flex;align-items:center;justify-content:center;gap:var(--s-2);text-decoration:none}.app-knowledge-page .btn-primary,.app-knowledge-topic-page .btn-primary,.app-knowledge-results-page .btn-primary{background:var(--obi);color:var(--obi-ink);border-color:var(--obi)}.app-knowledge-page .btn[aria-disabled=true],.app-knowledge-topic-page .btn[aria-disabled=true],.app-knowledge-results-page .btn[aria-disabled=true]{opacity:.6;cursor:default}.app-knowledge-page .btn:focus-visible,.app-knowledge-topic-page .btn:focus-visible,.app-knowledge-results-page .btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-knowledge-page .btn-row,.app-knowledge-topic-page .btn-row,.app-knowledge-results-page .btn-row{display:grid;gap:var(--s-2)}.app-knowledge-page .section-h,.app-knowledge-results-page .section-h{font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 var(--s-2)}.app-knowledge-page .skel,.app-knowledge-topic-page .skel,.app-knowledge-results-page .skel{background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s-4);margin-bottom:var(--s-3);display:grid;gap:10px}.app-knowledge-page .sk-line-a,.app-knowledge-topic-page .sk-line-a,.app-knowledge-results-page .sk-line-a{height:13px;width:40%}.app-knowledge-page .sk-line-b,.app-knowledge-topic-page .sk-line-b,.app-knowledge-results-page .sk-line-b{height:13px;width:85%}.app-knowledge-page .sk-line-c,.app-knowledge-topic-page .sk-line-c{height:13px;width:55%}.app-knowledge-page .sk-line-d,.app-knowledge-topic-page .sk-line-d{height:13px;width:45%}.app-knowledge-page .retry-button,.app-knowledge-topic-page .retry-button{display:block;margin:var(--s-3) auto 0;min-width:var(--tap-min);min-height:var(--tap-min);padding:0 var(--s-5);border:none;border-radius:var(--radius);background:var(--obi);color:var(--obi-ink);font-size:var(--t-small);font-weight:600;cursor:pointer}.app-knowledge-page .blank,.app-knowledge-results-page .blank{display:inline-block}.app-knowledge-page .knowledge-page{max-width:40rem;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6)}.app-knowledge-page .page-header{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.app-knowledge-page .page-header h1{margin:0;font-family:var(--font-display);font-size:1.3125rem;font-weight:600}.app-knowledge-page .topic-meters{list-style:none;margin:var(--s-4) 0 0;padding:var(--s-3) 0 0;border-top:1px solid var(--rule);display:grid;gap:var(--s-3)}.app-knowledge-page .chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-4)}.app-knowledge-page .read-block{margin-bottom:var(--s-6)}.app-knowledge-page .topic-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.app-knowledge-page .topic-link{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px var(--s-3);align-items:center;padding:var(--s-4);border-radius:var(--radius);border:1px solid var(--rule);background:var(--raised);color:var(--ink);text-decoration:none;min-height:var(--tap-min)}.app-knowledge-page .topic-link:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-knowledge-page .topic-link .t-title{font-family:var(--font-display);font-size:1.125rem;font-weight:600}.app-knowledge-page .topic-link .t-meta{grid-column:1;font-size:.8125rem;color:var(--ink-muted)}.app-knowledge-page .topic-link .chev{grid-row:1 / 3;grid-column:2;display:flex;color:var(--ink-muted)}@media(min-width:1024px){.app-knowledge-page .knowledge-page{max-width:60rem;padding:var(--s-6)}.app-knowledge-page .study-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-5);align-items:start}}.app-knowledge-topic-page .knowledge-topic-page{max-width:40rem;margin:0 auto;padding:var(--s-3) var(--s-4) var(--s-6)}.app-knowledge-topic-page .back{display:inline-flex;align-items:center;gap:6px;color:var(--ink-muted);text-decoration:none;min-height:var(--tap-min);font-size:var(--t-small)}.app-knowledge-topic-page .back:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-knowledge-topic-page .page-title{font-family:var(--font-display);font-size:var(--t-display);line-height:var(--t-display-lh);margin:0 0 var(--s-4)}.app-knowledge-topic-page .meter-card .btn-row{margin-top:var(--s-4)}.app-knowledge-topic-page .reading>:not(.waza-families){max-width:var(--measure)}.app-knowledge-topic-page .reading h2{font-family:var(--font-display);font-size:var(--t-heading);margin:var(--s-6) 0 var(--s-2)}.app-knowledge-topic-page .reading p{margin:0 0 var(--s-3);line-height:1.7}.app-knowledge-topic-page .timeline{list-style:none;margin:var(--s-3) 0 var(--s-4);padding:0;display:grid;gap:var(--s-3);border-left:2px solid var(--rule)}.app-knowledge-topic-page .timeline li{display:grid;grid-template-columns:3.5em 1fr;gap:var(--s-3);padding-left:var(--s-3);line-height:1.6}.app-knowledge-topic-page .tl-year{font-family:var(--font-data);font-weight:600;color:var(--obi);font-variant-numeric:tabular-nums}.app-knowledge-topic-page .reading .motto{border-left:2px solid var(--obi);padding-left:var(--s-3);color:var(--ink-muted);font-size:var(--t-small)}.app-knowledge-topic-page .end-action{margin-top:var(--s-5)}.app-knowledge-topic-page .panel{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--raised);border:1px solid var(--rule);border-radius:var(--radius);padding:36px 24px}.app-knowledge-topic-page .panel h2{margin:0 0 8px;font-size:1.0625rem}.app-knowledge-topic-page .panel p{margin:0 0 var(--s-3);max-width:30ch;font-size:var(--t-small);color:var(--ink-muted)}.app-knowledge-topic-page .not-found-link{color:var(--obi);font-weight:600;min-height:var(--tap-min);display:inline-flex;align-items:center}.app-knowledge-topic-page .waza-families{display:grid;gap:var(--s-3);margin:var(--s-3) 0 var(--s-5)}.app-knowledge-topic-page .wz-family{background:var(--raised);border:1px solid var(--rule);border-radius:12px;padding:var(--s-3) var(--s-4)}.app-knowledge-topic-page .wz-family h3{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.app-knowledge-topic-page .wz-jp{font-family:var(--font-display);font-size:1.25rem;font-weight:400}.app-knowledge-topic-page .wz-en{font-family:var(--font-ui);font-size:var(--t-small);color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase}.app-knowledge-topic-page .wz-family p{margin:6px 0 0}.app-knowledge-topic-page .wz-tiles{list-style:none;padding:0;margin:var(--s-3) 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.app-knowledge-topic-page .wz-tile{width:100%;height:100%;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:6px 6px 8px;border-radius:10px;border:1px solid var(--rule);background:var(--ground);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.app-knowledge-topic-page .wz-tile:hover{border-color:var(--ink-muted)}.app-knowledge-topic-page .wz-tile:focus-visible{outline:2px solid var(--obi);outline-offset:2px}.app-knowledge-topic-page .wz-tile--static{cursor:default}.app-knowledge-topic-page .wz-tile--static:hover{border-color:var(--rule)}.app-knowledge-topic-page .wz-tile-plate{display:grid;place-items:center;aspect-ratio:1136 / 776;border-radius:6px;background-color:var(--plate);box-shadow:inset 0 0 0 1px var(--rule);overflow:hidden}.app-knowledge-topic-page .wz-tile-plate.shimmer{--sheen-width: 10rem;background-color:var(--plate);background-image:linear-gradient(90deg,transparent,var(--rule),transparent)}.app-knowledge-topic-page .wz-tile-plate img{display:block;width:100%;height:100%;object-fit:contain;padding:6px;opacity:0;transition:opacity .2s ease-out}.app-knowledge-topic-page .wz-tile-plate.is-loaded img{opacity:1}.app-knowledge-topic-page .wz-text{display:flex;flex-direction:column;padding:0 4px}.app-knowledge-topic-page .wz-pic{color:var(--ink-muted)}.wz-backdrop{background:#0000008c}.wz-sheet-pane app-technique-drawing-sheet{display:block;width:100%}.wz-sheet-pane .wz-sheet{background:var(--raised);border-top:1px solid var(--rule);border-radius:18px 18px 0 0;padding:10px var(--s-4) calc(var(--s-5) + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 32px #00000059;animation:wz-up .22s ease-out}@keyframes wz-up{0%{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}@keyframes wz-fade{0%{opacity:0}to{opacity:1}}.wz-sheet-pane .wz-grab{width:40px;height:4px;border-radius:2px;background:var(--rule);margin:0 auto 8px}.wz-sheet-pane .wz-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}.wz-sheet-pane .wz-titles{min-width:0}.wz-sheet-pane .wz-close{flex:none;width:var(--tap-min);height:var(--tap-min);display:grid;place-items:center;border:1px solid var(--rule);background:var(--ground);color:var(--ink);cursor:pointer;border-radius:50%}.wz-sheet-pane .wz-close:hover{border-color:var(--ink-muted)}.wz-sheet-pane .wz-close:focus-visible{outline:2px solid var(--obi)}.wz-sheet-pane .wz-plate{margin-top:var(--s-3);background:var(--plate);box-shadow:inset 0 0 0 1px var(--rule);border-radius:var(--radius);padding:10px;height:clamp(200px,42vh,320px)}.wz-sheet-pane .wz-plate img{display:block;width:100%;height:100%;object-fit:contain}.wz-sheet-pane .wz-sheet-jp{font-family:var(--font-display);font-weight:400;font-size:1.5rem;line-height:1.2;margin:2px 0 0}.wz-sheet-pane .wz-sheet-en{margin:2px 0 0;color:var(--ink-muted)}.wz-sheet-pane .wz-sheet-level{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.app-knowledge-topic-page .wz-name{font-size:.95rem}.app-knowledge-topic-page .wz-level{font-size:11px;color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase}@media(min-width:1024px){.wz-sheet-pane .wz-sheet{border:1px solid var(--rule);border-radius:18px;padding-bottom:var(--s-5);animation:wz-fade .22s ease-out}.wz-sheet-pane .wz-grab{display:none}.wz-sheet-pane .wz-plate{height:clamp(280px,50vh,440px)}}@media(min-width:1024px){.app-knowledge-topic-page .knowledge-topic-page{max-width:48rem;padding:var(--s-5) var(--s-6) var(--s-6)}}.app-knowledge-question-page .prompt{font-family:var(--font-display);font-size:1.625rem;font-weight:400;line-height:1.35;text-align:center;margin:var(--s-4) 0 var(--s-6);text-wrap:balance}.app-knowledge-question-page .blank{display:inline-block;min-width:5.5em;border-bottom:2px solid var(--obi);margin:0 .15em;line-height:1.1}.app-knowledge-question-page .blank--filled{min-width:0;color:var(--met);border-bottom-color:var(--met);padding:0 .1em}.app-knowledge-question-page .blank--filled.blank--wrong{color:var(--ink)}.app-knowledge-results-page .knowledge-results-page{max-width:40rem;min-height:100dvh;margin:0 auto;padding:var(--s-3) var(--s-4) var(--s-6)}.app-knowledge-results-page .topbar{display:flex;align-items:center}.app-knowledge-results-page .close-button{width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);cursor:pointer;margin-left:calc(-1 * var(--s-3))}.app-knowledge-results-page .score{text-align:center;margin:var(--s-3) 0 var(--s-5)}.app-knowledge-results-page .score-big{font-family:var(--font-display);font-size:3.25rem;line-height:1}.app-knowledge-results-page .score-sub{color:var(--ink-muted);font-size:var(--t-small);margin-top:var(--s-2)}.app-knowledge-results-page .miss-list{list-style:none;margin:0 0 var(--s-5);padding:0;display:grid;gap:var(--s-2)}.app-knowledge-results-page .miss{padding:var(--s-3) var(--s-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--raised);font-size:var(--t-small)}.app-knowledge-results-page .m-prompt{margin:0 0 4px}.app-knowledge-results-page .blank--filled{color:var(--met);font-weight:600;border-bottom:2px solid var(--met);padding:0 .1em;margin:0 .15em}.app-knowledge-results-page .m-yours{color:var(--ink-muted)}.app-knowledge-results-page .no-misses{text-align:center;color:var(--ink-muted);font-size:var(--t-small);margin:0 0 var(--s-5)}.app-drill-question-page .review-chip{font:600 11px var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--obi);border:1px solid color-mix(in srgb,var(--obi) 45%,transparent);border-radius:999px;padding:5px 10px}.app-drill-question-page .topbar-end{margin-left:auto;display:flex;align-items:center;gap:10px}.app-drill-question-page .queue-stack{position:relative;width:34px;height:24px}.app-drill-question-page .queue-card{position:absolute;top:0;width:18px;height:24px;border-radius:4px;background:var(--raised);border:1.5px solid var(--obi)}.app-drill-question-page .queue-card--new{animation:rq-join .55s cubic-bezier(.2,.8,.3,1.3) .1s both}@keyframes rq-join{0%{translate:-60px 40px;scale:.6;opacity:0}to{translate:0 0;scale:1;opacity:1}}.app-drill-question-page .counter--bump{display:inline-block;animation:dq-pop .4s cubic-bezier(.2,.8,.3,1)}.app-drill-question-page .review-meter{position:relative;height:14px;border-radius:999px;margin:var(--s-3) 0 var(--s-4);background:color-mix(in srgb,var(--ink) 10%,transparent)}.app-drill-question-page .review-meter-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--met);overflow:hidden;transition:width .6s cubic-bezier(.3,1.5,.5,1)}.app-drill-question-page .review-meter-fill:before{content:"";position:absolute;left:6px;right:6px;top:3px;height:3px;border-radius:2px;background:color-mix(in srgb,white 45%,transparent)}.app-drill-question-page .review-meter-fill:after{content:"";position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,color-mix(in srgb,white 35%,transparent),transparent);animation:rq-shine 1.6s ease-in-out .4s 2 both}@keyframes rq-shine{0%{transform:translate(-120%)}to{transform:translate(320%)}}.app-drill-question-page .fix-pop{position:absolute;right:0;top:-6px;font:700 13px var(--font-data);color:var(--met);animation:rq-float 1.1s ease-out both;pointer-events:none}@keyframes rq-float{0%{transform:translateY(6px) scale(.6);opacity:0}25%{transform:translateY(-10px) scale(1.15);opacity:1}to{transform:translateY(-34px) scale(1);opacity:0}}.app-drill-question-page .stage--enter{animation:rq-in .38s cubic-bezier(.2,.8,.3,1) both}@keyframes rq-in{0%{transform:translate(48px);opacity:0}to{transform:none;opacity:1}}.app-drill-question-page .stage--exit-fixed{animation:rq-out-up .3s ease-in both}@keyframes rq-out-up{to{transform:translateY(-28px) scale(.97);opacity:0}}.app-drill-question-page .stage--exit-back{animation:rq-out-back .34s ease-in both;transform-origin:top right}@keyframes rq-out-back{to{transform:translate(60px,-40px) rotate(8deg) scale(.35);opacity:0}}.app-drill-question-page .banner--oomph .banner-sub strong{color:var(--accolade)}.app-drill-question-page .review-intro{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--s-4);padding:var(--s-6) 0}.app-drill-question-page .deal{position:relative;height:150px;margin-bottom:var(--s-2)}.app-drill-question-page .deal-card{position:absolute;left:50%;top:0;width:min(78%,300px);height:130px;translate:-50% 0;padding:14px 16px;border-radius:14px;background:var(--raised);border:1.5px solid color-mix(in srgb,var(--failed) 55%,transparent);box-shadow:0 10px 30px color-mix(in srgb,black 40%,transparent);font:600 17px/1.35 var(--font-display);color:var(--ink);animation:rq-deal .55s cubic-bezier(.2,.8,.3,1.2) both}.app-drill-question-page .deal-card .deal-x{display:inline-flex;width:22px;height:22px;border-radius:50%;align-items:center;justify-content:center;background:var(--failed);color:var(--obi-ink);font:700 12px var(--font-ui);margin-bottom:8px}@keyframes rq-deal{0%{transform:translateY(120px) rotate(0) scale(.7);opacity:0}to{transform:translate(var(--dx)) rotate(var(--rot));opacity:1}}.app-drill-question-page .review-intro h1{font:700 34px/1.1 var(--font-display);margin:0;text-wrap:balance;animation:dq-pop .45s cubic-bezier(.2,.8,.3,1) .5s both}.app-drill-question-page .review-intro p{margin:0;color:var(--ink-muted);font:16px/1.5 var(--font-ui);max-width:32rem}.app-drill-question-page .review-count{font:600 13px var(--font-data);letter-spacing:.08em;color:var(--ink)}.app-drill-question-page .review-start{align-self:stretch;font:700 17px var(--font-ui);color:var(--obi-ink);background:var(--obi);border:0;border-radius:14px;padding:16px;cursor:pointer;box-shadow:0 5px color-mix(in srgb,var(--obi) 55%,black);transition:transform .08s,box-shadow .08s;animation:rq-nudge 1.8s ease-in-out 1.4s 2}.app-drill-question-page .review-start:active{transform:translateY(4px);box-shadow:0 1px color-mix(in srgb,var(--obi) 55%,black)}.app-drill-question-page .review-start:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@keyframes rq-nudge{0%,to{scale:1}10%{scale:1.04}20%{scale:1}30%{scale:1.03}40%{scale:1}}.app-drill-question-page .deal-card .deal-big{display:block;font:700 24px/1.2 var(--font-display)}.app-drill-question-page .deal-card .deal-meta{display:block;margin-top:6px;font:600 12px var(--font-data);letter-spacing:.08em;color:var(--ink-muted)}.app-drill-question-page .deal-card .deal-drawing{display:block;width:100%;height:78px;object-fit:contain}
