*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-text: #111111;--color-text-muted: #444444;--color-text-faint: #777777;--color-bg: #ffffff;--color-accent: #0092b8;--color-divider: #f0f0f0;--color-number: #c0c0c0;--font-serif: "DM Serif Display", Georgia, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-width: 900px}html{font-family:var(--font-sans);font-weight:400;color:var(--color-text);background:var(--color-bg);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}body{max-width:var(--max-width);margin:0 auto;padding:0 48px 120px}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent)}h1,h2{font-family:var(--font-serif);font-weight:400}h3{font-family:var(--font-sans);font-weight:500;font-size:1rem}p{color:var(--color-text-muted)}strong{font-weight:500;color:var(--color-text)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:14px;margin-bottom:80px}.topbar-name{color:var(--color-text)}.topbar-email{color:var(--color-text-muted)}.topbar-email:hover{color:var(--color-accent)}.section{margin-bottom:120px}.section-label{font-family:var(--font-sans);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--color-accent);margin-bottom:24px}.hero h1{font-size:clamp(48px,8vw,96px);line-height:1.05;letter-spacing:-.02em;margin-bottom:16px}.hero .subtitle{font-family:var(--font-sans);font-size:18px;color:var(--color-text-muted);margin-bottom:4px}.hero .tagline{font-family:var(--font-sans);font-size:16px;color:var(--color-text-muted);margin-bottom:20px}.hero-links{font-size:15px;color:var(--color-text-muted)}.hero-links a{color:var(--color-text-muted)}.hero-links a:hover{color:var(--color-accent)}.about-text{max-width:600px;line-height:1.75}.skills-line{font-size:14px;color:var(--color-text-muted);margin-top:24px;line-height:1.9}.project-list{display:flex;flex-direction:column}.project-item{position:relative;display:flex;align-items:flex-start;gap:32px;padding:48px 0;border-bottom:1px solid var(--color-divider)}.project-item:first-child{padding-top:0}.project-item:last-child{border-bottom:none}.project-number{font-family:var(--font-serif);font-size:clamp(64px,10vw,120px);line-height:.85;color:var(--color-number);flex-shrink:0;width:120px;user-select:none}.project-content{padding-top:12px;flex:1;min-width:0}.project-name{font-family:var(--font-serif);font-weight:400;font-size:28px;line-height:1.2;color:var(--color-text);margin-bottom:8px}.project-desc{font-size:16px;color:var(--color-text-muted);line-height:1.7;max-width:500px;margin-bottom:12px}.project-tech{font-size:13px;color:var(--color-text-faint);margin-bottom:16px}.project-link{font-size:14px;color:var(--color-accent)}.project-link:hover{text-decoration:underline}.contact-email{display:block;font-family:var(--font-serif);font-size:32px;color:var(--color-text);text-decoration:none;margin-bottom:12px;line-height:1.3}.contact-email:hover{color:var(--color-accent)}.contact-secondary{font-size:15px;color:var(--color-text-muted)}.contact-secondary:hover{color:var(--color-accent)}.back-link{display:inline-block;font-size:14px;margin-bottom:64px;color:var(--color-text-muted)}.back-link:hover{color:var(--color-accent)}.case-header{margin-bottom:64px}.case-header h1{font-size:clamp(36px,6vw,72px);line-height:1.1;letter-spacing:-.02em;margin-bottom:8px}.case-year{font-size:14px;color:var(--color-text-muted)}.case-context{font-size:18px;color:var(--color-text-muted);margin-top:16px;max-width:640px}.case-section{margin-bottom:64px}.case-section h2{font-size:28px;margin-bottom:20px}.case-section h3{font-size:17px;font-weight:500;color:var(--color-text)}.case-section p{font-size:16px;max-width:640px;line-height:1.75}.case-section p+p{margin-top:16px}.case-section p+ul,.case-section p+ol{margin-top:12px}.case-section ul,.case-section ol{padding-left:1.25rem;color:var(--color-text-muted);font-size:16px;line-height:1.75;max-width:640px}.case-section ul li,.case-section ol li{margin-bottom:10px;padding-left:4px}.case-section ul li:last-child,.case-section ol li:last-child{margin-bottom:0}.case-image{width:100%;border-radius:4px;margin-bottom:64px}.case-image-grid{display:grid;gap:16px;margin-bottom:64px}.case-image-grid .case-image{margin-bottom:0}.case-callout{margin-top:16px;font-style:italic;color:var(--color-text)}.architecture-block{background:#111;color:#d4d4d4;border-radius:4px;padding:32px;overflow-x:auto}.architecture-block pre{margin:0;font-size:13px;line-height:1.6;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.architecture-block code{font-family:inherit}.tech-table{display:flex;flex-direction:column;max-width:640px}.tech-row{display:flex;font-size:14px;padding:12px 0;border-bottom:1px solid var(--color-divider);line-height:1.6}.tech-row:last-child{border-bottom:none}.tech-label{width:120px;flex-shrink:0;font-weight:500;color:var(--color-text);font-size:13px}.tech-row span:last-child{color:var(--color-text-muted)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.tag{font-size:12px;color:var(--color-text-faint)}.tag:not(:last-child):after{content:","}.mobile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.mobile-grid figure{margin:0}.mobile-grid img{width:100%;border-radius:4px}.mobile-grid figcaption{text-align:center;font-size:13px;color:var(--color-text-muted);margin-top:8px}@media(max-width:768px){body{padding:0 24px 80px}.topbar{margin-bottom:48px}.section{margin-bottom:80px}.project-number{font-size:clamp(48px,8vw,80px);width:72px}.project-item{gap:20px;padding:36px 0}.project-name{font-size:22px}.contact-email{font-size:24px}.case-header h1{font-size:clamp(28px,6vw,48px)}.case-section h2{font-size:22px}.architecture-block{padding:16px}.architecture-block pre{font-size:10px}.tech-label{width:90px}.mobile-grid{gap:8px}}
