:root{--bg: #F6F6F6;--ink: #111111;--grey: #767676;--line: #C9C9C9;--surface: #ECECEC;--accent: #000000;--measure: 46rem;--mono: "Hack", ui-monospace, "JetBrains Mono", monospace;--serif: "EB Garamond", Georgia, serif;--footer-h: 4.75rem}@media (prefers-color-scheme: dark){:root{--bg: #0F0F0F;--ink: #E5E5E5;--grey: #8A8A8A;--line: #333333;--surface: #161616;--accent: #FFFFFF}}*{box-sizing:border-box;border-radius:0!important}html{background:var(--bg);color-scheme:light dark}body{margin:0;color:var(--ink);font-family:var(--serif);font-size:1.1875rem;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-bottom:var(--footer-h)}.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.25rem}header.site{padding:1.6rem 0 1.1rem;border-bottom:1px solid var(--line)}header.site .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.wordmark{font-family:var(--mono);font-size:.9rem;letter-spacing:.08em;color:var(--ink);text-decoration:none;white-space:nowrap}.wordmark:hover{color:var(--accent)}nav.site{display:flex;gap:1.6rem;flex-wrap:wrap}nav.site a{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:lowercase;color:var(--ink);text-decoration:none}nav.site a:hover{text-decoration:underline;text-underline-offset:4px}.hero{margin:3rem 0 1.25rem}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.25;max-width:36rem;margin:0 0 .6rem;text-wrap:balance}.sys-status{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;color:var(--grey);margin:0}.section-head{font-family:var(--mono);font-size:.75rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);border-top:1px solid var(--line);padding-top:.6rem;margin:2rem 0 1.4rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 640px){.project-grid{grid-template-columns:1fr}}.project-card{border:1px solid var(--line);display:block;color:var(--ink);text-decoration:none;background:var(--surface)}.project-card:hover{border-color:var(--accent)}.project-card:hover .card-title{color:var(--accent)}.card-thumb{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;border-bottom:1px solid var(--line);background:var(--bg)}.card-thumb--empty{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--grey)}.card-body{padding:.9rem 1rem 1.1rem}.card-title{font-family:var(--serif);font-size:1.25rem;font-weight:500;margin:0 0 .3rem}.card-tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--grey);margin:0 0 .5rem}.card-no{color:var(--accent)}.card-desc{font-size:1rem;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}ol.ledger{list-style:none;margin:0;padding:0}ol.ledger li{border-bottom:1px solid var(--line)}ol.ledger a{display:grid;grid-template-columns:3.6rem 6.5rem 1fr;gap:0 1.25rem;align-items:baseline;padding:.9rem 0;color:var(--ink);text-decoration:none}ol.ledger a:hover .ledger-title{color:var(--accent)}.ledger-no,.ledger-date{font-family:var(--mono);font-size:.72rem;white-space:nowrap}.ledger-no{color:var(--accent)}.ledger-date{color:var(--grey)}.ledger-title{font-family:var(--serif);font-weight:700;font-size:1.15rem}.ledger-thesis{grid-column:3;font-style:italic;color:var(--grey);font-size:1rem;line-height:1.45}@media (max-width: 640px){ol.ledger a{grid-template-columns:3.4rem 1fr}.ledger-date{display:none}.ledger-thesis{grid-column:2}}article h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,4.5vw,2.1rem);line-height:1.2;margin:2.5rem 0 .5rem;text-wrap:balance}.article-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--grey);margin:0 0 2.25rem}.article-meta .no{color:var(--accent)}article p{margin:0 0 .4rem;hyphens:auto}article p+p{text-indent:1.6em;margin-top:0}article h1,article h2,article h3{text-wrap:balance;letter-spacing:-.005em}article h2{font-weight:500;font-size:1.5rem;margin-top:2.5rem}article h3{font-weight:500;font-size:1.2rem}article a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}article a:hover{color:var(--accent)}article blockquote{margin:1.75rem 0;padding-left:1.25rem;border-left:1px solid var(--accent);font-style:italic;color:var(--grey)}article code{font-family:var(--mono);font-size:.8em;background:var(--surface);padding:.1em .35em}article pre{border:1px solid var(--line);padding:1.5rem 1.75rem;margin:2.25rem 0;overflow-x:auto;font-size:.85rem;line-height:1.6;tab-size:4}article pre code{background:none;padding:0;font-family:var(--mono)}@media (min-width: 900px){article pre{margin-inline:-1.75rem}}article img{max-width:100%;border:1px solid var(--line)}.video{aspect-ratio:16 / 9;width:100%;border:1px solid var(--ink);margin:.5rem 0 2rem}.aside-note{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--grey);margin-top:2.5rem}.construction{font-family:var(--mono);color:var(--grey);font-size:.85rem;letter-spacing:.06em;margin:4rem 0}.construction .blink-safe{color:var(--accent)}.portfolio-ascii{font-family:var(--mono);font-size:clamp(.55rem,1.9vw,.85rem);line-height:1.15;color:var(--grey);display:block;width:max-content;max-width:100%;margin:0 auto 3rem;overflow-x:auto;white-space:pre;text-align:left}footer.site{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--bg);border-top:1px solid var(--line)}footer.site .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:.35rem .7rem;flex-wrap:wrap;padding-top:.7rem;padding-bottom:calc(.7rem + env(safe-area-inset-bottom));font-family:var(--mono);font-size:.68rem;letter-spacing:.04em}footer.site a{color:var(--ink);text-decoration:none}footer.site a:hover{color:var(--accent)}@media (max-width: 520px){:root{--footer-h: 5.25rem}footer.site .wrap{justify-content:center;font-size:.62rem;gap:.4rem .75rem}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--ink);color:var(--bg)}.wordmark:hover,footer.site a:hover,nav.site a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.project-card:hover{border-color:var(--ink)}.project-card:hover .card-title,ol.ledger a:hover .ledger-title{color:var(--ink);text-decoration:underline;text-underline-offset:3px}article a{text-decoration-color:var(--grey)}article a:hover{color:var(--ink);background:none}article blockquote{border-left-color:var(--grey)}:focus-visible{outline-color:var(--ink)}ol.ledger a{margin-inline:-.9rem;padding-inline:.9rem}ol.ledger a:hover{background:var(--surface)}.end-mark{font-family:var(--mono);font-size:.7rem;line-height:1.25;color:var(--grey);display:block;width:max-content;max-width:100%;margin:3.5rem auto 1.5rem;white-space:pre;overflow-x:auto;text-align:left}@media (max-width: 420px){header.site .wrap{gap:.6rem}nav.site{gap:1rem}.wordmark{font-size:.8rem}nav.site a{font-size:.72rem}}
