.hero{padding-block:clamp(28px,4vw,56px) clamp(64px,10vw,120px)}.hero-byline{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:22px;display:flex}.hero-byline-name{font-family:var(--font-display);color:var(--text-primary);font-size:18px;font-weight:500}.hero-byline-role{font-family:var(--font-mono);color:var(--text-muted);font-size:12.5px}.hero h1{letter-spacing:-.02em;max-width:14ch;font-size:clamp(34px,5.4vw,58px);line-height:1.12}.hero h1 .line{display:block;overflow:hidden}.hero h1 .line span{transition:transform .7s var(--ease);display:block;transform:translateY(110%)}.hero.is-ready h1 .line span{transform:translateY(0)}.hero h1 .line:nth-child(2) span{transition-delay:90ms}.hero h1 .line:nth-child(3) span{transition-delay:.18s}.hero-sub{color:var(--text-secondary);max-width:56ch;margin-top:18px;font-size:17px;line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:28px;display:flex}.hero-grid{align-items:start;gap:40px;display:grid}@media (width>=900px){.hero-grid{grid-template-columns:1.15fr .85fr;gap:32px}}.hero-slide{opacity:0;transition:opacity .6s var(--ease-smooth),transform .6s var(--ease-smooth);transform:translateY(10px)}.hero.is-ready .hero-slide{opacity:1;transform:translateY(0)}.hero-photo-frame{aspect-ratio:1;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);opacity:0;max-width:420px;transition:opacity .8s var(--ease-smooth) .16s;margin-inline:auto;overflow:hidden}.hero.is-ready .hero-photo-frame{opacity:1}.hero-photo-frame img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.cv-link{min-height:44px;color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:5px;transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease);align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration-thickness:1px;display:inline-flex}.cv-link:hover{color:var(--accent-link);text-decoration-color:currentColor}.cv-link-icon{flex-shrink:0}.cv-link:hover .cv-link-icon{animation:cv-bounce .7s var(--ease-smooth)}.stack-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding-block:36px}.stack-groups{grid-template-columns:1fr;gap:24px;display:grid}.stack-group{flex-direction:column;gap:12px;display:flex}.stack-group-label{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.09em;align-items:center;gap:8px;font-size:10.5px;display:flex}.stack-group-label:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}@media (width>=640px) and (width<=999.98px){.stack-groups{grid-template-columns:repeat(2,1fr);gap:24px 0}.stack-group{padding-inline:28px}.stack-group:nth-child(odd){padding-left:0}.stack-group:nth-child(2n){border-left:1px solid var(--border)}}@media (width>=1000px){.stack-groups{grid-template-columns:repeat(4,1fr);gap:0}.stack-group{border-left:1px solid var(--border);padding-left:28px}.stack-group:first-child{border-left:none;padding-left:0}}.about-grid{gap:48px;margin-top:28px;display:grid}.about-text p{color:var(--text-secondary);max-width:62ch;font-size:16px;line-height:1.75}.about-text p+p{margin-top:18px}.about-facts{border-top:1px solid var(--border-strong);align-self:start;margin:0}.fact-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(72px,auto) 1fr;align-items:baseline;gap:16px;padding:14px 0;display:grid}.fact-label{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.fact-value{color:var(--text-primary);margin:0;font-size:15px}@media (width>=860px){.about-grid{grid-template-columns:1.4fr 1fr}}.work-list{border-top:1px solid var(--border-strong);margin-top:36px}.work-item{border-bottom:1px solid var(--border);gap:10px;padding-block:26px;display:grid}.work-item h3{max-width:24ch;font-size:19px;line-height:1.3}.work-item-desc{color:var(--text-secondary);max-width:60ch;font-size:15px;line-height:1.7}.work-item.is-lead h3{font-size:clamp(22px,2.4vw,28px)}@media (width>=860px){.work-item{grid-template-columns:160px minmax(0,1fr) minmax(0,1.15fr);align-items:baseline;gap:32px;padding-block:32px}.work-item.is-lead{padding-block:44px}}.project-grid{gap:20px;margin-top:40px;display:grid}@media (width>=768px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card.is-lead{grid-column:1/-1}}@media (width>=960px){.project-card.is-lead{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);display:grid}.project-card.is-lead .project-preview{aspect-ratio:auto;border-bottom:none;border-right:1px solid var(--border);min-height:100%}.project-card.is-lead .work-card-body{justify-content:center;padding:36px 36px 32px}.project-card.is-lead h3{font-size:24px}.project-card.is-lead p{font-size:15px}}.project-preview{aspect-ratio:16/10;background:var(--surface);border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex;overflow:hidden}.project-preview img{object-fit:cover;object-position:var(--img-pos,top center);width:100%;height:100%;display:block}.project-preview.is-contain img{object-fit:contain;object-position:center;padding:26px}.project-preview-label{font-family:var(--font-mono);color:var(--text-muted);font-size:11.5px}.project-badge:before{content:"·";color:var(--border-strong);margin-right:10px}.project-links{flex-wrap:wrap;align-items:center;gap:0 18px;margin-top:5px;display:flex}.project-link{min-height:44px;color:var(--accent-link);align-items:center;gap:6px;font-size:13.5px;display:inline-flex}.project-link svg{transition:transform var(--dur) var(--ease)}.project-link:hover svg{transform:translate(3px)}.project-link-secondary{color:var(--text-muted)}.project-link-secondary:hover{color:var(--accent)}.article-grid{gap:20px;margin-top:36px;display:grid}@media (width>=768px){.article-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.article-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);padding:24px;display:block}.article-card:hover{border-color:var(--accent);transform:translateY(-2px)}.article-meta{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:10px;font-size:12px}.article-card h3{margin-bottom:8px;font-size:17px;font-weight:500}.article-card p{color:var(--text-secondary);font-size:14px;line-height:1.6}@media (width>=768px){.article-card.is-featured{border-left:2px solid var(--accent);padding:32px}.article-card.is-featured h3{font-size:22px}.article-card.is-wide{grid-column:1/-1}}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:36px;display:grid}.photo-card.is-lead{grid-column:1/-1}@media (width>=640px){.photo-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.photo-card.is-lead{grid-area:span 2}.photo-card.is-lead .photo-media{aspect-ratio:auto;flex:1}}.photo-card{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;margin:0;display:flex;overflow:hidden}.photo-media{aspect-ratio:4/5;background:var(--surface);position:relative;overflow:hidden}.photo-img{object-fit:cover;width:100%;height:100%;display:block}.photo-card.is-lead .photo-img{position:absolute;inset:0}.photo-caption{font-family:var(--font-mono);color:var(--text-muted);border-top:1px solid var(--border);flex-shrink:0;padding:10px 14px;font-size:11.5px}.contact-grid{align-items:start;gap:48px;display:grid}@media (width>=860px){.contact-grid{grid-template-columns:1fr 1.2fr}}.contact-grid h2{margin-top:2px;font-size:clamp(26px,3.4vw,36px)}.contact-grid>div>p{color:var(--text-secondary);max-width:44ch;margin-top:16px;font-size:16px;line-height:1.65}.contact-left{flex-direction:column;display:flex}.contact-info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:32px;padding:24px}.contact-info-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:10px;font-size:11px;font-weight:500}.contact-info-list{flex-direction:column;gap:14px;margin-top:0;display:flex}.contact-info-list dd{margin:0}.contact-info-list dd a{color:var(--text-primary);border-bottom:1px solid var(--border-strong);width:fit-content;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);padding-bottom:2px;font-size:15px;display:inline-block}.contact-info-list dd a:hover{color:var(--accent);border-color:var(--accent)}.contact-form{flex-direction:column;gap:20px;display:flex}.form-field{flex-direction:column;gap:8px;display:flex}.form-field label{color:var(--text-secondary);font-size:13.5px}.form-field input,.form-field textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);min-height:48px;transition:border-color var(--dur) var(--ease);padding:12px 14px;font-size:16px}.form-field textarea{resize:vertical;min-height:120px}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent)}.contact-form .btn{align-self:flex-start}.contact-form .btn:disabled{opacity:.6;cursor:progress}.contact-form.is-sent>:not(.form-status){display:none}.form-status{color:var(--text-secondary);min-height:20px;font-size:13.5px;line-height:1.55}.form-status:empty{min-height:0}.form-status.is-success{color:var(--success)}.form-status.is-error{color:var(--danger);border-left:2px solid var(--danger);padding-left:10px}
