@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --ink:#1d2024; --muted:#6f7376; --paper:#f6f5f1; --white:#fff; --orange:#f47632; --line:#d9d8d2; --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'Manrope',sans-serif; font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.page-width { width:min(calc(100% - 64px), var(--max)); margin-inline:auto; }
.site-header { height:86px; display:flex; align-items:center; justify-content:space-between; width:min(calc(100% - 64px), var(--max)); margin:auto; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:11px; font-weight:800; letter-spacing:-.04em; font-size:1.05rem; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:var(--white); background:var(--ink); font-family:'DM Mono',monospace; font-weight:500; }
.brand-dot { color:var(--orange); }
.site-nav { display:flex; align-items:center; gap:27px; font-size:.77rem; font-weight:700; }
.site-nav a { color:var(--muted); transition:color .2s ease; }
.site-nav a:hover,.site-nav .is-active { color:var(--ink); }
.site-nav .nav-cta { padding:10px 16px; border:1px solid var(--ink); color:var(--ink); border-radius:2px; }
.menu-toggle { display:none; border:0; background:none; padding:8px; }
.menu-toggle span:not(.sr-only) { display:block; width:22px; height:2px; margin:4px; background:var(--ink); }
.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; }
.hero-shell { display:grid; grid-template-columns:1fr .91fr; gap:8%; min-height:600px; align-items:center; padding-block:72px 84px; }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 22px; color:var(--orange); font:500 .68rem 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.eyebrow-line { width:28px; height:1px; background:var(--orange); }
h1,h2,p { margin-top:0; }
h1 { margin-bottom:25px; font-size:clamp(3.2rem,7vw,6.2rem); line-height:.98; letter-spacing:-.085em; font-weight:800; }
h1 em { color:var(--orange); font-style:normal; }
.hero-lead { max-width:490px; color:var(--muted); font-size:1.04rem; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:35px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:19px; padding:14px 19px; border:0; cursor:pointer; font:700 .76rem 'Manrope',sans-serif; }
.button-primary { color:var(--white); background:var(--ink); }
.button-primary:hover { background:var(--orange); }
.text-link { font-size:.8rem; font-weight:700; border-bottom:1px solid var(--ink); padding-bottom:3px; }
.hero-note { display:flex; align-items:center; gap:9px; margin-top:67px; color:var(--muted); font:400 .67rem 'DM Mono',monospace; }
.pulse-dot { width:8px; height:8px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 5px #f4763220; }
.hero-visual { position:relative; max-width:460px; justify-self:end; }
.image-frame { position:relative; padding:13px 13px 50px; background:var(--white); transform:rotate(2deg); box-shadow:0 20px 45px #1d202414; }
.image-frame img { width:100%; aspect-ratio:4/5; object-fit:cover; filter:grayscale(12%); }
.image-label { position:absolute; bottom:15px; left:24px; color:var(--muted); font:400 .57rem 'DM Mono',monospace; }
.visual-stamp { position:absolute; right:-43px; bottom:18px; display:flex; flex-direction:column; justify-content:center; align-items:center; width:92px; height:92px; border:1px solid var(--orange); border-radius:50%; color:var(--orange); background:var(--paper); transform:rotate(-10deg); }
.visual-stamp span { font:500 1.2rem 'DM Mono',monospace; }.visual-stamp small { font-size:.6rem; }
.intro-strip { display:grid; grid-template-columns:1fr 1fr; gap:15%; padding-block:70px; border-top:1px solid var(--line); }
.intro-strip h2 { max-width:430px; margin:0; font-size:2.15rem; line-height:1.1; letter-spacing:-.06em; }.intro-strip p:last-child { max-width:440px; color:var(--muted); margin:33px 0 0; }
.quick-links { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }.quick-link { display:grid; grid-template-columns:1fr auto; gap:12px; padding:22px 18px 25px 0; border-right:1px solid var(--line); }.quick-link:not(:first-child) { padding-left:25px; }.quick-number,.card-index { color:var(--orange); font:500 .68rem 'DM Mono',monospace; }.quick-link strong { grid-column:1; font-size:1.12rem; }.quick-arrow { grid-column:2; grid-row:1 / span 2; font-size:1.3rem; }.quick-link:hover strong { color:var(--orange); }
.inner-page { padding-block:90px 70px; }.page-heading { max-width:740px; margin-bottom:75px; }.page-heading h1 { font-size:clamp(3rem,6vw,5.5rem); }.page-heading > p:last-child { max-width:530px; color:var(--muted); font-size:1.05rem; }
.split-content { display:grid; grid-template-columns:.86fr 1fr; gap:10%; align-items:center; }.portrait-card { position:relative; max-width:390px; }.portrait-card img { aspect-ratio:4/5; width:100%; object-fit:cover; filter:grayscale(18%); }.portrait-caption { position:absolute; bottom:17px; left:17px; color:var(--white); font:500 .65rem 'DM Mono',monospace; }.story p { max-width:510px; color:var(--muted); }.story p:first-child { color:var(--ink); font-size:1.15rem; }.quote { margin-top:38px; padding:22px 0 0; border-top:1px solid var(--line); color:var(--orange); font-size:1.24rem; font-weight:700; line-height:1.3; }.timeline { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:100px; padding-top:25px; border-top:1px solid var(--line); }.timeline-year { color:var(--orange); font:500 .75rem 'DM Mono',monospace; }.timeline p { margin-top:12px; max-width:190px; font-weight:700; line-height:1.25; }
.professional-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--line); }.skill-card { min-height:280px; padding:30px; background:var(--white); }.skill-card-feature { background:var(--ink); color:var(--white); }.skill-card h2 { max-width:300px; margin:42px 0 25px; font-size:1.55rem; line-height:1.12; letter-spacing:-.05em; }.skill-card ul { padding:0; margin:0; list-style:none; color:var(--muted); font-size:.88rem; }.skill-card li { padding:8px 0 8px 18px; border-top:1px solid var(--line); position:relative; }.skill-card li:before { content:'+'; position:absolute; left:0; color:var(--orange); }.skill-card-feature ul { color:#bfc1c0; }.skill-card-feature li { border-color:#414347; }.work-photo { grid-column:1 / -1; display:grid; grid-template-columns:1.1fr 1fr; min-height:290px; background:var(--orange); }.work-photo img { width:100%; height:100%; min-height:290px; object-fit:cover; filter:grayscale(100%); mix-blend-mode:multiply; }.work-photo > div { display:flex; flex-direction:column; justify-content:center; padding:40px; }.work-photo span { margin-bottom:24px; font:500 .7rem 'DM Mono',monospace; text-transform:uppercase; }.work-photo strong { max-width:370px; font-size:1.6rem; line-height:1.15; letter-spacing:-.05em; }.work-photo small { margin-top:25px; font-size:.76rem; }
.hobby-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:10%; align-items:start; }.hobby-photo { position:relative; }.hobby-photo img { width:100%; aspect-ratio:1/1.1; object-fit:cover; filter:grayscale(28%); }.hobby-photo span { position:absolute; bottom:18px; left:18px; max-width:180px; color:var(--white); font-size:.82rem; font-weight:700; line-height:1.2; }.hobby-list a { display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:15px; padding:24px 0; border-bottom:1px solid var(--line); }.hobby-list a:first-child { border-top:1px solid var(--line); }.hobby-list a > span { color:var(--orange); font:500 .67rem 'DM Mono',monospace; }.hobby-list strong { font-size:1.35rem; letter-spacing:-.05em; }.hobby-list small { color:var(--muted); font-size:.73rem; }.hobby-list a:after { content:'↗'; font-size:1.25rem; }.hobby-list a:hover strong { color:var(--orange); }
.contact-layout { display:grid; grid-template-columns:.86fr 1fr; gap:10%; align-items:start; }.contact-photo img { width:100%; aspect-ratio:1/.85; object-fit:cover; filter:grayscale(25%); }.contact-details { display:flex; flex-direction:column; gap:8px; padding:24px 0; border-bottom:1px solid var(--line); }.contact-details span { color:var(--muted); font:500 .67rem 'DM Mono',monospace; text-transform:uppercase; }.contact-details a { color:var(--orange); font-weight:700; }.contact-form { display:grid; gap:20px; }.contact-form label:not(.consent) { display:grid; gap:8px; color:var(--muted); font:500 .67rem 'DM Mono',monospace; text-transform:uppercase; }.contact-form input:not([type=checkbox]),.contact-form textarea { width:100%; padding:11px 0; border:0; border-bottom:1px solid var(--line); outline:0; resize:vertical; color:var(--ink); background:transparent; font:500 1rem 'Manrope',sans-serif; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--orange); }.consent { display:flex; gap:9px; align-items:flex-start; color:var(--muted); font-size:.75rem; }.consent input { accent-color:var(--orange); }.form-status { min-height:24px; color:var(--orange); font-size:.78rem; }
.site-footer { display:flex; justify-content:space-between; gap:20px; padding-block:30px; margin-top:45px; border-top:1px solid var(--line); color:var(--muted); font:400 .64rem 'DM Mono',monospace; }.site-footer a { color:var(--ink); }.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s ease; }.reveal.is-visible { opacity:1; transform:none; }.reveal-delay { transition-delay:.16s; }
@media (max-width:760px) { .page-width,.site-header { width:min(calc(100% - 38px), var(--max)); }.site-header { height:70px; position:relative; }.menu-toggle { display:block; }.site-nav { display:none; position:absolute; z-index:5; top:70px; right:0; left:0; flex-direction:column; align-items:stretch; gap:0; padding:10px 20px 20px; background:var(--paper); border-bottom:1px solid var(--line); }.site-nav.is-open { display:flex; }.site-nav a { padding:10px 0; }.site-nav .nav-cta { text-align:center; margin-top:8px; }.hero-shell,.intro-strip,.split-content,.contact-layout,.hobby-layout { grid-template-columns:1fr; }.hero-shell { min-height:0; gap:55px; padding-block:55px 70px; }.hero-visual { width:84%; justify-self:center; }.visual-stamp { right:-25px; }.intro-strip { gap:15px; padding-block:55px; }.intro-strip p:last-child { margin-top:0; }.quick-links { grid-template-columns:1fr; }.quick-link,.quick-link:not(:first-child) { padding:18px 0; border-right:0; border-bottom:1px solid var(--line); }.inner-page { padding-block:65px 45px; }.page-heading { margin-bottom:50px; }.page-heading h1 { font-size:3.2rem; }.split-content,.contact-layout { gap:45px; }.portrait-card { max-width:none; }.timeline { gap:10px; margin-top:65px; }.timeline p { font-size:.78rem; }.professional-grid { grid-template-columns:1fr; }.work-photo { grid-column:auto; grid-template-columns:1fr; }.work-photo img { min-height:230px; }.work-photo > div { padding:30px; }.hobby-photo { width:90%; }.hobby-list { margin-top:25px; }.hobby-list a { grid-template-columns:35px 1fr auto; }.hobby-list strong { font-size:1.12rem; }.site-footer { flex-direction:column; margin-top:30px; } }