:root{--cream:#f4f0e8;--paper:#fbfaf7;--ink:#171717;--muted:#77736c;--line:#d8d2c7;--orange:#e85d3f;--dark:#121212;--serif:"Playfair Display",serif;--sans:"DM Sans",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{text-decoration:none;color:inherit}.header{height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;width:100%;z-index:10;background:rgba(244,240,232,.75);backdrop-filter:blur(16px);border-bottom:1px solid rgba(216,210,199,.55)}.logo{font:700 29px var(--serif);letter-spacing:-2px}.logo span,.accent{color:var(--orange)}nav{display:flex;gap:34px;font-size:12px;text-transform:uppercase;letter-spacing:1.2px}nav a{opacity:.7;transition:.25s}nav a:hover{opacity:1}.nav-cta{border:1px solid var(--ink);padding:12px 17px;border-radius:30px;font-size:12px}.nav-cta span{margin-left:10px}.menu{display:none;background:none;border:0;font-size:22px}
.hero{min-height:100vh;position:relative;padding:155px 9vw 70px;display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:7vw;overflow:hidden}.hero-bg{position:absolute;width:600px;height:600px;border-radius:50%;right:-170px;top:90px;background:radial-gradient(circle,#e7a58d55,transparent 68%);filter:blur(3px);animation:pulse 7s ease-in-out infinite}.eyebrow{font-size:11px;letter-spacing:2.2px;font-weight:700;display:flex;align-items:center;gap:11px}.eyebrow span{width:7px;height:7px;background:var(--orange);border-radius:50%;box-shadow:0 0 0 6px #e85d3f18}.hero h1{font-size:clamp(76px,10vw,150px);line-height:.78;letter-spacing:-7px;margin:35px 0}.hero h1 i,.hero em{font-family:var(--serif);font-weight:600}.lead{max-width:540px;font-size:19px;line-height:1.65;color:#56534d}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:38px}.button{display:inline-flex;gap:24px;align-items:center;padding:17px 22px;border-radius:4px;font-size:13px;font-weight:700}.button-dark{background:var(--ink);color:white}.button-dark b{font-size:18px}.text-link{font-size:13px;border-bottom:1px solid #888;padding-bottom:5px}.text-link span{margin-left:14px}.hero-photo{position:relative;justify-self:end;width:min(100%,500px)}.photo-frame{position:relative;height:630px;overflow:hidden;background:#ddd;box-shadow:20px 30px 70px #302b2228}.photo-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#1119);pointer-events:none}.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.photo-frame:hover img{transform:scale(1.045)}.photo-caption{position:absolute;bottom:25px;left:25px;z-index:1;color:white;display:flex;flex-direction:column;gap:4px}.photo-caption span{font-size:9px;letter-spacing:2px;opacity:.7}.photo-caption strong{font-size:14px}.floating-card{position:absolute;left:-45px;bottom:48px;background:#fff;padding:17px 22px;display:flex;gap:13px;align-items:center;box-shadow:0 18px 50px #1d1a1625;min-width:170px}.floating-card .dot{width:8px;height:8px;background:#48a868;border-radius:50%;box-shadow:0 0 0 6px #48a86820}.floating-card div{display:flex;flex-direction:column;gap:3px}.floating-card small{font-size:9px;color:#999;text-transform:uppercase;letter-spacing:1px}.floating-card strong{font-size:13px}.scroll-mark{position:absolute;bottom:27px;left:9vw;font-size:9px;letter-spacing:2px;color:#8a867f}.scroll-mark span{margin-left:20px;color:var(--orange)}
.section{padding:125px 9vw}.section-head{display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:2px;margin-bottom:75px}.section-head span{color:var(--orange);font-weight:700}.section-head b{font-size:10px}.section-head i{height:1px;background:var(--line);flex:1}.about{background:var(--paper)}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:10vw}.about h2,.work-intro h2,.skills h2{font-size:clamp(45px,5vw,75px);line-height:.98;letter-spacing:-3px;margin:0}.about-copy{max-width:570px}.about-copy p{font-size:15px;line-height:1.8;color:#6a665f}.about-copy .big{font-size:23px;line-height:1.5;color:var(--ink);margin-top:0}
.work-intro{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px}.work-intro p{max-width:330px;color:var(--muted);line-height:1.7;font-size:14px}.project-list{border-top:1px solid var(--line)}.project{display:grid;grid-template-columns:70px 1fr 70px;padding:45px 0;border-bottom:1px solid var(--line);transition:.45s;position:relative}.project:before{content:"";position:absolute;left:-2vw;right:-2vw;top:0;bottom:0;background:#ebe5da;transform:scaleY(0);transform-origin:bottom;transition:.45s;z-index:0}.project:hover:before{transform:scaleY(1)}.project>*{position:relative;z-index:1}.project-number{font:600 13px var(--serif);color:var(--orange)}.project-main{max-width:800px}.project-meta{font-size:9px;letter-spacing:2px;color:#999;margin-bottom:17px}.project h3{font-size:clamp(32px,4vw,55px);line-height:.98;letter-spacing:-2px;margin:0 0 18px}.project h3 em{color:var(--orange)}.project p{font-size:14px;line-height:1.7;color:#706c65;max-width:650px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.tags span{font-size:9px;letter-spacing:1px;text-transform:uppercase;border:1px solid #cbc4b8;padding:8px 10px}.project-arrow{font-size:27px;text-align:right;transition:.4s}.project:hover .project-arrow{transform:translate(6px,-6px);color:var(--orange)}
.skills{background:#e9e4da}.skills-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:10vw}.skill-cloud{display:flex;flex-wrap:wrap;gap:10px;align-content:start}.skill-cloud span{padding:13px 17px;border:1px solid #c9c2b5;font-size:13px;border-radius:100px;transition:.3s}.skill-cloud span:hover{background:var(--ink);color:white;border-color:var(--ink);transform:translateY(-3px)}.skill-cloud .hot{background:var(--orange);color:white;border-color:var(--orange)}.language-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cbc4b7;margin-top:100px}.language-row div{padding:22px 0;border-right:1px solid #cbc4b7;display:flex;flex-direction:column;gap:6px}.language-row div:not(:first-child){padding-left:30px}.language-row small{font-size:8px;letter-spacing:1.5px;color:#9a958c}.language-row strong{font-size:20px}.language-row span{font-size:11px;color:#777}
.education{background:var(--paper)}.edu-list{border-top:1px solid var(--line)}.edu{display:grid;grid-template-columns:220px 1fr;padding:42px 0;border-bottom:1px solid var(--line)}.edu-year{font-size:10px;letter-spacing:1.5px;color:var(--orange);font-weight:700}.edu h3{font-size:29px;margin:0 0 8px;letter-spacing:-1px}.edu p{margin:0 0 8px;font-size:15px}.edu small{color:#858078;font-size:12px}
.certifications{background:var(--cream)}.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.cert{background:var(--cream);padding:40px;min-height:220px;transition:.35s}.cert:hover{background:var(--paper);transform:translateY(-6px)}.cert small{font-size:9px;letter-spacing:2px;color:var(--orange)}.cert h3{font-size:30px;line-height:1.05;margin:30px 0}.cert p{font-size:11px;letter-spacing:1px;color:#888}
.contact{background:var(--dark);color:white;position:relative;overflow:hidden;padding:110px 9vw 90px}.contact-glow{position:absolute;width:600px;height:600px;border-radius:50%;right:-180px;bottom:-250px;background:#e85d3f22;filter:blur(25px)}.contact-inner{position:relative;z-index:1}.section-head.light{color:white}.section-head.light i{background:#383838}.contact .eyebrow{margin-top:90px}.light-text{color:#aaa}.contact h2{font-size:clamp(60px,8vw,120px);line-height:.88;letter-spacing:-5px;margin:28px 0}.contact h2 em{color:#f1c0b2}.contact-sub{max-width:490px;color:#999;line-height:1.7;font-size:14px}.email{display:inline-flex;margin-top:38px;font-size:clamp(22px,3vw,38px);border-bottom:1px solid #555;padding-bottom:8px}.email span{font-size:22px;margin-left:25px;color:var(--orange)}.socials{display:flex;gap:30px;margin-top:60px;color:#aaa;font-size:11px;text-transform:uppercase;letter-spacing:1px}.socials a:hover{color:white}
footer{background:#0b0b0b;color:#666;padding:25px 9vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px}footer a:hover{color:white}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@keyframes pulse{50%{transform:scale(1.1);opacity:.7}}
.cursor,.cursor-ring{position:fixed;pointer-events:none;z-index:50;border-radius:50%;transform:translate(-50%,-50%);display:none}.cursor{width:6px;height:6px;background:var(--orange)}.cursor-ring{width:30px;height:30px;border:1px solid #e85d3f88;transition:width .2s,height .2s}.has-cursor .cursor,.has-cursor .cursor-ring{display:block}
@media(max-width:800px){.header{padding:0 6vw}.header nav,.nav-cta{display:none}.menu{display:block}.hero{padding:130px 6vw 80px;display:flex;flex-direction:column;align-items:stretch;gap:50px}.hero h1{font-size:82px;letter-spacing:-5px}.hero-photo{width:88%;align-self:flex-end}.photo-frame{height:500px}.floating-card{left:-20px}.scroll-mark{display:none}.section{padding:90px 6vw}.section-head{margin-bottom:50px}.about-grid,.skills-grid{grid-template-columns:1fr;gap:45px}.work-intro{display:block}.work-intro p{margin-top:25px}.project{grid-template-columns:45px 1fr 35px;padding:35px 0}.project h3{font-size:34px}.project-arrow{font-size:20px}.language-row{margin-top:65px}.edu{grid-template-columns:1fr;gap:15px}.cert-grid{grid-template-columns:1fr}.cert{min-height:auto}.contact{padding:85px 6vw}.contact h2{font-size:64px;letter-spacing:-3px}.socials{flex-wrap:wrap}footer{padding:25px 6vw;gap:15px;flex-wrap:wrap}.hero-bg{width:350px;height:350px;right:-150px}.cursor,.cursor-ring{display:none!important}}
