
:root{--cream:#f1ebdd;--paper:#fffdf7;--sage:#c8d8a9;--moss:#9fb773;--olive:#718a43;--forest:#263b1f;--ink:#171b14;--muted:#62675b;--line:rgba(38,59,31,.14);--shadow:0 24px 70px rgba(35,50,26,.16);--shadow-sm:0 14px 36px rgba(35,50,26,.12);--radius:32px;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{color:inherit}.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:fixed;left:12px;top:-60px;background:var(--forest);color:#fff;padding:12px 18px;z-index:10000}.skip-link:focus{top:12px}.page-loader{position:fixed;inset:0;background:var(--forest);z-index:9999;display:grid;place-content:center;text-align:center;color:var(--cream);gap:18px;transition:opacity .7s,var(--ease),visibility .7s}.page-loader.is-hidden{opacity:0;visibility:hidden}.page-loader span{font-size:12px;letter-spacing:.16em;text-transform:uppercase}.loader-orb{width:66px;height:66px;margin:auto;border-radius:38% 62% 55% 45%/45% 38% 62% 55%;background:radial-gradient(circle at 30% 25%,#e9f0d0,var(--moss) 42%,#415d2c 74%);animation:loader 1.3s ease-in-out infinite alternate;box-shadow:inset -10px -14px 24px rgba(0,0,0,.24),0 18px 50px rgba(184,212,132,.2)}@keyframes loader{to{transform:rotate(160deg) scale(.82)}}
.site-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;transition:.4s var(--ease)}.site-header.is-scrolled{height:72px;background:rgba(241,235,221,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand img{width:116px;height:auto}.header-actions{display:flex;align-items:center;gap:18px}.availability{display:flex;align-items:center;gap:9px;font-size:12px;background:rgba(255,253,247,.72);border:1px solid rgba(38,59,31,.13);padding:9px 13px;border-radius:99px;box-shadow:0 7px 18px rgba(38,59,31,.08)}.availability i{width:8px;height:8px;border-radius:50%;background:#78a940;box-shadow:0 0 0 5px rgba(120,169,64,.15);animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(120,169,64,0)}}.menu-button{width:46px;height:46px;border-radius:50%;border:0;background:var(--paper);box-shadow:var(--shadow-sm);cursor:pointer;display:grid;place-content:center;gap:7px;position:relative;z-index:1100}.menu-button span{width:18px;height:1.5px;background:var(--forest);display:block;transition:.35s}.menu-open .menu-button span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-button span:last-child{transform:translateY(-4px) rotate(-45deg)}.menu-panel{position:fixed;z-index:1050;inset:0;background:var(--forest);color:var(--cream);display:grid;grid-template-columns:1.4fr .6fr;align-items:end;padding:130px max(30px,8vw) 70px;clip-path:circle(0 at calc(100% - 50px) 44px);transition:clip-path .85s var(--ease);pointer-events:none;overflow:hidden}.menu-open .menu-panel{clip-path:circle(150% at calc(100% - 50px) 44px);pointer-events:auto}.overlay-nav{display:flex;flex-direction:column;position:relative;z-index:2}.overlay-nav a{font-family:'Instrument Serif',serif;font-size:clamp(42px,7vw,92px);line-height:.9;border-bottom:1px solid rgba(255,255,255,.12);padding:8px 0;transition:.25s}.overlay-nav a span{font-family:'DM Sans';font-size:10px;margin-right:14px;opacity:.55}.overlay-nav a:hover,.overlay-nav a.is-active{color:var(--sage);padding-left:18px}.menu-contact{position:relative;z-index:2;display:flex;flex-direction:column;gap:10px;padding-bottom:16px}.menu-contact span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage)}.menu-contact a{font-size:16px}.menu-shape{position:absolute;border-radius:46% 54% 36% 64%/56% 36% 64% 44%;background:radial-gradient(circle at 28% 22%,#dbe7bd,#7e984d 45%,#2d4924 78%);filter:drop-shadow(0 35px 50px rgba(0,0,0,.24));opacity:.62}.menu-shape-a{width:360px;height:360px;right:-80px;top:-80px;animation:floatA 9s ease-in-out infinite}.menu-shape-b{width:240px;height:200px;left:50%;bottom:-70px;animation:floatB 10s ease-in-out infinite}
.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:10000;border-radius:50%;transform:translate(-50%,-50%);display:none}.cursor-dot{width:6px;height:6px;background:var(--forest)}.cursor-ring{width:34px;height:34px;border:1px solid rgba(38,59,31,.45);transition:width .2s,height .2s,background .2s}.cursor-ring.is-hover{width:56px;height:56px;background:rgba(159,183,115,.18)}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.38}.hero{min-height:100vh;position:relative;padding:140px 0 50px;overflow:hidden;background:radial-gradient(circle at 50% 38%,#e3edc8 0,#d2dfae 23%,var(--cream) 58%)}.hero-grid{min-height:calc(100vh - 190px);display:grid;grid-template-columns:1fr .82fr 1fr;align-items:center;position:relative;z-index:3}.hero-title{grid-column:1/4;grid-row:1;text-align:center;align-self:start;margin-top:0;z-index:4}.hero-title .hello{display:block;font-size:clamp(40px,6vw,82px);font-weight:700;letter-spacing:-.055em;line-height:.92;text-shadow:0 4px 0 rgba(38,59,31,.08)}.hero-title .role{display:block;font-family:'Instrument Serif',serif;font-style:italic;font-size:clamp(58px,9vw,132px);line-height:.82;font-weight:400;letter-spacing:-.045em;color:var(--forest)}.hero-copy{grid-column:3;grid-row:1;align-self:center;justify-self:end;width:min(320px,100%);padding-top:150px}.hero-copy p{font-size:15px;line-height:1.65;color:#3d4836}.hero-copy .hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-left{grid-column:1;grid-row:1;align-self:center;padding-top:170px;display:flex;flex-direction:column;gap:18px}.mini-card{width:max-content;max-width:260px;padding:11px 15px;border-radius:16px;background:rgba(255,253,247,.75);border:1px solid rgba(38,59,31,.13);box-shadow:var(--shadow-sm);backdrop-filter:blur(10px);font-size:12px}.mini-card strong{display:block;font-size:15px}.mini-avatars{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}.avatar-stack{display:flex}.avatar-stack i{width:26px;height:26px;border-radius:50%;margin-left:-7px;border:2px solid var(--paper);background:linear-gradient(145deg,var(--sage),var(--olive))}.avatar-stack i:first-child{margin-left:0}.portrait-stage{grid-column:2;grid-row:1;align-self:end;justify-self:center;position:relative;width:min(390px,35vw);height:min(650px,68vh);display:flex;align-items:flex-end;justify-content:center;perspective:900px;z-index:2}.portrait-stage:before{content:"";position:absolute;width:82%;height:68%;bottom:6%;border-radius:44% 56% 48% 52%/56% 40% 60% 44%;background:linear-gradient(145deg,#6f8e47,#dbe8bd);box-shadow:inset -25px -30px 55px rgba(41,72,31,.34),inset 15px 20px 32px rgba(255,255,255,.46),0 32px 70px rgba(50,75,38,.22);transform:rotate(-8deg) translateZ(-20px);animation:morph 9s ease-in-out infinite}.portrait-stage img{position:relative;z-index:3;height:88%;width:auto;object-fit:contain;filter:drop-shadow(0 28px 25px rgba(31,43,24,.24));transform:translateZ(60px);transform-origin:bottom}.floating-tech{position:absolute;z-index:5;background:var(--paper);border-radius:50%;width:58px;height:58px;display:grid;place-items:center;font-weight:700;color:var(--forest);box-shadow:var(--shadow-sm);border:1px solid var(--line);animation:floatA 6s ease-in-out infinite}.tech-wp{left:-28px;top:36%;font-size:22px}.tech-php{right:-30px;top:24%;font-size:11px;animation-delay:-2s}.tech-js{right:-12px;bottom:20%;font-size:13px;animation-delay:-4s}.hero-blob{position:absolute;z-index:1;border-radius:47% 53% 38% 62%/56% 35% 65% 44%;background:radial-gradient(circle at 28% 20%,#eff5d8 0,#adc786 42%,#4d6a35 78%);box-shadow:inset -20px -25px 40px rgba(36,64,26,.32),0 35px 70px rgba(42,68,31,.18);filter:saturate(.9)}.blob-a{width:220px;height:180px;left:-60px;top:-35px;animation:floatA 9s ease-in-out infinite}.blob-b{width:165px;height:200px;right:-30px;top:80px;animation:floatB 8s ease-in-out infinite}.blob-c{width:100px;height:94px;left:8%;top:45%;animation:floatB 7s ease-in-out infinite reverse}.blob-d{width:90px;height:110px;right:10%;bottom:18%;animation:floatA 7s ease-in-out infinite reverse}.small-orb{position:absolute;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 28% 22%,#f5f7df,#7f9a4e 60%,#334e28);box-shadow:0 12px 18px rgba(38,59,31,.22);z-index:2}.orb-a{top:24%;left:20%;animation:floatA 5s infinite}.orb-b{top:30%;right:18%;width:18px;height:18px;animation:floatB 6s infinite}.orb-c{bottom:17%;left:14%;width:35px;height:35px;animation:floatB 8s infinite}.hero-bottom{position:absolute;bottom:24px;left:0;right:0;z-index:5}.tech-marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;overflow:hidden;background:rgba(241,235,221,.45);backdrop-filter:blur(9px)}.marquee-track{display:flex;width:max-content;gap:44px;animation:marquee 26s linear infinite}.marquee-track span{font-size:13px;font-weight:700;display:flex;gap:44px;align-items:center}.marquee-track span:after{content:'•';color:var(--olive)}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes floatA{50%{transform:translate3d(10px,18px,0) rotate(8deg)}}@keyframes floatB{50%{transform:translate3d(-12px,-18px,0) rotate(-9deg)}}@keyframes morph{50%{border-radius:58% 42% 62% 38%/44% 58% 42% 56%;transform:rotate(5deg) translateZ(-20px) scale(1.04)}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:99px;padding:13px 20px;border:1px solid var(--forest);font-size:13px;font-weight:600;transition:.3s var(--ease);cursor:pointer}.btn-primary{background:var(--forest);color:var(--paper);box-shadow:0 12px 22px rgba(38,59,31,.18)}.btn-primary:hover{background:#38542c;transform:translateY(-2px)}.btn-ghost{background:rgba(255,253,247,.55)}.btn-ghost:hover{background:var(--paper);transform:translateY(-2px)}.text-link{font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:5px}.text-link:hover{color:var(--olive)}
.section{padding:110px 0;position:relative}.section-tight{padding:78px 0}.section-heading{display:grid;grid-template-columns:.45fr 1.1fr .8fr;gap:30px;align-items:start;margin-bottom:55px}.eyebrow{font-family:'Instrument Serif';font-style:italic;font-size:18px;margin:7px 0;color:var(--forest)}.section-heading h2{font-size:clamp(38px,5.4vw,76px);line-height:.98;letter-spacing:-.055em;margin:0;font-weight:600}.section-heading h2 em{font-family:'Instrument Serif';font-weight:400}.section-copy{font-size:15px;line-height:1.75;color:var(--muted);margin:8px 0}.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:24px}.intro-panel{background:var(--paper);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow-sm);border:1px solid rgba(38,59,31,.1)}.intro-panel p{font-size:clamp(20px,2.5vw,32px);line-height:1.35;letter-spacing:-.02em;margin:0}.intro-side{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-card{background:linear-gradient(145deg,var(--sage),#e7edd4);border-radius:26px;padding:25px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-sm);transform-style:preserve-3d}.stat-card strong{font-family:'Instrument Serif';font-size:54px;font-weight:400;line-height:1}.stat-card span{font-size:12px;color:#3f4d37}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.expertise-card{background:rgba(255,253,247,.72);border:1px solid var(--line);border-radius:24px;padding:28px;min-height:210px;transition:.35s var(--ease);transform-style:preserve-3d}.expertise-card:hover{transform:translateY(-8px) rotateX(2deg);box-shadow:var(--shadow-sm);background:var(--paper)}.expertise-card .number{display:block;font-family:'Instrument Serif';font-style:italic;color:var(--olive);margin-bottom:45px}.expertise-card h3{font-size:22px;margin:0 0 10px}.expertise-card p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}
.featured-wrap{background:linear-gradient(135deg,#d8e6bd,#b4ca8e);border-radius:44px;padding:60px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.featured-wrap:before,.featured-wrap:after{content:"";position:absolute;border-radius:46% 54% 64% 36%/43% 61% 39% 57%;background:radial-gradient(circle at 28% 25%,#edf4d7,#8eaa61 48%,#466234 82%);box-shadow:inset -18px -22px 35px rgba(34,67,28,.22)}.featured-wrap:before{width:300px;height:260px;left:-100px;bottom:-60px;transform:rotate(20deg)}.featured-wrap:after{width:220px;height:180px;right:-50px;top:-45px;transform:rotate(-20deg)}.featured-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:45px;align-items:center;position:relative;z-index:2}.featured-copy .project-kicker{font-family:'Instrument Serif';font-style:italic}.featured-copy h3{font-size:clamp(38px,5vw,70px);line-height:.95;letter-spacing:-.05em;margin:10px 0 20px}.featured-copy p{line-height:1.7;color:#3e4a37}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.tag-list span{padding:8px 12px;border-radius:99px;font-size:11px;background:rgba(255,253,247,.65);border:1px solid rgba(38,59,31,.12)}.project-visual{position:relative;border-radius:26px;transition:.45s var(--ease);transform-style:preserve-3d}.project-visual img{border-radius:24px;box-shadow:0 25px 45px rgba(34,54,27,.23);border:7px solid rgba(255,253,247,.8)}.project-visual.is-large{transform:perspective(1000px) rotateY(-4deg) rotateX(2deg)}.project-visual:hover{transform:perspective(1000px) rotateY(0) rotateX(0) translateY(-8px)}.visual-chip{position:absolute;right:14px;bottom:-13px;background:var(--paper);padding:8px 12px;border-radius:99px;box-shadow:var(--shadow-sm);font-size:10px;max-width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.project-card{background:rgba(255,253,247,.72);border:1px solid var(--line);border-radius:30px;padding:14px;box-shadow:0 12px 34px rgba(35,50,26,.07);transition:.35s var(--ease)}.project-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-sm)}.project-card-media{display:block;overflow:hidden;border-radius:22px}.project-card-media .project-visual{transition:.5s}.project-card:hover .project-card-media .project-visual{transform:scale(1.025)}.project-card-content{padding:23px 13px 12px;display:flex;flex-direction:column;justify-content:space-between;min-height:260px}.project-meta{font-family:'Instrument Serif';font-style:italic;color:var(--olive);margin:0 0 10px}.project-card h3{font-size:30px;letter-spacing:-.03em;margin:0 0 12px}.project-card p{font-size:13px;line-height:1.65;color:var(--muted)}.project-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px}
.process-scene{position:relative;padding:60px 40px 40px;background:linear-gradient(180deg,#d7e4b8,#eef0df);border-radius:40px;box-shadow:var(--shadow-sm);overflow:hidden}.process-line{position:absolute;top:48%;left:18%;right:18%;height:3px;background:linear-gradient(90deg,var(--olive),#b9d078,var(--olive));transform:rotate(-2deg);box-shadow:0 0 20px rgba(113,138,67,.55)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative;z-index:2}.process-card{background:rgba(255,253,247,.85);padding:28px;border-radius:26px;box-shadow:var(--shadow-sm);min-height:245px;transform:rotate(-2deg);transition:.35s var(--ease)}.process-card:nth-child(2){transform:translateY(-30px) rotate(2deg)}.process-card:nth-child(3){transform:rotate(-1deg)}.process-card:hover{transform:translateY(-12px) rotate(0)}.process-card strong{font-family:'Instrument Serif';font-size:42px;font-weight:400}.process-card h3{font-size:24px;margin:28px 0 10px}.process-card p{font-size:13px;line-height:1.6;color:var(--muted)}
.skills-shell{background:var(--forest);color:var(--cream);border-radius:46px;padding:65px;position:relative;overflow:hidden}.skills-shell:after{content:"";position:absolute;width:430px;height:260px;right:-100px;bottom:-100px;background:radial-gradient(circle at 30% 20%,#d9e7b9,#78934f 45%,#263b1f 76%);border-radius:44% 56% 35% 65%/59% 40% 60% 41%;opacity:.55}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;position:relative;z-index:2}.skill-group{border:1px solid rgba(255,255,255,.13);border-radius:24px;padding:24px;background:rgba(255,255,255,.045);backdrop-filter:blur(8px)}.skill-group h3{font-family:'Instrument Serif';font-size:25px;font-weight:400;margin:0 0 18px;color:var(--sage)}.skill-pills{display:flex;flex-wrap:wrap;gap:8px}.skill-pills span{font-size:11px;padding:8px 10px;border-radius:99px;background:rgba(255,255,255,.08)}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.value-card{padding:30px;border-radius:28px;background:var(--paper);border:1px solid var(--line);min-height:190px}.value-icon{width:42px;height:42px;border-radius:50%;display:grid;place-content:center;background:var(--sage);margin-bottom:30px}.value-card h3{font-size:22px;margin:0 0 8px}.value-card p{font-size:13px;line-height:1.65;color:var(--muted)}
.cta{padding:80px 0 30px}.cta-panel{position:relative;overflow:hidden;min-height:360px;border-radius:44px;background:radial-gradient(circle at 50% 20%,#d9ebba,#a7c27d 40%,#6d8748 100%);display:grid;place-content:center;text-align:center;padding:50px;box-shadow:var(--shadow)}.cta-panel h2{font-size:clamp(48px,7vw,96px);line-height:.88;letter-spacing:-.06em;margin:0;position:relative;z-index:2;text-shadow:0 3px 0 rgba(255,255,255,.32)}.cta-panel h2 em{font-family:'Instrument Serif';font-weight:400}.cta-panel p{max-width:580px;margin:22px auto;position:relative;z-index:2}.cta-panel .btn{position:relative;z-index:2;margin:auto}.cta-shape{position:absolute;border-radius:44% 56% 60% 40%/48% 62% 38% 52%;background:radial-gradient(circle at 28% 22%,#edf5d8,#78964f 48%,#36532a 82%);box-shadow:inset -24px -28px 40px rgba(29,55,24,.3)}.cta-shape.a{width:240px;height:210px;left:-50px;bottom:-65px;transform:rotate(18deg)}.cta-shape.b{width:190px;height:170px;right:-30px;top:-55px;transform:rotate(-20deg)}
.page-hero{padding:170px 0 90px;position:relative;overflow:hidden;background:radial-gradient(circle at 70% 20%,#dbe7bf,var(--cream) 45%)}.page-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end}.page-hero h1{font-size:clamp(62px,9vw,124px);line-height:.83;letter-spacing:-.065em;margin:10px 0 25px}.page-hero h1 em{font-family:'Instrument Serif';font-weight:400}.page-hero .lead{font-size:17px;line-height:1.75;color:var(--muted);max-width:620px}.page-hero-art{min-height:320px;position:relative}.page-hero-art .hero-blob{position:absolute}.page-hero-art .one{width:250px;height:230px;right:10%;bottom:0}.page-hero-art .two{width:95px;height:105px;left:8%;top:5%;animation:floatB 7s infinite}.breadcrumb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
.content-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.sticky-label{position:sticky;top:110px;height:max-content}.sticky-label h2{font-family:'Instrument Serif';font-size:34px;font-weight:400;margin:0}.prose p{font-size:18px;line-height:1.8;color:#3e473a}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.info-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:30px}.info-card h3{font-size:24px;margin:0 0 16px}.clean-list{padding:0;margin:0;list-style:none;display:grid;gap:10px}.clean-list li{position:relative;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.5}.clean-list li:before{content:'↗';position:absolute;left:0;color:var(--olive)}.education-grid,.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.education-card,.service-card{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 12px 28px rgba(38,59,31,.06)}.education-card .year,.service-card .num{font-family:'Instrument Serif';font-style:italic;color:var(--olive);font-size:18px}.education-card h3,.service-card h3{font-size:24px;margin:38px 0 12px}.education-card p,.service-card li{font-size:13px;line-height:1.6;color:var(--muted)}.service-card ul{padding:0;list-style:none;display:flex;gap:7px;flex-wrap:wrap}.service-card li{background:#eef1df;border-radius:99px;padding:7px 10px}.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-sm)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.filter-button{border:1px solid var(--line);background:rgba(255,253,247,.6);border-radius:99px;padding:10px 14px;cursor:pointer;font-size:12px}.filter-button.is-active,.filter-button:hover{background:var(--forest);color:var(--paper)}.project-card.is-hidden{display:none}
.timeline{position:relative;max-width:980px;margin:auto}.timeline:before{content:'';position:absolute;left:120px;top:0;bottom:0;width:2px;background:linear-gradient(var(--olive),var(--sage),var(--olive))}.timeline-item{display:grid;grid-template-columns:90px 1fr;gap:60px;margin-bottom:32px;position:relative}.timeline-date{font-family:'Instrument Serif';font-style:italic;font-size:16px;padding-top:28px;text-align:right}.timeline-card{background:var(--paper);border-radius:30px;padding:34px;border:1px solid var(--line);box-shadow:var(--shadow-sm);position:relative}.timeline-card:before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:var(--olive);left:-40px;top:35px;box-shadow:0 0 0 8px var(--cream)}.timeline-card h3{font-size:30px;margin:0 0 7px}.timeline-card .location{color:var(--olive);font-size:13px}.timeline-card ul{columns:2;column-gap:40px;padding-left:18px}.timeline-card li{font-size:13px;line-height:1.55;margin-bottom:8px;color:var(--muted);break-inside:avoid}
.resume-shell{display:grid;grid-template-columns:.72fr 1.28fr;gap:22px}.resume-sidebar{background:var(--forest);color:var(--cream);border-radius:34px;padding:34px;position:sticky;top:100px;height:max-content}.resume-sidebar h2{font-family:'Instrument Serif';font-size:42px;font-weight:400;margin:0 0 18px}.resume-sidebar p{font-size:13px;line-height:1.7;color:#d7dec9}.resume-main{display:grid;gap:18px}.resume-block{background:var(--paper);border-radius:30px;padding:32px;border:1px solid var(--line)}.resume-block h2{font-size:31px;margin:0 0 20px}.resume-row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:17px 0;border-top:1px solid var(--line)}.resume-row:first-of-type{border-top:0}.resume-row span{font-family:'Instrument Serif';font-style:italic;color:var(--olive)}.resume-row strong{display:block;font-size:18px}.resume-row p{margin:5px 0;font-size:13px;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:24px}.contact-info{background:var(--forest);color:var(--cream);border-radius:34px;padding:38px;position:relative;overflow:hidden}.contact-info h2{font-family:'Instrument Serif';font-size:50px;font-weight:400;margin:0 0 24px}.contact-info a{display:block;font-size:18px;margin:11px 0}.contact-info p{color:#d9decf;line-height:1.7}.contact-form{background:var(--paper);border-radius:34px;padding:38px;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:14px;background:#f8f5ec;padding:14px 15px;outline:none}.field textarea{min-height:140px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--olive);box-shadow:0 0 0 4px rgba(113,138,67,.12)}.form-note{font-size:11px;color:var(--muted)}.form-status{font-size:13px;margin-top:12px}.honeypot{position:absolute!important;left:-9999px!important}.checkbox{display:flex;gap:10px;align-items:flex-start}.checkbox input{width:auto;margin-top:3px}
.case-hero{padding:160px 0 70px;background:radial-gradient(circle at 75% 25%,#dbe8bf,var(--cream) 48%)}.case-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:45px;align-items:end}.case-head h1{font-size:clamp(56px,8vw,105px);line-height:.87;letter-spacing:-.06em;margin:12px 0 22px}.case-head p{font-size:16px;line-height:1.7;color:var(--muted)}.case-visual{margin-top:50px}.case-visual .project-visual img{border-width:10px}.case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.case-meta div{background:rgba(255,253,247,.74);border:1px solid var(--line);padding:18px;border-radius:18px}.case-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--olive);display:block;margin-bottom:6px}.case-meta strong{font-size:13px}.case-content{display:grid;grid-template-columns:.5fr 1.5fr;gap:60px}.case-nav{position:sticky;top:105px;height:max-content;display:grid;gap:12px}.case-nav a{font-size:13px;color:var(--muted)}.case-nav a:hover{color:var(--forest)}.case-section{padding-bottom:62px;border-bottom:1px solid var(--line);margin-bottom:62px}.case-section h2{font-size:clamp(34px,4vw,54px);letter-spacing:-.04em;margin:0 0 20px}.case-section p{font-size:17px;line-height:1.8;color:#3d4738}.contribution-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contribution-grid div{background:var(--paper);border-radius:16px;padding:14px 16px;font-size:13px;border:1px solid var(--line)}.project-pagination{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-pagination a{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:22px}.project-pagination a:last-child{text-align:right}.project-pagination span{font-size:11px;color:var(--olive);display:block}.project-pagination strong{font-size:20px}
.footer{background:var(--forest);color:var(--cream);margin-top:80px;padding:90px 0 25px;position:relative;overflow:hidden}.footer-organic{position:absolute;width:460px;height:300px;right:-100px;top:-130px;border-radius:44% 56% 63% 37%/48% 60% 40% 52%;background:radial-gradient(circle at 30% 25%,#d8e5b9,#6e8a48 48%,#263b1f 80%);opacity:.5}.footer-grid{display:grid;grid-template-columns:1.2fr .6fr .8fr;gap:60px;position:relative;z-index:2}.footer-grid>div{display:flex;flex-direction:column;gap:10px}.footer-logo{width:150px}.footer p,.footer span,.footer a{font-size:13px;color:#d6ddcb}.footer-label{text-transform:uppercase!important;letter-spacing:.15em;font-size:10px!important;color:var(--sage)!important;margin-bottom:8px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:55px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;position:relative;z-index:2}.footer-bottom *{font-size:10px!important}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.tilt{transform-style:preserve-3d}.no-js .reveal{opacity:1;transform:none}
@media (pointer:fine){.cursor-dot,.cursor-ring{display:block}}
@media(max-width:980px){.container{width:min(100% - 34px,900px)}.availability{display:none}.hero{padding-top:125px;min-height:auto}.hero-grid{min-height:760px;grid-template-columns:1fr 1fr}.hero-title{grid-column:1/3}.portrait-stage{grid-column:1/3;width:330px;height:520px;grid-row:1;align-self:end}.hero-left{grid-column:1;z-index:6;padding-top:320px}.hero-copy{grid-column:2;z-index:6;padding-top:320px}.section-heading{grid-template-columns:1fr 2fr}.section-copy{grid-column:2}.intro-grid,.featured-grid,.content-grid,.resume-shell,.contact-grid,.case-head,.case-content{grid-template-columns:1fr}.sticky-label,.resume-sidebar,.case-nav{position:static}.expertise-grid,.education-grid,.service-grid{grid-template-columns:repeat(2,1fr)}.skills-grid{grid-template-columns:repeat(2,1fr)}.featured-wrap{padding:42px}.projects-grid{gap:18px}.timeline-card ul{columns:1}.page-hero-grid{grid-template-columns:1fr}.page-hero-art{display:none}.case-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.site-header{padding:0 16px}.brand img{width:100px}.menu-panel{grid-template-columns:1fr;align-items:center;padding:110px 25px 35px}.menu-contact{display:none}.overlay-nav a{font-size:52px}.hero{padding-top:110px;background:radial-gradient(circle at 50% 36%,#d6e4b7,var(--cream) 62%)}.hero-grid{display:flex;flex-direction:column;min-height:780px}.hero-title{order:1}.hero-title .hello{font-size:44px}.hero-title .role{font-size:68px}.portrait-stage{order:2;width:270px;height:410px;margin-top:-15px}.hero-left{display:none}.hero-copy{order:4;padding:0;text-align:center;width:100%;margin-top:-8px}.hero-copy p{font-size:13px}.hero-copy .hero-actions{justify-content:center}.hero-copy p:first-child{max-width:330px;margin-inline:auto}.mini-card{display:none}.hero-bottom{bottom:0}.blob-a{width:150px;height:130px}.blob-b{width:120px;height:140px}.tech-wp{left:-10px}.tech-php{right:-4px}.section{padding:78px 0}.section-heading{display:block;margin-bottom:34px}.section-heading h2{font-size:45px}.section-copy{margin-top:18px}.intro-grid{grid-template-columns:1fr}.intro-panel{padding:26px}.intro-side{grid-template-columns:1fr 1fr}.stat-card{min-height:125px}.expertise-grid,.education-grid,.service-grid,.projects-grid,.values-grid,.process-grid,.skills-grid,.two-col{grid-template-columns:1fr}.featured-wrap{padding:30px 20px;border-radius:30px}.featured-grid{gap:25px}.project-card-content{min-height:auto}.process-scene{padding:35px 18px}.process-line{display:none}.process-card,.process-card:nth-child(2),.process-card:nth-child(3){transform:none;min-height:auto}.skills-shell{padding:35px 20px;border-radius:30px}.cta-panel{padding:45px 20px;min-height:330px}.page-hero{padding:135px 0 65px}.page-hero h1{font-size:61px}.timeline:before{left:10px}.timeline-item{grid-template-columns:1fr;gap:8px;padding-left:34px}.timeline-date{text-align:left;padding:0}.timeline-card:before{left:-33px}.resume-row{grid-template-columns:1fr;gap:5px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.contact-form,.contact-info{padding:27px}.case-hero{padding:135px 0 60px}.case-meta{grid-template-columns:1fr 1fr}.contribution-grid,.project-pagination{grid-template-columns:1fr}.project-pagination a:last-child{text-align:left}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-bottom{flex-direction:column}.footer{padding-top:65px}.cursor-dot,.cursor-ring{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
