html{color-scheme:dark}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{position:absolute;left:8px;top:-100px;z-index:100;padding:8px 12px;background:var(--bg);color:var(--accent);border:1px solid var(--accent);text-decoration:underline}.skip-link:focus{top:8px}.site-content{display:contents}.site-content:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.fine a,.lesson-text p a,.site-footer p a{text-decoration:underline;text-underline-offset:2px}.site{display:flex;flex-direction:column;min-height:100vh}.site-nav{justify-content:space-between;flex-shrink:0}.site-nav .title{margin-right:0;background:none;border:0;padding:4px 6px;font-size:var(--type-sm);font-weight:inherit;color:var(--text);text-decoration:none}.site-nav .title:focus-visible,.site-nav .title:hover{color:var(--hover-edge);text-decoration:none}.site-nav .nav-wide{display:flex;gap:var(--space-4)}.site-nav .nav-wide a{background:none;color:var(--text);border:0;padding:4px 6px;font-size:var(--type-sm);text-transform:lowercase;text-decoration:none}.site-nav .nav-wide a:before{content:"[ "}.site-nav .nav-wide a:after{content:" ]"}.site-nav .nav-wide a:focus-visible:after,.site-nav .nav-wide a:focus-visible:before,.site-nav .nav-wide a:hover:after,.site-nav .nav-wide a:hover:before{color:var(--hover-edge)}.site-nav .nav-wide .nav-label{display:inline-block}.site-nav .nav-wide .nav-label:first-letter{color:var(--action)}.site-nav .nav-wide .nav-label:first-letter,.site-nav .nav-wide a.on .nav-label,.site-nav .nav-wide a:hover .nav-label{text-decoration:underline;text-underline-offset:3px}.site-nav .nav-wide a.on .nav-label{color:var(--action)}.site-page{width:100%;max-width:1120px;margin:0 auto;padding:24px 24px 40px}.site-page h1,.site-page h2{margin:0}.site-page h3{margin:0 0 6px;font-weight:var(--weight-strong)}.site-page p{margin:0}.site-page code{font-family:var(--mono);font-size:var(--type-sm);background:var(--bg);padding:0 .25em}:where(.site-page) .mark-code{white-space:nowrap}.site-page .doc-code code,.site-page .doc-example code,.site-page .editor code,.site-page .hero-code code,.site-page pre code{color:inherit;background:none;padding:0}.cursor{position:relative;display:inline-block;font-family:var(--mono);margin-left:4px;width:1ch;height:.74em;height:1cap;vertical-align:baseline;top:.06em}.cursor:before{content:"";position:absolute;left:.0526em;bottom:0;width:.5em;height:100%;background:currentColor;animation:cursor-on 2s steps(1) infinite}.cursor:after{content:"_";position:absolute;left:0;bottom:0;line-height:1;animation:cursor-off 2s steps(1) infinite}@keyframes cursor-on{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes cursor-off{0%,50%{opacity:0}51%,to{opacity:1}}@media (prefers-reduced-motion:reduce){.cursor:after,.cursor:before{animation:none}.cursor:after{opacity:0}}.hero-rain{position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:0;display:flex;gap:0;align-items:flex-start;overflow:hidden;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.3;filter:blur(1.08px);-webkit-mask-image:linear-gradient(180deg,transparent,#000 9%);mask-image:linear-gradient(180deg,transparent,#000 9%)}.hero-rain-col{flex:none;width:1em;font-size:var(--type-md);line-height:1.08;animation-iteration-count:1;animation-fill-mode:both;will-change:transform}.hero-rain-loop{writing-mode:vertical-rl;-webkit-text-orientation:upright;text-orientation:upright;white-space:pre;animation-iteration-count:infinite;animation-fill-mode:backwards;will-change:transform}@keyframes hero-rain-a{0%{transform:translateY(-50%);animation-timing-function:steps(32)}22.2222%{transform:translateY(-37.5%);animation-timing-function:steps(32)}33.3333%{transform:translateY(-25%);animation-timing-function:steps(32)}77.7778%{transform:translateY(-12.5%);animation-timing-function:steps(32)}to{transform:translateY(0)}}@keyframes hero-rain-b{0%{transform:translateY(-50%);animation-timing-function:steps(32)}11.1111%{transform:translateY(-37.5%);animation-timing-function:steps(32)}33.3333%{transform:translateY(-25%);animation-timing-function:steps(32)}55.5556%{transform:translateY(-12.5%);animation-timing-function:steps(32)}to{transform:translateY(0)}}@keyframes hero-rain-c{0%{transform:translateY(-50%);animation-timing-function:steps(32)}50%{transform:translateY(-37.5%);animation-timing-function:steps(32)}62.5%{transform:translateY(-25%);animation-timing-function:steps(32)}75%{transform:translateY(-12.5%);animation-timing-function:steps(32)}to{transform:translateY(0)}}@keyframes hero-rain-d{0%{transform:translateY(-50%);animation-timing-function:steps(64)}80%{transform:translateY(-25%);animation-timing-function:steps(64)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-rain-col,.hero-rain-loop{animation:none}}.home .hero>:not(.hero-rain){position:relative;z-index:1}.auth-main{position:relative}.auth-main>:not(.hero-rain){position:relative;z-index:1}.auth-main .hero-rain{position:fixed;inset:0;left:0;width:100vw;transform:none;opacity:.34}#what-it-does{scroll-margin-top:80px}.scroll-cue{align-self:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);background:none;border:0;padding:6px 10px;cursor:pointer;color:var(--dim);font:inherit;font-size:var(--fs-lede);letter-spacing:.04em}.scroll-cue:hover{color:var(--hover-edge)}.scroll-cue svg{width:34px;height:34px;stroke-width:2}.scroll-chev{display:block;animation:cue-bounce 1.6s ease-in-out infinite}@keyframes cue-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.scroll-chev{animation:none}}.kicker{color:var(--accent);font-family:var(--ui);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;font-weight:var(--weight-ui)}.lede{color:var(--text);font-size:var(--type-md);max-width:62ch}.dim,.fine{color:var(--dim)}.fine{font-family:var(--ui);font-size:var(--type-xs)}.btn{display:inline-flex;align-items:center;gap:var(--space-3);background:var(--bg);border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);color:var(--text);font-size:var(--type-sm);padding:7px 13px}.btn:hover{border-color:var(--hover-edge);color:var(--hover-edge);text-decoration:none}.btn span{color:var(--dim);font-family:var(--ui);font-size:var(--type-xs)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.maintenance{position:relative;min-height:100vh;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:var(--bg)}.maintenance .hero-rain{opacity:.42}.maintenance-copy{position:relative;z-index:1;display:grid;grid-gap:var(--space-5);gap:var(--space-5);justify-items:center;text-align:center;padding:var(--space-7)}.maintenance-copy h1{margin:0;font-size:clamp(22px,4vw,40px);font-weight:var(--weight-strong);letter-spacing:-.02em}.maintenance-name{margin:0;font-family:var(--ui);font-size:var(--fs-small);letter-spacing:.08em;color:var(--dim)}.maintenance-version{margin-top:18px}.hero{padding:12px 0 16px}.hero-copy{display:grid;grid-gap:var(--space-5);gap:var(--space-5);justify-items:start}.hero-copy .actions{margin-top:6px}.embed{border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);overflow:hidden;background:var(--bg)}.embed iframe{display:block;width:100%;height:740px;border:0;background:var(--bg)}.embed.hero-embed{height:740px;display:flex;flex-direction:column;margin-inline:calc(50% - 50vw);border-inline:0}.site{overflow-x:clip}.embed.hero-embed>.app,.embed.hero-embed>.loading,.embed.hero-embed>.picker-busy{flex:1 1;min-height:0}.embed.hero-embed>noscript{flex:1 1;min-height:0;overflow:auto}.embed-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:8px 2px 0;color:var(--dim);font-family:var(--ui);font-size:var(--type-xs)}.embed-full{flex:1 1 auto;min-height:0;display:flex}.embed-full iframe{flex:1 1;width:100%;border:0;background:var(--bg)}.site-section{border-top:1px solid var(--box-edge);margin-top:28px;padding-top:18px}.site-section-head{display:grid;grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:16px}.site-section-head p{color:var(--dim);font-size:var(--type-sm);line-height:1.5;max-width:650px}.features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-7);gap:var(--space-7);margin-bottom:14px}.feature{border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);padding:16px 18px;display:flex;flex-direction:column;gap:var(--space-4)}.feature h3{margin:0;font-size:var(--type-md);font-weight:var(--weight-strong);display:flex;align-items:center;gap:var(--space-5)}.feature h3 svg{flex:none;color:var(--accent)}.feature p,.feature-soon h3 svg{color:var(--dim)}.feature p{font-size:var(--type-sm);line-height:1.55;max-width:62ch}.feature-wide{grid-column:1/-1}.feature h3 a{color:var(--text)}.feature h3 a:hover{color:var(--accent)}.feature-count{margin-left:auto;color:var(--text);font-family:var(--mono);font-size:var(--type-xs);font-weight:var(--weight-body)}.cat-list{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px 14px;gap:6px 14px}.cat-list li{display:flex;align-items:baseline;gap:var(--space-4);padding:2px 0;border-bottom:1px solid transparent}.cat-list a{flex:1 1 auto;min-width:0;font-size:var(--type-sm);color:var(--text);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.cat-list a:hover{color:var(--accent);text-decoration:none}.cat-count{flex:none;color:var(--dim);font-family:var(--mono);font-size:var(--type-xs)}@media (max-width:760px){.cat-list{grid-template-columns:1fr}}.feature-soon{border-style:dashed}.feature-soon h3{color:var(--text)}.start-or{margin-top:26px;display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.start-or h3{margin:0;font-size:var(--type-md);font-weight:var(--weight-strong)}.starts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--space-7);margin-top:16px}.start-card{border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);padding:14px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.start-card h4{margin:0;font-size:var(--type-sm);font-weight:var(--weight-strong)}.start-card p{flex:1 1 auto;color:var(--dim);font-size:var(--type-sm);line-height:1.5}@media (max-width:760px){.features,.starts{grid-template-columns:1fr}}.snips{display:grid;grid-gap:var(--space-7);gap:var(--space-7)}.snip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);grid-gap:8px 24px;gap:8px 24px;align-items:start}.snip .editor,.snip>.btn,.snip>.runnable,.snip>a{grid-column:2}.snip p{color:var(--dim);font-size:var(--type-sm);line-height:1.5;margin-bottom:10px}.snip .editor{margin-bottom:8px}.site-code .hl-layer{overflow-x:auto}.site-code .line-nums div{min-width:2ch}.section-chips{display:flex;flex-wrap:wrap;gap:var(--space-4)}.site-footer{border-top:1px solid var(--box-edge);margin-top:32px;padding-top:18px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:16px 32px;gap:16px 32px;color:var(--dim);font-size:var(--type-sm);line-height:1.5}.site-footer strong{color:var(--text);font-weight:var(--weight-ui)}.site-footer ul{list-style:none;margin:0 0 10px;padding:0;display:flex;gap:var(--space-6)}@media (max-width:900px){.hero{flex-direction:column;align-items:flex-start}.embed iframe,.embed.hero-embed{height:640px}.site-footer,.snip{grid-template-columns:1fr}.snip .editor,.snip>.btn,.snip>.runnable,.snip>a{grid-column:1}}.auth-main{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding-top:clamp(20px,5vh,56px)}.auth-brand{margin:0;font-size:var(--type-md);font-weight:var(--weight-strong)}.site-page .auth-brand a{color:var(--text);text-decoration:none}.site-page .auth-brand a:hover{color:var(--accent)}.auth-foot{margin-top:auto;padding-top:32px;font-size:var(--type-sm)}.auth-foot,.auth-foot a{color:var(--dim)}.auth-foot a:hover{color:var(--text)}.auth-card{width:100%;max-width:400px;margin:clamp(16px,3vh,32px) auto 0;padding:26px 24px 22px;border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);display:grid;grid-gap:var(--space-6);gap:var(--space-6);font-size:var(--fs-body)}.auth-card h1{margin:0 0 6px;text-align:center;font-size:var(--type-2xl);letter-spacing:-.02em;line-height:1.2}.auth-card h1,.auth-field{font-weight:var(--weight-strong)}.auth-field{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.auth-input,.auth-pass{display:block;width:100%;min-height:44px;border:var(--edge);box-shadow:var(--lift);background:var(--bg);color:var(--text);font:inherit;font-weight:var(--weight-ui);padding:9px 12px;border-radius:0}.auth-input:focus-visible,.auth-pass:focus-within{outline:none;border-color:var(--action)}.auth-pass{display:flex;align-items:stretch;padding:0}.auth-pass input{flex:1 1;min-width:0;border:0;outline:none;background:none;color:inherit;font:inherit;padding:9px 12px}.auth-eye{all:unset;display:inline-flex;align-items:center;padding:0 12px;color:var(--dim);cursor:pointer}.auth-eye:focus-visible,.auth-eye:hover,.auth-eye[aria-pressed=true]{color:var(--text)}.auth-eye:focus-visible{outline:1px solid var(--action);outline-offset:-1px}.auth-hint{color:var(--dim);font-size:var(--type-sm);font-weight:var(--weight-body)}.auth-error{margin:0;padding:0}.auth-submit{width:100%;min-height:44px;margin-top:6px;border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);font:inherit}.auth-submit .key{color:inherit}.auth-other .key,.auth-submit .key{text-decoration:underline;text-underline-offset:3px}.auth-other .key{color:var(--action)}.auth-other{margin:10px 0 0;text-align:center;font-weight:var(--weight-strong)}.site-page .auth-other a{color:var(--text);text-decoration:none;white-space:nowrap}.auth-other a:before{content:"[ "}.auth-other a:after{content:" ]"}.site-page .auth-other a:hover{color:var(--hover-edge)}.auth-forgot{margin-top:0;font-weight:var(--weight-body);font-size:var(--type-sm);color:var(--dim)}.auth-said{margin:0}.auth-note,.auth-said{text-align:center;line-height:1.5}.auth-note{margin:4px 0 0;color:var(--dim);font-size:var(--type-sm)}.auth-page{max-width:420px}.hero-copy button.btn{cursor:pointer;font-family:inherit}.hero-copy button.btn:disabled{color:var(--dim);border-color:var(--box-edge);cursor:default}.projects{padding:0 0 48px}.projects h2{margin:28px 0 8px;font-size:var(--head-size);font-weight:var(--weight-strong);letter-spacing:var(--head-track);text-transform:uppercase;color:var(--dim)}.project-tag.pending{color:var(--action);border-color:var(--action)}.project-tag.failed{color:var(--warn);border-color:var(--warn)}.project-tag.named{color:var(--good);border-color:var(--good)}.preamble{display:grid;grid-gap:var(--space-5);gap:var(--space-5);margin-bottom:22px}.preamble-text{width:100%;font-family:var(--mono);font-size:var(--fs-small);line-height:1.55;padding:10px 12px;background:var(--bg);color:var(--text);border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);resize:vertical}.preamble-default pre{white-space:pre-wrap;font-size:var(--fs-small);color:var(--dim);border-left:2px solid var(--panel-edge);padding-left:12px;margin:8px 0 0}.import-ask{display:grid;grid-template-columns:auto 1fr;grid-gap:var(--space-4);gap:var(--space-4);align-items:start;margin-top:14px;font-size:var(--fs-small);line-height:1.5;cursor:pointer}.project-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-6)}.project-rows li{display:flex;align-items:center;gap:var(--space-5)}.project-open{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--space-1);color:inherit;text-decoration:none}.project-open:hover .project-name{text-decoration:underline}.project-name{font-weight:var(--weight-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-acts{flex:none;gap:var(--space-3)}.project-acts:focus-within,.project-rows li:hover .project-acts{opacity:1}.project-acts button{font-family:var(--ui);font-size:var(--type-xs);padding:3px 8px;color:var(--dim);background:none;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);cursor:pointer}.project-acts button:hover{color:var(--text)}.picker-busy,.picker-error{padding:var(--space-7);font-family:var(--ui);font-size:var(--type-sm);color:var(--err)}.loading{display:grid;place-content:center;justify-items:center;align-content:center;grid-gap:var(--space-6);gap:var(--space-6);padding:var(--space-7);min-height:100%;width:100%;box-sizing:border-box;text-align:center;font-family:var(--ui);font-size:var(--type-md);letter-spacing:.12em;color:var(--dim)}.doc-head{display:grid;justify-items:start;grid-gap:var(--space-4);gap:var(--space-4)}.doc-head h1{max-width:34ch;text-wrap:balance}.doc-contents{display:flex;flex-wrap:wrap;margin:22px 0 4px;padding:var(--space-6);background:var(--bg);box-shadow:var(--lift)}.doc-chip,.doc-contents{gap:var(--space-3);border:var(--edge);border-radius:var(--radius)}.doc-chip{display:inline-flex;align-items:baseline;padding:4px 9px;box-shadow:var(--lift-sm);color:var(--text);font-size:var(--type-sm);text-decoration:none}.doc-chip:hover{border-color:var(--accent);color:var(--accent)}.doc-chip-n{color:var(--dim);font-family:var(--mono);font-size:var(--type-xs)}.doc-chip:hover .doc-chip-n{color:var(--accent)}.doc-section{border-top:1px solid var(--box-edge);margin-top:26px;padding-top:18px;scroll-margin-top:16px}.doc-intro{border-top:0;margin-top:18px;padding-top:0}.doc-section h2{display:flex;align-items:baseline;gap:var(--space-5);margin-bottom:14px;font-size:var(--type-lg)}.doc-section-n{color:var(--accent);font-family:var(--mono);font-size:var(--type-sm)}.doc-flow{display:grid;grid-gap:var(--space-5);gap:var(--space-5)}.doc-flow>p,.doc-list{max-width:74ch}.doc-code,.doc-table-wrap{max-width:100ch}.doc-flow p{color:var(--text)}.doc-list{display:grid;grid-gap:var(--space-3);gap:var(--space-3);margin:0;padding-left:18px}.doc-rule{width:100%;height:1px;margin:2px 0;border:0;background:var(--panel-edge)}.doc-code{margin:0;padding:12px 14px;overflow-x:auto;background:var(--bg);border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);border-left:2px solid var(--accent);font-family:var(--mono);font-size:var(--type-sm);line-height:1.6;-moz-tab-size:2;tab-size:2}.doc-code code{font-size:inherit}.doc-table-wrap{overflow-x:auto}.doc-table{width:100%;border-collapse:collapse;font-size:var(--type-sm)}.doc-table td,.doc-table th{padding:7px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--box-edge)}.doc-table th{color:var(--dim);font-weight:var(--weight-ui);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;white-space:nowrap}.doc-table tr:last-child td{border-bottom:0}.doc-table code{white-space:nowrap}.doc-source{margin-top:26px;padding-top:14px;border-top:1px solid var(--box-edge);font-size:var(--type-sm)}.runnable{max-width:100ch;border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);border-left:2px solid var(--accent);overflow:hidden;background:var(--bg)}.runnable.has-error{border-left-color:#e0806f}.runnable-editor{border:0;background:transparent;overflow-x:auto}.runnable-editor .cell-input{resize:none;overflow:hidden}.runnable-bar{display:flex;align-items:center;gap:var(--space-5);padding:6px 10px;border-top:1px solid var(--box-edge);background:var(--panel);font-size:var(--type-xs)}.runnable-play{min-width:68px;padding:3px 10px;background:transparent;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);color:var(--text);font-family:var(--ui);font-size:var(--type-xs);cursor:pointer}.runnable-play:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.runnable-play:disabled{opacity:.4;cursor:default}.runnable-stat{color:var(--dim);font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.runnable.has-error .runnable-stat{color:#e0806f}.runnable-hint,.runnable-reset{margin-left:auto;color:var(--dim)}.runnable-reset{padding:3px 10px;background:transparent;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);font-size:var(--type-xs);cursor:pointer}.runnable-reset:hover{border-color:var(--accent);color:var(--accent)}.runnable-errors,.runnable-out{margin:0;padding:8px 12px 10px 28px;border-top:1px solid var(--box-edge);font-family:var(--mono);font-size:var(--type-xs);line-height:1.6}.runnable-errors{color:#e0806f}.runnable-out{color:var(--dim)}.runnable-score{border-top:1px solid var(--box-edge);background:var(--bg)}.runnable-score-scroll{overflow-x:auto;scrollbar-width:none}.runnable-score-scroll::-webkit-scrollbar{display:none}.runnable-score-wait{padding:var(--space-6);border-top:1px solid var(--box-edge)}.runnable-score-toggle,.runnable-score-wait{color:var(--dim);font-family:var(--ui);font-size:var(--type-xs)}.runnable-score-toggle{padding:3px 10px;background:transparent;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);cursor:pointer}.runnable-score-toggle.on,.runnable-score-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.runnable-score-toggle:disabled{opacity:.4;cursor:default}.runnable-run{padding:3px 12px;background:transparent;border:1px solid var(--accent);color:var(--accent);font-family:var(--ui);font-size:var(--type-xs);cursor:pointer}.runnable-slow{margin:0;padding:8px 12px;border-top:1px solid var(--box-edge);color:var(--dim);font-size:var(--type-xs);line-height:1.6}.lesson-count{opacity:.7;margin:.2rem 0 1.2rem}.lesson-group{margin:1.6rem 0 0}.lesson-fold{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:0;padding:.2rem 0;color:inherit;font:inherit;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8;cursor:pointer;text-align:left}.lesson-fold:hover{opacity:1}.lesson-caret{width:.8em}.lesson-tally{letter-spacing:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text);opacity:.85}.lesson-list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));grid-gap:var(--space-6);gap:var(--space-6)}.lesson-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;grid-gap:.8rem;gap:.8rem;padding:.6rem .7rem;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius)}.lesson-row:hover{border-color:var(--hover-edge)}.lesson-row.done .lesson-title{opacity:.55}.lesson-check{cursor:pointer}.lesson-link{display:grid;grid-gap:var(--space-3);gap:var(--space-3);text-decoration:none;color:inherit;min-width:0}.lesson-title{font-weight:var(--weight-ui)}.lesson-blurb{font-size:.86rem;opacity:.66}.lesson-act{background:none;border:1px solid transparent;color:inherit;cursor:pointer;font-size:.95rem;line-height:1;opacity:.45;padding:.2rem .4rem}.lesson-act.on,.lesson-act:hover{opacity:1;border-color:var(--box-edge)}.doc-crumb{color:var(--dim);font-size:.88rem}.doc-page-head{display:grid;justify-items:start;grid-gap:var(--space-5);gap:var(--space-5);margin-bottom:8px}.site-page h1 .doc-sigil{font-size:var(--type-lg);margin-right:10px}.doc-notes{margin:0;padding-left:18px;display:grid;grid-gap:var(--space-2);gap:var(--space-2);color:var(--dim);max-width:70ch}.doc-example{margin:1.8rem 0}.doc-example h2{font-size:.95rem;font-weight:var(--weight-strong);margin-bottom:.5rem}.doc-played{font-family:var(--mono);font-size:var(--type-xs);color:var(--dim);margin-top:6px}.doc-nav{display:flex;justify-content:space-between;gap:1rem;margin:2.5rem 0 1rem}.proj-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));grid-gap:.6rem;gap:.6rem;margin:1.5rem 0 2.2rem}.proj-way{display:grid;grid-gap:.25rem;gap:.25rem;align-content:start;padding:.85rem 1rem;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);text-decoration:none;color:inherit}.proj-way:hover{background:rgba(127,127,160,.09);border-color:var(--box-edge)}.proj-way-title{font-weight:var(--weight-ui)}.proj-way-what{font-size:.87rem;opacity:.66}.proj-starters{margin:2.5rem 0 1rem}.proj-starters h2{font-size:var(--head-size);letter-spacing:var(--head-track);text-transform:uppercase;opacity:.62;font-weight:var(--weight-strong)}.proj-starters-lede{opacity:.7;margin:.2rem 0 1rem}.proj-starter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));grid-gap:.6rem;gap:.6rem}.proj-starter{display:grid;grid-gap:.4rem;gap:.4rem;align-content:start;padding:.9rem 1rem;border:1px solid var(--box-edge);text-decoration:none;color:inherit}.proj-starter:hover{background:rgba(127,127,160,.09);border-color:var(--box-edge)}.proj-starter-title{font-weight:var(--weight-ui)}.proj-starter-what{font-size:.87rem;opacity:.66}.proj-starter-peek{white-space:pre;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;line-height:1.5;opacity:.55;padding:.5rem .6rem;background:rgba(127,127,160,.08)}.project-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;grid-gap:1rem;gap:1rem;margin:1.8rem 0 .8rem}.project-head>.project-filter{grid-column:2}.project-head h2{font-size:var(--head-size);letter-spacing:var(--head-track);text-transform:uppercase;opacity:.62;margin:0;font-weight:var(--weight-strong)}.project-filter{background:rgba(127,127,160,.08);border:1px solid var(--box-edge);color:inherit;font:inherit;font-size:.86rem;padding:.25rem .5rem;min-width:12rem}.project-row{display:flex;align-items:center;gap:.75rem;padding:12px 16px;background:var(--bg);border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius)}.project-row:hover{border-color:var(--hover-edge);border-color:var(--box-edge)}.project-star{flex:none;padding:0 2px;font-size:var(--type-lg);line-height:1;color:var(--dim);background:none;border:0;cursor:pointer;opacity:.45}.project-row:hover .project-star,.project-star:focus-visible{opacity:1}.project-row.starred .project-star{color:#e6b450;opacity:1}.project-meta{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.project-tag{border:1px solid var(--box-edge);border-radius:var(--radius-full);padding:0 .45rem;font-size:.74rem;opacity:.85}.project-tag.local{opacity:.6}.project-acts{margin-left:auto;display:flex;gap:.35rem;opacity:0;transition:opacity .12s ease}.project-row:focus-within .project-acts,.project-row:hover .project-acts{opacity:1}@media (hover:none){.project-acts{opacity:1}}.import-drop{display:grid;justify-items:center;grid-gap:.6rem;gap:.6rem;padding:2.5rem 1rem;margin:1.5rem 0;border:1px dashed var(--box-edge);text-align:center}.import-drop.over{border-color:var(--box-edge);background:rgba(127,127,160,.1)}.import-drop p{margin:0}.import-busy,.import-error{margin:.5rem 0}.import-error{color:#e0806e}.import-done{margin:2rem 0}.import-done h2{font-weight:var(--weight-strong)}.admin-head,.import-done h2{font-size:var(--head-size);letter-spacing:var(--head-track);text-transform:uppercase;opacity:.62}.admin-head{margin:2rem 0 .6rem;font-weight:var(--weight-ui)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));grid-gap:.6rem;gap:.6rem}.stat{display:grid;grid-gap:.15rem;gap:.15rem;padding:.8rem 1rem;border:1px solid var(--box-edge)}.stat-value{font-size:1.6rem;font-weight:var(--weight-ui);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.stat-label{font-size:.82rem;opacity:.7}.stat-note{font-size:.74rem;opacity:.5}.spark{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.spark li{display:grid;grid-template-columns:6rem 1fr auto;align-items:center;grid-gap:.6rem;gap:.6rem;font-size:.82rem}.spark-day{opacity:.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.spark-bar{height:10px;min-width:2px;background:rgba(127,150,200,.55)}.spark-n{opacity:.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.modal-scrim{position:fixed;inset:0;z-index:50;display:grid;place-items:start center;padding:6vh 1rem 2rem;overflow-y:auto;background:rgba(8,8,12,.66)}.modal{width:min(42rem,100%);background:var(--bg,#14141a);border:1px solid var(--box-edge);padding:1.1rem 1.3rem 1.4rem;box-shadow:var(--lift);border-radius:var(--radius)}.modal:focus{outline:none}.modal-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.modal-head h2{margin:0;font-size:1.1rem}.modal-close{background:none;border:0;color:inherit;font-size:1.4rem;line-height:1;opacity:.6;cursor:pointer;padding:0 .2rem}.modal-close:hover:not(:disabled){opacity:1}.project-page.empty{display:flex;flex-direction:column}.project-page .empty-toolbar{flex:0 0 auto;min-height:0}.empty-workspace-gone{margin:0 0 1rem;color:var(--warn);font-size:.95rem}.empty-workspace{flex:1 1 auto;display:grid;place-content:center;text-align:center;padding:3rem 1rem}.empty-workspace-say{margin:0 0 .5rem;font-size:1.15rem}.empty-workspace .fine{max-width:34rem;margin:0;justify-self:center}.new-project-modal .proj-ways{margin-top:1rem}.modal-acts{display:flex;align-items:center;gap:.6rem}.modal-back{background:none;border:0;color:inherit;font:inherit;opacity:.7;cursor:pointer}.modal-back:hover{opacity:1}button.proj-way{font:inherit;text-align:left;cursor:pointer;background:none}.account-menu{position:relative;display:inline-flex}.account-button{max-width:12rem}.account-pop{min-width:13rem;width:auto}.account-page{max-width:720px}.account-who strong{font-weight:var(--weight-ui);overflow-wrap:anywhere}.account-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:var(--space-5);gap:var(--space-5);width:100%}.account-stats .stat{border:var(--edge);padding:12px 14px;display:grid;grid-gap:var(--space-2);gap:var(--space-2);min-width:0}.account-stats .stat b{font-size:var(--type-xl);font-weight:var(--weight-strong);line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.account-stats .stat span{color:var(--dim);font-size:var(--type-sm);line-height:1.4}.account-action{display:grid;grid-gap:var(--space-3);gap:var(--space-3);justify-items:start}.account-said.ok{color:var(--text)}.account-said.bad{color:#e0806f}.account-page .admin-table-wrap{width:100%}.credit-form{display:grid;grid-template-columns:minmax(200px,2fr) minmax(100px,1fr) minmax(160px,2fr);grid-gap:12px 16px;gap:12px 16px;align-items:end;width:100%;margin:12px 0 8px}.credit-form .actions{grid-column:1/-1}.credit-filter{max-width:320px;margin:0 0 10px}.workspace-or{margin-top:28px}.workspace-import{margin:10px 0 0;max-width:26rem}.credit-table td.num,.credit-table td.when{white-space:nowrap}@media (max-width:640px){.credit-form{grid-template-columns:1fr}}.pw-form{display:grid;grid-gap:.7rem;gap:.7rem;max-width:24rem;margin:.6rem 0 0}.pw-form label{display:grid;grid-gap:.25rem;gap:.25rem}.pw-form label span{font-size:.86rem;opacity:.75}.pw-form input{font:inherit;color:inherit;background:rgba(127,127,160,.08);border:1px solid var(--box-edge);padding:.4rem .55rem}.pw-form input:focus{outline:2px solid rgba(127,150,200,.5);outline-offset:1px}.pw-ok{color:#7fc9a0}.admin-more{float:right;text-transform:none;letter-spacing:0;font-size:.82rem}.btn.ghost{background:transparent;opacity:.8}.btn.ghost:hover{opacity:1}.queue{list-style:none;padding:0;margin:0;gap:.9rem}.queue,.queue-row{display:flex;flex-direction:column}.queue-row{border:1px solid var(--box-edge);padding:.85rem 1rem;gap:.5rem}.queue-row.approved,.queue-row.denied{opacity:.62}.queue-head{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.queue-status-pending{border-color:rgba(210,160,60,.6);opacity:1}.queue-status-approved{border-color:rgba(80,170,110,.6);opacity:1}.queue-status-denied{border-color:rgba(190,90,90,.6);opacity:1}.queue-note{margin:0;white-space:pre-wrap}.queue-verdict{font:inherit;padding:.4rem .5rem;background:transparent;color:inherit;resize:vertical}.queue-shot,.queue-verdict{width:100%;border:1px solid var(--box-edge)}.queue-shot{height:auto;background:#fff}.link-button{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}.link-button:disabled{opacity:.5;cursor:default}.site:has(>.project-page){height:100vh;overflow:hidden}.embed.hero-embed>.app,.project-page>.app{container-type:size}.site .tray{max-height:calc(var(--app-h, 100vh) * .46)}.site .tray-sheet-views{height:calc(var(--app-h, 100vh) * .32);max-height:calc(var(--app-h, 100vh) * .32)}.site .sheet-music-canvas-wrap{height:clamp(150px,calc(var(--app-h, 100vh) * .28),250px)}.site .notebook{padding-bottom:calc(var(--app-h, 100vh) * .45)}.site .docedit{padding-bottom:calc(var(--app-h, 100vh) * .3)}.project-page{flex:1 1;min-height:0;display:flex;flex-direction:column}.project-page>*{flex:1 1;min-height:0}.project-page>.loading{min-height:40vh}.embed.hero-embed>.app,.project-page>.app{height:auto}.project-page>noscript{overflow:auto}.project-page .site-page{display:flex;flex-direction:column;gap:var(--space-5)}.signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));grid-gap:.5rem;gap:.5rem;margin-bottom:.6rem}.signal{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .65rem;border:1px solid var(--box-edge);background:rgba(127,127,160,.06)}.signal-name{font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;opacity:.65;font-weight:var(--weight-ui)}.signal-value{font-size:1.35rem;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.signal-value em{font-style:normal;font-size:.7rem;opacity:.55;margin-left:.3rem}.signal-fine{font-size:.68rem;opacity:.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.signal-good .signal-value{color:#6fcf8f}.signal-warn .signal-value{color:#e0b062}.signal-bad .signal-value{color:#f07878}.spark{display:block;width:100%;height:38px;margin:2px 0 1px;overflow:hidden}.spark path{stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85}.spark-good{color:#6fcf8f}.spark-warn{color:#e0b062}.spark-bad{color:#f07878}.spark-legend{display:flex;flex-wrap:wrap;gap:0 10px;font-size:.62rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.75}.spark-key{white-space:nowrap}.log-controls{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.log-stream{height:22rem;overflow-y:auto;overflow-x:auto;background:#0e0e13;border:1px solid var(--box-edge);padding:.5rem .6rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.55;color:#c8c8d4}.log-line{display:flex;gap:.55rem;white-space:pre}.log-time{opacity:.45}.log-level{width:3.2rem;flex:0 0 auto;opacity:.7}.log-pod{width:3.4rem;flex:0 0 auto;opacity:.45}.log-at{width:11rem;flex:0 0 auto;color:#8fb7e8}.log-rest{flex:1 1 auto}.log-warn .log-level{color:#e0b062;opacity:1}.log-error .log-level,.log-error .log-rest{color:#f08a8a;opacity:1}.log-raw .log-rest{opacity:.7}.embed{position:relative}.sankey-wrap{overflow-x:auto;border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);padding:10px 6px;margin-bottom:14px}.sankey-wrap svg{display:block;min-width:720px}.contact-form{display:grid;grid-gap:var(--space-2);gap:var(--space-2);max-width:34rem;margin-top:8px}.contact-form label{font-size:var(--type-xs);color:var(--dim);margin-top:6px}.contact-form input,.contact-form textarea{background:var(--bg);border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);color:var(--text);font:inherit;font-size:var(--type-sm);padding:7px 9px;width:100%}.contact-form textarea{resize:vertical;min-height:74px;line-height:1.5}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.contact-count{margin:2px 0 0}.contact-error{color:#e6a5a5;font-size:var(--type-sm);margin:2px 0 0}.contact-actions{display:flex;align-items:center;gap:var(--space-5);margin-top:10px}.contact-sent{color:var(--text);font-size:var(--type-sm);margin-top:8px}.contact-queue{display:grid;grid-gap:var(--space-5);gap:var(--space-5);margin:14px 0 24px}.contact-row{border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);padding:12px 14px;display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.contact-new{border-left:3px solid var(--accent)}.contact-answered,.contact-closed{opacity:.72}.contact-row header{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-5)}.contact-status{margin-left:auto;font-family:var(--ui);font-size:var(--label-size);text-transform:uppercase;letter-spacing:var(--label-track);color:var(--dim);font-weight:var(--weight-ui)}.contact-status-new{color:var(--accent)}.contact-message{white-space:pre-wrap;font-size:var(--type-sm);line-height:1.55;margin:0}.legal{max-width:44rem}.legal,.legal section{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.legal section{margin-top:22px}.legal h2{font-size:var(--type-lg);font-weight:var(--weight-strong);margin:0}.legal p{line-height:1.6;max-width:62ch}.legal .lede,.legal p,.legal ul{color:var(--text)}.legal ul{margin:0;padding-left:20px;display:grid;grid-gap:var(--space-4);gap:var(--space-4);line-height:1.55;max-width:62ch}.legal strong{color:var(--text);font-weight:var(--weight-ui)}.doc-map{margin-top:26px}.doc-groups{columns:19rem 3;column-gap:var(--space-7);margin-top:16px}.doc-group{page-break-inside:avoid;break-inside:avoid;margin-bottom:24px;border:var(--edge);box-shadow:var(--lift);border-radius:var(--radius);background:var(--bg);padding:14px 16px}.doc-group h3{margin:0 0 8px;font-size:var(--head-size);font-weight:var(--weight-strong);color:var(--dim);text-transform:uppercase;letter-spacing:var(--head-track)}.doc-group ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.doc-group li a{display:grid;grid-template-columns:auto 1fr;grid-gap:6px 10px;gap:6px 10px;padding:7px 8px;color:var(--text)}.doc-group li a:hover{background:var(--panel-edge);text-decoration:none}.doc-group li code{grid-row:1;min-width:0;font-family:var(--mono);font-size:var(--type-xs);white-space:normal;overflow-wrap:break-word}.doc-group .doc-construct-name{grid-row:1;font-size:var(--type-sm);font-weight:var(--weight-ui)}.doc-group .doc-construct-what{grid-column:1/-1;color:var(--dim);font-size:var(--type-sm);line-height:1.7}:root{--fs-small:12px;--fs-body:13px;--fs-lede:15px;--fs-h2:clamp(19px,1.9vw + 11px,27px);--fs-h1:clamp(30px,3.6vw + 13px,54px);--mono:var(--mono-web),"Cascadia Code","Consolas",monospace;--ui:var(--ui-web),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--measure:65ch;--ink:#ececf2;--tap:44px}body{font-family:var(--ui);font-weight:var(--weight-body)}.site-page{font-size:var(--fs-body);line-height:1.6}:where(.site-page) :is(p,li:not([class])){max-width:var(--measure)}:where(.site-page) :is(h1,h2){font-family:var(--ui);font-weight:var(--weight-strong);color:var(--ink);letter-spacing:-.03em;text-wrap:balance}:where(.site-page) h1{font-size:clamp(26px,2.3vw + 15px,40px);line-height:1.12}@media (pointer:coarse){.site :is(input,textarea,select):not(.cell-input){font-size:var(--type-lg)}}:where(.site-page) h2{font-size:var(--fs-h2);line-height:1.15}:where(.site-page) h3{font-size:var(--fs-body);font-weight:var(--weight-strong);line-height:1.35}:where(.site-page) code{font-size:.9em}.lede{font-size:var(--fs-lede);line-height:1.5;max-width:34em}.crumbs,.embed-foot,.fine,.section-note,.site-section-head p{font-family:inherit;font-size:var(--fs-small);color:var(--dim)}.crumbs{margin:0 0 4px}.btn{min-height:var(--tap);padding:0 18px;font-size:var(--fs-body);font-weight:var(--weight-ui)}.btn span{font-family:inherit;font-size:var(--fs-small)}.btn .scroll-label{color:inherit;font-size:inherit}.btn.primary span{color:inherit}.btn:disabled,.hero-copy button.btn:disabled{opacity:.7}.home .hero{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-6);padding:calc(clamp(28px, 6vw, 72px) + 10svh) 0 clamp(28px,4vw,44px);min-height:calc(100svh - 60px)}.home .hero .scroll-cue{margin-top:auto}.home .hero h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.04em;max-width:12ch}.home .hero .actions{gap:var(--space-6);margin-top:4px}@media (min-width:721px){.home .hero{padding-inline:30px}.embed.hero-embed{margin-inline:calc(50% - 50vw + 30px);border-inline:var(--edge)}}.home .site-section{margin-top:clamp(40px,6vw,72px);padding-top:28px}.home .site-section>h2{margin-bottom:22px}.site-page .section-note{margin:-12px 0 28px}.feature,.start-card{background:var(--bg);border-color:var(--box-edge);padding:22px 24px;gap:var(--space-5)}.feature-soon{background:transparent}.feature p,.start-card p{font-size:var(--fs-body);line-height:1.6}.feature h3,.start-card h3{font-size:var(--fs-body);margin:0}.start-card h3 a{color:var(--ink)}.start-card h3 a:hover{color:var(--accent)}.cat-count,.feature-count{font-family:inherit;font-size:var(--fs-small)}.cat-list{gap:0 18px}.cat-list li{padding:0;max-width:none}.cat-list a{font-size:var(--fs-body);display:block;padding:7px 0;min-height:var(--tap);line-height:30px}.starts{gap:var(--space-7);margin-top:0}.hero-preview{flex:1 1;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.hero-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--box-edge)}.hero-preview-title{font-weight:var(--weight-ui);color:var(--ink)}.hero-preview-bar .btn{cursor:pointer;font-family:inherit}.hero-code{flex:1 1;min-height:0;overflow:auto;display:flex;align-items:flex-start}.hero-code .line-nums{position:-webkit-sticky;position:sticky;left:0;background:var(--bg)}.hero-code-text{margin:0;padding:8px 12px;font-family:var(--mono);font-size:var(--code-size,13.5px);line-height:1.5;color:var(--text);white-space:pre}.embed-foot{padding-top:12px}.site-footer{font-size:var(--fs-small);line-height:1.6;gap:24px 40px;padding-top:28px;margin-top:clamp(48px,7vw,88px)}.site-footer ul{flex-wrap:wrap;gap:4px 20px}.site-footer ul a{display:inline-block;padding:10px 0}.site-footer .link-button{padding:10px 0}.contact-form label{font-size:var(--fs-small)}.contact-form input,.contact-form textarea{font-size:var(--fs-body);min-height:var(--tap)}.mobile-nav{display:none;position:relative}.mobile-nav .mobile-nav-btn{min-height:var(--tap);padding:0 26px 0 10px;font-size:var(--fs-body);background-position:right 9px center}.mobile-nav-pop{width:min(86vw,320px);gap:0;z-index:60}.mobile-nav-pop .pick-row{min-height:48px;display:flex;align-items:center;padding:0 14px;font-size:var(--type-lg)}.mobile-nav-pop .pick-row.on{color:var(--accent)}.site-nav .title{font-family:var(--mono);letter-spacing:0}@media (max-width:720px){.site-nav .nav-wide{display:none}.mobile-nav{display:block}.site-nav{padding:8px 16px;min-height:60px}.site-page{padding:8px 16px 40px}.home .hero .actions{display:grid;grid-template-columns:1fr;width:100%}.home .hero .actions .btn{justify-content:center}.embed.hero-embed{height:560px}.hero-preview-bar{padding:8px 12px}.feature,.start-card{padding:var(--space-6)}}@media (pointer:coarse){.app [role=button],.app button,.app select{min-height:24px;min-width:24px}}button,input,select,textarea{font-family:inherit}.site-page .lede{max-width:32em}.feature h3 a,.start-card h3 a{display:inline-block;padding:10px 0;margin:-10px 0}.site-page p a{padding-block:3px}button.btn{cursor:pointer}.site-page p a{text-decoration:underline;-webkit-text-decoration-color:rgba(110,168,254,.5);text-decoration-color:rgba(110,168,254,.5);text-underline-offset:3px}@media (pointer:coarse){.lesson-check{width:24px;height:24px}.lesson-act{min-width:var(--tap)}.lesson-act,.lesson-fold{min-height:var(--tap)}}.not-found{padding-block:clamp(48px,10vw,120px);display:grid;grid-gap:var(--space-6);gap:var(--space-6);justify-items:start}.site-nav .title{display:inline-block;padding-block:12px}.qref-contents{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:8px 0}.qref-contents a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 14px;border:var(--edge);box-shadow:var(--lift-sm);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--fs-small)}.qref-contents a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.qref-group{margin-top:40px}.qref-group h2{margin-bottom:8px}.qref-list{margin:0}.qref-row{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);grid-gap:6px 28px;gap:6px 28px;padding:14px 0;border-top:1px solid var(--box-edge)}.qref-row dt{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--space-3)}.site-page .qref-row dt code{font-size:var(--type-md);padding:3px 8px;white-space:pre}.qref-row dd{margin:0;display:grid;grid-gap:var(--space-3);gap:var(--space-3);max-width:var(--measure)}.qref-name{font-weight:var(--weight-ui);justify-self:start;padding-block:4px}.qref-what{color:var(--dim)}@media (max-width:720px){.qref-row{grid-template-columns:1fr}}.admin-table-wrap{overflow-x:auto;margin:12px 0 20px}.admin-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-table-wrap .admin-table{margin:0}.site-page>.admin-table{margin:12px 0 20px}.admin-table td,.admin-table th{padding:7px 12px 7px 0;text-align:left;vertical-align:top;border-bottom:1px solid var(--box-edge)}.admin-table th{color:var(--dim);font-weight:var(--weight-ui);white-space:nowrap}.admin-table td.num{text-align:right;white-space:nowrap}.admin-table tbody tr:hover{background:var(--panel)}.project-branch{flex:none;align-self:center;background:var(--panel-edge);border:1px solid var(--box-edge);color:var(--text);font:inherit;font-size:var(--fs-small);padding:4px 8px;max-width:11rem}.project-branch:disabled{color:var(--dim)}@media (pointer:coarse){.project-branch{min-height:var(--tap)}}.public-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:18px 0}.project-page>.admin-readonly{flex:0 0 auto}.admin-readonly{margin:0;padding:6px 16px;border-bottom:1px solid #d9a441;background:rgba(217,164,65,.1);color:var(--text);font-size:var(--type-sm)}@keyframes metric-pulse{0%{color:#5ad48a}to{color:inherit}}.live.pulse{animation:metric-pulse 1.6s ease-out}.live-status{margin-top:-.5rem}.admin-head-n{margin-left:.6rem;color:var(--dim);font-size:.72em;font-weight:var(--weight-body);letter-spacing:0;text-transform:none}.metrics-marks{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-top:-.5rem}.metrics-mark-buttons{display:flex;gap:var(--space-3)}.metrics-mark-buttons button{background:var(--input-bg,rgba(127,127,160,.12));color:var(--text);border:1px solid var(--box-edge);padding:4px 10px;font:inherit;font-size:var(--type-sm);cursor:pointer}.metrics-mark-buttons button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.metrics-mark-buttons button:disabled{opacity:.5;cursor:default}.stat-line{display:flex;align-items:baseline;gap:var(--space-4);flex-wrap:wrap}.admin-table td .was{margin-left:8px}.was{color:var(--dim);font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.was.up{color:#d9a441}.was.down{color:#6fd7c4}.new-project-form{display:grid;grid-gap:var(--space-6);gap:var(--space-6);margin-top:12px}.new-project-form label{display:grid;grid-gap:var(--space-3);gap:var(--space-3);font-size:var(--fs-small);color:var(--dim)}.new-project-form input,.new-project-form textarea{font:inherit;font-family:var(--ui);font-size:var(--fs-body);color:var(--text);background:var(--bg);border:var(--edge);padding:8px 10px;width:100%;box-sizing:border-box}.new-project-form textarea{resize:vertical;min-height:5.5em}.new-project-form input[type=search]{-moz-appearance:none;appearance:none;-webkit-appearance:none}.new-project-form input[type=search]::-webkit-search-cancel-button,.new-project-form input[type=search]::-webkit-search-decoration{display:none}.new-project-form input:focus,.new-project-form textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.new-project-form textarea:disabled{opacity:.55}.new-project-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5)}.new-project-acts .fine{margin:0}.new-project-said{margin:0;color:#e0806f}.heat-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,max-content));grid-gap:1.2rem;gap:1.2rem;margin:1rem 0}.heat{margin:0;max-width:17rem}.heat-cap{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:.8rem;font-weight:var(--weight-ui)}.heat-grid{position:relative;display:grid;height:30rem;grid-gap:1px;gap:1px;padding:1px;background:#1a1a1f;border:1px solid #2c2c34;border-radius:var(--radius-sm)}.heat-cell{display:block}.heat-fold{position:absolute;left:0;right:0;height:0;border-top:1px dashed #6fcf8f;pointer-events:none}.heat-fold-label{position:absolute;right:2px;top:2px;color:#6fcf8f;font-size:.6rem;background:rgba(10,10,12,.7);padding:0 3px;border-radius:var(--radius-sm)}.iter-section{scroll-margin-top:12px}.iter-section+.embed.hero-embed{margin-top:72px}.iter-section>.iter-lede,.iter-section>.iter-log,.iter-section>h2{max-width:620px;margin-inline:auto}.iter-section>.iter-lede,.iter-section>h2{text-align:center}.iter-section>.iter-lede{color:var(--dim);font-size:var(--fs-lede);line-height:1.6;margin-top:0;margin-bottom:28px}.iter-log{width:100%}.iter-log>.chat-list{gap:var(--space-5)}.chat-turn.iter-answer{align-self:stretch;max-width:none}.iter-version{margin-top:22px;padding-top:20px;border-top:1px solid var(--box-edge)}.iter-version+.iter-version{margin-top:12px}.iter-version-head{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:8px;color:var(--dim);font-size:var(--type-xs)}.iter-version-note{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iter-step{flex:none;padding:1px 7px;border-radius:var(--radius-full);background:var(--panel-edge);color:var(--accent);font-family:var(--mono);font-size:var(--type-xs)}.iter-play{display:flex;align-items:center;gap:var(--space-5)}.iter-play-btn{flex:none;width:34px;height:34px;min-width:34px;padding:0;border:1px solid var(--box-edge);border-radius:50%;background:var(--panel);color:var(--accent);font-size:var(--type-sm);line-height:1;cursor:pointer}.iter-play-btn:hover{background:var(--panel-edge)}.iter-strip{flex:1 1;min-width:0}.iter-strip-wait{height:44px;background:#14141b;border-radius:var(--radius-sm)}.iter-len{flex:none;color:var(--dim);font-family:var(--mono);font-size:var(--type-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}