:root{--paper: #f4f6f3;--surface: #ffffff;--ink: #17201d;--muted: #56625d;--line: #d6ddd8;--accent: #0e6b57;--accent-ink: #0a4f40;--accent-soft: #e1efea;--radius: 10px;--ease-out: cubic-bezier(.23, 1, .32, 1);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft);color:var(--ink)}input,textarea{caret-color:var(--accent)}a{color:var(--accent-ink);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.page{max-width:1040px;margin:0 auto;padding:0 max(24px,env(safe-area-inset-right,0px)) 0 max(24px,env(safe-area-inset-left,0px))}.hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:48px;align-items:center;padding:88px 0 72px;border-bottom:1px solid var(--line)}.status{display:inline-flex;align-items:center;gap:10px;margin:20px 0 0;padding:6px 14px 6px 12px;background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;font-size:15px;font-weight:500}.status-dot{flex-shrink:0;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 #0e6b5773;animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #0e6b5773}70%{box-shadow:0 0 0 9px #0e6b5700}to{box-shadow:0 0 #0e6b5700}}.hero h1{margin:0;font-size:clamp(40px,6vw,64px);line-height:1.04;font-weight:700;letter-spacing:-.025em}.hero-role{margin:10px 0 0;font-size:22px;color:var(--muted);font-weight:500}.hero-pitch{margin:22px 0 0;max-width:62ch}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.hero-photo{width:240px;height:240px;object-fit:cover;border-radius:20px;filter:grayscale(1);background:var(--line)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;font-weight:500;text-decoration:none;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:transform .16s var(--ease-out),border-color .15s ease,background-color .15s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-ink)}.btn:disabled{opacity:.6;cursor:default}.section{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding:56px 0;border-bottom:1px solid var(--line)}.section-title{margin:4px 0 0;font-size:17px;font-weight:700;color:var(--ink)}.section-body{max-width:68ch;min-width:0}h3{margin:0;font-size:19px;line-height:1.35;font-weight:700}.muted{color:var(--muted)}.timeline{list-style:none;margin:0;padding:0}.role{position:relative;padding:0 0 40px 28px;border-left:2px solid var(--line)}.role:last-child{padding-bottom:0;border-left-color:transparent}.role:before{content:"";position:absolute;left:-7px;top:7px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--muted)}.role-current:before{background:var(--accent);border-color:var(--accent)}.role-org{font-weight:500}.role-when{margin:4px 0 0;color:var(--muted);font-size:15px}.role-span{margin-left:2px}.role-place:before{content:"";display:inline-block;width:1px;height:12px;background:var(--line);margin:0 10px;vertical-align:-1px}.role-points{margin:12px 0 0;padding-left:18px}.role-points li{margin:6px 0}.role-points li::marker{color:var(--muted)}.text-btn{margin-top:2px;min-height:44px;padding:0;background:none;border:0;color:var(--accent-ink);font:inherit;font-size:15px;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px;touch-action:manipulation;user-select:none;-webkit-user-select:none}.text-btn:active{opacity:.6}.projects{display:grid;gap:28px}.project{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.project:first-child{border-color:var(--accent)}.project p{margin:10px 0 0}.project-year{margin-left:6px;color:var(--muted);font-weight:500;font-size:15px}.project-stack{color:var(--muted);font-size:15px}.project .project-links{display:flex;gap:24px;font-weight:500;margin-top:4px}.project-links a{display:inline-flex;align-items:center;min-height:44px}.project-shot{display:block;margin:-4px -4px 18px;border-radius:8px;overflow:hidden;border:1px solid var(--line)}.project-shot img{display:block;width:100%;height:auto;transition:transform .3s var(--ease-out)}@media (hover: hover) and (pointer: fine){.project-shot:hover img{transform:scale(1.02)}}.skills{margin:0;display:grid;gap:14px}.skills div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px}.skills dt{font-weight:700}.skills dd{margin:0;color:var(--ink)}.plain-list{margin:0;padding-left:18px}.plain-list li{margin:8px 0}.contact-lead{margin:0 0 20px;overflow-wrap:anywhere}.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.contact-form label{display:grid;gap:6px;font-size:15px;font-weight:500}.contact-form .full{grid-column:1 / -1}.contact-form input,.contact-form textarea{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.form-status{margin:0;color:var(--muted);font-size:15px}.footer{padding:32px 0 48px;color:var(--muted);font-size:15px}@media (max-width: 760px){body{font-size:16px}.page{padding:0 16px}.hero{grid-template-columns:1fr;gap:28px;padding:40px 0 48px}.hero-photo{order:-1;width:112px;height:112px;border-radius:16px}.hero-role{font-size:19px}.status{font-size:14px}.hero-actions .btn{flex:1 1 calc(50% - 10px)}.section{grid-template-columns:1fr;gap:16px;padding:40px 0}.section-title{font-size:22px;margin:0}.skills div{grid-template-columns:1fr;gap:2px}.contact-form{grid-template-columns:1fr}.project{padding:20px}}@media (hover: hover) and (pointer: fine){a:hover{color:var(--accent)}.btn:hover{border-color:var(--ink);color:var(--ink)}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}}@media (prefers-reduced-motion: reduce){.status-dot{animation:none}.btn{transition:none}}
