@font-face{font-family:Instrument;src:url('../fonts/instrument-serif-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url('../fonts/instrument-serif-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{--bg:#f7f5ef;--surface:#fffdf8;--ink:#243e36;--muted:#5d6860;--green:#a1442c;--grass:#eac8ad;--line:#d8ddd2;--wash:#eeeee5;--header:rgba(247,245,239,.94);--radius:14px;--serif:Instrument,Georgia,serif}
:root[data-theme=dark]{--bg:#17251f;--surface:#21332a;--ink:#f1f0e5;--muted:#b9c4b7;--green:#efb18e;--grass:#efb18e;--line:#415046;--wash:#203027;--header:rgba(23,37,31,.95)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17251f;--surface:#21332a;--ink:#f1f0e5;--muted:#b9c4b7;--green:#efb18e;--grass:#efb18e;--line:#415046;--wash:#203027;--header:rgba(23,37,31,.95)}}
body{font-weight:400}
h1,h2{font-weight:500}
h2{font-size:clamp(2.4rem,4.1vw,4rem);letter-spacing:-.055em;line-height:1.07}
h2 em{font-family:var(--serif);font-weight:400;font-size:1.13em;letter-spacing:-.035em;font-style:italic;line-height:1.08}
a,button{transition:color .2s,background .2s,border-color .2s,transform .2s}
.wrap{width:min(1280px,calc(100% - 112px))}
.eyebrow{font-size:.64rem;letter-spacing:.1em;margin-bottom:26px}
.site-header{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nav-wrap{min-height:90px}
.brand{font-size:.93rem;letter-spacing:-.04em;gap:12px}
.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--bg);font-family:var(--serif);font-style:italic;font-size:30px;font-weight:400;letter-spacing:-.07em;padding:0 4px 4px 0}
.site-nav{gap:26px}
.site-nav>a{font-size:.77rem}
.site-nav>.nav-contact{border-radius:40px;gap:14px;padding:11px 19px}
.icon-button{width:39px;height:39px;border:0}
.btn{min-height:54px;padding:14px 24px;border-radius:40px;font-size:.82rem;gap:28px}
.btn:hover{background:var(--green);color:var(--bg);border-color:var(--green)}
.btn-secondary{border-color:var(--line)}
.btn-secondary:hover{background:var(--wash);color:var(--ink);border-color:var(--ink)}
.section{padding-block:108px}
.section-head{gap:55px;margin-bottom:52px}
.section-head>p{max-width:315px;font-size:.9rem;line-height:1.85}
.hero{padding-top:62px}
.hero-grid{grid-template-columns:1.15fr .85fr;gap:105px;align-items:center}
.hero .eyebrow{margin-bottom:25px}
.hero h1{font-size:clamp(5.2rem,8.4vw,8.15rem);line-height:.98;letter-spacing:-.07em;font-weight:500;margin-bottom:27px}
.hero h1 em{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.18em;letter-spacing:-.045em;color:var(--green);line-height:.93}
.hero-role{font-size:1.03rem;letter-spacing:-.025em;margin-bottom:12px}
.hero .lead{font-size:.92rem;max-width:465px;line-height:1.9}
.hero .actions{margin-top:28px}
.portrait-composition{max-width:410px;position:relative;margin:5px 24px 0 0;transform:rotate(2deg)}
.portrait-composition::before{content:'';position:absolute;inset:23px -18px -18px 18px;border:1px solid var(--line);border-radius:160px 160px 12px 12px;z-index:-1}
.portrait-frame{border-radius:160px 160px 0 0}
.portrait-frame img{aspect-ratio:4/4.65;object-position:50% 28%;filter:saturate(.78)}
.portrait-caption{background:var(--ink);color:var(--bg);padding:23px 26px;font-size:.87rem;border-radius:0 0 12px 12px}
.caption-sub{font-size:.7rem;font-weight:400;opacity:.78}
.portrait-number{font-family:var(--serif);font-size:2rem;font-weight:400}
.portrait-side{right:-30px;top:80px;font-size:.53rem}
.now-strip{margin-top:68px;padding:26px 0}
.now-strip dt{font-size:.57rem;margin-bottom:8px}
.now-strip dd{font-size:.78rem}
.projects{padding-bottom:45px}
.project-feature{padding:48px 0 58px;gap:72px;grid-template-columns:.85fr 1.3fr;align-items:center}
.project-feature:last-child{padding-bottom:32px}
.project-overline{font-family:GeistMono,monospace;font-size:.59rem;justify-content:start;gap:14px;margin-bottom:25px}
.pill{font-family:Geist,sans-serif;font-size:.6rem;line-height:1.5;border-radius:40px;padding:5px 10px;background:var(--wash);color:var(--ink)}
.project-info h3{font-size:clamp(2.8rem,4.5vw,4.5rem);font-weight:500;letter-spacing:-.065em;margin-bottom:23px}
.project-info>.project-intro{font-family:var(--serif);font-size:1.85rem;letter-spacing:-.02em;line-height:1.15;margin-bottom:20px;color:var(--ink)}
.project-info>p{font-size:.88rem;line-height:1.85}
.project-tags{font-family:Geist,sans-serif;font-size:.64rem;gap:7px;margin:24px 0}
.project-tags li{border:1px solid var(--line);border-radius:30px;padding:5px 11px}
.project-shot{border-radius:14px;min-height:420px;padding:35px;box-shadow:none;position:relative}
.boussole-shot{background:#dce6d8;color:#2e5140}
.jarvis-shot{background:#233b32;color:#cedacc}
.project-shot img{border-radius:7px;box-shadow:0 24px 45px -22px #14291e66}
.shot-topline,.shot-bottomline{font-size:.55rem;letter-spacing:.03em}
.shot-topline{margin-bottom:38px}.shot-bottomline{margin-top:34px}
.project-reversed{grid-template-columns:1.3fr .85fr;margin-top:0}
.text-link{font-size:.82rem;padding-block:12px;gap:32px}
.roadmap-section{padding-top:55px}
.roadmap-grid{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line)}
.roadmap-card{padding:34px 42px 36px 0}
.roadmap-card+article{padding:34px 0 36px 42px;border-left:1px solid var(--line)}
.roadmap-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}
.project-index{font:400 .59rem/1.7 GeistMono,monospace;color:var(--muted);letter-spacing:.07em;display:block}
.roadmap-card h3{font-size:1.55rem;font-weight:500;line-height:1.15;letter-spacing:-.04em;margin:24px 0 20px}
.roadmap-top+h3{margin-top:0}
.roadmap-card ul{list-style:none;padding:0;margin:0 0 20px;font-size:.82rem;color:var(--muted);line-height:1.8}
.roadmap-card li{padding:8px 0;border-bottom:1px solid var(--line)}
.roadmap-card li:last-child{border:0}
.roadmap-card>p{font-size:.87rem;line-height:1.9;color:var(--muted);max-width:460px;margin-bottom:25px}
.about-section{background:var(--ink);color:var(--bg);border:0}
.about-section .eyebrow,.about-section .about-copy,.about-section .skills-grid p,.about-section .skill-number,.about-section .skill-note,.about-section .personal-note{color:var(--bg);opacity:.78}
.about-section .about-copy strong,.about-section .personal-note span{color:var(--bg)}
.about-grid{gap:95px}
.about-grid h2{font-size:clamp(2.6rem,4vw,4rem);max-width:550px;line-height:1.05}
.about-copy{font-size:.94rem;line-height:1.9}
.skills-grid,.skills-grid article+article,.personal-note{border-color:color-mix(in srgb,var(--bg) 25%,transparent)}
.skills-grid{margin-top:55px}.skills-grid article{padding-top:29px}
.skills-grid h3{font-weight:500;font-size:1.15rem}
.skills-grid p{font-size:.82rem;line-height:1.85}
.experience-row{padding:36px 0;grid-template-columns:175px 1fr 1fr;gap:40px}
.experience-row h3{font-size:1.35rem;font-weight:500}
.education-note{border-radius:12px;background:var(--wash)}
.cv-panel{border-radius:16px;background:var(--wash);border:1px solid var(--line)}
.cv-panel h2{font-size:3.4rem;font-weight:500}
.contact-section{background:#e9c9b0;color:#283d31;border:0;padding-top:80px}
.contact-section .eyebrow,.contact-head>p{color:#4b5c4e}
.contact-head h2{font-size:clamp(3.9rem,7vw,6.5rem);font-family:var(--serif);font-style:italic;letter-spacing:-.05em;font-weight:400}
.contact-email{font-size:clamp(1.6rem,4.8vw,4rem);font-weight:450;letter-spacing:-.06em;border-color:#a7ae97;gap:20px}
.contact-email:hover{color:#78341e}
.contact-links{border-color:#a7ae97}.copy-button{color:#283d31}.copy-status{color:#4b5c4e}
.site-footer{padding-top:32px}
.breadcrumb{font:400 .62rem/1.8 GeistMono,monospace;padding-top:25px}
.jarvis-hero{display:grid;grid-template-columns:1fr 1fr;gap:45px 65px;align-items:center;padding-top:55px}
.jarvis-hero .eyebrow{display:block;margin:0 0 24px}
.jarvis-hero h1{font-size:clamp(5.5rem,8vw,8rem);font-weight:500;letter-spacing:-.075em;line-height:.95;margin:0 0 26px}
.jarvis-hero .detail-subtitle{font-size:2rem;line-height:1.1;margin-bottom:23px}
.detail-subtitle em{font:italic 400 1.3em/1.05 var(--serif);letter-spacing:-.035em}
.jarvis-hero .lead{font-size:.88rem;line-height:1.9}
.jarvis-hero .actions{gap:18px}
.jarvis-hero .btn{font-size:.76rem;padding:13px 19px;gap:15px}
.product-hero-visual{background:#233b32;border-radius:16px;padding:30px 28px 24px;color:#d5e0cf}
.visual-label{font:400 .56rem/1.8 GeistMono,monospace;letter-spacing:.09em;margin-bottom:55px;display:flex;align-items:center;gap:6px}
.visual-label .status-dot{background:#b9d8a1}
.product-hero-visual img{width:100%;height:auto;border-radius:6px;box-shadow:0 20px 45px #10221b44}
.product-hero-visual figcaption{font-size:.64rem;line-height:1.7;margin-top:35px;color:#d5e0cf;max-width:400px}
.jarvis-hero .project-summary{grid-column:1/-1;width:100%;margin:0;padding-block:26px}
.project-summary dt{font-size:.56rem}
.project-summary dd{font-size:.8rem}
.product-anchor-nav{display:flex;gap:28px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line);padding:0 0 20px;margin-top:0;font-size:.76rem}
.product-anchor-nav a{text-decoration:none;min-height:40px;display:inline-flex;align-items:center;gap:20px}
.product-anchor-nav a:last-child{margin-left:auto;color:var(--green)}
.jarvis-platforms{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:38px}
.jarvis-platform{border:0;border-radius:0;background:transparent;padding:26px 23px}
.jarvis-platform+.jarvis-platform{border-left:1px solid var(--line)}
.jarvis-platform h3{font-size:1.75rem;font-weight:500;letter-spacing:-.055em}
.jarvis-platform .eyebrow{font-size:.52rem;letter-spacing:.04em}
.jarvis-platform p{font-size:.78rem;line-height:1.8}
.jarvis-platform .text-link{margin-top:auto;font-size:.73rem;gap:12px;width:100%}
.jarvis-platform .text-link .icon{width:16px}
.detail-columns{gap:85px}
.detail-columns h2{font-size:2.65rem;letter-spacing:-.055em;font-weight:500}
.detail-columns p{font-size:.87rem;line-height:1.9}
.notice{background:var(--wash);border-radius:8px;border:1px solid var(--line);font-size:.8rem;line-height:1.85}
.product-page #edition-mac{border-block:1px solid var(--line)}
.product-page #edition-mac .btn{font-size:.76rem;gap:15px;padding:12px 18px}
.jarvis-mac-preview{background:#e0e6d8;border-radius:12px;padding:22px;color:#334a3c}
.jarvis-mac-preview figcaption{color:#334a3c;font-size:.67rem}
@media(min-width:1500px){.hero{padding-top:72px}.hero-grid{gap:120px}.hero h1{font-size:8.5rem}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero-grid{gap:60px}.hero h1{font-size:7.5vw}.site-nav{gap:17px}.site-nav>a{font-size:.72rem}.nav-wrap{gap:15px}.project-feature{gap:45px}.project-shot{padding:25px;min-height:370px}.jarvis-hero{gap:35px}.jarvis-platforms{grid-template-columns:1fr 1fr}.jarvis-platform:nth-child(3){border-left:0}.jarvis-platform:nth-child(n+3){border-top:1px solid var(--line)}.experience-row{grid-template-columns:145px 1fr 1fr;gap:28px}.roadmap-top{flex-wrap:wrap}}
@media(max-width:900px) and (min-width:761px){.brand>span:last-child{display:none}.nav-wrap{min-height:78px}.site-nav{gap:20px}.site-nav>a{font-size:.75rem}.hero-grid{gap:40px}.portrait-composition{margin-right:15px}.hero h1{font-size:8.2vw}.hero .lead{font-size:.86rem}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.nav-wrap{min-height:74px}.nav-actions{order:2}.site-nav{order:3}.brand-mark{width:35px;height:35px;font-size:26px}.menu-toggle{border-radius:30px;padding-inline:14px}.icon-button{width:36px;height:40px}.section{padding-block:68px}.hero{padding-top:45px}.hero-grid{grid-template-columns:1.1fr .9fr;gap:35px}.hero h1{font-size:9vw}.hero .lead{font-size:.85rem}.portrait-composition{margin-right:15px}.portrait-caption{padding:19px;font-size:.75rem}.caption-sub{font-size:.6rem}.portrait-side{right:-25px}.now-strip{margin-top:52px}.now-strip dd{font-size:.7rem}.section-head{gap:23px;margin-bottom:35px}.section-head h2{font-size:2.65rem}.project-feature,.project-reversed{grid-template-columns:1fr;gap:27px;padding:32px 0 42px}.project-reversed .project-info,.project-reversed .project-shot{order:initial}.project-info h3{font-size:3.2rem}.project-info>p{max-width:550px}.project-info>.project-intro{font-size:1.7rem}.project-shot{min-height:0;padding:28px}.shot-topline{margin-bottom:30px}.shot-bottomline{margin-top:27px}.projects{padding-bottom:25px}.roadmap-section{padding-top:38px}.roadmap-card{padding:28px 24px 30px 0}.roadmap-card+article{padding:28px 0 30px 24px}.roadmap-top{gap:10px;margin-bottom:22px}.roadmap-card h3{font-size:1.45rem}.roadmap-card ul{font-size:.78rem}.about-grid{gap:32px}.about-grid h2{font-size:2.9rem}.about-copy{font-size:.9rem}.experience-row{grid-template-columns:130px 1fr;gap:15px 25px}.cv-panel h2{font-size:2.8rem}.contact-section{padding-top:60px}.contact-head h2{font-size:4.7rem}.contact-email{font-size:5vw}.jarvis-hero{grid-template-columns:1fr;gap:30px;padding-top:40px}.jarvis-hero h1{font-size:6.2rem}.jarvis-hero .detail-subtitle{font-size:1.8rem}.product-hero-visual{padding:25px}.visual-label{margin-bottom:30px}.product-hero-visual figcaption{margin-top:24px}.product-hero-visual img{max-width:630px;margin:auto}.jarvis-hero .project-summary{grid-column:1}.product-anchor-nav{gap:22px;padding-bottom:16px}.product-anchor-nav a{font-size:.73rem}.detail-columns{gap:40px}.detail-columns h2{font-size:2.35rem}}
@media(max-width:520px){.wrap{width:calc(100% - 36px)}.brand{font-size:.82rem;gap:9px}.nav-wrap{gap:7px;min-height:70px}.nav-actions{gap:3px}.menu-toggle{padding:8px 11px;gap:7px}.icon-button{width:34px}.hero{padding-top:34px}.hero-grid{grid-template-columns:1fr;gap:36px}.hero h1{font-size:clamp(4.25rem,18.7vw,6.25rem);line-height:1;margin-bottom:24px}.hero .eyebrow{font-size:.55rem;margin-bottom:22px}.hero-role{font-size:.96rem}.hero .lead{font-size:.88rem;max-width:430px}.hero .btn{font-size:.75rem;padding:13px 18px;gap:19px}.hero .actions{margin-top:23px}.portrait-composition{width:calc(100% - 30px);max-width:350px;margin:0 15px 0 0;justify-self:center}.portrait-frame img{aspect-ratio:1/1.04;object-position:50% 27%}.portrait-frame{border-radius:135px 135px 0 0}.portrait-caption{font-size:.8rem;padding:21px}.caption-sub{font-size:.66rem}.portrait-side{font-size:.48rem;right:-24px;top:80px}.now-strip{margin-top:45px;padding:5px 0}.now-strip>div,.now-strip>div+div{padding:14px 0;grid-template-columns:96px 1fr;gap:10px}.now-strip dd{font-size:.69rem}.now-strip dt{font-size:.52rem}.section{padding-block:56px}.section-head h2{font-size:2.25rem}.section-head>p{font-size:.83rem}.project-feature{padding-block:28px 38px}.project-info h3{font-size:3rem}.project-info>.project-intro{font-size:1.65rem}.project-info>p{font-size:.84rem}.project-overline{gap:10px;font-size:.53rem}.pill{font-size:.55rem}.project-shot{padding:22px 16px;border-radius:12px}.shot-topline,.shot-bottomline{font-size:.49rem}.project-tags{font-size:.6rem}.project-tags li{padding:4px 9px}.roadmap-grid{grid-template-columns:1fr}.roadmap-card,.roadmap-card+article{padding:27px 0 30px;border:0}.roadmap-card+article{border-top:1px solid var(--line)}.roadmap-top{flex-wrap:nowrap}.roadmap-card h3{font-size:1.55rem}.roadmap-card ul{font-size:.81rem}.roadmap-card>p{font-size:.82rem}.roadmap-card:last-child{padding-bottom:27px}.about-grid h2{font-size:2.45rem}.skills-grid{margin-top:30px}.experience-row{grid-template-columns:1fr;gap:14px;padding-block:28px}.experience-row>p{grid-column:auto}.cv-panel{padding:25px}.cv-panel h2{font-size:2.7rem}.contact-head h2{font-size:4rem}.contact-email{font-size:6.3vw;gap:9px;letter-spacing:-.055em}.contact-email .icon{width:25px}.contact-links{gap:15px}.socials{gap:21px}.jarvis-hero h1{font-size:5.5rem}.jarvis-hero .detail-subtitle{font-size:1.8rem}.jarvis-hero .lead{font-size:.85rem}.jarvis-hero .actions{gap:12px}.jarvis-hero .btn{font-size:.73rem;gap:10px;padding:12px 15px}.product-hero-visual{padding:22px 16px;border-radius:12px}.product-hero-visual figcaption{font-size:.62rem}.product-anchor-nav{gap:8px 21px}.product-anchor-nav a:last-child{margin-left:0;flex-basis:100%}.jarvis-platforms{grid-template-columns:1fr}.jarvis-platform+.jarvis-platform{border-left:0;border-top:1px solid var(--line)}.jarvis-platform{padding:25px}.jarvis-platform p{font-size:.84rem}.jarvis-platform .eyebrow{font-size:.6rem}.jarvis-platform .text-link{font-size:.78rem}.detail-columns h2{font-size:2.2rem}.detail-columns p{font-size:.85rem}.notice{font-size:.77rem}.project-summary{gap:15px}.project-summary>div{grid-template-columns:100px 1fr}.project-summary dd{font-size:.73rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.product-anchor-nav{display:none}.about-section,.contact-section{background:white;color:#243e36}.about-section .about-copy,.about-section .about-copy strong,.about-section .skills-grid p,.about-section .eyebrow{color:#243e36;opacity:1}.hero h1{font-size:60pt}.cv-document{border:0}.cv-title h1{font-size:27pt}.cv-document h2{font-size:7.5pt}}
