@font-face{font-family:Mistrully;src:url(/fonts/Mistrully.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #fdf9f3;--bg-warm: #f5ede0;--bg-muted: #f0ece4;--bg-dark: #1e1a14;--text: #1e1a16;--text-muted: #7a6f64;--border: #e4ddd4;--accent: #1a2332;--accent-hover: #2a3650;--teal: #2d8a82;--teal-light: #e8f5f4;--yellow: #f0c945;--yellow-light: #fef9e7;--base-font-size: 16px;--hero-title-size: 110px;--section-title-size: 40px;--body-size: 17px;--radius: 6px;--max: 1140px;--max-narrow: 760px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}.bg-floaters{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden;height:100%;min-height:100vh}body{position:relative}.bg-floaters .floater{position:absolute;display:block;border-radius:50%;filter:blur(60px);opacity:.85;will-change:transform;animation:floater-drift 24s ease-in-out infinite alternate}.floater--teal{background:radial-gradient(circle,#aad7d2f2,#aad7d200 70%)}.floater--yellow{background:radial-gradient(circle,#f8e4b4f2,#f8e4b400 70%)}.floater--cream{background:radial-gradient(circle,#f0d7d2f2,#f0d7d200 70%)}@keyframes floater-drift{0%{transform:translate(0) scale(1)}25%{transform:translate(60px,-40px) scale(1.1)}50%{transform:translate(-30px,50px) scale(.95)}75%{transform:translate(50px,30px) scale(1.05)}to{transform:translate(-50px,-30px) scale(1)}}body>header,body>main,body>footer,body>nav{position:relative;z-index:1}@media(prefers-reduced-motion:reduce){.bg-floaters .floater{animation:none}}@media(max-width:720px){.bg-floaters .floater{opacity:.7;filter:blur(45px)}}html.has-js .section-label,html.has-js .section-title,html.has-js .section-body,html.has-js .featured-card,html.has-js .expertise-card,html.has-js .timeline-item,html.has-js .contact-item,html.has-js .contact-form,html.has-js .lang-badge,html.has-js .about-photo,html.has-js #refs-grid>*{opacity:0;transform:translateY(18px);transition:opacity .7s ease-out,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}html.has-js .is-revealed{opacity:1;transform:none}@keyframes hero-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-photo-in{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes hero-bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-photo{animation:hero-photo-in 1s cubic-bezier(.2,.7,.2,1) both}.hero-eyebrow,.hero-greeting,.hero-tagline,.hero-ctas{animation:hero-rise .8s cubic-bezier(.2,.7,.2,1) both}.hero-eyebrow{animation-delay:.15s}.hero-greeting{animation-delay:.3s}.hero-tagline{animation-delay:.55s}.hero-ctas{animation-delay:.7s}.hero-accent-bar{transform-origin:left center;animation:hero-bar-grow .7s cubic-bezier(.2,.7,.2,1) .45s both}html.has-js .section-title{position:relative}html.has-js .section-title:after{content:"";position:absolute;left:0;bottom:-10px;height:3px;width:56px;background:var(--teal);border-radius:2px;transform:scaleX(0);transform-origin:left center;transition:transform .7s cubic-bezier(.2,.7,.2,1) .25s}html.has-js .section-title.is-revealed:after{transform:scaleX(1)}@media(prefers-reduced-motion:reduce){html.has-js .section-label,html.has-js .section-title,html.has-js .section-body,html.has-js .featured-card,html.has-js .expertise-card,html.has-js .timeline-item,html.has-js .contact-item,html.has-js .contact-form,html.has-js .lang-badge,html.has-js .about-photo,html.has-js #refs-grid>*{opacity:1;transform:none;transition:none}.hero-photo,.hero-eyebrow,.hero-greeting,.hero-tagline,.hero-ctas,.hero-accent-bar{animation:none}html.has-js .section-title:after{transform:scaleX(1);transition:none}}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:var(--base-font-size);line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.container{max-width:var(--max);margin:0 auto;padding:0 40px}.container.narrow{max-width:var(--max-narrow)}a{color:inherit;text-decoration:none;transition:color .2s ease}a:hover{color:var(--teal)}.site-nav{position:sticky;top:0;background:var(--teal-light);border-bottom:1.5px solid var(--teal);z-index:100}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.nav-brand{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--accent)}.nav-links{display:flex;gap:32px}.nav-links a{font-size:14px;font-weight:500;color:var(--teal);transition:color .2s ease}.nav-links a:hover{color:var(--accent)}.nav-links a.active{color:var(--accent);font-weight:600}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;border-radius:4px;flex-shrink:0}.nav-toggle span{display:block;width:22px;height:2px;background:var(--accent);border-radius:2px;transition:transform .22s ease,opacity .22s ease;transform-origin:center}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:640px){.nav-toggle{display:flex}.nav-links{display:none;position:fixed;top:68px;left:0;right:0;background:var(--teal-light);border-bottom:1.5px solid var(--teal);flex-direction:column;padding:8px 24px 20px;gap:0;z-index:99;box-shadow:0 8px 24px #00000014}.nav-links.open{display:flex}.nav-links a{padding:14px 0;font-size:16px;font-weight:500;border-bottom:1px solid rgba(45,138,130,.15)}.nav-links a:last-child{border-bottom:none}}.page-main{min-height:calc(100vh - 132px);display:flex;flex-direction:column;animation:page-fade-in .32s ease-out both}.page-main>.section,.page-main>.featured{flex:1}@keyframes page-fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.page-main{animation:none}}#projects-list{min-height:360px}#refs-grid{min-height:240px}.hero{display:flex;height:calc(100vh - 68px);overflow:hidden}.hero-photo-panel{position:relative;flex:0 0 auto;overflow:hidden}.hero-photo{height:100%;width:auto;display:block}.hero-photo-bleed{position:absolute;inset:0;background:linear-gradient(to left,var(--bg) 0%,transparent 30%)}.hero-text-panel{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;padding:60px 64px 80px 60px}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:32px;background:var(--teal-light);padding:6px 14px;border-radius:999px;align-self:flex-start}.hero-greeting{display:flex;flex-direction:column;line-height:1}.hero-hi{font-family:Inter,sans-serif;font-size:20px;font-weight:400;color:var(--text-muted);margin-bottom:6px;letter-spacing:.01em}.hero-name{font-family:Mistrully,cursive;font-size:calc(var(--hero-title-size) * 1.15);font-weight:400;letter-spacing:.01em;line-height:1.3;padding:.1em 0 .3em;display:block;background:linear-gradient(135deg,var(--accent) 0%,var(--teal) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-accent-bar{height:3px;width:72px;background:linear-gradient(90deg,var(--teal),var(--yellow));border-radius:2px;margin-top:4px;margin-bottom:28px}.hero-tagline{font-size:15px;font-weight:400;color:var(--text-muted);max-width:420px;margin-bottom:48px;line-height:1.65}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}@media(max-width:860px){.hero{flex-direction:column;height:auto;min-height:calc(100vh - 68px)}.hero-photo-panel{flex:0 0 auto;height:42vh;width:100%}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:50% 8%}.hero-photo-bleed{background:linear-gradient(to bottom,transparent 38%,var(--bg) 100%)}.hero-text-panel{flex:1;margin-top:-48px;padding:0 28px 56px;align-items:center;text-align:center}.hero-eyebrow{align-self:center;margin-bottom:20px}.hero-accent-bar{align-self:center}.hero-tagline{margin:0 auto 36px;max-width:320px}.hero-ctas{flex-direction:column;align-items:stretch;width:100%;max-width:300px}.hero-ctas .btn{width:100%;justify-content:center;padding:14px}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 30px;font-size:15px;font-weight:600;border-radius:var(--radius);border:1.5px solid transparent;cursor:pointer;transition:all .22s ease;letter-spacing:-.005em}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #1a23322e}.btn-primary:hover{background:var(--teal);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #2d8a824d}.btn-outline{background:transparent;color:var(--accent);border-color:var(--border)}.btn-outline:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-light);transform:translateY(-2px)}.section{padding:56px 0 120px}.section-muted{background:var(--bg-muted)}.section-label{display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:20px;padding:4px 12px;background:var(--teal-light);border-radius:999px}.section-title{font-size:var(--section-title-size);font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--accent);margin-bottom:24px;max-width:720px}.section-body{font-size:var(--body-size);line-height:1.75;color:var(--text-muted);margin-bottom:36px;max-width:760px}.lang-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:flex-start}.lang-item{position:relative;display:inline-flex;flex-direction:column;align-items:center}.lang-badge{padding:8px 20px;background:var(--bg);border:1.5px solid var(--border);border-radius:999px;font-size:14px;font-weight:600;color:var(--text);font-family:inherit;transition:all .2s ease;cursor:pointer}.lang-badge:hover,.lang-item.open .lang-badge{border-color:var(--teal);background:var(--teal-light);color:var(--teal);transform:translateY(-2px)}.lang-detail{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#fff;border:1.5px solid var(--teal);border-radius:12px;padding:12px 18px;min-width:170px;z-index:30;box-shadow:0 6px 20px #0000001a;white-space:nowrap}.lang-item.open .lang-detail{display:block}.lang-fluency-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;line-height:1.3}.lang-fluency-row+.lang-fluency-row{border-top:1px solid var(--border)}.lf-label{color:var(--text-muted);font-weight:500;min-width:52px}.lf-val{color:var(--teal);font-weight:700}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;margin-bottom:72px}@media(max-width:900px){.expertise-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.expertise-grid{grid-template-columns:1fr}}.expertise-card{padding:32px 28px;background:var(--bg);border:1.5px solid var(--border);border-radius:12px;transition:all .25s ease;position:relative;overflow:hidden}.expertise-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--yellow));opacity:0;transition:opacity .25s ease}.expertise-card:hover{border-color:var(--teal);transform:translateY(-4px);box-shadow:0 12px 32px #2d8a821f}.expertise-card:hover:after{opacity:1}.expertise-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--teal-light);border-radius:10px;margin-bottom:18px;color:var(--teal)}.expertise-icon svg{width:22px;height:22px}.expertise-card h3{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--accent);margin-bottom:10px;line-height:1.3}.expertise-card p{font-size:14.5px;color:var(--text-muted);line-height:1.65}.tech-block{padding-top:8px}.tech-title{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px}.tech-row{display:flex;flex-wrap:wrap;gap:8px}.tech-tag{padding:7px 16px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;font-weight:600;color:var(--text);transition:all .2s ease}.tech-tag:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-light)}.timeline{position:relative;margin-top:56px;padding-left:32px}.timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:linear-gradient(to bottom,var(--teal),var(--border));border-radius:2px}.timeline-item{position:relative;padding-bottom:52px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-32px;top:8px;width:14px;height:14px;border-radius:50%;background:var(--teal);border:3px solid var(--bg);box-shadow:0 0 0 2px var(--teal)}.timeline-dates{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--teal);background:var(--teal-light);padding:3px 10px;border-radius:999px;margin-bottom:10px}.timeline-role{font-size:20px;font-weight:700;color:var(--accent);letter-spacing:-.02em;margin-bottom:3px}.timeline-company{font-size:14.5px;font-weight:500;color:var(--text-muted);margin-bottom:16px}.timeline-bullets{list-style:none;padding:0}.timeline-bullets li{position:relative;padding-left:18px;font-size:15px;color:var(--text-muted);line-height:1.7;margin-bottom:7px}.timeline-bullets li:before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--teal);opacity:.6}.featured{padding:56px 0 120px}.project-item{padding:56px 0}.project-item--sep{border-top:1px solid var(--border)}.project-index{font-size:13px;font-weight:700;color:var(--teal);letter-spacing:.08em;display:block;margin-bottom:10px}.featured-card{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:start}.featured-left{position:sticky;top:100px}.featured-title{font-size:var(--section-title-size);font-weight:800;letter-spacing:-.03em;line-height:1.08;color:var(--accent);margin:12px 0 0}.featured-right{padding-top:4px}.featured-subtitle{font-size:13px;font-weight:600;color:var(--teal);letter-spacing:.06em;text-transform:uppercase;margin-bottom:20px;margin-top:0}.featured-body{font-size:16px;line-height:1.8;color:var(--text-muted);margin-bottom:36px}.featured-divider{width:48px;height:2px;background:var(--teal);margin-bottom:28px;border-radius:2px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.tag-row .tag{font-size:12px;font-weight:500;color:var(--teal);background:var(--teal-light);border:1px solid rgba(45,138,130,.2);border-radius:20px;padding:4px 14px;letter-spacing:.02em}@media(max-width:768px){.featured-card{grid-template-columns:1fr;gap:32px}.featured-left{position:static}.featured-title{font-size:36px}}.contact-container{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}@media(max-width:860px){.contact-container{grid-template-columns:1fr;gap:48px}}.contact-details{display:flex;flex-direction:column;gap:12px;margin-top:16px}.contact-item{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1.5px solid var(--border);border-radius:12px;transition:all .2s ease;text-decoration:none;color:inherit;background:var(--bg)}.contact-item:hover{border-color:var(--teal);background:var(--teal-light);transform:translateY(-2px);box-shadow:0 6px 20px #2d8a821a}.contact-icon{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--teal-light);border-radius:10px;color:var(--teal)}.contact-icon svg{width:18px;height:18px}.contact-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px}.contact-value{font-size:14.5px;font-weight:600;color:var(--text);word-break:break-word}.contact-form{background:var(--bg);border:1.5px solid var(--border);border-radius:16px;padding:40px;box-shadow:0 8px 40px #0000000f}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:560px){.form-row{grid-template-columns:1fr}.contact-form{padding:28px 22px}}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.form-field label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.required-star{color:var(--teal);font-size:14px;line-height:1;vertical-align:middle}.form-field input,.form-field textarea{width:100%;padding:12px 16px;background:var(--bg-muted);border:1.5px solid var(--border);border-radius:8px;font-family:Inter,system-ui,sans-serif;font-size:14.5px;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;-webkit-appearance:none}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--teal);background:var(--bg);box-shadow:0 0 0 3px #2d8a821f}.form-field input::placeholder,.form-field textarea::placeholder{color:#b8b0a8}.form-field textarea{resize:vertical;line-height:1.6;min-height:130px}.form-submit{width:100%;justify-content:center;padding:16px;font-size:15px;margin-top:4px;border-radius:10px}.form-submit:disabled{opacity:.65;cursor:not-allowed;transform:none!important}.form-status{padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:16px}.form-status.success{background:#edfaf3;border:1.5px solid #a7e3c4;color:#1a7a4a}.form-status.error{background:#fdebea;border:1.5px solid #f3b8b5;color:#b3261e}.hidden{display:none!important}.site-footer{padding:40px 0;border-top:1px solid var(--border);background:var(--bg-muted)}.footer-inner{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;color:var(--text-muted);font-weight:500}.footer-sep{opacity:.4}@media(max-width:720px){:root{--hero-title-size: 68px;--section-title-size: 28px;--body-size: 16px}.hero-hi{font-size:18px}.section,.featured{padding:40px 0 72px}.project-item{padding:40px 0}.container{padding:0 20px}.timeline{padding-left:24px;margin-top:36px}.timeline:before{left:5px}.timeline-item:before{left:-24px;width:12px;height:12px}.timeline-role{font-size:17px}.timeline-item{padding-bottom:40px}.expertise-grid{margin-top:32px;margin-bottom:48px;gap:14px}.expertise-card{padding:24px 20px}}@media(max-width:480px){:root{--hero-title-size: 52px;--section-title-size: 26px}.hero-hi{font-size:16px}.hero-photo-panel{height:40vh}.hero-text-panel{padding:28px 20px 48px}.container{padding:0 16px}.hero-ctas{flex-direction:column;align-items:center;gap:10px}.hero-ctas .btn{width:100%;max-width:280px}.contact-form{padding:24px 18px}.section,.featured{padding:32px 0 60px}.project-item{padding:32px 0}.featured-title{font-size:28px}}
