@font-face{font-family:SF Mono Terminal;font-style:normal;font-weight:400 700;src:local("SF Mono Terminal"),local("SFMono-Regular"),local("SF Mono")}:root{color-scheme:dark;--color-bg: #18191d;--color-bg-rgb: 24, 25, 29;--color-surface: #1f2025;--color-surface-2: #26282d;--color-text: #e6edf3;--color-muted: #8b949e;--color-line: #3a3c43;--color-blue: #00b1d2;--color-blue-rgb: 0, 177, 210;--color-green: #69ff47;--color-pink: #ff3ea5;--color-pink-text: #ff51ae;--font-primary: "SF Mono Terminal", "SFMono-Regular", "SF Mono", Menlo, Monaco, Consolas, monospace;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--weight-regular: 400;--weight-strong: 600;--leading: 1.5;--leading-tight: 1.3;--letter-spacing: .01em;--frame: 60rem;--gutter: max(2rem, 100vw / 12);--header-top-gap: clamp(1rem, 2.4vw, 2.25rem);--content-top-gap: clamp(4rem, 6vw, 8rem);--gap-heading: 8px;--gap-output: 24px;--gap-section: 56px;--row-pad: 6px;--control-height: 40px;--key-col: 10ch;--branch-col: 4ch;--col-gap: 3ch;--preview-col: minmax(220px, 320px);--radius: 6px}@media(prefers-color-scheme:light){:root{color-scheme:light;--color-bg: #f3f4f6;--color-bg-rgb: 243, 244, 246;--color-surface: #e3e3e5;--color-surface-2: #d9d9db;--color-text: #18191d;--color-muted: #565c63;--color-line: #bbbcc0;--color-blue: #007A92;--color-blue-rgb: 0, 122, 146;--color-green: #228100;--color-pink: #d70085;--color-pink-text: #d60089}}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--color-bg);font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;min-height:100vh;margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading);letter-spacing:var(--letter-spacing)}h1,h2,h3,p,ul,dl,dd,figure,blockquote{margin:0}h1{font-size:var(--text-lg);font-weight:var(--weight-strong);line-height:var(--leading-tight)}h2,h3{font-size:var(--text-base);font-weight:var(--weight-strong)}strong{font-weight:var(--weight-strong)}button,input,select,textarea{font:inherit;letter-spacing:inherit}a{color:var(--color-blue);text-decoration:none;transition:color .16s ease}a:hover{color:var(--color-text)}:focus-visible{outline:2px solid var(--color-blue);outline-offset:4px}::selection{background:rgba(var(--color-blue-rgb),.24);color:var(--color-text)}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row dt,.course-disclosure-label,.tag,.project-status,.tree-branch,.project-tags li,.caption,.back-link,.booking-caption,.booking-status,.local-mode-note{font-size:var(--text-sm)}.shell{width:min(100% - var(--gutter) * 2,var(--frame));min-height:100vh;margin:0 auto;padding:0 0 clamp(42px,8vw,84px);display:grid;grid-template-rows:auto 1fr;gap:var(--content-top-gap)}.site-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:1ch;min-height:var(--control-height);padding-top:var(--header-top-gap);font-weight:var(--weight-strong);line-height:var(--leading-tight)}.site-mark,.address-path{font-weight:var(--weight-regular);line-height:var(--leading)}.site-mark{display:inline-flex;min-height:var(--control-height);align-items:center;color:var(--color-green);white-space:nowrap}.site-mark:hover{color:var(--color-green)}.address-path{display:inline-flex;min-width:0;align-items:center;overflow:hidden;color:var(--color-muted);white-space:nowrap}.address-crumb,.address-separator{color:var(--color-muted)}.address-crumb{display:inline-flex;min-height:32px;align-items:center}.address-crumb:hover,.address-crumb:focus-visible{color:var(--color-text)}.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:2ch}.site-nav a{display:inline-flex;min-height:var(--control-height);align-items:center;color:var(--color-muted);white-space:nowrap}.site-nav a:hover,.site-nav a:focus-visible{color:var(--color-text)}.site-nav a[aria-current=page]{color:var(--color-blue)}main{display:block;min-width:0}.page-heading{display:grid;gap:var(--gap-heading)}.prompt-symbol,.prompt-cursor{color:var(--color-green)}.lead{max-width:64ch;color:var(--color-muted);overflow-wrap:break-word}.rows+.prompt{margin-top:var(--gap-heading)}.rows{display:grid;margin-top:var(--gap-output)}.row{display:grid;grid-template-columns:var(--key-col) minmax(0,1fr);column-gap:var(--col-gap);padding:var(--row-pad) 0;align-items:baseline}.row dt,.course-disclosure-label{color:var(--color-muted)}.row dd{min-width:0;max-width:74ch;overflow-wrap:break-word;text-wrap:pretty}.line{display:block;text-wrap:balance}.links{display:flex;flex-wrap:wrap;gap:0 2ch}.tutoring-details{margin-top:var(--gap-output)}.tutoring-details .rows{margin-top:0}.course-disclosure>summary{min-height:var(--control-height);list-style:none;cursor:pointer}.course-disclosure>summary::-webkit-details-marker{display:none}.course-disclosure-toggle{display:inline-flex;align-items:center;gap:1ch;min-width:0;color:var(--color-blue);transition:color .16s ease}.course-disclosure>summary:hover .course-disclosure-toggle,.course-disclosure>summary:focus-visible .course-disclosure-toggle{color:var(--color-text)}.course-disclosure-chevron{flex:none;width:1em;height:1em;transition:transform .16s ease}.course-disclosure[open] .course-disclosure-chevron{transform:rotate(90deg)}.entry-list{display:grid;margin-top:var(--gap-output)}.entry{display:grid;grid-template-columns:var(--key-col) minmax(0,1fr);column-gap:var(--col-gap);padding:var(--row-pad) 0;align-items:baseline}.entry>div{min-width:0}.entry h2,.entry h3,.project-row h2{font-weight:var(--weight-regular)}.tag{color:var(--color-muted);white-space:nowrap}.entry p{max-width:64ch;color:var(--color-muted)}.entry .quote{color:var(--color-text)}.caption{color:var(--color-muted)}.list-section{margin-top:var(--gap-output)}.list-section .entry-list{margin-top:var(--gap-heading)}.section-heading:before{content:"## ";color:var(--color-blue)}.back-link{margin-top:var(--gap-output);color:var(--color-muted)}.back-link a:before{content:"../";color:var(--color-muted)}.directory-list{display:grid;margin-top:var(--gap-output)}.directory-row{display:grid;grid-template-columns:var(--branch-col) var(--key-col) minmax(0,1fr);column-gap:var(--col-gap);min-width:0;padding:var(--row-pad) 0;align-items:baseline;color:inherit}.tree-branch{color:var(--color-muted);white-space:nowrap}.directory-name{color:var(--color-blue);font-weight:var(--weight-strong);white-space:nowrap}.directory-row:hover .directory-name,.directory-row:focus-visible .directory-name{color:var(--color-text)}.directory-description{min-width:0;color:var(--color-muted);overflow-wrap:break-word}.project-list{display:grid;margin-top:var(--gap-output)}.project-row{display:grid;grid-template-columns:var(--branch-col) var(--key-col) minmax(0,1fr) var(--preview-col);column-gap:var(--col-gap);row-gap:var(--row-pad);padding:16px 0;border-top:1px solid var(--color-line);align-items:baseline}.project-row>*{min-width:0}.project-row:first-child{border-top:0;padding-top:var(--row-pad)}.project-row .tree-branch{grid-column:1}.project-status{grid-column:2;color:var(--color-muted);white-space:nowrap}.project-row h2{grid-column:3;overflow-wrap:break-word}.project-summary{grid-column:3;max-width:60ch;color:var(--color-muted);overflow-wrap:break-word}.project-tags{grid-column:3;display:flex;flex-wrap:wrap;gap:0 1.5ch;padding:0;list-style:none}.project-tags li{color:var(--color-muted);white-space:nowrap}.project-tags li:before{content:"#";color:var(--color-blue)}.local-dashboard-link{grid-column:3}.project-preview{grid-column:4;grid-row:1 / span 5;align-self:start;position:relative;aspect-ratio:16 / 10;width:100%;max-width:100%;min-width:0;overflow:hidden;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface-2)}.project-preview img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.58) contrast(.9) brightness(.82);opacity:.92}.project-preview .caption{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:2px 7px;border:1px solid var(--color-line);background:rgba(var(--color-bg-rgb),.88);overflow-wrap:break-word}.local-mode-note{max-width:68ch;margin:22px 0 0 calc(var(--branch-col) + var(--key-col) + var(--col-gap) * 2);color:var(--color-pink-text)}.booking{display:grid;gap:var(--gap-heading);margin-top:var(--gap-section);scroll-margin-top:24px}.booking-tabs{display:flex;flex-wrap:wrap;gap:8px}.booking-tab{display:inline-flex;min-height:var(--control-height);align-items:center;justify-content:center;padding:0 14px;border:1px solid var(--color-line);border-radius:var(--radius);color:var(--color-muted);font-weight:var(--weight-strong);white-space:nowrap;transition:color .16s ease,border-color .16s ease}.booking-tab:hover,.booking-tab:focus-visible{color:var(--color-text)}.booking-tab[aria-selected=true]{border-color:var(--color-blue);color:var(--color-blue)}.booking-embed{display:grid;gap:var(--gap-heading)}.booking-embed[hidden]{display:none}.booking-caption{color:var(--color-muted)}.booking-caption a{white-space:nowrap}.booking-frame{position:relative;min-height:560px}.booking-status{position:absolute;top:0;left:0;color:var(--color-muted)}.booking-frame:has(cal-inline[loading=done]){min-height:0}.booking-frame:has(cal-inline[loading=done]) .booking-status{display:none}.status-public{color:var(--color-green)}.status-draft,.status-empty,.status-local{color:var(--color-pink-text)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:760px){.site-header{grid-template-columns:auto minmax(0,1fr)}.site-nav{grid-column:1 / -1;justify-content:flex-start;width:100%;overflow-x:auto;scrollbar-width:none}.site-nav a{flex:0 0 auto}.directory-row{grid-template-columns:var(--branch-col) minmax(0,1fr);column-gap:1ch}.directory-description{grid-column:2}.project-row{grid-template-columns:var(--branch-col) minmax(0,1fr);column-gap:1ch}.project-row .tree-branch{grid-row:1}.project-status,.project-row h2,.project-summary,.project-tags,.local-dashboard-link,.project-preview{grid-column:2}.project-status{grid-row:1}.project-row h2{grid-row:2}.project-preview{grid-row:auto;width:min(100%,420px);margin-top:4px}.local-mode-note{margin-left:calc(var(--branch-col) + 1ch)}}@media(max-width:420px){:root{--branch-col: 3ch}.row,.entry{grid-template-columns:minmax(0,1fr)}.line{text-wrap:pretty}.booking-tab{flex:1 1 auto}.project-tags li{white-space:normal}}
