:root{--bg:#090909;--text:#eee;--muted:#9a9a9a;--soft:#666;--line:#ffffff21;--hover:#ffffff0b;--max:640px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);letter-spacing:-.015em;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}::selection{color:#090909;background:#eee}.page{min-height:100vh}.shell,.project-shell{width:min(var(--max), calc(100% - 40px));margin-left:auto;margin-right:auto}.fade-in{animation:.42s both pageEnter}@keyframes pageEnter{0%{opacity:0;filter:blur(6px);transform:translateY(4px)}to{opacity:1;filter:blur();transform:translateY(0)}}.hero{padding:112px 0 58px}.kicker{color:var(--soft);margin:0 0 18px;font-size:13px}h1{letter-spacing:-.055em;margin:0;font-size:clamp(36px,8vw,58px);font-weight:450;line-height:1}.intro{letter-spacing:-.04em;color:#f1f1f1;max-width:600px;margin:26px 0 0;font-size:clamp(20px,4vw,28px);font-weight:420;line-height:1.22}.sub-intro{max-width:570px;color:var(--muted);margin:18px 0 0;font-size:15px;line-height:1.58}.intro-links{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:22px;font-size:13px;display:flex}.intro-links a{transition:color .14s,opacity .14s,transform .14s}.intro-links:hover a{opacity:.52}.intro-links a:hover{color:var(--text);opacity:1;transform:translateY(-1px)}.section{padding:54px 0 24px;scroll-margin-top:78px}.last-section{padding-bottom:120px}.section-heading{color:var(--soft);align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.section-heading span{font-size:12px}.section-heading h2{letter-spacing:0;text-transform:none;color:var(--muted);margin:0;font-size:13px;font-weight:450}.project-list,.timeline{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);grid-template-columns:32px 1fr;gap:14px;padding:20px 0;transition:background .14s,padding .14s,opacity .14s;display:grid}.project-list:hover .project-row{opacity:.58}.project-list .project-row:hover{opacity:1;background:var(--hover);padding-left:10px;padding-right:10px}.project-index{color:var(--soft);padding-top:4px;font-size:12px}.project-main{gap:7px;display:grid}.project-title{letter-spacing:-.025em;font-size:18px;font-weight:450}.project-summary{color:var(--muted);max-width:530px;font-size:14px;line-height:1.48}.project-meta{color:var(--soft);text-align:left;grid-column:2;gap:10px;font-size:12px;line-height:1.5;display:flex}.project-meta span+span:before{content:"·";color:var(--soft);margin-right:10px}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:8px;padding:20px 0;display:grid}.timeline-item h3{letter-spacing:-.025em;margin:0 0 4px;font-size:16px;font-weight:450}.timeline-item p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.timeline-item time{color:var(--soft);margin-bottom:6px;font-size:12px;display:block}.project-page{min-height:100vh;padding:48px 0 120px}.back-link{color:var(--muted);letter-spacing:0;margin-bottom:48px;font-size:13px;transition:color .14s,transform .14s;display:inline-block}.back-link:hover{color:var(--text);transform:translate(-2px)}.project-hero-detail{padding:0 0 32px}.project-hero-detail p:last-child{max-width:600px;color:var(--muted);margin:24px 0 0;font-size:19px;line-height:1.42}.detail-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;display:grid}.detail-grid>div{padding:18px 0}.detail-grid>div:nth-child(odd){padding-right:18px}.detail-grid>div:nth-child(2n){padding-left:18px}.detail-label{color:var(--soft);margin-bottom:10px;font-size:12px;display:block}.detail-grid p,.case-section p{color:var(--muted);margin:0;font-size:14px;line-height:1.56}.detail-grid a{color:var(--text);border-bottom:1px solid var(--line)}.case-section{border-bottom:1px solid var(--line);padding:40px 0}.case-section p{letter-spacing:-.02em;max-width:600px;font-size:16px}.demo-panel{background:0 0;margin-top:0}@media (max-width:760px){.hero{padding-top:72px}.intro-links{gap:11px 14px}.detail-grid{grid-template-columns:1fr}.detail-grid>div:nth-child(odd),.detail-grid>div:nth-child(2n){padding-left:0;padding-right:0}.back-link{margin-bottom:36px}}
