:root{color-scheme:dark;--bg: #0a0e14;--surface: #101722;--surface-strong: #121c29;--text: #d8dee9;--dim: #7f8b99;--border: #202b3a;--green: #8aff80;--blue: #82aaff;--amber: #ffd580;font-family:JetBrains Mono,Cascadia Code,Consolas,monospace}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--text);background:radial-gradient(circle at 50% 0%,rgba(130,170,255,.09),transparent 34rem),var(--bg);font-size:14px;line-height:1.65}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3,p{margin:0}.site-frame{width:min(720px,100%);min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.topline,.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px}.topline{border-bottom:1px solid var(--border)}.home-link{color:var(--green);font-weight:700}nav,.footer div{display:flex;flex-wrap:wrap;gap:22px}nav a,.footer a,.footer span{color:var(--dim);font-size:13px}nav a:hover,nav a.active,.footer a:hover,.green-link:hover{color:var(--green)}nav a.active{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.terminal-flow{flex:1;padding:52px 24px}.terminal-section{margin-bottom:52px}.terminal-section:last-child{margin-bottom:0}.command{margin-bottom:16px;color:var(--blue)}.command span{color:var(--green)}.profile-card,.project-item,.note-list p,.contact-card{border:1px solid var(--border);border-radius:10px;background:var(--surface)}.profile-card{padding:18px;background:linear-gradient(135deg,rgba(138,255,128,.08),transparent 46%),var(--surface)}.profile-row{display:flex;align-items:center;gap:18px}.avatar{width:72px;height:72px;flex:0 0 auto;display:grid;place-items:center;border:2px solid var(--green);border-radius:50%;background:var(--surface-strong);color:var(--green);font-size:22px;font-weight:600;letter-spacing:.04em;line-height:1}h1{color:var(--text);font-size:17px;line-height:1.4}.role{color:var(--dim);font-size:13px}.green-link{color:var(--green);font-size:13px}.small-link{display:inline-block;margin-top:12px}.summary,.summary-block{max-width:620px;margin-top:18px;color:var(--text)}.summary-block{display:grid;gap:12px}.summary-block p{color:var(--text)}.stack-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}.stack-line span{border:1px solid rgba(138,255,128,.2);border-radius:999px;background:#8aff800f;color:var(--green);font-size:11px}.stack-line span{padding:4px 8px}.log-list{padding-left:16px;border-left:2px solid var(--border)}.log-item{display:grid;grid-template-columns:86px 1fr;gap:20px;margin-bottom:16px}.log-item:last-child{margin-bottom:0}.log-item time{color:var(--dim);font-size:12px}.log-item strong{color:var(--text);font-weight:500}.log-item small{display:block;color:var(--dim);font-size:12px}.project-list,.note-list{display:grid;gap:10px}.project-item{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:14px 16px;transition:border-color .16s ease,transform .16s ease,background .16s ease}.project-item:hover{transform:translateY(-1px);border-color:#8aff8073;background:var(--surface-strong)}.project-item strong{color:var(--text);font-weight:500}.project-item p{margin-top:4px;color:var(--dim);font-size:13px}.project-item .stack-line{margin-top:12px}.note-list p{padding:13px 16px;color:var(--text);font-size:13px}.note-list p:before{content:"- ";color:var(--amber)}.contact-card{padding:18px;background:linear-gradient(135deg,rgba(130,170,255,.09),transparent 52%),var(--surface)}.contact-card p{margin-bottom:8px}.page-intro{border:1px solid var(--border);border-radius:10px;background:linear-gradient(135deg,rgba(130,170,255,.09),transparent 52%),var(--surface);padding:18px}.page-intro h1{font-size:18px}.page-intro p{max-width:620px;margin-top:10px;color:var(--dim);font-size:13px}.story-flow{padding-top:42px}.story-card{display:grid;gap:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:18px}.story-card-primary{background:linear-gradient(135deg,rgba(138,255,128,.06),transparent 46%),var(--surface)}.story-card h1{font-size:15px;font-weight:500}.story-card p{color:var(--text);font-size:13px}.project-archive{display:grid;gap:12px}.archive-item{display:grid;gap:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;overflow:hidden;transition:background .16s ease,border-color .16s ease}.archive-item:hover{border-color:#8aff8061;background:var(--surface-strong)}.project-preview,.dialog-media{position:relative;border:0;background:var(--surface);overflow:hidden}.project-preview{width:100%;height:178px;min-height:178px;cursor:pointer;color:inherit;font:inherit;text-align:left}.project-preview img,.project-preview video{display:block;width:100%;height:100%;object-fit:cover}.preview-number{position:absolute;z-index:2;top:14px;color:var(--dim);font-size:12px}.preview-number{left:16px;color:var(--blue)}.preview-number-inline{position:static;display:block;margin-bottom:8px}.has-cover .preview-number-inline{display:none}.preview-ui{position:absolute;inset:44px 16px 16px}.preview-ui div,.dialog-media .preview-ui div{position:absolute;border:1px solid rgba(130,170,255,.24);border-radius:6px;background:#82aaff14}.preview-ui div:nth-child(1),.dialog-media .preview-ui div:nth-child(1){top:0;right:0;left:0;height:44px}.preview-ui div:nth-child(2),.dialog-media .preview-ui div:nth-child(2){top:54px;left:0;width:52%;height:86px}.preview-ui div:nth-child(3),.dialog-media .preview-ui div:nth-child(3){right:0;bottom:0;width:40%;height:62px;border-color:#8aff8042;background:#8aff8014}.project-copy{min-width:0;padding:16px;cursor:pointer}.project-copy h2{color:var(--text);font-size:15px;font-weight:500}.project-copy h2 a:hover{color:var(--green)}.project-copy p{margin-top:6px;color:var(--dim);font-size:13px}.project-copy .stack-line{margin-top:12px}.project-bottom{display:grid;margin-top:18px}.project-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:0}.project-links a{border:1px solid var(--border);border-radius:999px;padding:4px 8px;color:var(--blue);font-size:11px}.project-links a:hover{border-color:#8aff8073;color:var(--green)}.project-links a[data-link-kind=github],.dialog-link-row a[data-link-kind=github]{margin-right:auto}.preview-dialog{width:min(980px,calc(100% - 28px));border:1px solid var(--border);border-radius:12px;padding:0;background:var(--surface);color:var(--text)}.preview-dialog::backdrop{background:#000000b8}.dialog-shell{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);min-height:min(66vh,620px)}.dialog-close{position:absolute;top:14px;right:14px;z-index:3;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--dim);cursor:pointer;font:inherit;font-size:12px;padding:5px 10px}.dialog-close:hover{color:var(--green)}.dialog-media-wrap{position:relative;min-width:0;background:var(--bg)}.dialog-media-wrap:fullscreen{display:grid;width:100vw;height:100vh;background:var(--bg)}.dialog-media-wrap:fullscreen .dialog-media{width:100vw;height:100vh;min-height:100vh;border-right:0}.dialog-media-wrap:fullscreen .dialog-media img,.dialog-media-wrap:fullscreen .dialog-media video{width:100vw;height:100vh;max-height:none}.dialog-media{height:100%;min-height:min(66vh,620px);border-right:1px solid var(--border);background:var(--bg);cursor:pointer}.dialog-media>*{opacity:0;transform:scale(.985)}.dialog-media.is-entering>*{opacity:1;transform:scale(1);transition:opacity .17s ease,transform .17s ease}.dialog-media .preview-ui{inset:72px 28px 28px}.dialog-media img,.dialog-media video{display:block;width:100%;height:100%;max-height:min(66vh,620px);object-fit:contain;background:var(--bg)}.dialog-media img{cursor:zoom-in}.dialog-media-wrap:fullscreen .dialog-media img{cursor:default}.dialog-count{position:absolute;left:16px;bottom:16px;z-index:3;display:flex;align-items:center;padding:5px 9px;border:1px solid var(--border);border-radius:999px;background:#0a0e14d1;backdrop-filter:blur(10px)}.dialog-count span{color:var(--dim);font-size:12px}.dialog-nav{position:absolute;top:50%;z-index:3;display:grid;width:34px;height:34px;place-items:center;transform:translateY(-50%);border:1px solid var(--border);border-radius:999px;background:#0a0e14d1;color:var(--green);cursor:pointer;font:inherit;padding:0;backdrop-filter:blur(10px)}.dialog-nav:before{width:9px;height:9px;content:"";border-top:2px solid currentColor;border-left:2px solid currentColor}.dialog-prev:before{transform:rotate(-45deg)}.dialog-next:before{transform:rotate(135deg)}.dialog-prev{left:16px}.dialog-next{right:16px}.dialog-nav:hover{border-color:#8aff8073}.dialog-fullscreen{position:absolute;top:16px;right:16px;z-index:3;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--border);border-radius:999px;background:#0a0e14d1;color:var(--green);cursor:pointer;font:inherit;padding:0;backdrop-filter:blur(10px)}.dialog-fullscreen:before,.dialog-fullscreen:after{position:absolute;width:13px;height:13px;content:""}.dialog-fullscreen:before{top:8px;left:8px;border-top:2px solid currentColor;border-left:2px solid currentColor}.dialog-fullscreen:after{right:8px;bottom:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor}.dialog-media-wrap:fullscreen .dialog-fullscreen:before,.dialog-media-wrap:fullscreen .dialog-fullscreen:after{inset:50% auto auto 50%;width:15px;height:0;border:0;border-top:2px solid currentColor;transform-origin:center}.dialog-media-wrap:fullscreen .dialog-fullscreen:before{transform:translate(-50%,-50%) rotate(45deg)}.dialog-media-wrap:fullscreen .dialog-fullscreen:after{transform:translate(-50%,-50%) rotate(-45deg)}.dialog-fullscreen:hover{border-color:#8aff8073}.dialog-copy{display:flex;min-width:0;flex-direction:column;padding:18px;max-height:min(66vh,620px);overflow:auto}.dialog-copy .command{margin-bottom:8px}.dialog-copy h2{color:var(--text);font-size:15px;font-weight:500}.dialog-copy p:not(.command){margin-top:6px;color:var(--dim);font-size:13px}.dialog-description{display:grid;gap:12px;line-height:1.7}.dialog-description .description-highlight{color:currentColor;font-weight:700}.dialog-link-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:24px}.dialog-link-row a{border:1px solid var(--border);border-radius:999px;padding:4px 8px;color:var(--blue);font-size:11px}.dialog-link-row a:hover{border-color:#8aff8073;color:var(--green)}.footer{border-top:1px solid var(--border);color:var(--dim)}@media(max-width:620px){.topline,.footer{align-items:flex-start;flex-direction:column}.terminal-flow{padding-top:42px}.profile-row{align-items:flex-start}.log-item,.archive-item,.project-item{grid-template-columns:1fr;gap:8px}.project-item>span{width:fit-content;white-space:normal}.project-links{justify-content:flex-start}.dialog-shell{grid-template-columns:1fr}.dialog-media{min-height:360px;border-right:0;border-bottom:1px solid var(--border)}}
