*,::after,::before{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--mono);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2em 1em;background-color:var(--base2);color:var(--base00)}.term{position:relative;width:100%;max-width:44em;height:min(42em,88vh);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;border-radius:.7em;border:1px solid rgba(0,0,0,.15);background-color:var(--base03);box-shadow:0 2px 8px rgba(0,0,0,.15),0 18px 50px rgba(0,0,0,.25);transition:max-width .2s ease}.term.maximized{max-width:100%;height:92vh;max-height:92vh}.titlebar{flex-shrink:0;display:flex;align-items:center;gap:.5em;min-height:2.6em;padding:.45em .7em .45em .9em;background-color:#2d2d2d;border-bottom:1px solid rgba(0,0,0,.5);user-select:none;cursor:grab;touch-action:none}.term.maximized .titlebar{cursor:default}.wtitle{flex:1;min-width:0;text-align:center;font-size:.82em;font-weight:600;color:#c7cacd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.winbtns{flex-shrink:0;display:flex;gap:.45em}.wbtn{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;padding:0;border:none;border-radius:50%;font:inherit;font-size:.72rem;line-height:1;color:#c3c7cb;text-decoration:none;background-color:rgba(255,255,255,.09);transition:background-color .15s,color .15s}.wbtn:hover{background-color:rgba(255,255,255,.17)}.wbtn.close,.wbtn.max{cursor:pointer}.wbtn.close:hover{background-color:#e01b24;color:#fff}.resize-handle{position:absolute;right:.2em;bottom:.2em;width:1.1em;height:1.1em;cursor:nwse-resize;touch-action:none;clip-path:polygon(100% 0,100% 100%,0 100%);background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(147,161,161,.35) 3px 4px)}.resize-handle:hover{background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(147,161,161,.7) 3px 4px)}.term.maximized .resize-handle{display:none}.screen{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1.4em;padding:2.2em 2.4em;background-color:var(--base03);color:var(--base0);scrollbar-width:thin;scrollbar-color:var(--base01) transparent}.screen>.input-line{flex-shrink:0}.line{font-size:.95em}.prompt{color:var(--green);font-weight:600;user-select:none}.input-line{display:flex;align-items:baseline;gap:.6em;cursor:text}.field{display:flex;align-items:baseline;min-width:0}#cmd{font:inherit;color:var(--base0);background:0 0;border:none;padding:0;outline:0;width:1ch;max-width:100%;caret-color:transparent}.cursor{flex-shrink:0;width:.6em;height:1.1em;align-self:center;background-color:var(--base0);animation:blink .7s step-end infinite}.input-line.typing .cursor{animation:none}#scrollback{display:flex;flex-direction:column;gap:1.4em}.entry{display:flex;flex-direction:column;gap:.6em}.cols span{margin-right:1.75em}.dim,.list{display:flex;flex-direction:column;gap:.15em}.list .line{white-space:pre-wrap}.cols .d,.list .d{color:var(--blue);font-weight:600}.cols .x,.list .x{color:var(--green);font-weight:600}.dim .line{color:var(--base01)}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.talks{list-style:none;display:flex;flex-direction:column;gap:1.2em}.talks a{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1.2em;text-decoration:none;color:inherit;padding:.35em .5em;margin:-.35em -.5em;border-radius:.25em;transition:background-color .15s}.talks a:hover{background-color:var(--base02)}.talks time{color:var(--violet);font-variant-numeric:tabular-nums;white-space:nowrap}.talks .title{color:var(--base1);font-weight:600}.talks a:hover .title{color:var(--blue);text-decoration:underline}.fmt{font-size:.85em;white-space:nowrap;user-select:none}.fmt-slides{color:var(--cyan)}.fmt-pdf{color:var(--orange)}.meta{padding-left:calc(7ch + 1.2em);margin-top:.35em}.subtitle{font-size:.9em;color:var(--base0)}.venue{font-size:.8em;color:var(--base01);margin-top:.15em}.abstract{font-size:.85em;line-height:1.6;color:var(--base0);max-width:62ch;margin-top:.7em}@media (max-width:640px){body{font-size:13px;padding:1.5em .75em}.screen{padding:1.6em 1.3em}.talks a{grid-template-columns:auto 1fr;gap:.4em 1em}.talks .fmt{justify-self:start}.talks .title{grid-column:1/-1;grid-row:2}.meta{padding-left:0}}