@keyframes exam-spin{to{transform:rotate(360deg)}}.exam-spin{animation:exam-spin .9s linear infinite}@media (prefers-reduced-motion: reduce){.exam-spin{animation-duration:0s}}@media print{@page{size:letter;margin:16mm}:root,[data-density],[data-density]>div,[data-print-page],[data-print-doc]{--u: 1.2px !important;--u-bar: 1.2px !important}html,body{background:var(--white);color:var(--ink)}body header,[data-print-hide]{display:none!important}[data-print-page] button,[data-print-page] [role=button],[data-print-page] nav{display:none!important}body main{padding:0!important;max-width:none!important}[data-print-page]{display:block!important;padding:0!important;max-width:none!important}[data-print-doc]{min-width:0!important;max-width:none!important;font-family:var(--font-sans);color:var(--ink);background:var(--white)}html[data-printing] [data-print-doc]:not([data-printing]){display:none!important}[data-print-doc] h1,[data-print-doc] h2,[data-print-doc] h3,[data-print-doc] h4{break-after:avoid}[data-print-doc] figure,[data-print-doc] [data-print-keep]{break-inside:avoid}[data-print-doc] section{break-before:auto}[data-print-doc] a,[data-print-doc] a:visited{color:var(--ink);text-decoration:none}[data-print-doc] a[href]:after{content:""}}@layer app{.asst{display:flex;gap:var(--space-6);height:calc(100dvh - var(--space-10) - var(--space-12));min-height:420px}@media (max-width: 820px){.asst{height:calc(100dvh - var(--space-11));gap:var(--space-5)}}.asst-rail{flex:0 0 208px;display:flex;flex-direction:column;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-raised);overflow:hidden}.asst-rail-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.asst-rail-head>span{flex:1;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-tertiary)}.asst-rail-list{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3)}.asst-rail-empty{padding:var(--space-4) var(--space-3)}.asst-session{display:block;width:100%;text-align:left;padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font:inherit;cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.asst-session:is(:hover,:focus-visible){background:var(--color-border-subtle);color:var(--color-text)}.asst-session.on{background:var(--color-accent-bg);color:var(--color-text)}.asst-session[disabled]{cursor:default;opacity:.5}.asst-session-title{display:block;font-size:var(--text-sm);line-height:var(--lh-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asst-session-when{display:block;margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-text-faint)}.asst-chat{min-height:0;display:flex;flex-direction:column;gap:var(--space-4)}.asst-main{flex:1;min-width:0}.asst-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--space-6) var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-sunken);scroll-behavior:auto}.asst-empty{padding:var(--space-9) 0;max-width:var(--measure-sm)}.asst-quiet{color:var(--color-text-tertiary);font-size:var(--text-sm)}.asst-key{font-family:var(--font-mono);font-size:var(--text-xs);padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-border-subtle);color:var(--color-text-secondary)}.asst-turn{padding:var(--space-2) 0 var(--space-7)}.asst-turn+.asst-turn{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-6)}.asst-prompt{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-snug);color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere}.asst-caret-prompt{color:var(--color-accent);flex:0 0 auto}.asst-resumed{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-5) 0;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-faint)}.asst-resumed:before,.asst-resumed:after{content:"";flex:1;height:1px;background:var(--color-border)}.asst-resumed>span{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asst-think{margin:var(--space-3) 0}.asst-think-toggle{border:0;background:none;padding:0;font-family:var(--font-mono);font-size:var(--text-xs);font-style:italic;color:var(--color-text-faint);cursor:pointer}.asst-think-toggle:is(:hover,:focus-visible){color:var(--color-text-tertiary)}.asst-caret{font-style:normal}.asst-think-body{margin:var(--space-3) 0 var(--space-4) var(--space-5);padding-left:var(--space-5);border-left:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-xs);font-style:italic;line-height:var(--lh-normal);color:var(--color-text-faint);white-space:pre-wrap;overflow-wrap:anywhere}.asst-tool{margin:var(--space-2) 0}.asst-tool-head{display:flex;align-items:baseline;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-2) var(--space-3);margin-left:calc(var(--space-3) * -1);border:0;border-radius:var(--radius-xs);background:none;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.asst-tool-head:is(:hover,:focus-visible){background:var(--color-border-subtle)}.asst-bullet{flex:0 0 auto;color:var(--color-text-faint);font-size:var(--text-2xs)}.asst-tool.failed .asst-bullet{color:var(--color-danger)}.asst-tool-name{flex:0 0 auto;color:var(--color-text)}.asst-tool-sum{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-faint)}.asst-tool-run{flex:0 0 auto;font-size:var(--text-2xs);color:var(--color-accent);animation:asst-blink 1.4s var(--ease-in-out) infinite}@keyframes asst-blink{0%,to{opacity:1}50%{opacity:.3}}.asst-tool.running .asst-tool-head{border-left:2px solid var(--color-accent);margin-left:calc(var(--space-4) * -1)}.asst-tool-body{margin:var(--space-3) 0 var(--space-5) var(--space-6);display:grid;gap:var(--space-3)}.asst-pre{margin:0;padding:var(--space-4) var(--space-5);max-height:340px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-inset);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--lh-normal);color:var(--color-text-secondary);white-space:pre;-moz-tab-size:2;tab-size:2}.asst-pre.out{background:var(--color-console);color:var(--color-console-ink)}.asst-pre.failed{border-color:var(--color-danger);color:var(--color-danger)}.asst-perm{margin:var(--space-5) 0;padding:var(--space-5) var(--space-6);border:1px solid var(--color-caution);border-radius:var(--radius-md);background:var(--color-caution-bg)}.asst-perm.done{border-color:var(--color-border);background:transparent;opacity:.65}.asst-perm-head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm)}.asst-perm-head>span{color:var(--color-text-secondary);font-family:var(--font-sans)}.asst-perm-acts{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.asst-perm-done{margin-top:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary)}.asst-receipt{margin-top:var(--space-5);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);color:var(--color-text-faint)}.asst-error{margin:var(--space-4) 0;padding:var(--space-4) var(--space-5);border-left:2px solid var(--color-danger);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-danger-bg);color:var(--color-danger);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--lh-normal);white-space:pre-wrap;overflow-wrap:anywhere}.asst-working{animation:asst-blink 1.4s var(--ease-in-out) infinite}.asst-md{font-size:var(--text-md);line-height:var(--lh-normal);color:var(--color-text);max-width:var(--measure);overflow-wrap:anywhere}.asst-md>:first-child{margin-top:0}.asst-md>:last-child{margin-bottom:0}.asst-md p,.asst-md ul,.asst-md ol,.asst-md blockquote{margin:var(--space-4) 0}.asst-md h1,.asst-md h2,.asst-md h3,.asst-md h4{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-lg);font-weight:var(--fw-head);letter-spacing:var(--ls-tight)}.asst-md ul,.asst-md ol{padding-left:var(--space-7)}.asst-md li{margin:var(--space-2) 0}.asst-md a{color:var(--color-accent)}.asst-md code{font-family:var(--font-mono);font-size:.92em;padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--color-border-subtle)}.asst-md pre{margin:var(--space-4) 0;padding:var(--space-4) var(--space-5);overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-inset);font-size:var(--text-xs);line-height:var(--lh-normal);-moz-tab-size:2;tab-size:2}.asst-md pre code{padding:0;background:none;font-size:inherit}.asst-md blockquote{padding-left:var(--space-5);border-left:2px solid var(--color-border-strong);color:var(--color-text-secondary)}.asst-md table{border-collapse:collapse;margin:var(--space-4) 0;font-size:var(--text-sm)}.asst-md th,.asst-md td{padding:var(--space-2) var(--space-5) var(--space-2) 0;text-align:left;border-bottom:1px solid var(--color-border)}.asst-md hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.asst-composer{position:relative;flex:0 0 auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-raised);transition:border-color var(--dur-2) var(--ease-out)}.asst-composer:focus-within{border-color:var(--color-border-strong)}.asst-input{display:block;width:100%;resize:none;border:0;background:none;padding:var(--space-5) var(--space-6) var(--space-2);font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--color-text);outline:none;overflow-y:auto}.asst-input::placeholder{color:var(--color-text-faint)}.asst-input:focus-visible{outline:none}.asst-composer-foot{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4) var(--space-4) var(--space-6)}.asst-mode{display:flex;align-items:center;gap:var(--space-3)}.asst-mode>span{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-faint)}.asst-mode select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-field-bg);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);cursor:pointer}.asst-menu{position:absolute;bottom:calc(100% + var(--space-3));left:0;min-width:260px;max-height:280px;overflow-y:auto;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-raised-solid);box-shadow:0 8px 24px -8px var(--color-scrim);z-index:var(--z-raised)}.asst-menu-item{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-4);border:0;border-radius:var(--radius-xs);background:none;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.asst-menu-item.on,.asst-menu-item:hover{background:var(--color-accent-bg);color:var(--color-text)}.asst-menu-hint{padding:var(--space-3) var(--space-4) var(--space-1);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-text-faint)}@media (max-width: 900px){.asst-rail{flex:0 0 150px}.asst-scroll{padding:var(--space-5)}}.asst-drawer{position:fixed;inset:0 0 0 auto;z-index:var(--z-modal);display:flex;flex-direction:column;gap:var(--space-4);width:min(520px,100vw);padding:var(--space-5) var(--space-6) var(--space-6);border-left:1px solid var(--color-border);background:var(--color-canvas);box-shadow:-18px 0 44px -24px var(--color-scrim);transform:translate(100%);visibility:hidden;transition:transform var(--dur-4) var(--ease-out),visibility 0s linear var(--dur-4)}.asst-drawer.open{transform:none;visibility:visible;transition:transform var(--dur-4) var(--ease-out)}@media (prefers-reduced-motion: reduce){.asst-drawer,.asst-drawer.open{transition:none}}.asst-drawer-head{display:flex;align-items:baseline;gap:var(--space-4);flex:0 0 auto;padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.asst-drawer-title{flex:1;min-width:0;margin:0;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-body);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-tertiary)}.asst-drawer-tag{color:var(--color-text)}.asst-drawer-link{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-accent)}.asst-drawer-shut{flex:0 0 auto;width:var(--space-8);height:var(--space-8);display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text-tertiary);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.asst-drawer-shut:is(:hover,:focus-visible){background:var(--color-border-subtle);color:var(--color-text)}.asst-drawer-chat{flex:1;min-width:0}.asst-drawer-chat .asst-scroll{padding:var(--space-5) 0;border:0;border-radius:0;background:none}.asst-drawer-chat .asst-empty{padding:var(--space-6) 0}.asst-drawer-chat .asst-md{max-width:none}.asst-drawer-chat .asst-menu{min-width:0;right:0}}@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}}}.cd-page{--cd-metal: color-mix(in oklab, var(--color-caution) 13%, var(--color-inset));--cd-metal-2: color-mix(in oklab, var(--color-caution) 17%, var(--color-inset));--cd-metal-hi: color-mix(in oklab, var(--color-caution) 7%, var(--color-raised-solid));--cd-metal-lo: color-mix(in oklab, var(--color-caution) 22%, var(--color-sunken));--cd-engrave: var(--color-text);--cd-lip: color-mix(in oklab, var(--color-highlight) 70%, transparent);--cd-cut: color-mix(in oklab, var(--color-text) 30%, transparent);--cd-cut-soft: color-mix(in oklab, var(--color-text) 14%, transparent);padding:var(--ui-page-py) var(--space-6);max-width:1240px;margin-inline:auto;color:var(--color-text)}.cd-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.95fr);gap:var(--space-9);align-items:start}@media (max-width: 940px){.cd-cols{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}}.cd-segment{margin:0 0 var(--space-6);font-size:var(--text-xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.cd-crib{margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary);border-left:2px solid var(--color-border-strong);padding-left:var(--space-3)}.cd-cipher{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-8)}.cd-word{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.cd-word-letters{display:inline-flex;font-family:var(--font-mono);font-size:var(--text-2xl);letter-spacing:var(--ls-wide);line-height:var(--lh-tight)}.cd-ct{padding:1px 1px 0;border-radius:var(--radius-xs);color:var(--color-text);cursor:default;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.cd-ct:hover,.cd-ct.is-lit,.cd-ct:focus-visible{background:var(--color-accent-bg-strong);color:var(--color-accent);outline:none}.cd-word-no{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums}.cd-instrument{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.cd-svg{display:block;width:100%;max-width:520px;aspect-ratio:1;touch-action:none;overflow:visible;filter:drop-shadow(0 6px 18px color-mix(in oklab,var(--color-shadow) 20%,transparent))}.cd-svg:focus,.cd-svg:focus-visible{outline:none}.cd-focus-glow{fill:none;stroke:var(--color-accent-bg-strong);stroke-width:7}.cd-focus-rim{fill:none;stroke:var(--color-focus);stroke-width:var(--focus-ring-width)}.cd-focus{animation:cd-focus-in var(--dur-2) var(--ease-out) both}@keyframes cd-focus-in{0%{opacity:0}to{opacity:1}}.cd-plate{stroke:none}.cd-rim{fill:none;stroke:var(--cd-cut);stroke-width:1.25}.cd-groove{fill:none;stroke:var(--cd-cut-soft);stroke-width:1}.cd-div{stroke:var(--cd-cut-soft);stroke-width:1}.cd-lit{fill:var(--color-accent-bg-strong);stroke:var(--color-accent);stroke-width:1.25;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out)}.cd-lit.is-on{opacity:1}.cd-letter,.cd-letter-lip{text-anchor:middle;dominant-baseline:central;font-family:var(--font-mono);font-weight:var(--fw-head);letter-spacing:var(--ls-none);-webkit-user-select:none;user-select:none}.cd-letter{fill:var(--cd-engrave)}.cd-letter-lip{fill:var(--cd-lip);transform:translateY(1.1px)}.cd-inner{cursor:grab}.cd-svg.is-dragging .cd-inner{cursor:grabbing}.cd-hub{fill:var(--cd-metal-lo);stroke:var(--cd-cut);stroke-width:1}.cd-hole{fill:var(--color-cutout);opacity:.55}.cd-boss{fill:var(--cd-metal-2);stroke:var(--cd-cut-soft);stroke-width:1}.cd-boss-in{fill:var(--cd-metal-lo);stroke:var(--cd-cut-soft);stroke-width:1}.cd-pin{fill:var(--color-cutout);opacity:.7}.cd-index{fill:var(--color-text-secondary)}.cd-controls{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;justify-content:center}.cd-step{transition:transform var(--dur-1) var(--ease-out)}.cd-step:active{transform:scale(.965)}.cd-readout{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-wide)}.cd-readout b{color:var(--color-text-secondary);font-weight:var(--fw-head)}.cd-readout-sep{margin:0 var(--space-2);color:var(--color-text-faint)}.cd-pad{background:var(--color-raised-solid);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--elev-2);padding:var(--ui-card-p)}.cd-pad-label{display:block;font-size:var(--text-sm);font-weight:var(--fw-head);color:var(--color-text)}.cd-pad-note{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--lh-normal)}.cd-textarea{width:100%;min-height:190px;resize:vertical;padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-loose);color:var(--color-text);background:var(--color-field-bg);border:1px solid var(--color-border-field);border-radius:var(--radius-field)}.cd-textarea:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:1px;border-color:var(--color-accent)}.cd-textarea::placeholder{color:var(--color-text-faint)}@keyframes cd-pop{0%{transform:scale(1)}45%{transform:scale(1.07)}to{transform:scale(1)}}.cd-solved{margin-top:var(--space-5);padding:var(--ui-card-p);border:1px solid color-mix(in oklab,var(--color-success) 40%,transparent);background:var(--color-success-bg);border-radius:var(--radius-card)}.cd-solved-badge{margin:0 0 var(--space-2);font-size:var(--text-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-success);font-weight:var(--fw-label)}.cd-solved-line{margin:0 0 var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid color-mix(in oklab,var(--color-success) 25%,transparent);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--color-text)}.cd-solved-read{margin:0 0 var(--space-4);font-size:var(--text-sm);line-height:var(--lh-loose);color:var(--color-text-secondary)}.cd-solved-key-label{margin:0 0 var(--space-2);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.cd-solved-key{margin:0}.cd-solved-key span{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:var(--ls-wide);color:var(--color-success-on-solid);background:var(--color-success-solid);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control)}.cd-foot{margin-top:var(--space-7);font-size:var(--text-xs)}@media (prefers-reduced-motion: reduce){.cd-ct,.cd-lit,.cd-step{transition:none}.cd-focus{animation:none}.cd-step:active{transform:none}}.cd-landing{margin-bottom:var(--space-6)}.cd-group-btn .s{color:var(--color-text-tertiary)}.cd-reset{font-size:var(--text-xs)}.cd-declare,.cd-declared{background:var(--color-raised-solid);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--elev-2);padding:var(--ui-card-p);margin-bottom:var(--space-5)}.cd-declare{border-color:var(--color-border-strong)}.cd-declare-label{margin:0;font-size:var(--text-sm);font-weight:var(--fw-head);color:var(--color-text)}.cd-declare-note{margin:var(--space-1) 0 var(--space-4);font-size:var(--text-xs);line-height:var(--lh-normal);color:var(--color-text-tertiary)}.cd-field{display:flex;flex-direction:column;gap:var(--space-1)}.cd-field-grow{flex:1 1 14ch;min-width:0}.cd-field-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;line-height:var(--lh-normal);color:var(--color-text-tertiary)}.cd-number,.cd-text{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);background:var(--color-field-bg);border:1px solid var(--color-border-field);border-radius:var(--radius-field);padding:0 var(--space-3);min-height:var(--ui-control-h)}.cd-number:focus-visible,.cd-text:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:1px;border-color:var(--color-accent)}.cd-number::placeholder,.cd-text::placeholder{color:var(--color-text-faint)}.cd-number{width:7.5ch;font-variant-numeric:tabular-nums;text-align:center}.cd-text{width:100%;min-width:0;letter-spacing:var(--ls-wide);text-transform:uppercase}.cd-params-row{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:end;margin-top:var(--space-5)}.cd-params-hint{margin:var(--space-2) 0 0;font-size:var(--text-2xs);color:var(--color-text-faint)}.cd-check{margin-top:var(--space-5)}.cd-verdict{margin:var(--space-3) 0 0;min-height:1.4em;font-size:var(--text-sm);font-weight:var(--fw-label);color:var(--color-danger)}.cd-declared{border-color:color-mix(in oklab,var(--color-success) 40%,transparent);background:var(--color-success-bg)}.cd-declared-badge{margin:0 0 var(--space-3);font-size:var(--text-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-success);font-weight:var(--fw-label)}.cd-declared-rule{margin:0;display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.cd-rule-name{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:var(--ls-wide);font-weight:var(--fw-head);color:var(--color-text)}.cd-rule-args{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.cd-declared-note{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-secondary)}.cd-board{padding:0;overflow:hidden}.cd-board-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.cd-board-caption{caption-side:top;text-align:left;max-width:78ch;padding:var(--ui-card-p) var(--ui-card-p) var(--space-4);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--color-text-tertiary)}.cd-board-caption b{color:var(--color-text-secondary);font-weight:var(--fw-head)}.cd-board-table th,.cd-board-table td{text-align:left;padding:var(--space-4) var(--space-5);vertical-align:middle}.cd-board-table thead th{font-size:var(--text-2xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-strong);padding-top:0;padding-bottom:var(--space-2)}.cd-board-group+.cd-board-group .cd-board-row>*{border-top:1px solid var(--color-border-subtle)}.cd-board-group.is-open{background:var(--color-inset)}.cd-board-seg{font-weight:var(--fw-body);white-space:nowrap}.cd-board-no{display:block;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-text-faint)}.cd-board-title{display:block;font-size:var(--text-sm);color:var(--color-text)}.cd-board-who{font-size:var(--text-sm);color:var(--color-text-secondary)}.cd-rule-tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--fw-head);letter-spacing:var(--ls-wide);padding:var(--space-1) var(--space-3);border-radius:var(--radius-chip);border:1px solid transparent}.cd-rule-tag.rule-fixed{background:var(--color-caution-bg);color:var(--color-caution);border-color:var(--color-caution)}.cd-rule-tag.rule-step{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent)}.cd-rule-tag.rule-length{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success)}.cd-board-args{white-space:nowrap}.cd-board-args .cd-arg+.cd-arg{margin-left:var(--space-3)}.cd-arg{display:inline-flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary);background:var(--color-sunken);border:1px solid var(--color-border);border-radius:var(--radius-chip);padding:2px var(--space-3)}.cd-arg b{font-size:var(--text-lg);font-weight:var(--fw-head);color:var(--color-text);font-variant-numeric:tabular-nums;text-transform:none}.cd-board-hidden{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:var(--ls-wider);color:var(--color-text-faint)}.cd-board-act{text-align:right}.cd-board-reveal{min-width:6.5rem}.cd-board-read>td{padding-top:0}.cd-proof{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin:0 0 var(--space-4);padding-left:var(--space-4)}.cd-proof-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.cd-proof-word{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--fw-head);letter-spacing:var(--ls-wide);color:var(--color-text);background:var(--color-sunken);border:1px solid var(--color-border);border-radius:var(--radius-chip);padding:2px var(--space-3)}.cd-readaloud{margin:0;max-width:68ch;font-size:var(--text-md);line-height:var(--lh-loose);color:var(--color-text);border-left:2px solid var(--color-border-strong);padding-left:var(--space-4)}.cd-board-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--ui-card-p) var(--ui-card-p);border-top:1px solid var(--color-border-subtle)}.cd-board-point{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary)}.cd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width: 720px){.cd-board-table th,.cd-board-table td{padding:var(--space-3)}.cd-board-table{font-size:var(--text-sm)}}.cd-meta{margin-top:var(--ui-card-gap)}.cd-meta-label{margin:0 0 var(--space-4);font-size:var(--text-2xs);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-tertiary)}.cd-meta-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}@media (max-width: 720px){.cd-meta-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}.cd-meta-slot{display:flex;align-items:center;justify-content:center;min-height:64px;padding:var(--space-3);text-align:center;font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:var(--ls-wide);color:var(--color-text-faint);background:var(--color-inset);border:1px dashed var(--color-border-strong);border-radius:var(--radius-control)}.cd-meta-slot.is-on{color:var(--color-accent-on-solid);background:var(--color-accent-solid);border-style:solid;border-color:var(--color-accent-solid);animation:cd-pop var(--dur-3) var(--ease-spring) 1}.cd-meta-actions{display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-4)}@media (prefers-reduced-motion: reduce){.cd-meta-slot.is-on{animation:none}}@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}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--u:1px;--u-page:calc(100cqw / 612);--u-phone:clamp(1.25px, calc(100cqw / 300), 1.6px);--u-screen:1.5px;--page-width:calc(612 * var(--u));--page-height:calc(788 * var(--u));--page-margin-top:calc(34 * var(--u));--page-margin-left:calc(39 * var(--u));--page-margin-right:calc(41 * var(--u));--content-left:calc(53 * var(--u));--column-a-width:calc(148 * var(--u));--column-b-left:calc(227 * var(--u));--column-b-width:calc(336 * var(--u));--column-gutter:calc(26 * var(--u));--embed-max-width:760px;--breakpoint-stack:620px;--breakpoint-phone:430px;--screen-max-width:1280px;--drawer-width:400px}:root{--ink:#231F20;--black:#000000;--white:#FFFFFF;--bar2:#362E2D;--panel:#E7E3E2;--s2:#E2DEDD;--s3:#C4BCB9;--s4:#A89E9B;--blue:#034790;--blue-light:#5B9DF2;--yellow:#FFD302;--green-faint:#8FD3A3;--red-faint:#E8A09A;--blue-tint:#E8EEF5;--text-body:var(--ink);--text-inverse:var(--white);--text-muted:var(--s4);--text-disabled:var(--s4);--text-link:var(--ink);--text-link-hover:var(--accent);--surface-page:var(--white);--surface-panel:var(--panel);--surface-track:var(--panel);--surface-hover:var(--panel);--surface-selected:var(--accent-tint);--surface-active:var(--ink);--border-panel:var(--ink);--border-disabled:var(--s3);--border-focus:var(--accent);--rule:var(--ink);--divider:var(--s3);--accent:var(--blue);--accent-inverse:var(--blue-light);--accent-2:var(--yellow);--accent-tint:var(--blue-tint);--tone-0:var(--white);--tone-1:var(--s2);--tone-2:var(--s3);--tone-3:var(--s4);--tone-4:var(--black);--bar-1:var(--black);--bar-2:var(--bar2);--bar-3:var(--s4);--status-pending:var(--white);--status-progress:var(--s3);--status-done:var(--ink);--status-gap:var(--white);--status-removed:var(--s4)}:root{--font-sans:"Geist","Geist Sans","Helvetica Neue",Helvetica,Arial,"Liberation Sans",sans-serif;--font-mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--weight-light:300;--weight-regular:400;--weight-semibold:600;--weight-bold:700;--size-xs:calc(8 * var(--u));--size-sm:calc(10 * var(--u));--size-md:calc(12 * var(--u));--size-lg:calc(14 * var(--u));--size-xl:calc(18 * var(--u));--leading-tight:1.1;--leading-snug:1.2;--leading-loose:1.5;--track-0:0;--track-30:.03em;--track-40:.04em;--track-60:.06em;--track-100:.1em;--track-132:.132em;--type-display:700 var(--size-xl)/var(--leading-tight) var(--font-sans);--track-display:0;--type-display-light:300 var(--size-xl)/var(--leading-tight) var(--font-sans);--type-title:600 var(--size-md)/var(--leading-snug) var(--font-sans);--track-title:.132em;--type-title-italic:italic 600 var(--size-lg)/var(--leading-snug) var(--font-sans);--track-title-italic:.1em;--type-title-plain:600 var(--size-md)/var(--leading-snug) var(--font-sans);--type-heading:400 var(--size-md)/var(--leading-snug) var(--font-sans);--track-heading:.04em;--type-heading-light:300 var(--size-md)/var(--leading-snug) var(--font-sans);--type-question:300 var(--size-lg)/var(--leading-snug) var(--font-sans);--track-question:.02em;--type-subhead:400 var(--size-md)/var(--leading-tight) var(--font-sans);--track-subhead:.132em;--type-subhead-2:400 var(--size-sm)/var(--leading-snug) var(--font-sans);--type-body:300 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-body:.1em;--type-prose:300 var(--size-sm)/var(--leading-loose) var(--font-sans);--track-prose:.04em;--type-list:italic 300 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-list:.1em;--type-list-numbered:italic 400 var(--size-sm)/var(--leading-snug) var(--font-sans);--type-label:400 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-label:.1em;--type-text:400 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-text:.04em;--type-value:600 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-value:0;--type-control:400 var(--size-sm)/var(--leading-snug) var(--font-sans);--track-control:.1em;--type-note:italic 300 var(--size-xs)/var(--leading-snug) var(--font-sans);--track-note:.1em;--type-note-bold:700 var(--size-xs)/var(--leading-snug) var(--font-sans);--track-note-bold:.03em;--type-caption:400 var(--size-xs)/var(--leading-snug) var(--font-sans);--track-caption:.06em;--type-caption-italic:italic 300 var(--size-xs)/var(--leading-snug) var(--font-sans)}:root{--space-2xs:calc(2 * var(--u));--space-xs:calc(4 * var(--u));--space-sm:calc(8 * var(--u));--space-md:calc(12 * var(--u));--space-lg:calc(16 * var(--u));--space-xl:calc(20 * var(--u));--space-2xl:calc(24 * var(--u));--space-3xl:calc(32 * var(--u));--space-4xl:calc(48 * var(--u));--pad-control:0 calc(14 * var(--u));--pad-control-sm:0 calc(10 * var(--u));--pad-choice:calc(6 * var(--u)) calc(12 * var(--u));--pad-field:calc(6 * var(--u)) calc(10 * var(--u));--pad-notice:calc(8 * var(--u)) calc(12 * var(--u));--pad-panel:calc(12 * var(--u));--pad-panel-screen:calc(16 * var(--u));--pad-page:calc(32 * var(--u));--pad-page-phone:calc(20 * var(--u)) calc(18 * var(--u)) calc(26 * var(--u));--gap-inline:calc(8 * var(--u));--gap-stack:calc(12 * var(--u));--gap-block:calc(24 * var(--u));--gap-section:calc(32 * var(--u));--gap-column:calc(24 * var(--u));--gap-list:calc(8 * var(--u));--gap-bar-rows:calc(6 * var(--u));--gap-numbered-items:calc(12 * var(--u));--gap-pills:calc(8 * var(--u));--gap-panels-stacked:calc(20 * var(--u));--control-height:calc(24 * var(--u));--control-height-sm:calc(20 * var(--u));--focus-ring:calc(1 * var(--u)) solid var(--border-focus, var(--ink));--focus-offset:calc(2 * var(--u))}:root{--radius-bar:calc(2 * var(--u));--radius-track:calc(3 * var(--u));--radius-panel:calc(7 * var(--u));--radius-field:calc(7 * var(--u));--radius-pill-stacked:calc(10 * var(--u));--radius-pill:calc(12 * var(--u));--radius-control:calc(12 * var(--u));--border-width:calc(1 * var(--u));--border-panel-style:calc(1 * var(--u)) solid var(--ink);--shadow-none:none}:root{--ease:linear;--duration-fill:.12s;--duration-move:.12s;--motion-fill:var(--duration-fill) var(--ease);--motion-move:var(--duration-move) var(--ease);--wave-speed:2;--wave-stagger:26ms;--wave-cap:.18s;--wave-lift:calc(1.5 * var(--u));--wave-dip:.2;--wave-color:var(--accent);--wave-color-inverse:var(--accent-inverse);--wave-color-2:var(--accent-2);--ease-open:cubic-bezier(.2, 0, 0, 1);--duration-open:.12s;--duration-open-max:.32s;--open-rate:.3;--settle-stagger:16ms;--settle-cap:.12s;--settle-lift:calc(-4 * var(--u))}@media (prefers-reduced-motion: reduce){:root{--duration-fill:0ms;--duration-move:0ms;--wave-stagger:0ms;--duration-open:0ms;--duration-open-max:0ms;--settle-stagger:0ms}}:root{--exam-font:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;--exam-mono:"Courier New",Courier,monospace;--exam-accent:#324DC7;--exam-ink:#1E1E1E;--exam-text:#333333;--exam-choice-border:#505050;--exam-card-border:#D6D6D6;--exam-rule:#B8B8B8;--exam-chrome:#E6EDF8;--exam-title-bar:#F5F5F5;--exam-row:#F0F0F0;--exam-banner:#F6C4CB;--exam-banner-text:#4B1012;--exam-dash:#151515;--exam-review:#B3261E;--exam-alert:#C8102E;--exam-disabled:#BDBDBD;--exam-mask:rgba(30,30,30,.92);--exam-panel-header:#1E1E1E;--exam-highlight-yellow:#FFF59D;--exam-highlight-blue:#BBDEFB;--exam-highlight-pink:#F8BBD0;--exam-shadow-popover:0 0 8px rgba(0,0,0,.25);--exam-shadow-menu:0 0 12px rgba(0,0,0,.1);--exam-title-bar-h:70px;--exam-strip-h:52px;--exam-header-h:81px;--exam-banner-h:32px;--exam-footer-h:80px;--exam-inset:43px;--exam-dash-h:2px;--exam-dash-w:29px;--exam-dash-gap:2px;--exam-column:664px;--exam-card-h:68px;--exam-radius-card:10px;--exam-radius-pill:50px;--exam-radius-counter:7px;--exam-radius-popover:6px;--exam-radius-modal:8px;--exam-radius-banner:0 0 16px 16px;--exam-cell:29px;--exam-cell-pitch:53px;--exam-button-w:78px;--exam-button-h:40px}html{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;background:var(--surface-page);color:var(--text-body);font:400 15px/1.2 var(--font-sans);letter-spacing:.04em}#root{min-height:100vh}*,*:before,*:after{box-sizing:border-box}button,input,textarea,select{font-family:inherit}a{color:var(--text-link);text-decoration:none;transition:color var(--motion-fill)}a:hover{color:var(--text-link-hover)}:focus{outline:none}:focus-visible{outline:calc(1 * var(--u)) solid var(--border-focus);outline-offset:calc(2 * var(--u))}@keyframes course-settle{0%{opacity:0;transform:translateY(var(--settle-lift))}to{opacity:1;transform:none}}.boot{min-height:60vh;display:grid;place-items:center;font-weight:300;font-size:15px;letter-spacing:.04em;color:var(--text-muted)}code,pre{font-family:var(--font-mono);letter-spacing:0}.t-display{font-size:calc(18 * var(--u));line-height:1.1;font-weight:700;letter-spacing:0}.t-title{font-size:calc(12 * var(--u));line-height:1.2;font-weight:600;letter-spacing:.132em}.t-title-plain{font-size:calc(12 * var(--u));line-height:1.2;font-weight:600;letter-spacing:0}.t-heading{font-size:calc(12 * var(--u));line-height:1.2;font-weight:400;letter-spacing:.04em}.t-heading-light{font-size:calc(12 * var(--u));line-height:1.2;font-weight:300;letter-spacing:.04em}.t-question{font-size:calc(14 * var(--u));line-height:1.2;font-weight:300;letter-spacing:.02em}.t-subhead{font-size:calc(10 * var(--u));line-height:1.2;font-weight:400;letter-spacing:.132em}.t-prose{font-size:calc(10 * var(--u));line-height:1.5;font-weight:300;letter-spacing:.04em}.t-label{font-size:calc(10 * var(--u));line-height:1.2;font-weight:400;letter-spacing:.1em}.t-text{font-size:calc(10 * var(--u));line-height:1.2;font-weight:400;letter-spacing:.04em}.t-value{font-size:calc(10 * var(--u));line-height:1.2;font-weight:600;letter-spacing:0}.t-note{font-size:calc(8 * var(--u));line-height:1.2;font-weight:300;font-style:italic;letter-spacing:.1em}.t-note-bold{font-size:calc(8 * var(--u));line-height:1.2;font-weight:700;letter-spacing:.03em}.t-caption{font-size:calc(8 * var(--u));line-height:1.2;font-weight:400;letter-spacing:.06em}.t-muted{color:var(--text-muted)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0ms!important;animation-duration:0ms!important;animation-delay:0ms!important}}@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{.nav-drop{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-4) var(--ease-out)}.nav-drop>.nav-drop-in{overflow:hidden;min-height:0;visibility:hidden;transition:visibility 0s linear var(--dur-4)}.nav-drop.open{grid-template-rows:1fr}.nav-drop.open>.nav-drop-in{visibility:visible;transition-delay:0s}.nav-item.sub{padding-left:calc(var(--space-5) + 15px + var(--space-4))}@media (prefers-reduced-motion: reduce){.nav-drop,.nav-drop>.nav-drop-in{transition:none}}@media (max-width: 720px){.nav-drop,.nav-drop>.nav-drop-in{display:contents;visibility:visible}.nav-item.sub{padding-left:var(--space-4)}}.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-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--color-scrim);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);color:var(--color-text);animation:deck-open var(--dur-3) var(--ease-out) both}@keyframes deck-open{0%{opacity:0}to{opacity:1}}.deck-overlay.is-closing{animation:deck-close var(--dur-2) var(--ease-out) both}@keyframes deck-close{to{opacity:0}}.deck-overlay.is-closing .deck-card{animation:deck-sink var(--dur-2) var(--ease-out) both}@keyframes deck-sink{to{opacity:0;transform:translateY(8px) scale(.995)}}.deck-stage{flex:1;min-height:0;container-type:size;display:grid;place-items:center;padding:clamp(var(--space-8),3vw,var(--space-11))}.deck-card{width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16 / 9;container-type:size;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--color-raised-solid);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--elev-4);animation:deck-rise var(--dur-4) var(--ease-out) both}@keyframes deck-rise{0%{opacity:0;transform:translateY(10px) scale(.994)}to{opacity:1;transform:none}}.deck-band{flex:none;display:flex;align-items:baseline;gap:var(--space-6);padding:var(--space-4) clamp(var(--space-6),2.4cqi,var(--space-10));font-family:var(--font-mono);font-size:clamp(9px,.92cqi,14px);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-subtle);font-variant-numeric:tabular-nums}.deck-band-foot{border-bottom:0;border-top:1px solid var(--color-border-subtle)}.deck-band>:last-child{margin-left:auto}.deck-beat{color:var(--color-accent)}.deck-where,.deck-codes,.deck-count{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.deck-slide{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding:clamp(var(--space-6),4cqh,var(--space-11)) clamp(var(--space-7),4.4cqi,var(--space-12));animation:deck-in-fwd var(--dur-3) var(--ease-out) both}.deck-slide[data-dir=back]{animation-name:deck-in-back}@keyframes deck-in-fwd{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes deck-in-back{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}.deck-beat,.deck-codes{animation:deck-fade var(--dur-3) var(--ease-out) both}@keyframes deck-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.deck-overlay,.deck-overlay.is-closing,.deck-card,.deck-overlay.is-closing .deck-card,.deck-slide,.deck-beat,.deck-codes{animation:none}}.deck-msg{flex:1;min-height:0;display:grid;place-items:center;padding:var(--space-9) clamp(var(--space-7),4.4cqi,var(--space-12));text-align:center}.deck-msg>*{max-width:52ch;margin:0}.deck-banner{margin:0 0 var(--space-7);font-size:var(--text-md);color:var(--color-caution)}.deck-title{margin:0;max-width:22ch;font-size:clamp(20px,3.9cqi,58px);font-weight:var(--fw-display);letter-spacing:var(--ls-tighter);line-height:1.04;text-wrap:balance}.deck-lead{margin:var(--space-6) 0 0;max-width:40ch;font-size:clamp(14px,2.15cqi,32px);font-weight:var(--fw-body);letter-spacing:var(--ls-tight);line-height:1.3;color:var(--color-text);text-wrap:pretty}.deck-body{margin-top:var(--space-8);max-width:62ch;font-size:clamp(11px,1.42cqi,22px);line-height:1.5;color:var(--color-text-secondary)}.deck-slide>.deck-body:first-child,.deck-title+.deck-body,.deck-lead+.deck-body{margin-top:var(--space-7)}.deck-body:empty{display:none}.deck-body>:first-child{margin-top:0}.deck-body>:last-child{margin-bottom:0}.deck-body p{margin:var(--space-5) 0}.deck-body :is(ul,ol){margin:var(--space-5) 0;padding-left:0;list-style:none}.deck-body li{margin:var(--space-4) 0;padding-left:var(--space-8);position:relative}.deck-body ul>li:before{content:"";position:absolute;left:0;top:.62em;width:var(--space-4);height:2px;background:var(--color-text-faint)}.deck-body ol{counter-reset:deck-step}.deck-body ol>li{counter-increment:deck-step;padding-left:var(--space-9)}.deck-body ol>li:before{content:counter(deck-step);position:absolute;left:0;top:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-faint)}.deck-body li>:is(ul,ol){margin:var(--space-3) 0 0}.deck-body strong{color:var(--color-text)}.deck-body table{font-size:.86em}.deck-body pre{font-size:.8em;margin:var(--space-6) 0}.deck-body pre code{font-size:inherit}.deck-body code{font-size:.9em}.deck-fig{display:block;max-height:40cqh;width:auto;max-width:100%;margin:var(--space-7) 0 0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;padding:var(--space-4)}.deck-app{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-7)}.deck-app .btn{text-decoration:none}.deck-app-key{color:var(--color-text-tertiary);font-size:var(--text-xs)}.deck--title .deck-slide{align-items:center;text-align:center}.deck--title .deck-title{max-width:18ch;font-size:clamp(24px,5.4cqi,76px)}.deck--title .deck-lead{max-width:34ch;color:var(--color-text-tertiary)}.deck--title .deck-body{max-width:40ch}.deck--definition .deck-body{max-width:none}.deck--definition .deck-body table{width:100%;font-size:1em}.deck--definition .deck-body :is(th,td){padding:var(--space-4) var(--space-6) var(--space-4) 0;vertical-align:baseline}.deck--definition .deck-body th{font-family:var(--font-mono);font-size:.72em;font-weight:var(--fw-control);letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--color-text-tertiary);border-bottom-color:var(--color-border)}.deck--definition .deck-body td:first-child{width:30%;color:var(--color-text);font-weight:var(--fw-label)}.deck--example .deck-body{max-width:none}.deck--example .deck-body pre{font-size:clamp(8px,1.08cqi,15px);line-height:1.6;padding:var(--space-5) var(--space-6)}.deck--example .deck-body p{max-width:62ch}.deck--figure .deck-slide{align-items:center;text-align:center}.deck--figure .deck-title{max-width:26ch;font-size:clamp(17px,2.8cqi,36px)}.deck--figure .deck-fig{max-height:56cqh}.deck--figure .deck-body{max-width:52ch}.deck--figure .deck-body :is(ul,ol){display:inline-block;text-align:left}.deck--check .deck-slide{align-items:center;text-align:center}.deck--check .deck-title{max-width:26ch;font-size:clamp(21px,4.3cqi,62px)}.deck--check .deck-lead{max-width:36ch}.deck--check .deck-body{max-width:48ch}.deck--check .deck-body :is(ul,ol){display:inline-block;text-align:left}.deck--check .deck-fig{max-height:32cqh}.deck--do .deck-body{font-size:clamp(12px,1.6cqi,24px)}.deck--do .deck-body ol>li{padding-left:clamp(var(--space-8),4.4cqi,var(--space-11));margin:var(--space-6) 0}.deck--do .deck-body ol>li:before{font-size:clamp(14px,2.4cqi,32px);font-weight:var(--fw-display);line-height:1.05;color:var(--color-text-disabled)}.deck--exit .deck-body{border-left:3px solid var(--color-accent);padding-left:var(--space-7)}.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-controls{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-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,.deck-where{display:none}.deck-slide{padding:var(--space-8) var(--space-6)}.deck-body{margin-top:var(--space-7)}}.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)}.res{position:fixed;right:var(--space-8);bottom:var(--space-8);z-index:var(--z-sticky);display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}.res-tab,.res-card{pointer-events:auto}.res-drop{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-4) var(--ease-out)}.res-drop>.res-drop-in{overflow:hidden;min-height:0;visibility:hidden;transition:visibility 0s linear var(--dur-4)}.res-drop.open{grid-template-rows:1fr}.res-drop.open>.res-drop-in{visibility:visible;transition-delay:0s}.res-card{width:min(420px,calc(100vw - var(--space-10)));max-height:min(56vh,520px);overflow-y:auto;overscroll-behavior:contain;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-3);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4)}.res-card .file .mt{display:flex;align-items:center;gap:var(--space-2)}.res-foot{display:flex;align-items:baseline;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle);font-size:var(--text-sm);color:var(--color-text-tertiary)}.res-foot a{margin-left:auto;color:var(--color-accent);text-decoration:none}.res-foot a:hover{text-decoration:underline}.res-tab{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--ui-control-sm-h);padding:0 var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-raised);color:var(--color-text-secondary);box-shadow:var(--elev-2);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),background var(--dur-2) var(--ease-out)}.res-tab:is(:hover,:focus-visible){background:var(--color-key-hover);color:var(--color-text)}.res-tab[aria-expanded=true]{color:var(--color-text)}.res-n{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.res-drop,.res-drop>.res-drop-in{transition:none}}@media (max-width: 720px){.res{right:var(--space-6);bottom:var(--space-6)}.res-card{width:calc(100vw - var(--space-8));max-height:50vh}}}@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-user{display:flex;align-items:center;gap:var(--space-2)}.signin-user .field{flex:1;min-width:0}.signin-domain{color:var(--muted, #6b7280);font-size:var(--text-sm);white-space:nowrap}.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}.map{display:flex;flex-direction:column;margin-top:var(--space-9)}.map-unit+.map-unit{margin-top:var(--space-11)}.map button{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;margin:0;padding:0;width:100%;text-align:left;cursor:pointer}.map button[disabled]{cursor:default}.map .drop{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-4) var(--ease-out)}.map .drop>.drop-in{overflow:hidden;min-height:0;visibility:hidden;transition:visibility 0s linear var(--dur-4)}.map [aria-expanded=true]+.drop{grid-template-rows:1fr}.map [aria-expanded=true]+.drop>.drop-in{visibility:visible;transition-delay:0s}.map .tick{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;font-variant-numeric:tabular-nums}.map .chev{flex:0 0 auto;width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg) translate(-1px,-1px);transition:transform var(--dur-3) var(--ease-out);opacity:.45}.map [aria-expanded=true] .chev{transform:rotate(45deg)}.map .today{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-accent)}.map .work-dot{flex:0 0 auto;width:6px;height:6px;border-radius:var(--radius-full);border:1.5px solid var(--color-caution)}.map .work-dot.in{background:var(--color-success);border-color:var(--color-success)}.map-head{display:flex;align-items:center;gap:var(--space-7)}.map-head .n{flex:0 0 auto;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-6xl);font-weight:var(--fw-control);letter-spacing:var(--ls-tighter);line-height:1;color:var(--color-text-disabled);transition:color var(--dur-3) var(--ease-out)}.map-unit.current .map-head .n{color:var(--u)}.map-unit.past .map-head .n{color:var(--color-mark)}.map-head .col{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.map-head .k{color:var(--color-text-faint)}.map-unit.current .map-head .k{color:var(--color-accent)}.map-head .t{font-size:var(--text-4xl);font-weight:var(--fw-head);letter-spacing:var(--ls-tight);line-height:1.2;transition:color var(--dur-2) var(--ease-out)}.map-unit.past .map-head .t{color:var(--color-text-secondary)}.map-unit.future .map-head .t{color:var(--color-text-disabled)}.map-head:hover:not([disabled]) .t,.map-head:focus-visible .t{color:var(--color-accent)}.map-weeks{padding:var(--space-9) 0 0 var(--space-12);display:flex;flex-direction:column}.map-week+.map-week{margin-top:var(--space-7)}.map-week-head{display:flex;align-items:baseline;gap:var(--space-5);padding-bottom:var(--space-3)}.map-week-head .k{flex:0 0 auto;color:var(--color-text-faint)}.map-week.now .map-week-head .k{color:var(--color-accent)}.map-week-head .s{flex:1;min-width:0;font-size:var(--text-xl);font-weight:var(--fw-ui);color:var(--color-text-secondary);transition:color var(--dur-2) var(--ease-out)}.map-week-head:hover .s,.map-week-head:focus-visible .s{color:var(--color-accent)}.map-week-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-5)}.map-week-row>.map-week-head{flex:1;min-width:0}.map .map-week-row:has([aria-expanded=true])+.drop{grid-template-rows:1fr}.map .map-week-row:has([aria-expanded=true])+.drop>.drop-in{visibility:visible;transition-delay:0s}.map-week-tools{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-4)}.map-week-tools .held{color:var(--color-text-faint)}.map-week-tools .switch{margin:0;font-size:var(--text-sm)}.map-days{display:flex;flex-direction:column}.map-none{margin:0;padding:var(--space-5) var(--space-6);color:var(--color-text-tertiary)}.map-day{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);border-left:2px solid var(--color-border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text);transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}.map-day.now{border-left-color:var(--color-accent)}.map-day:is(:hover,:focus-visible){border-left-color:var(--color-accent);background:var(--color-sunken)}.map-day .m{flex:0 0 58px;color:var(--color-text-tertiary)}.map-day.now .m{color:var(--color-accent)}.map-day .t{flex:1;min-width:0;font-size:var(--text-md)}.map-day.empty .t{color:var(--color-text-faint);font-weight:var(--fw-recede)}.map-day .d{flex:0 0 auto;color:var(--color-text-tertiary)}.map-day .pill{flex:0 0 auto}@media (max-width: 620px){.map-weeks{padding-left:var(--space-9)}.map-head .n{font-size:var(--text-5xl)}.map-head,.map-day{gap:var(--space-5)}.map-day .m{flex-basis:44px}}.map-meter{flex:0 0 auto;display:flex;gap:2px}.map-meter i{display:block;width:15px;height:5px;border-radius:1px;background:var(--color-border);transition:background var(--dur-2) var(--ease-out)}.map-meter i.gen{background:var(--color-accent)}.map-meter i.app{background:var(--color-accent-solid)}.map-meter i.done{background:var(--color-success-solid)}.map-meter.big i{width:30px;height:9px;border-radius:2px}.map-day.slot-test{border-left-color:var(--color-caution)}.map-day .slot{flex:0 0 auto;color:var(--color-caution)}.map-day .slot.prac,.map-week-tools .roll{color:var(--color-text-tertiary)}.next-test,.today-card{display:flex;align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;margin-top:var(--space-8);padding:var(--space-5) var(--space-6);border:1px solid var(--color-caution);border-radius:var(--radius-md);background:var(--color-caution-bg);color:inherit;text-decoration:none}a.next-test:hover b,a.today-card:hover b{text-decoration:underline}.today-card{border-color:var(--color-accent);background:var(--color-accent-bg)}.today-card .lbl{color:var(--color-accent)}.today-card b{font-size:var(--text-md);font-weight:var(--fw-label)}.today-card .when{margin-left:auto;color:var(--color-text-secondary)}.today-card .tick{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;font-variant-numeric:tabular-nums}.next-test .lbl{color:var(--color-caution)}.next-test b{font-size:var(--text-md);font-weight:var(--fw-label)}.next-test .when{margin-left:auto;color:var(--color-text-secondary)}.next-test .tick{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;font-variant-numeric:tabular-nums}.approve{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-9);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-raised)}.approve-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.approve-t b{font-weight:var(--fw-label)}.approve .switch{margin:0;flex:0 0 auto}.day-step{display:flex;justify-content:space-between;gap:var(--space-6);margin-top:var(--space-10);padding-top:var(--space-7);border-top:1px solid var(--color-border)}.step{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.step.next{text-align:right}.step .tick{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-faint)}.step .t{font-size:var(--text-lg);color:var(--color-text);transition:color var(--dur-2) var(--ease-out)}.step:is(:hover,:focus-visible) .t{color:var(--color-accent)}.note-card{margin-bottom:var(--space-4)}.note-card .note-body{margin-top:var(--space-3)}.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}.work-actions .dim{align-self:center;font-size:var(--text-sm)}.work-brief{margin:var(--space-4) 0 0}.q-count{margin:var(--space-5) 0 0;font-size:var(--text-sm)}.qlist{list-style:none;margin:var(--space-4) 0 0;padding:0}.q{padding:var(--space-5) 0;border-top:1px solid var(--color-border-subtle)}.q:first-child{border-top:0}.q-head{display:flex;align-items:baseline;gap:var(--space-3)}.q-no{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-label);color:var(--color-accent);letter-spacing:var(--ls-wide)}.q-pts{font-size:var(--text-sm)}.q-prompt{margin:var(--space-2) 0 var(--space-4);color:var(--color-text)}.q-prompt p{margin:0 0 var(--space-2)}.q-prompt>:last-child{margin-bottom:0}.q-done .q-no{color:var(--color-success)}.qrow{display:grid;grid-template-columns:70px 1fr 70px auto;gap:var(--space-3);align-items:start;margin-bottom:var(--space-3)}.qrow-prompt{min-height:0}.item-day{flex:0 0 auto;width:168px;align-self:center}.item-edit{display:flex;flex-direction:column;gap:var(--space-3)}.item-edit+.item-edit{margin-top:var(--space-6)}.item-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-radius:var(--radius-card);background:var(--color-sunken);font-size:var(--ui-text-sm)}.item-tools .item-day{align-self:auto;margin-right:auto}.g-q{padding:var(--space-4) 0;border-top:1px solid var(--color-border-subtle)}.g-q:first-child{border-top:0}.g-q-head{display:flex;align-items:baseline;gap:var(--space-3)}.g-q-head .q-prompt{flex:1;margin:0;font-size:var(--text-base)}.g-q-pts{width:60px;flex:0 0 auto}.g-q-ans{margin:var(--space-3) 0 0;padding-left:var(--space-5);border-left:2px solid var(--color-border);white-space:pre-wrap;color:var(--color-text-secondary)}.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 208px;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.grade .g-status{width:auto}.grade .g-excused .field{opacity:.45}.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)}@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)}.flippy-device{padding:var(--space-6);border:1px solid var(--color-cutout);border-radius:var(--radius-2xl);background:var(--color-console);color:var(--color-console-ink);box-shadow:var(--elev-2);--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)}.flippy-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:var(--space-2)}.flippy-col{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);min-width:0;text-align:center}.flippy-col.pulse{animation:flippy-pulse var(--dur-5) var(--ease-out) 2}@keyframes flippy-pulse{0%,to{transform:none}50%{transform:translateY(-3px)}}.flippy-pow{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-console-ink-2);font-variant-numeric:tabular-nums}.flippy-pow sup{font-size:.75em}.flippy-place{font-weight:var(--fw-label);font-variant-numeric:tabular-nums;font-size:var(--text-base)}.flippy-col{perspective:600px}.flippy-tab{position:relative;width:100%;min-height:52px;border:0;padding:0;background:none;cursor:pointer;transform-style:preserve-3d;transition:transform var(--dur-5) var(--ease-out);font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--fw-label)}.flippy-tab[aria-pressed=true]{transform:rotateX(180deg)}.flippy-tab:focus-visible{outline:none}.flippy-tab:focus-visible .flippy-face{box-shadow:var(--focus-ring)}.flippy-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;backface-visibility:hidden;border-radius:var(--radius-lg);background:var(--color-raised-solid);color:var(--color-text-tertiary);box-shadow:var(--ctl-shadow)}.flippy-face.back{transform:rotateX(180deg);background:var(--color-accent-bg-strong);color:var(--color-accent);box-shadow:var(--ctl-shadow),0 0 8px 0 var(--color-lamp-on)}.flippy-readout{margin-top:var(--space-6);text-align:center}.flippy-sum{margin:0;font-size:var(--text-2xl);font-variant-numeric:tabular-nums}.flippy-sum code{font-size:.9em}.flippy-sum .num{font-size:1.15em}.flippy-expr{margin:var(--space-2) 0 0;min-height:1.4em;font-size:var(--text-sm);color:var(--color-console-ink-2);font-variant-numeric:tabular-nums}.flippy-tools{display:flex;align-items:center;gap:var(--space-5);margin-top:var(--space-5)}.flippy-flips{margin-left:auto;font-size:var(--text-sm);color:var(--color-console-ink-2);font-variant-numeric:tabular-nums}.flippy-insight{margin:var(--space-4) 0 0;font-size:var(--text-md);color:var(--color-text-secondary)}.flippy-actions{display:flex;gap:var(--space-4);justify-content:center;margin-top:var(--space-5)}.card.drill-face+.flippy-device{margin-top:var(--space-6)}@media (max-width: 480px){.flippy-device{padding:var(--space-4)}.flippy-grid{gap:var(--space-1)}.flippy-place{font-size:var(--text-sm)}.flippy-tab{min-height:44px;font-size:var(--text-base)}}.cipher-landing{margin-top:var(--space-8)}.cipher-group-btn{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);min-height:96px}.cipher-group-btn .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)}.cipher-group-btn .v{font-size:var(--text-2xl);font-weight:var(--fw-head)}.cipher-group-btn .s{font-size:var(--ui-text-sm);color:var(--color-text-secondary)}.cipher-foot{margin-top:var(--space-8);font-size:var(--ui-text-sm);color:var(--color-text-tertiary)}.cipher-reset{font-size:var(--ui-text-sm)}.cipher-roles{display:flex;align-items:flex-end;gap:var(--space-5)}.cipher-role{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.cipher-role label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--ls-wider);color:var(--color-text-tertiary)}.cipher-swap{flex:0 0 auto}.cipher-nudge{margin-top:var(--space-4)}.cipher-nudge-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.cipher-ciphertext code{display:block;font-family:var(--font-mono);font-size:var(--text-base);line-height:var(--lh-normal);white-space:pre-wrap;word-break:break-word}.cipher-hint-list{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.cipher-hint-text{font-size:var(--ui-text-sm);color:var(--color-text-secondary)}.cipher-helper{display:flex;flex-direction:column;gap:var(--space-3)}.cipher-slider-row{display:flex;align-items:center;gap:var(--space-4)}.cipher-slider-row input[type=range]{flex:1}.cipher-shift-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.cipher-preview{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-tertiary);white-space:pre-wrap;word-break:break-word}.cipher-map{overflow-x:auto}.cipher-map-row{display:flex;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm)}.cipher-map-row span{flex:0 0 auto;min-width:22px;text-align:center}.cipher-map-row.alt{color:var(--color-text-tertiary);margin-top:var(--space-1)}.cipher-progress{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.cipher-progress-track{flex:1;height:8px;border-radius:var(--radius-full, 999px);background:var(--color-inset);overflow:hidden}.cipher-progress-bar{height:100%;background:var(--color-success-solid);transition:width var(--dur-3) var(--ease-out)}.cipher-progress-label{flex:0 0 auto;font-size:var(--ui-text-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.cipher-live-words{margin-top:var(--space-4);line-height:var(--lh-loose, 1.9)}.cipher-word{display:inline-block;margin:0 var(--space-1) var(--space-1) 0;padding:1px var(--space-2);border-radius:var(--radius-md, 6px);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-inset)}.cipher-word.ok{color:var(--color-success-on-solid);background:var(--color-success-solid)}.cipher-solved{text-align:center;animation:cipher-pop var(--dur-5) var(--ease-spring);border-color:var(--color-success);background:var(--color-success-bg)}.cipher-solved-badge{font-size:var(--text-2xl);font-weight:var(--fw-head);color:var(--color-success);margin-bottom:var(--space-4)}.cipher-readaloud{font-size:var(--text-2xl);font-weight:var(--fw-head);line-height:var(--lh-normal);margin-top:var(--space-3)}@keyframes cipher-pop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.02);opacity:1}to{transform:scale(1)}}.cipher-board{margin-top:var(--space-8)}.cipher-board-row{display:flex;flex-direction:column;gap:var(--space-3)}.cipher-board-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.cipher-role-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--ls-wider);color:var(--color-text-tertiary);display:block}.cipher-role-name{font-size:var(--text-xl);font-weight:var(--fw-head)}.cipher-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start;margin-top:var(--space-6)}.cipher-panel{min-height:260px;min-width:0}.cipher-panel>.s{margin-bottom:var(--space-4)}@media (max-width: 720px){.cipher-panels{grid-template-columns:1fr}}.cipher-key-note{font-size:var(--ui-text-sm);color:var(--color-text-secondary);line-height:var(--lh-normal)}.cipher-key-hint-muted{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-3)}.cipher-disk-rows{margin-top:var(--space-4);overflow-x:auto}.cipher-disk-row{display:flex;align-items:center;gap:var(--space-2)}.cipher-disk-label{flex:0 0 auto;width:44px;font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase}.cipher-disk-strip{display:flex;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm)}.cipher-disk-strip span{flex:0 0 auto;min-width:22px;text-align:center}.cipher-disk-row.alt{color:var(--color-accent)}.cipher-disk-controls{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.cipher-disk-offset{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.cipher-pigpen-grids{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-top:var(--space-4)}.cipher-pigpen-shape{width:100%;max-width:140px;color:var(--color-text)}.cipher-pigpen-sym{width:22px;height:22px;color:currentColor;vertical-align:middle}.cipher-byte-table{margin-top:var(--space-4);border-collapse:collapse;font-size:var(--ui-text-sm)}.cipher-byte-table th,.cipher-byte-table td{padding:var(--space-1) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border)}.cipher-byte-table td.mono,.cipher-byte-decode.mono{font-family:var(--font-mono)}.cipher-byte-chunks{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.cipher-byte-chunk{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-inset);cursor:pointer}.cipher-byte-decode{margin-top:var(--space-4);font-size:var(--text-lg)}.cipher-freq-bars{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.cipher-freq-row{display:flex;align-items:center;gap:var(--space-3)}.cipher-freq-sym{flex:0 0 auto;width:24px}.cipher-freq-track{flex:1;height:10px;border-radius:var(--radius-full, 999px);background:var(--color-inset);overflow:hidden}.cipher-freq-bar{height:100%;background:var(--color-accent-solid)}.cipher-freq-count{flex:0 0 auto;font-size:var(--ui-text-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.cipher-freq-locked{margin-top:var(--space-4);padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md, 6px);color:var(--color-text-tertiary);font-size:var(--ui-text-sm);text-align:center}.cipher-message{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2) var(--space-1);font-size:var(--text-lg);line-height:2.4}.cipher-lit{color:var(--color-text-tertiary)}.cipher-space{width:var(--space-3)}.cipher-token-wrap{position:relative;display:inline-flex}.cipher-token{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:40px;min-height:44px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-inset);cursor:pointer;line-height:1.15}.cipher-token.byte{min-width:68px;font-family:var(--font-mono);font-size:var(--text-xs)}.cipher-token-sym{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-tertiary)}.cipher-token-letter{font-size:var(--text-lg);font-weight:var(--fw-head);min-height:1.2em}.cipher-token.guessed .cipher-token-letter{color:var(--color-text-secondary)}.cipher-token.correct{border-color:var(--color-success);background:var(--color-success-bg);cursor:default}.cipher-token.correct .cipher-token-letter{color:var(--color-success)}.cipher-picker{position:absolute;top:100%;left:0;z-index:20;margin-top:var(--space-2);display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);background:var(--color-raised-solid);color:var(--color-text);box-shadow:var(--elev-2);max-width:260px}.cipher-picker-opt{min-width:32px;min-height:32px;border:none;border-radius:var(--radius-sm, 4px);background:transparent;color:inherit;font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.cipher-picker-opt:hover,.cipher-picker-opt:focus-visible{background:var(--color-accent-bg);color:var(--color-accent)}.cipher-keyword-callout{margin-top:var(--space-5);font-size:var(--text-lg);letter-spacing:var(--ls-wider)}.cipher-meta{margin-top:var(--space-6);text-align:center}.cipher-meta-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);margin-top:var(--space-4)}.cipher-meta-slot{min-width:120px;padding:var(--space-4) var(--space-5);border:1px dashed var(--color-border);border-radius:var(--radius-md, 6px);font-size:var(--text-lg);font-weight:var(--fw-head);color:var(--color-text-tertiary)}.cipher-meta-slot.on{border-style:solid;border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-bg)}.cipher-meta-actions{display:flex;justify-content:center;gap:var(--space-3);margin-top:var(--space-5)}@media (max-width: 480px){.cipher-roles{flex-direction:column;align-items:stretch}.cipher-swap{align-self:center}}.rail-preview{flex:1 0 100%;padding:0 var(--space-4) var(--space-2)}.rail-preview .switch{font-size:var(--text-sm);color:var(--color-text-secondary)}@media (max-width: 720px){.rail-preview{flex:none;padding:0}}.preview-badge{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:var(--z-toast);display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border:1px solid var(--color-caution);border-radius:var(--radius-full);background:var(--color-raised-solid);box-shadow:var(--elev-2);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-caution);cursor:pointer}.preview-badge:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--color-caution-bg);pointer-events:none}.preview-badge>*{position:relative}.preview-badge .off{padding-left:var(--space-4);border-left:1px solid var(--color-caution);color:var(--color-text-tertiary)}.preview-badge:is(:hover,:focus-visible) .off{color:var(--color-text)}.preview-badge:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:2px}.grade-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:var(--space-6);background:var(--color-scrim);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);animation:grade-open var(--dur-3) var(--ease-out) both}@keyframes grade-open{0%{opacity:0}to{opacity:1}}.grade-overlay.is-closing{animation:grade-close var(--dur-2) var(--ease-out) both}@keyframes grade-close{to{opacity:0}}.grade-overlay.is-closing .grade-sheet{animation:grade-sink var(--dur-2) var(--ease-out) both}@keyframes grade-sink{to{opacity:0;transform:translateY(8px) scale(.995)}}.grade-sheet{width:min(1000px,94vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-raised-solid);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--elev-4);animation:grade-rise var(--dur-4) var(--ease-out) both}@keyframes grade-rise{0%{opacity:0;transform:translateY(10px) scale(.994)}to{opacity:1;transform:none}}.grade-sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) var(--space-6) var(--space-4) var(--space-8);border-bottom:1px solid var(--color-border-subtle)}.grade-sheet-where{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);font-size:var(--ui-text-sm);font-weight:var(--fw-control);letter-spacing:var(--ls-control);text-transform:uppercase;color:var(--color-text-tertiary)}.grade-sheet-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-7) var(--space-8) var(--space-9)}.grade-sheet-body>:first-child{margin-top:0}@media (prefers-reduced-motion: reduce){.grade-overlay,.grade-overlay.is-closing,.grade-sheet,.grade-overlay.is-closing .grade-sheet{animation:none}}.lens{margin-top:var(--space-6)}.lens a{border-radius:var(--radius-cutout-control);padding:var(--space-2) var(--space-5);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);transition:color var(--dur-3) var(--ease-out),background var(--dur-3) var(--ease-out)}.lens a:is(:hover,:focus-visible){color:var(--color-text);background:var(--color-key-hover)}.lens a[aria-current=page]{color:var(--color-text);background:var(--color-key);box-shadow:var(--ctl-shadow)}.pill-strip{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-5) 0}.pill-strip .pill{text-decoration:none}.pill-strip .pill:is(:hover,:focus-visible){text-decoration:underline}}.gb-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);margin:var(--space-5) 0 var(--space-6)}.gb-weights{font-size:var(--text-sm)}.gb-wrap{overflow-x:auto}.gb{--gb-name-w: 210px;--gb-cell-px: var(--space-5);border-collapse:collapse;min-width:100%;font-size:var(--ui-text-sm);font-variant-numeric:tabular-nums}.gb th,.gb td{padding:var(--ui-row-py) var(--gb-cell-px);text-align:right;white-space:nowrap;border-bottom:1px solid var(--color-border-subtle)}.gb :is(th,td):first-child{padding-left:var(--ui-card-p)}.gb :is(th,td):last-child{padding-right:var(--ui-card-p)}.gb tbody tr:last-child :is(th,td){border-bottom:0}.gb thead th{vertical-align:bottom}.gb tbody tr:hover :is(td,th){background:var(--color-inset)}.gb tbody th{font-size:var(--ui-text-sm);font-weight:var(--fw-body);color:var(--color-text);letter-spacing:var(--ls-normal);text-transform:none}.gb .gb-name{position:sticky;left:0;z-index:1;width:var(--gb-name-w);min-width:var(--gb-name-w);max-width:var(--gb-name-w);background:var(--color-raised-solid);text-align:left;overflow:hidden;text-overflow:ellipsis}.gb tbody tr:hover .gb-name{background:var(--color-inset)}.gb .gb-grade{width:84px}.gb-fixed .gb-grade{position:sticky;left:var(--gb-name-w);z-index:1;background:var(--color-raised-solid);box-shadow:1px 0 0 var(--color-border)}.gb-fixed tbody tr:hover .gb-grade{background:var(--color-inset)}.gb-final{font-weight:var(--fw-control)}.gb-risk{color:var(--color-caution);background:var(--color-caution-bg)}.gb-fail{color:var(--color-danger);background:var(--color-danger-bg)}.gb-fixed :is(.gb-risk,.gb-fail){box-shadow:1px 0 0 var(--color-border)}.gb-sort{display:inline-flex;align-items:center;gap:var(--space-2);border:0;padding:0;background:none;color:var(--color-text-tertiary);font-family:inherit;font-size:var(--text-xs);font-weight:var(--fw-label);letter-spacing:var(--ls-wide);text-transform:uppercase;cursor:pointer}.gb-sort:is(:hover,:focus-visible){color:var(--color-accent)}.gb-sort.on{color:var(--color-accent)}.gb-arrow{font-size:var(--text-2xs)}.gb-cats th{font-size:var(--text-sm);border-bottom:0;padding-bottom:0}.gb-cat{text-align:left}.gb-cat.gb-sums,.gb .gb-sum{border-left:1px solid var(--color-border-subtle)}.gb-col{max-width:118px}.gb-col a{display:block;max-width:118px;overflow:hidden;text-overflow:ellipsis;color:var(--color-text);text-decoration:none;font-size:var(--ui-text-sm);font-weight:var(--fw-control);letter-spacing:var(--ls-normal);text-transform:none}.gb-col a:is(:hover,:focus-visible){text-decoration:underline}.gb-col .dim{display:block;font-size:var(--text-sm);font-weight:var(--fw-body)}.gb .gb-cell{padding:0}.gb-cell a{display:block;padding:var(--ui-row-py) var(--gb-cell-px);color:inherit;text-decoration:none}.gb-cell a:is(:hover,:focus-visible){text-decoration:underline}.gb-late{color:var(--color-caution)}.gb-missing{color:var(--color-danger)}.gb-excused{color:var(--color-text-faint)}.gb-title{text-align:left}.gb tbody .gb-title{font-weight:var(--fw-control)}.gb-title a{color:var(--color-text)}.gb-title a:is(:hover,:focus-visible){text-decoration:underline}.gb .gb-when,.gb .gb-pick-h{text-align:left}.gb-todo{color:var(--color-accent);font-weight:var(--fw-control)}.gb-pick{min-height:var(--ui-control-sm-h);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--text-xs);cursor:pointer}.gb-pick:is(:hover,:focus-visible){border-color:var(--color-border-strong);color:var(--color-text)}.gb-warnings ul{margin:var(--space-2) 0 0;padding-left:var(--space-6)}.board{display:flex;flex-direction:column;gap:var(--space-8)}.board .tick,.bcard .tick,.shelf .tick,.board-foot .tick{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary)}.board-head{display:flex;gap:var(--space-8);align-items:flex-start;flex-wrap:wrap}.board-id{flex:1 1 24rem;min-width:0}.board-aside{flex:0 1 22rem}.board-aside .approve{margin-top:0}.board-title{display:block;width:100%;margin:var(--space-3) 0 var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font:inherit;font-size:var(--text-xl);font-weight:var(--fw-label);letter-spacing:-.01em}.board-title::placeholder{color:var(--color-text-faint)}.board-title:hover{border-color:var(--color-border-subtle)}.board-title:focus,.board-title:focus-visible{outline:none;border-color:var(--color-focus);background:var(--color-inset)}.board-set{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-4)}.board-set .pill-strip{margin:0}.board-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);align-items:start}.bcol{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:var(--color-inset);border-top:2px solid var(--color-border)}.bcol-now{border-top-color:var(--color-success)}.bcol-bell{border-top-color:var(--color-accent)}.bcol-held{border-top-color:transparent;border-top-style:dashed;border-top-color:var(--color-border-strong)}.bcol-head{display:flex;align-items:baseline;gap:var(--space-4)}.bcol-head h2{margin:0;font-size:var(--text-md);font-weight:var(--fw-label)}.bcol-head .tick{margin-left:auto;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-cutout)}.bcol-sub{margin:calc(var(--space-3) * -1) 0 0}.bcol-add{padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:transparent;color:var(--color-text-tertiary);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:color var(--dur-2),border-color var(--dur-2),background var(--dur-2)}.bcol-add:is(:hover,:focus-visible){color:var(--color-text);border-color:var(--color-accent);background:var(--color-key-hover)}.bcol .card.form.compact{margin:0;padding:var(--space-5)}.bcol .card.form.compact .chips{margin:var(--space-3) 0 var(--space-1)}.bcard{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised-solid);box-shadow:var(--elev-1)}.bcard.editing{border-color:var(--color-accent)}.bcard-top{display:flex;align-items:baseline;gap:var(--space-4)}.bcard-g{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-tertiary)}.bcard-t{flex:1;min-width:0;font-weight:var(--fw-label);line-height:1.3}.bcard-top .pill{flex:0 0 auto}.bcard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5)}.bcard-meta .ghost{padding:0;font-size:var(--text-sm)}.bcard-do{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.bcard-do .ghost{padding:0 var(--space-2);font-size:var(--text-sm)}.bcard-do .field.small{max-width:12rem}.bcard-form{display:flex;flex-direction:column;padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.bcard-form .lbl{margin-top:var(--space-4)}.bcard-form .lbl:first-child{margin-top:0}.note.compact{margin:0 0 var(--space-4);padding:var(--space-4) var(--space-5)}.rel{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4)}.seg{display:inline-flex;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-cutout)}.seg-b{padding:var(--space-1) var(--space-4);border:0;border-radius:var(--radius-full);background:transparent;color:var(--color-text-tertiary);font:inherit;font-size:var(--text-xs);white-space:nowrap;cursor:pointer;transition:background var(--dur-2),color var(--dur-2)}.seg-b:is(:hover,:focus-visible){color:var(--color-text)}.seg-b.on{background:var(--color-raised-solid);color:var(--color-text);box-shadow:var(--elev-1)}.rel-t{flex:1 1 8rem;min-width:0}.rel-go{padding:0;font-size:var(--text-sm)}.board-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle)}.board-foot a{color:inherit}.board-copy{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.board-copy .field.small{max-width:16rem}@media (max-width: 1100px){.board-cols{grid-template-columns:1fr}.bcol{border-top-width:3px}}.blist{display:flex;flex-direction:column;gap:var(--space-4)}.held-line{margin:calc(var(--space-4) * -1) 0 var(--space-6)}.day-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-5);margin:var(--space-7) 0}.day-tiles .card.tile{text-align:left;cursor:default}.day-tiles .card.tile:is(:hover,:focus-visible){transform:none}.day-tiles .card.tile.owed .v{color:var(--color-caution)}.slot{margin-top:var(--space-9)}.slot>h2{display:flex;align-items:baseline;gap:var(--space-5)}.slot>h2:after{content:"";flex:1;height:1px;background:var(--color-border-subtle)}.slot-homework>h2:after{background:var(--color-accent-bg-strong)}.deck-card{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.deck-g{font-family:var(--font-mono);font-size:var(--text-xl);color:var(--color-accent)}.deck-t{flex:1;min-width:12rem}.deck-t h3{margin:0}.deck-t p{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.coming{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-9);padding:var(--space-6);border:1px dashed var(--color-accent);border-radius:var(--radius-lg);background:var(--color-accent-bg)}.coming-n{flex:0 0 auto;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-full);background:var(--color-accent-solid);color:var(--color-key-on-console, #fff);font-family:var(--font-mono);font-size:var(--text-lg)}.coming>span:last-child{display:flex;flex-direction:column;gap:var(--space-1)}.owed-box{margin-top:var(--space-8)}.owed-row{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-4) 0;color:inherit;text-decoration:none}.owed-row+.owed-row{border-top:1px solid var(--color-border-subtle)}.owed-row .nm{flex:1;min-width:0;font-weight:var(--fw-label)}.owed-row .mt{font-size:var(--text-sm);color:var(--color-text-tertiary)}.owed-row:is(:hover,:focus-visible) .nm{text-decoration:underline}.work-edited{margin:0 0 var(--space-4)}.warn-t{color:var(--color-caution)}.shelf{display:flex;flex-direction:column;gap:var(--space-5);margin:var(--space-7) 0 var(--space-6)}.shelf-g{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.shelf-k{flex:0 0 5.5rem}.shelf-b{display:flex;flex-direction:column;gap:2px;max-width:18rem;padding:var(--space-3) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-cutout);color:var(--color-text-secondary);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-2),background var(--dur-2),color var(--dur-2)}.shelf-b:is(:hover,:focus-visible){color:var(--color-text);background:var(--color-key-hover)}.shelf-b.on{border-color:var(--color-accent);background:var(--color-raised-solid);color:var(--color-text)}.shelf-b .nm{font-size:var(--text-sm);font-weight:var(--fw-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-b .mt{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary)}.shelf-b.done .nm{color:var(--color-text-tertiary)}.shelf-b.done .nm:before{content:"✓ ";color:var(--color-success)}.ide-bar .pill{flex:0 0 auto}.ide-from{margin:var(--space-2) 0 var(--space-5)}.field.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}@media (max-width: 560px){.three{grid-template-columns:1fr}}.copy-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.copy-row .field.small{max-width:16rem}.copy-row .fine{flex:1 1 100%}.map-day .slot.back{color:var(--color-accent)}
