@layer components{.portfolio{--bg:#fff;--surface:#ffffff80;--surface-2:#fafafbc7;--surface-solid:#fff;--border:#0f0f1417;--border-2:#0f0f1426;--ink:#121214;--ink-2:#4a4a52;--ink-3:#78787f;--ink-4:#a8a8ae;--green:#16a34a;--display:var(--font-display),sans-serif;--body:var(--font-body),sans-serif;--mono:var(--font-mono),monospace;--max:1220px;--nav:86px;--ease:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.4,0,.2,1);--shadow-xs:0 1px 2px #0f0f140a,0 2px 6px #0f0f140a;--shadow-sm:0 1px 3px #0f0f140d,0 8px 20px #0f0f140f;--shadow-md:0 2px 8px #0f0f140f,0 16px 40px #0f0f141a;--shadow-lg:0 4px 16px #0f0f1412,0 30px 70px #0f0f1424;--shadow-glow:0 0 0 1px #0f0f140d,0 10px 30px #0f0f1414,0 40px 90px #0f0f1429;font-family:var(--body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6;position:relative;overflow-x:hidden}.portfolio *,.portfolio :before,.portfolio :after{box-sizing:border-box}html:has(.portfolio){scroll-behavior:smooth}.aurora{z-index:-1;pointer-events:none;background:var(--bg);position:fixed;inset:0;overflow:hidden}.aurora:before{content:"";background-image:linear-gradient(var(--border)1px,transparent 1px),linear-gradient(90deg,var(--border)1px,transparent 1px);opacity:.55;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(85% 65% at 50% 0,#000 0%,#0000 78%);mask-image:radial-gradient(85% 65% at 50% 0,#000 0%,#0000 78%)}.aurora span{filter:blur(100px);background:radial-gradient(circle,#0f0f1417,#0000 70%);border-radius:50%;position:absolute}.aurora .g1{width:780px;height:780px;top:-220px;left:-260px}.aurora .g2{background:radial-gradient(circle,#0f0f1412,#0000 70%);width:640px;height:640px;top:46%;right:-220px}.aurora .g3{background:radial-gradient(circle,#0f0f1414,#0000 70%);width:700px;height:700px;bottom:-240px;left:12%}.grain{z-index:999;pointer-events:none;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.progress{background:var(--ink);z-index:400;width:0;height:2px;transition:width 80ms linear;position:fixed;top:0;left:0}.nav-wrap{z-index:200;justify-content:center;padding:0 16px;transition:top .3s;display:flex;position:fixed;top:16px;left:0;right:0}.portfolio nav{width:min(var(--max),100%);background:var(--surface-2);-webkit-backdrop-filter:blur(32px)saturate(2);border:1px solid var(--border);box-shadow:var(--shadow-sm),inset 0 1px 0 #ffffffd9;border-radius:100px;transition:box-shadow .35s,border-radius .35s,background .35s}.portfolio nav.scrolled{box-shadow:var(--shadow-md),inset 0 1px 0 #ffffffd9;background:var(--surface-2)}.nav-inner{justify-content:space-between;align-items:center;height:58px;padding:0 10px 0 18px;display:flex}.brand{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.brand img{border-radius:6px;width:auto;height:26px;display:block}.nav-links{align-items:center;gap:4px;list-style:none;display:flex}.nav-links a{font-family:var(--body);color:var(--ink-2);border-radius:100px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:color .22s,background .22s;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--ink);background:#0f0f140d}.nav-cta{font-family:var(--body);color:#fff;background:var(--ink);transition:transform .22s var(--ease),box-shadow .22s ease;border-radius:100px;align-items:center;gap:8px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 8px 20px #0f0f142e}.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px #0f0f1442}.hamburger{cursor:pointer;border:1px solid var(--border);background:0 0;border-radius:100px;flex-direction:column;gap:4px;margin-right:2px;padding:9px 11px;display:none}.hamburger span{background:var(--ink);border-radius:2px;width:16px;height:1.5px;transition:all .25s;display:block}.hamburger.open span:first-child{transform:translateY(5.5px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}.mobile-menu{z-index:150;background:var(--surface-solid);opacity:0;transition:transform .4s var(--ease),opacity .3s ease;pointer-events:none;flex-direction:column;justify-content:center;gap:0;padding:0 32px;display:flex;position:fixed;inset:84px 0 0;transform:translateY(-16px)}.mobile-menu.open{opacity:1;pointer-events:all;transform:translateY(0)}.mobile-menu a{font-family:var(--display);color:var(--ink);border-bottom:1px solid var(--border);letter-spacing:-.02em;transition:opacity .2s ease,padding-left .3s var(--ease);justify-content:space-between;align-items:center;padding:18px 0;font-size:clamp(28px,7vw,44px);font-weight:500;text-decoration:none;display:flex}.mobile-menu a span{color:var(--ink-3);opacity:.6;font-size:18px}.mobile-menu a:hover{opacity:.55;padding-left:8px}.portfolio main{padding-top:var(--nav)}.portfolio .w{width:min(var(--max),calc(100% - 48px));margin:0 auto}@keyframes portfolio-halo{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes portfolio-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.section-block{padding:96px 0;position:relative}.section-kicker{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2);background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(16px)saturate(1.6);box-shadow:var(--shadow-xs),inset 0 1px 0 #fffc;border-radius:100px;align-items:center;gap:8px;margin-bottom:14px;padding:6px 14px;font-size:11px;display:inline-flex}.section-h{font-family:var(--display);letter-spacing:-.025em;max-width:720px;margin-bottom:14px;font-size:clamp(23px,2.6vw,34px);font-weight:700;line-height:1.15}.section-lead{color:var(--ink-2);max-width:560px;font-size:13.5px;line-height:1.75}.glass{background:var(--surface);-webkit-backdrop-filter:blur(28px)saturate(1.9);border:1px solid var(--border);box-shadow:var(--shadow-sm),inset 0 1px 0 #fffc,inset 0 0 0 1px #ffffff40;border-radius:20px;position:relative}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:40px;margin-top:44px;display:grid}.about-text p{color:var(--ink-2);font-size:13.5px;line-height:1.8}.about-stats{grid-template-columns:1fr 1fr;gap:14px;display:grid}.stat-box{transition:transform .25s var(--ease),box-shadow .25s ease;padding:26px 20px}.stat-box:hover{box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffffe6;transform:translateY(-6px)scale(1.02)}.stat-num{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);margin-bottom:6px;font-size:clamp(28px,3.2vw,40px);font-weight:700;line-height:1}.stat-label{font-family:var(--body);color:var(--ink-3);font-size:12px;font-weight:500}.stack-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px;display:grid}.stack-cell{transition:transform .25s var(--ease),box-shadow .25s ease,border-color .25s ease;padding:24px 20px}.stack-cell:hover{box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffffe6;border-color:var(--border-2);transform:translateY(-6px)scale(1.02)}.stack-cell-label{font-family:var(--body);color:var(--ink);margin-bottom:14px;font-size:12px;font-weight:700}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--border);background:var(--surface-solid);color:var(--ink-2);font-size:11.5px;font-weight:500;font-family:var(--body);border-radius:100px;padding:5px 11px;transition:border-color .2s,color .2s,transform .2s}.chip:hover{border-color:var(--ink-3);color:var(--ink);transform:translateY(-2px)}.exp-timeline{flex-direction:column;gap:14px;margin-top:44px;display:flex}.exp-item{transition:transform .25s var(--ease),box-shadow .25s ease;grid-template-columns:150px 1fr;gap:24px;padding:26px;display:grid;position:relative}.exp-item:hover{box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffffe6;transform:translate(4px)scale(1.01)}.exp-time{font-family:var(--mono);color:var(--ink-4);font-size:10.5px;line-height:1.6}.exp-time strong{font-family:var(--body);color:var(--ink);margin-bottom:4px;font-size:13px;font-weight:700;display:block}.exp-role{font-family:var(--display);letter-spacing:-.01em;margin-bottom:8px;font-size:clamp(16px,1.8vw,19px);font-weight:600;line-height:1.25}.exp-desc{color:var(--ink-2);max-width:560px;font-size:12.5px;line-height:1.6}.projects-banner{background:var(--ink);border-radius:24px;grid-template-columns:1fr auto;align-items:center;gap:24px;margin-top:44px;padding:40px 36px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 50px #0f0f1440}.projects-banner:after{content:"";pointer-events:none;background:radial-gradient(circle at 85% 20%,#ffffff14,#0000 55%);position:absolute;inset:0}.projects-banner h3{font-family:var(--display);color:#fff;letter-spacing:-.015em;margin-bottom:8px;font-size:clamp(18px,2.1vw,24px);font-weight:700;line-height:1.25}.projects-banner p{font-family:var(--body);color:#ffffffd9;font-size:13px;font-weight:500}.projects-banner .btn-light{color:var(--ink);font-family:var(--body);transition:transform .22s var(--ease),box-shadow .22s ease;z-index:1;background:#fff;border-radius:14px;align-items:center;gap:9px;padding:13px 24px;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-flex;position:relative;box-shadow:0 10px 24px #00000040}.projects-banner .btn-light:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 16px 34px #00000052}.contact-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:44px;display:grid}.contact-card{color:var(--ink);transition:transform .25s var(--ease),box-shadow .25s ease,border-color .25s ease;justify-content:space-between;align-items:center;gap:12px;padding:24px;text-decoration:none;display:flex}.contact-card:hover{box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffffe6;border-color:var(--border-2);transform:translateY(-6px)scale(1.02)}.contact-card .arrow{color:var(--ink);opacity:.5;transition:transform .25s var(--ease),opacity .25s ease;font-size:16px;transform:translate(-2px,2px)}.contact-card:hover .arrow{opacity:1;transform:translate(0)}.contact-type{font-family:var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);margin-bottom:8px;font-size:11px;font-weight:600}.contact-val{color:var(--ink);word-break:break-all;font-size:13.5px;font-weight:600}.portfolio footer{padding:28px 0 40px}.footer-inner{width:min(var(--max),calc(100% - 48px));border-top:1px solid var(--border);font-family:var(--body);color:var(--ink-4);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding-top:28px;font-size:12.5px;font-weight:500;display:flex}.footer-links{flex-wrap:wrap;gap:18px;display:flex}.footer-links a{color:var(--ink-4);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--ink)}.reveal{opacity:0;transition:opacity .7s ease,transform .7s var(--ease);transform:translateY(22px)}.reveal.right{transform:translate(24px)}.reveal.visible{opacity:1;transform:none}.reveal-group>*{opacity:0;transition:opacity .55s ease,transform .55s var(--ease);transform:translateY(16px)}.reveal-group.visible>:first-child{opacity:1;transition-delay:0s;transform:none}.reveal-group.visible>:nth-child(2){opacity:1;transition-delay:80ms;transform:none}.reveal-group.visible>:nth-child(3){opacity:1;transition-delay:.16s;transform:none}.reveal-group.visible>:nth-child(4){opacity:1;transition-delay:.24s;transform:none}.reveal-group.visible>:nth-child(5){opacity:1;transition-delay:.32s;transform:none}.reveal-group.visible>:nth-child(6){opacity:1;transition-delay:.4s;transform:none}@media (max-width:1050px){.stack-grid{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:32px}}@media (max-width:760px){.portfolio{--nav:78px}.portfolio .w{width:calc(100% - 28px)}.nav-wrap{padding:0 12px;top:12px}.nav-links,.nav-cta{display:none}.hamburger{display:flex}.section-block{padding:64px 0}.section-h{font-size:clamp(24px,6vw,32px)}.exp-item{grid-template-columns:1fr;gap:10px;padding:20px}.about-stats{grid-template-columns:1fr 1fr}.stack-grid,.contact-grid{grid-template-columns:1fr}.projects-banner{grid-template-columns:1fr;gap:20px;padding:28px 24px}}@media (max-width:480px){.about-stats{grid-template-columns:1fr}}}
