:root{--bg:#f7f9fc;--paper:#fff;--ink:#17233b;--muted:#68758a;--line:#e5eaf1;--blue:#4269d8;--blue-dark:#3155bf;--pale:#edf2ff;--lav:#f1efff;--peach:#fff1e9;--font:'DM Sans',sans-serif;--display:'Manrope',sans-serif;--shadow:0 18px 55px rgba(31,49,85,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{width:min(1160px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;left:-9999px;top:10px;background:#fff;padding:10px 14px;border-radius:8px;z-index:100}.skip-link:focus{left:10px}.site-header{height:82px;position:sticky;top:0;z-index:50;background:rgba(247,249,252,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(229,234,241,.8)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:11px}.brand-mark{width:36px;height:36px;border-radius:11px;background:var(--ink);color:#fff;display:grid;place-items:center;font:800 19px var(--display);letter-spacing:-2px}.brand-mark span{color:#88a5ff}.brand-name{font:800 12px var(--display);letter-spacing:2px}.brand-name span{color:var(--blue);margin-left:3px}.nav-links{display:flex;align-items:center;gap:36px;color:#66738a;font-size:13px;font-weight:600}.nav-links a{transition:color .2s}.nav-links a:hover{color:var(--blue)}.nav-links .nav-cta{padding:10px 17px;border:1px solid #dbe3f1;border-radius:8px;color:var(--ink);background:#fff}.nav-cta span{color:var(--blue);margin-left:7px}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px;border-radius:4px}
.section{padding:112px 0}.hero{padding:90px 0 32px;min-height:690px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(223,232,255,.8),rgba(247,249,252,0) 68%);right:-190px;top:-130px;pointer-events:none}.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:54px;position:relative}.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid #dfe7f7;border-radius:100px;background:rgba(255,255,255,.72);font-size:9px;font-weight:700;letter-spacing:1.3px;color:#52617b}.status-dot{width:7px;height:7px;background:#5fba91;border-radius:50%;box-shadow:0 0 0 4px rgba(95,186,145,.13)}.hero-kicker{margin:25px 0 12px;color:var(--blue);font-size:10px;font-weight:700;letter-spacing:2px}.hero h1{font:800 clamp(36px,4.3vw,58px)/1.16 var(--display);letter-spacing:-2.8px;margin:0;max-width:670px}.accent-text{color:var(--blue)}.hero-description{max-width:540px;color:var(--muted);font-size:15px;line-height:1.9;margin:24px 0 28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;padding:13px 19px;border-radius:8px;font-size:12px;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--blue);color:#fff;box-shadow:0 8px 18px rgba(66,105,216,.2)}.button-primary:hover{background:var(--blue-dark);box-shadow:0 12px 24px rgba(66,105,216,.26)}.button-secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.button-secondary span{color:var(--blue)}.hero-note{display:flex;align-items:center;gap:12px;margin-top:42px;color:#8994a6;font-size:11px}.note-line{display:block;width:34px;height:1px;background:#b7c3d5}.hero-visual{min-height:440px;display:grid;place-items:center;position:relative}.visual-orbit{position:absolute;border:1px solid rgba(115,144,220,.17);border-radius:50%;transform:rotate(-23deg)}.orbit-one{width:460px;height:330px}.orbit-two{width:380px;height:470px;transform:rotate(56deg)}.code-window{width:min(430px,100%);position:relative;z-index:2;background:#17243c;border-radius:15px;overflow:hidden;box-shadow:0 28px 70px rgba(31,49,85,.22);transform:rotate(-3deg)}.window-bar{height:48px;background:#202f4b;display:flex;align-items:center;justify-content:space-between;padding:0 17px;color:#9caac3;font-size:10px;letter-spacing:.4px}.window-dots{display:flex;gap:5px}.window-dots i{width:7px;height:7px;border-radius:50%;background:#fa8f87}.window-dots i:nth-child(2){background:#f4c66d}.window-dots i:nth-child(3){background:#75cba0}.window-lock{font-size:15px;color:#8294b2}.code-content{padding:29px 22px 28px;color:#d9e3f7;font:11px/2.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.line-no{display:inline-block;width:30px;color:#5e718f;user-select:none}.code-pink{color:#f29cae}.code-blue{color:#9cc7f5}.code-green{color:#a8d9ac}.code-purple{color:#bea9ff}.code-yellow{color:#f5d58a}.code-muted{color:#7185a7}.code-spacer{height:17px}.window-footer{height:36px;background:#202f4b;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:#91a2bf;font-size:9px;letter-spacing:.5px}.footer-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:#74c89c;margin-right:6px}.floating-tag{position:absolute;z-index:3;background:#fff;border:1px solid #e6ebf4;border-radius:9px;box-shadow:0 10px 30px rgba(31,49,85,.09);padding:10px 13px;color:#66748c;font-size:9px;font-weight:700;letter-spacing:1px}.tag-top{top:54px;right:-1px}.tag-icon{font-size:15px;color:var(--blue);vertical-align:-1px;margin-right:6px}.tag-bottom{bottom:58px;left:-8px}.sparkle{color:#e8a56b;font-size:15px;margin-right:6px}.visual-caption{position:absolute;bottom:7px;right:9px;display:flex;align-items:center;gap:9px;color:#9ba6b7;font-size:8px;letter-spacing:1.3px}.caption-rule{width:45px;height:1px;background:#cbd4e1}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:37px;padding-top:18px;border-top:1px solid var(--line);color:#99a4b5;font-size:9px;letter-spacing:1.5px}.scroll-arrow{font-size:17px;color:var(--blue)}
.about-section{background:#fff;border-block:1px solid var(--line)}.section-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:95px}.section-label{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--blue);margin:0 0 20px}.section-heading h2,.contact-copy h2{font:800 clamp(31px,3.6vw,45px)/1.22 var(--display);letter-spacing:-1.8px;margin:0}.serif-accent{font-family:Georgia,serif;font-style:italic;font-weight:400;color:var(--blue);letter-spacing:-1.7px}.about-content p{color:var(--muted);font-size:13px;line-height:1.95;margin:0 0 17px}.about-content p.lead{font-size:16px;color:#33415b;line-height:1.8}.about-facts{display:flex;gap:50px;border-top:1px solid var(--line);margin-top:35px;padding-top:25px}.about-facts div{display:flex;flex-direction:column}.fact-number{font:800 25px var(--display);color:var(--ink);letter-spacing:-1px}.fact-label{font-size:10px;color:#8a96a8;margin-top:4px}
.skills-section{background:#f7f9fc}.centered{text-align:center;max-width:600px;margin:0 auto 47px}.centered .section-label{margin-bottom:14px}.section-subtitle{color:var(--muted);font-size:13px;max-width:490px;margin:14px auto 0;line-height:1.8}.skill-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.skill-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:28px 25px 26px;transition:transform .25s,box-shadow .25s}.skill-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.skill-icon{width:43px;height:43px;border-radius:11px;display:grid;place-items:center;font:700 15px ui-monospace,monospace;margin-bottom:21px}.icon-blue{background:var(--pale);color:var(--blue)}.icon-lilac{background:var(--lav);color:#8576d6}.icon-peach{background:var(--peach);color:#d28b61}.skill-card h3{font:700 16px var(--display);margin:0 0 8px}.skill-card p{font-size:12px;color:var(--muted);margin:0 0 20px;min-height:40px;line-height:1.7}.chips,.project-tags{display:flex;flex-wrap:wrap;gap:7px}.chips span,.project-tags span{padding:6px 9px;background:#f4f6fa;border:1px solid #edf0f5;border-radius:5px;color:#59677e;font-size:10px;font-weight:600}.skills-footnote{text-align:center;color:#8995a7;font-size:10px;margin:27px 0 0}.skills-footnote span{color:#d99d6c;margin-right:5px}
.projects-section{background:#fff;border-block:1px solid var(--line)}.projects-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}.projects-heading .section-label{margin-bottom:14px}.projects-intro{max-width:360px;color:var(--muted);font-size:12px;line-height:1.9;margin:0 0 5px}.project-card{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 14px 40px rgba(31,49,85,.045)}.project-art{min-height:390px;background:linear-gradient(145deg,#eaf0ff 0%,#f4f3ff 55%,#fff1e9 100%);display:flex;flex-direction:column;justify-content:space-between;padding:24px;position:relative;overflow:hidden}.project-art:before,.project-art:after{content:"";position:absolute;border:1px solid rgba(91,119,190,.15);border-radius:50%;width:330px;height:330px;left:50%;top:51%;transform:translate(-50%,-50%)}.project-art:after{width:245px;height:245px}.project-art-top,.project-art-bottom{display:flex;justify-content:space-between;color:#7382a3;font-size:8px;font-weight:700;letter-spacing:1.5px;position:relative;z-index:2}.art-index{font:700 17px var(--display);color:#5268b1}.fruit-illustration{width:215px;height:235px;position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);z-index:1}.mango-shape{position:absolute;width:132px;height:181px;left:43px;top:32px;background:linear-gradient(145deg,#f6c878 2%,#f0a74d 48%,#df7e54 100%);border-radius:62% 38% 58% 42%/47% 45% 55% 53%;transform:rotate(19deg);box-shadow:inset -13px -14px 21px rgba(166,84,57,.14),inset 8px 8px 15px rgba(255,255,255,.35),0 20px 30px rgba(160,111,75,.19)}.mango-shape:after{content:"";position:absolute;width:18px;height:27px;right:4px;top:-8px;border-radius:100% 0 100% 0;background:#718e68;transform:rotate(26deg)}.mango-shine{position:absolute;width:24px;height:75px;background:rgba(255,255,255,.24);border-radius:50%;left:25px;top:32px;transform:rotate(18deg);filter:blur(4px)}.leaf{position:absolute;width:49px;height:21px;background:#789b72;border-radius:100% 0 100% 0;z-index:2}.leaf-one{top:18px;left:110px;transform:rotate(-13deg)}.leaf-two{top:33px;left:130px;transform:rotate(27deg) scale(.7);background:#9bb18a}.mango-shadow{position:absolute;bottom:4px;left:37px;width:150px;height:21px;border-radius:50%;background:rgba(110,103,130,.16);filter:blur(9px)}.project-info{padding:34px 37px;display:flex;flex-direction:column;justify-content:center}.project-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.project-type{font-size:9px;letter-spacing:1.3px;color:var(--blue);font-weight:700}.project-year{font-size:10px;color:#9ba5b6}.project-info h3{font:700 20px/1.45 var(--display);letter-spacing:-.5px;margin:0 0 15px}.project-info>p{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 20px}.project-tags{margin-bottom:20px}.project-note{display:flex;gap:10px;padding:13px;background:#f6f8fc;border-radius:7px;color:#66748a;font-size:10px;line-height:1.7}.note-check{color:#4fa17c;font-weight:700}.project-link-placeholder{margin-top:18px;color:#9aa5b5;font-size:10px;font-style:italic}.project-next{display:flex;align-items:center;gap:15px;margin-top:25px;padding:18px 20px;border:1px dashed #dbe2ed;border-radius:10px}.next-mark{width:34px;height:34px;background:#f0f3fa;border-radius:9px;display:grid;place-items:center;color:var(--blue);font-size:20px}.project-next strong{font:700 12px var(--display)}.project-next p{margin:2px 0 0;color:#8995a7;font-size:10px}
.project-card + .project-card{margin-top:26px}.project-link{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;margin-top:18px;padding:11px 16px;background:var(--blue);color:#fff;border-radius:7px;font-size:11px;font-weight:700;box-shadow:0 8px 18px rgba(66,105,216,.18);transition:background .2s,transform .2s,box-shadow .2s}.project-link span{color:#c3d3ff}.project-link:hover{background:var(--blue-dark);transform:translateY(-2px);box-shadow:0 12px 22px rgba(66,105,216,.24)}.art-store{background:linear-gradient(150deg,#e9f1ff 0%,#f0efff 52%,#e9fbf3 100%)}.store-illustration{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:235px;height:220px;z-index:1}.store-glow{position:absolute;inset:15px 22px;border-radius:50%;background:radial-gradient(circle,rgba(120,150,255,.3),rgba(120,150,255,0) 70%);filter:blur(7px)}.store-card{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%) rotate(-4deg);width:156px;padding:16px 15px 14px;display:flex;flex-direction:column;align-items:center;gap:9px;background:rgba(255,255,255,.94);border:1px solid #e3eafb;border-radius:15px;box-shadow:0 22px 38px rgba(62,88,158,.16)}.store-badge{font-size:7px;font-weight:700;letter-spacing:1.2px;color:#7c89ad}.diamond-shape{width:58px;height:50px;background:linear-gradient(160deg,#a9caff,#5d7fe8 58%,#4b5fd0);clip-path:polygon(50% 0,100% 38%,50% 100%,0 38%);filter:drop-shadow(0 8px 10px rgba(60,85,180,.28))}.store-line{width:100%;height:5px;border-radius:3px;background:#eef2fb}.store-line.short{width:62%}.store-price{font:800 12px var(--display);color:var(--blue);padding:5px 10px;border-radius:6px;background:#eef3ff}.store-chip{position:absolute;left:-4px;bottom:14px;display:flex;align-items:center;gap:6px;padding:7px 11px;background:#fff;border:1px solid #e2ecf6;border-radius:100px;box-shadow:0 12px 22px rgba(62,88,158,.14);font-size:8px;font-weight:700;letter-spacing:.6px;color:#5c6b86;transform:rotate(-3deg)}
.contact-section{background:#eef3ff;position:relative;overflow:hidden}.contact-section:after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(76,106,190,.1);border-radius:50%;right:-190px;bottom:-300px;box-shadow:0 0 0 45px rgba(255,255,255,.12),0 0 0 90px rgba(255,255,255,.1)}.contact-wrap{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:85px;position:relative;z-index:1}.contact-copy h2{max-width:480px}.contact-copy>p:last-child{color:#71809a;font-size:13px;line-height:1.9;max-width:430px;margin:20px 0 0}.contact-panel{background:#fff;border:1px solid #e2e8f4;border-radius:13px;padding:10px 23px;box-shadow:0 15px 45px rgba(42,66,125,.06)}.contact-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid #edf0f5}.contact-row:last-of-type{border-bottom:0}.contact-icon{width:35px;height:35px;display:grid;place-items:center;background:#f0f4ff;color:var(--blue);border-radius:9px;font-size:14px;font-weight:700}.contact-row div{display:flex;flex-direction:column;gap:2px;min-width:0}.contact-row small{font-size:8px;letter-spacing:1.4px;color:#9aa5b7;font-weight:700}.contact-row strong{font-size:11px;color:#57657c;font-weight:600;overflow-wrap:anywhere}.contact-arrow{margin-left:auto;color:#a0acc0}.contact-edit-hint{margin:7px 0 10px;color:#9aa5b6;font-size:9px}.contact-edit-hint code{background:#f3f5f9;padding:2px 5px;border-radius:3px;color:#66748a}.site-footer{background:#fff;border-top:1px solid var(--line);padding:25px 0}.footer-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand .brand-mark{width:30px;height:30px;font-size:16px}.footer-brand .brand-name{font-size:10px}.footer-wrap>p{font-size:10px;color:#9aa5b5;margin:0}.copyright{font-size:9px;color:#9aa5b5}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:900px){.hero-grid{gap:25px;grid-template-columns:1fr  .9fr}.hero h1{font-size:43px}.hero-visual{min-height:370px}.code-window{width:360px}.floating-tag{font-size:8px}.section-grid{gap:50px}.project-info{padding:28px}.contact-wrap{gap:45px}}
@media(max-width:700px){.container{width:min(100% - 36px,560px)}.site-header{height:70px}.menu-toggle{display:block;cursor:pointer}.nav-links{display:none;position:absolute;top:69px;left:0;right:0;background:rgba(255,255,255,.98);padding:18px 24px 22px;border-bottom:1px solid var(--line);box-shadow:0 18px 25px rgba(31,49,85,.06);flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{padding:12px 0}.nav-links .nav-cta{padding:12px 14px;margin-top:7px;text-align:center}.hero{padding:65px 0 28px;min-height:auto}.hero-grid{grid-template-columns:1fr;gap:25px}.hero h1{font-size:clamp(36px,10vw,49px);letter-spacing:-2px}.hero-description{font-size:13px}.hero-note{margin-top:28px}.hero-visual{min-height:350px;margin:0 5px}.code-window{width:min(390px,88%)}.code-content{font-size:9px;padding:22px 14px}.tag-top{right:0;top:27px}.tag-bottom{left:0;bottom:40px}.orbit-one{width:340px;height:260px}.orbit-two{width:300px;height:370px}.hero-bottom{margin-top:15px}.section{padding:78px 0}.section-grid{grid-template-columns:1fr;gap:30px}.section-heading h2,.contact-copy h2{font-size:35px}.about-content p{font-size:12px}.about-content p.lead{font-size:14px}.about-facts{gap:27px;justify-content:space-between}.fact-number{font-size:22px}.fact-label{font-size:9px}.centered{margin-bottom:32px}.skill-groups{grid-template-columns:1fr;gap:12px}.skill-card{padding:23px}.skill-card p{min-height:0}.projects-heading{display:block;margin-bottom:28px}.projects-intro{margin-top:17px}.project-card{grid-template-columns:1fr}.project-art{min-height:290px}.project-info{padding:25px 22px 27px}.project-info h3{font-size:18px}.contact-wrap{grid-template-columns:1fr;gap:30px}.contact-panel{padding:8px 17px}.footer-wrap{flex-wrap:wrap}.footer-wrap>p{order:3;width:100%;margin-top:4px}.copyright{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
