:root{--bg: #ececec;--surface: #f5f5f5;--surface-2: #ffffffd9;--text: #1b1b1f;--muted: #707070;--line: #b9b9b9;--dark: #202125;--body-grad-a: #f7f7f7;--body-grad-b: #e9e9e9;--body-grad-c: #efefef;--body-grad-d: #e4e4e4;--glass-bg: #ffffff96;--header-border: #ffffff8f;--mobile-nav-bg: #ffffffbf;--tag-bg: #f6f6f6d2;--tag-line: #8d8d8d;--type-bg: #f8f8f8e0;--input-bg: #fffefe;--hover-shadow: #0000001f;--editorial-bg: #f1f1f1;--editorial-text: #141419;--editorial-soft: #303036;--editorial-pill-bg: #f1f1f1;--editorial-accent: #d4ff29;--radius: 999px;--max-width: 1180px}[data-theme=dark]{--bg: #14161a;--surface: #1b1f27;--surface-2: #212632eb;--text: #eef1f8;--muted: #9aa3b5;--line: #3b4355;--dark: #f3f6ff;--body-grad-a: #171922;--body-grad-b: #12141c;--body-grad-c: #181d29;--body-grad-d: #121722;--glass-bg: #171b2699;--header-border: #2b3242;--mobile-nav-bg: #181d2bd6;--tag-bg: #1a2030;--tag-line: #3d475e;--type-bg: #1a2131;--input-bg: #161b26;--hover-shadow: #00000075;--editorial-bg: #111317;--editorial-text: #f3f5fb;--editorial-soft: #b7bfd1;--editorial-pill-bg: #161a24;--editorial-accent: #8fb300}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;overflow-x:hidden;font-family:Manrope,sans-serif;color:var(--text);background:radial-gradient(circle at top center,var(--body-grad-a) 0%,var(--body-grad-b) 52%),linear-gradient(160deg,var(--body-grad-c) 0%,var(--body-grad-d) 100%);transition:background .28s ease,color .24s ease}a{color:inherit;text-decoration:none}.app-shell{width:min(var(--max-width),92vw);margin:1.1rem auto 2rem}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.site-header{position:sticky;top:.8rem;z-index:20;border:1px solid var(--header-border);border-radius:1.2rem;display:grid;grid-template-columns:1fr;align-items:center;gap:.5rem;padding:.8rem 1.1rem;overflow:visible}.brand-row{display:flex;align-items:center;justify-content:space-between;width:100%}.brand{font-family:Urbanist,sans-serif;font-size:2rem;letter-spacing:.02em;font-weight:700}.menu-toggle{display:block;width:44px;height:44px;border-radius:.8rem;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;padding:0}.menu-toggle span{display:block;width:18px;height:2px;margin:4px auto;background:var(--dark);border-radius:99px;transition:transform .2s ease,opacity .2s ease}.menu-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav-links{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:1.2rem;width:100%;position:absolute;left:0;right:0;top:calc(100% + .4rem);z-index:60;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .28s ease,opacity .24s ease,margin .22s ease,padding .22s ease;margin:0;padding:0;background:#fff;border-radius:.9rem;border:1px solid transparent;font-size:.9rem;text-transform:uppercase;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.nav-links .mobile-cta{display:none!important}.header-actions{display:flex;align-items:center;gap:.55rem}.theme-toggle{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:.72rem;padding:.54rem .9rem;cursor:pointer;transition:transform .18s ease,background .2s ease,border-color .2s ease}.theme-toggle:hover{transform:translateY(-1px)}.mobile-theme-toggle{display:none;width:100%}.nav-links a{border:1px solid transparent;border-radius:var(--radius);width:auto;flex:0 0 auto;text-align:center;padding:.55rem .8rem;transition:all .2s ease}.nav-links.open{max-height:86px;opacity:1;pointer-events:auto;margin-top:.25rem;padding:.38rem;border-color:#d8d8d8;overflow-x:auto;overflow-y:hidden;box-shadow:0 10px 30px #00000024}.portfolio-menu{position:relative}.portfolio-trigger{border:1px solid transparent;border-radius:var(--radius);padding:.45rem .8rem;background:transparent;color:inherit;font:inherit;font-size:inherit;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.portfolio-trigger:hover{border-color:var(--line);background:var(--surface-2)}.portfolio-submenu{position:absolute;left:50%;top:calc(100% + .35rem);transform:translate(-50%) translateY(6px);display:grid;gap:.3rem;min-width:220px;background:var(--surface-2);border:1px solid var(--line);border-radius:.8rem;padding:.35rem;box-shadow:0 8px 22px #0000001a;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:30}.portfolio-submenu a{border:1px solid transparent;border-radius:.58rem;padding:.55rem .65rem;text-transform:none;font-size:.85rem}.portfolio-menu:hover .portfolio-submenu,.portfolio-menu:focus-within .portfolio-submenu,.portfolio-menu.open .portfolio-submenu{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.nav-links a:hover,.active-link{border-color:var(--line);background:var(--surface-2)}.btn{border-radius:var(--radius);border:1px solid var(--dark);padding:.62rem 1.4rem;font-weight:600;font-size:.98rem;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;display:inline-flex;align-items:center;justify-content:center}.btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px var(--hover-shadow)}.btn-small{font-size:.85rem;padding:.53rem 1.1rem}.btn-dark{background:var(--dark);color:#f4f4f4}.btn-light{background:transparent;color:var(--dark)}.route-enter{animation:routeIn .38s ease}@keyframes routeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page{padding:2rem .4rem}.hero{text-align:center;margin:3rem auto;width:min(760px,100%)}.avatar{width:130px;height:130px;border-radius:50%;margin:0 auto .8rem;background:linear-gradient(135deg,#1f2026,#3a3b42);box-shadow:0 10px 30px #20212530;display:block;object-fit:cover}.pulse{animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.pill{display:inline-block;border:1px solid var(--line);border-radius:var(--radius);padding:.5rem 2rem;margin-bottom:1.2rem;background:var(--surface-2);text-transform:uppercase;font-size:.9rem;letter-spacing:.04em}h1,h2,h3,h4{margin:0;font-family:Urbanist,sans-serif}.hero h1{font-size:clamp(2.2rem,6vw,3rem);line-height:1.1;font-weight:600}.hero p{color:var(--muted);width:min(640px,92%);margin:1.2rem auto;font-size:1.05rem}.cta-row{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}.swipe-wrap{margin:1.15rem auto 1.25rem;width:min(700px,100%);transition:transform .26s ease}.hero-social{display:flex;justify-content:center;gap:.9rem;margin-top:.9rem}.contact-social{justify-content:flex-start}.social-btn{width:44px;height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);color:var(--dark);transition:transform .18s ease,box-shadow .18s ease,color .16s ease}.social-btn:hover{transform:translateY(-4px);box-shadow:0 8px 18px var(--hover-shadow);color:var(--text)}.social-btn svg,.social-btn img{width:20px;height:20px;display:block}.social-btn i{font-size:18px;line-height:1}.swipe-track{border:1px solid var(--line);background:#ececec;border-radius:var(--radius);padding:.3rem .4rem;position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:72px;transition:background .28s ease,border-color .28s ease,box-shadow .28s ease}.swipe-track:before{content:"";position:absolute;top:-25%;right:-10%;bottom:-25%;left:-10%;z-index:0;background:linear-gradient(115deg,#fff0,#ffffffa6,#f2f6ffba 36%,#ffe8f2a8 52%,#fff0 72%);background-size:220% 220%;opacity:.85;animation:swipeGradientFlow 7s linear infinite;pointer-events:none}.swipe-track>*{position:relative;z-index:1}.swipe-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.swipe-label-btn{border:0;background:transparent;font:inherit;font-size:clamp(.95rem,2.1vw,1.05rem);color:#6a6a71;cursor:pointer;padding:.2rem .4rem}.swipe-label-btn:hover{color:#2d2d33}.swipe-title{text-align:center;margin:.25rem 0 .7rem;font-family:Urbanist,sans-serif;font-size:clamp(1.25rem,2.9vw,2rem);font-weight:600}.swipe-destination{margin:-.3rem 0 .55rem;text-align:center;font-weight:600;opacity:0;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease,color .22s ease}.swipe-destination.visible{opacity:1;transform:translateY(0)}.swipe-side{min-height:1px}.swipe-side:first-child{justify-self:start}.swipe-side:last-child{justify-self:end}.swipe-knob{border-radius:var(--radius);border:1px solid var(--dark);background:var(--dark);color:#f4f4f4;font:inherit;width:98px;height:52px;font-size:1.1rem;letter-spacing:.04em;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;cursor:grab;touch-action:none;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 8px 22px #11111135}.swipe-knob:active{cursor:grabbing}.swipe-dot{font-size:.95rem}.swipe-wrap.preview-left .swipe-title,.swipe-wrap.preview-left .swipe-destination{color:#cc2f67}.swipe-wrap.preview-right .swipe-title,.swipe-wrap.preview-right .swipe-destination{color:#2268d1}.swipe-wrap.preview-left .swipe-track{background:linear-gradient(90deg,#ffdbe8,#f6ecf1 32%,#ececec 56%);border-color:#e7a5bf;box-shadow:inset 0 0 0 1px #ffffff8c}.swipe-wrap.preview-left .swipe-track:before{background:linear-gradient(110deg,#fff0,#ffc7dcbd 22%,#ffd9e8bf 42%,#fff0 70%)}.swipe-wrap.preview-right .swipe-track{background:linear-gradient(90deg,#ececec 44%,#e8f1ff 70%,#dce9ff);border-color:#9ebee9;box-shadow:inset 0 0 0 1px #ffffff8c}.swipe-wrap.preview-right .swipe-track:before{background:linear-gradient(110deg,#fff0,#cae0ffbf 22%,#d7e8ffcc 42%,#fff0 70%)}.swipe-wrap.preview-left .swipe-knob{background:linear-gradient(140deg,#491427,#1d1f24);border-color:#40121f}.swipe-wrap.preview-right .swipe-knob{background:linear-gradient(140deg,#123667,#1d1f24);border-color:#14345f}.swipe-wrap.swipe-ready .swipe-track{animation:swipePulse .5s ease 1}@keyframes swipePulse{0%{transform:scale(1)}40%{transform:scale(1.008)}to{transform:scale(1)}}@keyframes swipeGradientFlow{0%{transform:translate(-16%) translateY(0);background-position:0% 50%}50%{transform:translate(8%) translateY(-2%);background-position:100% 50%}to{transform:translate(-16%) translateY(0);background-position:0% 50%}}.tech-grid{margin:3.8rem 0 2.8rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.85rem}.tech-card{border:1px solid var(--line);border-radius:1.1rem;min-height:92px;background:var(--surface-2);display:grid;justify-items:center;align-content:center;gap:.4rem;transition:transform .2s ease,box-shadow .2s ease}.tech-card:hover{transform:translateY(-5px);box-shadow:0 10px 24px #00000017}.dot{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#15161a,#4a4b56)}.skills-cloud{margin-top:4.7rem;text-align:center}.skills-cloud h2{font-size:clamp(2rem,4vw,3.1rem);margin-bottom:1.3rem}.tags-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.tag{border:1px solid var(--tag-line);border-radius:.65rem;padding:.48rem .9rem;font-size:.95rem;background:var(--tag-bg)}.inner-page{max-width:100%;margin:0 auto}.section-head{text-align:center;margin:2rem auto 2.2rem}.section-head h1{font-size:clamp(2.2rem,7vw,4rem)}.section-head p{color:var(--muted);font-size:1.02rem;max-width:670px;margin:.65rem auto 0}.skills-overview{display:grid;gap:.75rem;margin:.4rem 0 1.1rem}.skills-levels{display:grid;gap:1rem}.skills-level-card{border:1px solid var(--line);border-radius:1rem;background:var(--surface-2);padding:1rem}.skills-level-card h2{font-size:clamp(1.05rem,2.2vw,1.25rem);margin-bottom:.55rem}.skills-overview-item{border:1px solid var(--line);border-radius:.4rem;background:#efefef;padding:.65rem .8rem}.skills-overview-item h3{margin:0 0 .2rem;font-size:1.15rem}.skills-overview-item p{margin:0;font-size:1.05rem;line-height:1.6;color:#3c3c44}.skills-list{margin:.35rem 0 0;padding-left:1.1rem;color:#3c3c44}.skills-list li{margin-bottom:.2rem;line-height:1.55}.timeline{display:grid;gap:1rem}.timeline-item{border:1px solid var(--line);background:var(--surface-2);border-radius:1rem;padding:1.2rem}.period{color:var(--muted);font-size:.9rem}.timeline-item h3{margin-top:.3rem}.timeline-item h4{margin-top:.2rem;font-size:.95rem;color:#3b3b40}.timeline-item p{margin:.6rem 0 0;color:#55555b}.cv-page{justify-self:center;max-width:980px;background:#ececec;border:1px solid var(--line);border-radius:1rem;padding:1.2rem 1.2rem 1.7rem}.cv-download-wrap{display:flex;justify-content:center;margin-bottom:.85rem}.cv-download-btn{min-width:170px}.cv-header{text-align:center;border-bottom:1px solid var(--line);padding-bottom:1rem}.cv-header h1{font-size:clamp(1.65rem,5vw,2.5rem)}.cv-header p{margin:.25rem 0 .55rem;color:var(--muted);font-size:clamp(.95rem,2.8vw,1.05rem)}.cv-portfolio-link{color:#204f97;font-size:1.05rem;font-weight:700;text-decoration:underline}.cv-contact{margin-top:.8rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;color:var(--muted);font-size:.98rem;padding:.55rem .1rem}.cv-contact span{display:inline-flex;align-items:center}.cv-contact span:not(:last-child):after{content:"|";margin-left:.42rem;color:#8a8a8a}.cv-section{border-bottom:1px solid var(--line);padding:1rem 0}.cv-section:last-child{border-bottom:0}.cv-section h2{text-transform:uppercase;font-size:clamp(1rem,2.8vw,1.2rem);margin-bottom:.65rem;letter-spacing:.04em}.cv-section>p{margin:0;color:#5c5c65;line-height:1.65;font-size:.98rem}.cv-exp-item{display:grid;grid-template-columns:180px 1fr;gap:1rem;padding:.8rem 0}.cv-exp-left p{margin:0;line-height:1.45}.cv-exp-period{color:#666670;font-size:1rem;font-weight:500}.cv-exp-location{color:#7e7e86;font-size:1rem;margin-top:.22rem}.cv-exp-right h3{font-size:clamp(1rem,2.2vw,1.22rem)}.cv-exp-right h4{margin:.15rem 0 .45rem;color:#66666d;font-size:.95rem;font-weight:600}.cv-exp-right ul{margin:0;padding-left:1.05rem}.cv-exp-right li{color:#5d5d66;line-height:1.6;margin-bottom:.3rem;font-size:.94rem}.cv-education{display:flex;justify-content:space-between;gap:1.2rem;align-items:flex-start}.cv-education h3{font-size:clamp(1rem,2.2vw,1.18rem)}.cv-education h4{margin:.2rem 0 0;color:#676770;font-size:.95rem;font-weight:600}.cv-education>p{margin:.15rem 0 0;color:#4f4f58;font-size:.98rem;font-weight:600;text-align:right}.cv-edu-note{margin-top:.55rem;font-size:.94rem;line-height:1.6;color:#5c5c65}.cv-skills-grid{display:grid;gap:.7rem}.cv-skill-group h3{display:inline;font-size:.98rem}.cv-skill-group p{display:inline;margin:0;color:#5d5d66;font-size:.98rem;line-height:1.65}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.portfolio-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.9rem;margin-top:1rem}.type-card{border:1px solid var(--line);border-radius:1rem;padding:1rem 1.1rem;background:var(--type-bg);transition:transform .2s ease,box-shadow .2s ease}.type-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.type-card p{margin-bottom:0;color:#55555d}.portfolio-tabs{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;margin:.35rem 0 1.15rem}.portfolio-tab{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:999px;font:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;padding:.58rem .95rem;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.portfolio-tab:hover{transform:translateY(-1px)}.portfolio-tab.active{background:#171820;color:#f5f5f5;border-color:#171820}.portfolio-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.portfolio-designed-grid{margin-top:.15rem;padding:.2rem 0 1.15rem;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-shot-card{border:1px solid var(--line);border-radius:.85rem;overflow:hidden;background:var(--surface-2)}.portfolio-shot-card img{width:100%;height:clamp(190px,28vw,340px);object-fit:cover;display:block}.portfolio-shot-meta{padding:.7rem .8rem .8rem}.portfolio-shot-meta h3{font-size:.98rem}.portfolio-shot-meta p{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}.info-card{border:1px solid var(--line);border-radius:1rem;background:var(--surface-2);padding:1.2rem}.info-card span{font-size:.85rem;color:var(--muted)}.info-card h3{margin-top:.45rem}.info-card p{color:#59595f}.float{animation:bob 2.4s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.stack-list{display:grid;gap:1rem}.stack-item{border:1px solid var(--line);border-radius:1rem;background:var(--surface-2);padding:1rem 1.2rem}.stack-item p{margin:.45rem 0 0;color:#5a5a62;line-height:1.6}.mini-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem}.mini-card{padding:.7rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface-2);text-align:center}.skills-fall-stage{min-height:72vh;border:1px solid var(--line);border-radius:1.2rem;background:linear-gradient(180deg,#f2f2f2,#ececec 58%,#e7e7e7);padding:1.4rem;overflow:hidden;position:relative}.skills-fall-canvas{position:relative;width:100%;min-height:66vh}.skill-fall-item{position:absolute;border-radius:2rem;padding:.58rem 1.15rem;font-family:Urbanist,sans-serif;font-size:clamp(1rem,2.2vw,2.05rem);line-height:1;letter-spacing:.01em;color:#f6f8ff;box-shadow:0 10px 24px #00000018;border:1px solid #ffffff52;white-space:nowrap;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.skill-fall-item:active{cursor:grabbing}.skill-tone-teal{background:#4ea38f}.skill-tone-blue{background:#7b91e4}.skill-tone-orange{background:#f2a166}.skill-tone-pink{background:#e98ec2}.skill-tone-gray{background:#b0b2b8;color:#f8f8fb}.contact-card{border:1px solid var(--line);border-radius:1rem;padding:1.2rem;display:grid;grid-template-columns:1fr 1.2fr;gap:1rem;background:var(--surface-2);margin-top:2rem}.contact-form{display:grid;gap:.72rem}.contact-form input,.contact-form textarea{border:1px solid var(--line);border-radius:.72rem;padding:.75rem .9rem;font:inherit;color:var(--text);background:var(--input-bg)}.form-status{margin:0;font-size:.9rem;color:#4d535f}.portfolio-nav-row{margin-top:1rem;display:flex;gap:.7rem;flex-wrap:wrap}.design-ref-page{width:100vw;margin-left:calc(50% - 50vw);background:var(--editorial-bg);color:var(--editorial-text);padding-top:.4rem}.design-ref-inner{width:min(1400px,95vw);margin:0 auto}.design-topbar{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--editorial-soft);padding:1rem .6rem .6rem}.design-mini-links{display:flex;gap:1.2rem}.design-hero{position:relative;z-index:3;text-align:center;padding:3.2rem 0 2.6rem}.design-hero-content{position:relative;z-index:3;will-change:transform,opacity}.design-hero h1{font-family:Urbanist,sans-serif;font-size:clamp(2.8rem,9vw,6.2rem);line-height:.96;letter-spacing:-.02em}.design-hero p{margin:1.2rem auto 1.1rem;max-width:620px;font-size:1.03rem;color:var(--editorial-soft)}.design-pill-btn{border-radius:999px;border:1px solid var(--editorial-text);background:var(--editorial-pill-bg);color:var(--editorial-text);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:700;padding:.7rem 1.2rem}.design-pill-btn.dark{background:#171820;color:#f5f5f5}.design-gallery{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.35rem;padding:.5rem .25rem 3rem}.design-card img{width:100%;object-fit:cover;object-position:top center;border-radius:.35rem;display:block;will-change:transform}.design-media{position:relative;overflow:hidden;border-radius:.35rem}.design-media a{display:block}.design-hover-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-40%);z-index:3;color:#fff;font-family:Urbanist,sans-serif;font-size:clamp(1rem,2vw,1.4rem);font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:0;transition:opacity .26s ease,transform .26s ease;pointer-events:none;text-align:center;width:90%}.design-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000001a,#00000080);opacity:0;transition:opacity .26s ease;pointer-events:none}.design-card:hover .design-media:after,.design-card:focus-within .design-media:after{opacity:1}.design-card:hover .design-hover-title,.design-card:focus-within .design-hover-title{opacity:1;transform:translate(-50%,-50%)}.design-card--portrait img{aspect-ratio:4 / 5}.design-card--landscape img{aspect-ratio:16 / 9}.design-card--square img{aspect-ratio:1 / 1}.design-card--split .design-split{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;overflow:hidden;border-radius:.35rem}.design-card--split .design-split img{aspect-ratio:4 / 5}.design-card--split .design-split img:first-child{object-position:center 26%}.design-card--split .design-split img:last-child{object-position:center 34%}.design-card{overflow:hidden}.design-hero,.design-cta-band{will-change:transform}.design-meta{padding-top:.6rem}.design-meta h3{font-size:1.2rem;letter-spacing:.04em;text-transform:uppercase}.design-meta p{margin:.1rem 0 0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--editorial-soft)}.design-cta-band{width:100vw;margin-left:calc(50% - 50vw);background:var(--editorial-accent);text-align:center;padding:clamp(4.5rem,16vw,11rem) 1rem}.design-cta-band p{text-transform:uppercase;font-size:.7rem;letter-spacing:.09em;margin:0 0 .7rem}.design-cta-band h2{font-family:Urbanist,sans-serif;font-size:clamp(2.8rem,9vw,6.3rem);line-height:.95;margin-bottom:1.2rem}.design-footer{width:min(1400px,95vw);margin:0 auto;padding:3rem .5rem 4.8rem;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1rem}.design-footer p{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.08em;font-size:.62rem}.design-footer span{display:block;font-size:.68rem;line-height:1.6;text-transform:uppercase;letter-spacing:.06em;color:var(--editorial-soft)}.project-detail-page{max-width:1080px}.project-back-btn{margin-bottom:1rem}.project-figma-btn{margin-bottom:1rem;margin-top:1rem;width:100%}.project-detail-head{text-align:center;margin-bottom:1.2rem}.project-detail-head h1{font-size:clamp(2.1rem,6vw,4rem)}.project-detail-head p{color:var(--muted);margin-top:.45rem}.project-detail-media img{width:100%;max-height:auto;object-fit:cover;border-radius:1rem;border:1px solid var(--line);display:block;object-position:top center}.project-detail-grid{margin-top:1.1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.project-block{border:1px solid var(--line);border-radius:1rem;background:var(--surface-2);padding:1rem 1.05rem}.project-block h3{margin-bottom:.4rem}.project-block p{margin:0;color:#50505a;line-height:1.55}.project-meta{margin-top:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.project-meta-item{border:1px solid var(--line);border-radius:.9rem;background:var(--surface-2);padding:.8rem}.project-meta-item span{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.project-meta-item p{margin:.35rem 0 0}.project-outcomes{margin-top:1rem}.project-outcome-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.7rem;margin-top:.6rem}.project-outcome{margin:0;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2);padding:.78rem .85rem}.reveal{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s ease}.reveal-visible{opacity:1;transform:translateY(0)}@media (max-width: 940px){.site-header{grid-template-columns:1fr;gap:.7rem;padding:.75rem}.brand{font-size:1.55rem}.nav-links{justify-content:flex-end;gap:.4rem;font-size:.8rem}.nav-links a,.portfolio-trigger{padding:.42rem .66rem}.desktop-cta{white-space:nowrap;padding-inline:.85rem}.contact-card{grid-template-columns:1fr}.design-ref-inner{width:min(1200px,94vw)}.design-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1rem;padding-bottom:2.2rem}.design-hero h1{font-size:clamp(2.2rem,7vw,4.6rem)}.portfolio-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-page{padding:1rem .85rem 1.4rem}.cv-exp-item{grid-template-columns:1fr;gap:.55rem}.cv-education{flex-direction:column}.cv-education>p{text-align:left}}@media (max-width: 1100px){.site-header{grid-template-columns:1fr;gap:.5rem}.brand-row{width:100%}.menu-toggle{display:block}.nav-links{display:grid;grid-template-columns:1fr;width:100%;position:absolute;left:0;right:0;top:calc(100% + .4rem);z-index:60;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .28s ease,opacity .24s ease,margin .22s ease,padding .22s ease;margin:0;padding:0;background:#fff;border-radius:.9rem;border:1px solid transparent}.nav-links a{width:100%;text-align:center;padding:.75rem .9rem;font-size:.86rem}.nav-links.open{max-height:70vh;opacity:1;pointer-events:auto;margin-top:.25rem;padding:.38rem;border-color:#d8d8d8;overflow-y:auto;box-shadow:0 10px 30px #00000024}.nav-links .mobile-cta{display:inline-flex!important;width:100%;margin-top:.2rem}.desktop-cta{display:none}}@media (max-width: 768px){.site-header{grid-template-columns:1fr;gap:.5rem}.brand-row{width:100%}.menu-toggle{display:block}.nav-links{display:grid;grid-template-columns:1fr;width:100%;max-height:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .28s ease,opacity .24s ease,margin .22s ease,padding .22s ease;margin:0;padding:0;background:#fff;border-radius:.9rem;border:1px solid transparent}.nav-links a{width:100%;text-align:center;padding:.75rem .9rem;font-size:.86rem}.portfolio-menu{width:100%}.portfolio-trigger{width:100%;text-align:center;padding:.75rem .9rem;font-size:.86rem}.portfolio-submenu{position:static;transform:none;min-width:0;max-height:0;overflow:hidden;opacity:0;pointer-events:none;box-shadow:none;margin-top:0;padding:0;border-color:transparent;transition:max-height .22s ease,opacity .22s ease,margin .22s ease,padding .22s ease}.portfolio-menu:hover .portfolio-submenu,.portfolio-menu:focus-within .portfolio-submenu,.portfolio-menu.open .portfolio-submenu{max-height:180px;opacity:1;pointer-events:auto;margin-top:.2rem;padding:.35rem;border-color:var(--line)}.portfolio-submenu a{width:100%;text-align:center}.nav-links.open{max-height:70vh;opacity:1;pointer-events:auto;margin-top:.25rem;padding:.38rem;border-color:#d8d8d8;overflow-y:auto;box-shadow:0 10px 30px #00000024}.nav-links .mobile-cta{display:inline-flex!important;width:100%;margin-top:.2rem}.nav-links .mobile-cta:hover{color:#141419}.mobile-theme-toggle{display:inline-flex;align-items:center;justify-content:center;margin-top:.2rem;min-height:42px}.desktop-cta{display:none}.design-topbar{padding:.75rem .2rem .2rem}.design-hero{padding:2rem 0 1.8rem}.design-hero p{max-width:92%;font-size:.95rem}.design-gallery{gap:1.1rem .9rem}.design-meta h3{font-size:1rem}.design-meta p{font-size:.8rem}.project-detail-grid{grid-template-columns:1fr}.project-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.app-shell{width:min(var(--max-width),95vw);margin-top:.7rem}.site-header{top:.4rem;border-radius:1rem}.brand-row{width:100%}.brand{font-size:1.45rem}.page{padding:1.3rem .1rem}.hero{margin-top:1.5rem}.avatar{width:128px;height:128px}.pill{font-size:.78rem;padding:.43rem 1.3rem}.hero p{font-size:.96rem}.cta-row{width:100%;gap:.6rem}.cta-row .btn{flex:1 1 170px}.swipe-wrap{width:100%}.swipe-track{min-height:64px}.swipe-knob{width:92px;height:46px;font-size:1rem}.tech-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.card-grid{grid-template-columns:1fr}.portfolio-showcase-grid{grid-template-columns:1fr;gap:.85rem}.portfolio-shot-card img{height:220px}.portfolio-tabs{gap:.45rem}.portfolio-tab{width:100%;text-align:center}.section-head{margin-top:1.4rem}.tag{font-size:.88rem}.contact-card{padding:.95rem}.contact-form input,.contact-form textarea{width:100%}.design-hero{padding-top:2.2rem}.design-gallery{grid-template-columns:1fr;gap:1.3rem;padding-inline:.1rem}.design-card--split .design-split{gap:.2rem}.design-hover-title{opacity:1;transform:translate(-50%,-50%);font-size:.92rem}.design-media:after{opacity:1}.design-topbar{font-size:.58rem;gap:.4rem;flex-wrap:wrap}.design-footer{grid-template-columns:1fr;gap:1.2rem;padding-bottom:2.4rem}.project-meta{grid-template-columns:1fr}.skills-fall-stage{min-height:60vh;padding:.85rem}.skills-fall-canvas{min-height:56vh}.skill-fall-item{padding:.5rem .9rem;font-size:clamp(.9rem,6vw,1.35rem)}.cv-header p{font-size:1rem}.cv-contact{font-size:.9rem;flex-direction:column;gap:.25rem}.cv-contact span:not(:last-child):after{content:none}.cv-download-btn{width:100%}.cv-section h2{font-size:1rem}.cv-exp-right h3{font-size:1.25rem}.cv-exp-right h4{font-size:1.05rem}.cv-exp-right li,.cv-skill-group p,.cv-section>p,.cv-exp-left p{font-size:.95rem}}@media (max-width: 400px){.btn{font-size:.9rem;padding:.58rem 1.05rem}.hero h1{font-size:clamp(1.7rem,10vw,2.2rem)}.pill{padding:.4rem 1rem;font-size:.72rem}.tag{width:100%;text-align:center}.swipe-label-btn{font-size:.82rem;padding:.1rem .2rem}.swipe-title{font-size:1.05rem}}@media (min-width: 1400px){.app-shell{width:min(1320px,90vw)}.hero{width:min(840px,100%)}.hero p{font-size:1.15rem}}
