@font-face{font-family:Inter;src:url('/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{color-scheme:light;--bg:#faf9f6;--fg:#242521;--muted:#696c63;--line:#e1e2db;--accent:#3359d8;--hover:#efefe9}
:root[data-theme=dark]{color-scheme:dark;--bg:#181a1b;--fg:#e8e9e4;--muted:#a0a49b;--line:#323635;--accent:#9baeff;--hover:#242829}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[x-cloak]{display:none!important}.skip{position:absolute;top:-100px;padding:10px;background:var(--fg);color:var(--bg)}.skip:focus{top:10px}.page{max-width:740px;padding:0 36px;margin:auto}h1 span{color:var(--accent)}.theme-toggle{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;color:var(--muted);background:transparent;cursor:pointer}.theme-toggle:hover{background:var(--hover);color:var(--fg)}.theme-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.intro{padding:55px 0 65px}h1{font-size:64px;letter-spacing:-3.5px;font-weight:550;line-height:1.05;margin:0 0 24px}.intro p{font-size:15px;line-height:1.85;color:var(--muted);margin:0 0 19px}.forgejo{font-size:13px;color:var(--accent)}a:hover{color:var(--accent)}h2{font-size:12px;letter-spacing:.5px;font-weight:600;color:var(--muted);margin:0 0 17px}h3{font-size:17px;letter-spacing:-.35px;font-weight:550;margin:0}.project{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:21px 0}.project p{color:var(--muted);font-size:13px;line-height:1.7;margin:7px 0 0;max-width:550px}.arrow{color:var(--muted);font-size:18px}.project:hover .arrow{color:var(--accent)}details{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:20px;padding:20px 0;font-size:14px;line-height:1.5}summary::-webkit-details-marker{display:none}summary:hover{color:var(--accent)}.plus{width:13px;height:13px;position:relative;flex-shrink:0;margin-left:auto;color:var(--muted)}.plus:before,.plus:after{content:'';position:absolute;background:currentColor;left:1px;top:6px;width:11px;height:1px}.plus:after{transform:rotate(90deg)}details[open] .plus:after{display:none}.project-note{border-bottom:1px solid var(--line)}.project-note summary{font-size:17px;letter-spacing:-.35px;font-weight:550}.detail{padding:0 0 22px;font-size:13px;color:var(--muted);line-height:1.85}.detail p{margin:0 0 12px}.detail p:last-child{margin-bottom:0}.detail-links{display:flex;flex-wrap:wrap;gap:8px 22px}.detail a{color:var(--accent)}.timeline{margin-top:55px}.events{border-bottom:1px solid var(--line)}.events summary time{width:90px;flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}.event-title{font-weight:450;letter-spacing:-.15px}.events .detail{margin-left:110px;max-width:510px}footer{margin:60px 0 25px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
@media(max-width:540px){.page{padding:0 24px}.intro{padding:36px 0 48px}h1{font-size:52px;letter-spacing:-2.8px}.intro p{font-size:13px;line-height:1.9}.project{padding:18px 0}.project p{font-size:12px}.timeline{margin-top:45px}summary{gap:12px;padding:18px 0;font-size:13px}.events summary time{width:68px;font-size:10px}.events .detail{margin-left:80px;font-size:12px}.project-note .detail{font-size:12px}.detail-links{display:block}.detail-links a{display:block;margin-top:8px}footer{margin-top:45px}}
@media(max-width:360px){.page{padding:0 20px}h1{font-size:46px}.events summary time{width:58px}.events .detail{margin-left:0}.events summary{gap:10px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.project-info summary{gap:24px}.project-info summary>div{min-width:0}.project-info summary p{color:var(--muted);font-size:13px;line-height:1.7;margin:7px 0 0}.project-info:last-child{border-bottom:1px solid var(--line)}.project-info .stack{font-size:11px;color:var(--fg)}.project-info .detail{padding-top:0}.background{margin-top:45px}.background details:last-child{border-bottom:1px solid var(--line)}@media(max-width:540px){.project-info summary p{font-size:12px}.events summary time{width:72px}.events .detail{margin-left:84px}}
@media(max-width:360px){.events summary time{width:66px}.events .detail{margin-left:0}}

.tool-list{margin:0 0 18px}.tool-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:7px 0}.tool-list dt{color:var(--fg)}.tool-list dd{margin:0;text-align:right;font-size:11px;font-variant-numeric:tabular-nums}.rating-note{font-size:11px}.background .project-info:last-child{border-bottom:1px solid var(--line)}
@media(max-width:360px){.tool-list>div{gap:12px}.tool-list dt{font-size:12px}}

.detail strong{font-weight:550;color:var(--fg)}

.name-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.name-row h1{margin:0}.name-row .theme-toggle{flex-shrink:0}.intro{padding-top:70px}.link-arrow{display:inline-block;width:12px;height:12px;margin-left:5px;vertical-align:-1px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:540px){.intro{padding-top:45px}.name-row{gap:12px}}

/* Refinements within the existing typography and expandable-row layout. */
.theme-toggle[hidden],.theme-toggle .sun{display:none}
:root[data-theme=dark] .theme-toggle .moon{display:none}
:root[data-theme=dark] .theme-toggle .sun{display:block}
.section-note{font-size:12px;line-height:1.8;color:var(--muted);margin:-5px 0 20px}
.event-kind{display:block;font-size:10px;line-height:1.6;letter-spacing:0;color:var(--muted);font-weight:400;margin-top:3px}
.tool-list>div{align-items:baseline;justify-content:flex-start;padding:9px 0}
.tool-list dt{flex:0 0 165px}
.tool-list dd{font-size:12px;text-align:left;line-height:1.8}
.detail a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.detail a:hover{text-decoration-color:currentColor}
.link-tail{white-space:nowrap}
.project-info{scroll-margin-top:24px}
@media(max-width:540px){.tool-list>div{display:block}.tool-list dd{margin-top:3px}.events summary{align-items:flex-start}.events summary time{padding-top:2px}.events .plus{margin-top:5px}.section-note{font-size:11px}}
.intro-links,.footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}
.section-note a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
#agent-workflow{scroll-margin-top:24px}
@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#181a1b;--fg:#e8e9e4;--muted:#a0a49b;--line:#323635;--accent:#9baeff;--hover:#242829}}

.projects>.project-info:last-of-type{border-bottom:1px solid var(--line)}
.projects>.section-note:last-child{margin:18px 0 0}

/* Manga project page shares the portfolio's typography, spacing, and themes. */
.back-link{display:inline-block;margin-bottom:28px}
.manga-intro{padding-bottom:45px}
.manga-section{margin-bottom:45px;scroll-margin-top:24px}
.manga-copy{border-top:1px solid var(--line);padding-top:20px}
.manga-shot{margin:0 0 32px}
.screenshot-link{display:block;border:1px solid var(--line);background:#0b0c0f}
.screenshot-link img{display:block;width:100%;height:auto}
.screenshot-link:hover{border-color:var(--accent)}
.manga-shot figcaption{padding-top:14px}
.manga-shot figcaption p{font-size:13px;line-height:1.85;color:var(--muted);margin:7px 0 0}
.manga-shot figcaption a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line);white-space:nowrap}
.manga-shot figcaption a:hover{text-decoration-color:currentColor}
@media(max-width:540px){.manga-intro{padding-bottom:35px}.manga-section{margin-bottom:35px}.manga-shot figcaption p{font-size:12px}}
