@layer app{.bk{display:grid;grid-template-columns:216px minmax(0,1fr);gap:var(--space-6);align-items:start}@media (max-width: 860px){.bk{grid-template-columns:minmax(0,1fr)}}.bk-drawer{position:sticky;top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-inset)}.bk-group{display:flex;flex-direction:column;gap:var(--space-2)}.bk-group-title{margin:0 0 var(--space-1);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-faint)}.bk-chip{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:var(--ui-tap);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-raised);color:var(--bk-ink);font:inherit;font-size:var(--ui-text-sm);font-weight:var(--fw-control);text-align:left;cursor:grab;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.bk-chip:hover{border-color:var(--bk-ink);background:var(--bk-tint)}.bk-chip:active{cursor:grabbing}.bk-chip:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.bk-chip[disabled]{opacity:.5;cursor:default}.bk-canvas{min-height:320px;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-inset);font-family:var(--font-mono);font-size:var(--ui-text-sm);line-height:var(--lh-snug)}.bk-canvas[data-stale=true]{opacity:.5;filter:saturate(.35);pointer-events:none;-webkit-user-select:none;user-select:none}.bk-empty{display:grid;place-items:center;min-height:220px;padding:var(--space-8);color:var(--color-text-secondary);font-family:var(--font-sans);text-align:center}.bk-block{display:block}.bk-block[data-construct=procedure],.bk-block[data-construct=iteration]{--bk-ink: var(--color-accent);--bk-tint: var(--color-accent-bg)}.bk-block[data-construct=selection]{--bk-ink: var(--color-caution);--bk-tint: var(--color-caution-bg)}.bk-block[data-construct=list],.bk-block[data-construct=io]{--bk-ink: var(--color-success);--bk-tint: var(--color-success-bg)}.bk-block[data-construct=variable]{--bk-ink: var(--color-text);--bk-tint: var(--color-raised)}.bk-block[data-construct=sequence]{--bk-ink: var(--color-text-secondary);--bk-tint: var(--color-raised)}.bk-chip[data-construct=procedure],.bk-chip[data-construct=iteration]{--bk-ink: var(--color-accent);--bk-tint: var(--color-accent-bg)}.bk-chip[data-construct=selection]{--bk-ink: var(--color-caution);--bk-tint: var(--color-caution-bg)}.bk-chip[data-construct=list],.bk-chip[data-construct=io]{--bk-ink: var(--color-success);--bk-tint: var(--color-success-bg)}.bk-chip[data-construct=variable]{--bk-ink: var(--color-text);--bk-tint: var(--color-inset)}.bk-chip[data-construct=sequence]{--bk-ink: var(--color-text-secondary);--bk-tint: var(--color-inset)}.bk-comment{display:block;padding:0 var(--space-5);color:var(--color-text-faint);font-size:var(--text-xs);white-space:pre-wrap}.bk-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);width:fit-content;max-width:100%;padding:var(--space-2) var(--space-5);margin:var(--space-1) 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--bk-tint);color:var(--bk-ink);font-weight:var(--fw-label);cursor:grab;transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.bk-row:hover{border-color:var(--bk-ink)}.bk-row:active{cursor:grabbing}.bk-row[data-on=true]{border-color:var(--bk-ink);box-shadow:var(--focus-ring)}.bk-row[data-lifted=true]{opacity:.4}.bk-row:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.bk-glyph{min-width:1.4em;text-align:center;font-weight:var(--fw-head);opacity:.85}.bk-word{white-space:nowrap}.bk-trail{color:var(--color-text-faint);font-weight:var(--fw-body);white-space:pre}.bk-slot{padding:0 var(--space-3);border:1px solid var(--color-border-subtle);border-bottom:1px dotted var(--color-border-field);border-radius:var(--radius-xs);background:var(--color-inset);color:var(--color-text);font:inherit;font-weight:var(--fw-ui);white-space:pre;cursor:text;transition:border-color var(--dur-2) var(--ease-out)}.bk-slot:hover{border-bottom-color:var(--bk-ink)}.bk-slot:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:1px}.bk-slot[data-empty=true]{color:var(--color-text-faint);font-style:italic}.bk-slot[data-kind=op]{cursor:pointer;font-weight:var(--fw-label);color:var(--bk-ink)}.bk-input{min-width:2ch;padding:0 var(--space-3);border:1px solid var(--color-accent);border-radius:var(--radius-xs);background:var(--color-field-bg);color:var(--color-text);font:inherit;font-weight:var(--fw-ui)}.bk-input:focus{outline:none;box-shadow:var(--focus-ring)}select.bk-input{padding-right:var(--space-2)}.bk-nest{display:block;margin:var(--space-1) 0 var(--space-1) var(--space-4);padding-left:var(--space-6);border-left:2px solid var(--color-border)}.bk-block[data-on=true]>.bk-nest{border-left-color:var(--bk-ink)}.bk-body-label{display:block;padding-left:var(--space-2);color:var(--color-text-faint);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase}.bk-bare{display:block;padding-left:var(--space-2);color:var(--color-text-faint);font-size:var(--text-2xs)}.bk-drop{display:block;position:relative;height:var(--space-3);margin:0;border-radius:var(--radius-full)}.bk-drop:before{content:"";position:absolute;inset:calc(-1 * var(--space-4)) 0;pointer-events:none}.bk[data-dragging=true] .bk-drop:before{pointer-events:auto}.bk-drop:after{content:"";display:block;height:2px;margin-top:2px;border-radius:var(--radius-full);background:var(--color-accent);opacity:0;transform:scaleX(.2);transform-origin:left center;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.bk[data-dragging=true] .bk-drop:after{opacity:.28;transform:scaleX(1)}.bk .bk-drop[data-over=true]:after{opacity:1;transform:scaleX(1);height:3px}.bk-raw{display:flex;align-items:flex-start;gap:var(--space-4);width:fit-content;max-width:100%;padding:var(--space-3) var(--space-5);margin:var(--space-1) 0;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-raised);color:var(--color-text-secondary);cursor:grab}.bk-raw pre{margin:0;white-space:pre;overflow-x:auto;font:inherit}.bk-tag{flex:0 0 auto;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-inset);color:var(--color-text-faint);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase}.bk-tools{display:inline-flex;gap:var(--space-1);margin-left:var(--space-3);opacity:0;transition:opacity var(--dur-2) var(--ease-out)}.bk-row:hover .bk-tools,.bk-row[data-on=true] .bk-tools,.bk-row:focus-within .bk-tools,.bk-raw:hover .bk-tools{opacity:1}.bk-tool{min-width:20px;height:20px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-raised);color:var(--color-text-secondary);font:inherit;font-size:var(--text-xs);line-height:1;cursor:pointer}.bk-tool:hover{border-color:var(--color-border-strong);color:var(--color-text)}.bk-tool[data-danger=true]:hover{border-color:var(--color-danger);color:var(--color-danger)}.bk-tool:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:1px}.bk-notes{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-5)}.bk-link{padding:0;border:0;background:none;color:var(--color-accent);font:inherit;font-weight:var(--fw-control);cursor:pointer}.bk-link:hover{text-decoration:underline}.bk-link:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.bk-foot{margin:var(--space-5) 0 0;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-faint)}@media (prefers-reduced-motion: reduce){.bk-chip,.bk-row,.bk-slot,.bk-tools,.bk-drop:after{transition:none}.bk-drop:after{transform:none}.bk[data-dragging=true] .bk-drop:after,.bk .bk-drop[data-over=true]:after{transform:none}}}@layer app{.dz{display:grid;grid-template-columns:208px minmax(0,1fr) 268px;gap:var(--space-6);align-items:start}@media (max-width: 1100px){.dz{grid-template-columns:208px minmax(0,1fr)}.dz-panel{grid-column:1 / -1}}@media (max-width: 720px){.dz{grid-template-columns:minmax(0,1fr)}.dz-panel{grid-column:auto}}.dz-stage{min-width:0;display:flex;flex-direction:column;gap:var(--space-5)}.dz-drawer{position:sticky;top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-inset)}.dz-drawer-lede{margin:0;font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--color-text-secondary)}.dz-group{display:flex;flex-direction:column;gap:var(--space-2)}.dz-group-title{margin:0 0 var(--space-1);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-faint)}.dz-chip{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:var(--ui-tap);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-raised);color:var(--color-text);text-align:left;cursor:grab;transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.dz-chip:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-sunken)}.dz-chip:active:not(:disabled){cursor:grabbing}.dz-chip:disabled{opacity:.5;cursor:default}.dz-chip-glyph{flex:none;display:grid;place-items:center;width:var(--space-7);height:var(--space-7);border-radius:var(--radius-xs);background:var(--color-accent-bg);color:var(--color-accent);font-size:var(--text-base);line-height:1}.dz-chip-words{display:flex;flex-direction:column;min-width:0}.dz-chip-label{font-size:var(--text-base);font-weight:var(--fw-control)}.dz-chip-command{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-text-faint)}.dz-device{width:calc(var(--ap-screen-w) + var(--space-4));padding:var(--space-2);border:1px solid var(--color-border);border-radius:calc(var(--radius-2xl) + var(--space-2));background:var(--color-raised);box-shadow:var(--elev-3)}.dz-device-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);height:28px;padding:0 var(--space-4);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.dz-device-size{font-family:var(--font-mono);letter-spacing:var(--ls-none)}.dz-screen{position:relative;width:var(--ap-screen-w);height:var(--ap-screen-h);margin:0 auto;border-radius:var(--radius-2xl);overflow:hidden;background:var(--ap-screen-bg, var(--color-raised-solid));color:var(--color-text);font-family:var(--font-sans);font-size:var(--ap-text);font-weight:var(--fw-body);line-height:var(--lh-snug);letter-spacing:var(--ls-normal)}.dz-screen[data-dragging=true]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-base);pointer-events:none;background-image:repeating-linear-gradient(to right,var(--color-border) 0 1px,transparent 1px var(--space-4)),repeating-linear-gradient(to bottom,var(--color-border) 0 1px,transparent 1px var(--space-4))}.dz-flow{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--ap-gutter);overflow:hidden;overflow-wrap:anywhere}.dz-item{position:relative;display:inline-block;vertical-align:middle;max-width:100%;margin:var(--ap-gutter);cursor:grab}.dz-item:active{cursor:grabbing}.dz-item[data-locked=true]{cursor:default}.dz-handle{position:absolute;inset:calc(var(--space-1) * -1);border:var(--focus-ring-width) solid var(--color-focus);border-radius:var(--radius-xs);pointer-events:none}.dz-handle:before,.dz-handle:after{content:"";position:absolute;width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);background:var(--color-focus)}.dz-handle:before{left:calc(var(--space-2) * -1);top:calc(var(--space-2) * -1)}.dz-handle:after{right:calc(var(--space-2) * -1);bottom:calc(var(--space-2) * -1)}.dz-item:focus-visible{outline:none}.dz-tag{position:absolute;left:0;bottom:calc(100% + var(--space-1));padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-accent-solid);color:var(--color-accent-on-solid);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--space-7);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out)}.dz-item:hover .dz-tag,.dz-item[data-on=true] .dz-tag{opacity:1}.dz-lock{position:absolute;left:0;top:calc(100% + var(--space-1));padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-caution-bg);color:var(--color-caution);font-size:var(--text-2xs);line-height:var(--space-7);white-space:nowrap;pointer-events:none}.dz-item[data-locked=true]>.dz-w{opacity:.7}.dz-guide{position:absolute;z-index:var(--z-raised);width:var(--space-7);height:var(--space-7);pointer-events:none;border-left:1px solid var(--color-accent);border-top:1px solid var(--color-accent)}.dz-guide-read{position:absolute;left:var(--space-3);top:var(--space-3);padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-accent-solid);color:var(--color-accent-on-solid);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:var(--space-7);white-space:nowrap}.dz-static,.dz-count{margin:0;max-width:var(--measure-sm);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--color-text-secondary)}.dz-count{color:var(--color-text-tertiary);font-size:var(--text-xs)}.dz-static code{font-size:var(--text-xs)}.dz-link{padding:0;border:0;background:none;color:var(--color-accent);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:var(--space-1)}.dz-card{position:absolute;inset:auto var(--space-5) var(--space-5);z-index:var(--z-modal);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-overlay);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);box-shadow:var(--elev-4)}.dz-card-title{margin:0 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-label);color:var(--color-text)}.dz-card-note{margin:0 0 var(--space-5);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--color-text-secondary)}.dz-card-code,.dz-card-bad{margin:var(--space-5) 0 0;font-size:var(--text-xs);line-height:var(--lh-snug)}.dz-card-code{color:var(--color-text-faint)}.dz-card-bad{color:var(--color-danger)}.dz-card-list{margin:0 0 var(--space-5);padding-left:var(--space-7);font-size:var(--text-xs);line-height:var(--lh-normal);color:var(--color-text)}.dz-card-row{display:flex;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-6)}.dz-name-input{width:100%;min-height:var(--ui-control-h);padding:0 var(--space-5);border:1px solid var(--color-border-field);border-radius:var(--radius-md);background:var(--color-field-bg);color:var(--color-text);font-family:var(--font-mono);font-size:var(--ui-text-sm)}.dz-name-input[aria-invalid=true]{border-color:var(--color-danger)}.dz-panel{position:sticky;top:var(--space-6);min-width:0;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-raised)}.dz-empty{color:var(--color-text-secondary)}.dz-empty b{display:block;margin-bottom:var(--space-3);color:var(--color-text)}.dz-empty p{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal)}.dz-inspector{display:flex;flex-direction:column;gap:var(--space-6)}.dz-inspector-head{display:flex;align-items:center;gap:var(--space-4)}.dz-inspector-id{margin:0;font-size:var(--text-lg);font-weight:var(--fw-label);color:var(--color-text);overflow-wrap:anywhere}.dz-inspector-kind{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.dz-inspector-code{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-inset);color:var(--color-text-secondary);font-size:var(--text-2xs);overflow-wrap:anywhere}.dz-fields{display:flex;flex-direction:column;gap:var(--space-4)}.dz-field{display:flex;flex-direction:column;gap:var(--space-2)}.dz-field-row{flex-direction:row;align-items:center;gap:var(--space-4)}.dz-field-label{font-size:var(--text-xs);font-weight:var(--fw-ui);color:var(--color-text-secondary)}.dz-field-computed{padding:var(--space-2) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xs);background:var(--color-inset);color:var(--color-text-tertiary);font-size:var(--text-2xs);overflow-wrap:anywhere}.dz-input,.dz-select-field{width:100%;min-height:var(--ui-control-sm-h);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-field);border-radius:var(--radius-sm);background:var(--color-field-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base)}.dz-input:focus,.dz-select-field:focus{border-color:var(--color-focus);box-shadow:var(--focus-ring);outline:none}.dz-input-num{font-family:var(--font-mono)}textarea.dz-input{font-family:var(--font-mono);line-height:var(--lh-normal);resize:vertical}.dz-colour-row{display:flex;gap:var(--space-3);align-items:center}.dz-swatches{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-1);margin-top:var(--space-2)}.dz-swatch{height:var(--space-7);padding:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-xs);cursor:pointer}.dz-swatch[data-on=true]{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--space-1)}.dz-inspector-foot{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle)}.dz-w{--ap-btn-min-w: calc(var(--ap-control-h) * 2);--ap-mark-size: calc(var(--ap-control-h) - var(--space-6));--ap-mark-dot: calc(var(--ap-control-h) / 2 - var(--space-4));--ap-thumb: calc(var(--ap-control-h) / 2);--ap-track: var(--space-3);--ap-area-h: calc(var(--ap-control-h) * 2 + var(--space-6));--ap-img: calc(var(--ap-control-h) * 3 - var(--space-4));--ap-slider-w: calc(var(--ap-control-h) * 5);--ap-field-w: calc(var(--ap-screen-w) - var(--space-12) - var(--space-10));position:relative;display:inline-block;vertical-align:middle;max-width:100%;box-sizing:border-box;font-family:var(--ap-font, var(--font-sans));font-size:var(--ap-font-size, var(--ap-text));line-height:var(--lh-snug);letter-spacing:var(--ls-normal);user-select:none;-webkit-user-select:none}.dz-btn{display:inline-flex;align-items:center;justify-content:var(--ap-align-j, center);gap:var(--space-3);min-height:var(--ap-control-h);min-width:var(--ap-btn-min-w);padding:0 var(--ap-control-px);border:var(--ap-border-w, 1px) solid var(--ap-border-c, var(--color-border));border-radius:var(--ap-radius);background-color:var(--ap-bg, var(--color-control));background-image:var(--ap-image, none);background-size:contain;background-position:center;background-repeat:no-repeat;color:var(--ap-fg, var(--color-control-ink));font-weight:var(--fw-control);line-height:var(--lh-tight);text-align:var(--ap-align, center);box-shadow:var(--elev-1)}.dz-label{min-height:var(--ap-control-h);padding:var(--space-4) var(--space-2);border:var(--ap-border-w, var(--space-0)) solid var(--ap-border-c, transparent);border-radius:var(--ap-radius);background:var(--ap-bg, transparent);color:var(--ap-fg, var(--color-text));font-weight:var(--fw-ui);text-align:var(--ap-align, start)}.dz-textbox{--ap-radius: var(--ap-radius-field);display:inline-flex;align-items:center;width:var(--ap-field-w);min-height:var(--ap-control-h);padding:0 var(--ap-control-px);border:var(--ap-border-w, 1px) solid var(--ap-border-c, var(--color-border-field));border-radius:var(--ap-radius);background:var(--ap-bg, var(--color-field-bg));color:var(--ap-fg, var(--color-control-ink));font-weight:var(--fw-body);text-align:var(--ap-align, start);overflow:hidden;white-space:nowrap}.dz-textarea{--ap-radius: var(--ap-radius-field);display:block;width:var(--ap-field-w);min-height:var(--ap-area-h);padding:var(--space-4) var(--ap-control-px);border:var(--ap-border-w, 1px) solid var(--ap-border-c, var(--color-border-field));border-radius:var(--ap-radius);background:var(--ap-bg, var(--color-field-bg));color:var(--ap-fg, var(--color-control-ink));font-weight:var(--fw-body);line-height:var(--lh-normal);text-align:var(--ap-align, start);white-space:pre-wrap;overflow:hidden}.dz-ph{color:var(--color-text-faint);font-weight:var(--fw-recede)}.dz-select{--ap-radius: var(--ap-radius-field);display:inline-flex;align-items:center;width:var(--ap-field-w);min-height:var(--ap-control-h);padding:0 var(--ap-control-px);border:var(--ap-border-w, 1px) solid var(--ap-border-c, var(--color-border-field));border-radius:var(--ap-radius);background:var(--ap-bg, var(--color-field-bg));color:var(--ap-fg, var(--color-control-ink))}.dz-select-text{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:var(--ap-align, start)}.dz-select:after{content:"";flex:none;width:var(--space-3);height:var(--space-3);margin-left:var(--space-4);border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(calc(var(--space-1) * -1)) rotate(45deg);opacity:.65}.dz-choice{display:inline-flex;align-items:center;justify-content:center;min-width:var(--ap-control-h);min-height:var(--ap-control-h);padding:0 var(--space-2)}.dz-box{flex:none;width:var(--ap-mark-size);height:var(--ap-mark-size);display:grid;place-items:center;border:1.5px solid var(--ap-border-c, var(--color-mark));border-radius:var(--radius-xs);background:var(--ap-bg, var(--color-field-bg))}.dz-box:after{content:"";width:calc(var(--ap-mark-size) / 2);height:calc(var(--ap-mark-size) / 4);border-left:2px solid var(--color-accent-on-solid);border-bottom:2px solid var(--color-accent-on-solid);transform:rotate(-45deg) scale(.4) translate(1px,-1px);opacity:0}.dz-box[data-on=true]{background:var(--color-accent-solid);border-color:var(--color-accent-solid)}.dz-box[data-on=true]:after{opacity:1;transform:rotate(-45deg) scale(1) translate(1px,-1px)}.dz-ring{flex:none;width:var(--ap-mark-size);height:var(--ap-mark-size);display:grid;place-items:center;border:1.5px solid var(--ap-border-c, var(--color-mark));border-radius:var(--radius-full);background:var(--ap-bg, var(--color-field-bg))}.dz-ring:after{content:"";width:var(--ap-mark-dot);height:var(--ap-mark-dot);border-radius:var(--radius-full);background:var(--color-accent-solid);transform:scale(0)}.dz-ring[data-on=true]{border-width:2px;border-color:var(--color-accent-solid)}.dz-ring[data-on=true]:after{transform:scale(1)}.dz-slider{--ap-slider-pct: 0%;width:var(--ap-slider-w);height:var(--ap-control-h)}.dz-slider:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:var(--ap-track);border-radius:var(--radius-full);background:linear-gradient(to right,var(--ap-bg, var(--color-accent-solid)) 0 var(--ap-slider-pct),var(--color-border-strong) var(--ap-slider-pct) 100%)}.dz-slider:after{content:"";position:absolute;top:50%;left:var(--ap-slider-pct);transform:translate(-50%,-50%);width:var(--ap-thumb);height:var(--ap-thumb);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-raised-solid);box-shadow:var(--elev-1)}.dz-image{--ap-radius: var(--space-0);width:var(--ap-img);height:var(--ap-img);object-fit:var(--ap-fit, fill);border:var(--ap-border-w, var(--space-0)) solid var(--ap-border-c, transparent);border-radius:var(--ap-radius);color:var(--ap-icon, var(--ap-fg, var(--color-text-secondary)))}.dz-image-broken{display:inline-flex;align-items:center;justify-content:center;background:var(--color-inset);outline:1px dashed var(--color-border-strong);outline-offset:calc(var(--space-1) * -1);color:var(--ap-icon, var(--ap-fg, var(--color-text-secondary)))}.dz-image-broken svg{width:100%;height:100%;opacity:.4}@media (prefers-reduced-motion: reduce){.dz *,.dz *:before,.dz *:after{animation-duration:1ms;animation-iteration-count:1;transition-duration:1ms}}}.cm-host{--syn-keyword: #9a3fb8;--syn-string: #1c7c4a;--syn-number: #a1560a;--syn-comment: var(--color-text-faint);--syn-name: var(--color-text);--syn-function: #0071e3;--syn-operator: var(--color-text-secondary);--syn-punct: var(--color-text-tertiary);--syn-bool: #a1560a;--gutter-accent: var(--color-accent);--gutter-success: var(--color-success);--gutter-caution: var(--color-caution);--gutter-quiet: var(--color-text-faint);display:flex;flex-direction:column;min-height:0;height:100%;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-field-bg);overflow:hidden}:root[data-theme=dark] .cm-host,:root:not([data-theme=light]) .cm-host{--syn-keyword: #d7a1ee;--syn-string: #4ec98a;--syn-number: #e8a33d;--syn-function: #4da3ff;--syn-bool: #e8a33d}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .cm-host{--syn-keyword: #9a3fb8;--syn-string: #1c7c4a;--syn-number: #a1560a;--syn-function: #0071e3;--syn-bool: #a1560a}}.cm-host[data-busy=true]{opacity:.6}.cm-host .cm-editor{height:100%;min-height:0}.cm-host .cm-scroller{font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-normal)}.cm-construct-gutter{min-width:1.6em;padding:0 var(--space-2) 0 var(--space-3);color:var(--gutter-quiet);font-family:var(--font-mono);font-size:var(--text-xs);-webkit-user-select:none;user-select:none}.cm-construct{display:block;text-align:center;cursor:default}.cm-construct-procedure,.cm-construct-iteration{color:var(--gutter-accent)}.cm-construct-selection{color:var(--gutter-caution)}.cm-construct-list,.cm-construct-io{color:var(--gutter-success)}.cm-construct-variable{color:var(--color-text-tertiary)}.cm-construct-sequence{color:var(--gutter-quiet)}.cm-focus-range{background:var(--color-accent-bg);border-radius:var(--radius-xs)}.cm-focus-line{background:var(--color-accent-bg);box-shadow:inset 2px 0 0 var(--color-accent)}.pseudo{font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-normal);background:var(--color-field-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto;padding:var(--space-5) 0}.pseudo-line{display:block;padding:0 var(--space-6);white-space:pre;cursor:default;border-left:2px solid transparent}.pseudo-line:hover{background:var(--color-sunken)}.pseudo-line.on{background:var(--color-accent-bg);border-left-color:var(--color-accent)}.pseudo-off{background:var(--color-caution-bg);border-bottom:1px dotted var(--color-caution);border-radius:var(--radius-xs);padding:0 1px}.pseudo-badge{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--fw-label);color:var(--color-accent);vertical-align:super;margin-left:1px}.pseudo-foot{margin-top:var(--space-5);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-secondary)}.pseudo-notes{margin-top:var(--space-5);display:grid;gap:var(--space-4)}.pseudo-note{font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--color-text-secondary);border-left:2px solid var(--color-border-strong);padding-left:var(--space-5)}.pseudo-note b{color:var(--color-text);font-weight:var(--fw-label)}.cm-stop-gutter{width:18px;cursor:pointer}.cm-stop-gutter:hover{background:var(--color-border-subtle)}.cm-stop{display:block;width:9px;height:9px;margin:0 auto;border-radius:var(--radius-full)}.cm-stop-on{background:var(--color-danger);box-shadow:0 0 0 2px var(--color-danger-bg)}.cm-stop-dead{border:1.5px solid var(--color-text-faint);position:relative}.cm-stop-dead:after{content:"";position:absolute;left:-2px;right:-2px;top:50%;border-top:1.5px solid var(--color-text-faint);transform:rotate(-45deg)}.cm-paused-line{background:var(--color-caution-bg);box-shadow:inset 2px 0 0 var(--color-caution)}.step-panel{container-type:inline-size;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-inset);overflow:hidden}.sp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.sp-bar .check{min-height:0;padding:0;border-bottom:0;gap:var(--space-3)}.ide-dot.st-paused{background:var(--color-accent)}.sp-idle,.sp-note,.sp-warn{margin:0;font-size:var(--ui-text-sm);line-height:var(--lh-snug);color:var(--color-text-tertiary)}.sp-idle{padding:var(--space-5) var(--space-6)}.sp-warn{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-subtle);background:var(--color-caution-bg);color:var(--color-text-secondary)}.sp-where{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4);margin:0;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-subtle);background:var(--color-accent-bg)}.sp-line{font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--fw-label);font-variant-numeric:tabular-nums;color:var(--color-accent)}.sp-why{font-size:var(--ui-text-sm);color:var(--color-text-secondary)}.sp-why.sp-dim{color:var(--color-text-faint)}.sp-cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--space-6);padding:var(--space-5) var(--space-6) var(--space-6);align-items:start}@container (max-width: 620px){.sp-cols{grid-template-columns:minmax(0,1fr)}}.sp-block{min-width:0}.sp-block .group-h{display:block;margin-bottom:var(--space-4)}.sp-block>.sp-note{margin-top:var(--space-4)}.sp-frames{list-style:none;margin:0;padding:0;border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-raised);overflow:hidden}.sp-frames li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);font-size:var(--ui-text-sm);color:var(--color-text-secondary)}.sp-frames li:last-child{border-bottom:0}.sp-frames li.is-now{border-left:3px solid var(--color-accent);padding-left:calc(var(--space-4) - 3px);color:var(--color-text);font-weight:var(--fw-ui)}.sp-frame-name{min-width:0;overflow-wrap:break-word}.sp-frame-line{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--color-text-faint)}.sp-scope+.sp-scope{margin-top:var(--space-5)}.sp-scope-h{display:flex;align-items:center;gap:var(--space-3);margin:0 0 var(--space-3);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.sp-var{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-raised)}.sp-var+.sp-var{margin-top:var(--space-2)}.sp-var-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-base);overflow-wrap:break-word}.sp-var-name{color:var(--color-text);font-weight:var(--fw-label)}.sp-var-val{min-width:0}.sp-empty{font-family:var(--font-sans);font-size:var(--ui-text-sm);color:var(--color-text-faint)}.sp-tag{flex:0 0 auto;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-accent-bg-strong);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-normal);text-transform:none;color:var(--color-accent)}.sp-list{margin-top:var(--space-3)}.sp-items{list-style:none;margin:var(--space-2) 0 0;padding:0;border-top:1px solid var(--color-border-subtle)}.sp-items li{display:flex;gap:var(--space-4);padding:var(--space-1) 0;font-family:var(--font-mono);font-size:var(--text-base)}.sp-index{flex:0 0 var(--space-8);text-align:right;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.sp-item{min-width:0;overflow-wrap:anywhere}@layer app{.ide-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-8);align-items:start}.ide-main{min-width:0;display:flex;flex-direction:column;gap:var(--space-5)}.ide-levels{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.ide-levels .toggle{flex:0 0 auto}.ide-why{margin:0;font-size:var(--ui-text-sm);color:var(--color-text-secondary);max-width:var(--measure-sm)}.ide-pane{min-width:0}.ide-soon{display:grid;place-items:center;min-height:320px;padding:var(--space-9);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-inset);text-align:center}.ide-soon p{max-width:46ch;margin:var(--space-4) 0 0;color:var(--color-text-secondary)}@media (max-width: 1100px){.ide-shell{grid-template-columns:minmax(0,1fr)}.ide-side{max-width:420px}}}@layer app{.ct-export{display:flex;flex-direction:column;gap:var(--ui-card-gap)}.cr-card{display:flex;flex-direction:column;gap:var(--space-6)}.cr-card>p{margin:0}.cr-card>.note{margin:0}.cr-head{display:flex;align-items:flex-end;gap:var(--space-5);flex-wrap:wrap}.cr-head h2{margin:0;font-size:var(--text-3xl)}.cr-head .eyebrow{margin:0}.cr-part{display:flex;flex-direction:column;gap:var(--space-5)}.cr-part h3{margin:0;font-size:var(--ui-text)}.cr-part>p{margin:0}.cr-part>.note{margin:0}.cr-row{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.cr-row .fine,.cr-advice{margin:0}.cr-cands{display:flex;flex-direction:column;gap:var(--space-2)}.cr-cand{display:flex;align-items:center;gap:var(--space-5);width:100%;padding:var(--space-4) var(--space-5);min-height:var(--ui-tap);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised-solid);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.cr-cand:hover{border-color:var(--color-border-strong);background:var(--color-sunken)}.cr-cand:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.cr-cand.on{border-color:var(--color-accent);background:var(--color-accent-bg)}.cr-cand-n{display:flex;align-items:baseline;gap:var(--space-4);flex:1;min-width:0}.cr-cand-n code{font-family:var(--font-mono);font-size:var(--ui-text-sm);font-weight:var(--fw-label)}.cr-cand-n em{font-style:normal;font-size:var(--text-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.cr-cand-m{flex:0 0 auto;font-size:var(--text-sm);color:var(--color-text-secondary)}.cr-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.cr-rule{display:flex;align-items:flex-start;gap:var(--space-5);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border-left:2px solid var(--color-border);background:var(--color-inset);font-size:var(--ui-text-sm)}.cr-rule.pass{border-left-color:var(--color-success);background:var(--color-success-bg)}.cr-rule.fail{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.cr-glyph{flex:0 0 auto;width:var(--space-7);font-family:var(--font-mono);font-style:normal;font-size:var(--ui-text-sm);font-weight:var(--fw-label);line-height:var(--lh-normal);text-align:center;color:var(--color-text-tertiary)}.cr-rule.pass .cr-glyph{color:var(--color-success)}.cr-rule.fail .cr-glyph{color:var(--color-danger)}.cr-rule-t{flex:1;min-width:0;line-height:var(--lh-normal)}.cr-rule-t b{font-weight:var(--fw-label)}.cr-rule-t b:after{content:" · ";font-weight:var(--fw-body);color:var(--color-text-faint)}.cr-rule .pill{flex:0 0 auto}.cr-sites{display:flex;flex-direction:column;gap:var(--space-1)}.cr-sites .lbl,.cr-sites .chips{margin:0}.cr-seg{padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-raised-solid)}.cr-seg>b{font-size:var(--ui-text-sm);font-weight:var(--fw-label)}.cr-seg>.fine{margin:var(--space-1) 0 0}.cr-seg>pre.code{margin-top:var(--space-4)}.cr-why,.cr-judge{margin:var(--space-2) 0 0;padding-left:var(--space-7);display:flex;flex-direction:column;gap:var(--space-3)}.cr-judge{margin:0;font-size:var(--ui-text-sm);color:var(--color-text-secondary);max-width:var(--measure)}.cr-judge b{color:var(--color-text);font-weight:var(--fw-label)}.cr-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 var(--space-6);background:var(--color-inset)}.cr-rec{display:flex;flex-direction:column;gap:var(--space-4)}.cr-rec .fine{margin:0}.cr-timer{display:flex;align-items:baseline;gap:var(--space-4)}.cr-timer b{font-size:var(--text-5xl);font-weight:var(--fw-display);letter-spacing:var(--ls-tight);line-height:var(--lh-tight)}.cr-done{display:flex;flex-direction:column;gap:var(--space-5)}.cr-video{display:block;width:100%;max-height:50vh;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-sunken)}.cr-facts{display:flex;gap:var(--space-3);flex-wrap:wrap}}@layer app{.ap-print{display:none}@media print{body>*:not(.ap-print){display:none!important}body:before{display:none!important}.ap-print{display:none}body[data-print=code] .ap-print[data-sheet=code],body[data-print=ppr] .ap-print[data-sheet=ppr]{display:block}html,body{background:#fff!important;color:#000;margin:0;padding:0}@page{margin:16mm 14mm}.ap-print{background:#fff;color:#000;font-family:ui-sans-serif,-apple-system,Helvetica Neue,Arial,sans-serif;font-size:10pt;line-height:1.4}.ap-print h1{font-size:13pt;font-weight:700;letter-spacing:0;margin:0 0 2pt;color:#000}.ap-print .ap-sub{font-size:9pt;color:#000;margin:0 0 10pt;max-width:none}.ap-seg{margin:0 0 12pt;break-inside:avoid;page-break-inside:avoid}.ap-seg h2{font-size:10.5pt;font-weight:700;margin:0 0 1pt;color:#000}.ap-seg .ap-what{font-size:8.5pt;margin:0 0 4pt;color:#000;max-width:none}.ap-print pre,.ap-print code{font-family:ui-monospace,SF Mono,Menlo,Consolas,Courier New,monospace;font-size:11pt;line-height:1.35;color:#000;background:none;border:0;padding:0;margin:0;white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.ap-seg pre{border:.5pt solid #000;padding:5pt 6pt}.ap-lines{display:block}.ap-line{display:grid;grid-template-columns:4ch 1fr;column-gap:8pt;align-items:start}.ap-line .ap-n{font-family:ui-monospace,SF Mono,Menlo,Consolas,Courier New,monospace;font-size:9pt;line-height:1.35;text-align:right;color:#000;-webkit-user-select:none;user-select:none}.ap-foot{margin-top:10pt;padding-top:4pt;border-top:.5pt solid #000;font-size:8pt;color:#000;max-width:none}.ap-break{break-before:page;page-break-before:always}}}@layer tokens,base,components,app;@layer tokens{:root{--grey-0: oklch(100% 0 233);--grey-25: oklch(98.9% .006 233);--grey-50: oklch(96.8% .006 233);--grey-100: oklch(93.8% .006 233);--grey-150: oklch(90.5% .006 233);--grey-200: oklch(88.7% .006 233);--grey-250: oklch(86% .006 233);--grey-300: oklch(78.8% .006 233);--grey-400: oklch(62.2% .006 233);--grey-450: oklch(55.4% .006 233);--grey-500: oklch(53.1% .006 233);--grey-550: oklch(48% .006 233);--grey-600: oklch(39.6% .006 233);--grey-650: oklch(33% .006 233);--grey-700: oklch(30.3% .006 233);--grey-750: oklch(26% .006 233);--grey-800: oklch(22.8% .006 233);--grey-850: oklch(19.3% .006 233);--grey-900: oklch(15.1% .006 233);--grey-950: oklch(9% .006 233);--blue-10: oklch(10% .02 233);--blue-20: oklch(20% .04 233);--blue-30: oklch(30% .058 233);--blue-40: oklch(40% .078 233);--blue-45: oklch(45% .088 233);--blue-50: oklch(50% .098 233);--blue-55: oklch(55% .108 233);--blue-60: oklch(60% .118 233);--blue-70: oklch(70% .138 233);--blue-80: oklch(80% .112 233);--blue-90: oklch(90% .054 233);--blue-95: oklch(95% .027 233);--blue-98: oklch(98% .011 233);--green-400: oklch(76% .145 152);--green-600: oklch(45% .115 152);--amber-400: oklch(76% .145 75);--amber-600: oklch(52% .112 75);--red-400: oklch(72% .155 27);--red-600: oklch(46% .175 27);--hue-bi1: oklch(62% .135 265);--hue-bi2: oklch(62% .13 165);--hue-bi3: oklch(62% .135 62);--hue-bi4: oklch(62% .135 320);--hue-bi5: oklch(62% .135 20);--space-0: 0px;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 12px;--space-6: 16px;--space-7: 20px;--space-8: 24px;--space-9: 32px;--space-10: 40px;--space-11: 56px;--space-12: 80px;--text-2xs: 10px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 15px;--text-xl: 16px;--text-2xl: 17px;--text-3xl: 19px;--text-4xl: 24px;--text-5xl: 30px;--text-6xl: 40px;--fw-recede: 350;--fw-body: 400;--fw-ui: 450;--fw-control: 500;--fw-label: 600;--fw-head: 680;--fw-display: 680;--lh-tight: 1.15;--lh-snug: 1.35;--lh-normal: 1.55;--lh-loose: 1.7;--ls-tightest: -.022em;--ls-tighter: -.022em;--ls-tight: -.012em;--ls-normal: -.005em;--ls-none: 0em;--ls-wide: .05em;--ls-wider: .07em;--ls-control: .09em;--radius-xs: 5px;--radius-sm: 7px;--radius-md: 9px;--radius-lg: 12px;--radius-xl: 14px;--radius-2xl: 18px;--radius-full: 999px;--radius-control: var(--radius-md);--radius-field: var(--radius-lg);--radius-card: var(--radius-xl);--radius-screen: var(--radius-sm);--radius-chip: var(--radius-full);--pad-cutout: 1px;--radius-cutout-control: calc(var(--radius-control) - var(--pad-cutout));--radius-cutout-field: calc(var(--radius-field) - var(--pad-cutout));--ctl-border-w: 0px;--dur-1: .12s;--dur-2: .18s;--dur-3: .24s;--dur-4: .38s;--dur-5: .56s;--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-raised: 10;--z-sticky: 20;--z-rail: 30;--z-overlay: 100;--z-modal: 110;--z-toast: 120;--font-sans: "Geist", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--ctl-font: var(--font-mono);--ctl-weight: var(--fw-control);--ctl-tracking: var(--ls-control);--ctl-transform: uppercase;--rail-w: 248px;--measure: 68ch;--measure-sm: 62ch;--page-w: 780px;--page-w-wide: 940px}:root{color-scheme:light;--color-canvas: var(--grey-25);--color-sunken: var(--grey-50);--color-raised: var(--color-raised-solid);--color-raised-solid: var(--grey-0);--color-overlay: oklch(100% 0 233 / .92);--color-scrim: oklch(15.1% .006 233 / .28);--color-inset: var(--grey-50);--color-console: var(--grey-100);--color-console-ink: var(--grey-700);--color-key-on-console: var(--grey-0);--tint-lit-base: var(--grey-0);--tint-lit-mix: 12%;--color-console-ink-2: oklch(44% .006 233);--color-console-ink-faint: oklch(46% .006 233);--color-text: var(--grey-800);--color-text-secondary: var(--grey-600);--color-text-tertiary: var(--grey-500);--color-text-faint: var(--grey-450);--color-text-disabled: var(--grey-300);--color-text-inverse: var(--grey-0);--color-mark: var(--grey-400);--color-border-subtle: oklch(15.1% .006 233 / .045);--color-border: oklch(15.1% .006 233 / .08);--color-border-strong: oklch(15.1% .006 233 / .22);--color-border-field: var(--color-mark);--color-control: var(--grey-50);--color-control-hover: var(--grey-100);--color-control-ink: var(--color-text);--color-field-bg: var(--grey-0);--color-accent: var(--blue-50);--color-accent-bg: color-mix(in oklab, var(--blue-50) 10%, transparent);--color-accent-bg-strong: color-mix(in oklab, var(--blue-50) 20%, transparent);--color-accent-solid: var(--blue-50);--color-accent-hover: var(--blue-45);--color-accent-on-solid: var(--grey-0);--color-success: var(--green-600);--color-success-bg: color-mix(in oklab, var(--green-600) 11%, transparent);--color-success-solid: var(--green-600);--color-success-on-solid: var(--grey-0);--color-caution: var(--amber-600);--color-caution-bg: color-mix(in oklab, var(--amber-600) 12%, transparent);--color-caution-solid: var(--amber-600);--color-caution-on-solid: var(--grey-0);--color-danger: var(--red-600);--color-danger-bg: color-mix(in oklab, var(--red-600) 11%, transparent);--color-danger-solid: var(--red-600);--color-danger-on-solid: var(--grey-0);--color-focus: var(--blue-50);--focus-ring: 0 0 0 3px var(--color-accent-bg-strong);--focus-ring-width: 2px;--color-highlight: var(--grey-0);--color-shadow: var(--grey-900);--color-cutout: var(--grey-900);--color-key: var(--grey-100);--color-key-hover: var(--blue-95);--color-key-active: var(--grey-300);--color-key-ink: var(--grey-600);--color-key-ink-active: var(--grey-700);--color-rim: var(--color-highlight);--color-rim-hover: var(--blue-98);--color-lamp-on: var(--blue-70);--color-lamp-off: var(--grey-300);--ctl-rim: var(--color-rim-hover);--ctl-shadow-raised: -2px -2px 6px 0 color-mix(in oklab, var(--color-highlight) 55%, transparent), 3px 3px 6px 0 color-mix(in oklab, var(--color-shadow) 18%, transparent), inset 1px 1px 1px 0 color-mix(in oklab, var(--color-rim) 70%, transparent);--ctl-shadow-raised-hover: -2px -2px 6px 0 color-mix(in oklab, var(--ctl-rim) 60%, transparent), 3px 3px 6px 0 color-mix(in oklab, var(--color-shadow) 18%, transparent), inset 2px 2px 1px 0 var(--ctl-rim);--ctl-shadow-raised-active: -1px -1px 3px 0 color-mix(in oklab, var(--color-highlight) 20%, transparent), 1px 1px 2px 0 color-mix(in oklab, var(--color-shadow) 22%, transparent), inset 2px 2px 5px 0 color-mix(in oklab, var(--color-shadow) 26%, transparent);--ctl-shadow-flat: 0 1px 2px 0 color-mix(in oklab, var(--color-shadow) 14%, transparent), inset 1px 1px 1px 0 color-mix(in oklab, var(--color-rim) 60%, transparent);--ctl-shadow-flat-hover: 0 1px 3px 0 color-mix(in oklab, var(--color-shadow) 16%, transparent), inset 2px 2px 1px 0 var(--ctl-rim);--ctl-shadow-flat-active: inset 2px 2px 4px 0 color-mix(in oklab, var(--color-shadow) 22%, transparent);--ctl-inset: inset 1px 1px 2px 0 color-mix(in oklab, var(--color-shadow) 15%, transparent), inset -1px -1px 1px 0 color-mix(in oklab, var(--color-highlight) 45%, transparent);--ctl-shadow: var(--ctl-shadow-flat);--ctl-shadow-hover: var(--ctl-shadow-flat-hover);--ctl-shadow-active: var(--ctl-shadow-flat-active);--elev-0: none;--elev-1: 0 1px 2px color-mix(in oklab, var(--color-shadow) 5%, transparent);--elev-2: 0 1px 2px color-mix(in oklab, var(--color-shadow) 5%, transparent), 0 8px 28px color-mix(in oklab, var(--color-shadow) 6%, transparent);--elev-3: 0 2px 4px color-mix(in oklab, var(--color-shadow) 6%, transparent), 0 14px 40px color-mix(in oklab, var(--color-shadow) 11%, transparent);--elev-4: 0 2px 6px color-mix(in oklab, var(--color-shadow) 12%, transparent), 0 24px 60px color-mix(in oklab, var(--color-shadow) 28%, transparent);--frost: none;--frost-strong: none;--color-knob: var(--grey-0);--wash-1: color-mix(in oklab, var(--blue-70) 12%, transparent);--wash-2: color-mix(in oklab, var(--blue-50) 7%, transparent);--wash-3: color-mix(in oklab, var(--blue-90) 22%, transparent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--color-canvas: var(--grey-900);--color-sunken: var(--grey-850);--color-raised: var(--color-raised-solid);--color-raised-solid: var(--grey-800);--color-overlay: oklch(22.8% .006 233 / .92);--color-scrim: oklch(9% .006 233 / .5);--color-inset: var(--grey-850);--color-console: var(--grey-750);--color-console-ink: var(--grey-100);--color-key-on-console: var(--grey-650);--tint-lit-base: var(--color-key);--tint-lit-mix: 0%;--color-console-ink-2: oklch(70% .006 233);--color-console-ink-faint: oklch(66% .006 233);--color-text: var(--grey-25);--color-text-secondary: oklch(78% .006 233);--color-text-tertiary: oklch(68% .006 233);--color-text-faint: var(--grey-400);--color-text-disabled: var(--grey-500);--color-text-inverse: var(--grey-900);--color-mark: var(--grey-400);--color-border-subtle: oklch(98.9% .006 233 / .06);--color-border: oklch(98.9% .006 233 / .1);--color-border-strong: oklch(98.9% .006 233 / .32);--color-border-field: var(--color-mark);--color-control: var(--grey-700);--color-control-hover: var(--grey-600);--color-control-ink: var(--color-text);--color-field-bg: var(--grey-850);--color-accent: var(--blue-80);--color-accent-bg: color-mix(in oklab, var(--blue-80) 14%, transparent);--color-accent-bg-strong: color-mix(in oklab, var(--blue-80) 26%, transparent);--color-accent-solid: var(--blue-80);--color-accent-hover: var(--blue-90);--color-accent-on-solid: var(--grey-900);--color-success: var(--green-400);--color-success-bg: color-mix(in oklab, var(--green-400) 13%, transparent);--color-success-solid: var(--green-400);--color-success-on-solid: var(--grey-900);--color-caution: var(--amber-400);--color-caution-bg: color-mix(in oklab, var(--amber-400) 13%, transparent);--color-caution-solid: var(--amber-400);--color-caution-on-solid: var(--grey-900);--color-danger: var(--red-400);--color-danger-bg: color-mix(in oklab, var(--red-400) 13%, transparent);--color-danger-solid: var(--red-400);--color-danger-on-solid: var(--grey-900);--color-focus: var(--blue-80);--focus-ring: 0 0 0 3px var(--color-accent-bg-strong);--color-highlight: var(--grey-550);--color-shadow: var(--grey-950);--color-cutout: var(--grey-950);--color-key: var(--grey-650);--color-key-hover: var(--blue-30);--color-key-active: var(--grey-700);--color-key-ink: var(--grey-100);--color-key-ink-active: var(--grey-0);--color-rim: var(--color-highlight);--color-rim-hover: var(--blue-70);--color-lamp-on: var(--blue-70);--color-lamp-off: var(--grey-600);--elev-1: 0 1px 2px color-mix(in oklab, var(--color-shadow) 34%, transparent);--elev-2: 0 1px 2px color-mix(in oklab, var(--color-shadow) 34%, transparent), 0 8px 28px color-mix(in oklab, var(--color-shadow) 40%, transparent);--elev-3: 0 2px 4px color-mix(in oklab, var(--color-shadow) 38%, transparent), 0 14px 40px color-mix(in oklab, var(--color-shadow) 52%, transparent);--elev-4: 0 2px 6px color-mix(in oklab, var(--color-shadow) 44%, transparent), 0 24px 60px color-mix(in oklab, var(--color-shadow) 64%, transparent);--color-knob: var(--grey-100);--wash-1: color-mix(in oklab, var(--blue-70) 14%, transparent);--wash-2: color-mix(in oklab, var(--blue-50) 16%, transparent);--wash-3: color-mix(in oklab, var(--blue-30) 30%, transparent)}}:root[data-theme=dark]{color-scheme:dark;--color-canvas: var(--grey-900);--color-sunken: var(--grey-850);--color-raised: var(--color-raised-solid);--color-raised-solid: var(--grey-800);--color-overlay: oklch(22.8% .006 233 / .92);--color-scrim: oklch(9% .006 233 / .5);--color-inset: var(--grey-850);--color-console: var(--grey-750);--color-console-ink: var(--grey-100);--color-key-on-console: var(--grey-650);--tint-lit-base: var(--color-key);--tint-lit-mix: 0%;--color-console-ink-2: oklch(70% .006 233);--color-console-ink-faint: oklch(66% .006 233);--color-text: var(--grey-25);--color-text-secondary: oklch(78% .006 233);--color-text-tertiary: oklch(68% .006 233);--color-text-faint: var(--grey-400);--color-text-disabled: var(--grey-500);--color-text-inverse: var(--grey-900);--color-mark: var(--grey-400);--color-border-subtle: oklch(98.9% .006 233 / .06);--color-border: oklch(98.9% .006 233 / .1);--color-border-strong: oklch(98.9% .006 233 / .32);--color-border-field: var(--color-mark);--color-control: var(--grey-700);--color-control-hover: var(--grey-600);--color-control-ink: var(--color-text);--color-field-bg: var(--grey-850);--color-accent: var(--blue-80);--color-accent-bg: color-mix(in oklab, var(--blue-80) 14%, transparent);--color-accent-bg-strong: color-mix(in oklab, var(--blue-80) 26%, transparent);--color-accent-solid: var(--blue-80);--color-accent-hover: var(--blue-90);--color-accent-on-solid: var(--grey-900);--color-success: var(--green-400);--color-success-bg: color-mix(in oklab, var(--green-400) 13%, transparent);--color-success-solid: var(--green-400);--color-success-on-solid: var(--grey-900);--color-caution: var(--amber-400);--color-caution-bg: color-mix(in oklab, var(--amber-400) 13%, transparent);--color-caution-solid: var(--amber-400);--color-caution-on-solid: var(--grey-900);--color-danger: var(--red-400);--color-danger-bg: color-mix(in oklab, var(--red-400) 13%, transparent);--color-danger-solid: var(--red-400);--color-danger-on-solid: var(--grey-900);--color-focus: var(--blue-80);--focus-ring: 0 0 0 3px var(--color-accent-bg-strong);--color-highlight: var(--grey-550);--color-shadow: var(--grey-950);--color-cutout: var(--grey-950);--color-key: var(--grey-650);--color-key-hover: var(--blue-30);--color-key-active: var(--grey-700);--color-key-ink: var(--grey-100);--color-key-ink-active: var(--grey-0);--color-rim: var(--color-highlight);--color-rim-hover: var(--blue-70);--color-lamp-on: var(--blue-70);--color-lamp-off: var(--grey-600);--elev-1: 0 1px 2px color-mix(in oklab, var(--color-shadow) 34%, transparent);--elev-2: 0 1px 2px color-mix(in oklab, var(--color-shadow) 34%, transparent), 0 8px 28px color-mix(in oklab, var(--color-shadow) 40%, transparent);--elev-3: 0 2px 4px color-mix(in oklab, var(--color-shadow) 38%, transparent), 0 14px 40px color-mix(in oklab, var(--color-shadow) 52%, transparent);--elev-4: 0 2px 6px color-mix(in oklab, var(--color-shadow) 44%, transparent), 0 24px 60px color-mix(in oklab, var(--color-shadow) 64%, transparent);--color-knob: var(--grey-100);--wash-1: color-mix(in oklab, var(--blue-70) 14%, transparent);--wash-2: color-mix(in oklab, var(--blue-50) 16%, transparent);--wash-3: color-mix(in oklab, var(--blue-30) 30%, transparent)}@media (prefers-contrast: more){:root{--color-border: oklch(15.1% .006 233 / .34);--color-border-strong: oklch(15.1% .006 233 / .62);--color-text-faint: var(--grey-500);--ctl-border-w: 1px}:root[data-theme=dark],:root:not([data-theme=light]){--color-border: oklch(98.9% .006 233 / .4);--color-border-strong: oklch(98.9% .006 233 / .7)}}@media (forced-colors: active){:root{--ctl-shadow: none;--ctl-shadow-hover: none;--ctl-shadow-active: none;--ctl-border-w: 1px;--elev-1: none;--elev-2: none;--elev-3: none;--elev-4: none}}:root,[data-density=compact]{--ui-text: var(--text-md);--ui-text-sm: var(--text-base);--ui-control-h: 32px;--ui-control-px: var(--space-5);--ui-control-sm-h: 26px;--ui-row-h: 34px;--ui-row-py: var(--space-4);--ui-card-p: var(--space-6);--ui-card-gap: var(--space-5);--ui-nav-h: 30px;--ui-tap: 32px;--ui-page-py: var(--space-9);--ui-ctl-text: var(--text-sm)}[data-density=comfortable]{--ui-text: var(--text-lg);--ui-text-sm: var(--text-md);--ui-control-h: 40px;--ui-control-px: var(--space-6);--ui-control-sm-h: 32px;--ui-row-h: 44px;--ui-row-py: var(--space-5);--ui-card-p: var(--space-7);--ui-card-gap: var(--space-5);--ui-nav-h: 38px;--ui-tap: 44px;--ui-page-py: var(--space-11);--ui-ctl-text: var(--text-base)}:root{--ap-screen-w: 320px;--ap-screen-h: 450px;--ap-control-h: 36px;--ap-control-px: var(--space-5);--ap-text: var(--text-md);--ap-gutter: var(--space-2);--ap-radius: var(--radius-md);--ap-radius-field: var(--radius-lg)}}@layer tokens{:root{--bg: var(--color-canvas);--bg-deep: var(--color-sunken);--surface: var(--color-raised);--surface-2: var(--color-overlay);--line: var(--color-border);--line-soft: var(--color-border-subtle);--ink: var(--color-text);--ink-2: var(--color-text-secondary);--ink-3: var(--color-text-tertiary);--accent: var(--color-accent);--accent-bg: var(--color-accent-bg);--good: var(--color-success);--good-bg: var(--color-success-bg);--warn: var(--color-caution);--warn-bg: var(--color-caution-bg);--shadow: var(--elev-2);--ease: var(--ease-out);--sidebar: var(--rail-w)}}@layer base{*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:var(--ui-text);font-weight:var(--fw-body);line-height:var(--lh-normal);letter-spacing:var(--ls-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:-20vmax;right:-20vmax;bottom:-20vmax;left:-20vmax;z-index:-1;pointer-events:none;background:radial-gradient(48vmax 40vmax at 12% -4%,var(--wash-1),transparent 62%),radial-gradient(44vmax 38vmax at 96% 8%,var(--wash-2),transparent 62%),radial-gradient(52vmax 44vmax at 60% 108%,var(--wash-3),transparent 62%)}[data-wash=off] body:before{display:none}a{color:inherit}a.link{color:var(--color-accent);text-decoration:none}a.link:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono);font-size:var(--text-base);letter-spacing:var(--ls-none)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}:where(button,input,select,textarea)[disabled],[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}::selection{background:var(--color-accent-bg-strong)}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}[data-theme-switching] *,[data-theme-switching] *:before,[data-theme-switching] *:after{transition:none!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer components{.shell{display:flex;min-height:100%}.console,.rail{background:var(--color-console);color:var(--color-console-ink);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);--color-text-secondary: var(--color-console-ink);--color-text-tertiary: var(--color-console-ink-2);--color-text-faint: var(--color-console-ink-faint)}.console{padding:var(--space-5);border-radius:var(--radius-card);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.console.flush{border-radius:0}.plate{position:relative;isolation:isolate;padding:calc(var(--space-6) + var(--space-2));border-radius:calc(var(--radius-card) + var(--space-2));background:var(--color-cutout);color:var(--color-console-ink);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);--color-text-secondary: var(--color-console-ink);--color-text-tertiary: var(--color-console-ink-2);--color-text-faint: var(--color-console-ink-faint)}.plate:before{content:"";position:absolute;inset:var(--space-2);z-index:-1;border-radius:var(--radius-card);background:var(--color-console);box-shadow:var(--ctl-shadow-raised);pointer-events:none}.rail{position:sticky;top:0;height:100vh;width:var(--rail-w);flex:0 0 var(--rail-w);display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-8) var(--space-5) var(--space-6);border-right:1px solid var(--color-border);z-index:var(--z-rail)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.card,.face,.modal,.exam-bar{background:var(--color-raised-solid)}}.brand{padding:var(--space-1) var(--space-5) var(--space-7)}.brand b{display:block;font-size:var(--text-2xl);font-weight:var(--fw-head);letter-spacing:var(--ls-tighter)}.brand span{display:block;font-size:var(--text-sm);font-weight:var(--fw-ui);color:var(--color-text-tertiary);letter-spacing:var(--ls-none)}.nav-label{padding:var(--space-6) var(--space-5) var(--space-3);font-size:var(--text-xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);letter-spacing:var(--ls-wider);text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:var(--ui-nav-h);padding:var(--space-4) var(--space-5);border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--ui-text-sm);font-weight:var(--fw-ui);text-align:left;text-decoration:none;cursor:pointer;transition:background var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out),font-weight var(--dur-3) var(--ease-out)}.nav-item:is(:hover,:focus-visible){background:var(--color-key-hover);color:var(--color-text)}.nav-item[aria-current=true],.nav-item[aria-current=page],.nav-item.active{background:var(--color-accent-bg);color:var(--color-accent);font-weight:var(--fw-label)}.nav-item .idx{min-width:15px;font-size:var(--text-xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.nav-item[aria-current=true] .idx,.nav-item.active .idx{color:var(--color-accent)}.nav-item .pct{margin-left:auto;font-size:var(--text-xs);font-weight:var(--fw-control);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.rail-foot{margin-top:auto;padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle);display:flex;gap:var(--space-3);flex-wrap:wrap}.who{padding:0 var(--space-4) var(--space-4);font-size:var(--ui-text-sm)}.who b{display:block;font-weight:var(--fw-control)}.who span{color:var(--color-text-tertiary);font-size:var(--text-sm)}.main{flex:1;min-width:0}.wrap{max-width:var(--page-w);margin:0 auto;padding:0 var(--space-10) var(--space-12)}.wrap.wide{max-width:var(--page-w-wide)}.boot{padding:var(--space-12) var(--space-10);color:var(--color-text-tertiary)}.spacer{flex:1}.view{display:none}.view.on{display:block;animation:ds-rise var(--dur-4) var(--ease-out) both}.rise{animation:ds-rise var(--dur-4) var(--ease-out)}@keyframes ds-rise{0%{opacity:0;filter:blur(9px);transform:translateY(var(--space-4))}to{opacity:1;filter:blur(0);transform:none}}.head{padding:var(--ui-page-py) 0 var(--space-3)}.head.ruled{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-8)}.eyebrow{margin:0 0 var(--space-4);font-family:var(--ctl-font);font-size:var(--text-sm);font-weight:var(--ctl-weight);color:var(--color-text-tertiary);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform)}h1,.h1{margin:0 0 var(--space-4);font-size:var(--text-5xl);font-weight:var(--fw-display);letter-spacing:var(--ls-tightest);line-height:var(--lh-tight)}h2,.h2{margin:var(--space-11) 0 var(--space-5);font-size:var(--text-3xl);font-weight:var(--fw-head);letter-spacing:var(--ls-tight);line-height:var(--lh-snug)}h3,.h3{margin:var(--space-8) 0 var(--space-4);font-size:var(--ui-text);font-weight:var(--fw-label);letter-spacing:var(--ls-tight)}.lede{margin:0 0 var(--space-4);font-size:var(--text-xl);font-weight:var(--fw-recede);color:var(--color-text-secondary);max-width:var(--measure-sm)}p{margin:0 0 var(--space-5);max-width:var(--measure)}.dim{color:var(--color-text-tertiary);font-weight:var(--fw-body)}.strong{font-weight:var(--fw-label)}.fine{font-size:var(--text-base);font-weight:var(--fw-body);color:var(--color-text-tertiary)}.num{font-variant-numeric:tabular-nums}.group-h{margin:var(--space-8) 0 var(--space-1);font-family:var(--ctl-font);font-size:var(--text-sm);font-weight:var(--ctl-weight);color:var(--color-text-tertiary);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform)}.card{background:var(--color-raised);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--elev-2);padding:var(--ui-card-p)}.card+.card{margin-top:var(--ui-card-gap)}.grid>.card+.card,.stack>.card+.card{margin-top:0}.stack{display:flex;flex-direction:column;gap:var(--ui-card-gap)}.stack.tight{gap:var(--space-4)}.stack.loose{gap:var(--space-8)}.card.flat{box-shadow:var(--elev-0);background:transparent}.card.solid{background:var(--color-raised-solid);backdrop-filter:none;-webkit-backdrop-filter:none}.card.inset{background:var(--color-inset);box-shadow:var(--elev-0);-webkit-backdrop-filter:none;backdrop-filter:none}.card.pad-0{padding:0;overflow:hidden}.grid{display:grid;gap:var(--ui-card-gap)}.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 820px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}.tile{text-align:left;cursor:pointer;font:inherit;color:inherit;transition:transform var(--dur-4) var(--ease-out),border-color var(--dur-4) var(--ease-out),box-shadow var(--dur-4) var(--ease-out)}.tile:is(:hover,:focus-visible){transform:translateY(-2px);border-color:var(--color-border-strong);box-shadow:var(--elev-3)}.tile:active{transform:translateY(0)}.tile .k,.tile .v,.tile .s,.tile .bar{display:block}.tile .k{font-family:var(--ctl-font);font-size:var(--text-sm);font-weight:var(--ctl-weight);color:var(--color-text-tertiary);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform)}.tile .v{font-size:var(--text-4xl);font-weight:var(--fw-display);letter-spacing:var(--ls-tightest);font-variant-numeric:tabular-nums;margin-top:var(--space-2);line-height:var(--lh-tight)}.tile .s{font-size:var(--ui-text-sm);font-weight:var(--fw-body);color:var(--color-text-secondary)}.btn{--btn-face: var(--color-key);--btn-face-hover: var(--color-key-hover);--btn-face-active: var(--color-key-active);--btn-ink: var(--color-key-ink);--btn-ink-active: var(--color-key-ink-active);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:var(--ui-control-h);padding:0 calc(var(--ui-control-px) + var(--pad-cutout));border:var(--ctl-border-w) solid var(--color-border-strong);border-radius:var(--radius-cutout-control);background:var(--color-cutout);color:var(--btn-ink);font-family:var(--ctl-font);font-size:var(--ui-ctl-text);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--dur-2) var(--ease-out)}.btn:before{content:"";position:absolute;inset:var(--pad-cutout);z-index:-1;border-radius:var(--radius-control);background:var(--btn-face);box-shadow:var(--ctl-shadow);pointer-events:none;transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.btn:is(:hover,:focus-visible):before{background:var(--btn-face-hover);box-shadow:var(--ctl-shadow-hover)}.btn:active:before{background:var(--btn-face-active);box-shadow:var(--ctl-shadow-active)}.btn:active{color:var(--btn-ink-active)}.btn.pri{--btn-face: var(--color-accent-solid);--btn-face-hover: color-mix(in oklab, var(--color-accent-solid) 92%, var(--color-highlight));--btn-face-active: var(--color-accent-hover);--btn-ink: var(--color-accent-on-solid);--btn-ink-active: var(--color-accent-on-solid);--ctl-rim: color-mix(in oklab, var(--color-accent-solid) 45%, var(--color-highlight))}.btn.danger{--btn-face: var(--color-danger-solid);--btn-face-hover: color-mix(in oklab, var(--color-danger-solid) 88%, var(--color-highlight));--btn-face-active: var(--color-danger-solid);--btn-ink: var(--color-danger-on-solid);--btn-ink-active: var(--color-danger-on-solid);--ctl-rim: color-mix(in oklab, var(--color-danger-solid) 45%, var(--color-highlight))}.btn.good,.btn.tint-success{--btn-ink: var(--color-success);--btn-ink-active: var(--color-success);--btn-face-hover: color-mix(in oklab, var(--color-success) var(--tint-lit-mix), var(--tint-lit-base));--ctl-rim: color-mix(in oklab, var(--color-success) 40%, var(--color-highlight))}.btn.again,.btn.tint-caution{--btn-ink: var(--color-caution);--btn-ink-active: var(--color-caution);--btn-face-hover: color-mix(in oklab, var(--color-caution) var(--tint-lit-mix), var(--tint-lit-base));--ctl-rim: color-mix(in oklab, var(--color-caution) 40%, var(--color-highlight))}.btn.tint-danger{--btn-ink: var(--color-danger);--btn-ink-active: var(--color-danger);--btn-face-hover: color-mix(in oklab, var(--color-danger) var(--tint-lit-mix), var(--tint-lit-base));--ctl-rim: color-mix(in oklab, var(--color-danger) 40%, var(--color-highlight))}.btn.tint-accent{--btn-ink: var(--color-accent);--btn-ink-active: var(--color-accent);--btn-face-hover: color-mix(in oklab, var(--color-accent) var(--tint-lit-mix), var(--tint-lit-base));--ctl-rim: color-mix(in oklab, var(--color-accent) 40%, var(--color-highlight))}.btn.sm{min-height:var(--ui-control-sm-h);padding:0 calc(var(--space-4) + var(--pad-cutout));font-size:var(--text-xs)}.btn.lg{min-height:calc(var(--ui-control-h) + var(--space-4));padding:0 calc(var(--space-8) + var(--pad-cutout));font-size:var(--ui-text-sm)}.btn.wide{display:flex;width:100%}.btn.icon{padding:0;width:var(--ui-control-h);letter-spacing:0}.btn.sentence{font-family:var(--font-sans);font-size:var(--ui-text-sm);letter-spacing:var(--ls-normal);text-transform:none}.btn[aria-busy=true]{color:transparent;pointer-events:none;position:relative}.btn[aria-busy=true]:after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);color:var(--color-text);animation:ds-spin var(--dur-5) linear infinite}.btn.pri[aria-busy=true]:after{color:var(--color-accent-on-solid)}@keyframes ds-spin{to{transform:rotate(360deg)}}.ghost{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--ui-control-sm-h);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:var(--ctl-font);font-size:var(--text-xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);cursor:pointer;transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.ghost:is(:hover,:focus-visible){background:var(--color-overlay);color:var(--color-text);border-color:var(--color-border-strong)}.ghost.bare{border-color:transparent}.ghost.bare:is(:hover,:focus-visible){background:var(--color-border-subtle);border-color:transparent}.ghost.danger{color:var(--color-danger)}.ghost.danger:is(:hover,:focus-visible){background:var(--color-danger-bg);border-color:var(--color-danger)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-5) 0 var(--space-2)}.chip{--chip-face: transparent;position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--ui-control-sm-h);padding:0 calc(var(--space-5) + var(--pad-cutout));border:var(--ctl-border-w) solid var(--color-border-strong);border-radius:var(--radius-chip);background:var(--color-border);color:var(--color-text-secondary);font-family:var(--ctl-font);font-size:var(--text-xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);cursor:pointer;transition:color var(--dur-2) var(--ease-out)}.chip:before{content:"";position:absolute;inset:var(--pad-cutout);z-index:-1;border-radius:var(--radius-chip);background:var(--chip-face);pointer-events:none;transition:background var(--dur-2) var(--ease-out)}.chip:is(:hover,:focus-visible){color:var(--color-text)}.chip:is(:hover,:focus-visible):before{background:var(--chip-face-hover, var(--color-key-hover))}.chip[aria-pressed=true],.chip.on{--chip-face: var(--color-accent-solid);--chip-face-hover: color-mix(in oklab, var(--color-accent-solid) 92%, var(--color-highlight));color:var(--color-accent-on-solid);background:var(--color-cutout)}.toggle{display:inline-flex;gap:var(--space-1);padding:calc(var(--space-1) + var(--pad-cutout));border-radius:var(--radius-control);background:var(--color-border);box-shadow:inset 1px 1px 2px color-mix(in oklab,var(--color-shadow) 16%,transparent)}.toggle button{position:relative;isolation:isolate;border:0;border-radius:var(--radius-cutout-control);background:transparent;color:var(--color-text-tertiary);font-family:var(--ctl-font);font-size:var(--text-xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);padding:var(--space-2) var(--space-5);cursor:pointer;transition:color var(--dur-3) var(--ease-out)}.toggle button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:transparent;pointer-events:none;transition:background var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.toggle button:is(:hover,:focus-visible){color:var(--color-text)}.toggle button:is(:hover,:focus-visible):before{background:var(--color-key-hover)}.toggle button[aria-pressed=true],.toggle button.on{color:var(--color-text)}.toggle button:is([aria-pressed=true],.on):before{background:var(--color-key);box-shadow:var(--ctl-shadow)}.pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border:1px solid transparent;border-radius:var(--radius-full);font-family:var(--ctl-font);font-size:var(--text-2xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);white-space:nowrap;background:var(--color-border-subtle);color:var(--color-text-secondary)}.pill.acc{background:var(--color-accent-bg);color:var(--color-accent)}.pill.ok{background:var(--color-success-bg);color:var(--color-success)}.pill.warn{background:var(--color-caution-bg);color:var(--color-caution)}.pill.danger{background:var(--color-danger-bg);color:var(--color-danger)}.pill.outline{background:transparent;border-color:var(--color-border)}.pill.outline.acc{border-color:var(--color-accent)}.pill.outline.ok{border-color:var(--color-success)}.pill.outline.warn{border-color:var(--color-caution)}.pill.outline.danger{border-color:var(--color-danger)}.lamp{flex:none;display:inline-block;width:10px;height:10px;border-radius:var(--radius-full);background:var(--color-lamp-off);box-shadow:inset 1px 1px 2px color-mix(in oklab,var(--color-shadow) 40%,transparent);transition:background var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.lamp.on,.lamp[data-on=true]{background:var(--color-lamp-on);box-shadow:0 0 6px 0 var(--color-lamp-on),inset 1px 1px 2px color-mix(in oklab,var(--color-shadow) 30%,transparent)}.lamp.warn{background:var(--color-caution);box-shadow:0 0 6px 0 var(--color-caution)}.lamp.danger{background:var(--color-danger);box-shadow:0 0 6px 0 var(--color-danger)}.dot{width:7px;height:7px;border-radius:var(--radius-full);display:inline-block;flex:none}.dot.bi1{background:var(--hue-bi1)}.dot.bi2{background:var(--hue-bi2)}.dot.bi3{background:var(--hue-bi3)}.dot.bi4{background:var(--hue-bi4)}.dot.bi5{background:var(--hue-bi5)}.form>.lbl:first-child{margin-top:0}.lbl{display:block;font-family:var(--ctl-font);font-size:var(--text-sm);font-weight:var(--ctl-weight);color:var(--color-text-tertiary);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);margin:var(--space-6) 0 var(--space-3)}.field{display:block;width:100%;min-height:var(--ui-control-h);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border-field);border-radius:var(--radius-lg);background:var(--color-overlay);color:var(--color-text);font:inherit;font-size:var(--ui-text-sm);font-weight:var(--fw-body);outline:none;box-shadow:var(--ctl-inset);transition:border-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.field::placeholder{color:var(--color-text-faint);font-weight:var(--fw-recede)}.field:focus,.field:focus-visible{border-color:var(--color-focus);box-shadow:var(--ctl-inset),var(--focus-ring);outline:none}.field[aria-invalid=true]{border-color:var(--color-danger);box-shadow:var(--ctl-inset),0 0 0 3px var(--color-danger-bg)}.field.small{min-height:var(--ui-control-sm-h);padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}textarea.field{min-height:96px;resize:vertical;line-height:var(--lh-normal)}.search{width:100%;min-height:calc(var(--ui-control-h) + var(--space-2));padding:0 var(--space-6);border:1px solid var(--color-border-field);border-radius:var(--radius-lg);background:var(--color-overlay);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);color:var(--color-text);font:inherit;font-size:var(--ui-text);outline:none;box-shadow:var(--ctl-inset);transition:border-color var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.search:focus{border-color:var(--color-focus);box-shadow:var(--ctl-inset),var(--focus-ring)}.search::placeholder{color:var(--color-text-faint);font-weight:var(--fw-recede)}.numin{width:62px;min-height:var(--ui-control-sm-h);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-field);border-radius:var(--radius-sm);background:var(--color-overlay);color:var(--color-text);font:inherit;font-size:var(--ui-text-sm);font-weight:var(--fw-control);font-variant-numeric:tabular-nums;text-align:center;outline:none;box-shadow:var(--ctl-inset);transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.numin:focus{border-color:var(--color-focus);box-shadow:var(--ctl-inset),var(--focus-ring)}.hint{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:var(--space-2) 0 0}.error{font-size:var(--text-sm);color:var(--color-danger);font-weight:var(--fw-control);margin:var(--space-2) 0 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}@media (max-width: 640px){.two{grid-template-columns:1fr}}.check{display:flex;gap:var(--space-4);align-items:flex-start;min-height:var(--ui-tap);padding:var(--space-4) var(--space-1);border-bottom:1px solid var(--color-border-subtle);cursor:pointer}.check:last-child{border-bottom:0}.check input{position:absolute;opacity:0;width:1px;height:1px}.box{flex:none;width:18px;height:18px;margin-top:2px;border:1.5px solid var(--color-mark);border-radius:var(--radius-xs);display:grid;place-items:center;transition:background var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out)}.box:after{content:"";width:9px;height:5px;border-left:1.8px solid var(--color-accent-on-solid);border-bottom:1.8px solid var(--color-accent-on-solid);transform:rotate(-45deg) scale(.5) translate(1px,-1px);opacity:0;transition:opacity var(--dur-2) var(--ease-out),transform var(--dur-4) var(--ease-spring)}.check input:checked+.box{background:var(--color-accent-solid);border-color:var(--color-accent-solid)}.check input:checked+.box:after{opacity:1;transform:rotate(-45deg) scale(1) translate(1px,-1px)}.check input:focus-visible+.box{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.check .txt{font-size:var(--ui-text-sm);font-weight:var(--fw-ui);transition:color var(--dur-4) var(--ease-out),font-weight var(--dur-4) var(--ease-out)}.check .txt em{display:block;font-style:normal;font-size:var(--text-base);font-weight:var(--fw-recede);color:var(--color-text-tertiary);margin-top:1px}.check input:checked~.txt{color:var(--color-text-tertiary);font-weight:var(--fw-recede)}.switch{display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--ui-text-sm);cursor:pointer}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .track{flex:none;width:38px;height:22px;border-radius:var(--radius-full);background:var(--color-border-strong);padding:2px;transition:background var(--dur-3) var(--ease-out)}.switch .track:after{content:"";display:block;width:18px;height:18px;border-radius:var(--radius-full);background:var(--color-knob);box-shadow:var(--elev-1);transition:transform var(--dur-3) var(--ease-out)}.switch input:checked+.track{background:var(--color-accent-solid)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.row{display:flex;gap:var(--space-5);align-items:baseline;min-height:var(--ui-row-h);padding:var(--ui-row-py) 0;border-bottom:1px solid var(--color-border-subtle);font-size:var(--ui-text-sm)}.row:last-child{border-bottom:0}.row-k{min-width:130px;font-weight:var(--fw-control)}.row-v{flex:1;min-width:0}.row-m{color:var(--color-text-tertiary);font-size:var(--text-base)}.count{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);padding:var(--ui-row-py) 0;border-bottom:1px solid var(--color-border-subtle)}.count:last-child{border-bottom:0}.count .lab{font-size:var(--ui-text-sm);font-weight:var(--fw-ui)}.count .lab em{display:block;font-style:normal;font-size:var(--text-sm);font-weight:var(--fw-body);color:var(--color-text-tertiary)}.count .num{font-size:var(--ui-text);font-weight:var(--fw-label);font-variant-numeric:tabular-nums;white-space:nowrap}.count .num small{font-size:var(--text-sm);font-weight:var(--fw-ui);color:var(--color-text-tertiary)}.score-row{display:flex;align-items:center;gap:var(--space-5);padding:var(--ui-row-py) 0;border-bottom:1px solid var(--color-border-subtle)}.score-row:last-child{border-bottom:0}.score-row .t{flex:1;min-width:0}.score-row .t b{display:block;font-size:var(--ui-text-sm);font-weight:var(--fw-label)}.score-row .t span{font-size:var(--text-base);font-weight:var(--fw-recede);color:var(--color-text-tertiary)}.file{display:flex;align-items:center;gap:var(--space-5);min-height:var(--ui-row-h);padding:var(--space-4) var(--space-5);margin:0 calc(var(--space-5) * -1);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:background var(--dur-2) var(--ease-out)}.file:hover{background:var(--color-border-subtle)}.file .ext{flex:none;width:34px;font-size:var(--text-2xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);letter-spacing:var(--ls-wide);text-transform:uppercase}.file .nm{flex:1;min-width:0;font-size:var(--ui-text-sm);font-weight:var(--fw-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file .mt{flex:none;font-size:var(--text-sm);font-weight:var(--fw-body);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;margin:var(--space-2) 0 var(--space-4)}th,td{text-align:left;padding:var(--ui-row-py) var(--space-5) var(--ui-row-py) 0;border-bottom:1px solid var(--color-border-subtle);vertical-align:top;font-size:var(--ui-text-sm)}th{font-size:var(--text-xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);letter-spacing:var(--ls-wide);text-transform:uppercase;white-space:nowrap}tr:last-child td{border-bottom:0}td.num,th.num{font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tr{display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center;min-height:var(--ui-row-h);padding:var(--ui-row-py) var(--space-6);border-bottom:1px solid var(--color-border-subtle);font-size:var(--ui-text-sm)}.tr:last-child{border-bottom:0}.tr.th{font-family:var(--ctl-font);font-size:var(--text-xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);color:var(--color-console-ink-2);background:var(--color-console);min-height:0}.tr.now{background:var(--color-accent-bg)}.td{min-width:0}.note{padding:var(--space-5) var(--space-6);border-left:2px solid var(--color-accent);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:var(--color-accent-bg);color:var(--color-text);font-size:var(--ui-text-sm);font-weight:var(--fw-ui);margin:var(--space-5) 0;max-width:var(--measure-sm)}.note b{font-weight:var(--fw-label)}.note p:last-child{margin-bottom:0}.note.ok{border-left-color:var(--color-success);background:var(--color-success-bg)}.note.warn{border-left-color:var(--color-caution);background:var(--color-caution-bg)}.note.danger{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.note.plain{border-left-color:var(--color-border-strong);background:var(--color-sunken);color:var(--color-text-secondary)}.ok-note{color:var(--color-success);margin:var(--space-4) 0 0;max-width:var(--measure-sm)}.warn-note{color:var(--color-caution);margin:var(--space-4) 0 0;max-width:var(--measure-sm)}.bar{height:3px;border-radius:2px;background:var(--color-border);overflow:hidden;margin-top:var(--space-5)}.bar i{display:block;height:100%;background:var(--color-accent);border-radius:2px;transition:width var(--dur-5) var(--ease-out)}.bar.thick{height:6px;border-radius:3px}.bar.ok i{background:var(--color-success)}.bar.warn i{background:var(--color-caution)}.spread{display:flex;gap:2px;height:6px;margin:var(--space-6) 0 var(--space-3)}.spread-seg{border-radius:3px;background:var(--color-text-faint)}.spread-seg:nth-child(1){background:var(--hue-bi1)}.spread-seg:nth-child(2){background:var(--hue-bi2)}.spread-seg:nth-child(3){background:var(--hue-bi3)}.spread-seg:nth-child(4){background:var(--hue-bi4)}.spread-seg:nth-child(5){background:var(--hue-bi5)}.spread-key{display:flex;flex-wrap:wrap;gap:var(--space-5);font-size:var(--text-xs);font-weight:var(--fw-control);color:var(--color-text-tertiary)}.spread-key span{display:flex;align-items:center;gap:var(--space-3)}pre.code,.code{margin:var(--space-4) 0 0;padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:var(--color-inset);border:1px solid var(--color-border-subtle);overflow-x:auto;white-space:pre;line-height:var(--lh-normal);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--fw-ui)}.code.wrap-text{white-space:pre-wrap}.blk{display:inline-block;min-width:100%;font-family:var(--font-mono);font-size:12.5px}.blk .b{display:block;width:fit-content;max-width:100%;padding:var(--space-2) var(--space-5);margin:var(--space-1) 0;border-radius:var(--radius-sm);background:var(--color-accent-bg);color:var(--color-accent);font-weight:var(--fw-label)}.blk .b.v{background:var(--color-success-bg);color:var(--color-success)}.blk .b.w{background:var(--color-caution-bg);color:var(--color-caution)}.blk .nest{display:block;margin:var(--space-1) 0 var(--space-1) var(--space-4);padding-left:var(--space-6);border-left:2px solid var(--color-border)}.fold>summary,.rev>summary{cursor:pointer;list-style:none}.fold>summary::-webkit-details-marker,.rev>summary::-webkit-details-marker{display:none}.fold>summary{font-size:var(--text-base);font-weight:var(--fw-control);color:var(--color-text-tertiary);padding:var(--space-3) 0}.fold>summary:before{content:"+ ";font-weight:var(--fw-label)}.fold[open]>summary:before{content:"–"}.fold>summary:hover{color:var(--color-text)}.rev{border-bottom:1px solid var(--color-border-subtle);padding:var(--space-1) 0}.rev>summary{display:flex;align-items:center;gap:var(--space-4);min-height:var(--ui-row-h);padding:var(--ui-row-py) var(--space-1);border-radius:var(--radius-sm)}.rev>summary:hover{background:var(--color-border-subtle)}.rev-n{flex:none;min-width:30px;font-size:var(--text-base);font-weight:var(--fw-label);font-variant-numeric:tabular-nums;color:var(--color-text-tertiary)}.rev-t{flex:1;min-width:0;font-size:var(--ui-text-sm);font-weight:var(--fw-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-8);background:var(--color-scrim);-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);animation:ds-fade var(--dur-3) var(--ease-out) both}@keyframes ds-fade{0%{opacity:0}to{opacity:1}}.modal{width:min(420px,100%);padding:var(--space-8) var(--space-8) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-overlay);-webkit-backdrop-filter:var(--frost-strong);backdrop-filter:var(--frost-strong);box-shadow:var(--elev-4);animation:ds-pop var(--dur-4) var(--ease-out) both}.modal.wide{width:min(680px,100%)}@keyframes ds-pop{0%{opacity:0;transform:scale(.97) translateY(var(--space-3));filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}.modal h2{margin:0 0 var(--space-4);font-size:var(--text-2xl)}.modal p{margin:0 0 var(--space-7);font-size:var(--ui-text);font-weight:var(--fw-ui);max-width:none}.modal-row{display:flex;gap:var(--space-4);justify-content:flex-end}.empty{padding:var(--space-10) 0;text-align:center;color:var(--color-text-tertiary);font-weight:var(--fw-recede)}.empty b{display:block;font-weight:var(--fw-label);color:var(--color-text);margin-bottom:var(--space-2)}.skel{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-border-subtle) 25%,var(--color-border) 37%,var(--color-border-subtle) 63%);background-size:400% 100%;animation:ds-shimmer 1.4s var(--ease-in-out) infinite}.skel.line{height:1em;margin:var(--space-3) 0}.skel.line.short{width:40%}.skel.block{height:96px;border-radius:var(--radius-lg)}@keyframes ds-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.toast-stack{position:fixed;right:var(--space-7);bottom:var(--space-7);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-4);max-width:min(360px,calc(100vw - var(--space-10)))}.toast{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-overlay);-webkit-backdrop-filter:var(--frost-strong);backdrop-filter:var(--frost-strong);box-shadow:var(--elev-4);font-size:var(--ui-text-sm);animation:ds-pop var(--dur-4) var(--ease-out) both}.toast.ok{border-left:2px solid var(--color-success)}.toast.warn{border-left:2px solid var(--color-caution)}.toast.danger{border-left:2px solid var(--color-danger)}.deck{perspective:1600px;margin-top:var(--space-6)}.cardflip{position:relative;min-height:190px;transform-style:preserve-3d;transition:transform var(--dur-5) var(--ease-out);cursor:pointer}.cardflip.flipped{transform:rotateY(180deg)}.face{position:absolute;top:0;left:0;right:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-2xl);background:var(--color-raised);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);box-shadow:var(--elev-2)}.face.back{transform:rotateY(180deg)}.face .tag{font-size:var(--text-xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);letter-spacing:var(--ls-wide);text-transform:uppercase}.face .hint{margin-top:auto;font-size:var(--text-sm);color:var(--color-text-tertiary)}.cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-8);align-items:start}.cols>div{min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width: 860px){.cols{grid-template-columns:1fr}}.learn{display:flex;flex-direction:column;gap:var(--space-4)}.learn .tag{margin-top:var(--space-3)}.learn>:first-child{margin-top:0}.say{margin:0;max-width:74ch;font-size:var(--text-md);font-weight:var(--fw-body);line-height:var(--lh-loose);color:var(--color-text-secondary)}pre.code.trace{margin:0;padding:var(--space-1) 0 var(--space-1) var(--space-6);border:0;border-left:2px solid var(--color-border);border-radius:0;background:transparent;font-size:var(--text-sm);line-height:var(--lh-loose);color:var(--color-text-secondary)}.tag.warn-tag,#cardNoteBox .say{color:var(--color-caution)}.deck-bar{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap}.deck-bar-stick{position:sticky;bottom:0;z-index:1;margin:var(--space-5) calc(-1 * var(--ui-card-p)) calc(-1 * var(--ui-card-p));padding:var(--space-5) var(--ui-card-p);background:var(--color-raised);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);border-top:1px solid var(--color-border-subtle);border-radius:0 0 var(--radius-xl) var(--radius-xl)}@media (max-width: 720px){.shell{flex-direction:column}.rail{position:sticky;top:0;width:auto;flex:none;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-right:0;border-bottom:1px solid var(--color-border)}.brand{padding:0 var(--space-4) 0 0}.nav-label,.nav-item .pct{display:none}.nav-item{width:auto;padding:var(--space-3) var(--space-4)}.rail-foot{margin:0 0 0 auto;border-top:0;padding-top:0}.who{padding:0}.wrap{padding:0 var(--space-6) var(--space-11)}.row-k{min-width:0;flex:1 0 100%}.toast-stack{left:var(--space-5);right:var(--space-5);max-width:none}}}@layer app{.exam-card{background:var(--color-raised);-webkit-backdrop-filter:var(--frost);backdrop-filter:var(--frost);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--elev-2);padding:var(--ui-card-p)}.exam-card+.exam-card{margin-top:var(--ui-card-gap)}.grid>.exam-card+.exam-card,.stack>.exam-card+.exam-card{margin-top:0}.exam-head{display:flex;align-items:flex-start;gap:var(--space-5)}.exam-head b{font-size:var(--text-xl);font-weight:var(--fw-head);letter-spacing:var(--ls-tight)}.exam-head em{display:block;font-style:normal;font-size:var(--text-base);font-weight:var(--fw-body);color:var(--color-text-tertiary)}.exam-head>:last-child{margin-left:auto;flex:none}.exam-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6)}.exam-actions .btn{text-decoration:none}.exam-bar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 calc(var(--space-10) * -1);padding:var(--space-6) var(--space-10);background:var(--color-console);color:var(--color-console-ink);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);--color-text-secondary: var(--color-console-ink);--color-text-tertiary: var(--color-console-ink-2);--color-text-faint: var(--color-console-ink-faint);border-bottom:1px solid var(--color-border)}.qwrap{padding-top:var(--space-8)}.qhead{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5)}.qhead b{font-size:var(--text-3xl);font-weight:var(--fw-display);letter-spacing:var(--ls-tighter)}.qhead .dim{font-size:var(--text-base)}.qimg{display:block;width:100%;max-width:var(--page-w);height:auto;margin:0 0 var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;padding:var(--space-4)}.opts{display:flex;gap:var(--space-4);margin:var(--space-7) 0 var(--space-4)}.opt{--opt-face: var(--color-key);position:relative;isolation:isolate;flex:1;max-width:120px;min-height:var(--ui-tap);padding:calc(var(--space-5) + var(--pad-cutout)) 0;border:var(--ctl-border-w) solid var(--color-border-strong);border-radius:var(--radius-field);background:var(--color-cutout);color:var(--color-text-secondary);font:inherit;cursor:pointer;transition:color var(--dur-2) var(--ease-out)}.opt:before{content:"";position:absolute;inset:var(--pad-cutout);z-index:-1;border-radius:var(--radius-cutout-field);background:var(--opt-face);box-shadow:var(--ctl-shadow);pointer-events:none;transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.opt:is(:hover,:focus-visible){color:var(--color-text)}.opt:is(:hover,:focus-visible):before{background:var(--opt-face-hover, var(--color-key-hover));box-shadow:var(--ctl-shadow-hover)}.opt:active:before{box-shadow:var(--ctl-shadow-active)}.opt .opt-k{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--fw-control);letter-spacing:var(--ls-none)}.opt.on{--opt-face: var(--color-accent-solid);--opt-face-hover: color-mix(in oklab, var(--color-accent-solid) 92%, var(--color-highlight));--ctl-rim: color-mix(in oklab, var(--color-accent-solid) 45%, var(--color-highlight));color:var(--color-accent-on-solid)}.opt.on:before{box-shadow:var(--ctl-shadow-active)}.opt.on .opt-k{font-weight:var(--fw-display)}.exam-nav{display:flex;gap:var(--space-4);margin-top:var(--space-6)}.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:var(--space-2);margin-top:var(--space-9);padding-top:var(--space-7);border-top:1px solid var(--color-border-subtle)}.cell{padding:var(--space-3) 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-ui);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),font-weight var(--dur-2) var(--ease-out)}.cell:is(:hover,:focus-visible){background:var(--color-key-hover);color:var(--color-text)}.cell.part{border-color:var(--color-caution);color:var(--color-caution)}.cell.full{background:var(--color-accent-bg);border-color:transparent;color:var(--color-accent);font-weight:var(--fw-label)}.cell.flag{box-shadow:inset 0 -3px 0 var(--color-caution)}.cell.here{outline:2px solid var(--color-text);outline-offset:1px;color:var(--color-text);font-weight:var(--fw-display)}.rev .qimg{margin:var(--space-4) 0 var(--space-6)}@media (max-width: 720px){.exam-bar{margin:0 calc(var(--space-6) * -1);padding:var(--space-5) var(--space-6)}.opts{flex-wrap:wrap}.opt{max-width:none;min-width:64px}.rev-t{display:none}}.miss-strip{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-5) 0}.miss-strip .pill{text-decoration:none}.miss-strip .pill:is(:hover,:focus-visible){text-decoration:underline}.board-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);text-decoration:none;color:inherit}.board-row:hover{background:var(--color-border-subtle)}.board-row .tno{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-label);color:var(--color-text-tertiary);min-width:30px}.board-row .tnm{flex:1;font-size:var(--ui-text-sm, var(--text-base));font-weight:var(--fw-ui)}.board-row .rev,.learn-actions .fine{color:var(--color-text-faint);font-size:var(--text-sm);white-space:nowrap}.learn-status{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-6) 0}.learn-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-5);margin:var(--space-6) 0 var(--space-4)}.learn-jump{margin-left:auto;display:flex;gap:var(--space-5);font-size:var(--text-sm)}.learn-jump a{color:var(--color-text-tertiary);text-decoration:none}.learn-jump a:is(:hover,:focus-visible){color:var(--color-text);text-decoration:underline}.lo-h{margin:0 0 var(--space-4);font-weight:var(--fw-label)}.lo-h .mono{color:var(--color-text-tertiary);margin-right:var(--space-3)}.ek{display:flex;gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--color-border-subtle)}.ek>.mono{flex:none;font-size:var(--text-sm);color:var(--color-text-tertiary);padding-top:2px}.ek p{margin:0;font-size:var(--text-base);color:var(--color-text-secondary)}.ek .ek-x{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-faint)}.md{font-size:var(--text-md);line-height:1.65;color:var(--color-text-secondary)}.md>:first-child{margin-top:0}.md :is(h1,h2,h3,h4){margin:var(--space-8) 0 var(--space-4);color:var(--color-text);font-weight:var(--fw-head);letter-spacing:var(--ls-tight)}.md h1{font-size:var(--text-3xl)}.md h2{font-size:var(--text-2xl)}.md h3{font-size:var(--text-xl)}.md h4{font-size:var(--text-lg)}.md p{margin:var(--space-4) 0}.md :is(ul,ol){margin:var(--space-4) 0;padding-left:var(--space-8)}.md li{margin:var(--space-2) 0}.md li::marker{color:var(--color-text-faint)}.md a{color:var(--color-accent)}.md strong{font-weight:var(--fw-label);color:var(--color-text)}.md code{font-family:var(--font-mono);font-size:.92em;background:var(--color-border-subtle);border-radius:var(--radius-xs);padding:1px var(--space-2)}.md pre{margin:var(--space-5) 0;padding:var(--space-5) var(--space-6);background:var(--color-console);color:var(--color-console-ink);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.md pre code{background:transparent;padding:0;font-size:var(--text-sm)}.md table{width:100%;margin:var(--space-5) 0;border-collapse:collapse;font-size:var(--text-base)}.md :is(th,td){padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-subtle)}.md th{font-weight:var(--fw-label);color:var(--color-text)}.md blockquote{margin:var(--space-5) 0;padding:var(--space-2) var(--space-6);border-left:3px solid var(--color-border-strong);color:var(--color-text-tertiary)}.md hr{border:0;border-top:1px solid var(--color-border-subtle);margin:var(--space-7) 0}.md img{max-width:100%;border-radius:var(--radius-sm)}.md details{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.md details>summary{cursor:pointer;font-weight:var(--fw-label);color:var(--color-text)}.md details[open]>summary{margin-bottom:var(--space-3)}.deck{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--color-canvas);color:var(--color-text)}.deck-stage{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding:var(--space-11) clamp(var(--space-8),8vw,var(--space-12))}.deck-banner{margin:0 0 var(--space-6);font-size:var(--text-base);color:var(--color-caution)}.deck-title{margin:0 0 var(--space-7);font-size:clamp(24px,3.4vw,40px);font-weight:var(--fw-display);letter-spacing:var(--ls-tighter);line-height:1.15}.deck-body{font-size:clamp(16px,1.9vw,24px);line-height:1.55}.deck-body :is(li,p){margin:var(--space-3) 0}.deck-body table{font-size:.9em}.deck-body pre{font-size:.85em}.deck-body pre code{font-size:inherit}.deck-fig{display:block;max-height:44vh;width:auto;max-width:100%;margin:var(--space-5) 0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;padding:var(--space-4)}.deck-notes{flex:none;max-height:32vh;overflow-y:auto;padding:var(--space-6) var(--space-9);background:var(--color-console);color:var(--color-console-ink);border-top:1px solid var(--color-border);font-size:var(--text-md)}.deck-notes>b{display:block;margin-bottom:var(--space-3);font-size:var(--text-xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-console-ink-2)}.deck-notes .md{font-size:inherit;color:inherit}.deck-bar{flex:none;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-9);background:var(--color-console);color:var(--color-console-ink);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);border-top:1px solid var(--color-border)}.deck-count{font-family:var(--font-mono);font-size:var(--text-md);font-variant-numeric:tabular-nums}.deck-keys{margin-left:auto;font-size:var(--text-sm);color:var(--color-console-ink-2)}@media (max-width: 720px){.deck-keys{display:none}.deck-stage{padding:var(--space-8) var(--space-6)}}.drill-face{text-align:center;padding:var(--space-9) var(--space-6)}.drill-ask{margin:0 0 var(--space-4);font-size:var(--text-base);color:var(--color-text-tertiary)}.drill-q{margin:0 0 var(--space-7);font-family:var(--font-mono);font-size:var(--text-6xl);font-weight:var(--fw-display);letter-spacing:var(--ls-tight);overflow-wrap:anywhere}.drill-form{display:flex;justify-content:center;gap:var(--space-4)}.drill-form .field{width:220px;text-align:center;font-family:var(--font-mono);font-size:var(--text-2xl)}.drill-face.hit{animation:drill-hit var(--dur-3, .3s) var(--ease-out, ease-out)}@keyframes drill-hit{0%{background:var(--color-success-bg, var(--color-accent-bg))}to{background:transparent}}.drill-wrong{margin:var(--space-6) auto 0;max-width:480px;font-size:var(--text-base)}.drill-stats{display:flex;flex-wrap:wrap;gap:var(--space-6);justify-content:center;margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle);font-size:var(--text-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.drill-stats b{color:var(--color-text);font-weight:var(--fw-label)}}@font-face{font-family:Geist;src:local("Geist"),url(/fonts/Geist-VariableFont_wght.ttf) format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:local("Geist Italic"),url(/fonts/Geist-Italic-VariableFont_wght.ttf) format("truetype-variations");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Geist Mono;src:local("Geist Mono"),url(/fonts/GeistMono-VariableFont_wght.ttf) format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}@layer app{.wrap{padding-top:var(--space-10)}a{text-decoration:none}.back{color:var(--color-accent);font-size:var(--ui-text-sm)}.signin{display:grid;place-items:center;min-height:100vh;padding:var(--space-8)}.signin-card{width:100%;max-width:380px;padding:var(--space-9)}.signin-card h1{font-size:var(--text-4xl)}.signin-card .lede{font-size:var(--ui-text);margin-bottom:var(--space-8)}.signin-form{display:grid;gap:var(--space-4)}.signin-alt{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-5)}.or{text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary);margin:var(--space-6) 0;text-transform:uppercase;letter-spacing:var(--ls-wider)}.weeklist{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-8)}.week{display:flex;gap:var(--space-6);align-items:center;min-height:var(--ui-tap);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-raised);transition:transform var(--dur-1) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.week:is(:hover,:focus-visible){transform:translate(2px);border-color:var(--color-border-strong)}.week.past{opacity:.6}.week.now{border-color:var(--color-accent);background:var(--color-accent-bg);opacity:1}.week-no{flex:0 0 54px;text-align:center}.week-no b{display:block;font-size:var(--text-3xl);font-weight:var(--fw-head);letter-spacing:var(--ls-tighter);font-variant-numeric:tabular-nums}.week-no span{display:block;font-size:var(--text-xs);color:var(--color-text-tertiary)}.week-body{flex:1;min-width:0}.week-body h3{margin:0}.week-body p{margin:var(--space-1) 0 0;font-size:var(--text-base);color:var(--color-text-secondary)}.week-side{display:flex;gap:var(--space-3);align-items:center;flex:0 0 auto}.note-card{margin-bottom:var(--space-4)}.note-card p{margin:var(--space-3) 0 0;color:var(--color-text-secondary);white-space:pre-wrap}.work{margin-bottom:var(--space-5)}.work.done{border-color:var(--color-success)}.work-head{display:flex;gap:var(--space-5);align-items:baseline}.work-head h3{flex:1;margin:0}.work-tags{display:flex;gap:var(--space-3)}.work-actions{display:flex;gap:var(--space-4);margin-top:var(--space-6);flex-wrap:wrap}.ide{display:flex;flex-direction:column;gap:var(--space-5)}.ide-bar{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap;padding:var(--space-5);border-radius:var(--radius-card);background:var(--color-console);color:var(--color-console-ink);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);--color-text-secondary: var(--color-console-ink);--color-text-tertiary: var(--color-console-ink-2);--color-text-faint: var(--color-console-ink-faint);font-size:var(--ui-text-sm)}.ide-brief{margin:0;font-size:var(--ui-text-sm)}.editor{border:1px solid var(--color-border-field);border-radius:var(--radius-lg);overflow:hidden}.editor:focus-within{border-color:var(--color-focus);box-shadow:var(--focus-ring)}.editor-note{padding:var(--space-4) var(--space-6);font-size:var(--text-sm);color:var(--color-caution);background:var(--color-caution-bg);border-bottom:1px solid var(--color-border)}.editor-area{display:block;width:100%;min-height:55vh;resize:vertical;border:0;padding:var(--space-6);font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-loose);background:var(--color-overlay);color:var(--color-text);-moz-tab-size:2;tab-size:2}.editor-area:focus{outline:0}.grade .g-name{flex:1 1 150px;min-width:0}.grade .g-name b{display:block;font-weight:var(--fw-control)}.grade .g-name em{display:block;font-style:normal;font-size:var(--text-sm);color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grade .g-state{flex:0 0 118px;display:flex;gap:var(--space-3);align-items:center}.grade .g-pts{flex:0 0 92px;display:flex;gap:var(--space-2);align-items:center}.grade .g-pts .field{width:62px}.grade .g-fb{flex:1 1 130px;min-width:0}.grade .g-work{flex:1 0 100%;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4)}.grade .g-work p{margin:0 0 var(--space-3);font-size:var(--ui-text-sm)}.w-no{flex:0 0 96px}.w-unit{flex:1}.w-count{flex:0 0 150px;font-size:var(--text-base)}.w-pub{flex:0 0 130px}.w-pub .switch{margin:0;font-size:var(--text-base)}@media (max-width: 820px){.grade .g-name,.grade .g-state,.grade .g-pts{flex:1 0 auto}}.ide-run{display:flex;flex-direction:column;gap:var(--space-6)}.ide-device{width:calc(var(--ap-screen-w) + var(--space-4));padding:var(--space-2);border:1px solid var(--color-cutout);border-radius:calc(var(--radius-2xl) + var(--space-2));background:var(--color-console);color:var(--color-console-ink);box-shadow:var(--elev-3);--ctl-shadow: var(--ctl-shadow-raised);--ctl-shadow-hover: var(--ctl-shadow-raised-hover);--ctl-shadow-active: var(--ctl-shadow-raised-active);--color-key: var(--color-key-on-console);--color-text-secondary: var(--color-console-ink);--color-text-tertiary: var(--color-console-ink-2);--color-text-faint: var(--color-console-ink-faint)}.ide-device-bar{display:flex;align-items:center;gap:var(--space-3);height:28px;padding:0 var(--space-4);font-family:var(--ctl-font);font-size:var(--text-2xs);font-weight:var(--ctl-weight);letter-spacing:var(--ctl-tracking);text-transform:var(--ctl-transform);color:var(--color-console-ink)}.ide-dot{width:9px;height:9px;border-radius:var(--radius-full);background:var(--color-lamp-off);box-shadow:inset 1px 1px 2px color-mix(in oklab,var(--color-shadow) 40%,transparent);flex:0 0 auto;transition:background var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out)}.ide-dot.st-running,.ide-dot.st-starting{background:var(--color-success);box-shadow:0 0 6px 0 var(--color-success);animation:ide-pulse 1.6s var(--ease-in-out) infinite}.ide-dot.st-waiting{background:var(--color-lamp-on);box-shadow:0 0 6px 0 var(--color-lamp-on)}.ide-dot.st-error{background:var(--color-danger);box-shadow:0 0 6px 0 var(--color-danger)}@keyframes ide-pulse{0%,to{opacity:1}50%{opacity:.35}}.ide-device-screen{position:relative;width:var(--ap-screen-w);height:var(--ap-screen-h);margin:0 auto;border-radius:var(--radius-2xl);overflow:hidden;background:var(--color-raised-solid)}.ide-device-screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--color-cutout);pointer-events:none}.ide-frame{display:block;width:100%;height:100%;border:0}.ide-device-idle{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-8);background:var(--color-raised-solid);text-align:center}.ide-device-foot{display:flex;gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-4) var(--space-2)}.ide-console{--color-text: var(--grey-25);--color-text-secondary: oklch(78% .006 233);--color-text-tertiary: oklch(68% .006 233);--color-text-faint: var(--grey-400);--color-accent: var(--blue-80);--color-caution: var(--amber-400);--color-danger: var(--red-400);--color-border-subtle: oklch(98.9% .006 233 / .12);border:1px solid var(--color-cutout);border-radius:var(--radius-field);background:var(--grey-850);color:var(--color-text);box-shadow:var(--ctl-inset);overflow:hidden}.ide-console-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.ide-console-body{max-height:240px;overflow-y:auto;padding:var(--space-3) 0;font-family:var(--font-mono);font-size:var(--text-base)}.ide-console-body .empty{padding:var(--space-5) var(--space-6);font-family:var(--font-sans)}.ide-console-run{margin:var(--space-4) var(--space-6) var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle);font-family:var(--font-sans);font-size:var(--text-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-faint)}.ide-console-row{display:flex;gap:var(--space-4);padding:var(--space-2) var(--space-6);border-left:3px solid transparent;overflow-wrap:anywhere}.ide-console-row.lv-warn{border-left-color:var(--color-caution);background:var(--color-caution-bg)}.ide-console-row.lv-error{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.ide-console-at{flex:0 0 28px;text-align:right;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.ide-console-val{flex:1;min-width:0}.cv-str{color:var(--color-text)}.cv-num{color:var(--color-accent)}.cv-key{color:var(--color-text-secondary)}.cv-dim{color:var(--color-text-faint)}.cv-err{color:var(--color-danger)}.dev-page{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:start}.dev-page textarea{width:100%;min-height:320px;font-family:var(--font-mono);font-size:var(--text-base);-moz-tab-size:2;tab-size:2}@media (max-width: 900px){.dev-page{grid-template-columns:1fr}}.page-full{padding:var(--space-10) var(--space-8) var(--space-12)}@media (max-width: 820px){.page-full{padding:0 var(--space-6) var(--space-11)}}.save-state{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--ui-text-sm);color:var(--color-text-tertiary)}.save-dot{transition:background var(--dur-2) var(--ease-out)}.save-dot.on-saved{background:var(--color-success)}.save-dot.on-saving{background:var(--color-accent)}.save-dot.on-offline{background:var(--color-caution)}.save-dot.on-error{background:var(--color-danger)}.lab-shelf{margin-bottom:var(--space-5)}.lab-name{width:calc(var(--rail-w) - var(--space-9))}.ct-cols{display:grid;grid-template-columns:minmax(0,1fr) var(--rail-w);gap:var(--space-8);align-items:start}@media (max-width: 1100px){.ct-cols{grid-template-columns:minmax(0,1fr)}}.snaps{max-height:40vh;overflow-y:auto}.snap{display:flex;gap:var(--space-4);align-items:baseline;padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border-subtle);font-size:var(--ui-text-sm)}.snap:last-child{border-bottom:0}.snap-when{flex:0 0 auto;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.snap-why{flex:1;min-width:0}.snap-wait{font-style:normal;color:var(--color-caution)}.snap-lines{flex:0 0 auto;color:var(--color-text-faint);font-variant-numeric:tabular-nums}.ct-spec{display:flex;flex-direction:column;gap:var(--space-6)}.ct-spec h3{margin:0 0 var(--space-2);font-size:var(--ui-text)}.ct-spec p{margin:0;font-size:var(--ui-text-sm);color:var(--color-text-secondary)}.trail{margin-top:var(--space-5)}.trail>.group-h{margin-bottom:var(--space-3)}.trail-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);padding:var(--space-3) 0;border-top:1px solid var(--color-border-subtle);font-size:var(--text-base)}.trail-when{flex:0 0 130px;color:var(--color-text-secondary)}.trail-why{flex:1 1 150px;color:var(--color-text-tertiary)}.trail-size{flex:0 0 72px;text-align:right;color:var(--color-text-tertiary)}.trail-delta{flex:0 0 84px;text-align:right;color:var(--color-text-faint)}.trail-delta.up,.trail-delta.down{color:var(--color-text-secondary)}.trail-code{flex:1 0 100%;max-height:320px;overflow:auto;margin-top:var(--space-3)}}
