.icon{display:inline-block;flex:none;vertical-align:-.2em;overflow:visible}.icon *{vector-effect:non-scaling-stroke}.logo{display:inline-flex;align-items:center;gap:.42em;color:var(--ink);text-decoration:none;line-height:1;font-size:var(--logo-size, 1.5rem)}.logo__mark{width:1.12em;height:1.12em;flex:none;overflow:visible}.logo__box{stroke:currentColor}.logo__x{stroke:var(--pen)}.logo__text{font-family:var(--font-display);font-weight:800;font-stretch:82%;letter-spacing:-.025em;transform:translateY(.02em)}.logo__sub{margin-left:.3em;padding-left:.6em;border-left:var(--hairline);font-family:var(--font-mono);font-size:.42em;font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2);line-height:1.25}.toast-region{position:fixed;right:var(--s-5);bottom:var(--s-5);z-index:var(--z-toast);width:min(400px,calc(100vw - 32px));pointer-events:none}.toast-region__list{display:flex;flex-direction:column;gap:var(--s-3);margin:0;padding:0;list-style:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:12px 10px 14px 14px;border:var(--border-ink);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-hard);color:var(--ink);pointer-events:auto}@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in var(--t-med) var(--ease)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast__icon{display:inline-flex;margin-top:2px;color:var(--toast-c, var(--pen))}.toast--ok{--toast-c: var(--ok)}.toast--error{--toast-c: var(--red)}.toast--warn{--toast-c: var(--ink)}.toast__body{flex:1;min-width:0;display:grid;gap:2px}.toast__kicker{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--toast-c, var(--pen))}.toast--warn .toast__kicker{color:var(--ink-2)}.toast__title{font-weight:600}.toast__msg{font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2)}.toast__action{justify-self:start;margin-top:6px;font-size:var(--fs-sm);font-weight:600;color:var(--pen);text-decoration:underline;text-underline-offset:.2em}.toast__close{display:inline-flex;padding:4px;border-radius:2px;color:var(--ink-2)}.toast__close:hover{color:var(--pen);background:var(--pen-soft)}@media(max-width:47.5em){.toast-region{left:16px;right:16px;bottom:16px;width:auto}}.skeleton{display:block;min-height:12px;border-radius:2px;background:var(--rule);opacity:.55}.skeleton--line{height:.8em;min-height:0;margin-block:.35em}.skeleton-lines{display:block}@media(prefers-reduced-motion:no-preference){.skeleton{animation:skeleton-breathe 1.4s ease-in-out infinite alternate}}@keyframes skeleton-breathe{0%{opacity:.35}to{opacity:.7}}.loader{display:inline-grid;gap:8px;min-width:180px}.loader--inline{display:inline-flex;align-items:center;gap:10px;min-width:0}.loader--pending{visibility:hidden}.loader__label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2);min-height:1.4em}.loader__line{position:relative;display:block;width:180px;height:2px;background:var(--rule);overflow:hidden}.loader--inline .loader__line{width:56px}.loader__run{position:absolute;top:0;left:0;width:36%;height:100%;background:var(--pen)}@media(prefers-reduced-motion:no-preference){.loader__run{animation:loader-run 1.1s cubic-bezier(.5,0,.3,1) infinite}}@keyframes loader-run{0%{transform:translate(-100%)}to{transform:translate(280%)}}.page-loader{padding-block:var(--s-9)}.btn{--btn-h: 44px;--btn-px: 18px;--btn-fs: var(--fs-md);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--btn-h);padding:0 var(--btn-px);border:1.5px solid transparent;border-radius:var(--radius);font-family:var(--font-body);font-size:var(--btn-fs);font-weight:600;line-height:1.1;letter-spacing:.005em;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.btn:hover{text-decoration:none}.btn--sm{--btn-h: 36px;--btn-px: 12px;--btn-fs: var(--fs-sm);gap:8px}.btn--lg{--btn-h: 54px;--btn-px: 24px;--btn-fs: 1.0625rem}.btn--block{display:flex;width:100%}.btn__icon{display:inline-flex;margin-inline:-2px}.btn__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.btn__kbd{margin-left:2px;margin-right:-6px;padding:2px 5px;border:1px solid currentColor;border-radius:2px;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.04em;line-height:1.2;opacity:.7}.btn--primary{background:var(--ink);border-color:var(--ink);color:var(--paper);box-shadow:var(--shadow-hard-pen)}.btn--primary:hover{color:var(--paper);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--pen)}.btn--primary:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--pen)}.btn--primary:focus-visible{outline-offset:4px}.btn--secondary{background:var(--surface);border-color:var(--ink);color:var(--ink)}.btn--secondary:hover{color:var(--ink);box-shadow:var(--shadow-hard-sm);transform:translate(-1px,-1px)}.btn--secondary:active{transform:translate(1px,1px);box-shadow:none}.btn--ghost{background:transparent;color:var(--ink);--btn-px: 12px}.btn--ghost:hover{color:var(--pen);background:var(--pen-soft)}.btn--link{--btn-h: auto;--btn-px: 0;min-height:0;border:0;border-radius:1px;background:none;color:var(--pen);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.btn--link:hover{color:var(--pen-hover);text-decoration-thickness:2px}.btn--danger{background:var(--surface);border-color:var(--red);color:var(--red)}.btn--danger:hover{background:var(--red);color:var(--on-solid);box-shadow:var(--shadow-hard-sm);transform:translate(-1px,-1px)}.btn--danger:active{transform:translate(1px,1px);box-shadow:none}.btn--icon{--btn-px: 0;width:var(--btn-h);padding:0}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;transform:none;box-shadow:none}.btn--primary:disabled{background:var(--rule);border-color:var(--rule);color:var(--ink-2)}.btn--secondary:disabled,.btn--danger:disabled,.btn--ghost:disabled{border-color:var(--rule);color:var(--ink-3);background:transparent}.btn.is-loading{cursor:progress}.btn.is-loading .btn__label,.btn.is-loading .btn__icon,.btn.is-loading .btn__kbd{visibility:hidden}.btn__dots{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px}.btn__dots i{width:5px;height:5px;background:currentColor;animation:btn-dot .9s steps(1) infinite}.btn__dots i:nth-child(2){animation-delay:.15s}.btn__dots i:nth-child(3){animation-delay:.3s}@keyframes btn-dot{0%,to{opacity:.25}33%{opacity:1}}@media(prefers-reduced-motion:reduce){.btn,.btn:hover,.btn:active{transform:none!important}.btn__dots i{animation:none;opacity:.7}}.stamp{--stamp-color: var(--ink-2);--stamp-fs: 1.5rem;display:inline-block;transform:rotate(var(--stamp-rot, -6deg));transform-origin:50% 50%;color:var(--stamp-color);mix-blend-mode:multiply;pointer-events:none;-webkit-user-select:none;user-select:none}[data-theme=dark] .stamp{mix-blend-mode:normal}.stamp--ok{--stamp-color: var(--ok)}.stamp--fail{--stamp-color: var(--red)}.stamp--neutral{--stamp-color: var(--ink-2)}.stamp--pen{--stamp-color: var(--pen)}.stamp--sm{--stamp-fs: .95rem}.stamp--lg{--stamp-fs: 2.4rem}.stamp__defs{position:absolute;width:0;height:0;overflow:hidden}.stamp__ink{--stamp-edge: color-mix(in srgb, currentColor 88%, transparent);display:inline-grid;justify-items:center;gap:.18em;padding:.38em .7em .42em;border:max(2.5px,calc(var(--stamp-fs) * .11)) solid var(--stamp-edge);border-radius:.2em;outline:max(1px,calc(var(--stamp-fs) * .045)) solid var(--stamp-edge);outline-offset:max(-6px,calc(var(--stamp-fs) * -.26));font-family:var(--font-display);font-stretch:72%;font-weight:850;line-height:.95;text-transform:uppercase;white-space:nowrap}.stamp__label{font-size:var(--stamp-fs);letter-spacing:.04em}.stamp__detail{font-family:var(--font-mono);font-size:calc(var(--stamp-fs) * .46);font-weight:500;letter-spacing:.12em;font-variant-numeric:tabular-nums}.stamp__sub{font-family:var(--font-mono);font-size:calc(var(--stamp-fs) * .32);font-weight:400;letter-spacing:.14em}@media(prefers-reduced-motion:no-preference){.stamp--animate{animation:stamp-press var(--t-slow) cubic-bezier(.3,.6,.2,1.2) both;animation-delay:var(--stamp-delay, .12s)}}@keyframes stamp-press{0%{opacity:0;transform:rotate(var(--stamp-rot, -6deg)) scale(var(--stamp-press, 1.35))}60%{opacity:1}to{opacity:1;transform:rotate(var(--stamp-rot, -6deg)) scale(1)}}@container shell-main (max-width: 20rem){.stamp{max-width:92%}.stamp__ink{white-space:normal}}.field{display:grid;gap:6px;min-width:0}.field__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.field__label{font-size:var(--fs-sm);font-weight:600;color:var(--ink);letter-spacing:.005em}.field__optional{margin-left:.6em;font-family:var(--font-mono);font-size:.6875rem;font-weight:400;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.field__aside{font-size:var(--fs-sm)}.field__hint{font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2)}.field__error{display:flex;align-items:flex-start;gap:6px;font-size:var(--fs-sm);font-weight:500;line-height:1.4;color:var(--red)}.field__error .icon{margin-top:.15em}.input{position:relative;display:flex;align-items:stretch;min-height:48px;border:1px solid var(--ink-3);border-radius:2px;background:var(--surface);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.input:hover{border-color:var(--ink-2)}.input:focus-within{border-color:var(--pen);box-shadow:0 0 0 1px var(--pen)}.field--invalid .input{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}.field--invalid .input:focus-within{border-color:var(--pen);box-shadow:0 0 0 1px var(--pen)}.input__control{flex:1;min-width:0;width:100%;padding:11px 14px;border:0;background:transparent;font-size:1rem;line-height:1.5;color:var(--ink)}.input__control:focus-visible{outline:none}.input__control::placeholder{color:var(--ink-3);opacity:1}.input__control[type=number]{font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}.input__control::-webkit-outer-spin-button,.input__control::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input__control:disabled{color:var(--ink-2);cursor:not-allowed}.input:has(.input__control:disabled){background:var(--surface-2);border-style:dashed}.input:where(:has(.input__control:disabled)){border-color:var(--rule-strong)}textarea.input__control--area{min-height:120px;border:1px solid var(--ink-3);border-radius:2px;background:var(--surface);resize:vertical}textarea.input__control--area:focus-visible{outline:2px solid var(--pen);outline-offset:0}.input__affix{display:flex;align-items:center;padding:0 14px;border-left:var(--hairline);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap}.input__affix--pre{border-left:0;border-right:var(--hairline)}.input__toggle{display:flex;align-items:center;gap:6px;padding:0 12px;border-left:var(--hairline);font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2);border-radius:0 2px 2px 0}.input__toggle:hover{color:var(--pen);background:var(--pen-soft)}.input__toggle:focus-visible{outline-offset:-2px}@media(max-width:26.25em){.input__toggle-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}.check{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer;line-height:1.4}.check__boxwrap{position:relative;flex:none;width:22px;height:22px;margin-top:.05em}.check__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.check__box{display:block;width:22px;height:22px;border:1.5px solid var(--ink);border-radius:2px;background:var(--surface);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.check__box svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--paper);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0}.check__tick path{stroke-dasharray:1;stroke-dashoffset:1}.check__input:checked+.check__box{background:var(--pen);border-color:var(--pen)}.check__input:checked+.check__box .check__tick{opacity:1}.check__input:checked+.check__box .check__tick path{stroke-dashoffset:0;transition:stroke-dashoffset var(--t-med) var(--ease)}.check__input:indeterminate+.check__box{background:var(--pen);border-color:var(--pen)}.check__input:indeterminate+.check__box .check__dash{opacity:1}.check__input:indeterminate+.check__box .check__tick{opacity:0}.check:hover .check__input:not(:checked):not(:disabled)+.check__box{border-color:var(--pen)}.check__input:focus-visible+.check__box{outline:2px solid var(--pen);outline-offset:2px}.check__input:disabled+.check__box{border-color:var(--rule-strong);background:var(--surface-2)}.check:has(.check__input:disabled){cursor:not-allowed;color:var(--ink-2)}.check__text{display:grid;gap:2px}.check__label{font-weight:500}.check__desc{font-size:var(--fs-sm);color:var(--ink-2)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);cursor:pointer}.toggle__text{display:grid;gap:2px}.toggle__label{font-weight:600}.toggle__desc{font-size:var(--fs-sm);color:var(--ink-2)}.toggle__control{position:relative;display:inline-flex;align-items:center;gap:10px;flex:none}.toggle__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.toggle__track{position:relative;width:46px;height:26px;border:1.5px solid var(--ink);border-radius:2px;background:var(--surface);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.toggle__knob{position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:1px;background:var(--ink);transition:transform var(--t-med) var(--ease),background-color var(--t-fast) var(--ease)}.toggle__input:checked~.toggle__track{background:var(--pen);border-color:var(--pen)}.toggle__input:checked~.toggle__track .toggle__knob{transform:translate(20px);background:var(--paper)}.toggle__input:focus-visible~.toggle__track{outline:2px solid var(--pen);outline-offset:3px}.toggle__state{min-width:2.6em;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.toggle__on{display:none;color:var(--pen)}.toggle__input:checked~.toggle__state .toggle__on{display:inline}.toggle__input:checked~.toggle__state .toggle__off{display:none}.toggle:has(.toggle__input:disabled){cursor:not-allowed;opacity:.6}.segmented{display:grid;gap:8px;min-width:0}.segmented__legend{font-size:var(--fs-sm);font-weight:600;margin-bottom:8px}.segmented__row{display:inline-flex;flex-wrap:wrap;width:fit-content;max-width:100%;border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--surface)}.segmented__item{position:relative;flex:1 0 auto;cursor:pointer}.segmented__item+.segmented__item{border-left:1px solid var(--ink)}.segmented__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.segmented__face{display:grid;justify-items:center;gap:1px;min-width:64px;padding:9px 16px;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.segmented__label{font-weight:600;font-variant-numeric:tabular-nums}.segmented__note{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.04em;color:var(--ink-2)}.segmented__item:hover .segmented__face{background:var(--pen-soft)}.segmented__input:checked+.segmented__face{background:var(--ink);color:var(--paper)}.segmented__input:checked+.segmented__face .segmented__note{color:var(--paper);opacity:.8}.segmented__input:focus-visible+.segmented__face{outline:2px solid var(--pen);outline-offset:2px;position:relative;z-index:1}.segmented__item.is-disabled{cursor:not-allowed}.segmented__item.is-disabled .segmented__face{color:var(--ink-3);background:var(--surface-2)}.markbox{--mb: 30px;position:relative;display:inline-grid;place-items:center;flex:none;width:var(--mb);height:var(--mb);border:1.5px solid var(--ink);border-radius:2px;background:var(--surface);color:var(--ink-2);font-family:var(--font-mono);font-size:calc(var(--mb) * .44);font-weight:500;line-height:1;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.markbox--sm{--mb: 22px}.markbox--lg{--mb: 40px}.markbox--round{border-radius:50%}.markbox__letter{transition:color var(--t-fast) var(--ease)}.markbox[data-checked]{border-color:var(--pen)}.markbox[data-checked] .markbox__letter{color:var(--ink-3)}.markbox__cross{position:absolute;inset:-12%;width:124%;height:124%;overflow:visible;pointer-events:none}.markbox__stroke{fill:none;stroke-linecap:round;stroke-linejoin:round}.markbox__cross .markbox__stroke{stroke:var(--pen);stroke-width:2.6}.markbox--sm .markbox__cross .markbox__stroke{stroke-width:2.2}.markbox[data-status=correct]{background:var(--marker);border-color:var(--ok);color:var(--ink-on-marker)}.markbox[data-status=correct][data-checked]{border-color:var(--ok)}.markbox[data-status=correct] .markbox__letter{color:var(--ink-on-marker)}.markbox[data-status=wrong]{border-color:var(--red)}.markbox__ring{position:absolute;inset:-42%;width:184%;height:184%;overflow:visible;pointer-events:none}.markbox__ring .markbox__stroke{stroke:var(--red);stroke-width:2.2}@media(prefers-reduced-motion:no-preference){.markbox--animate .markbox__stroke{stroke-dasharray:1;stroke-dashoffset:1;animation:markbox-draw var(--t-fast) var(--ease) forwards}.markbox--animate .markbox__stroke--2{animation-delay:.11s}.markbox--animate .markbox__stroke--ring{animation-duration:var(--t-slow);animation-delay:60ms}}@keyframes markbox-draw{to{stroke-dashoffset:0}}.choice{position:relative;display:flex;align-items:center;gap:16px;min-height:56px;padding:10px 12px 10px 10px;border-bottom:var(--hairline);cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.choice:first-of-type{border-top:var(--hairline)}.choice__input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.choice:hover:not([data-locked]){background:var(--surface-2)}.choice:hover:not([data-locked]) .markbox:not([data-checked]){border-color:var(--pen)}.choice:has(.choice__input:focus-visible){outline:2px solid var(--pen);outline-offset:-2px;border-radius:2px}.choice__text{flex:1;min-width:0;line-height:1.45}.choice[data-checked] .choice__text{color:var(--ink)}.choice__aside{display:flex;align-items:center;gap:10px;margin-left:auto;padding-left:var(--s-3)}.choice__note{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2);white-space:nowrap}.choice__key{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid var(--rule-strong);border-radius:2px;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-2);background:var(--surface)}@media(hover:none){.choice__key{display:none}}.choice[data-locked]{cursor:default}.choice[data-status=correct][data-checked] .choice__note{color:var(--ok)}.choice__label{overflow-wrap:anywhere}.choice[data-missed] .choice__label{--mk-h1: .8em;--mk-h2: .46em;--mk-y1: 76%;--mk-y2: 40%}[data-theme=dark] .choice[data-missed] .choice__label{--mk-h1: 100%;--mk-h2: 100%;--mk-y1: 50%;--mk-y2: 50%;padding-inline:.14em;margin-inline:-.14em}.choice[data-status=wrong] .choice__text{text-decoration-line:line-through;text-decoration-color:var(--red);text-decoration-thickness:2px;color:var(--ink-2)}.choice[data-status=wrong] .choice__note{color:var(--red)}.choice[data-locked]:not([data-checked]):not([data-status]) .choice__text{color:var(--ink-2)}@media(max-width:30em){.choice{gap:12px;padding-inline:6px 8px}}.choice__text :not(pre)>code{padding:0;border:0;background:none;font-size:.95em;font-weight:500}.meta-label{display:inline-flex;align-items:center;min-width:0;max-width:100%;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;line-height:1.4;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.meta-label--sm{font-size:.8125rem}.meta-label--ink{color:var(--ink)}.meta-label--pen{color:var(--pen)}.meta-label--red{color:var(--red)}.meta-label--ok{color:var(--ok)}.meta-label__list{--meta-sep: 1.6em;display:flex;flex-wrap:wrap;row-gap:2px;min-width:0;margin-left:calc(-1 * var(--meta-sep));clip-path:inset(-.5em -.5em -.5em var(--meta-sep))}.meta-label__item{position:relative;min-width:0;padding-left:var(--meta-sep);overflow-wrap:anywhere}.meta-label__item:before{content:"·";content:"·" / "";position:absolute;left:0;width:var(--meta-sep);text-align:center;color:var(--ink-3)}.meta-label__icon{display:inline-flex;margin-right:.5em}.meta-label__icon .icon{width:1.25em;height:1.25em}.sheet{position:relative;min-width:0;border:var(--hairline);border-radius:var(--radius);background:var(--surface)}.sheet--grid{background-color:var(--surface);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:20px 20px;background-position:-1px -1px}.sheet--ink{border:var(--border-ink)}.sheet--ghost{border:1.5px dashed var(--rule-strong);background:transparent}.sheet--raised{border:var(--border-ink);box-shadow:var(--shadow-hard)}.sheet--pad-none{padding:0}.sheet--pad-sm{padding:var(--s-4)}.sheet--pad-md{padding:clamp(var(--s-4),3vw,var(--s-5))}.sheet--pad-lg{padding:clamp(var(--s-5),4vw,var(--s-7))}.sheet__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding-bottom:var(--s-3);margin-bottom:var(--s-4);border-bottom:var(--hairline)}.sheet__header-main{display:grid;gap:4px;min-width:0}.sheet__title{font-family:var(--font-display);font-stretch:var(--display-stretch);font-size:var(--fs-lg);font-weight:800;line-height:var(--lh-snug);letter-spacing:-.01em;word-spacing:.05em}.sheet__header-aside{flex:none;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-2)}.section-heading{display:grid;gap:var(--s-2);padding-top:var(--s-3);border-top:var(--border-ink);margin-bottom:var(--s-6)}.section-heading--bare{padding-top:0;border-top:0}.section-heading__kicker{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.section-heading__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-3) var(--s-5)}.section-heading__title{margin:0;font-family:var(--font-display);font-stretch:var(--display-stretch);font-weight:800;line-height:1.02;letter-spacing:-.02em}.section-heading--lg .section-heading__title{font-size:clamp(1.875rem,1.4rem + 1.8vw,var(--fs-2xl))}.section-heading--md .section-heading__title{font-size:clamp(1.375rem,1.2rem + .7vw,var(--fs-xl))}.section-heading--sm .section-heading__title{font-size:var(--fs-lg)}.section-heading--md,.section-heading--sm{border-top-width:1px;border-top-color:var(--ink);margin-bottom:var(--s-5)}.section-heading__num{font-weight:300;font-stretch:100%;font-variant-numeric:tabular-nums;color:var(--ink-3);letter-spacing:-.01em}.section-heading__dash{font-weight:300}.section-heading__aside{flex:none;max-width:100%;min-width:0}.section-heading__desc{max-width:62ch;color:var(--ink-2)}.rule{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;--rule-color: var(--pen)}.rule--ink{--rule-color: var(--ink)}.rule--ok{--rule-color: var(--ok)}.rule--red{--rule-color: var(--red)}.rule__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.rule__label{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.rule__value{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.rule__track{position:relative;height:12px;border:1.5px solid var(--ink);border-radius:1px;background:var(--surface);overflow:hidden}.rule--sm .rule__track{height:8px;border-width:1px}.rule__fill{position:absolute;inset:0 auto 0 0;width:var(--pct, 0%);background:var(--rule-color);transition:width var(--t-slow) var(--ease)}.rule__ticks{display:flex;justify-content:space-between;height:7px;margin-top:-6px;padding-inline:0}.rule__tick{position:relative;width:1px;height:5px;background:var(--ink-2)}.rule__tick--major{height:8px;background:var(--ink)}.rule--sm .rule__ticks{margin-top:-6px}.rule__num{position:absolute;top:10px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:.625rem;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.rule__ticks:has(.rule__num){margin-bottom:14px}.rule__tick:first-child .rule__num{left:0;transform:none}.rule__tick:last-child .rule__num{left:auto;right:0;transform:none}.rule__ticks:has(.rule__num){container-type:inline-size}@container (max-width: 26rem){.rule__tick:nth-child(2n):not(:last-child) .rule__num,.rule__tick:nth-last-child(2) .rule__num{display:none}}.rule__segments{display:flex;gap:3px;list-style:none;padding:0;margin:0}.rule__seg-item{flex:1 1 0;min-width:3px}.rule__seg{display:block;width:100%;height:12px;border:1px solid var(--ink-2);border-radius:1px;background:var(--surface);transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.rule--sm .rule__seg{height:8px}.rule__seg[data-state=answered]{background:var(--pen);border-color:var(--pen)}.rule__seg[data-state=correct]{background:var(--ok);border-color:var(--ok)}.rule__seg[data-state=wrong]{background:var(--red);border-color:var(--red)}.rule__seg[data-state=partial]{background:repeating-linear-gradient(135deg,var(--ok) 0 3px,var(--surface) 3px 6px);border-color:var(--ok)}.rule__seg[data-state=flagged]{background:var(--marker);border-color:var(--ink)}.rule__seg[data-current]{border:2px solid var(--ink);box-shadow:0 3px 0 -1px var(--ink)}.rule--grid .rule__segments{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.125rem,1fr));gap:4px}.rule--grid .rule__seg{height:2.125rem;border:1px solid var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer}.rule--grid .rule__seg:hover{border-color:var(--pen);color:var(--pen)}.rule--grid .rule__seg[data-state=answered],.rule--grid .rule__seg[data-state=correct],.rule--grid .rule__seg[data-state=wrong]{color:var(--paper)}.rule--grid .rule__seg[data-state=flagged]{color:var(--ink-on-marker)}.rule--grid .rule__seg[data-current]{outline:2px solid var(--ink);outline-offset:2px;box-shadow:none}.rule--grid .rule__seg:focus-visible{outline:2px solid var(--pen);outline-offset:2px}@container shell-main (max-width: 20rem){.rule__value{white-space:normal}}.tally{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px;--tally-h: 30px;line-height:0}.tally--sm{--tally-h: 20px;gap:4px 6px}.tally--lg{--tally-h: 42px;gap:8px 14px}.tally__group{height:var(--tally-h);width:calc(var(--tally-h) * 34 / 30);overflow:visible}.tally__stroke{stroke-linecap:round;stroke-width:2.4;vector-effect:non-scaling-stroke}.tally--lg .tally__stroke{stroke-width:3}.tally--sm .tally__stroke{stroke-width:1.8}.tally__stroke--done{stroke:var(--ink)}.tally__stroke--extra{stroke:var(--pen)}.tally__stroke--open{stroke:var(--rule-strong);stroke-width:1.5;stroke-dasharray:2 3}.tally__stroke--cross.tally__stroke--done{stroke:var(--ink)}.dialog{width:min(calc(100vw - 32px),var(--dlg-w, 35rem));max-height:calc(100dvh - 48px);margin:auto;padding:0;border:var(--border-ink);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-hard-lg);overflow:auto;overscroll-behavior:contain}.dialog--sm{--dlg-w: 28.75rem}.dialog--md{--dlg-w: 36.25rem}.dialog--lg{--dlg-w: 51.25rem}.dialog::backdrop{background:var(--backdrop)}@media(prefers-reduced-motion:no-preference){.dialog[open]{animation:dialog-in var(--t-med) var(--ease)}.dialog[open]::backdrop{animation:dialog-fade var(--t-med) var(--ease)}}@keyframes dialog-in{0%{opacity:0;transform:translate(-4px,8px)}}@keyframes dialog-fade{0%{opacity:0}}.dialog__panel{display:flex;flex-direction:column;min-height:0}.dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding:var(--s-5) var(--s-5) var(--s-3)}.dialog__titles{display:grid;gap:4px}.dialog__kicker{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.dialog__title{font-size:var(--fs-xl);line-height:1.1}.dialog__close{display:inline-flex;align-items:center;gap:6px;flex:none;margin:-6px -8px 0 0;padding:6px 8px;border-radius:2px;color:var(--ink-2)}.dialog__close:hover{color:var(--pen);background:var(--pen-soft)}.dialog__esc{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase}.dialog__body{display:grid;gap:var(--s-4);padding:0 var(--s-5) var(--s-5);line-height:var(--lh-body)}.dialog__desc{color:var(--ink-2)}.dialog__footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-top:var(--hairline);background:var(--surface-2)}@media(max-width:30em){.dialog__header{padding:var(--s-4) var(--s-4) var(--s-3)}.dialog__body{padding:0 var(--s-4) var(--s-4)}.dialog__footer{padding:var(--s-3) var(--s-4);flex-direction:column-reverse}.dialog__footer .btn{width:100%}}.empty{display:grid;gap:var(--s-3);justify-items:start;padding:clamp(var(--s-5),4vw,var(--s-7));border:1.5px dashed var(--rule-strong);border-radius:var(--radius);background:transparent}.empty__top{display:flex;justify-content:space-between;align-items:flex-start;width:100%;margin-bottom:var(--s-2)}.empty__icon{display:inline-flex;color:var(--ink)}.empty__icon .icon{width:36px;height:36px}.empty__tag{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.empty__title{font-size:var(--fs-xl);line-height:1.1}.empty__text{max-width:56ch;color:var(--ink-2)}.empty__action{margin-top:var(--s-3)}.notice{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--notice-line, var(--pen));border-radius:var(--radius);background:var(--notice-bg, var(--pen-soft));color:var(--ink);font-size:var(--fs-sm);line-height:1.5}.notice--info{--notice-line: var(--pen);--notice-bg: var(--pen-soft);--notice-ic: var(--pen)}.notice--ok{--notice-line: var(--ok);--notice-bg: var(--ok-soft);--notice-ic: var(--ok)}.notice--error{--notice-line: var(--red);--notice-bg: var(--red-soft);--notice-ic: var(--red)}.notice--warn{--notice-line: color-mix(in srgb, var(--marker) 50%, var(--ink));--notice-bg: var(--marker-soft);--notice-ic: var(--ink)}.notice__icon{display:inline-flex;margin-top:1px;color:var(--notice-ic)}.notice__body{flex:1;min-width:0;display:grid;gap:2px}.notice__title{font-weight:600}.notice__action{flex:none;align-self:center}.kbd{display:inline-block;min-width:1.7em;padding:.1em .42em .12em;border:1px solid var(--rule-strong);border-bottom-width:2px;border-radius:2px;background:var(--surface);font-family:var(--font-mono);font-size:.78em;font-weight:500;line-height:1.35;text-align:center;color:var(--ink);white-space:nowrap;vertical-align:.06em}.kbd-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.2em}.kbd-group__item{display:inline-flex;align-items:center;gap:.2em}.kbd-group__sep{color:var(--ink-2);font-size:.85em}mark.marker{background-color:transparent}.stat{margin:0;display:grid;align-content:start;gap:4px;min-width:0}.stat__label{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.stat__icon{display:inline-flex;color:var(--ink)}.stat__value{display:flex;align-items:baseline;gap:.3em;margin:0}.stat__num{font-family:var(--font-display);font-stretch:80%;font-weight:800;font-variant-numeric:tabular-nums lining-nums;line-height:.95;letter-spacing:-.02em;color:var(--stat-color, var(--ink))}.stat--sm .stat__num{font-size:var(--fs-xl)}.stat--md .stat__num{font-size:clamp(2rem,1.6rem + 1.4vw,var(--fs-2xl))}.stat--lg .stat__num{font-size:clamp(2.75rem,2rem + 3vw,var(--fs-3xl))}.stat--pen{--stat-color: var(--pen)}.stat--ok{--stat-color: var(--ok)}.stat--red{--stat-color: var(--red)}.stat__unit{font-size:var(--fs-sm);font-weight:500;color:var(--ink-2)}.stat__note{margin:0;font-size:var(--fs-sm);color:var(--ink-2)}.stat-group{display:grid;grid-template-columns:repeat(var(--stat-cols, 4),minmax(0,1fr));margin:0;border-top:var(--border-ink)}.stat-group>.stat{padding:var(--s-4) var(--s-4) var(--s-4) 0}.stat-group>.stat+.stat{padding-left:var(--s-4);border-left:var(--hairline)}@container shell-main (max-width: 47.5rem){.stat-group{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-group>.stat:nth-child(odd){padding-left:0;border-left:0}.stat-group>.stat:nth-child(n+3){border-top:var(--hairline)}}@container shell-main (max-width: 15rem){.stat-group{grid-template-columns:minmax(0,1fr)}.stat-group>.stat,.stat-group>.stat+.stat{padding-left:0;border-left:0}.stat-group>.stat+.stat{border-top:var(--hairline)}.stat__value{flex-wrap:wrap}.stat__num{overflow-wrap:normal}}.code{margin:0;border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);font-family:var(--font-mono);font-size:.875rem;line-height:1.6;min-width:0}.code__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);padding:6px var(--s-3);border-bottom:var(--hairline);font-size:var(--fs-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--ink-2)}.code__lang{font-weight:500}.code__caption{text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code__scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}.code__scroll:focus-visible{outline-offset:-2px}.code__pre{margin:0;padding:var(--s-3) 0;font:inherit;tab-size:4;white-space:pre;counter-reset:none;min-width:max-content}.code__pre code{font:inherit;display:block}.code__line{display:block;padding-inline:var(--s-3) var(--s-5)}.code__line--hl{background:var(--marker-soft)}.code__ln{display:inline-block;width:calc(var(--ln-w, 2ch) + 1ch);margin-right:var(--s-3);padding-right:var(--s-2);border-right:var(--hairline);text-align:right;color:var(--ink-3);user-select:none;-webkit-user-select:none}.code__kw{font-weight:600;color:var(--ink)}.code__str{color:var(--ink-2)}.code__num{color:var(--ink)}.code__comment{color:var(--ink-3);font-style:italic}.code__blank{display:inline-block;min-width:5ch;color:transparent;border-bottom:2px dotted var(--pen);background:var(--pen-soft);border-radius:1px;line-height:1.2}
