*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--page-bg);color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-60px;z-index:100;padding:10px 14px;background:#111;color:#fff;border-radius:6px;font:600 14px/1 system-ui,sans-serif}.skip-link:focus{top:12px}:focus-visible{outline:2px solid var(--focus, var(--accent));outline-offset:3px}pre,code,kbd,.console,.conds,.flow text,input{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}.slide{position:relative;container:slide / inline-size;background:var(--bg);color:var(--fg);overflow:hidden}.slide__inner{--u: calc(100cqw / 1280);position:relative;height:100%;display:flex;flex-direction:column;padding:calc(var(--pad-top, 56) * var(--u)) calc(var(--pad-x, 104) * var(--u)) calc(84 * var(--u));font-size:calc(24 * var(--u));line-height:1.5}.slide__chrome{display:flex;align-items:baseline;gap:calc(14 * var(--u));font-size:calc(14 * var(--u));font-weight:500;color:var(--muted);margin:0 0 calc(var(--chrome-gap, 36) * var(--u))!important;max-width:none!important}.chrome__course{font-weight:600;color:var(--fg)}.chrome__section{margin-left:auto}.slide__footer{position:absolute;left:calc(var(--pad-x, 104) * var(--u));right:calc(var(--pad-x, 104) * var(--u));bottom:calc(36 * var(--u));display:flex;justify-content:space-between;align-items:baseline;font-size:calc(13 * var(--u));color:var(--muted);font-variant-numeric:tabular-nums}.footer__progress{display:none}.slide__inner:has(>.slide__part){padding-top:calc(40 * var(--u));padding-bottom:calc(60 * var(--u))}.slide__inner>.slide__part+h2{margin-bottom:calc(8 * var(--u))!important}.slide--center .slide__inner>.slide__part+h2{margin-bottom:0!important}.slide--center .slide__inner>.slide__part+h2+.split{margin-top:0}.slide__part{display:flex;align-items:baseline;gap:calc(10 * var(--u));max-width:calc(100% - 90 * var(--u))!important;margin:0 0 calc(-16 * var(--u))!important;font:600 calc(15 * var(--u))/1.3 var(--font-head);letter-spacing:.01em;color:var(--muted);white-space:nowrap}.slide__part-num{font-variant-numeric:tabular-nums}.slide__part-title{min-width:0;overflow:hidden;text-overflow:ellipsis}.slide .slide__part code{background:none;padding:0;font-size:1em;color:inherit}.corner-pixels{position:absolute;z-index:0;pointer-events:none;display:grid;grid-template-columns:repeat(4,calc(9 * var(--u)));grid-auto-rows:calc(9 * var(--u));gap:calc(5 * var(--u))}.corner-pixels span{background:var(--accent);border-radius:calc(2 * var(--u))}.corner-pixels--tr{top:calc(16 * var(--u));right:calc(16 * var(--u))}.corner-pixels--bl{bottom:calc(20 * var(--u));left:calc(16 * var(--u));transform:rotate(180deg)}html[data-mode=read] .corner-pixels,html[data-mode=read] .slide__part{display:none}.slide h1,.slide h2,.slide h3{font-family:var(--font-head);font-weight:var(--head-weight, 600);letter-spacing:var(--head-tracking, -.02em);color:var(--heading, var(--fg));line-height:1.08;margin:0;text-wrap:balance}.slide h2{font-size:calc(var(--h2, 48) * var(--u));margin-bottom:calc(36 * var(--u))}.slide h3{font-size:calc(22 * var(--u));margin:0 0 calc(10 * var(--u))}.slide p{margin:0 0 calc(18 * var(--u));max-width:none;text-wrap:pretty}.slide ul,.slide ol{margin:0 0 calc(18 * var(--u));padding-left:1.2em}.slide li{margin-bottom:calc(8 * var(--u));padding-left:.2em}.slide li::marker{color:var(--muted)}.slide strong{font-weight:600;color:var(--heading, var(--fg))}.slide a{color:inherit;text-decoration:none}.slide a:hover{color:var(--accent)}.slide :not(pre)>code{font-family:var(--font-mono);font-size:.86em;background:var(--inline-code-bg);color:var(--inline-code-fg, inherit);padding:.1em .35em;border-radius:calc(var(--r-sm, 4) * var(--u));white-space:nowrap}.split{display:grid;grid-template-columns:1fr 1fr;gap:calc(64 * var(--u));align-items:start;flex:1;min-height:0}.slide--center .split{align-items:center;flex:0 1 auto;margin-top:calc(12 * var(--u))}.split--code{grid-template-columns:2fr 3fr;gap:calc(40 * var(--u))}.split{align-items:start}.split>*,.trace>*,.callouts>*,.trace__grid>*{min-width:0}.slide--accent{background:var(--accent-deep, var(--accent));color:#fff}.slide--accent .slide__inner>:not(.motif),.slide--title .slide__inner>:not(.motif){position:relative;z-index:1}.slide--accent h1,.slide--accent h2{color:#fff}.motif{--m: #fff;position:absolute;inset:0 0 0 auto;width:46%;pointer-events:none;overflow:hidden}.motif__pixels{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(10,1fr);gap:calc(10 * var(--u));padding:calc(10 * var(--u));inset:auto 0 0 auto;width:calc(540 * var(--u));height:calc(680 * var(--u))}.motif__pixels span{background:var(--m);border-radius:calc(6 * var(--u));animation:fade .5s ease-out both}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(calc(14 * var(--u)))}}.slide--title .slide__inner{justify-content:space-between;padding-top:calc(64 * var(--u));padding-bottom:calc(64 * var(--u))}.slide--title .motif{--m: var(--accent)}.title__course{font-size:calc(16 * var(--u));color:var(--muted);margin:0!important;max-width:none!important}.title__code{font-weight:600;color:var(--fg)}.title__main{margin:auto 0;max-width:58%}.slide--title h1{font-size:calc(var(--h1, 80) * var(--u));line-height:1.02;margin-bottom:calc(24 * var(--u));animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.title__lede{font-size:calc(28 * var(--u));color:var(--muted);margin:0!important;animation:rise .6s cubic-bezier(.2,.7,.2,1) .08s both}.title__author{font-size:calc(16 * var(--u));color:var(--muted);margin:0!important;max-width:none!important}.slide--divider .slide__inner{justify-content:flex-end;padding-bottom:calc(96 * var(--u))}.divider__num{font:600 calc(22 * var(--u))/1 var(--font-head);color:#fffc;margin-bottom:calc(20 * var(--u))!important;font-variant-numeric:tabular-nums}.slide--divider h2{font-size:calc(88 * var(--u));margin-bottom:calc(20 * var(--u));max-width:58%}.divider__lede{font-size:calc(28 * var(--u));color:#ffffffeb;max-width:58%!important}.slide--divider .slide__inner>:not(.motif){animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.slide--divider h2{animation-delay:.06s!important}.slide--divider .divider__lede{animation-delay:.12s!important}.agenda{display:grid;grid-template-columns:repeat(min(var(--parts, 2),4),minmax(0,1fr));gap:calc(48 * var(--u));margin-top:calc(12 * var(--u))}.agenda[style*="--parts:3"],.agenda[style*="--parts:4"]{gap:calc(36 * var(--u))}.agenda[style*="--parts:3"] .agenda__list,.agenda[style*="--parts:4"] .agenda__list{font-size:calc(19 * var(--u));padding-left:calc(48 * var(--u))!important}.agenda[style*="--parts:3"] .agenda__title a,.agenda[style*="--parts:4"] .agenda__title a{grid-template-columns:calc(48 * var(--u)) 1fr}.agenda[style*="--parts:3"] .agenda__title,.agenda[style*="--parts:4"] .agenda__title{font-size:calc(24 * var(--u))!important}.agenda__title{font-size:calc(30 * var(--u))!important;margin-bottom:calc(18 * var(--u))!important}.agenda__title a{display:grid;grid-template-columns:calc(64 * var(--u)) 1fr;align-items:baseline}.agenda__num{color:var(--accent);font-variant-numeric:tabular-nums}.agenda__list{list-style:none;padding:0 0 0 calc(64 * var(--u))!important;margin:0!important;font-size:calc(22 * var(--u))}.agenda__list li{margin:0;padding:0}.agenda__list a{display:inline-flex;align-items:baseline;gap:calc(10 * var(--u));padding:calc(8 * var(--u)) 0;color:var(--fg)}.agenda__list a:after{content:"\2192";color:var(--accent);opacity:0;transform:translate(calc(-6 * var(--u)));transition:opacity .15s,transform .15s}.agenda__list a:hover:after,.agenda__list a:focus-visible:after{opacity:1;transform:none}.problem{margin:calc(4 * var(--u)) 0 calc(24 * var(--u));padding:0 0 0 calc(24 * var(--u));border-left:calc(2 * var(--u)) solid var(--accent);font-size:calc(26 * var(--u));color:var(--heading, var(--fg))}.problem p{margin:0}.callout{--c: var(--accent);background:var(--callout-bg, var(--surface));border-radius:calc(var(--r, 12) * var(--u));padding:calc(24 * var(--u)) calc(28 * var(--u)) calc(10 * var(--u));font-size:calc(21 * var(--u))}.callout--note{--callout-bg: var(--note-bg, var(--surface))}.callout--warn{--c: var(--warn);--callout-bg: var(--warn-bg, var(--surface))}.callout--task{--c: var(--task);--callout-bg: var(--task-bg, var(--surface))}.callout__label{font-size:calc(15 * var(--u))!important;font-weight:600;color:var(--c);margin-bottom:calc(10 * var(--u))!important}.callout ul,.callout ol{padding-left:1.1em}.callouts{display:grid;grid-template-columns:repeat(var(--n, 3),minmax(0,1fr));gap:calc(24 * var(--u));align-items:stretch}.code-figure{margin:0;min-width:0;display:flex;flex-direction:column;position:relative}.code-figure figcaption{font-size:calc(14 * var(--u));font-weight:500;color:var(--muted);margin-bottom:calc(10 * var(--u))}pre.code{counter-reset:line;margin:0;font-family:var(--font-mono);font-size:calc(20 * var(--u));line-height:1.6;background:var(--code-bg);color:var(--code-fg);border:var(--code-border, 0);border-radius:calc(var(--r, 12) * var(--u));padding:calc(24 * var(--u)) 0;overflow:auto;tab-size:4}pre.code code{font:inherit;display:block;min-width:max-content}pre.code .line{display:block;min-height:1lh;padding:0 calc(28 * var(--u));transition:background-color .2s}pre.code--numbered .line:before{counter-increment:line;content:counter(line);display:inline-block;width:2ch;margin-right:1.6ch;text-align:right;color:var(--code-ln);user-select:none}pre.code .line.is-active{background:var(--line-hl)}.callout .code-figure figcaption{display:none}.callout .code-figure{margin-bottom:calc(14 * var(--u))}.callout pre.code{font-size:calc(17 * var(--u));padding:calc(14 * var(--u)) 0;background:var(--bg)}.callout pre.code .line{padding:0 calc(18 * var(--u))}pre.code--small{font-size:calc(17 * var(--u));padding:calc(14 * var(--u)) 0;margin-bottom:calc(14 * var(--u));background:var(--bg)}pre.code--small .line{padding:0 calc(18 * var(--u))}.split pre.code.java-wide,.split--code pre.code{font-size:calc(17 * var(--u));line-height:1.5;padding:calc(20 * var(--u)) 0}.split--code .stack pre.code{font-size:calc(18 * var(--u))}.tok-kw{color:var(--tok-kw);font-weight:var(--kw-weight, 600)}.tok-type{color:var(--tok-type)}.tok-str{color:var(--tok-str)}.tok-num{color:var(--tok-num)}.tok-lit{color:var(--tok-num);font-weight:var(--kw-weight, 600)}.tok-com{color:var(--tok-com);font-style:var(--com-style, normal)}.tok-op{color:var(--tok-op)}.tok-fn{color:var(--tok-fn, var(--code-fg))}.table{width:100%;border-collapse:collapse;font-size:calc(21 * var(--u))}.table th{text-align:left;font-weight:500;font-size:calc(15 * var(--u));color:var(--muted);padding:0 calc(16 * var(--u)) calc(12 * var(--u));border-bottom:1px solid var(--rule-strong)}.table td{padding:calc(11 * var(--u)) calc(16 * var(--u));border-bottom:1px solid var(--rule);vertical-align:baseline}.table tbody tr:last-child td{border-bottom:0}.table td:first-child,.table th:first-child{padding-left:0}.table td:first-child code{background:none;padding:0;color:var(--accent);font-weight:600}.btn-row{display:flex;flex-wrap:wrap;gap:calc(10 * var(--u));align-items:center}.btn{font:500 calc(16 * var(--u))/1 var(--font-body);padding:calc(12 * var(--u)) calc(20 * var(--u));border-radius:calc(var(--btn-r, 8) * var(--u));border:0;background:var(--btn-bg, var(--surface));color:var(--fg);cursor:pointer;transition:background-color .15s,opacity .15s}.btn:hover{background:var(--btn-bg-hover, var(--rule))}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:var(--accent-hover, var(--accent))}.btn--ghost{background:transparent;color:var(--accent);padding-inline:calc(8 * var(--u))}.btn--ghost:hover{background:transparent;text-decoration:underline;text-underline-offset:.2em}.btn:disabled{opacity:.35;cursor:default}.field{display:flex;flex-direction:column;gap:calc(6 * var(--u))}.field--inline{flex-direction:row;align-items:center;gap:calc(10 * var(--u))}.field__label{font-size:calc(15 * var(--u));color:var(--muted)}.field input{font:500 calc(19 * var(--u))/1.2 var(--font-mono);width:calc(96 * var(--u));padding:calc(10 * var(--u)) calc(12 * var(--u));border:1px solid var(--rule-strong);border-radius:calc(var(--btn-r, 8) * var(--u));background:var(--bg);color:var(--fg)}.trace{display:grid;grid-template-columns:1fr 1fr;gap:calc(48 * var(--u));flex:1;min-height:0;align-items:start}.trace pre.code{font-size:calc(19 * var(--u))}.trace__panel{display:flex;flex-direction:column;gap:calc(22 * var(--u));font-size:calc(19 * var(--u))}.trace__controls{display:flex;align-items:flex-end;gap:calc(16 * var(--u));flex-wrap:wrap}.trace__note{margin:0!important;min-height:3em;font-size:calc(18 * var(--u));color:var(--fg)}.trace__note--error{color:var(--false)}.trace__step{color:var(--accent);font-weight:600;margin-right:.4em;font-variant-numeric:tabular-nums}.trace__grid{display:grid;grid-template-columns:1fr 1.3fr;gap:calc(32 * var(--u))}.panel-title{font-family:var(--font-body)!important;font-size:calc(14 * var(--u))!important;font-weight:500!important;letter-spacing:0!important;color:var(--muted)!important;margin:0 0 calc(10 * var(--u))!important}.vars{margin:0}.vars__row{display:flex;justify-content:space-between;align-items:baseline;padding:calc(6 * var(--u)) 0;border-top:1px solid var(--rule)}.vars dt{margin:0}.vars dd{margin:0;font-family:var(--font-mono);font-weight:600;font-size:calc(20 * var(--u))}.vars__empty{color:var(--muted);font-size:calc(17 * var(--u));padding:calc(6 * var(--u)) 0;border-top:1px solid var(--rule)}.vars__type{color:var(--muted);font-size:calc(14 * var(--u));margin-left:.4em}.conds{list-style:none;padding:0!important;margin:0!important;font-size:calc(17 * var(--u))}.conds li{display:flex;justify-content:space-between;align-items:baseline;gap:calc(10 * var(--u));padding:calc(6 * var(--u)) 0;border-top:1px solid var(--rule);margin:0}.conds code{background:none!important;padding:0!important;font-size:1em!important}.conds__empty{color:var(--muted)}.truth{font-size:calc(14 * var(--u));font-weight:600;letter-spacing:.04em;white-space:nowrap}.truth:before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:currentColor;margin-right:.45em;vertical-align:.05em}.truth--true{color:var(--true)}.truth--false{color:var(--false)}.console{margin:0;min-height:calc(2 * 1.5em + 24 * var(--u));font-family:var(--font-mono);font-size:calc(17 * var(--u));line-height:1.5;background:var(--console-bg);color:var(--console-fg);border-radius:calc(var(--r, 12) * var(--u));padding:calc(12 * var(--u)) calc(18 * var(--u));white-space:pre-wrap}.console:empty:before{content:"Aucune sortie";color:var(--muted);font-family:var(--font-body)}.stack{display:flex;flex-direction:column;gap:calc(28 * var(--u));min-width:0}.runner{display:flex;flex-direction:column;gap:calc(12 * var(--u))}.runner__row{display:flex;align-items:center;gap:calc(12 * var(--u));flex-wrap:wrap}.runner .btn{white-space:nowrap}.runner .console{min-height:0}.runner__sim{color:var(--muted);font-weight:400}.flow{width:100%;height:auto;max-height:calc(470 * var(--u));display:block}.flow .node rect,.flow .node path{fill:var(--bg);stroke:var(--flow-stroke, var(--rule-strong));stroke-width:1.5;transition:fill .3s,stroke .3s}.flow .node text{fill:var(--fg);font-family:var(--font-mono);font-size:15px;text-anchor:middle}.flow .node.is-active rect,.flow .node.is-active path{stroke:var(--accent);fill:var(--accent-soft);stroke-width:2}.flow .edge{fill:none;stroke:var(--flow-stroke, var(--rule-strong));stroke-width:1.5;marker-end:url(#arrow)}.flow .edge.is-done{marker-end:url(#arrow-active)}.flow .edge--plain,.flow .edge--plain.is-done{marker-end:none}.flow .edge-hl{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;opacity:0}.flow .edge-hl.is-active{opacity:1;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw .28s linear forwards;animation-delay:var(--delay, 0s)}.flow__arrow{fill:var(--flow-stroke, var(--rule-strong))}.flow__arrow--active{fill:var(--accent)}.flow__label{fill:var(--muted);font:500 13px var(--font-body);letter-spacing:.04em}@keyframes draw{to{stroke-dashoffset:0}}.flow-figure{margin:0;display:flex;flex-direction:column;gap:calc(16 * var(--u));min-width:0}.flow-figure .btn-row{justify-content:center}.flow__status{min-height:3em;margin:0!important;text-align:center;max-width:none!important;font-size:calc(19 * var(--u))}.flow__error{font-size:calc(16 * var(--u));color:var(--warn)}.flow__desc{font-size:calc(17 * var(--u));color:var(--muted)}.flow__desc summary{cursor:pointer}.flow__desc ol{margin-top:calc(8 * var(--u))}.refs{font-size:calc(24 * var(--u))}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:0s!important;animation-delay:0s!important;transition:none!important}}html[data-mode=slides] body{overflow:hidden;height:100dvh;background:var(--stage-bg)}html[data-mode=slides] .deck{height:100dvh;display:grid;place-items:center}html[data-mode=slides] .slide{grid-area:1 / 1;width:min(100vw,calc(100dvh * 16 / 9));aspect-ratio:16 / 9}html[data-mode=slides] .slide:not(.is-current){display:none}html[data-mode=read] body{background:var(--bg)}html[data-mode=read] .deck{max-width:960px;margin:0 auto;padding:72px 24px 120px}html[data-mode=read] .slide{background:transparent;overflow:visible}html[data-mode=read] .slide+.slide{border-top:1px solid var(--rule)}html[data-mode=read] .slide__inner{--u: clamp(.66px, calc(100cqw / 1180), .8px);padding:56px 0;height:auto}html[data-mode=read] .slide__chrome .chrome__course,html[data-mode=read] .slide__chrome .chrome__deck,html[data-mode=read] .slide__footer{display:none}html[data-mode=read] .slide__chrome{border:0!important;padding:0!important;margin-bottom:12px!important}html[data-mode=read] .chrome__section{margin-left:0}html[data-mode=read] .slide h2{font-size:calc(var(--h2, 48) * .85 * var(--u))}html[data-mode=read] .slide--accent{background:transparent;color:var(--fg)}html[data-mode=read] .motif{display:none}html[data-mode=read] .slide--accent h1{color:var(--heading)}html[data-mode=read] .slide--accent h2{color:var(--accent)}html[data-mode=read] .title__course,html[data-mode=read] .title__author,html[data-mode=read] .title__lede,html[data-mode=read] .divider__num,html[data-mode=read] .divider__lede{color:var(--muted)}html[data-mode=read] .title__code{color:var(--fg)}html[data-mode=read] .slide--title .slide__inner{padding-top:24px;gap:32px}html[data-mode=read] .title__main,html[data-mode=read] .slide--divider h2,html[data-mode=read] .divider__lede{max-width:none!important}html[data-mode=read] .slide--divider .slide__inner{padding-bottom:8px}html[data-mode=read] .slide--divider h2{font-size:calc(40 * var(--u))}html[data-mode=read] .slide--title h1{font-size:calc(var(--h1, 80) * .75 * var(--u));hyphens:auto;overflow-wrap:break-word;max-width:none}@container slide (max-width: 720px){html[data-mode=read] .split,html[data-mode=read] .trace,html[data-mode=read] .callouts,html[data-mode=read] .trace__grid,html[data-mode=read] .agenda{grid-template-columns:1fr}html[data-mode=read] .slide__inner{--u: .72px}html[data-mode=read] .slide--title h1{font-size:calc(var(--h1, 80) * .6 * var(--u))}}.toolbar{position:fixed;z-index:50;left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;align-items:center;padding:6px 10px;border-radius:999px;background:#141416db;color:#f2f2f2;font:500 13px/1 system-ui,-apple-system,sans-serif;backdrop-filter:blur(8px);box-shadow:0 4px 20px #0003;max-width:calc(100vw - 24px)}html[data-mode=slides] .toolbar{bottom:10px;opacity:.18;transition:opacity .2s}html[data-mode=slides] .toolbar:hover,html[data-mode=slides] .toolbar:focus-within{opacity:1}html[data-mode=read] .toolbar{top:10px}html[data-mode=read] .toolbar__nav,html[data-toolbar=hidden] .toolbar{display:none}.toolbar__group{display:flex;align-items:center;gap:2px}.toolbar__label{color:#9a9a9f;margin:0 6px 0 4px}.toolbar button,.toolbar a{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;padding:7px 10px;border-radius:999px;text-decoration:none}.toolbar button:hover,.toolbar a:hover{background:#ffffff1a}.toolbar button[aria-pressed=true]{background:#f2f2f2;color:#111}.toolbar__count{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:#c8c8cc}.console--error{color:var(--false)}.split pre.code[data-lang=java]{font-size:calc(16 * var(--u));line-height:1.5;padding:calc(18 * var(--u)) 0}.split .stack pre.code{font-size:calc(18 * var(--u))}.flow-figure .flow{max-height:calc(400 * var(--u))}.tok-pre{color:var(--tok-type)}.array-viz{margin:0;display:flex;flex-direction:column;gap:calc(16 * var(--u));min-width:0}.array-viz__meta{margin:0!important;font-size:calc(17 * var(--u));color:var(--muted)}.array-viz__cells{display:flex;flex-wrap:wrap;gap:calc(6 * var(--u));padding-bottom:calc(28 * var(--u))}.cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(4 * var(--u));min-width:calc(76 * var(--u))}.cell__addr{font:400 calc(12 * var(--u))/1 var(--font-mono);color:var(--muted)}.cell__value{display:grid;place-items:center;width:100%;height:calc(64 * var(--u));font:600 calc(24 * var(--u))/1 var(--font-mono);color:var(--fg);background:var(--surface);border:calc(2 * var(--u)) solid transparent;border-radius:calc(12 * var(--u));transition:background-color .2s,border-color .2s,transform .2s}.cell__index{font:500 calc(14 * var(--u))/1 var(--font-mono);color:var(--muted)}.cell.is-visited .cell__value{background:var(--note-bg)}.cell.is-current .cell__value{background:var(--accent-soft);border-color:var(--accent);transform:translateY(calc(-3 * var(--u)))}.cell.is-current .cell__index{color:var(--accent);font-weight:700}.cell.is-current:after{content:"i";position:absolute;bottom:calc(-26 * var(--u));font:700 calc(16 * var(--u))/1 var(--font-mono);color:var(--accent)}.array-viz__status{margin:0!important;min-height:1.5em;font-size:calc(18 * var(--u));max-width:none!important}.array-viz .code-figure pre.code{font-size:calc(17 * var(--u));padding:calc(14 * var(--u)) 0}.vars__stack{font-size:calc(14 * var(--u));color:var(--accent);font-weight:600;padding:calc(4 * var(--u)) 0 calc(6 * var(--u))}.vars__row--array{flex-direction:column;align-items:flex-start;gap:calc(6 * var(--u))}.mini-cells{display:flex;flex-wrap:wrap;gap:calc(3 * var(--u));font-size:calc(15 * var(--u))!important;font-weight:600}.mini-cell{display:flex;flex-direction:column;align-items:center;min-width:calc(36 * var(--u))}.mini-cell>span{display:grid;place-items:center;width:100%;padding:calc(5 * var(--u)) calc(6 * var(--u));background:var(--bg);border:1px solid var(--rule-strong);border-radius:calc(6 * var(--u))}.mini-cell small{font-size:calc(11 * var(--u));color:var(--muted);font-weight:400}.mini-cell.is-read>span{border-color:var(--accent);background:var(--accent-soft)}.mini-cell.is-write>span{border-color:var(--true);background:var(--true-bg, #e7f5ee)}.field--list input{width:calc(220 * var(--u))}.field__hint{font-weight:400;font-size:.9em}.runner .console{max-height:calc(150 * var(--u));overflow:auto}.trace .console{max-height:calc(110 * var(--u));overflow:auto}html[data-mode=read] .runner .console,html[data-mode=read] .trace .console{max-height:none}html[data-mode=slides] .split{align-items:stretch}html[data-mode=slides] .slide--center .split{align-items:center}html[data-mode=slides] .split__col{display:flex;flex-direction:column;min-height:0}html[data-mode=slides] .split__col>*,html[data-mode=slides] .stack>*{flex-shrink:0}html[data-mode=slides] .split__col>.stack,html[data-mode=slides] .split__col>.trace{flex:0 1 auto;min-height:0}html[data-mode=slides] .stack>.runner{flex:0 1 auto;min-height:0;display:flex;flex-direction:column}html[data-mode=slides] .runner>.runner__row{flex-shrink:0}html[data-mode=slides] .slide__inner>.trace{flex:1 1 auto;min-height:0;align-items:stretch}html[data-mode=slides] .trace>.code-figure{align-self:start}html[data-mode=slides] .trace__panel{min-height:0}html[data-mode=slides] .trace__panel>*{flex-shrink:0}html[data-mode=slides] .trace__panel>.io:last-child{flex:0 1 auto;min-height:0;display:flex;flex-direction:column}html[data-mode=slides] .trace .console{flex:0 1 auto;min-height:2.6em;max-height:none;overflow:auto}html[data-mode=slides] .slide__inner>.stack--run{flex:1 1 auto;min-height:0;grid-template-rows:auto minmax(0,1fr)}html[data-mode=slides] .slide__inner>.stack--run>.runner{min-height:0}.vars__row{padding:calc(4 * var(--u)) 0}.vars dd{font-size:calc(18 * var(--u))}.vars:has(>.vars__row:nth-child(5)){display:grid;grid-template-columns:1fr 1fr;column-gap:calc(16 * var(--u))}.vars:has(>.vars__row:nth-child(5))>.vars__stack,.vars:has(>.vars__row:nth-child(5))>.vars__row--array{grid-column:1 / -1}.trace__grid:has(.vars__row:nth-child(5)){grid-template-columns:1.6fr 1fr}html[data-mode=slides] .trace__panel{gap:calc(16 * var(--u))}html[data-mode=slides] .trace .console{min-height:calc(1.5em + 20 * var(--u));padding-top:calc(8 * var(--u));padding-bottom:calc(8 * var(--u))}html[data-mode=slides] .trace .panel-title{margin-bottom:calc(6 * var(--u))!important}html[data-mode=slides] .trace__note{min-height:2.6em}@container slide (max-width: 720px){html[data-mode=read] .table{display:block;overflow-x:auto}html[data-mode=read] .slide :not(pre)>code{white-space:normal;overflow-wrap:anywhere}}.slide__inner{row-gap:calc(22 * var(--u))}.slide__inner>h2{margin-bottom:calc(14 * var(--u))!important}.split__col{display:flex;flex-direction:column;row-gap:calc(22 * var(--u))}.slide__inner>:is(p,ul,ol,table,figure,blockquote,.problem),.split__col>:is(p,ul,ol,table,figure,blockquote,.problem){margin-top:0;margin-bottom:0}.callout>*+*{margin-top:calc(12 * var(--u))}.callout>:is(p,ul,ol){margin-bottom:0}.callout{padding-bottom:calc(24 * var(--u))}.split{column-gap:calc(64 * var(--u))}.split__col .callouts{grid-template-columns:1fr}.trace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:calc(48 * var(--u))}.trace__grid,.trace__grid:has(.vars__row:nth-child(5)){grid-template-columns:1fr;row-gap:calc(14 * var(--u))}.vars:has(>.vars__row:nth-child(5)){display:block}.slide--accent :not(pre)>code{background:#ffffff2e;color:#fff}.vars__row{padding:calc(3 * var(--u)) 0}.vars dt code{font-size:.82em}html[data-mode=slides] .trace__panel{display:flex;flex-direction:column}html[data-mode=slides] .trace__panel>.trace__grid{flex:0 1 auto;min-height:calc(90 * var(--u));overflow:auto}.vars__row.is-changed{background:var(--accent-soft);box-shadow:-8px 0 0 var(--accent-soft),8px 0 0 var(--accent-soft)}.vars__row.is-changed dd{color:var(--accent)}html[data-mode=slides] .trace__grid .panel-title{position:sticky;top:0;z-index:1;background:var(--bg);padding-bottom:calc(4 * var(--u))}.slide .callout>*+*{margin-top:calc(12 * var(--u))}.slide--center .slide__inner>h2+*{margin-top:auto}.slide--center .slide__inner>:nth-last-child(2){margin-bottom:auto}.slide .callout :not(pre)>code{white-space:normal;overflow-wrap:anywhere}.slide__inner>.stack--run{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.slide__inner>.stack--run pre.code{font-size:calc(17 * var(--u));line-height:1.5;padding:calc(18 * var(--u)) 0}.slide__inner>.stack--run.stack--long pre.code{font-size:calc(15 * var(--u));line-height:1.45;padding:calc(14 * var(--u)) 0}html[data-mode=slides] .slide__inner>.stack--run{flex:0 1 auto}.agenda[style*="--parts:4"]{gap:calc(28 * var(--u))}.agenda[style*="--parts:4"] .agenda__list{font-size:calc(17 * var(--u));padding-left:calc(40 * var(--u))!important}.agenda[style*="--parts:4"] .agenda__title{font-size:calc(21 * var(--u))!important}.agenda[style*="--parts:4"] .agenda__title a{grid-template-columns:calc(40 * var(--u)) 1fr}.agenda__list a{padding-top:calc(6 * var(--u));padding-bottom:calc(6 * var(--u))}.slide h2 code,.agenda code{font-size:.85em}.slide--center .slide__inner>h2+.split{margin-top:calc(12 * var(--u))}.code-figure{background:var(--code-bg);border:var(--code-border, 0);border-radius:calc(var(--r, 12) * var(--u));overflow:hidden}.code-figure figcaption{margin:0;padding:calc(14 * var(--u)) calc(28 * var(--u)) 0;font:500 calc(13 * var(--u))/1.2 var(--font-body);letter-spacing:.02em;color:var(--muted);opacity:.8}.code-figure>pre.code{background:transparent;border:0;border-radius:0;padding-top:calc(10 * var(--u))}.code-figure>pre.code--numbered+*{margin:0}.callout .code-figure{background:var(--bg)}.callout .code-figure>pre.code{padding-top:calc(14 * var(--u))}.split--code .code-figure figcaption,.slide__inner>.stack--run .code-figure figcaption{padding-top:calc(12 * var(--u))}.code-figure figcaption{position:absolute;z-index:1;top:calc(8 * var(--u));right:calc(16 * var(--u));padding:0;pointer-events:none}.code-figure>pre.code{padding-top:calc(26 * var(--u))}.split--code .code-figure figcaption,.slide__inner>.stack--run .code-figure figcaption{padding-top:0}html[data-mode=slides] .toolbar{opacity:0;pointer-events:none;transition:opacity .25s}html[data-mode=slides][data-toolbar-visible] .toolbar,html[data-mode=slides] .toolbar:focus-within{opacity:1;pointer-events:auto}pre.code--editable{cursor:text;caret-color:var(--accent)}pre.code--editable:focus{outline:none}.code-figure:has(pre.code--editable:focus){box-shadow:0 0 0 calc(2 * var(--u)) var(--accent-soft),0 0 0 calc(3 * var(--u)) var(--accent)}.slide__inner{padding-bottom:calc(72 * var(--u))}.slide__footer{bottom:calc(30 * var(--u))}.footer__progress{bottom:calc(-30 * var(--u))!important}.footer__page{margin-right:calc((24 - var(--pad-x, 72)) * var(--u))}.io{position:relative;margin:0;min-width:0;background:var(--console-bg);border-radius:calc(var(--r, 12) * var(--u));display:flex;flex-direction:column}.io>figcaption{position:absolute;z-index:1;top:calc(8 * var(--u));right:calc(16 * var(--u));font:500 calc(13 * var(--u))/1.2 var(--font-body);letter-spacing:.02em;color:var(--muted);opacity:.8;pointer-events:none}.io>.console{background:transparent;border-radius:0;min-height:calc(1.5em + 44 * var(--u));padding:calc(26 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u))}.io>.console:empty:before{content:none}.io--in{flex-shrink:0}.io__text{display:block;width:100%;box-sizing:border-box;resize:none;field-sizing:content;max-height:calc(4 * 1.5em + 40 * var(--u));overflow:auto;font:500 calc(17 * var(--u))/1.5 var(--font-mono);color:var(--fg);background:transparent;border:0;border-radius:inherit;padding:calc(26 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u))}.io__text:focus,.io__field input:focus{outline:none}.io--in:focus-within{box-shadow:0 0 0 calc(2 * var(--u)) var(--accent-soft),0 0 0 calc(3 * var(--u)) var(--accent)}.io__fields{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:calc(24 * var(--u));row-gap:calc(6 * var(--u));padding:calc(26 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u));font:500 calc(17 * var(--u))/1.5 var(--font-mono)}.io__field{display:flex;align-items:baseline;gap:calc(8 * var(--u))}.io__name{color:var(--muted)}.io__name:after{content:" ="}.io__field input{font:inherit;color:var(--fg);background:var(--bg);border:0;border-radius:calc(6 * var(--u));padding:calc(2 * var(--u)) calc(8 * var(--u));width:calc(110 * var(--u))}.io__field--list{flex:1 1 100%}.io__field--list input{width:100%}.io__hint{margin:0!important;flex:1 1 100%;font:400 calc(13 * var(--u))/1.3 var(--font-body);color:var(--muted)}.runner__row{justify-content:flex-end}.runner__io{display:flex;flex-direction:column;gap:calc(12 * var(--u));min-height:0}.runner__io>.io--out{flex:1 1 auto;min-height:0}.runner__io>.io--out>.console{flex:1 1 auto;min-height:calc(1.5em + 44 * var(--u));max-height:calc(220 * var(--u));overflow:auto}html[data-mode=slides] .stack>.runner>.runner__io{flex:0 1 auto}html[data-mode=read] .runner__io>.io--out>.console{max-height:none}.runner--c .console{font-size:calc(15 * var(--u))}.slide__inner>.stack--run{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-template-areas:"bar bar" "code io";grid-template-rows:auto minmax(0,auto);column-gap:calc(28 * var(--u));row-gap:calc(14 * var(--u));align-items:stretch}.slide__inner>.stack--run>.code-figure{grid-area:code}html[data-mode=slides] .slide__inner>.stack--run>.runner{display:contents!important}.slide__inner>.stack--run .runner__row{grid-area:bar}.slide__inner>.stack--run .runner__io{grid-area:io}.slide__inner>.stack--run .runner__io>.io--out>.console{max-height:none}html[data-mode=read] .slide__inner>.stack--run{display:flex;flex-direction:column}html[data-mode=read] .slide__inner>.stack--run>.runner{display:flex!important}.trace .io>.console{min-height:calc(1.5em + 34 * var(--u));padding-top:calc(24 * var(--u));padding-bottom:calc(10 * var(--u))}.steps{display:flex;align-items:center;justify-content:space-between;gap:calc(16 * var(--u));min-height:calc(40 * var(--u))}.steps__count{font:600 calc(16 * var(--u))/1 var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums}.steps__btns{display:flex;gap:calc(2 * var(--u));padding:calc(3 * var(--u));background:var(--surface);border-radius:calc(10 * var(--u))}.step-btn{display:grid;place-items:center;width:calc(38 * var(--u));height:calc(34 * var(--u));padding:0;border:0;border-radius:calc(7 * var(--u));background:transparent;color:var(--fg);cursor:pointer;transition:background-color .15s,opacity .15s}.step-btn:hover{background:var(--rule)}.step-btn--primary{background:var(--accent);color:var(--on-accent)}.step-btn--primary:hover{background:var(--accent-hover, var(--accent))}.step-btn:disabled{opacity:.3;cursor:default;background:transparent;color:var(--fg)}.step-btn:focus-visible{outline:calc(2 * var(--u)) solid var(--accent);outline-offset:calc(1 * var(--u))}.step-btn__icon{width:calc(20 * var(--u));height:calc(20 * var(--u));fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.array-viz__panel{display:flex;flex-direction:column;gap:calc(14 * var(--u));min-width:0}.array-viz__panel>.array-viz__cells{padding-top:calc(4 * var(--u))}.array-viz__status{background:var(--console-bg);color:var(--fg)!important;border-radius:calc(var(--r, 12) * var(--u));padding:calc(12 * var(--u)) calc(16 * var(--u));font-size:calc(17 * var(--u))!important;line-height:1.45;min-height:calc(2 * 1.45em + 24 * var(--u))}.array-viz__panel>.io>.console{max-height:calc(170 * var(--u));overflow:auto}html[data-mode=slides] .array-viz:has(>.code-figure){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:calc(40 * var(--u));align-items:start}html[data-mode=slides] .array-viz:has(>.code-figure) .array-viz__status,html[data-mode=slides] .array-viz:has(>.code-figure) .array-viz__panel>.io{contain:inline-size}.array-viz:not(:has(>.code-figure))>.array-viz__panel{align-self:start}.array-viz:not(:has(>.code-figure)) .array-viz__panel>.io{contain:inline-size}.split__col .runner__io:has(>.io--in){flex-direction:row;align-items:stretch}.split__col .runner__io>.io--in{flex:0 1 auto;max-width:50%}.split__col .runner__io>.io--out{flex:1 1 0;min-width:0}.split__col .io__field input{width:calc(72 * var(--u))}.split__col .io__text{min-width:calc(100 * var(--u))}html[data-mode=read] .split__col .runner__io:has(>.io--in){flex-direction:column}html[data-mode=read] .split__col .runner__io>.io--in{max-width:none}.split .stack--tall{gap:calc(14 * var(--u))}.split .stack--tall pre.code{font-size:calc(16 * var(--u));line-height:1.45}.io--note>p{margin:0!important;max-width:none!important;background:transparent!important;padding:calc(26 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u))!important;font-size:calc(17 * var(--u))!important;line-height:1.45;color:var(--fg);min-height:calc(2 * 1.45em + 40 * var(--u))!important;border-radius:0!important}.io--note>p>span{display:block}.io--note>.trace__note--error{color:var(--false)}html[data-mode=slides] .trace__panel>.io--note{flex-shrink:0}.agenda--paged{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:calc(64 * var(--u))!important;row-gap:calc(32 * var(--u))}.agenda--paged .agenda__title{font-size:calc(30 * var(--u))!important;margin-bottom:calc(6 * var(--u))!important}.agenda--paged .agenda__title a{grid-template-columns:calc(60 * var(--u)) 1fr}.agenda__lede{margin:0 0 calc(14 * var(--u)) calc(60 * var(--u))!important;max-width:none!important;font-size:calc(18 * var(--u));line-height:1.4;color:var(--muted)}.agenda--paged .agenda__list{font-size:calc(20 * var(--u));padding-left:calc(60 * var(--u))!important}.agenda--paged .agenda__list a{padding-top:calc(5 * var(--u));padding-bottom:calc(5 * var(--u))}html[data-mode=read] .agenda--paged{grid-template-columns:1fr!important}.slide__inner>.stack--run.stack--xlong pre.code{font-size:calc(14 * var(--u));line-height:1.4;padding-top:calc(22 * var(--u));padding-bottom:calc(10 * var(--u))}html[data-mode=slides] .slide__inner>.stack--run .runner__row{min-height:calc(40 * var(--u))}.slide p:has(>img:only-child){margin:0!important;max-width:none!important;text-align:center}.slide img{display:inline-block;max-width:100%;height:auto;max-height:calc(400 * var(--u));object-fit:contain}.split__col img{max-height:calc(440 * var(--u))}html[data-mode=read] .slide img{max-height:none}html[data-mode=slides] .slide__inner>:is(p,ul,ol)~.stack--run.stack--xlong pre.code{font-size:calc(13 * var(--u));line-height:1.36;padding-top:calc(18 * var(--u));padding-bottom:calc(8 * var(--u))}html[data-mode=slides] .slide__inner>:is(p,ul,ol)~.stack--run.stack--xlong{row-gap:calc(10 * var(--u))}.runner__lead{flex:1 1 0;min-width:0;align-self:center}.runner__lead>p{margin:0!important}.runner__lead>p+p{margin-top:calc(6 * var(--u))!important}.runner__row:has(>.runner__lead)>.btn{align-self:flex-start;flex-shrink:0}.runner__row:has(>.runner__lead){flex-wrap:nowrap;align-items:center;gap:calc(24 * var(--u))}:root{--page-bg: #f0f0f2;--stage-bg: #e8e8eb;--bg: #ffffff;--fg: #1d1d1f;--heading: #0b0b0c;--muted: #6e6e73;--accent: #1d44f0;--accent-hover: #1636c9;--accent-soft: #edf0fe;--on-accent: #ffffff;--warn: #c2410c;--task: #047857;--rule-strong: #d4d4d9;--code-fg: #1d1d1f;--code-ln: #a8a8b0;--line-hl: #e4e9fe;--tok-kw: #1d44f0;--tok-type: #7a1fd6;--tok-str: #0a7349;--tok-num: #b0005e;--tok-com: #6e6e73;--tok-op: #3f3f46;--true: #047857;--false: #be123c;--console-fg: #1d1d1f;--focus: #1d44f0;--font-head: "Figtree", system-ui, sans-serif;--font-body: "Figtree", system-ui, sans-serif;--font-mono: "Roboto Mono", ui-monospace, monospace;--head-weight: 600;--head-tracking: -.02em;--h1: 82;--h2: 50;--surface: #f1f4fa;--code-bg: #f1f4fa;--console-bg: #f1f4fa;--inline-code-bg: #eef1f8;--rule: #e7eaf1;--btn-bg: #e9eefb;--btn-bg-hover: #dfe6fa;--note-bg: #ebf0fe;--warn-bg: #fdf0e8;--task-bg: #e7f5ee;--r: 22;--r-sm: 6;--btn-r: 999;--progress-track: #eef1f7;--accent-deep: #1a3ee0;--pad-x: 72;--pad-top: 48}.slide__chrome,.footer__deck,.footer__total{display:none}.slide__footer{justify-content:flex-end}.footer__progress{display:block;position:absolute;height:calc(4 * var(--u));left:calc(var(--pad-x) * -1 * var(--u));right:calc(var(--pad-x) * -1 * var(--u));bottom:calc(-36 * var(--u));background:var(--progress-track)}.footer__progress:after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);background:var(--accent);border-radius:0 999px 999px 0}.problem{border:0;padding:calc(20 * var(--u)) calc(26 * var(--u));background:var(--note-bg);border-radius:calc(var(--r) * var(--u))}.slide h2{margin-bottom:calc(30 * var(--u))}.table td{padding-top:calc(9 * var(--u));padding-bottom:calc(9 * var(--u))}.home{--z-fg: #09090b;--z-muted: #71717a;--z-border: #e4e4e7;--z-soft: #f4f4f5;--z-hover: #fafafa}body:has(.home){background:#fff}.home{max-width:920px;margin:0 auto;padding:80px 40px 120px;font-family:var(--font-body);color:var(--z-fg)}.home a{color:inherit;text-decoration:none}.home code{font-family:var(--font-mono);font-size:.9em}.home__course+.home__course{margin-top:88px}.home__head{margin-bottom:32px}.home__code{margin:0 0 8px;font-size:14px;font-weight:500;color:var(--z-muted)}.home__head h2{margin:0;font:600 36px/1.1 var(--font-head);letter-spacing:-.025em;color:var(--z-fg);text-wrap:balance}.home__kicker{margin:8px 0 0;font-size:16px;color:var(--z-muted)}.tbl{width:100%;overflow-x:auto;border:1px solid var(--z-border);border-radius:12px}.tbl table{width:100%;border-collapse:collapse;font-size:15px}.tbl thead th{height:44px;padding:0 16px;text-align:left;vertical-align:middle;font-size:13px;font-weight:500;color:var(--z-muted);border-bottom:1px solid var(--z-border)}.tbl tbody tr{position:relative;border-bottom:1px solid var(--z-border);transition:background-color .12s}.tbl tbody:last-child tr:last-child{border-bottom:0}.tbl tbody tr:not(.tbl__group):hover{background:var(--z-hover)}.tbl td,.tbl tbody th{padding:14px 16px;text-align:left;vertical-align:middle;font-weight:400}.tbl tbody th a{font-weight:500;color:var(--z-fg)}.tbl tbody th a:after{content:"";position:absolute;inset:0}.tbl tbody th a:focus-visible{outline:2px solid var(--z-fg);outline-offset:2px}.tbl__desc{color:var(--z-muted)}.tbl__group th{padding:10px 16px!important;background:var(--z-soft);font-size:13px;font-weight:600!important;color:var(--z-fg)}.home__empty{color:var(--z-muted)}.home__errors{margin-top:48px;padding:16px 20px;border:1px solid var(--z-border);border-radius:12px}.home__errors h2{font-size:15px;margin:0 0 8px}@media (max-width: 720px){.home{padding:48px 20px 80px}.home__head h2{font-size:28px}.tbl__desc{display:none}}.home__account{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin:-40px 0 40px;font-size:14px;color:var(--z-muted)}.home__who{font-variant-numeric:tabular-nums}.home__role{margin-left:6px;padding:2px 8px;border:1px solid var(--z-border);border-radius:999px;font-size:12px}.home .home__account a{color:var(--z-fg);text-decoration:underline;text-underline-offset:3px}.tbl__badge{margin-left:10px;padding:2px 8px;font-size:12px;font-weight:500;color:var(--z-muted);background:var(--z-soft);border-radius:999px;white-space:nowrap}body:has(.login){background:#fafafa}.login{min-height:100vh;display:grid;place-items:center;padding:24px;font-family:var(--font-body);color:#09090b}.login__card{width:100%;max-width:380px;padding:32px;background:#fff;border:1px solid #e4e4e7;border-radius:12px;box-shadow:0 1px 2px #0000000a}.login__kicker{margin:0 0 6px;font-size:14px;font-weight:500;color:#71717a}.login h1{margin:0;font:600 26px/1.15 var(--font-head);letter-spacing:-.02em}.login__lede{margin:8px 0 0;color:#71717a;font-size:15px}.login__form{margin-top:24px;display:flex;flex-direction:column;gap:14px}.login .fieldset label{display:flex;flex-direction:column;gap:6px}.login .label{font-size:14px;font-weight:500}.login__input{width:100%;box-sizing:border-box;height:42px;padding:0 12px;font:500 16px/1 var(--font-body);color:#09090b;background:#fff;border:1px solid #d4d4d8;border-radius:8px}.login__input:focus{outline:2px solid #09090b;outline-offset:1px;border-color:#09090b}.login input[name="session[da]"]{font-family:var(--font-mono);letter-spacing:.04em}.login__error{margin:0;padding:10px 12px;font-size:14px;color:#991b1b;background:#fef2f2;border-radius:8px}.login__btn{height:42px;border:0;border-radius:8px;cursor:pointer;font:500 15px/1 var(--font-body);color:#fff;background:#09090b}.login__btn:hover{background:#27272a}.login__btn:focus-visible{outline:2px solid #09090b;outline-offset:2px}.login__alt{margin:20px 0 0;font-size:14px;text-align:center}.login__alt a{color:#71717a;text-decoration:underline;text-underline-offset:3px}.login__alt a:hover{color:#09090b}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}html,body{height:auto!important;overflow:visible!important}.toolbar,.skip-link,[data-announcer]{display:none!important}.btn,.btn-row,.steps,.trace__controls,.trace__note,.io--note,.runner,.console:empty,.flow__status:empty{display:none!important}*,*:before,*:after{animation:none!important;transition:none!important}.flow .edge-hl.is-active,.motif__arcs circle{stroke-dashoffset:0!important}pre.code{overflow:visible}pre,table,figure,.callout,.problem,svg{break-inside:avoid}.slide h2,.slide h3{break-after:avoid}html[data-mode=slides] body{background:var(--bg)!important}html[data-mode=slides] .deck{display:block;height:auto}html[data-mode=slides] .slide{display:block!important;width:13.333in;height:7.5in;aspect-ratio:auto;box-shadow:none;break-after:page;break-inside:avoid}html[data-mode=slides] .slide:last-child{break-after:auto}html[data-mode=read] body{background:#fff!important}html[data-mode=read] .deck{padding:0;max-width:none}html[data-mode=read] .slide__inner{--u: .68px;padding:22px 0}html[data-mode=read] .slide--title .slide__inner{padding-top:0}}
