:root{--ink: #12131a;--ink-soft: #52525f;--paper: #faf9f7;--card: #ffffff;--line: #e7e5e0;--accent: #6d5bff;--accent-2: #ff6b57;--accent-soft: #efebff;--radius: 18px;--shadow: 0 30px 60px -30px rgba(18, 19, 26, .25);--ease: cubic-bezier(.16, 1, .3, 1);--maxw: 1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4{font-family:Space Grotesk,Inter,sans-serif;margin:0;letter-spacing:-.01em;line-height:1.08}p{margin:0;color:var(--ink-soft);line-height:1.65}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.section{padding:110px 0;position:relative}.section-tight{padding:70px 0}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.eyebrow:before{content:"";width:20px;height:2px;background:var(--accent);display:inline-block}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:15px;border:1px solid transparent;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s var(--ease),color .35s var(--ease)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 30px -12px #12131a73}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn-ghost:hover{border-color:var(--ink);transform:translateY(-3px)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{transform:translateY(-3px);box-shadow:0 16px 30px -12px #6d5bff8c}.page-enter{animation:pageIn .6s var(--ease) both}@keyframes pageIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.reveal-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal-stagger.is-visible>*{opacity:1;transform:none}.reveal-stagger.is-visible>*:nth-child(1){transition-delay:.02s}.reveal-stagger.is-visible>*:nth-child(2){transition-delay:.08s}.reveal-stagger.is-visible>*:nth-child(3){transition-delay:.14s}.reveal-stagger.is-visible>*:nth-child(4){transition-delay:.2s}.reveal-stagger.is-visible>*:nth-child(5){transition-delay:.26s}.reveal-stagger.is-visible>*:nth-child(6){transition-delay:.32s}.reveal-stagger.is-visible>*:nth-child(7){transition-delay:.38s}.reveal-stagger.is-visible>*:nth-child(8){transition-delay:.44s}@media (prefers-reduced-motion: reduce){.reveal,.reveal-stagger>*,.page-enter{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));z-index:999;transition:width .1s linear}.site-header{position:sticky;top:0;z-index:80;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#faf9f7c7;border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}.site-header.scrolled{border-color:var(--line);box-shadow:0 10px 30px -22px #12131a4d}.site-header .bar{display:flex;align-items:center;justify-content:space-between;height:76px}.brand{display:flex;align-items:center;gap:10px;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:18px}.brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));position:relative;flex:none}.brand-mark:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:5px;background:var(--paper)}.nav{display:flex;align-items:center;gap:36px}.nav a{font-size:15px;font-weight:500;color:var(--ink-soft);position:relative;padding:6px 0}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--ink);transition:right .3s var(--ease)}.nav a:hover,.nav a.active{color:var(--ink)}.nav a:hover:after,.nav a.active:after{right:0}.nav .btn,.nav .btn:hover,.nav .btn:visited{color:#fff!important;padding:13px 28px}.nav .btn:after{content:none}.nav-actions{display:flex;align-items:center;gap:18px}.burger{display:none}@media (max-width: 860px){.nav{position:fixed;top:76px;right:0;bottom:0;left:0;background:var(--paper);flex-direction:column;justify-content:flex-start;padding:40px 24px;gap:28px;transform:translate(100%);transition:transform .4s var(--ease)}.nav.open{transform:translate(0)}.burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:none;border:0}.burger span{height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}.burger span:nth-child(1){width:22px}.burger span:nth-child(2){width:16px;align-self:flex-end}.burger span:nth-child(3){width:22px}.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);width:22px}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);width:22px}}.site-footer{border-top:1px solid var(--line);padding:64px 0 32px;margin-top:60px}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.foot-grid h4{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:16px;font-family:Inter,sans-serif;font-weight:600}.foot-grid a,.foot-grid p{display:block;margin-bottom:10px;font-size:15px}.foot-grid a:hover{color:var(--accent)}.foot-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;color:var(--ink-soft);flex-wrap:wrap;gap:10px}@media (max-width: 760px){.foot-grid{grid-template-columns:1fr}}.hero{padding:90px 0 60px;position:relative;overflow:hidden}.hero-blob{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(90px);opacity:.35;z-index:-1;animation:floaty 12s ease-in-out infinite}.hero-blob.b1{background:var(--accent);top:-180px;right:-120px}.hero-blob.b2{background:var(--accent-2);bottom:-220px;left:-160px;animation-delay:-5s}@keyframes floaty{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-20px) scale(1.08)}}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}.hero h1{font-size:clamp(38px,5.2vw,68px)}.hero h1 .accent{color:var(--accent)}.hero p.lead{font-size:19px;margin:24px 0 34px;max-width:480px}.hero-cta{display:flex;gap:16px;flex-wrap:wrap}.hero-stats{display:flex;gap:34px;margin-top:50px;flex-wrap:wrap}.hero-stats b{display:block;font-family:Space Grotesk,sans-serif;font-size:26px}.hero-stats span{font-size:13px;color:var(--ink-soft)}.hero-visual{position:relative;aspect-ratio:1/1}.hero-card{position:absolute;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;animation:drift 7s ease-in-out infinite}.hero-card.c1{top:4%;left:6%;width:56%;animation-delay:0s}.hero-card.c2{bottom:8%;right:0;width:60%;animation-delay:-2.4s}.hero-card.c3{top:42%;right:10%;width:40%;animation-delay:-4.8s}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.hero-card .tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.hero-card .big{font-family:Space Grotesk,sans-serif;font-size:22px;margin-top:6px}.marquee-wrap{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;background:var(--card)}.marquee-track{display:flex;gap:48px;width:max-content;animation:scrollLeft 28s linear infinite}.marquee-track span{font-family:Space Grotesk,sans-serif;font-size:17px;color:var(--ink-soft);white-space:nowrap;display:flex;align-items:center;gap:10px}.marquee-track span:after{content:"◆";font-size:9px;color:var(--accent);margin-left:44px}@keyframes scrollLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:50px;flex-wrap:wrap}.section-head h2{font-size:clamp(30px,4vw,44px)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;gap:36px}@media (max-width: 860px){.projects-grid{grid-template-columns:1fr}}.project-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:box-shadow .4s var(--ease),transform .4s var(--ease)}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-6px)}.project-frame{position:relative;aspect-ratio:4 / 3.1;overflow:hidden;background:#eeece7;cursor:pointer}.project-shot{position:absolute;top:0;left:0;width:100%;height:auto;transform:translateY(0);transition:transform 1s ease}.project-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 -60px 60px -30px #00000047;pointer-events:none}.project-frame .scroll-hint{position:absolute;right:14px;bottom:14px;z-index:2;background:#ffffffeb;color:var(--ink);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:7px 12px;border-radius:999px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}.project-card:hover .scroll-hint{opacity:1;transform:none}.project-info{flex:1;display:flex;flex-direction:column;padding:26px 26px 28px}.project-info .head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}.project-info h3{font-size:21px}.project-info .tagline{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.project-info p{margin:12px 0 18px;font-size:14.5px;flex:1}.tech-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.tech-tags li{font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent);padding:6px 12px;border-radius:999px}.testi-wrap{position:relative;max-width:760px;margin:0 auto;text-align:center;min-height:220px}.testi-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);pointer-events:none}.testi-slide.active{opacity:1;transform:none;pointer-events:auto;position:relative}.testi-slide blockquote{font-family:Space Grotesk,sans-serif;font-size:clamp(20px,2.6vw,28px);color:var(--ink);margin:0 0 22px}.testi-slide .who b{display:block;font-size:15px}.testi-slide .who span{font-size:13px;color:var(--ink-soft)}.testi-dots{display:flex;justify-content:center;gap:10px;margin-top:34px}.testi-dots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--line);padding:0;transition:background .3s,transform .3s}.testi-dots button.active{background:var(--accent);transform:scale(1.3)}.cta-banner{background:var(--ink);color:#fff;border-radius:28px;padding:70px 60px;text-align:center;position:relative;overflow:hidden}.cta-banner h2{color:#fff;font-size:clamp(28px,4vw,42px);margin-bottom:18px}.cta-banner p{color:#ffffffb3;max-width:520px;margin:0 auto 32px}.cta-banner .btn-primary{background:#fff;color:var(--ink)}.about-hero h1{font-size:clamp(34px,5vw,56px);max-width:780px}.about-hero p.lead{font-size:18px;max-width:640px;margin-top:20px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:24px}@media (max-width: 900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.skills-grid{grid-template-columns:1fr}}.skill-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.skill-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.skill-card h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:16px;font-family:Inter,sans-serif;font-weight:700}.skill-card ul{display:flex;flex-wrap:wrap;gap:8px}.skill-card li{font-size:13.5px;font-weight:500;background:var(--paper);border:1px solid var(--line);padding:6px 12px;border-radius:999px}.ai-tools{display:flex;flex-wrap:wrap;gap:12px}.ai-tools li{font-size:14px;font-weight:600;padding:10px 18px;border-radius:999px;background:linear-gradient(135deg,var(--accent-soft),#fff);border:1px solid var(--line)}.timeline-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:20px}@media (max-width: 960px){.timeline-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.timeline-grid{grid-template-columns:1fr}}.timeline-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--card);position:relative}.timeline-card .range{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:20px;color:var(--accent);margin-bottom:10px}.timeline-card h4{font-size:16px;margin-bottom:8px}.timeline-card p{font-size:13.5px}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}@media (max-width: 860px){.values-grid{grid-template-columns:1fr}}.value-card{padding:10px 0}.value-card .num{font-family:Space Grotesk,sans-serif;font-size:34px;color:var(--accent-soft);-webkit-text-stroke:1.5px var(--accent);color:transparent;margin-bottom:14px}.value-card h4{font-size:18px;margin-bottom:10px}.value-card p{font-size:14.5px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:flex-start}@media (max-width: 920px){.contact-grid{grid-template-columns:1fr}}.contact-info h1{font-size:clamp(32px,4.4vw,48px);margin-bottom:18px}.contact-info p.lead{font-size:17px;margin-bottom:36px;max-width:420px}.info-row{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line)}.info-row:last-of-type{border-bottom:1px solid var(--line)}.info-row .ico{width:42px;height:42px;border-radius:12px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;flex:none;color:var(--accent)}.info-row b{display:block;font-size:14px;margin-bottom:2px}.info-row span{font-size:14px;color:var(--ink-soft)}.contact-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 560px){.form-row{grid-template-columns:1fr}}.field{margin-bottom:20px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:var(--paper);font:inherit;font-size:14.5px;color:var(--ink);transition:border-color .25s,box-shadow .25s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.field textarea{resize:vertical;min-height:110px}.file-field{border:1.5px dashed var(--line);border-radius:12px;padding:18px;text-align:center;font-size:13.5px;color:var(--ink-soft);position:relative;transition:border-color .25s,background .25s}.file-field.has-file{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.file-field input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.submit-row{display:flex;align-items:center;gap:16px;margin-top:8px}.form-note{font-size:12.5px;color:var(--ink-soft)}.success-box{background:var(--accent-soft);border:1px solid var(--accent);border-radius:14px;padding:24px;text-align:center}.success-box h4{margin-bottom:8px}
