:root{--page-bg:#efefee;--panel-bg:#f2f0ed;--text:#111;--muted:#303030;--theme-blue-dark:#313288;--theme-blue-dark-rgb:49,50,136;--theme-purple-strong:#6842c4;--header-blue-night:#090f2b;--header-violet:#3b2ac0;--header-pink:#e63f98;--header-gradient:linear-gradient(90deg,var(--header-blue-night) 0,var(--header-violet) 56%,var(--header-pink) 100%);--wave-title-reference-gradient:linear-gradient(90deg,#ef3f99 0,#a540d2 48%,#2d62ff 100%);--wave-title-reference-size:clamp(3.65rem,4.8vw,4.8rem);--wave-title-reference-line-height:1.04;--logo-gradient:linear-gradient(135deg,#42e8ff 0,#775cff 44%,#ff3f96 100%);--view-title-gradient:linear-gradient(180deg,#ff4eb6 0,var(--theme-purple-strong) 52%,#4d61ff 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff66bd 0,#7b52d7 52%,#6576ff 100%);--view-scrollbar-thumb:#8f52df;--view-scrollbar-track:#ff4eb61f;--view-scrollbar-border:#ffffffad;--background-gradient-blue-soft:#6a84ff75;--background-gradient-blue-end:#cad5ff;--portfolio-route-count:4;--portfolio-route-index:0;--portfolio-public-sky:radial-gradient(circle at 5% 10%,#b78fffbd,#0000 16%),radial-gradient(circle at 30% 12%,#ffbcdeb8,#0000 17%),radial-gradient(circle at 52% 10%,#bb92ff4d,#0000 18%),radial-gradient(circle at 76% 12%,#ffbcde8f,#0000 17%),radial-gradient(circle at 96% 12%,#6a84ff80,#0000 18%),linear-gradient(90deg,#e7dcff 0,#ead8ff 10%,#ddd8ff 16%,#cad5ff 25%,#ecd7ff 36%,#ffe9f5 50%,#ecd7ff 60%,#cad5ff 75%,#ecd7ff 86%,#cad5ff 100%);--portfolio-public-sky-size:calc(var(--portfolio-route-count) * 100vw) 100dvh;--portfolio-public-sky-position:calc(var(--portfolio-route-index,0) * -100vw) 0;--portfolio-transition-sky:var(--portfolio-public-sky);--portfolio-about-continuous-sky:var(--portfolio-public-sky);--portfolio-contact-continuous-sky:var(--portfolio-public-sky);--portfolio-blue-band:radial-gradient(circle at 72% 28%,#5c47ff6b,#0000 34%),radial-gradient(circle at 48% 84%,#ff3f9633,#0000 30%),linear-gradient(112deg,#090f2b 0,#101743 44%,#151854 70%,#090f2b 100%);--portfolio-blue-band-continuous:linear-gradient(180deg,#090f2b 0,#111743 58%,#0a102e 100%);--portfolio-cta-night-background:#090f2beb;--portfolio-cta-night-border:#090f2b1f;--portfolio-cta-night-color:#fff;--portfolio-cta-night-shadow:0 12px 24px #090f2b24;--portfolio-bubbly-button-bg:#ff0081;--portfolio-bubbly-button-radius:.85rem;--portfolio-bubbly-button-shadow:#ff008280;--nav-blue:var(--header-blue-night);--nav-pink:#ef59ba;--theme-toggle-width:5.25rem;--theme-toggle-height:2.8rem;--code-bg:#132733;--code-border:#ffffff0f;--code-accent:#22d4ff;--code-text:#d9e4ea}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--view-scrollbar-thumb) var(--view-scrollbar-track)}*::-webkit-scrollbar{width:.72rem;height:.72rem}*::-webkit-scrollbar-track{background:var(--view-scrollbar-track);border-radius:999px}*::-webkit-scrollbar-thumb{border:2px solid var(--view-scrollbar-border);border-radius:999px;background:var(--view-title-gradient);background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--view-title-gradient-hover);background-clip:padding-box}html,body{margin:0;height:100%;scroll-behavior:smooth}body{font-family:"Space Grotesk",sans-serif;background:var(--page-bg);color:var(--text);overflow:visible}html:has(body.home-showcase-page),body.home-showcase-page{--portfolio-route-index:0;--view-title-gradient:linear-gradient(180deg,#ef3f99 0,#a540d2 48%,#2d62ff 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff5cad 0,#b44de4 48%,#4d74ff 100%);--view-scrollbar-thumb:#a540d2;--view-scrollbar-track:#a540d224}html:has(body.about-page),body.about-page{--portfolio-route-index:2;--view-title-gradient:linear-gradient(180deg,#f03491 0,#7a42d6 52%,#4059ff 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff5bab 0,#8d55e4 52%,#5f73ff 100%);--view-scrollbar-thumb:#7a42d6;--view-scrollbar-track:#7a42d624}html:has(body.projects-overview-page),body.projects-overview-page{--portfolio-route-index:1;--view-title-gradient:linear-gradient(180deg,#5b4dff 0,#9b48df 46%,#ff3f96 100%);--view-title-gradient-hover:linear-gradient(180deg,#7569ff 0,#ad57ed 46%,#ff65ad 100%);--view-scrollbar-thumb:#9b48df;--view-scrollbar-track:#9b48df24;--projects-featured-primary-gradient:linear-gradient(135deg,#7255ff 0,#f23a9b 100%);--projects-band-left-inset:0;--projects-grid-card-size:clamp(10.7rem,13vw,12rem);--projects-title-sticky-top:8.3rem;--projects-featured-sticky-top:calc(var(--projects-title-sticky-top) + 4.25rem + .95rem);--projects-featured-paragraph-tags-gap:22px;--projects-featured-tags-actions-gap:22px;--projects-featured-actions-bottom-space:0;--projects-featured-copy-top-space:0}html:has(body.contact-page),body.contact-page{--portfolio-route-index:3;--view-title-gradient:linear-gradient(180deg,#f02f91 0,#8546c8 53%,#233fe0 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff59aa 0,#9858d8 53%,#5166ff 100%);--view-scrollbar-thumb:#8546c8;--view-scrollbar-track:#8546c824}.project-detail-shell{--portfolio-route-index:1;--view-title-gradient:linear-gradient(180deg,#ff4eb6 0,var(--theme-purple-strong) 52%,#4d61ff 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff66bd 0,#7b52d7 52%,#6576ff 100%);--view-scrollbar-thumb:#8f52df;--view-scrollbar-track:#8f52df24}html:has(body.saturne-detail-page),body.saturne-detail-page{--portfolio-route-index:1;--view-title-gradient:linear-gradient(180deg,#ef3f99 0,#8a4ce8 52%,#2d62ff 100%);--view-title-gradient-hover:linear-gradient(180deg,#ff63ae 0,#9a5cf4 52%,#4f7aff 100%);--view-scrollbar-thumb:#8a4ce8;--view-scrollbar-track:#8a4ce824}.page-shell{min-height:100dvh;height:100dvh;display:flex;flex-direction:column;background:#f2efeb;overflow:visible}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.1rem 1.55rem;background:linear-gradient(90deg,var(--nav-blue) 0,var(--nav-pink) 100%)}.nav{display:flex;align-items:center;gap:1.9rem;flex-wrap:wrap}.nav a,.social-link,.primary-btn,.secondary-btn,.file-name{font-family:"IBM Plex Mono",monospace}.nav a,.social-link{color:#fff;text-decoration:none;font-size:.88rem;font-weight:700}.nav a{display:inline-flex;align-items:center;justify-content:center;min-width:8.25rem;padding:.85rem 1.35rem;border-radius:.8rem;transition:background-color 180ms ease,transform 180ms ease}.nav a:hover,.nav a.active{background:#ffffff47}.nav a:active,.social-link:active,.primary-btn:active,.secondary-btn:active{transform:translateY(1px)}.social-link{padding:.85rem .3rem}.hero{flex:1;min-height:0;display:grid;grid-template-columns:minmax(300px,1.02fr) minmax(260px,.9fr) minmax(320px,.98fr);align-items:end;gap:1.15rem;padding:1.6rem 2rem 0;overflow:hidden}.hero-copy{align-self:center;padding:0 0 3.2rem 2rem}.hero-copy h1{margin:0;font-size:clamp(3.2rem,5.7vw,4.45rem);line-height:.96;letter-spacing:.01em;font-weight:800}.hero-copy h2{margin:.5rem 0 1.65rem;font-size:clamp(2rem,3.3vw,2.85rem);line-height:1.02;font-weight:700}.hero-copy p{max-width:28rem;margin:0;color:var(--muted);font-size:1rem;line-height:1.55}.hero-actions{display:flex;gap:1.35rem;margin-top:3rem}.primary-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-width:12rem;min-height:3.25rem;padding:0 1.8rem;border-radius:999px;text-decoration:none;font-size:.88rem;font-weight:700;transition:box-shadow 180ms ease,transform 180ms ease;box-shadow:0 8px 18px #493a811f}.primary-btn{color:#fff;background:linear-gradient(90deg,var(--theme-blue-dark) 0,#ef58bb 100%)}.secondary-btn{color:var(--portfolio-cta-night-color);background:var(--portfolio-cta-night-background);border:1.5px solid var(--portfolio-cta-night-border)}.portrait-stage{align-self:stretch;position:relative;min-height:0;display:flex;align-items:flex-end;justify-content:center;overflow:visible;padding-top:0}.portrait-cutout{position:relative;z-index:1;display:block;width:clamp(26rem,31vw,35rem);max-width:100%;height:auto;max-height:calc(100vh - 1.2rem);transform:translateX(-.8rem);top:0}.code-panel{display:flex;align-items:center;justify-content:center;min-height:0;padding-bottom:3.4rem}.code-window{width:min(100%,16.25rem);position:relative;top:-4.1rem;border-radius:.95rem;background:radial-gradient(circle at top right,#1a374657,#0000 40%),var(--code-bg);box-shadow:inset 0 0 0 1px var(--code-border);color:var(--code-text);transition:transform 180ms ease,opacity 180ms ease}.window-top{display:flex;align-items:center;gap:.55rem;padding:.72rem .72rem .65rem;border-bottom:1px solid #ffffff0f}.window-controls{display:flex;gap:.32rem}.dot{width:calc(.56rem + 3px);height:calc(.56rem + 3px);padding:0;border:0;border-radius:50%;cursor:pointer;transition:box-shadow 180ms ease,transform 180ms ease,filter 180ms ease}.dot.red{background:#d95a64}.dot.yellow{background:#c6a03d}.dot.green{background:#4ba966}.dot:hover{transform:translateY(-1px);filter:brightness(1.06)}.dot.red:hover{box-shadow:0 0 0 3px #d95a642e,0 6px 14px #d95a6473}.dot.yellow:hover{box-shadow:0 0 0 3px #c6a03d2e,0 6px 14px #c6a03d6b}.dot.green:hover{box-shadow:0 0 0 3px #4ba9662e,0 6px 14px #4ba9666b}.file-name{color:#e7eef03d;font-size:.53rem;font-weight:500;letter-spacing:.03em}.window-body{padding:.72rem .72rem .82rem}pre{margin:0}code{display:block;font-size:.6rem;line-height:1.72}.line{display:block;white-space:pre-wrap}.keyword,.accent{color:var(--code-accent)}.window-status{display:none;margin:0;padding:.72rem;color:#e7eef0e0;font-size:.42rem;line-height:1.2;white-space:nowrap}.code-window.is-minimized .window-body{display:none}.code-window.is-minimized .window-status{display:block}.code-window.is-closed{opacity:.8;transform:scale(.985)}.code-window.is-closed .window-body{display:none}.code-window.is-closed .window-status{display:block}.code-window.is-closed .window-status::before{content:"Fenêtre fermée. ";font-weight:700}.projects-page-shell{overflow:auto}.projects-main{flex:1;padding:3rem 2rem 2.4rem}.projects-intro{max-width:48rem;margin:0 auto 2.5rem}.eyebrow{margin:0 0 .9rem;color:#5666f4;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700;letter-spacing:.08em}.projects-intro h1{margin:0;font-size:clamp(2.8rem,5vw,4.1rem);line-height:.98}.projects-lead{max-width:none;margin:1rem 0 0;color:var(--muted);font-size:1.02rem;line-height:1.65}.projects-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem;max-width:78rem;margin:0 auto}.project-card{grid-column:span 4;padding:1.45rem;border:1px solid #5666f424;border-radius:1.5rem;background:linear-gradient(180deg,#fffc,#ffffff94),#f6f2f0;box-shadow:0 18px 40px #27244e14}.project-card-featured{grid-column:span 6;background:radial-gradient(circle at top right,#ef59ba1f,#0000 35%),linear-gradient(180deg,#ffffffdb,#ffffff9e),#f6f2f0}.project-tag{display:inline-flex;align-items:center;margin-bottom:1rem;padding:.45rem .8rem;border-radius:999px;background:#5666f41a;color:#5666f4;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700}.project-tag-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.3rem;margin-bottom:1rem}.project-tag-row .project-tag{margin-bottom:0}.project-card h2{margin:0;font-size:1.55rem;line-height:1.05}.project-card p{margin:.95rem 0 0;color:var(--muted);line-height:1.6}.project-links{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.project-links a{color:#111;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.8rem;font-weight:700}.project-links a:first-child{color:#5666f4}.projects-showcase-shell{overflow:auto;background-color:#ffe9f5;background-image:var(--portfolio-transition-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.projects-showcase-main{padding:6.6rem 1.2rem 1.2rem}.projects-showcase-panel{position:relative;width:min(100%,94rem);margin:0 auto;padding:2rem 2rem 1.5rem;overflow:visible}.projects-ambient-lights{position:absolute;inset:0;pointer-events:none;overflow:hidden}.projects-ambient-lights::before{content:"";position:absolute;inset:6% 10% auto 6%;height:20rem;background:radial-gradient(circle at 18% 36%,#ffc6e838 0,#0000 34%),radial-gradient(circle at 72% 22%,#b0c2ff33 0,#0000 34%);filter:blur(44px);opacity:.72}.projects-ambient-lights::after{content:"";position:absolute;inset:auto 10% 8% 18%;height:14rem;background:radial-gradient(circle at 22% 54%,#ffffff29 0,#0000 22%),radial-gradient(circle at 64% 48%,#9fd5ff29 0,#0000 24%);filter:blur(48px);opacity:.6}.projects-showcase-intro{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:end}.projects-copy h1{margin:0;max-width:none;font-size:clamp(3.7rem,7vw,5.8rem);padding:.12em .12em .14em 0;line-height:1.02;letter-spacing:-.05em;overflow:visible;white-space:nowrap}.projects-copy h1 .projects-title-accent{background:linear-gradient(90deg,#ff4eb6 0,var(--theme-purple-strong) 52%,var(--theme-blue-dark) 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.projects-toolbar{display:grid;gap:1.2rem;align-self:end}.projects-filters{display:flex;gap:.75rem;flex-wrap:wrap}.filter-pill{min-height:3rem;padding:0 1.25rem;border:1px solid #ffffff94;border-radius:1rem;background:#ffffff6b;color:#53556f;font-family:"IBM Plex Mono",monospace;font-size:.86rem;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff47}.filter-pill.active{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;box-shadow:0 14px 30px #5c63a42e}.project-search{display:flex;align-items:center;gap:.85rem;min-height:3.2rem;padding:0 1.1rem;border-radius:1rem;background:#ffffff61;box-shadow:inset 0 0 0 1px #ffffff7a}.project-search-icon{color:#b2abd9;font-size:1.35rem}.project-search input{width:100%;border:0;background:#0000;color:#5a5b76;font:inherit}.project-search input:focus{outline:none}.project-search input::placeholder{color:#b2abd9}.projects-showcase-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.6rem}.project-showcase-card{display:grid;grid-template-columns:1fr;align-content:start;gap:1.25rem;padding:1rem;border-radius:1.7rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff80,0 18px 34px #5f57a014}.project-showcase-media{display:flex;align-items:flex-end;min-height:10.6rem;padding:1rem;border-radius:1.2rem;color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.84rem;font-weight:700;overflow:hidden}.project-showcase-media-nft{background:radial-gradient(circle at 82% 24%,rgba(var(--theme-blue-dark-rgb),.36),#0000 18%),linear-gradient(135deg,#13153c 0,#23296d 58%,var(--theme-blue-dark) 100%)}.project-showcase-media-ecommerce{min-height:15rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/e-commerce2-1600.webp);background-size:100% auto;background-position:45% 39%;background-repeat:no-repeat}.project-showcase-media-analytics{color:#1c2443;background:radial-gradient(circle at 80% 28%,#6e98ff38,#0000 18%),linear-gradient(135deg,#fff 0,#eef4ff 100%)}.project-showcase-media-dashboard{min-height:15rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/capture-2026-05-30-00-57-33-1200.webp);background-size:138% auto;background-position:calc(50% + 10px) calc(50% - 9px);background-repeat:no-repeat}.project-showcase-media-food{background:radial-gradient(circle at 80% 26%,#ffbe696b,#0000 18%),linear-gradient(135deg,#0b0d16 0,#221f1e 58%,#4a3b2e 100%)}.project-showcase-media-social{min-height:15rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/postit.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}.project-showcase-media-portfolio{height:15rem;min-height:15rem;padding:0;border:1px solid #000;background:#000}.project-showcase-media-mini-runner{height:15rem;min-height:15rem;align-items:center;justify-content:center;padding:0;background:radial-gradient(circle at 50% 16%,#ffffff57,#0000 34%),linear-gradient(180deg,#f3d9f5 0,#eadbff 100%)}.project-showcase-media-mini-runner .project-showcase-media-video{width:100%;height:100%;border-radius:0;object-fit:contain;object-position:center center;box-shadow:none}.project-showcase-media-site-vitrine{background:linear-gradient(#0a13232e,#0a13232e),url(assets/capture-2026-05-31-23-52-33-1600.webp);background-size:cover;background-position:center top;background-repeat:no-repeat}.project-showcase-media-fleurs{height:15rem;min-height:15rem;padding:0;border:1px solid #123421;background:linear-gradient(#1234210a,#1234210a),url(assets/le-pouvoir-des-fleurs-card-1400.webp);background-color:#eff7f5;background-size:cover;background-position:center top;background-repeat:no-repeat}.project-showcase-media-hookies{height:15rem;min-height:15rem;padding:0;border:1px solid #000;background:linear-gradient(#28197805,#28197805),url(assets/hookies-cover-854.webp);background-color:#3f25a8;background-size:cover;background-position:center center;background-repeat:no-repeat}.project-showcase-media-rgesn{height:15rem;min-height:15rem;padding:0;border:1px solid #000;background:#0d251f url(assets/compagnon-rgesn-cover-620.webp) center center / contain no-repeat}.project-showcase-rgesn-window{width:100%;overflow:hidden;border-radius:1rem;background:#ffffffe0;box-shadow:inset 0 0 0 1px #1432381f,0 18px 34px #12504e29}.project-showcase-rgesn-toolbar{display:flex;align-items:center;gap:.36rem;min-height:2.35rem;padding:0 .75rem;border-bottom:1px solid #1432381a;background:#ffffff94}.project-showcase-rgesn-toolbar span{width:.46rem;height:.46rem;border-radius:50%;background:#58e38f}.project-showcase-rgesn-toolbar span:nth-child(2){background:#78d4ff}.project-showcase-rgesn-toolbar span:nth-child(3){background:#f3c93d}.project-showcase-rgesn-toolbar strong{margin-left:auto;color:#24464d;font-size:.7rem;letter-spacing:0}.project-showcase-rgesn-body{display:grid;grid-template-columns:minmax(0,1fr) 5.8rem;gap:.7rem;padding:.82rem}.project-showcase-rgesn-panel{grid-column:1 / -1;display:grid;gap:.3rem;min-height:4.7rem;align-content:end;padding:.75rem;border-radius:.85rem;background:linear-gradient(135deg,#143238f0 0,#1a5b56eb 56%,#4d917ce6 100%);color:#fff}.project-showcase-rgesn-panel span{color:#ffffffc2;font-size:.68rem}.project-showcase-rgesn-panel strong{font-size:1.18rem}.project-showcase-rgesn-bars,.project-showcase-rgesn-checks{display:grid;gap:.46rem}.project-showcase-rgesn-bars span{display:block;height:.62rem;border-radius:999px;background:#14323821}.project-showcase-rgesn-bars span::before{content:"";display:block;width:72%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#58e38f,#78d4ff)}.project-showcase-rgesn-bars span:nth-child(2)::before{width:54%}.project-showcase-rgesn-bars span:nth-child(3)::before{width:86%}.project-showcase-rgesn-checks span{display:block;min-height:.62rem;border-radius:999px;background:radial-gradient(circle at .33rem 50%,#58e38f 0 .18rem,#0000 .2rem),#1432381a}.project-showcase-media-video{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}.project-showcase-copy h2{margin:0;font-size:1.8rem;line-height:1.02}.project-showcase-copy p{margin:.85rem 0 0;color:#555871;line-height:1.55}.project-showcase-copy a{display:inline-flex;margin-top:1.1rem;color:#4d61ff;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-weight:700}.project-tag-pink{background:#ff4eb629;color:#ff4eb6}.project-tag-violet{background:#6b71ff24;color:#5b66ff}.project-tag-light-blue{background:#78d4ff2e;color:#48b8f2}.project-tag-css3{background:#6b71ff24;color:#5b66ff}.project-tag-green{background:#58e38f29;color:#2cae65}.projects-cta-banner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:1.2rem;padding:1.25rem;border-radius:1.6rem;background:#ffffff57;box-shadow:inset 0 0 0 1px #ffffff6b,0 18px 34px #5f57a00d}.projects-cta-copy{display:flex;align-items:center;gap:1rem}.projects-cta-copy h2{margin:0;font-size:2rem}.projects-cta-copy p{margin:.3rem 0 0;color:#6a6d84}.projects-cta-icon{display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1.35rem;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);box-shadow:0 14px 30px #685cbc33}.projects-cta-icon img{width:calc(2rem + 4px);height:calc(2rem + 4px);display:block;object-fit:contain;filter:brightness(0) invert(1)!important;transform-origin:center;animation:about-heartbeat 1.1s ease-in-out infinite}.projects-cta-actions{display:flex;gap:1rem;flex-wrap:wrap}.projects-cta-actions .ghost-cta{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;border-color:#0000}.projects-cta-button{display:inline-flex;align-items:center;justify-content:center;min-width:12.5rem;min-height:3.7rem;padding:0 1.6rem;border-radius:1.2rem;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-weight:700;box-shadow:0 18px 34px #695aba29}.project-badge-code{top:3.5rem;right:28rem}.project-badge-terminal{top:2rem;right:11rem;background:linear-gradient(180deg,#ff78ca8f 0,rgba(var(--theme-blue-dark-rgb),.44) 100%)}.project-badge-braces{top:6rem;right:2.8rem}.project-dot-grid{position:absolute;width:8rem;height:5rem;opacity:.62;background-image:radial-gradient(circle,#ffffffe0 0 1.1px,#0000 1.25px);background-size:1rem 1rem}.project-dot-grid-left{left:.5rem;top:10rem}.project-dot-grid-right{right:1rem;top:2.8rem}.project-detail-main{padding:6.6rem 1.2rem 1.2rem}.project-detail-panel{position:relative;width:min(100%,95rem);margin:0 auto;padding:2rem 2rem 1.5rem;border-radius:2rem;overflow:hidden;background:#fff3;box-shadow:inset 0 0 0 1px #ffffff47,0 24px 44px #695aba14;--detail-surface-bg:linear-gradient(135deg,#081021 0,#1a1744 48%,#313288 100%);--detail-surface-emphasis:#ff6ac442;--detail-surface-text:#fff;--detail-surface-muted:#ffffffc2;--detail-surface-edge:#ffffff14;--detail-surface-chip:#ffffff14;--detail-surface-glow:#554ab13d}.project-theme-nft{--detail-surface-bg:linear-gradient(135deg,#081021 0,#1a1744 48%,#313288 100%);--detail-surface-emphasis:#ff6ac447;--detail-surface-text:#fff;--detail-surface-muted:#ffffffc2;--detail-surface-edge:#ffffff14;--detail-surface-chip:#ffffff14;--detail-surface-glow:#554ab13d}.project-theme-analytics{--detail-surface-bg:linear-gradient(135deg,#fff 0,#edf4ff 52%,#dfeaff 100%);--detail-surface-emphasis:#6a84ff42;--detail-surface-text:#1a2340;--detail-surface-muted:#1a2340b3;--detail-surface-edge:#31328814;--detail-surface-chip:#31328814;--detail-surface-glow:#8ba6ff2e}.project-theme-food{--detail-surface-bg:linear-gradient(135deg,#17110f 0,#38281e 54%,#654030 100%);--detail-surface-emphasis:#ffb87042;--detail-surface-text:#fff5ed;--detail-surface-muted:#fff5edc2;--detail-surface-edge:#ffffff14;--detail-surface-chip:#ffffff1a;--detail-surface-glow:#7c523938}.project-theme-portfolio{background:#0000;box-shadow:none;--detail-surface-bg:linear-gradient(135deg,#1a163d 0,#342474 52%,#6842c4 100%);--detail-surface-emphasis:#ff66bd47;--detail-surface-text:#fff;--detail-surface-muted:#ffffffc7;--detail-surface-edge:#ffffff14;--detail-surface-chip:#ffffff1a;--detail-surface-glow:#7354cf38}.project-theme-portfolio .project-info-card--overview,.project-theme-portfolio .project-info-card--learning,.project-theme-portfolio .project-info-card--tech{background:#0000;box-shadow:none}.project-theme-portfolio .project-browser{padding:.6rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff8c,0 16px 30px #5f57a014}.project-theme-portfolio .project-browser-frame{padding:.6rem}.project-theme-portfolio .project-browser-hero-media-card,.project-theme-portfolio .project-browser-hero-media{min-height:16.5rem}.project-theme-portfolio[data-project-slug="postit"] .project-browser-hero-media-card{display:flex;align-items:center;justify-content:center;min-height:0;aspect-ratio:16 / 9;padding:.8rem;box-sizing:border-box}.project-theme-portfolio[data-project-slug="postit"] .project-browser-hero-media{width:100%;height:100%;min-height:0;object-fit:contain;object-position:center center}.project-theme-portfolio[data-project-slug="hookies"]{--detail-surface-bg:linear-gradient(135deg,#1a163d 0,#342474 52%,#6842c4 100%);--detail-surface-emphasis:#ff66bd47;--detail-surface-text:#fff;--detail-surface-muted:#ffffffc7;--detail-surface-edge:#ffffff14;--detail-surface-chip:#ffffff1a;--detail-surface-glow:#7354cf38}.project-theme-portfolio[data-project-slug="hookies"] .project-browser-sideart{min-height:8.8rem;background:linear-gradient(135deg,#111820f5 0,#17444af5 58%,#ff6f9deb 100%)}.project-theme-portfolio[data-project-slug="hookies"] .project-browser-sideart::before{content:"";position:absolute;left:.8rem;right:2.8rem;top:.85rem;height:4.2rem;border-radius:.85rem;background:linear-gradient(90deg,#ffffff3d 0 26%,#0000 26% 100%),repeating-linear-gradient(0deg,#ffffff2e 0 1px,#0000 1px .8rem),#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff42}.project-theme-portfolio[data-project-slug="hookies"] .project-browser-sideart::after{content:"";position:absolute;right:.85rem;bottom:.8rem;width:3.4rem;height:3.4rem;border-radius:1rem;background:linear-gradient(135deg,#ffffffdb 0,#ffffff5c 100%);box-shadow:0 14px 26px #090f1838}.project-theme-portfolio[data-project-slug="hookies"] .project-gallery-screen-body{background:linear-gradient(135deg,#ffffff29 0 24%,#0000 24% 100%),linear-gradient(160deg,#111820eb 0,#17444ae6 52%,#ff6f9dc7 100%)}.project-theme-portfolio[data-project-slug="hookies"] .project-browser-hero-media-card--with-corner{position:relative}.project-theme-portfolio[data-project-slug="hookies"] .project-browser-corner-media{position:absolute;top:.8rem;right:.8rem;z-index:2;width:clamp(5.6rem,18vw,8.4rem);aspect-ratio:9 / 16;height:auto;min-height:0;display:block;object-fit:cover;border-radius:1.2rem;box-shadow:0 18px 35px #0d0a1e5c,inset 0 0 0 1px #ffffff3d}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"]{--detail-surface-bg:linear-gradient(135deg,#123421 0,#004c36 54%,#dfeee8 100%);--detail-surface-emphasis:#eff7f547;--detail-surface-text:#fff;--detail-surface-muted:#ffffffc7;--detail-surface-edge:#ffffff1f;--detail-surface-chip:#ffffff1f;--detail-surface-glow:#004c362e}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-title{font-size:clamp(3.8rem,6.35vw,5.35rem)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-lead{margin-top:clamp(-5rem,-4vw,-2rem)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-frame{background:linear-gradient(135deg,#1a163d 0,#342474 52%,#6842c4 100%)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-hero-media-card{background:#eff7f5}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-strip-card{background:linear-gradient(135deg,#ffffff1a 0,#ffffff1a 100%),linear-gradient(135deg,#1a163d 0,#342474 52%,#6842c4 100%);box-shadow:inset 0 0 0 1px #ffffff14}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-strip-card:nth-child(2){background:linear-gradient(135deg,#ffffff1a 0,#ffffff1a 100%),linear-gradient(135deg,#342474 0,#4f35a3 52%,#6842c4 100%)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-strip-card:nth-child(3){background:linear-gradient(135deg,#ffffff1a 0,#ffffff1a 100%),linear-gradient(135deg,#46308f 0,#5a3bb1 52%,#764bd2 100%)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-strip-card strong{color:#fff}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-browser-strip-card span{color:#ffffffc7}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-feature-badge{background:linear-gradient(135deg,#004c36 0,#dfeee8 100%)}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-gallery-screen-body{background:radial-gradient(circle at 78% 18%,#f5d9e247,#0000 28%),linear-gradient(160deg,#123421f2 0,#004c36eb 58%,#dfeee8c7 100%)}.project-theme-portfolio[data-project-slug="compagnon-rgesn"]{--detail-surface-bg:linear-gradient(135deg,#11262d 0,#1c5b56 52%,#54a47e 100%);--detail-surface-emphasis:#78d4ff3d;--detail-surface-text:#f7fffb;--detail-surface-muted:#f7fffbc7;--detail-surface-edge:#ffffff1a;--detail-surface-chip:#ffffff1c;--detail-surface-glow:#2cae652e}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-browser-frame{background:radial-gradient(circle at 18% 16%,#58e38f2e,#0000 28%),radial-gradient(circle at 88% 12%,#78d4ff29,#0000 24%),var(--detail-surface-bg)}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-browser-sideart{min-height:8.8rem;background:linear-gradient(135deg,#f7fffb2e 0 22%,#0000 22% 100%),var(--detail-surface-bg)}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-browser-sideart::before{content:"";position:absolute;left:.75rem;right:.75rem;top:.72rem;height:4.2rem;border-radius:.85rem;background:linear-gradient(90deg,#58e38fb8 0 68%,#ffffff29 68% 100%),repeating-linear-gradient(0deg,#ffffff29 0 1px,#0000 1px .74rem),#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff38}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-browser-sideart::after{content:"78";position:absolute;right:.95rem;bottom:.85rem;display:inline-flex;align-items:center;justify-content:center;width:3.4rem;height:3.4rem;border-radius:50%;background:radial-gradient(circle at center,#11262df5 0 48%,#0000 50%),conic-gradient(#58e38f 0 72%,#ffffff2e 72% 100%);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.95rem;font-weight:700;box-shadow:0 14px 26px #041d1c38}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-feature-badge{background:linear-gradient(135deg,#1c5b56 0,#58e38f 100%)}.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-gallery-screen-body{background:linear-gradient(135deg,#ffffff29 0 22%,#0000 22% 100%),radial-gradient(circle at 78% 18%,#78d4ff47,#0000 25%),linear-gradient(160deg,#11262df0 0,#1c5b56eb 56%,#54a47ee0 100%)}.project-detail-panel .spark-six{transform:translateX(-80px) scale(.64)}.project-theme-portfolio .project-browser-hero-media-card,.project-theme-portfolio .project-browser-strip-card{transform:translateY(-10px)}.project-theme-portfolio .project-detail-meta-grid{grid-template-columns:minmax(0,.95fr) minmax(23rem,.9fr)}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-frame{background:linear-gradient(135deg,#1a163d 0,#342474 52%,#6842c4 100%)}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-hero-media-card{background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff14}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-strip-card{transform:translateY(-10px);background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff14}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-strip-card strong{color:#fff}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-strip-card span{color:#ffffffc7}.project-theme-analytics[data-project-slug="dashboard-analytics"] .project-browser-strip{margin-top:1.8rem}.project-theme-portfolio .project-detail-meta-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-lead{display:flex;align-items:center;gap:1rem;width:100%;min-width:0;padding:.8rem 0 0}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-lead #project-play-action{flex:0 0 auto;min-width:10.75rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-lead .project-detail-tech-badges{padding-top:0}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badges{--mini-runner-tech-count:7;--mini-runner-tech-gap:1rem;display:flex;align-items:center;justify-content:flex-start;gap:var(--mini-runner-tech-gap);width:100%;min-width:0;padding:.8rem 0 0;flex-wrap:nowrap}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-actions{margin-top:calc(1.55rem - 4px);transform:translateY(14px)}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-info-card--learning{margin-top:-24px}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-content{margin-top:1rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badge{display:inline-flex;align-items:center;justify-content:center;width:min(5.45rem,calc((100% - ((var(--mini-runner-tech-count) - 1) * var(--mini-runner-tech-gap))) / var(--mini-runner-tech-count)));aspect-ratio:1;border-radius:1.15rem;background:#0000;box-shadow:none;flex:0 0 auto}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badge-icon{width:2.45rem;height:2.45rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-stack--browser-width{grid-column:2;grid-template-columns:repeat(var(--meta-card-count,3),minmax(0,1fr))}.project-theme-portfolio .project-browser-strip-card:first-child{align-content:start}.project-theme-portfolio .project-browser-strip-card:first-child strong{align-self:start}.project-theme-portfolio .project-detail-pill{background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff8c,0 16px 30px #5f57a014;transform:translateY(5px)}.project-theme-portfolio .project-detail-actions{margin-top:2rem;transform:translateY(42px)}.project-theme-portfolio .project-detail-action{transform:none}.project-theme-portfolio .project-info-card--features .project-feature-card,.project-theme-portfolio .project-info-card--tech .project-tech-card{background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff8c,0 16px 30px #5f57a014}.project-theme-portfolio .project-info-card--tech .project-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-hero,.project-detail-meta-grid,.project-detail-content,.project-next-banner{position:relative;z-index:2}.project-detail-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(23rem,.9fr);gap:1.4rem;align-items:start}.project-detail-copy{padding:.3rem .2rem 0 .2rem}.project-breadcrumb{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem;color:#747791;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700;flex-wrap:wrap}.project-breadcrumb a{color:#747791;text-decoration:none}.project-breadcrumb a:hover{color:#4d61ff}.project-breadcrumb-separator{opacity:.6}.project-breadcrumb [aria-current="page"]{color:#4d61ff}.project-detail-title{margin:0;max-width:12ch;font-size:clamp(3.8rem,7vw,5.9rem);line-height:.92;letter-spacing:-.05em}.project-detail-title span{display:inline-block}.project-detail-title #project-title-accent{margin-right:.45rem;background:linear-gradient(90deg,#ff4eb6 0,var(--theme-purple-strong) 52%,#4d61ff 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.project-detail-lead{max-width:38rem;margin:1.35rem 0 0;color:#31334f;font-size:1.18rem;line-height:1.6}.project-detail-tags{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.project-detail-pill{display:inline-flex;align-items:center;min-height:2.35rem;padding:0 1rem;border-radius:999px;background:#ffffff94;color:#545874;font-family:"IBM Plex Mono",monospace;font-size:.8rem;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff8c,0 14px 26px #6c65ac14}.project-detail-actions--with-carousel .project-detail-mini-carousel{display:grid;flex:0 1 calc(18.5rem + 115px);gap:0;min-width:calc(16rem + 115px);max-width:calc(18.5rem + 115px);margin-top:0;transform:translateY(-64px)}.project-mini-carousel-frame{position:relative;overflow:hidden;aspect-ratio:16 / 9.4;border-radius:1.2rem;background:#ffffff85;box-shadow:inset 0 0 0 1px #ffffff8f,0 12px 24px #675fa824}.project-mini-carousel-viewport{position:relative;width:100%;height:100%}.project-mini-carousel-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.02);transition:opacity 220ms ease,transform 220ms ease;pointer-events:none}.project-mini-carousel-slide.is-active{opacity:1;transform:scale(1);pointer-events:auto}.project-mini-carousel-image{width:100%;height:100%;display:block;object-fit:cover}.project-mini-carousel-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 .45rem;pointer-events:none}.project-mini-carousel-arrow{width:2rem;height:2rem;border:0;border-radius:999px;background:#ffffffe0;color:#23306d;font-size:1.05rem;line-height:1;box-shadow:0 8px 18px #1b224a2e;cursor:pointer;pointer-events:auto;transition:transform 180ms ease,background 180ms ease}.project-mini-carousel-expand{position:absolute;top:.7rem;right:.7rem;display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border:0;border-radius:999px;background:#101736b8;color:#fff;box-shadow:0 10px 24px #080c1c3d;cursor:pointer;transition:transform 180ms ease,background 180ms ease}.project-mini-carousel-expand img{width:1rem;height:1rem;display:block}.project-theme-portfolio[data-project-carousel="stacked"] .project-detail-actions--with-carousel .project-detail-mini-carousel{flex:0 1 calc(23rem + 115px);min-width:calc(18.5rem + 115px);max-width:calc(23rem + 115px);transform:translateY(-64px)}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked{overflow:visible;aspect-ratio:16 / 11.6;border-radius:0;background:#0000;box-shadow:none}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-viewport{overflow:visible}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide{inset:auto;width:78%;height:auto;margin:0;overflow:hidden;border-radius:1.35rem;background:#fffffff5;box-shadow:inset 0 0 0 1px #ffffffad,0 18px 36px #49428433;opacity:0;transform:scale(.98);pointer-events:none}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-active{top:0;right:0;z-index:2;width:76%;opacity:1;transform:translate3d(0,0,0) scale(1);pointer-events:auto}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-secondary{left:0;bottom:0;z-index:1;width:58%;opacity:1;transform:translate3d(0,0,0) rotate(-1.8deg)}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-tertiary{right:-18%;bottom:calc(6% + 40px);z-index:1;width:58%;opacity:1;transform:translate3d(0,0,0) rotate(1.8deg)}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-image{aspect-ratio:16 / 10;object-fit:cover}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-controls{inset:auto 0 6.2rem;z-index:1;padding:0 .15rem}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-arrow{background:#fffffff5}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-expand{top:.9rem;right:.9rem;z-index:4}body.project-image-overlay-open{overflow:hidden}.project-image-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.4rem;background:#0c1228c2;backdrop-filter:blur(10px)}.project-image-overlay[hidden]{display:none}.project-image-overlay-dialog{position:relative;width:min(100%,68rem)}.project-image-overlay-controls{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:0 .8rem;pointer-events:none}.project-image-overlay-arrow{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:0;border-radius:999px;background:#ffffffeb;color:#23306d;font-size:1.6rem;line-height:1;box-shadow:0 14px 30px #080c1c33;cursor:pointer;pointer-events:auto;transition:transform 180ms ease,background 180ms ease}.project-image-overlay-arrow[hidden]{display:none}.project-image-overlay-close{position:absolute;top:-.7rem;right:-.7rem;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:0;border-radius:999px;background:#ffffffeb;color:#162044;box-shadow:0 14px 30px #080c1c40;cursor:pointer;transition:transform 180ms ease,background 180ms ease}.project-image-overlay-close img{width:1.2rem;height:1.2rem;display:block}.project-image-overlay-figure{margin:0;overflow:hidden;border-radius:1.6rem;background:#ffffffe6;box-shadow:inset 0 0 0 1px #ffffff85,0 24px 60px #080c1c57}.project-image-overlay-media{width:100%;max-height:min(78vh,52rem);display:block;object-fit:contain;background:radial-gradient(circle at top,#8399ff1f,#0000 50%),#f4f6ff}.project-image-overlay-title{display:block;padding:.95rem 1.2rem 1.15rem;color:#303652;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:600;line-height:1.45}@media (max-width:760px){.project-image-overlay{padding:1rem}.project-image-overlay-controls{padding:0 .35rem}.project-image-overlay-arrow{width:2.55rem;height:2.55rem;font-size:1.35rem}.project-image-overlay-close{top:.45rem;right:.45rem;width:2.45rem;height:2.45rem}}.project-detail-actions{display:flex;align-items:center;gap:1rem;margin-top:1.55rem;flex-wrap:wrap}.project-detail-action{border:0;cursor:default}.project-detail-actions--with-carousel .project-detail-action{flex:0 0 12rem}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] #project-play-action{min-width:11rem;padding:0 1.25rem}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-main-column{align-content:start;gap:0}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-content{align-items:start}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-preview{display:grid;gap:1rem}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-preview{display:grid;gap:.35rem}.project-theme-portfolio[data-project-slug="nft-marketplace"] .project-detail-preview,.project-theme-portfolio[data-project-slug="hookies"] .project-detail-preview,.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-preview,.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-detail-preview{display:grid;gap:.85rem}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-meta-grid--preview{grid-template-columns:1fr;gap:.75rem;margin-top:0}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview{grid-template-columns:1fr;gap:0;margin-top:0;position:relative;overflow:visible}.project-theme-portfolio[data-project-slug="nft-marketplace"] .project-detail-meta-grid--preview,.project-theme-portfolio[data-project-slug="hookies"] .project-detail-meta-grid--preview,.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-meta-grid--preview,.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-detail-meta-grid--preview{grid-template-columns:1fr;gap:.75rem;margin-top:0}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-meta-lead{position:absolute;top:50%;left:0;min-width:max-content;padding-top:0;transform:translate(calc(-100% - 1.15rem + 255px),-50%);z-index:2}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:100%}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-tech-badges{--mini-runner-tech-gap:.65rem;justify-content:flex-start;padding-top:0;width:max-content}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-tech-badge{width:3.15rem;min-width:3.15rem;border-radius:.95rem}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-tech-badge-icon{width:2.05rem;height:2.05rem}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-meta-card{gap:.75rem;padding:.95rem 1rem;min-width:0}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-meta-icon{width:2.85rem;height:2.85rem;border-radius:.95rem}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-meta-grid--preview .project-detail-meta-copy strong{font-size:.9rem}.project-theme-portfolio[data-project-slug="nft-marketplace"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width,.project-theme-portfolio[data-project-slug="hookies"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width,.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width,.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-detail-meta-grid--preview .project-detail-meta-stack--browser-width{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-info-card--features{background:#0000;box-shadow:none}.project-theme-portfolio[data-project-slug="nft-marketplace"] .project-info-card--features,.project-theme-portfolio[data-project-slug="hookies"] .project-info-card--features,.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-info-card--features,.project-theme-portfolio[data-project-slug="compagnon-rgesn"] .project-info-card--features{background:#0000;box-shadow:none}.project-theme-portfolio[data-project-slug="dashboard-analytics"] #project-learning-card.project-info-card--full-width{margin-top:1rem}.project-detail-panel[data-project-layout="case-study"]{width:min(100%,96rem);padding:0 0 1.4rem;background:#0000;box-shadow:none}.project-detail-panel[data-project-layout="case-study"] .about-ambient-lights{display:none}body.saturne-detail-page .projects-showcase-shell{background:linear-gradient(180deg,#ffffffe0 0,#fffffffa 18%),linear-gradient(115deg,#fffafd 0,#f9f6ff 46%,#f4f8ff 100%)}body.saturne-detail-page .topbar-home2{background:var(--header-gradient);box-shadow:0 16px 34px #090f2b38}body.saturne-detail-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff3d 54%,#ffffffdb 100%)}body.saturne-detail-page .brand-mark,body.saturne-detail-page .brand-mark-text,body.saturne-detail-page .nav-home2 a{color:#fff}body.saturne-detail-page .nav-home2 a:hover,body.saturne-detail-page .nav-home2 a.active{background:#ffffff38;color:#fff}body.saturne-detail-page .brand-mark-icon img{filter:brightness(0) invert(1)}body.saturne-detail-page .download-btn{border:1px solid #ffffffbd;background:#ffffff1a;color:#fff;box-shadow:none}body.saturne-detail-page .theme-toggle-switch{--theme-toggle-light-ink:#fff;background:#ffffff24}.saturne-case-study{color:#07114a}.saturne-breadcrumb{display:flex;align-items:center;gap:.75rem;margin:0 0 1.5rem;color:#273982;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700}.saturne-breadcrumb a{color:#273982;text-decoration:none}.saturne-breadcrumb span[aria-current="page"]{color:#1d2df3}.saturne-hero{display:grid;grid-template-columns:minmax(20rem,.86fr) minmax(34rem,1.36fr);gap:3rem;align-items:stretch}.saturne-hero-copy{display:flex;flex-direction:column;min-width:0}.saturne-status-pill{display:inline-flex;align-items:center;gap:.6rem;width:fit-content;margin:0 0 2.2rem;padding:.58rem .9rem;border-radius:999px;background:#edfff9eb;color:#00866a;font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:700;box-shadow:inset 0 0 0 1px #00a6782e}.saturne-status-pill-confidential{background:#fff8e5f2;color:#9a6200;box-shadow:inset 0 0 0 1px #d3900038}.saturne-status-pill-confidential .availability-dot{background:#d99000;box-shadow:0 0 0 .3rem #d9900029;animation:none}.saturne-hero h1{margin:0;font-size:clamp(4.7rem,7vw,7.1rem);line-height:.88;letter-spacing:0;background:linear-gradient(90deg,#ef3f99 0,#8a4ce8 52%,#2d62ff 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.saturne-subtitle{max-width:35rem;margin:1.35rem 0 0;color:#07114a;font-size:1.35rem;line-height:1.45;font-weight:800}.saturne-lead{max-width:35rem;margin:.75rem 0 0;color:#465279;font-size:1.02rem;line-height:1.65}.saturne-meta-line{display:flex;align-items:center;gap:1rem;margin:2rem 0 0;padding:0;flex-wrap:wrap}.saturne-meta-line div{display:inline-flex;align-items:center;gap:.55rem}.saturne-meta-line div + div::before{content:"";width:.22rem;height:.22rem;margin-right:.45rem;border-radius:50%;background:#1d2c76;opacity:.8}.saturne-meta-line dt{width:1px;height:1px;position:absolute;overflow:hidden;clip:rect(0 0 0 0)}.saturne-meta-line dd{display:inline-flex;align-items:center;gap:.45rem;margin:0;color:#10184d;font-family:"IBM Plex Mono",monospace;font-size:.83rem;font-weight:700}.saturne-actions{display:flex;gap:1rem;margin-top:auto;padding-top:1.15rem;flex-wrap:wrap}.saturne-button{display:inline-flex;align-items:center;justify-content:center;min-height:3.3rem;padding:0 1.45rem;border-radius:.72rem;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.86rem;font-weight:800;transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}.saturne-button-primary{background:linear-gradient(135deg,#4526d4 0,#5b33ff 100%);color:#fff;box-shadow:0 18px 30px #3630a933}.saturne-button-secondary{background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);box-shadow:var(--portfolio-cta-night-shadow)}.saturne-actions .saturne-button{min-width:10rem;padding:0 .95rem}.saturne-hero-preview{height:100%;min-height:24rem;margin:0}.saturne-device-showcase{position:relative;align-self:center;width:100%;min-height:clamp(21rem,32vw,30rem);margin:0;overflow:visible}.saturne-device-showcase::before{content:"";position:absolute;left:8%;right:3%;bottom:1.8rem;height:42%;border-radius:999px;background:radial-gradient(circle at 24% 30%,#ff3f993d,#0000 48%),radial-gradient(circle at 78% 45%,#5349ff3d,#0000 52%);filter:blur(2.6rem);opacity:.8;pointer-events:none}.saturne-device-showcase .featured-laptop{left:0;right:auto;bottom:2.3rem;width:min(43rem,84%);min-width:0;max-width:none}.saturne-device-showcase .featured-laptop-screen{display:block;min-height:0;aspect-ratio:1.68;grid-template-columns:none;border-width:4px;border-radius:1.1rem 1.1rem .36rem .36rem}.saturne-device-showcase .featured-laptop-notch{top:.2rem;width:3.35rem;height:.58rem}.saturne-device-showcase .featured-laptop-base{width:108%;height:.96rem;margin:-.03rem 0 0 -4%}.saturne-device-showcase .featured-phone{left:auto;right:.25rem;bottom:1.45rem;width:clamp(6.3rem,16.5%,8.25rem);min-width:0;min-height:0;padding:.34rem;border-radius:1.22rem}.saturne-device-showcase .featured-phone-screen{display:block;min-height:0;aspect-ratio:9 / 18.2;padding:0;border-radius:.86rem;background:#fff}.saturne-device-showcase .featured-screen-slider{background:#fff}.saturne-preview-button,.saturne-screen-button{display:block;width:100%;padding:0;border:0;background:#0000;cursor:zoom-in}.saturne-preview-button{height:100%;overflow:hidden;border-radius:1.1rem;background:#fff;box-shadow:inset 0 0 0 1px #222a5814,0 20px 46px #27337029}.saturne-showcase-media,.saturne-preview-button img,.saturne-preview-button video{display:block;width:100%;aspect-ratio:1800 / 997;height:100%;object-fit:cover}.saturne-showcase-media{border-radius:1.1rem;background:#fff;box-shadow:inset 0 0 0 1px #222a5814,0 20px 46px #27337029}.saturne-showcase-frame{position:relative;height:100%;min-height:inherit;overflow:hidden;border-radius:1.1rem}.saturne-showcase-frame .saturne-showcase-media{height:100%}.saturne-corner-media{position:absolute;top:.9rem;right:.9rem;z-index:2;width:clamp(5.4rem,13vw,8.2rem);aspect-ratio:9 / 16;height:auto;display:block;object-fit:cover;border-radius:1rem;background:#111028;box-shadow:0 18px 36px #0d0a1e57,inset 0 0 0 1px #ffffff3d}video.saturne-showcase-media{min-height:17rem;background:#07114a}.saturne-screen-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));gap:2rem;margin-top:3rem;padding:1.7rem;border-radius:1.1rem;background:radial-gradient(circle at 12% 10%,#6976ff1a,#0000 26%),radial-gradient(circle at 90% 20%,#ef3f991a,#0000 28%),#f8f6ffeb}.saturne-screen-band--carousel{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.saturne-screen-band--carousel .saturne-screen-card{flex:0 0 calc((100% - 4rem) / 3);scroll-snap-align:start}.saturne-screen-card{min-width:0}.saturne-screen-button{overflow:hidden;border-radius:.9rem;background:#fff;box-shadow:inset 0 0 0 1px #222a5814,0 16px 32px #33387e1a}.saturne-screen-button img,.saturne-screen-button video{display:block;width:100%;aspect-ratio:16 / 9.1;height:auto;object-fit:cover}.saturne-screen-card h2,.saturne-info-card h2,.saturne-architecture h2,.saturne-cta h2{margin:1rem 0 0;color:#07114a;font-size:1.08rem;line-height:1.22}.saturne-screen-card p{margin:.35rem 0 0;color:#465279;font-size:.9rem;line-height:1.45}.saturne-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:2.2rem}.saturne-info-card{min-width:0;padding:1.45rem;border-radius:.95rem;background:#ffffffeb;box-shadow:inset 0 0 0 1px #222a581a,0 16px 34px #2f377512}.saturne-info-card>img{width:1.65rem;height:1.65rem;object-fit:contain;filter:brightness(0) saturate(100%) invert(35%) sepia(88%) saturate(3355%) hue-rotate(235deg) brightness(98%) contrast(96%)}.saturne-info-card:nth-child(3)>img,.saturne-info-card:nth-child(4)>img{filter:brightness(0) saturate(100%) invert(40%) sepia(92%) saturate(2740%) hue-rotate(308deg) brightness(100%) contrast(95%)}.saturne-info-card h2{margin-top:.75rem}.saturne-info-card ul{display:grid;gap:.65rem;margin:1rem 0 0;padding-left:1rem;color:#14205e;font-size:.9rem;line-height:1.45}.saturne-info-card li::marker{color:#1d2df3}.saturne-check-list{list-style:none;padding-left:0!important}.saturne-check-list li{position:relative;padding-left:1.35rem}.saturne-check-list li::before{content:"";position:absolute;left:0;top:.47rem;width:.62rem;height:.36rem;border-left:2px solid #1d2df3;border-bottom:2px solid #1d2df3;transform:rotate(-45deg)}.saturne-architecture{display:grid;grid-template-columns:minmax(38rem,1.7fr) minmax(13rem,.58fr) minmax(16rem,.72fr);gap:1rem;align-items:stretch;margin-top:1.6rem;padding:1.25rem;border-radius:.95rem;background:#ffffffeb;box-shadow:inset 0 0 0 1px #222a581a,0 16px 34px #2f377512}.saturne-architecture h2{margin-top:0;font-size:1.25rem}.saturne-stack-diagram{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto;column-gap:1.55rem;row-gap:3.25rem;margin-top:1.2rem;padding:.1rem 0 0}.saturne-flow-links{position:absolute;inset:.2rem 0 0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}.saturne-flow-link{fill:none;stroke:#9aa4c6;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;marker-end:url(#saturne-flow-arrow)}.saturne-flow-links marker path{fill:#8d98bd}.saturne-flow-link-solid{stroke-dasharray:none}.saturne-flow-link-dashed{stroke-dasharray:9 8}.saturne-stack-diagram article{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.72rem;align-items:center;min-height:5.7rem;padding:.9rem .78rem;border-radius:.7rem;background:#fff;box-shadow:inset 0 0 0 1px #3041892e,0 10px 20px #242d660d;text-align:left}.saturne-stack-card-pdf{grid-column:2 / span 2;grid-row:2;justify-self:center;width:min(22rem,100%)}.saturne-stack-diagram img{display:block;object-fit:contain}.saturne-stack-diagram strong{display:block;color:#0c1754;font-size:.85rem;line-height:1.2;white-space:nowrap}.saturne-stack-diagram span{display:block;margin-top:.26rem;color:#596383;font-family:"IBM Plex Mono",monospace;font-size:.62rem;font-weight:700;line-height:1.25}.saturne-architecture-copy{display:grid;align-content:center;padding:0 1rem;border-left:1px solid #30418924;border-right:1px solid #30418924}.saturne-architecture-copy p{margin:0;color:#465279;font-size:.92rem;line-height:1.55}.saturne-tech-tags{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.saturne-tech-tags span{display:inline-flex;align-items:center;min-height:1.75rem;padding:0 .7rem;border-radius:999px;background:#eef2ff;color:#2643d6;font-family:"IBM Plex Mono",monospace;font-size:.68rem;font-weight:800}.saturne-fact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;padding:.25rem 0}.saturne-fact-grid div{display:grid;align-content:center;min-height:4.75rem;text-align:center}.saturne-fact-grid dt{color:#2e35ff;font-size:1.65rem;font-weight:800;line-height:1}.saturne-fact-grid dd{margin:.35rem 0 0;color:#465279;font-size:.72rem;font-weight:700;line-height:1.35}.saturne-fact-grid div:nth-child(3n + 1) dt{color:#3140ff}.saturne-fact-grid div:nth-child(3n + 2) dt{color:#8a4ce8}.saturne-fact-grid div:nth-child(3n) dt{color:#ef3f99}.saturne-cta{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;margin-top:1.7rem;padding:1.5rem 1.65rem;border-radius:1rem;background:linear-gradient(110deg,#1739c8 0,#6a35cc 52%,#f14497 100%);color:#fff;box-shadow:0 20px 36px #3d329f33}.saturne-cta-copy{display:flex;align-items:center;gap:1.15rem}.saturne-cta-logo{display:inline-flex;align-items:center;justify-content:center;width:4.65rem;height:4.65rem;flex:0 0 auto}.saturne-cta-logo img{width:4.4rem;height:4.4rem;object-fit:contain}.saturne-cta h2{margin:0;color:#fff;font-size:1.65rem}.saturne-cta p{margin:.35rem 0 0;color:#ffffffe6}.saturne-cta-actions{display:flex;gap:1rem;flex-wrap:wrap}.saturne-button-light{background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);box-shadow:var(--portfolio-cta-night-shadow)}.saturne-button-outline{color:#fff;box-shadow:inset 0 0 0 1px #ffffffd1}.saturne-footer{display:flex;justify-content:space-between;gap:1.5rem;margin-top:1.5rem;padding:0 1.55rem;color:#1c285f;font-size:.82rem}.saturne-footer nav{display:flex;gap:2rem;flex-wrap:wrap}.saturne-footer a{color:#1c285f;text-decoration:none}@media (max-width:1180px) and (min-width:761px){.project-detail-shell .topbar-home2{gap:.8rem;padding:.9rem 1.15rem}.project-detail-shell .brand-mark{gap:.55rem}.project-detail-shell .brand-mark-icon{flex-basis:2.45rem;width:2.45rem;height:2.45rem;--brand-logo-extra:30px}.project-detail-shell .brand-mark-icon img{width:calc(100% + 30px);height:calc(100% + 30px)}.project-detail-shell .brand-mark-text{max-width:11.8rem;font-size:.95rem;line-height:1.15;transform:none}.project-detail-shell .nav-home2{gap:.65rem;flex-wrap:nowrap}.project-detail-shell .nav-home2 a{min-height:2.55rem;padding:0 .85rem;font-size:.84rem;white-space:nowrap}.project-detail-shell .topbar-home2-actions{gap:.55rem;flex-wrap:nowrap}.project-detail-shell .download-btn{min-width:9.7rem;min-height:2.65rem;padding:0 .9rem;font-size:.72rem;white-space:nowrap}.project-detail-shell .theme-toggle-switch{--theme-toggle-width:3.8rem;--theme-toggle-height:2.35rem}.saturne-architecture{grid-template-columns:1fr}.saturne-architecture-copy{padding:1rem 0;border-left:0;border-right:0;border-top:1px solid #30418924;border-bottom:1px solid #30418924}.saturne-fact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.saturne-hero{grid-template-columns:1fr;gap:2rem;align-items:start}.saturne-hero-copy{display:block}.saturne-hero-preview{height:auto;min-height:0}.saturne-device-showcase{min-height:clamp(18rem,58vw,27rem)}.saturne-preview-button{height:auto}.saturne-showcase-media,.saturne-preview-button img{height:auto}.saturne-hero h1{font-size:5.8rem}.saturne-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.project-detail-panel[data-project-layout="case-study"]{padding-bottom:.5rem}.saturne-breadcrumb{margin-bottom:1rem;font-size:.74rem}.saturne-hero{gap:1.4rem}.saturne-device-showcase{min-height:clamp(14rem,56vw,20rem)}.saturne-device-showcase .featured-laptop{bottom:1.7rem;width:82%}.saturne-device-showcase .featured-laptop-screen{border-width:3px}.saturne-device-showcase .featured-phone{bottom:1.05rem;width:clamp(4.5rem,17%,5.9rem);padding:.26rem;border-radius:.95rem}.saturne-device-showcase .featured-phone-screen{border-radius:.66rem}.saturne-status-pill{margin-bottom:1rem;white-space:normal}.saturne-hero h1{font-size:3.65rem;line-height:.95}.saturne-subtitle{font-size:1.06rem}.saturne-lead{font-size:.94rem;line-height:1.55}.saturne-meta-line{align-items:flex-start;gap:.65rem}.saturne-meta-line div{width:100%}.saturne-meta-line div + div::before{display:none}.saturne-actions,.saturne-cta-actions{display:grid;grid-template-columns:1fr}.saturne-actions{margin-top:1.15rem;padding-top:0}.saturne-button{width:100%;min-height:3rem;border-radius:.7rem}.saturne-screen-band,.saturne-info-grid,.saturne-stack-diagram,.saturne-fact-grid{grid-template-columns:1fr}.saturne-screen-band{gap:1.2rem;margin-top:1.7rem;padding:1rem;border-radius:.9rem}.saturne-screen-band--carousel .saturne-screen-card{flex:0 0 min(31rem,86%)}.saturne-info-grid{margin-top:1.4rem}.saturne-info-card,.saturne-architecture{padding:1rem;border-radius:.85rem}.saturne-architecture{grid-template-columns:1fr}.saturne-architecture>div,.saturne-stack-diagram{min-width:0}.saturne-stack-diagram{row-gap:1rem;padding-left:1.05rem;width:100%}.saturne-flow-links{display:none}.saturne-stack-diagram article{grid-column:auto;width:100%}.saturne-stack-diagram strong{white-space:normal}.saturne-stack-diagram article:not(:last-child)::after{content:"";position:absolute;left:-.62rem;top:calc(100% - .05rem);height:1.15rem;border-left:2px dashed #9aa4c6}.saturne-stack-diagram article:not(:last-child)::before{content:"";position:absolute;left:-.88rem;top:calc(100% + .74rem);width:0;height:0;border-top:.32rem solid #8d98bd;border-right:.28rem solid #0000;border-left:.28rem solid #0000}.saturne-stack-card-pdf{grid-column:auto}.saturne-cta{display:grid;gap:1.1rem;margin-top:1.2rem;padding:1rem;border-radius:.9rem}.saturne-cta-copy{align-items:flex-start;flex-direction:column;gap:.65rem}.saturne-cta-logo{width:3.65rem;height:3.65rem}.saturne-cta-logo img{width:3.45rem;height:3.45rem}.saturne-cta h2{font-size:1.3rem}.saturne-footer{display:grid;gap:.8rem;padding:0}.saturne-footer nav{gap:1rem}}.project-browser{padding:.95rem;border-radius:1.8rem;background:#ffffff94;box-shadow:inset 0 0 0 1px #ffffff85,0 20px 38px #6359a624}.project-browser-frame{padding:.95rem;border-radius:1.45rem;background:var(--detail-surface-bg);color:var(--detail-surface-text);box-shadow:inset 0 0 0 1px var(--detail-surface-edge),0 18px 40px var(--detail-surface-glow)}.project-browser-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:center}.project-browser-window{display:inline-flex;align-items:center;gap:.35rem}.project-browser-dot{width:.65rem;height:.65rem;border-radius:50%}.project-browser-dot-red{background:#f26b77}.project-browser-dot-yellow{background:#d7b356}.project-browser-dot-green{background:#5ed184}.project-browser-search{min-height:2rem;padding:0 .9rem;border-radius:999px;background:var(--detail-surface-chip);color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.72rem;display:inline-flex;align-items:center}.project-browser-nav{display:inline-flex;align-items:center;gap:1rem;color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700}.project-browser-hero{display:grid;grid-template-columns:minmax(0,1fr) 12.4rem;gap:1rem;margin-top:1rem}.project-browser-hero--media{display:block}.project-browser-hero-media-card{overflow:hidden;min-height:22rem;border-radius:1.35rem;background:var(--detail-surface-chip);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-browser-hero-media{width:100%;height:100%;min-height:22rem;display:block;object-fit:cover}.project-browser-copy{padding:1rem .2rem .2rem}.project-browser-eyebrow{margin:0;color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.project-browser-copy h2{margin:.7rem 0 0;max-width:11ch;font-size:clamp(2rem,3vw,2.6rem);line-height:1}.project-browser-copy p:last-child,.project-browser-copy>p:not(.project-browser-eyebrow){margin:.8rem 0 0;max-width:30rem;color:var(--detail-surface-muted);line-height:1.55}.project-browser-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.project-browser-actions span{display:inline-flex;align-items:center;min-height:2.2rem;padding:0 .9rem;border-radius:999px;background:var(--detail-surface-chip);color:var(--detail-surface-text);font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700}.project-browser-sidecard{display:grid;gap:.65rem;align-content:start;padding:.85rem;border-radius:1.2rem;background:var(--detail-surface-chip);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-browser-sideart{position:relative;overflow:hidden;min-height:7.4rem;border-radius:1rem;background:radial-gradient(circle at 26% 22%,#ffffff42,#0000 24%),radial-gradient(circle at 74% 18%,var(--detail-surface-emphasis),#0000 26%),var(--detail-surface-bg);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-browser-sideart--media{background:var(--detail-surface-bg)}.project-browser-sideart-media{width:100%;height:100%;min-height:7.4rem;display:block;object-fit:cover;border-radius:inherit}.project-browser-sidekicker{margin:0;color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700}.project-browser-sidecard strong{font-size:1.35rem;line-height:1}.project-browser-sidecard span{color:var(--detail-surface-muted);font-size:.8rem}.project-browser-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem}.project-browser-strip--carousel{display:block}.project-browser-carousel-track{display:flex;gap:.85rem;overflow-x:auto;padding-bottom:.25rem;scroll-snap-type:x mandatory;scrollbar-width:thin}.project-browser-carousel-card{flex:0 0 min(31rem,82%);scroll-snap-align:start;margin:0;overflow:hidden;border-radius:1rem;background:var(--detail-surface-chip);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-browser-carousel-image{width:100%;aspect-ratio:16 / 10;display:block;object-fit:cover;object-position:top center;background:var(--detail-surface-bg)}.project-browser-carousel-caption{display:grid;gap:.25rem;padding:.75rem .85rem .85rem}.project-browser-carousel-caption strong{color:var(--detail-surface-text);font-size:.84rem;line-height:1.15}.project-browser-carousel-caption span{color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.68rem}.project-browser-strip-card{display:grid;gap:.45rem;min-height:6.4rem;padding:.85rem;border-radius:1rem;background:var(--detail-surface-chip);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-browser-strip-card strong{align-self:end;font-size:.88rem}.project-browser-strip-card span{color:var(--detail-surface-muted);font-family:"IBM Plex Mono",monospace;font-size:.7rem}.project-detail-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.project-detail-meta-card{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border-radius:1.25rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff8c,0 16px 30px #5f57a014}.project-detail-meta-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700;box-shadow:0 14px 28px #6d61be29}.project-detail-meta-icon-image{width:1.35rem;height:1.35rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.project-detail-meta-copy p{margin:0;color:#7a7d95;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.project-detail-meta-copy strong{display:block;margin-top:.3rem;color:#2c2f46;font-size:1rem}.project-detail-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(21rem,.72fr);gap:1rem;margin-top:1rem}.project-detail-main-column,.project-detail-side-column{display:grid;gap:1rem}.project-info-card{padding:1.25rem;border-radius:1.6rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff85,0 18px 34px #5f57a014}.project-info-card h2{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1.95rem;line-height:1.05}.project-info-card h2::before{content:"";width:2.4rem;height:2.4rem;border-radius:.95rem;background:linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%);box-shadow:0 12px 24px #7162c433}.project-info-card--overview h2::before,.project-info-card--tech h2::before,.project-info-card--learning h2::before{display:none}.project-info-card-title-icon{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:.95rem;background:linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%);box-shadow:0 12px 24px #7162c433;flex:0 0 auto}.project-info-card-title-icon img{width:1.3rem;height:1.3rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.project-info-card--strengths .project-info-card-title-icon{background:linear-gradient(135deg,#ff66bd 0,#4d61ff 52%,#7b48ff 100%);box-shadow:0 12px 24px #615bd43d}.project-info-card--full-width{margin-top:1rem}.project-text-block p{margin:0;color:#555871;line-height:1.62}.project-text-block p + p{margin-top:.85rem}.project-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.project-feature-card{display:grid;grid-template-columns:auto 1fr;gap:.85rem;padding:.9rem;border-radius:1.2rem;background:#fff9;box-shadow:inset 0 0 0 1px #ffffff8f,0 12px 26px #5f57a00f}.project-feature-badge{display:inline-flex;align-items:center;justify-content:center;width:3.1rem;height:3.1rem;border-radius:1rem;background:linear-gradient(135deg,#ff7ac3fa 0,#313288fa 100%);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700}.project-feature-copy h3{margin:0;font-size:1rem}.project-feature-copy p{margin:.35rem 0 0;color:#66697e;font-size:.9rem;line-height:1.45}.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.project-gallery-card{padding:.75rem;border-radius:1.25rem;background:#ffffff94;box-shadow:inset 0 0 0 1px #ffffff8f,0 12px 26px #5f57a00f}.project-gallery-screen{overflow:hidden;min-height:11rem;border-radius:1.05rem;background:var(--detail-surface-bg);color:var(--detail-surface-text);box-shadow:inset 0 0 0 1px var(--detail-surface-edge)}.project-gallery-screen-top{display:flex;gap:.35rem;padding:.7rem .8rem;border-bottom:1px solid var(--detail-surface-edge)}.project-gallery-screen-dot{width:.48rem;height:.48rem;border-radius:50%;background:#ffffffb8}.project-gallery-screen-body{display:flex;flex-direction:column;justify-content:flex-end;min-height:calc(11rem - 2rem);padding:.8rem;background:radial-gradient(circle at 20% 18%,#ffffff3d,#0000 22%),radial-gradient(circle at 78% 18%,var(--detail-surface-emphasis),#0000 24%)}.project-gallery-kicker{display:inline-flex;width:fit-content;padding:.3rem .55rem;border-radius:999px;background:var(--detail-surface-chip);color:var(--detail-surface-text);font-family:"IBM Plex Mono",monospace;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.project-gallery-screen-body strong{display:block;margin-top:1rem;font-size:1rem}.project-gallery-screen-body p{margin:.45rem 0 0;color:var(--detail-surface-muted);font-size:.84rem;line-height:1.45}.project-tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.project-tech-card{display:grid;justify-items:center;gap:.65rem;min-height:6.3rem;padding:.95rem .7rem;border-radius:1.2rem;background:#ffffff9e;box-shadow:inset 0 0 0 1px #ffffff8f,0 12px 24px #5f57a00f;text-align:center}.project-tech-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:linear-gradient(135deg,#ff7ac329 0,#31328824 100%);color:#4d61ff;font-family:"IBM Plex Mono",monospace;font-size:.85rem;font-weight:700}.project-tech-card strong{color:#2d314d;font-size:.9rem}.project-tech-card--text{display:grid;justify-items:start;align-content:start;gap:.55rem;min-height:6.6rem;padding:.85rem 1rem;text-align:left}.project-tech-card--text strong{display:inline-flex;align-items:center;gap:.5rem;font-size:.98rem;line-height:1.25}.project-tech-card--text p{margin:0;color:#66697e;font-size:.88rem;line-height:1.5}@media (min-width:1181px){.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-detail-side-column{align-self:stretch;height:100%}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-info-card--tech{display:grid;grid-template-rows:auto 1fr;height:100%}.project-theme-portfolio[data-project-slug="dashboard-analytics"] .project-info-card--tech .project-tech-grid{height:100%;align-content:space-between}}.project-tech-title-icon{width:1rem;height:1rem;display:block;object-fit:contain}.project-tech-title-icon-mask{width:calc(1rem + 3px);height:calc(1rem + 3px);display:inline-block;flex:0 0 auto;background-repeat:no-repeat;background-position:center;background-size:contain}.project-tech-title-icon-mask--strengths{background-image:url(assets/pointfort.svg)}.project-tech-title-icon--blue{filter:brightness(0) saturate(100%) invert(33%) sepia(96%) saturate(2704%) hue-rotate(224deg) brightness(103%) contrast(103%)}.project-tech-title-icon--green{filter:brightness(0) saturate(100%) invert(52%) sepia(41%) saturate(721%) hue-rotate(82deg) brightness(97%) contrast(89%);width:calc(1rem + 3px);height:calc(1rem + 3px)}.project-tech-title-icon--light-blue{filter:brightness(0) saturate(100%) invert(73%) sepia(46%) saturate(1504%) hue-rotate(176deg) brightness(102%) contrast(97%)}.project-tech-title-icon--pink{filter:brightness(0) saturate(100%) invert(63%) sepia(52%) saturate(2821%) hue-rotate(300deg) brightness(102%) contrast(101%);width:calc(1rem + 3px);height:calc(1rem + 3px)}.project-tech-title-icon--yellow{filter:brightness(0) saturate(100%) invert(36%) sepia(97%) saturate(1955%) hue-rotate(341deg) brightness(98%) contrast(95%);width:calc(1rem + 3px);height:calc(1rem + 3px)}.project-tech-title-icon--violet{filter:brightness(0) saturate(100%) invert(39%) sepia(81%) saturate(1038%) hue-rotate(232deg) brightness(94%) contrast(95%);width:calc(1rem + 3px);height:calc(1rem + 3px)}.project-tech-title-icon--canva{width:calc(1rem + 10px);height:calc(1rem + 10px)}.project-tech-title-icon--esbuild{filter:brightness(0) saturate(100%) invert(60%) sepia(92%) saturate(3333%) hue-rotate(1deg) brightness(103%) contrast(105%);width:calc(1rem + 4px);height:calc(1rem + 4px)}.project-tech-title-icon--vite{filter:brightness(0) saturate(100%) invert(33%) sepia(96%) saturate(2704%) hue-rotate(224deg) brightness(103%) contrast(103%);width:calc(1rem + 4px);height:calc(1rem + 4px)}.project-tech-title-icon--nodejs{width:calc(1rem + 10px);height:calc(1rem + 10px)}.project-tech-title-icon--mysql{width:calc(1rem + 20px);height:calc(1rem + 20px)}.project-objective-list{display:grid;gap:.8rem;margin:0;padding:0;list-style:none}.project-objective-list li{position:relative;padding-left:1.35rem;color:#5b6078;line-height:1.55}.project-objective-list li::before{content:"";position:absolute;left:0;top:.5rem;width:.6rem;height:.6rem;border-radius:50%;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);box-shadow:0 0 0 .28rem #6842c41a}.project-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.project-result-card{display:grid;justify-items:center;align-content:center;min-height:5.8rem;padding:.8rem;border-radius:1.2rem;background:#ffffff9e;box-shadow:inset 0 0 0 1px #ffffff8f,0 12px 24px #5f57a00f;text-align:center}.project-result-card strong{color:#4d61ff;font-size:1.55rem;line-height:1}.project-result-card span{margin-top:.35rem;color:#5f637d;font-size:.86rem;font-weight:700}.project-quote-card{position:relative}.project-quote-card blockquote{margin:0;color:#51546d;font-size:1.08rem;line-height:1.6;font-weight:600}.project-quote-card::before{content:"\"";display:block;margin-bottom:.4rem;color:#8c69ff;font-size:4rem;line-height:.8}.project-next-banner{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:1rem;padding:1.15rem 1.25rem;border-radius:1.55rem;background:#ffffff80;box-shadow:inset 0 0 0 1px #ffffff80,0 18px 34px #5f57a014}.project-next-copy{display:flex;align-items:center;gap:1rem}.project-next-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.project-next-actions .project-next-projects-primary{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;border-color:#0000}.project-next-actions .ghost-cta,.project-next-actions .projects-cta-button{min-width:12rem}.project-next-icon{display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1.4rem;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);box-shadow:0 14px 30px #685cbc33;flex:0 0 auto}.project-next-icon img{width:2rem;height:2rem;transform-origin:center;animation:about-heartbeat 1.1s ease-in-out infinite}.project-next-copy h2{margin:0;font-size:2rem;line-height:1.05}.project-next-copy p{margin:.35rem 0 0;color:#6a6d84}@media (max-width:1180px){.project-detail-hero{grid-template-columns:1fr}.project-detail-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-theme-portfolio .project-detail-meta-grid{grid-template-columns:1fr}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badges{--mini-runner-tech-gap:.95rem;padding-top:0;flex-wrap:wrap;justify-content:flex-start}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-lead{flex-wrap:wrap;padding-top:0}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-stack--browser-width{grid-column:1}.project-detail-content{grid-template-columns:1fr}.project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-content{margin-top:1rem}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-next-banner{flex-direction:column;align-items:stretch}.project-next-actions{width:100%}.project-next-actions .ghost-cta,.project-next-actions .projects-cta-button{width:100%}}@media (max-width:760px){.project-detail-main{padding:8.8rem .9rem .9rem}.project-detail-panel{padding:1.2rem 1rem 1rem;border-radius:1.5rem}.project-detail-title{font-size:clamp(3rem,15vw,4.35rem)}.project-detail-lead{font-size:1rem}.project-detail-actions{flex-direction:column}.project-detail-actions>*{width:100%}.project-detail-actions--with-carousel .project-detail-mini-carousel{min-width:0;max-width:none}.project-theme-portfolio[data-project-carousel="stacked"] .project-detail-actions--with-carousel .project-detail-mini-carousel{transform:none}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked{aspect-ratio:16 / 12}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-active{width:80%}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-secondary{width:62%}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-slide.is-tertiary{width:62%}.project-theme-portfolio[data-project-carousel="stacked"] .project-mini-carousel-frame--stacked .project-mini-carousel-controls{inset:auto 0 4.2rem}.project-browser-top{grid-template-columns:1fr}.project-browser-nav{justify-content:space-between}.project-browser-hero{grid-template-columns:1fr}.project-browser-strip{grid-template-columns:1fr}.project-detail-meta-grid{grid-template-columns:1fr}.project-theme-portfolio .project-detail-meta-stack{grid-template-columns:1fr}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badges{--mini-runner-tech-gap:.8rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-lead #project-play-action{width:100%}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-meta-stack--browser-width{grid-column:1;grid-template-columns:1fr}.project-feature-grid,.project-gallery,.project-results-grid{grid-template-columns:1fr}.project-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-next-copy{align-items:flex-start;flex-direction:column}.project-next-copy h2{font-size:1.45rem}}@media (max-width:1180px){.hero{grid-template-columns:1fr .86fr;padding:1.4rem 1.4rem 0}.code-panel{grid-column:1 / -1;padding-bottom:1.6rem}.code-window{width:min(100%,32rem)}.project-card,.project-card-featured{grid-column:span 6}.projects-showcase-intro{grid-template-columns:1fr}.projects-showcase-grid{grid-template-columns:1fr}.project-showcase-card{grid-template-columns:1fr}.projects-cta-banner{flex-direction:column;align-items:stretch}.projects-cta-actions{width:100%}.project-badge-code{right:19rem}.project-badge-terminal{right:7rem}}@media (max-width:760px){.topbar{flex-direction:column;align-items:flex-start;padding:.9rem 1rem}.hero{grid-template-columns:1fr;gap:1rem;padding:1rem 1rem 1rem}.hero-copy{padding:0}.hero-copy h1{font-size:clamp(2.4rem,12vw,3.45rem)}.hero-copy h2{font-size:clamp(1.7rem,8vw,2.2rem)}.hero-actions{flex-direction:column;margin-top:1.75rem}.primary-btn,.secondary-btn{width:100%}.portrait-stage{padding-top:0}.portrait-cutout{width:min(19rem,100%);max-height:32rem;transform:none;top:0}.code-panel{padding-bottom:1rem}.code-window{top:0}body{overflow:auto}.page-shell{height:auto;overflow:visible}.projects-main{padding:1.4rem 1rem 1.2rem}.projects-intro{margin-bottom:1.5rem}.projects-grid{grid-template-columns:1fr}.project-card,.project-card-featured{grid-column:auto}.projects-showcase-main{padding:8.8rem .9rem .9rem}.projects-copy,.projects-lead{min-width:0;max-width:100%}.projects-copy h1{white-space:normal;overflow-wrap:anywhere}.projects-showcase-panel{padding:1.2rem 1rem 1rem}.projects-copy h1{font-size:clamp(3rem,14vw,4.35rem)}.projects-filters{gap:.6rem}.filter-pill{width:100%;justify-content:center}.projects-cta-copy{align-items:flex-start;flex-direction:column}.projects-cta-copy h2{font-size:1.45rem}.project-badge-code{top:2.8rem;right:10rem}.project-badge-terminal{top:1.6rem;right:1.6rem}.project-badge-braces{top:5.3rem;right:.5rem}.project-dot-grid-right{right:.4rem;top:7.6rem}.project-dot-grid-left{left:-.4rem;top:13rem}}.contact-showcase-shell{overflow:auto;background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.contact-showcase-main{padding:6.6rem 1.2rem 1.2rem}.contact-showcase-panel{position:relative;width:min(100%,94rem);margin:0 auto;padding:2rem 2rem 1.5rem;overflow:hidden}.contact-ambient-lights{position:absolute;inset:0;pointer-events:none;overflow:hidden}.contact-ambient-lights::before{content:"";position:absolute;inset:6% 10% auto 6%;height:20rem;background:radial-gradient(circle at 18% 36%,#ffc6e838 0,#0000 34%),radial-gradient(circle at 72% 22%,#b0c2ff33 0,#0000 34%);filter:blur(44px);opacity:.72}.contact-ambient-lights::after{content:"";position:absolute;inset:auto 10% 8% 18%;height:14rem;background:radial-gradient(circle at 22% 54%,#ffffff29 0,#0000 22%),radial-gradient(circle at 64% 48%,#9fd5ff29 0,#0000 24%);filter:blur(48px);opacity:.6}.contact-sky-star,.contact-sky-shooting{pointer-events:none}.contact-sky-back{opacity:.34;filter:blur(.6px);animation-duration:5.6s}.contact-sky-mid{opacity:.56;filter:blur(.18px);animation-duration:4.4s}.contact-sky-front{opacity:.82;animation-duration:3.3s}.contact-sky-shooting{opacity:.55;filter:blur(.15px);animation-duration:12s}.contact-hero{position:relative;z-index:2;min-height:14rem}.contact-copy{max-width:38rem}.contact-copy h1{margin:0;font-size:clamp(4rem,9vw,6.4rem);line-height:.92;letter-spacing:-.06em;background:linear-gradient(90deg,#ff4eb6 0,var(--theme-purple-strong) 54%,var(--theme-blue-dark) 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.contact-lead{max-width:50rem;margin:1.5rem 0 1.5rem;color:#31334f;font-size:1.2rem;line-height:1.6}.contact-lead-nowrap{white-space:nowrap}.contact-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(19rem,.78fr);gap:1.5rem;align-items:start}.contact-panel{padding:1.4rem;border-radius:1.7rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff80,0 18px 34px #5f57a014}.contact-form-panel{min-height:auto;padding:1.2rem 1.25rem}.contact-panel-title{display:flex;align-items:center;gap:.9rem;margin-bottom:1.35rem}.contact-panel-title h2{margin:0;font-size:2rem;line-height:1.05}.contact-panel-title--compact{gap:.9rem;margin-bottom:1.35rem}.contact-panel-title--compact h2{font-size:2rem}.contact-panel--location .contact-reasons{transform:translateY(11px)}.contact-panel-icon{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:.95rem;background:linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%);color:#fff;font-size:1rem;line-height:1;box-shadow:0 12px 24px #7162c433;flex:0 0 auto}.contact-panel-icon--mail img{width:1.2rem;height:1.2rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-panel-icon--network img{width:1.2rem;height:1.2rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-panel-icon--star img{width:1.2rem;height:1.2rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-panel-icon--location img{width:1.2rem;height:1.2rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-form-page .contact-submit{min-width:18rem}.contact-submit-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.contact-form-panel .form-field textarea{min-height:8rem}.contact-honeypot{position:absolute;left:-100vw;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.contact-form-note{margin:0;color:#757991;font-family:"IBM Plex Mono",monospace;font-size:.82rem}.contact-form-note--with-icon{display:inline-flex;align-items:center;gap:.5rem}.contact-form-note--with-icon img{width:1rem;height:1rem;display:block;object-fit:contain;flex:0 0 auto}.contact-form-feedback{min-height:1.2rem;margin:0;color:#5d6279;font-family:"IBM Plex Mono",monospace;font-size:.8rem}.contact-form-feedback.is-success{color:#1f7a57}.contact-form-feedback.is-error{color:#b33b63}.contact-submit[disabled]{cursor:wait;opacity:.72;transform:none;box-shadow:0 14px 24px #49419324}.contact-success-dialog{width:min(100% - 2rem,28rem);padding:0;border:0;border-radius:1.6rem;background:#0000}.contact-success-dialog::backdrop{background:#12162a75;backdrop-filter:blur(10px)}.contact-success-dialog__content{display:grid;gap:1rem;padding:2rem;border-radius:1.6rem;background:linear-gradient(180deg,#fffffff5 0,#f4f5fffa 100%);box-shadow:inset 0 0 0 1px #ffffffb8,0 30px 60px #26294c2e}.contact-success-dialog__content h2{margin:0;color:#25273a;font-size:clamp(1.4rem,3vw,1.8rem)}.contact-success-dialog__content p{margin:0;color:#5f6481}.contact-success-dialog__button{justify-self:start;min-width:10rem;min-height:3.1rem;padding:0 1.35rem;border:0;border-radius:1rem;background:#25273a;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease;box-shadow:0 16px 28px #25273a2e}.contact-side-column{display:grid;gap:1rem}.contact-goodbye{display:inline-flex;align-items:center;justify-content:flex-end;gap:.75rem;margin:0;margin-left:auto;transform:translateY(20px);font-family:"Space Grotesk",sans-serif;font-size:2rem;font-weight:700;line-height:.9;letter-spacing:.02em}.contact-goodbye img{width:calc(2.1rem + 20px);height:calc(2.1rem + 20px);display:block;object-fit:contain;flex:0 0 auto}.contact-side-top-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch}.contact-side-top-row .contact-panel{height:100%}.contact-info-list{display:grid;gap:.7rem}.contact-info-item{display:flex;align-items:flex-start;gap:.9rem;padding:1rem 1.05rem;border-radius:1.1rem;background:#ffffff85;box-shadow:inset 0 0 0 1px #ffffff73}.contact-info-item p{margin:0;color:#444860;line-height:1.45}.contact-info-symbol{color:#9d6dff;font-size:1.4rem;line-height:1}.contact-social-grid{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.contact-social-grid a{display:inline-flex;align-items:center;justify-content:center;padding:0;background:#0000;box-shadow:none;min-height:auto;border-radius:0;text-decoration:none;transition:transform .2s ease,opacity .2s ease}.contact-social-grid a:hover,.contact-social-grid a:focus-visible{transform:translateY(-2px);box-shadow:none;outline:none;opacity:.88}.contact-social-link img{width:calc(2.1rem + 20px);height:calc(2.1rem + 20px);display:block;object-fit:contain}.contact-social-link[aria-label="GitHub"] img{width:calc(2rem + 35px);height:calc(2rem + 35px)}.contact-reasons{gap:.85rem}.contact-reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.contact-reasons--single{grid-template-columns:minmax(0,1fr)}.contact-reason-card{padding:1rem;border-radius:1.1rem;background:#ffffff85;box-shadow:inset 0 0 0 1px #ffffff73}.contact-reason-card--compact{padding:.65rem .85rem;background:#ffffffb8;box-shadow:inset 0 0 0 1px #ffffff9e,0 10px 22px #5f57a00a}.contact-reason-card--compact strong{font-size:.9rem;line-height:1.2}.contact-reason-card strong{display:block;color:#4a4e66;font-size:.94rem;line-height:1.45}@media (max-width:1180px){.contact-layout{grid-template-columns:1fr}.contact-side-top-row{grid-template-columns:1fr}.contact-reasons{grid-template-columns:1fr}}@media (max-width:760px){.contact-showcase-main{padding:8.8rem .9rem .9rem}.contact-showcase-panel{padding:1.2rem 1rem 1rem}.contact-copy h1{font-size:clamp(3.2rem,16vw,4.8rem)}.contact-lead{font-size:1rem}.contact-panel-title h2{font-size:1.6rem}.contact-side-top-row{grid-template-columns:1fr}}.about-shell{overflow:auto;background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.about-main{padding:6.6rem 1.2rem 1.2rem}.about-panel{position:relative;width:min(100%,95rem);margin:0 auto;padding:2rem 2rem 1.5rem;border-radius:0;overflow:visible;background:#0000;box-shadow:none}:root{}.about-ambient-lights{position:absolute;inset:0;pointer-events:none;overflow:hidden}.about-ambient-lights::before{content:"";position:absolute;inset:6% 10% auto 4%;height:18rem;background:radial-gradient(circle at 24% 42%,#ffc6e833 0,#0000 34%),radial-gradient(circle at 72% 26%,#adc1ff2e 0,#0000 36%);filter:blur(42px);opacity:.7}.about-ambient-lights::after{content:"";position:absolute;inset:auto 8% 8% 18%;height:12rem;background:radial-gradient(circle at 18% 48%,#ffffff2e 0,#0000 20%),radial-gradient(circle at 64% 52%,#a8d8ff24 0,#0000 24%);filter:blur(46px);opacity:.58}.about-sky-star,.about-sky-shooting{pointer-events:none}.about-sky-back{opacity:.34;filter:blur(.6px);animation-duration:5.6s}.about-sky-mid{opacity:.56;filter:blur(.18px);animation-duration:4.4s}.about-sky-front{opacity:.82;animation-duration:3.3s}.about-sky-shooting{opacity:.55;filter:blur(.15px);animation-duration:12s}.about-dot-grid-left{left:.3rem;top:12rem}.about-dot-grid-right{right:.8rem;top:2rem}.about-hero,.about-content-grid,.about-cta-banner{position:relative;z-index:2}.about-hero{z-index:3;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(24rem,.98fr);gap:1.4rem;align-items:start}.about-copy{display:flex;flex-direction:column;min-height:36rem;padding:.3rem .2rem 0 .2rem}.about-breadcrumb{margin-bottom:1.25rem}.about-copy h1{margin:0;font-size:clamp(4rem,7.8vw,5.9rem);line-height:.92;letter-spacing:-.06em}.about-copy h2{margin:.7rem 0 0;max-width:18ch;font-size:clamp(2.4rem,4.4vw,3.55rem);line-height:1.02}.about-lead{max-width:39rem;margin:auto 0;color:#31334f;font-size:1.16rem;line-height:1.62}.about-availability{margin:0 0 1.25rem}.about-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.about-card,.about-cta-banner{padding:1.25rem;border-radius:1.6rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff85,0 18px 34px #5f57a014}.about-card-full,.about-cta-banner{grid-column:1 / -1}.about-card-values{background:#0000;box-shadow:none;grid-row:1}.about-card-tech,.about-card-web,.about-card-distinguish{background:#0000;box-shadow:none}.about-card-web{grid-column:1;grid-row:2}.about-card-distinguish{grid-column:1 / -1;grid-row:3;margin-top:40px}.about-card-tech{grid-column:2;grid-row:2 / span 2;align-self:stretch}.about-card h3{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1.9rem;line-height:1.05;position:relative}.about-card h3::before{content:"";width:2.35rem;height:2.35rem;border-radius:.95rem;background:linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%);box-shadow:0 12px 24px #7162c433;flex:0 0 auto}.about-card-values h3::before{content:"";background:linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%)}.about-card-values h3::after{content:"";position:absolute;left:calc((2.35rem - (1.18rem + 3px)) / 2);top:50%;width:calc(1.18rem + 3px);height:calc(1.18rem + 3px);transform:translateY(-50%);background:url(assets/apporte.svg) center / contain no-repeat;filter:brightness(0) invert(1);pointer-events:none}.about-card-web h3::before{content:"";background:url(assets/code.svg) center / 1.38rem 1.38rem no-repeat,linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%)}.about-card-tech h3::before{content:"";background:url(assets/competences.svg) center / 1.15rem 1.15rem no-repeat,linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%)}.about-card-distinguish h3::before{content:"";background:url(assets/distingue.svg) center / calc(1.15rem + 6px) calc(1.15rem + 6px) no-repeat,linear-gradient(135deg,#ff7ac3eb 0,#6842c4eb 100%)}.about-card p{margin:0;color:#555871;line-height:1.62}.about-values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.about-value-card,.about-timeline-step,.about-tech-pill,.about-strength-card{border-radius:1.15rem;background:#ffffff9e;box-shadow:inset 0 0 0 1px #ffffff8c,0 12px 24px #5f57a00f}.about-value-card{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.85rem;padding:1rem}.about-value-icon{width:2rem;height:2rem;object-fit:contain;flex:0 0 auto}.about-value-icon-resolution{width:calc(2rem + 3px);height:calc(2rem + 3px)}.about-value-copy{min-width:0}.about-value-card strong,.about-timeline-step strong,.about-strength-card strong{display:block;color:#313551;font-size:1rem}.about-value-card p,.about-timeline-step p,.about-strength-card p{margin:.35rem 0 0;color:#676a82;font-size:.92rem;line-height:1.45}.about-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.about-timeline-step{display:grid;grid-template-columns:auto 1fr;gap:.8rem;padding:1rem}.about-timeline-number{display:inline-flex;align-items:center;justify-content:center;width:2.45rem;height:2.45rem;border-radius:50%;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700;box-shadow:0 14px 28px #6d61be29}.about-tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.about-tech-pill{display:flex;align-items:center;gap:.75rem;min-height:4.15rem;padding:.9rem}.about-tech-pill img{width:1.85rem;height:1.85rem;object-fit:contain;flex:0 0 auto}.about-tech-icon-swift{transform:translateX(5px)}.about-tech-icon-php{width:calc(1.85rem + 20px);height:calc(1.85rem + 20px)}.about-tech-pill strong{color:#30354f;font-size:.92rem;line-height:1.35}.about-tech-fallback{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;border-radius:.65rem;background:linear-gradient(135deg,#ff7ac329 0,#31328824 100%);color:#4d61ff;font-family:"IBM Plex Mono",monospace;font-size:.7rem;font-weight:700;flex:0 0 auto}.about-strengths-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;grid-auto-rows:1fr}.about-strength-card{min-height:7.25rem;padding:1rem}.about-strength-card-with-icon{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.85rem}.about-strength-icon{width:2rem;height:2rem;object-fit:contain;flex:0 0 auto}.about-strength-copy{min-width:0}.about-cta-banner{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:1rem;background:#ffffff57;box-shadow:inset 0 0 0 1px #ffffff6b,0 18px 34px #5f57a00d}.about-cta-copy{display:flex;align-items:center;gap:1rem}.about-cta-icon{display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1.35rem;background:linear-gradient(135deg,#ff7ac3 0,var(--theme-blue-dark) 100%);box-shadow:0 14px 30px #685cbc33;flex:0 0 auto}.about-cta-icon img{width:2rem;height:2rem;transform-origin:center;animation:about-heartbeat 1.1s ease-in-out infinite}.about-cta-copy h2{margin:0;font-size:2rem;line-height:1.05}.about-cta-copy p{margin:.35rem 0 0;color:#6a6d84}.about-cta-actions{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width:1180px){.about-hero{grid-template-columns:1fr}.about-copy{min-height:auto}.about-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-content-grid,.about-timeline,.about-strengths-grid{grid-template-columns:1fr}.about-card-web,.about-card-distinguish{grid-column:auto;grid-row:auto}.about-card-distinguish{margin-top:0}.about-card-values,.about-card-tech{grid-row:auto}.about-values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-cta-banner{flex-direction:column;align-items:stretch;margin-top:0}}@media (max-width:760px){.about-main{padding:8.8rem .9rem .9rem}.about-panel{padding:1.2rem 1rem 1rem;border-radius:0}.about-copy h1{font-size:clamp(3.1rem,15vw,4.4rem)}.about-copy h2{font-size:clamp(1.95rem,9vw,2.8rem)}.about-lead{margin:1.25rem 0 0;font-size:1rem}.about-values-grid,.about-tech-grid,.about-strengths-grid{grid-template-columns:1fr}.about-cta-copy{align-items:flex-start;flex-direction:column}.about-cta-copy h2{font-size:1.45rem}.about-cta-actions{flex-direction:column}.about-cta-actions>*{width:100%}}.home2-shell{overflow:auto;background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.topbar-home2{position:fixed;top:0;left:0;right:0;z-index:30;padding:1.2rem 1.5rem;background:#0000;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0;box-shadow:none;pointer-events:none}.topbar-home2::after{content:"";display:none;position:absolute;left:0;right:0;bottom:-.18rem;height:.55rem;background:#0000;pointer-events:none}.topbar-home2>*{pointer-events:auto}.brand-mark{display:inline-flex;align-items:center;gap:.8rem;color:#171723;text-decoration:none;font-weight:800}.brand-mark-icon{display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 2.8rem;width:2.8rem;height:2.8rem;--brand-logo-extra:40px}.brand-mark-icon::before{content:"";position:absolute;top:50%;left:50%;width:calc(100% + var(--brand-logo-extra));height:calc(100% + var(--brand-logo-extra));background:var(--logo-gradient);transform:translate(-50%,-50%);mask:url(assets/evadauphin-logo.png) center / contain no-repeat;-webkit-mask:url(assets/evadauphin-logo.png) center / contain no-repeat;pointer-events:none}.brand-mark-icon img{position:absolute;top:50%;left:50%;width:calc(100% + 40px);height:calc(100% + 40px);display:block;object-fit:contain;opacity:0;transform:translate(-50%,-50%)}.brand-mark-text{font-size:1.1rem}.brand-mark-copy{display:inline-flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.14rem;transform:translateX(10px)}.header-availability-pill{display:inline-flex;align-items:center;gap:.32rem;width:fit-content;max-width:100%;padding:.18rem .48rem;border-radius:999px;background:#0000;color:#188957;font-family:"IBM Plex Mono",monospace;font-size:calc(.58rem + 2px);font-weight:800;line-height:1;white-space:nowrap;box-shadow:none}.header-availability-text{display:inline-block;position:relative;isolation:isolate;background:linear-gradient(92deg,#5b4dff 0,#9b48df 46%,#ff3f96 100%);-webkit-background-clip:text;background-clip:text;color:#0000;-webkit-text-fill-color:#0000}.header-availability-pill .availability-dot{display:inline-block;flex:0 0 auto;width:calc(.34rem + 2px);height:calc(.34rem + 2px);box-shadow:0 0 0 .18rem #50d18d24}.availability-liquid-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}@supports ((filter:url(#availability-liquid-wave-filter)) and ((-webkit-mask-image:linear-gradient(90deg,#0000,#000)) or (mask-image:linear-gradient(90deg,#0000,#000)))){.header-availability-text::after{content:attr(data-text);position:absolute;inset:0;z-index:1;display:inline-block;background:linear-gradient(92deg,#5b4dff 0,#9b48df 46%,#ff3f96 100%);-webkit-background-clip:text;background-clip:text;color:#0000;-webkit-text-fill-color:#0000;filter:url(#availability-liquid-wave-filter);opacity:0;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 30%,#000 70%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 30%,#000 70%,#0000 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:42% 150%;mask-size:42% 150%;-webkit-mask-position:-55% 50%;mask-position:-55% 50%;animation:availability-liquid-wave-pass 4s linear infinite;will-change:opacity,mask-position,-webkit-mask-position}}.nav-home2{position:relative;display:grid;place-items:center;align-self:stretch;width:clamp(31rem,44vw,40rem);min-height:5.1rem;margin-block:-1.1rem;padding:.92rem 1.15rem;overflow:visible;isolation:isolate;gap:0;background:#0000;backdrop-filter:none;-webkit-backdrop-filter:none;--nav-active-center:50%;--nav-active-duration:660ms;--nav-active-easing:cubic-bezier(.19,1,.22,1);--nav-liquid-width:9.5rem}.ln-k{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:clamp(.1rem,.7vw,.42rem);width:100%;min-width:0}.nav-home2 a{position:relative;z-index:1;height:100%;min-width:auto;min-height:2.7rem;padding:0 clamp(.72rem,1vw,1.05rem);border-radius:0;color:var(--header-blue-night);font-size:clamp(.76rem,.84vw,.95rem);transition:color 180ms ease,transform 180ms ease}.nav-home2 a:hover{color:#fff}.nav-home2 a:focus{outline:none}.nav-home2 a:focus-visible{outline:2px solid #4c5dff6b;outline-offset:.16rem}.nav-home2 a.active{color:#4c5dff}.topbar-home2-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.topbar-home2-actions .download-btn{order:1}.topbar-home2-actions .theme-toggle-switch{order:2}.theme-toggle-switch{position:relative;width:var(--theme-toggle-width);height:var(--theme-toggle-height);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:0 .25rem;border-radius:999px;background:#0000;box-shadow:none;backdrop-filter:none;transition:transform 180ms ease;--theme-toggle-time:200ms linear;--theme-toggle-light-ink:var(--theme-blue-dark);--theme-toggle-dark-ink:#f5f7ff}.theme-toggle-switch:hover{transform:translateY(-1px)}.theme-toggle-switch.is-dark{background:#0000;box-shadow:none}.theme-toggle-input{position:absolute;inset:0;z-index:5;margin:0;opacity:0;cursor:pointer}.theme-toggle-input:focus-visible + .theme-toggle-graphic{outline:2px solid #ffffffd9;outline-offset:.25rem;border-radius:999px}.theme-toggle-graphic{width:auto;height:calc(var(--theme-toggle-height) - .5rem);max-width:100%;overflow:visible}.theme-toggle-switch .sun,.theme-toggle-switch .moon,.theme-toggle-switch .beams{fill:none;stroke-width:6;stroke-miterlimit:10}.theme-toggle-switch .moon{transform:translateX(0);stroke:#3132888a;transition:transform var(--theme-toggle-time),stroke var(--theme-toggle-time)}.theme-toggle-switch .theme-toggle-input:checked + .theme-toggle-graphic .moon,.theme-toggle-switch.is-dark .moon{transform:translateX(12px);stroke:var(--theme-toggle-dark-ink)}.theme-toggle-switch .moonmask{transform:translateX(0);transition:transform var(--theme-toggle-time)}.theme-toggle-switch .theme-toggle-input:checked + .theme-toggle-graphic .moonmask,.theme-toggle-switch.is-dark .moonmask{transform:translateX(-12px)}.theme-toggle-switch .sunmask{transform:translateX(0);transition:transform var(--theme-toggle-time)}.theme-toggle-switch .theme-toggle-input:checked + .theme-toggle-graphic .sunmask,.theme-toggle-switch.is-dark .sunmask{transform:translateX(12px)}.theme-toggle-switch .beams{stroke:var(--theme-toggle-light-ink);stroke-dasharray:10px;stroke-dashoffset:0;transition:stroke-dashoffset var(--theme-toggle-time),stroke var(--theme-toggle-time)}.theme-toggle-switch .theme-toggle-input:checked + .theme-toggle-graphic .beams,.theme-toggle-switch.is-dark .beams{stroke:var(--theme-toggle-dark-ink);stroke-dashoffset:10px}.theme-toggle-switch .sun{stroke:var(--theme-toggle-light-ink);transition:stroke var(--theme-toggle-time)}.theme-toggle-switch .theme-toggle-input:checked + .theme-toggle-graphic .sun,.theme-toggle-switch.is-dark .sun{stroke:var(--theme-toggle-dark-ink)}.download-btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.35rem;border-radius:999px;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700;box-shadow:0 14px 30px #5c63a42e;transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}.home2-main{padding:6.4rem 1.2rem 1.2rem}@media (min-width:1024px){.home2-shell-single{overflow:hidden}.home2-shell-single .home2-main{height:100%;min-height:0;padding:5.9rem 1.2rem 0;overflow:hidden}.home2-shell-single .showcase-panel{height:100%;min-height:0}.home2-shell-single .showcase-hero{min-height:calc(100dvh - 5.9rem);padding-top:1.15rem;overflow:hidden}.home2-shell-single .showcase-metrics{transform:translateY(3.2rem)}.home2-shell-single .showcase-visual{padding-top:.3rem}.home2-shell-single .orb-large{bottom:4rem}.home2-shell-single .showcase-portrait-wrap{transform:translateY(1.65rem) scale(1)}.home2-shell-single .visual-note{bottom:2rem}}@media (min-width:1024px) and (max-height:900px){.home2-shell-single .home2-main{padding-top:5.55rem}.home2-shell-single .showcase-hero{min-height:calc(100dvh - 5.55rem);padding-top:.8rem}.home2-shell-single .showcase-metrics{transform:translateY(2.7rem)}.home2-shell-single .showcase-visual{padding-top:0}.home2-shell-single .orb-large{bottom:4.4rem}.home2-shell-single .showcase-portrait-wrap{transform:translateY(1.65rem) scale(1)}.home2-shell-single .visual-note{bottom:2.4rem}}@media (min-width:1024px) and (max-height:820px){.home2-shell-single .home2-main{padding-top:5.35rem}.home2-shell-single .showcase-hero{min-height:calc(100dvh - 5.35rem);padding-top:.45rem}.home2-shell-single .showcase-metrics{transform:translateY(2.35rem)}.home2-shell-single .orb-large{bottom:4.8rem}.home2-shell-single .showcase-portrait-wrap{transform:translateY(1.65rem) scale(1)}.home2-shell-single .visual-note{bottom:2.7rem}}.showcase-panel{width:min(100%,94rem);margin:0 auto;position:relative;overflow:visible}.ambient-lights{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ambient-lights::before{content:"";position:absolute;inset:6% 10% auto 6%;height:20rem;background:radial-gradient(circle at 18% 36%,#ffc6e838 0,#0000 34%),radial-gradient(circle at 72% 22%,#b0c2ff33 0,#0000 34%);filter:blur(44px);opacity:.72}.ambient-lights::after{content:"";position:absolute;inset:auto 10% 8% 18%;height:14rem;background:radial-gradient(circle at 22% 54%,#ffffff29 0,#0000 22%),radial-gradient(circle at 64% 48%,#9fd5ff29 0,#0000 24%);filter:blur(48px);opacity:.6}.home-sky-star,.home-sky-shooting{pointer-events:none}.home-sky-back{opacity:.34;filter:blur(.6px);animation-duration:5.6s}.home-sky-mid{opacity:.56;filter:blur(.18px);animation-duration:4.4s}.home-sky-front{opacity:.82;animation-duration:3.3s}.home-sky-shooting{opacity:.55;filter:blur(.15px);animation-duration:12s}.spark,.shooting-star-home{position:absolute;pointer-events:none}.shooting-star-home{top:15.8rem;right:19rem;z-index:1;width:10rem;height:.14rem;border-radius:999px;opacity:0;background:linear-gradient(90deg,#fff 0,#ffffffeb 12%,#c2e0ff99 42%,#c2e0ff2e 72%,#0000 100%);box-shadow:0 0 10px #ffffffeb,0 0 20px #a6cdff75;transform:translate3d(0,0,0) rotate(-8deg) scaleX(.45);transform-origin:left center;will-change:transform,opacity;animation:home-shooting-star 10s linear infinite}.shooting-star-home::before,.shooting-star-home::after{content:"";position:absolute;top:50%;left:0;border-radius:50%;transform:translate(-50%,-50%)}.shooting-star-home::before{width:.42rem;height:.42rem;background:#fff;box-shadow:0 0 12px #fffffffa,0 0 22px #bddfff8a}.shooting-star-home::after{width:1.2rem;height:1.2rem;background:radial-gradient(circle,#ffffff7a 0,#ffffff2e 38%,#0000 72%)}.spark{width:.42rem;height:.42rem;border-radius:50%;background:#fffffff2;box-shadow:0 0 10px #ffffffe6,0 0 24px #b5ceff8c;animation:twinkle 3.2s ease-in-out infinite}.spark::before,.spark::after{content:"";position:absolute;left:50%;top:50%;background:#ffffffd1;transform:translate(-50%,-50%);border-radius:999px}.spark::before{width:1.25rem;height:1px;animation:sparkle-ray 3.2s ease-in-out infinite}.spark::after{width:1px;height:1.25rem;animation:sparkle-ray 3.2s ease-in-out infinite}.spark-one{top:6.5rem;left:47%;animation-delay:0s}.spark-two{top:10rem;right:16%;transform:scale(.9);animation-delay:1.2s}.spark-three{top:17rem;left:60%;transform:scale(.72);animation-delay:2.1s}.spark-four{top:30rem;left:52%;transform:scale(.8);animation-delay:.7s}.spark-five{right:7%;bottom:14rem;transform:scale(.68);animation-delay:2.8s}.spark-six{left:10%;bottom:11rem;transform:scale(.64);animation-delay:1.7s}.spark-left-large{top:5.9rem;left:6.4rem;transform:scale(1.06);animation-delay:.35s}.spark-left-medium{top:7.3rem;left:9.7rem;transform:scale(.74);animation-delay:1.4s}.spark-mini{width:.2rem;height:.2rem;box-shadow:0 0 6px #ffffffd1,0 0 14px #b5ceff57}.spark-mini::before{width:.55rem}.spark-mini::after{height:.55rem}.spark-mini-one{top:4.8rem;left:28%;transform:scale(.55);animation-delay:.4s}.spark-mini-two{top:8.2rem;left:63%;transform:scale(.42);animation-delay:1.5s}.spark-mini-three{top:13.8rem;right:27%;transform:scale(.48);animation-delay:2.4s}.spark-mini-four{top:21.5rem;left:41%;transform:scale(.35);animation-delay:.9s}.spark-mini-five{top:26.8rem;right:10%;transform:scale(.52);animation-delay:2s}.spark-mini-six{bottom:12.5rem;left:19%;transform:scale(.3);animation-delay:1.1s}.spark-mini-seven{bottom:8.6rem;left:46%;transform:scale(.45);animation-delay:2.8s}.spark-mini-eight{bottom:5.4rem;right:31%;transform:scale(.38);animation-delay:.2s}.spark-left-small{top:8.6rem;left:7.8rem;transform:scale(.48);animation-delay:2.2s}.spark-large{width:.72rem;height:.72rem;box-shadow:0 0 14px #fffffff5,0 0 30px #c7dfff9e,0 0 54px #8eb0ff42}.spark-large::before{width:2.1rem}.spark-large::after{height:2.1rem}.spark-large-one{top:5.6rem;right:4.6rem;animation-delay:.6s}.showcase-hero{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(20rem,.9fr);gap:1.4rem;min-height:43rem;padding:2.35rem 2.35rem 0;overflow:visible}.showcase-copy{position:relative;z-index:4;display:flex;flex-direction:column;justify-content:center;padding:1rem 1rem 1rem .4rem}.availability-pill{display:inline-flex;align-items:center;gap:.65rem;width:fit-content;margin:0 0 2rem;padding:.75rem 1rem;border-radius:999px;background:#ffffff94;color:#47475d;font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:600;box-shadow:0 12px 30px #6c65ac14}.showcase-copy>.availability-pill{transform:translateY(-4.18rem);margin-bottom:.1rem}.availability-dot{width:.55rem;height:.55rem;border-radius:50%;background:#50d18d;box-shadow:0 0 0 .3rem #50d18d29;animation:availability-pulse 1.8s ease-in-out infinite}.showcase-copy h1{margin:0;max-width:13ch;font-size:clamp(3.8rem,8vw,6rem);line-height:.9;letter-spacing:-.05em;transform:translateY(-.7rem)}.showcase-copy h1 span{display:block;margin-top:.45rem;background:linear-gradient(90deg,#ff4eb6 0,var(--theme-purple-strong) 52%,var(--theme-blue-dark) 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.showcase-lead{max-width:34rem;margin:1rem 0 0;color:#31334f;font-size:1.2rem;line-height:1.65}.showcase-actions{display:flex;gap:1rem;margin-top:3.35rem;flex-wrap:wrap}.gradient-cta,.ghost-cta{display:inline-flex;align-items:center;justify-content:center;min-width:12rem;min-height:3.7rem;padding:0 1.6rem;border-radius:1.2rem;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.9rem;font-weight:700;box-shadow:0 18px 34px #695aba29;transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}.gradient-cta{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff}.ghost-cta{background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);border:1px solid var(--portfolio-cta-night-border)}.showcase-metrics{display:flex;align-items:center;justify-content:space-between;gap:clamp(.4rem,.9vw,.9rem);margin-top:2.15rem;transform:translateY(2.3rem)}.metric-card{padding:1.05rem 1.1rem;border-radius:1.25rem;background:#ffffff80;box-shadow:inset 0 0 0 1px #ffffff73,0 16px 30px #6c67be14}.showcase-logo{--showcase-logo-width:3.35rem;--showcase-logo-height:3.35rem;display:flex;align-items:center;justify-content:center;flex:0 0 var(--showcase-logo-slot,4.15rem);width:var(--showcase-logo-slot,4.15rem);min-height:5.45rem}.showcase-logo img{display:block;width:var(--showcase-logo-width);height:var(--showcase-logo-height);max-width:100%;max-height:100%;object-fit:contain}.showcase-logo-html{--showcase-logo-width:3.8rem;--showcase-logo-height:3.8rem}.showcase-logo-css,.showcase-logo-javascript,.showcase-logo-typescript,.showcase-logo-git{--showcase-logo-width:3.65rem;--showcase-logo-height:3.65rem}.showcase-logo-php{--showcase-logo-width:4.5rem;--showcase-logo-height:2.55rem}.showcase-logo-node,.showcase-logo-react{--showcase-logo-width:3.7rem;--showcase-logo-height:3.7rem}.showcase-logo-slot-react{--showcase-logo-slot:4.55rem}.showcase-logo-slot-mysql{--showcase-logo-slot:7.55rem}.showcase-logo-mysql{--showcase-logo-width:7.35rem;--showcase-logo-height:3.6rem}.showcase-logo-swift{--showcase-logo-width:4.05rem;--showcase-logo-height:4.05rem}.metric-card strong{display:block;font-size:1.8rem}.metric-card span{display:block;margin-top:.25rem;color:#595b72;font-size:.92rem;line-height:1.45}.showcase-visual{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;min-height:100%;padding:2rem 0 0}.orb{position:absolute;border-radius:50%;pointer-events:none}.orb-large{width:min(49rem,95%);aspect-ratio:1;bottom:3rem;transform:rotate(-45deg);transform-origin:center;background:radial-gradient(circle at 32% 26%,#ffffff8c,#0000 24%),radial-gradient(circle at 52% 48%,#d69aff4d,#0000 42%),linear-gradient(180deg,#cb91ffb8 0,#8585ff8f 46%,#62a3ff6b 100%);box-shadow:0 0 0 1px #ffffff29,0 0 80px #9886ff29;filter:blur(.1px) saturate(1.18)}.showcase-portrait-wrap{position:relative;z-index:2;width:min(60rem,100%);transform:translateY(1.65rem) scale(1);transform-origin:center bottom}.showcase-portrait{position:relative;z-index:2;width:100%;height:auto;max-height:47rem;object-fit:contain;filter:contrast(1.1) saturate(1.04) brightness(1.08) drop-shadow(0 18px 28px #4340801f)}.showcase-portrait-reflection{position:absolute;z-index:1;left:0;top:100%;width:100%;height:auto;max-height:47rem;object-fit:contain;transform:scaleY(-1);transform-origin:top center;opacity:.14;filter:contrast(1.1) saturate(1.04) brightness(1.08) blur(2px);mask-image:linear-gradient(180deg,#0000008c 0,#00000024 38%,#0000 78%);-webkit-mask-image:linear-gradient(180deg,#0000008c 0,#00000024 38%,#0000 78%);pointer-events:none}.floating-badge{position:absolute;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:5.3rem;height:5.3rem;border-radius:1.5rem;background:#ffffff38;backdrop-filter:blur(16px);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:1.6rem;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff38}.badge-code{top:9rem;left:1.2rem}.badge-terminal{top:11rem;right:1rem;width:4.5rem;height:4.5rem;font-size:1.35rem;background:linear-gradient(180deg,#ff78ca8f 0,rgba(var(--theme-blue-dark-rgb),.44) 100%)}.badge-braces{top:22.1rem;right:4.6rem;width:4rem;height:4rem;font-size:1.05rem}.visual-note{position:absolute;right:.5rem;bottom:1.15rem;z-index:4;width:min(27rem,90%);padding:1.35rem 1.4rem;border-radius:1.45rem;background:#fffffff5;backdrop-filter:blur(18px);color:#161a2c;box-shadow:inset 0 0 0 1px #161a2c14,0 22px 42px #373f7f1f}.visual-note-title{margin:0 0 .4rem;font-weight:700;font-size:.98rem}.visual-note p{margin:0;font-size:.82rem;line-height:1.22}.visual-note-window{--visual-note-control-offset:calc(.5rem + 5px);overflow:hidden;transition:width 220ms ease,transform 220ms ease,background 220ms ease,box-shadow 220ms ease}.visual-note-window .window-top{position:static;padding:1.55rem .88rem .72rem;border-bottom:1px solid #161a2c14}.visual-note-window .window-controls{position:absolute;top:var(--visual-note-control-offset);left:var(--visual-note-control-offset);z-index:2}.visual-note-window .file-name{display:block;color:#161a2ccc;font-size:.92rem;line-height:1;letter-spacing:.015em}.window-action-icons{display:none;margin-left:auto;align-items:center;gap:.45rem}.window-action-button{width:1.15rem;height:1.15rem;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;border:0;border-radius:.2rem;background-color:#0000;cursor:pointer;opacity:.72;transition:opacity 180ms ease,transform 180ms ease,box-shadow 180ms ease}.window-action-button-icon{width:100%;height:100%;display:block}.window-action-button-stop{width:calc(1rem + 3px);height:calc(1rem + 3px);margin-right:6px}.window-action-button-stop .window-action-button-icon{filter:brightness(0) saturate(100%) invert(47%) sepia(53%) saturate(942%) hue-rotate(307deg) brightness(95%) contrast(91%)}.window-action-button-run{width:calc(1rem + 2px);height:calc(1rem + 2px)}.window-action-button-run .window-action-button-icon{filter:brightness(0) saturate(100%) invert(52%) sepia(30%) saturate(885%) hue-rotate(86deg) brightness(92%) contrast(90%)}.note-body{padding:1rem 1.4rem 1.35rem}.visual-note-window .window-body,.visual-note-window .window-status{display:none}.visual-note-window .window-status{padding:.62rem .72rem .68rem;font-size:.7rem;line-height:1.3;white-space:normal;color:#161a2c}.visual-note-window.is-expanded{width:min(100%,27rem);max-width:min(100%,calc(100vw - 2rem));height:auto;min-height:18.2rem;max-height:min(40rem,calc(100dvh - 5.5rem));display:flex;flex-direction:column;padding:0;background:#fffffffa;box-shadow:inset 0 0 0 1px #161a2c14,0 22px 42px #373f7f1f;backdrop-filter:blur(18px);color:#161a2c}.visual-note-window.is-expanded .note-body,.visual-note-window.is-expanded .window-status{display:none}.visual-note-window.is-expanded .window-body{display:block;padding:.82rem 1rem .9rem;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--view-scrollbar-thumb) var(--view-scrollbar-track)}.window-panel-project{display:none;min-width:0}.visual-note-window.is-project-view .window-panel-code{display:none}.visual-note-window.is-project-view .window-panel-project{display:grid;position:relative;gap:0;min-width:0}.visual-note-window.is-expanded.is-project-view .window-body{padding:.48rem .5rem .55rem}.visual-note-window.is-expanded.is-project-view{width:min(100%,52rem);max-width:min(52rem,calc(100vw - 2rem))}.visual-note-window.is-expanded .window-top{border-bottom:1px solid #161a2c14}.visual-note-window.is-expanded code{font-size:.64rem;line-height:1.04;color:#161a2c}.visual-note-window.is-expanded .line{white-space:pre-wrap;word-break:normal}.visual-note-window.is-expanded .file-name{color:#161a2ccc}.visual-note-window.is-expanded .window-action-icons{display:inline-flex}.visual-note-window.is-expanded .code-keyword{color:#8f2f59}.visual-note-window.is-expanded .code-type{color:#4930a8}.visual-note-window.is-expanded .code-string{color:#0d6b35}.eva-run-embed-head{position:absolute;top:.42rem;right:.42rem;z-index:2}.eva-run-embed-kicker{margin:0 0 .22rem;color:#8f2f59;font-family:"IBM Plex Mono",monospace;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.eva-run-embed-title{margin:0;font-size:1.18rem;line-height:1}.eva-run-embed-link{display:inline-flex;align-items:center;justify-content:center;padding:.34rem .56rem;border-radius:999px;background:#ffffffd1;box-shadow:inset 0 0 0 1px #161a2c14,0 10px 18px #373f7f1a;color:#4d61ff;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.58rem;font-weight:700;letter-spacing:.04em}.eva-run-embed-link:hover,.eva-run-embed-link:focus-visible{text-decoration:underline}.eva-run-embed-frame{display:block;width:100%;height:clamp(20rem,56vh,31rem);min-height:0;max-height:calc(100dvh - 9rem);border:0;border-radius:0;background:#0000;box-shadow:none}.eva-run-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem}.eva-run-kicker,.eva-run-score-item span,.eva-run-instructions,.eva-run-overlay-button{font-family:"IBM Plex Mono",monospace}.eva-run-kicker{margin:0 0 .25rem;color:#8f2f59;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.eva-run-title{margin:0;font-size:1.18rem;line-height:1}.eva-run-scoreboard{display:flex;gap:.55rem}.eva-run-score-item{min-width:3.8rem;margin:0;padding:.48rem .58rem .42rem;border-radius:.9rem;background:#161a2c0a;box-shadow:inset 0 0 0 1px #161a2c14;text-align:center}.eva-run-score-item span{display:block;margin-bottom:.22rem;color:#161a2c8c;font-size:.55rem;letter-spacing:.07em;text-transform:uppercase}.eva-run-score-item strong{font-size:1.02rem;line-height:1}.eva-run-instructions{margin:0;color:#161a2cb8;font-size:.64rem;line-height:1.4}.eva-run-game{position:relative;overflow:hidden;min-height:13.4rem;padding:0;border:0;border-radius:1.2rem;background:radial-gradient(circle at top left,#ffd8e8f5,#0000 34%),radial-gradient(circle at top right,#b4beff66,#0000 28%),linear-gradient(180deg,#fff6fafa,#e8effffa);box-shadow:inset 0 0 0 1px #4930a814,0 16px 28px #4930a814;cursor:pointer;user-select:none}.eva-run-game:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #4930a814,0 0 0 3px #4930a82e,0 16px 28px #4930a814}.eva-run-parallax{position:absolute;inset:0}.eva-run-sun,.eva-run-cloud{position:absolute}.eva-run-sun{top:1rem;right:1.2rem;width:2.1rem;height:2.1rem;border-radius:50%;background:radial-gradient(circle,#fffffffa 0 28%,#ffe8a4fa 32%,#ffe8a433 70%,#0000 72%);box-shadow:0 0 32px #ffd66659}.eva-run-cloud{height:1rem;border-radius:999px;background:#ffffffb8;filter:blur(.2px)}.eva-run-cloud::before,.eva-run-cloud::after{content:"";position:absolute;bottom:.15rem;border-radius:50%;background:inherit}.eva-run-cloud::before{left:.35rem;width:.95rem;height:.95rem}.eva-run-cloud::after{right:.3rem;width:1.08rem;height:1.08rem}.eva-run-cloud-one{top:1.7rem;left:2rem;width:3rem}.eva-run-cloud-two{top:3.1rem;right:4.8rem;width:2.55rem}.eva-run-track{position:absolute;inset:auto 0 0;height:100%}.eva-run-lane{position:absolute;right:0;bottom:0;left:0;height:3.35rem;background:linear-gradient(180deg,#5f65b224,#4e5ca03d),repeating-linear-gradient(90deg,#ffffff70 0 14px,#0000 14px 30px);box-shadow:inset 0 1px 0 #ffffff80,0 -12px 24px #545dad1f}.eva-run-lane::before{content:"";position:absolute;right:0;bottom:.6rem;left:0;height:.2rem;background:#4930a824}.eva-run-runner,.eva-run-obstacle{position:absolute;will-change:transform}.eva-run-runner{bottom:3.35rem;left:0;width:1.6rem;height:2.6rem}.eva-run-runner-head,.eva-run-runner-body,.eva-run-runner-leg{position:absolute;display:block}.eva-run-runner-head{top:0;left:.48rem;width:.68rem;height:.68rem;border-radius:50%;background:#ffb88f;box-shadow:0 2px 0 #4930a814}.eva-run-runner-body{top:.62rem;left:.38rem;width:.92rem;height:1.08rem;border-radius:.45rem .45rem .25rem .25rem;background:linear-gradient(180deg,#5e67d8,#7a48d7)}.eva-run-runner-leg{bottom:0;width:.24rem;height:1rem;border-radius:999px;background:#343b66;transform-origin:top center}.eva-run-runner-leg-left{left:.52rem;transform:rotate(14deg)}.eva-run-runner-leg-right{right:.5rem;transform:rotate(-16deg)}.eva-run-obstacle{left:0;width:1.3rem;height:2rem;border-radius:.75rem .75rem .4rem .4rem}.eva-run-obstacle-core{position:absolute;inset:0;display:block;border-radius:inherit;background:linear-gradient(180deg,#ff7da2,#ff5c7d 68%,#ef4e6d),linear-gradient(90deg,#ffffff57,#0000);box-shadow:inset 0 0 0 1px #ffffff52,0 8px 16px #ef4e6d3d}.eva-run-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;gap:.65rem;padding:1rem;background:#f6f8ffb8;backdrop-filter:blur(6px);text-align:center}.eva-run-overlay[hidden]{display:none}.eva-run-overlay-title,.eva-run-overlay-text{margin:0}.eva-run-overlay-title{font-size:1.02rem;font-weight:700}.eva-run-overlay-text{max-width:15rem;color:#161a2cb8;font-size:.74rem;line-height:1.45}.eva-run-overlay-button{padding:.62rem .92rem;border:0;border-radius:999px;background:linear-gradient(135deg,#5e67d8,#8f2f59);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 20px #5e67d83d}.visual-note-window.is-expanded .window-body::-webkit-scrollbar{width:.45rem}.visual-note-window.is-expanded .window-body::-webkit-scrollbar-track{background:var(--view-scrollbar-track);border-radius:999px}.visual-note-window.is-expanded .window-body::-webkit-scrollbar-thumb{border:2px solid var(--view-scrollbar-border);background:var(--view-title-gradient);background-clip:padding-box;border-radius:999px}.visual-note-window.is-closed{padding:.5rem .5rem;height:7.4rem;min-height:7.4rem;transform:scale(.97);opacity:.92}.visual-note-window.is-closed .note-body,.visual-note-window.is-closed .window-body{display:none}.visual-note-window.is-closed .window-status{display:block;height:calc(7.4rem - 2.65rem);overflow:hidden}.showcase-divider{display:none}.content-grid{position:relative;z-index:4;display:grid;gap:1.8rem;padding:0 2.35rem 2.2rem}.content-block{padding:0}.projects-block{grid-column:1 / -1;scroll-margin-top:7.6rem;padding:1.7rem;border-radius:1.8rem;margin-top:1.45rem;background:radial-gradient(circle at 12% 12%,#ffcbe6eb,#0000 28%),radial-gradient(circle at 88% 18%,#6a84ff6b,#0000 26%),linear-gradient(120deg,#fff0f6eb,#ecd7ffe6 52%,#cad5fff0);box-shadow:inset 0 0 0 1px #ffffff6b,0 18px 36px #5f57a01a}.skills-block{grid-column:1 / -1;scroll-margin-top:7.6rem}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.section-heading h2{margin:.25rem 0 0;font-size:2rem}.section-heading a,.preview-copy a,.contact-line a,.social-pills a{color:#4d61ff;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-weight:700}.section-kicker{margin:0;color:#ff69c1;font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.project-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.preview-card{display:grid;gap:1rem;padding:1rem;border-radius:1.4rem;background:#ffffffa8;box-shadow:inset 0 0 0 1px #ffffff8f,0 16px 34px #5f57a01a}.preview-media{display:flex;align-items:flex-end;min-height:10.8rem;padding:1rem;border-radius:1.2rem;color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.88rem;font-weight:600}.preview-media-purple{background:radial-gradient(circle at 75% 28%,rgba(var(--theme-blue-dark-rgb),.42),#0000 20%),linear-gradient(135deg,#141438 0,#2a2780 52%,var(--theme-blue-dark) 100%)}.preview-media-ecommerce{min-height:16rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/e-commerce2-1600.webp);background-size:cover;background-position:center top;background-repeat:no-repeat}.preview-media-light{color:#16203f;background:radial-gradient(circle at 72% 34%,#718fff3d,#0000 20%),linear-gradient(135deg,#fff 0,#e9f1ff 100%)}.preview-media-dashboard{min-height:16rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/dashboard-1600.webp);background-size:cover;background-position:center top;background-repeat:no-repeat}.preview-media-dark{background:radial-gradient(circle at 78% 26%,#ffc16f6b,#0000 18%),linear-gradient(135deg,#090b14 0,#1e2028 56%,#3d413b 100%)}.preview-media-stock{min-height:16rem;border:1px solid #000;background:linear-gradient(#ffffff05,#ffffff05),url(assets/gestion-stocks-1600.webp);background-size:cover;background-position:center top;background-repeat:no-repeat}.preview-copy h3{margin:0;font-size:1.45rem}.preview-copy p{margin:.6rem 0 0;color:#53566f;line-height:1.55}.stack-pill{display:inline-flex;width:fit-content;margin-top:.8rem;padding:.42rem .7rem;border-radius:999px;background:#ff4eb629;color:#ff4eb6;font-family:"IBM Plex Mono",monospace;font-size:.75rem;font-weight:700}.preview-copy a{display:inline-flex;margin-top:1rem}.skills-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.95rem}.skill-tile{padding:1rem;border-radius:1.3rem;background:#ffffff94;text-align:center;box-shadow:inset 0 0 0 1px #ffffff75,0 14px 30px #5f57a00f}.skill-tile strong{display:block;font-size:1rem}.skill-tile span{display:block;margin-top:.35rem;color:#66697e;font-size:.82rem}.contact-card{display:grid;gap:1rem}.contact-form{display:grid;gap:1rem}.contact-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-field{display:grid;gap:.55rem}.form-field span{color:#6a6d84;font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.form-field input,.form-field textarea{width:100%;border:0;border-radius:1.1rem;padding:1rem 1.05rem;background:#ffffffb8;color:#25273a;font:inherit;box-shadow:inset 0 0 0 1px #ffffff8c,0 14px 28px #5f57a014}.form-field textarea{resize:vertical;min-height:10rem}.form-field input::placeholder,.form-field textarea::placeholder{color:#8a8ea7}.form-field input:focus,.form-field textarea:focus{outline:2px solid #6f7eff42;outline-offset:2px}.contact-submit{justify-self:start;min-width:12rem;min-height:3.4rem;padding:0 1.5rem;border:0;border-radius:1.15rem;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 18px 34px #695aba29;transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}.contact-line{padding:1rem 1.05rem;border-radius:1.1rem;background:#ffffffb8;box-shadow:inset 0 0 0 1px #ffffff8c,0 14px 28px #5f57a014}.contact-line span{display:block;margin-bottom:.35rem;color:#6a6d84;font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.contact-line p{margin:0;color:#25273a}.social-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.social-pills a{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;border-radius:1rem;background:#fffc;color:#25273a;box-shadow:inset 0 0 0 1px #ffffff80,0 12px 24px #5f57a00f}@keyframes twinkle{0%,100%{opacity:.28;filter:brightness(.9);box-shadow:0 0 8px #ffffffad,0 0 18px #b5ceff57;transform:scale(.78)}50%{opacity:1;filter:brightness(1.25);box-shadow:0 0 16px #fff,0 0 34px #c4ddffd1,0 0 54px #85a2ff66;transform:scale(1.14)}}@keyframes sparkle-ray{0%,100%{opacity:.22;transform:translate(-50%,-50%) scaleX(.72)}50%{opacity:.95;transform:translate(-50%,-50%) scaleX(1.18)}}@keyframes availability-pulse{0%,100%{opacity:.72;transform:scale(.92);box-shadow:0 0 0 .18rem #50d18d1f,0 0 6px #50d18d2e}50%{opacity:1;transform:scale(1.08);box-shadow:0 0 0 .34rem #50d18d2e,0 0 12px #50d18d57}}@keyframes availability-liquid-wave-pass{0%{opacity:0;-webkit-mask-position:-55% 50%;mask-position:-55% 50%}4%{opacity:.92}37.5%{opacity:.95;-webkit-mask-position:155% 50%;mask-position:155% 50%}43%,100%{opacity:0;-webkit-mask-position:155% 50%;mask-position:155% 50%}}@keyframes home-liquid-wave-pass{0%{opacity:0;-webkit-mask-position:-45% 50%;mask-position:-45% 50%}4%{opacity:.82}37.5%{opacity:.88;-webkit-mask-position:145% 50%;mask-position:145% 50%}43%,100%{opacity:0;-webkit-mask-position:145% 50%;mask-position:145% 50%}}@keyframes about-heartbeat{0%,100%{transform:scale(1);filter:brightness(1)}12%{transform:scale(1.14);filter:brightness(1.08)}24%{transform:scale(.98)}36%{transform:scale(1.2);filter:brightness(1.12)}48%{transform:scale(1);filter:brightness(1)}}@keyframes home-shooting-star{0%,72%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg) scaleX(.45)}74%{opacity:.98;transform:translate3d(0,0,0) rotate(-8deg) scaleX(.72)}84%{opacity:1;transform:translate3d(-56rem,5.6rem,0) rotate(-8deg) scaleX(1)}92%,100%{opacity:0;transform:translate3d(-112vw,10.8rem,0) rotate(-8deg) scaleX(.88)}}@media (max-width:1180px){.showcase-hero{grid-template-columns:1fr;min-height:auto}.showcase-copy{padding-right:0}.showcase-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));transform:none}.showcase-visual{min-height:34rem}.content-grid{padding:0 1.7rem 1.8rem}.skills-block,.contact-block{grid-column:1 / -1}.project-preview-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shooting-star-home{top:11.2rem;right:11rem;width:7.8rem}}@media (max-width:760px){.topbar-home2{align-items:stretch}.brand-mark{justify-content:center}.nav-home2{justify-content:center;align-self:auto;min-height:0;margin-block:0}.topbar-home2-actions{justify-content:center}.theme-toggle-switch{--theme-toggle-width:4.7rem;--theme-toggle-height:2.5rem}.home2-main{padding:8.8rem .9rem .9rem}.showcase-panel{border-radius:1.5rem}.ambient-lights{opacity:.78}.showcase-hero{padding:1.2rem 1.2rem 0}.showcase-copy h1{font-size:clamp(2.9rem,15vw,4.25rem)}.showcase-lead{font-size:1rem}.showcase-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.showcase-visual{min-height:27rem;padding-top:1rem}.showcase-portrait{max-height:24rem}.showcase-portrait-reflection{max-height:24rem;opacity:.1}.showcase-portrait-wrap{width:min(26rem,100%);transform:translateY(.75rem) scale(1);transform-origin:center bottom}.floating-badge{width:3.6rem;height:3.6rem;border-radius:1rem;font-size:1rem}.badge-code{top:3.5rem;left:0}.badge-terminal{top:4.2rem;right:0}.badge-braces{top:12.3rem;right:2.6rem}.spark-one{left:74%;top:4.4rem}.spark-two{top:12.5rem;right:8%}.spark-three{top:18rem;left:14%}.spark-four{top:23rem;left:72%}.spark-five{right:12%;bottom:9rem}.spark-left-large{top:4.8rem;left:1.6rem}.spark-left-medium{top:6rem;left:3.9rem}.spark-left-small{top:6.9rem;left:2.5rem}.spark-mini-one{top:5rem;left:24%}.spark-mini-two{top:9rem;left:86%}.spark-mini-three{top:15.5rem;right:24%}.spark-mini-four{top:19rem;left:10%}.spark-mini-five{top:24rem;right:14%}.spark-mini-six{bottom:12rem;left:6%}.spark-mini-seven{bottom:9rem;left:56%}.spark-mini-eight{bottom:6.8rem;right:24%}.spark-large-one{top:6rem;right:2.8rem}.shooting-star-home{top:9.2rem;right:4.2rem;width:6.2rem}.spark-six{display:none}.visual-note{position:relative;right:auto;bottom:auto;width:100%;margin-top:-1rem}.section-heading{align-items:flex-start;flex-direction:column}.content-grid{padding:0 1.2rem 1.25rem}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.social-pills{grid-template-columns:1fr}.contact-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.home-liquid-wave-text::after,.header-availability-text::after{content:none}.home-liquid-wave-text,.header-availability-text,.header-availability-pill .availability-dot,.wave-text__char{animation:none;transform:none;filter:none}.shooting-star-home{animation:none;opacity:0}}html[data-theme="dark"]{color-scheme:dark;--page-bg:#0b0f1d;--panel-bg:#10162a;--text:#f5f7ff;--muted:#c4cade;--background-gradient-blue-soft:#5460ba42;--background-gradient-blue-end:#141b38;--nav-blue:#1d245c;--nav-pink:#9c3b88}html[data-theme="dark"] body{background:var(--page-bg);color:var(--text)}html[data-theme="dark"] .page-shell{background:#0d1224}html[data-theme="dark"] .home2-shell,html[data-theme="dark"] .about-shell,html[data-theme="dark"] .projects-showcase-shell,html[data-theme="dark"] .contact-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}html[data-theme="dark"] .topbar-home2{background:#0a0d1c8f}html[data-theme="dark"] .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#848aff29 56%,#ffffff2e 100%)}html[data-theme="dark"] .brand-mark,html[data-theme="dark"] .brand-mark-text,html[data-theme="dark"] .nav-home2 a,html[data-theme="dark"] .showcase-copy h1,html[data-theme="dark"] .about-copy h1,html[data-theme="dark"] .about-copy h2,html[data-theme="dark"] .projects-copy h1,html[data-theme="dark"] .contact-copy h1,html[data-theme="dark"] .project-detail-title #project-title-main,html[data-theme="dark"] .about-card h3,html[data-theme="dark"] .about-value-card strong,html[data-theme="dark"] .about-timeline-step strong,html[data-theme="dark"] .about-tech-pill strong,html[data-theme="dark"] .about-strength-card strong,html[data-theme="dark"] .about-cta-copy h2,html[data-theme="dark"] .preview-copy h3,html[data-theme="dark"] .project-showcase-copy h2,html[data-theme="dark"] .projects-cta-copy h2,html[data-theme="dark"] .contact-panel-title h2,html[data-theme="dark"] .project-detail-meta-copy strong,html[data-theme="dark"] .project-info-card h2,html[data-theme="dark"] .project-feature-copy h3,html[data-theme="dark"] .project-tech-card strong,html[data-theme="dark"] .project-next-copy h2,html[data-theme="dark"] .contact-line p,html[data-theme="dark"] .contact-social-grid a,html[data-theme="dark"] .contact-reason-card strong,html[data-theme="dark"] .project-browser-search,html[data-theme="dark"] .project-breadcrumb,html[data-theme="dark"] .project-breadcrumb a{color:#eef1ff}html[data-theme="dark"] .project-breadcrumb [aria-current="page"]{color:#ff66bd}html[data-theme="dark"] .project-info-card--strengths .project-info-card-title-icon{background:#ffd84d;box-shadow:0 12px 24px #ffd84d33}html[data-theme="dark"] .project-info-card--strengths .project-info-card-title-icon img{filter:brightness(0) saturate(100%)}html[data-theme="dark"] .project-tech-title-icon-mask--strengths{background-image:url(assets/pointfort-yellow.svg)}html[data-theme="dark"] .nav-home2 a:not(.active):hover{background:#0000;color:#7b72ff}html[data-theme="dark"] .nav-home2 a.active{background:#7b72ff38;color:#fff}html[data-theme="dark"] .availability-pill,html[data-theme="dark"] .about-card,html[data-theme="dark"] .about-value-card,html[data-theme="dark"] .about-timeline-step,html[data-theme="dark"] .about-tech-pill,html[data-theme="dark"] .about-strength-card,html[data-theme="dark"] .about-cta-banner,html[data-theme="dark"] .metric-card,html[data-theme="dark"] .preview-card,html[data-theme="dark"] .projects-cta-banner,html[data-theme="dark"] .project-showcase-card,html[data-theme="dark"] .contact-panel,html[data-theme="dark"] .contact-info-item,html[data-theme="dark"] .contact-reason-card,html[data-theme="dark"] .contact-social-grid a,html[data-theme="dark"] .project-detail-meta-card,html[data-theme="dark"] .project-info-card,html[data-theme="dark"] .project-feature-card,html[data-theme="dark"] .project-gallery-card,html[data-theme="dark"] .project-tech-card,html[data-theme="dark"] .project-result-card,html[data-theme="dark"] .project-next-banner,html[data-theme="dark"] .form-field input,html[data-theme="dark"] .form-field textarea,html[data-theme="dark"] .contact-line,html[data-theme="dark"] .social-pills a,html[data-theme="dark"] .project-detail-pill,html[data-theme="dark"] .filter-pill,html[data-theme="dark"] .project-search,html[data-theme="dark"] .project-browser{background:#0e1428c7;box-shadow:inset 0 0 0 1px #ffffff14,0 18px 34px #0000003d}html[data-theme="dark"] .contact-panel--location .contact-reason-card--compact{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .project-theme-portfolio.project-detail-panel{background:#0000;box-shadow:none}html[data-theme="dark"] .project-theme-portfolio .project-browser{padding:.6rem;background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .project-theme-portfolio .project-browser-frame{padding:.6rem}html[data-theme="dark"] .project-theme-portfolio .project-browser-hero-media-card,html[data-theme="dark"] .project-theme-portfolio .project-browser-strip-card{transform:translateY(-10px)}html[data-theme="dark"] .project-theme-portfolio .project-detail-pill{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .project-theme-portfolio .project-detail-actions{margin-top:2rem;transform:translateY(42px)}html[data-theme="dark"] .project-theme-portfolio[data-project-slug="mini-runner-arcade"] .project-detail-actions{margin-top:calc(1.55rem - 4px);transform:translateY(14px)}html[data-theme="dark"] .project-theme-portfolio .project-detail-action{transform:none}html[data-theme="dark"] .project-theme-portfolio .project-info-card--overview,html[data-theme="dark"] .project-theme-portfolio .project-info-card--learning,html[data-theme="dark"] .project-theme-portfolio .project-info-card--tech{background:#0000;box-shadow:none}html[data-theme="dark"] .project-theme-portfolio .project-info-card--features .project-feature-card,html[data-theme="dark"] .project-theme-portfolio .project-info-card--tech .project-tech-card{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .contact-reason-card{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .about-cta-banner{background:#0e14288f;box-shadow:inset 0 0 0 1px #ffffff0f,0 18px 34px #0000002e}html[data-theme="dark"] .about-card-values,html[data-theme="dark"] .about-card-tech,html[data-theme="dark"] .about-card-web,html[data-theme="dark"] .about-card-distinguish{background:#0000;box-shadow:none}html[data-theme="dark"] .about-value-card,html[data-theme="dark"] .about-timeline-step,html[data-theme="dark"] .about-tech-pill,html[data-theme="dark"] .about-strength-card{background:#0e142870;box-shadow:inset 0 0 0 1px #ffffff12,0 14px 28px #00000029}html[data-theme="dark"] .about-cta-banner{background:var(--portfolio-blue-band);box-shadow:inset 0 0 0 1px #ffffff0d,0 14px 28px #00000024}html[data-theme="dark"] .about-value-card,html[data-theme="dark"] .about-timeline-step,html[data-theme="dark"] .about-tech-pill,html[data-theme="dark"] .about-strength-card,html[data-theme="dark"] .metric-card,html[data-theme="dark"] .preview-card,html[data-theme="dark"] .projects-cta-banner,html[data-theme="dark"] .project-showcase-card,html[data-theme="dark"] .contact-panel,html[data-theme="dark"] .contact-info-item,html[data-theme="dark"] .contact-reason-card,html[data-theme="dark"] .project-detail-meta-card,html[data-theme="dark"] .project-info-card,html[data-theme="dark"] .project-feature-card,html[data-theme="dark"] .project-gallery-card,html[data-theme="dark"] .project-tech-card,html[data-theme="dark"] .project-result-card,html[data-theme="dark"] .project-next-banner{background:#fff3;box-shadow:inset 0 0 0 1px #ffffff2e,0 12px 24px #00000024}html[data-theme="dark"] .project-showcase-card{background:linear-gradient(180deg,#6e6c84c7 0,#5c5b74c7 100%);box-shadow:inset 0 0 0 1px #ffffff29,0 14px 28px #00000029}html[data-theme="dark"] .projects-cta-banner{background:#0e142861;box-shadow:inset 0 0 0 1px #ffffff0d,0 14px 28px #00000024}html[data-theme="dark"] .projects-block{background:radial-gradient(circle at 12% 12%,#b54b9138,#0000 28%),radial-gradient(circle at 88% 18%,#5067e233,#0000 26%),linear-gradient(120deg,#11172cf0,#1a1c34eb 52%,#172146f0);box-shadow:inset 0 0 0 1px #ffffff14,0 18px 36px #0000003d}html[data-theme="dark"] .showcase-lead,html[data-theme="dark"] .about-lead,html[data-theme="dark"] .about-card p,html[data-theme="dark"] .about-value-card p,html[data-theme="dark"] .about-timeline-step p,html[data-theme="dark"] .about-strength-card p,html[data-theme="dark"] .about-cta-copy p,html[data-theme="dark"] .projects-lead,html[data-theme="dark"] .contact-lead,html[data-theme="dark"] .project-detail-lead,html[data-theme="dark"] .preview-copy p,html[data-theme="dark"] .project-showcase-copy p,html[data-theme="dark"] .projects-cta-copy p,html[data-theme="dark"] .project-next-copy p,html[data-theme="dark"] .contact-form-note,html[data-theme="dark"] .project-text-block p,html[data-theme="dark"] .project-feature-copy p,html[data-theme="dark"] .project-gallery-screen-body p,html[data-theme="dark"] .project-result-card span,html[data-theme="dark"] .project-quote-card blockquote,html[data-theme="dark"] .project-tech-card--text p,html[data-theme="dark"] .project-detail-meta-copy p,html[data-theme="dark"] .form-field span,html[data-theme="dark"] .contact-line span,html[data-theme="dark"] .project-browser-copy>p:not(.project-browser-eyebrow),html[data-theme="dark"] .project-browser-sidekicker,html[data-theme="dark"] .project-browser-sidecard span,html[data-theme="dark"] .project-browser-strip-card span{color:#bfc6df}html[data-theme="dark"] .contact-form-note--with-icon img{filter:brightness(0) invert(1)}html[data-theme="dark"] .contact-form-feedback{color:#bfc6df}html[data-theme="dark"] .contact-form-feedback.is-success{color:#76d8af}html[data-theme="dark"] .contact-form-feedback.is-error{color:#ff8eb7}html[data-theme="dark"] .contact-success-dialog__content{background:linear-gradient(180deg,#0f1426fa 0,#0a0e1cfa 100%);box-shadow:inset 0 0 0 1px #ffffff14,0 30px 60px #00000057}html[data-theme="dark"] .contact-success-dialog__content h2{color:#eef1ff}html[data-theme="dark"] .contact-success-dialog__content p{color:#bfc6df}html[data-theme="dark"] .contact-success-dialog__button{background:linear-gradient(90deg,#ff66bd 0,#6f7eff 100%);color:#fff}html[data-theme="dark"] .contact-social-link[aria-label="GitHub"]{position:relative;background:#0000;box-shadow:none}html[data-theme="dark"] .contact-social-link[aria-label="GitHub"]::before{content:"";position:absolute;top:50%;left:50%;width:calc((2rem + 35px) * .78);height:calc((2rem + 35px) * .78);border-radius:50%;background:#fff;transform:translate(-50%,-50%)}html[data-theme="dark"] .contact-social-link[aria-label="GitHub"] img{position:relative;z-index:1}html[data-theme="dark"] .contact-social-link[aria-label="LinkedIn"] img{background:#fff;border-radius:.35rem}html[data-theme="dark"] img[src$="resolutionpb.svg"]{filter:brightness(0) saturate(100%) invert(84%) sepia(84%) saturate(1117%) hue-rotate(343deg) brightness(102%) contrast(102%)}html[data-theme="dark"] .projects-cta-icon img[src$="resolutionpb.svg"]{filter:brightness(0) invert(1)!important}html[data-theme="dark"] .projects-cta-actions .ghost-cta{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;border-color:#0000}html[data-theme="dark"] .section-heading a,html[data-theme="dark"] .preview-copy a,html[data-theme="dark"] .project-showcase-copy a,html[data-theme="dark"] .contact-line a,html[data-theme="dark"] .social-pills a{color:#9fb1ff}html[data-theme="dark"] .ghost-cta{background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);border-color:var(--portfolio-cta-night-border)}html[data-theme="dark"] .project-next-actions .project-next-projects-primary{background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;border-color:#0000}html[data-theme="dark"] .visual-note-window{background:#0c1122f5;color:#eef1ff;box-shadow:inset 0 0 0 1px #ffffff14,0 22px 42px #00000047}html[data-theme="dark"] .visual-note-window .window-top,html[data-theme="dark"] .visual-note-window.is-expanded .window-top{border-bottom:1px solid #ffffff1a}html[data-theme="dark"] .visual-note-window .file-name,html[data-theme="dark"] .visual-note-window.is-expanded .file-name,html[data-theme="dark"] .visual-note-title,html[data-theme="dark"] .visual-note p,html[data-theme="dark"] .visual-note-window .window-status{color:#eef1ff}html[data-theme="dark"] .window-action-button{opacity:.9}html[data-theme="dark"] .visual-note-window.is-expanded{background:#0c1122fa;color:#eef1ff}html[data-theme="dark"] .visual-note-window.is-expanded code{color:#eef1ff}html[data-theme="dark"] .eva-run-embed-kicker{color:#ff9bd1}html[data-theme="dark"] .eva-run-embed-link{color:#9fb1ff;background:#0e1428c7;box-shadow:inset 0 0 0 1px #ffffff14,0 12px 22px #00000038}html[data-theme="dark"] .eva-run-embed-frame{background:#0000;box-shadow:none}html[data-theme="dark"] .eva-run-kicker{color:#ff9bd1}html[data-theme="dark"] .eva-run-score-item{background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff14}html[data-theme="dark"] .eva-run-score-item span,html[data-theme="dark"] .eva-run-instructions,html[data-theme="dark"] .eva-run-overlay-text{color:#eef1ffb8}html[data-theme="dark"] .eva-run-game{background:radial-gradient(circle at top left,#7f3b775c,#0000 34%),radial-gradient(circle at top right,#6171dc52,#0000 28%),linear-gradient(180deg,#181d37fa,#0e1326fa);box-shadow:inset 0 0 0 1px #ffffff14,0 16px 28px #0000003d}html[data-theme="dark"] .eva-run-cloud{background:#ffffff24}html[data-theme="dark"] .eva-run-lane{background:linear-gradient(180deg,#717bd424,#424d8347),repeating-linear-gradient(90deg,#ffffff29 0 14px,#0000 14px 30px)}html[data-theme="dark"] .eva-run-overlay{background:#0c1122bd}html[data-theme="dark"] .eva-run-overlay-button{box-shadow:0 10px 20px #00000047}html[data-theme="dark"] .visual-note-window.is-expanded .window-body::-webkit-scrollbar-track{background:var(--view-scrollbar-track)}html[data-theme="dark"] .visual-note-window.is-expanded .window-body::-webkit-scrollbar-thumb{background:var(--view-title-gradient);background-clip:padding-box}html[data-theme="dark"] .project-search input,html[data-theme="dark"] .form-field input,html[data-theme="dark"] .form-field textarea{color:#eef1ff}html[data-theme="dark"] .project-search input::placeholder,html[data-theme="dark"] .form-field input::placeholder,html[data-theme="dark"] .form-field textarea::placeholder{color:#8e96b9}html[data-theme="dark"] .project-search-icon,html[data-theme="dark"] .project-search input,html[data-theme="dark"] .project-detail-pill,html[data-theme="dark"] .filter-pill,html[data-theme="dark"] .availability-pill{color:#dde2ff}html[data-theme="dark"] .preview-media-light,html[data-theme="dark"] .project-showcase-media-analytics{color:#eef1ff;background:radial-gradient(circle at 80% 28%,#718fff2e,#0000 18%),linear-gradient(135deg,#141a31 0,#202b56 100%)}html[data-theme="dark"] .project-showcase-media-rgesn{background:#0d251f url(assets/compagnon-rgesn-cover-620.webp) center center / contain no-repeat}html[data-theme="dark"] .project-showcase-rgesn-window{background:#0b191ddb;box-shadow:inset 0 0 0 1px #ffffff1f,0 18px 34px #00000038}html[data-theme="dark"] .project-showcase-rgesn-toolbar{border-bottom-color:#ffffff1a;background:#ffffff0f}html[data-theme="dark"] .project-showcase-rgesn-toolbar strong{color:#eafbf5}html[data-theme="dark"] .project-showcase-rgesn-bars span,html[data-theme="dark"] .project-showcase-rgesn-checks span{background-color:#ffffff21}html[data-theme="dark"] .project-tag-css3{background:#ffd65c2e;color:#f3c93d}@media (max-width:760px){html,body{min-width:0;overflow-x:hidden}.page-shell,.home2-shell,.about-shell,.projects-showcase-shell,.contact-showcase-shell{overflow-x:hidden}.topbar-home2{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "nav nav";align-items:center;gap:.55rem .75rem;padding:.65rem .85rem .75rem}.topbar-home2::after{bottom:-.12rem;height:.35rem}.brand-mark{grid-area:brand;justify-content:flex-start;min-width:0;gap:.25rem}.brand-mark-icon{width:2.05rem;height:2.05rem;flex-basis:2.05rem;--brand-logo-extra:24px}.brand-mark-icon img{width:calc(100% + 24px);height:calc(100% + 24px)}.brand-mark-text{min-width:0;overflow:hidden;font-size:.88rem;line-height:1.1;text-overflow:ellipsis;transform:none;white-space:nowrap}.brand-mark-copy{min-width:0;gap:.1rem;transform:none}.header-availability-pill{padding:.12rem .28rem;gap:.2rem;font-size:calc(.5rem + 2px)}.header-availability-pill .availability-dot{width:calc(.28rem + 2px);height:calc(.28rem + 2px);box-shadow:0 0 0 .14rem #50d18d24}.topbar-home2-actions{grid-area:actions;justify-content:flex-end;flex-wrap:nowrap;gap:.4rem;min-width:0}.topbar-home2-actions .theme-toggle-switch{order:1}.topbar-home2-actions .download-btn{order:2}.theme-toggle-switch{--theme-toggle-width:4.05rem;--theme-toggle-height:2.25rem}.download-btn{width:2.55rem;min-width:2.55rem;min-height:2.45rem;padding:0;border-radius:.9rem;font-size:0}.download-btn::after{content:"CV";color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.76rem;font-weight:700}.nav-home2{grid-area:nav;justify-content:flex-start;gap:.45rem;flex-wrap:nowrap;margin:0;padding:.08rem .05rem .12rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none}.nav-home2::-webkit-scrollbar{display:none}.nav-home2 a{flex:0 0 auto;min-width:auto;min-height:2.35rem;height:auto;padding:0 .85rem;border-radius:.85rem;background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff6b;font-size:.78rem;scroll-snap-align:start}.home2-main,.projects-showcase-main,.project-detail-main,.about-main,.contact-showcase-main{padding:8.85rem .85rem 1rem}.showcase-panel,.projects-showcase-panel,.project-detail-panel,.about-panel,.contact-showcase-panel{width:100%;padding:1rem .85rem;border-radius:1.15rem}.showcase-hero,.projects-showcase-intro,.project-detail-hero,.about-hero,.contact-hero{gap:.9rem}.showcase-hero{grid-template-columns:minmax(0,1fr);padding:.2rem 0 0}.showcase-copy,.showcase-visual,.showcase-metrics,.projects-copy,.project-detail-copy,.about-copy,.contact-copy,.project-browser,.project-browser-frame,.project-detail-main-column,.project-detail-side-column,.contact-side-column{width:100%;max-width:100%;min-width:0}.showcase-copy,.about-copy,.project-detail-copy,.contact-copy{min-height:auto;padding:0}.showcase-copy>.availability-pill,.about-availability,.projects-copy .availability-pill,.contact-copy .availability-pill{margin:0 0 .9rem;transform:none}.availability-pill{max-width:100%;padding:.58rem .72rem;border-radius:.95rem;font-size:.68rem;line-height:1.25;white-space:normal}.showcase-copy h1,.projects-copy h1,.project-detail-title,.about-copy h1,.contact-copy h1{max-width:100%;font-size:2.85rem;line-height:1;letter-spacing:0;transform:none;white-space:normal}.about-copy h2,.project-browser-copy h2{max-width:100%;font-size:1.75rem;line-height:1.08;letter-spacing:0}.contact-lead-nowrap{white-space:normal}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-title{font-size:2.45rem}.project-theme-portfolio[data-project-slug="le-pouvoir-des-fleurs"] .project-detail-lead{margin-top:1rem}.showcase-lead,.projects-lead,.project-detail-lead,.about-lead,.contact-lead{max-width:100%;margin:.95rem 0 0;font-size:.98rem;line-height:1.55}.showcase-actions,.project-detail-actions,.about-cta-actions,.projects-cta-actions,.project-next-actions,.contact-submit-row{display:grid;grid-template-columns:1fr;gap:.75rem;width:100%;margin-top:1.2rem;transform:none}.gradient-cta,.ghost-cta,.projects-cta-button,.contact-submit,.project-detail-action{width:100%;min-width:0;min-height:3.2rem;border-radius:1rem}.showcase-metrics{display:flex;gap:.45rem;margin-top:1.2rem;padding-bottom:.15rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;transform:none}.showcase-metrics::-webkit-scrollbar{display:none}.showcase-logo{--showcase-logo-slot:3.7rem;--showcase-logo-width:2.55rem;--showcase-logo-height:2.55rem;min-height:3.85rem;flex:0 0 var(--showcase-logo-slot)}.showcase-logo-html,.showcase-logo-css,.showcase-logo-javascript,.showcase-logo-typescript,.showcase-logo-git,.showcase-logo-node,.showcase-logo-react,.showcase-logo-swift{--showcase-logo-width:2.65rem;--showcase-logo-height:2.65rem}.showcase-logo-php{--showcase-logo-width:3.4rem;--showcase-logo-height:1.95rem}.showcase-logo-slot-mysql{--showcase-logo-slot:4.9rem}.showcase-logo-mysql{--showcase-logo-width:4.75rem;--showcase-logo-height:2.35rem}.showcase-visual{min-height:22rem;margin-top:.8rem;padding-top:0}.orb-large{width:16rem;bottom:1.8rem}.showcase-portrait-wrap{width:min(21rem,100%);transform:translateY(.45rem) scale(1)}.showcase-portrait{max-height:21rem}.showcase-portrait-reflection{display:none}.floating-badge{width:3rem;height:3rem;border-radius:.9rem;font-size:.88rem}.badge-code{top:2.8rem;left:.2rem}.badge-terminal{top:3.2rem;right:.2rem;width:3.1rem;height:3.1rem;font-size:.85rem}.badge-braces{top:10.2rem;right:2.1rem;width:2.9rem;height:2.9rem}.visual-note{margin-top:.35rem;border-radius:1rem}.visual-note-window.is-closed{height:5.35rem;min-height:5.35rem}.visual-note-window.is-closed .window-status{height:calc(5.35rem - 2.65rem)}.projects-showcase-grid,.project-preview-grid,.project-feature-grid,.project-gallery,.project-results-grid,.about-content-grid,.about-values-grid,.about-timeline,.about-tech-grid,.about-strengths-grid,.contact-layout,.contact-side-column,.contact-side-top-row,.contact-reasons{grid-template-columns:1fr;gap:.85rem}.projects-showcase-grid{margin-top:1rem}.project-showcase-card,.preview-card,.about-card,.about-cta-banner,.projects-cta-banner,.project-info-card,.project-next-banner,.contact-panel{padding:1rem;border-radius:1.15rem}.project-showcase-card{gap:.9rem}.project-showcase-media,.project-showcase-media-hookies,.project-showcase-media-rgesn,.project-showcase-media-portfolio,.project-showcase-media-mini-runner,.project-showcase-media-fleurs,.project-showcase-media-dashboard,.project-showcase-media-social,.preview-media,.preview-media-ecommerce,.preview-media-dashboard,.preview-media-stock{height:12.5rem;min-height:12.5rem;border-radius:.95rem}.project-showcase-copy h2,.preview-copy h3,.section-heading h2,.about-card h3,.projects-cta-copy h2,.project-next-copy h2,.contact-panel-title h2,.project-info-card h2{font-size:1.42rem;line-height:1.08;letter-spacing:0}.project-showcase-copy p,.preview-copy p,.about-card p,.about-value-card p,.about-timeline-step p,.about-strength-card p,.projects-cta-copy p,.project-text-block p,.project-feature-copy p,.project-next-copy p,.contact-info-item p,.contact-reason-card strong{font-size:.94rem;line-height:1.5}.project-tag-row{gap:.45rem;margin-bottom:.8rem}.project-tag{padding:.34rem .58rem;font-size:.66rem}.project-showcase-copy a{justify-content:center;width:100%;min-height:2.85rem;margin-top:.9rem;border-radius:.9rem;background:#ffffffa3;box-shadow:inset 0 0 0 1px #6a71ff29}.projects-cta-banner,.about-cta-banner,.project-next-banner{display:grid;align-items:stretch}.projects-cta-copy,.about-cta-copy,.project-next-copy{align-items:flex-start}.projects-cta-icon,.about-cta-icon,.project-next-icon{width:3.2rem;height:3.2rem;border-radius:1rem}.about-value-card,.about-timeline-step,.about-strength-card,.project-feature-card,.contact-info-item{grid-template-columns:auto 1fr;padding:.9rem;border-radius:1rem}.about-card-values,.about-card-tech,.about-card-web,.about-card-distinguish{grid-column:auto;grid-row:auto;margin-top:0}.about-content-grid>*,.about-values-grid,.about-tech-grid,.about-strengths-grid,.about-timeline,.about-cta-banner{width:100%;max-width:100%;min-width:0}.about-tech-pill{min-height:3.4rem;padding:.78rem .9rem;border-radius:1rem}.project-detail-tags{gap:.45rem;margin-top:1rem}.project-detail-pill{min-height:2.15rem;padding:0 .68rem;font-size:.68rem}.project-detail-actions--with-carousel .project-detail-mini-carousel,.project-theme-portfolio[data-project-carousel="stacked"] .project-detail-actions--with-carousel .project-detail-mini-carousel{width:100%;max-width:none;min-width:0;transform:none}.project-browser,.project-browser-frame{padding:.58rem;border-radius:1rem}.project-browser-top{grid-template-columns:1fr;gap:.65rem}.project-browser-search{min-height:2.2rem;justify-content:center;font-size:.68rem}.project-browser-nav{justify-content:flex-start;gap:.75rem;overflow-x:auto;padding-bottom:.1rem;scrollbar-width:none}.project-browser-nav::-webkit-scrollbar{display:none}.project-browser-hero{grid-template-columns:1fr;gap:.75rem}.project-browser-hero-media-card,.project-browser-hero-media,.project-theme-portfolio .project-browser-hero-media-card,.project-theme-portfolio .project-browser-hero-media{min-height:12rem}.project-browser-copy{padding:.35rem .1rem .1rem}.project-browser-actions{gap:.45rem}.project-browser-actions span{min-height:2rem;padding:0 .7rem;font-size:.66rem}.project-browser-sidecard,.project-browser-strip-card,.project-detail-meta-card,.project-tech-card,.project-result-card,.project-gallery-card,.contact-reason-card{border-radius:1rem}.project-browser-strip,.project-detail-meta-grid,.project-detail-content,.project-tech-grid{grid-template-columns:1fr;gap:.75rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badges{gap:.55rem;overflow-x:auto;padding-bottom:.15rem;flex-wrap:nowrap;scrollbar-width:none}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badges::-webkit-scrollbar{display:none}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badge{width:3rem;min-width:3rem}.project-theme-portfolio[data-project-layout="portfolio-rich"] .project-detail-tech-badge-icon{width:2rem;height:2rem}.contact-showcase-panel{padding:1rem .85rem}.contact-hero{min-height:auto}.contact-lead{margin-bottom:1rem}.contact-panel-title{gap:.7rem;margin-bottom:1rem}.contact-panel-icon,.project-info-card-title-icon,.project-info-card h2::before{width:2.15rem;height:2.15rem;border-radius:.82rem}.contact-form-page .contact-submit{min-width:0}.form-field input,.form-field textarea{min-height:3rem;padding:.85rem .95rem;border-radius:.95rem;font-size:1rem}.contact-form-panel .form-field textarea,.form-field textarea{min-height:8rem}.contact-form-note--with-icon{align-items:flex-start}.contact-social-link img,.contact-social-link[aria-label="GitHub"] img{width:3rem;height:3rem}.contact-goodbye{justify-content:flex-start;margin:.35rem 0 0;margin-left:0;font-size:1.45rem;line-height:1;transform:none}.contact-goodbye img{width:3rem;height:3rem}.content-grid{padding:0 0 1rem}.projects-block{margin-top:.95rem;padding:1rem;border-radius:1.15rem}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}@media (max-width:380px){.brand-mark-text{max-width:9.5rem}.nav-home2 a{padding:0 .72rem}.showcase-copy h1,.projects-copy h1,.project-detail-title,.about-copy h1,.contact-copy h1{font-size:2.58rem}}@media (max-width:760px){html[data-theme="dark"] .nav-home2 a{background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff14}html[data-theme="dark"] .project-showcase-copy a{background:#ffffff14;box-shadow:inset 0 0 0 1px #9fb1ff2e}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.projects-showcase-shell{height:100dvh;min-height:100dvh;overflow-x:hidden;overflow-y:auto;background:radial-gradient(circle at 12% 7%,#6842c414,#0000 26rem),radial-gradient(circle at 88% 14%,#ff4eb612,#0000 24rem),#fff;color:#070d36}body.projects-overview-page .projects-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.projects-overview-main{padding:6.45rem 1.2rem 1.15rem}.projects-overview-panel{width:min(100%,95rem);padding:.75rem 0 0}.projects-overview-intro{grid-template-columns:minmax(0,1fr) minmax(24rem,.74fr);gap:2rem;align-items:end}.projects-overview-panel .projects-copy{min-width:0}.projects-overview-panel .availability-pill{margin:0 0 .65rem;padding:.45rem .74rem;border-radius:999px;background:#fff;color:#131a44;font-size:.76rem;line-height:1;box-shadow:inset 0 0 0 1px #131c441a,0 10px 24px #212a580f}.projects-overview-panel .availability-dot{width:.45rem;height:.45rem}.projects-overview-panel .projects-copy h1{max-width:none;margin:0;padding:0;color:#070d36;font-size:4.9rem;line-height:.98;letter-spacing:0;white-space:normal}.projects-overview-panel .projects-copy h1 .projects-title-accent{background:linear-gradient(92deg,#5b4dff 0,#9b48df 46%,#ff3f96 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.projects-overview-panel .projects-lead{width:min(100%,33rem);margin-top:.55rem;color:#596486;font-size:1.05rem;line-height:1.42}.projects-overview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;margin:0 0 .8rem;padding:0}.projects-overview-stats div{display:grid;gap:.55rem;justify-items:center;min-height:5.35rem;padding:0 1.3rem;text-align:center}.projects-overview-stats div + div{border-left:1px solid #101c4c1f}.projects-overview-stats dt{display:grid;gap:.35rem;justify-items:center;color:#536080;font-size:.84rem;font-weight:600}.projects-overview-stats dd{order:-1;margin:0;color:#071044;font-size:1.75rem;font-weight:800;line-height:1}.projects-featured-card{position:relative;z-index:2;display:grid;grid-template-columns:minmax(18rem,.78fr) minmax(31rem,1.32fr);min-height:17.3rem;margin-top:.45rem;overflow:hidden;border-radius:.76rem;background:radial-gradient(circle at 82% 18%,#5c47ff8c,#0000 28%),radial-gradient(circle at 53% 82%,#ff3f9659,#0000 26%),linear-gradient(115deg,#090f2b 0,#101743 48%,#221a6d 100%);color:#fff;box-shadow:0 18px 34px #222a5829}.projects-featured-copy{position:relative;z-index:2;align-self:center;overflow:visible;padding:2.1rem 1.9rem}.projects-featured-copy-slide{position:relative}.projects-featured-label{display:inline-flex;align-items:center;width:fit-content;margin:0 0 1.05rem;padding:.43rem .75rem;border-radius:.42rem;background:#7f5cff9e;color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:800;text-transform:uppercase}.projects-featured-copy h2{margin:0;font-size:2.15rem;line-height:1.02;letter-spacing:0}.projects-featured-copy-slide>p:not(.projects-featured-label),.projects-featured-copy>p:not(.projects-featured-label){max-width:32rem;margin:.8rem 0 0;color:#ffffffe0;font-size:1rem;line-height:1.48}.projects-featured-card .project-tag-row{margin-top:1rem;margin-bottom:0;gap:.5rem}.projects-featured-card .project-tag{min-height:1.7rem;padding:0 .6rem;border-radius:.35rem;font-size:.67rem}.projects-featured-actions{display:flex;align-items:center;gap:1rem;margin-top:1.35rem;flex-wrap:wrap}.projects-featured-primary,.projects-featured-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:2.8rem;border-radius:.42rem;text-decoration:none;font-family:"IBM Plex Mono",monospace;font-size:.8rem;font-weight:800}.projects-featured-primary{min-width:10.6rem;padding:0 1.25rem;background:linear-gradient(135deg,#775cff 0,#ff3f96 100%);color:#fff;box-shadow:0 14px 26px #120e3c3d}.projects-featured-secondary{color:#fff}.projects-featured-secondary.is-confidential{cursor:default;opacity:.72;pointer-events:none}.projects-featured-dots{position:absolute;left:50%;bottom:.82rem;z-index:3;display:flex;align-items:center;justify-content:center;gap:.62rem;transform:translateX(-50%);pointer-events:auto}.projects-featured-dot-track{display:flex;align-items:center;justify-content:center;gap:.48rem;pointer-events:auto}.projects-featured-arrow{position:relative;display:inline-grid;place-items:center;width:1.55rem;height:1.55rem;padding:0;border:0;border-radius:999px;background:#ffffff1a;color:#fff;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff38,0 .38rem 1rem #05081c2e;transition:background 220ms ease,box-shadow 220ms ease,opacity 220ms ease,transform 220ms ease}.projects-featured-arrow::before{content:"";width:.42rem;height:.42rem;border-top:.15rem solid currentColor;border-right:.15rem solid currentColor}.projects-featured-arrow-prev::before{transform:translateX(.08rem) rotate(-135deg)}.projects-featured-arrow-next::before{transform:translateX(-.08rem) rotate(45deg)}.projects-featured-dot{width:.42rem;height:.42rem;padding:0;border:0;border-radius:999px;background:#ffffffe6;box-shadow:0 0 0 1px #ffffff2e;cursor:pointer;opacity:.72;appearance:none;transition:width 260ms ease,height 260ms ease,opacity 260ms ease,background 260ms ease,box-shadow 260ms ease}.projects-featured-dot.is-active{width:.78rem;height:.78rem;background:linear-gradient(135deg,#7255ff 0,#f23a9b 100%);box-shadow:0 0 0 3px #ffffff2e;opacity:1}.projects-featured-visual{position:relative;z-index:1;min-width:0;min-height:17.3rem}.featured-star{z-index:0;width:var(--featured-star-size,.42rem);height:var(--featured-star-size,.42rem);animation-delay:var(--featured-star-delay,0s);animation-duration:var(--featured-star-speed,4.4s)}.featured-star::before{width:var(--featured-star-ray,1.25rem)}.featured-star::after{height:var(--featured-star-ray,1.25rem)}.featured-star-one{top:18%;left:37%;--featured-star-size:.46rem;--featured-star-ray:1.55rem;--featured-star-delay:.2s;--featured-star-speed:4.8s}.featured-star-two{top:10%;left:51%;opacity:.54;--featured-star-size:.25rem;--featured-star-ray:.86rem;--featured-star-delay:1.4s}.featured-star-three{top:23%;right:8%;opacity:.5;--featured-star-size:.18rem;--featured-star-ray:.62rem;--featured-star-delay:2.1s}.featured-star-four{top:46%;left:40%;opacity:.68;--featured-star-size:.33rem;--featured-star-ray:1.16rem;--featured-star-delay:1s;--featured-star-speed:5.2s}.featured-star-five{top:36%;right:3.8%;opacity:.48;--featured-star-size:.22rem;--featured-star-ray:.74rem;--featured-star-delay:2.7s}.featured-star-six{right:18%;bottom:12%;opacity:.46;--featured-star-size:.16rem;--featured-star-ray:.55rem;--featured-star-delay:.8s;--featured-star-speed:5.6s}.featured-star-seven{left:52%;bottom:15%;opacity:.58;--featured-star-size:.28rem;--featured-star-ray:.94rem;--featured-star-delay:2.3s}.featured-star-eight{right:31%;top:63%;opacity:.4;--featured-star-size:.19rem;--featured-star-ray:.66rem;--featured-star-delay:1.8s}.featured-laptop{position:absolute;right:11.3rem;bottom:1.1rem;width:min(46rem,76%);min-width:28rem;filter:drop-shadow(0 22px 28px #0306146b)}.featured-laptop-screen{position:relative;display:grid;grid-template-columns:7.4rem minmax(0,1fr);min-height:13.7rem;overflow:hidden;border:4px solid #080b16;border-radius:1.35rem 1.35rem .45rem .45rem;background:#0a1024}.featured-screen-slider{position:absolute;inset:0;z-index:1;display:block;overflow:hidden;border-radius:inherit;background:inherit}.featured-screen-image{position:absolute;inset:0;display:block;background-position:center top;background-repeat:no-repeat;background-size:cover;opacity:1;filter:none;transform:translate3d(0,0,0);transition:transform 640ms cubic-bezier(.22,.76,.24,1);will-change:transform}.featured-screen-image.is-entering{transform:translate3d(100%,0,0)}.featured-screen-image.is-leaving{transform:translate3d(-100%,0,0)}.featured-laptop-screen .featured-screen-image,.featured-phone-screen .featured-screen-image{opacity:1;filter:none;transform:translate3d(0,0,0);transition-property:transform}.featured-laptop-screen .featured-screen-image.is-entering,.featured-phone-screen .featured-screen-image.is-entering{transform:translate3d(100%,0,0)}.featured-laptop-screen .featured-screen-image.is-leaving,.featured-phone-screen .featured-screen-image.is-leaving{transform:translate3d(-100%,0,0)}.projects-featured-secondary[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){.projects-featured-copy-slide,.featured-screen-image{transition:none}}.featured-laptop-notch{position:absolute;top:.35rem;left:50%;z-index:3;width:4rem;height:.78rem;border-radius:0 0 .7rem .7rem;background:#050712;transform:translateX(-50%)}.featured-laptop-base{position:relative;display:block;width:106%;height:1.08rem;margin:-.04rem 0 0 -3%;overflow:hidden;border-radius:.22rem .22rem 5rem 5rem;background:linear-gradient(90deg,#0000 0 43%,#ffffff57 47% 53%,#0000 57% 100%),linear-gradient(180deg,#9094a2 0,#515562 25%,#242834 58%,#080b14 100%);box-shadow:inset 0 .12rem 0 #ffffff61,inset 0 -.16rem 0 #0000007a,0 .38rem .7rem #00000052}.featured-laptop-base::before{content:"";position:absolute;left:44%;right:44%;top:.08rem;height:.18rem;border-radius:999px;background:#ffffff6b}.featured-laptop-base::after{content:"";position:absolute;left:4%;right:4%;bottom:.05rem;height:.18rem;border-radius:999px;background:#ffffff1f}.featured-sidebar{display:grid;align-content:start;gap:.65rem;padding:2.25rem .85rem 0;background:#050a198a}.featured-sidebar span{height:.46rem;border-radius:999px;background:#ffffff38}.featured-sidebar span:first-child{width:2rem;height:2rem;border-radius:50%;background:radial-gradient(circle,#ff75d1 0 26%,#fff3 28% 100%)}.featured-dashboard{padding:1.55rem 1rem 1rem;background:radial-gradient(circle at 80% 0,#935dff33,#0000 35%),#0d142c}.featured-dashboard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.featured-dashboard-top strong{font-size:.78rem}.featured-dashboard-top span{width:2rem;height:.75rem;border-radius:999px;background:linear-gradient(90deg,#9f7bff,#ff74d0)}.featured-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.featured-widget{position:relative;min-height:4.95rem;overflow:hidden;padding:.72rem;border-radius:.62rem;background:#ffffff0f;box-shadow:inset 0 0 0 1px #ffffff0d}.featured-widget span{display:block;color:#ffffffa3;font-size:.58rem;font-weight:700}.featured-widget strong{display:block;margin-top:.35rem;color:#fff;font-size:1.18rem}.featured-widget i{position:absolute;left:.7rem;right:1.6rem;bottom:.85rem;height:.34rem;border-radius:999px;background:linear-gradient(90deg,#8b6cff,#ff70d2)}.featured-widget b{position:absolute;right:.8rem;bottom:.85rem;width:5rem;height:2.4rem;background:linear-gradient(to top,#31d6bd 0 25%,#0000 25% 100%) 0 100% / .65rem 100%,linear-gradient(to top,#6ee2ff 0 55%,#0000 55% 100%) 1.05rem 100% / .65rem 100%,linear-gradient(to top,#ff70d2 0 42%,#0000 42% 100%) 2.1rem 100% / .65rem 100%,linear-gradient(to top,#38d2a2 0 72%,#0000 72% 100%) 3.15rem 100% / .65rem 100%;background-repeat:no-repeat}.featured-widget em{position:absolute;right:.8rem;bottom:.7rem;width:2.6rem;height:2.6rem;border-radius:50%;background:radial-gradient(circle at center,#0d142c 0 45%,#0000 47%),conic-gradient(#31d6bd 0 62%,#ff70d2 62% 83%,#ffffff29 83% 100%)}.featured-widget small{display:block;margin-top:.08rem;color:#ffffff94;font-size:.54rem;font-weight:700}.featured-widget-list{display:grid;gap:.32rem}.featured-widget-list p,.featured-widget-donut p{margin:0;color:#ffffffad;font-size:.52rem;line-height:1.1}.featured-widget-list p{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.28rem;align-items:center}.featured-widget-list p em{position:static;width:.48rem;height:.48rem;border-radius:50%;background:#31d6bd}.featured-widget-list p:nth-of-type(2) em{background:#8b6cff}.featured-widget-list p:nth-of-type(3) em{background:#b35dff}.featured-widget-list p::after{content:"";grid-column:2 / 4;height:.12rem;border-radius:999px;background:linear-gradient(90deg,#31d6bdc7,#ff70d2c7)}.featured-widget-list p small{margin:0;font-size:.48rem}.featured-widget-donut{padding-left:5rem}.featured-widget-donut em{left:.9rem;right:auto;bottom:.95rem;width:3.25rem;height:3.25rem}.featured-widget-donut strong{position:absolute;left:1.78rem;bottom:2.05rem;z-index:1;margin:0;font-size:.78rem}.featured-widget-donut p::before{content:"";display:inline-block;width:.28rem;height:.28rem;margin-right:.28rem;border-radius:50%;background:#31d6bd;vertical-align:middle}.featured-widget-donut p:nth-of-type(2)::before{background:#ff70d2}.featured-widget-donut p:nth-of-type(3)::before{background:#b35dff}.featured-phone{position:absolute;right:2.7rem;bottom:.35rem;width:7.6rem;min-height:14.4rem;padding:.45rem;border-radius:1.45rem;background:#050711;box-shadow:0 18px 30px #03061461}.featured-phone-screen{position:relative;display:grid;gap:.55rem;min-height:13.5rem;padding:1rem .75rem;overflow:hidden;border-radius:1.05rem;background:radial-gradient(circle at 72% 12%,#655fff40,#0000 32%),#0c1328}.featured-phone-screen small{color:#ffffff94;font-size:.45rem;font-weight:700}.featured-phone-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.featured-phone-days i{width:.44rem;height:.44rem;border-radius:50%;background:#31d6bd}.featured-phone-days i:nth-child(n + 5){background:#ffffff2e}.featured-phone-screen p{display:flex;align-items:center;justify-content:space-between;gap:.3rem;margin:0;color:#ffffffa3;font-size:.46rem;font-weight:700}.featured-phone-screen p strong{font-size:.62rem}.featured-phone-screen span{color:#fff;font-size:.64rem;font-weight:800}.featured-phone-screen strong{color:#fff;font-size:1.35rem}.featured-phone-screen i,.featured-phone-screen b{display:flex;align-items:center;min-height:1.18rem;padding:0 .5rem 0 1.2rem;border-radius:.42rem;background:#ffffff29;color:#ffffffc2;font-size:.44rem;font-style:normal;font-weight:700}.featured-phone-screen i{background:linear-gradient(90deg,#31d6bd 0 76%,#ffffff24 76% 100%)}.featured-phone-screen .featured-phone-days i{min-height:0;padding:0;border-radius:50%;background:#31d6bd}.featured-phone-screen .featured-phone-days i:nth-child(n + 5){background:#ffffff2e}.featured-phone-screen b{position:relative}.featured-phone-screen b::before{content:"";position:absolute;left:.45rem;top:50%;width:.42rem;height:.42rem;border-radius:50%;background:#31d6bd;transform:translateY(-50%)}@media (min-width:1181px){.projects-featured-card{grid-template-columns:minmax(0,36%) minmax(0,64%);min-height:15.9rem}.projects-featured-copy{width:auto;align-self:center;padding:1.65rem 1.9rem}.projects-featured-copy h2{font-size:2rem}.projects-featured-copy-slide>p:not(.projects-featured-label),.projects-featured-copy>p:not(.projects-featured-label){max-width:31rem;font-size:.96rem;line-height:1.42}.projects-featured-visual{position:absolute;inset:0;min-height:0;pointer-events:none}.featured-star-one{left:34%}.featured-star-four{left:37%}.featured-star-seven{left:44%}.featured-laptop{left:44.2%;right:auto;bottom:.82rem;width:35.5%;min-width:0;max-width:none}.featured-laptop-screen{grid-template-columns:20.5% minmax(0,1fr);min-height:0;aspect-ratio:2.06;border-width:4px;border-radius:1.1rem 1.1rem .36rem .36rem}.featured-laptop-notch{top:.18rem;width:3.4rem;height:.58rem}.featured-laptop-base{width:108%;height:.92rem;margin:-.03rem 0 0 -4%}.featured-sidebar{gap:.52rem;padding:1.8rem .7rem 0}.featured-sidebar span:first-child{width:1.45rem;height:1.45rem}.featured-dashboard{padding:1.45rem .82rem .75rem}.featured-dashboard-top{margin-bottom:.7rem}.featured-dashboard-grid{gap:.62rem}.featured-widget{min-height:4.05rem;padding:.58rem}.featured-widget span{font-size:.5rem}.featured-widget strong{font-size:.95rem}.featured-widget i{left:.58rem;right:1.1rem;bottom:.62rem}.featured-widget b{right:.6rem;bottom:.62rem;width:4.6rem;height:2rem}.featured-widget-list p{font-size:.45rem}.featured-widget-donut{padding-left:4.2rem}.featured-widget-donut em{left:.62rem;bottom:.8rem;width:2.75rem;height:2.75rem}.featured-widget-donut strong{left:1.32rem;bottom:1.76rem;font-size:.66rem}.featured-phone{left:77.25%;right:auto;bottom:.46rem;width:8.65%;min-width:6.1rem;min-height:0;padding:.34rem;border-radius:1.2rem}.featured-phone-screen{min-height:0;aspect-ratio:9 / 17.8;gap:.38rem;padding:.72rem .56rem;border-radius:.86rem}.featured-phone-screen span{font-size:.54rem}.featured-phone-screen>strong{font-size:1.12rem}.featured-phone-screen b{min-height:.96rem;padding-left:1rem;font-size:.36rem}}.projects-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.82rem;justify-items:center;margin-top:.85rem}.projects-grid-card{display:block;min-width:0;width:min(100%,var(--projects-grid-card-size,19rem));aspect-ratio:1;padding:0;border-radius:50%;background:#0000;box-shadow:none;outline:0;text-decoration:none}.projects-grid-card[hidden]{display:none!important}.project-card-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:.34rem;max-width:78%}.projects-card-media{position:relative;align-items:stretch;justify-content:stretch;min-height:0;height:auto;padding:0;border:0;border-radius:.46rem;aspect-ratio:16 / 5.8;background:#eef3ff;color:#071044}.projects-card-media img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center top}.projects-card-media-contain img{padding:.8rem;object-fit:contain;background:linear-gradient(135deg,#f7f9ff 0,#eef3ff 100%)}.project-card-type,.project-card-status{position:absolute;top:.48rem;display:inline-flex;align-items:center;min-height:1.22rem;padding:0 .52rem;border-radius:.36rem;font-family:"IBM Plex Mono",monospace;font-size:.58rem;font-weight:800}.project-card-type{left:.48rem;background:#ffffffe6;color:#5b4dff;text-transform:uppercase}.project-card-status{right:.48rem;background:#fff7dc;color:#755500}.project-card-status-success{background:#ddf9eb;color:#0b7a47}.project-card-status-warning{background:#edf0ff;color:#3140b8}.project-card-meta .project-card-type,.project-card-meta .project-card-status{position:static;top:auto;right:auto;left:auto;min-height:1.08rem;padding:0 .46rem;border-radius:999px;font-size:.5rem;line-height:1;box-shadow:inset 0 0 0 1px #fff3}.project-showcase-copy h2{display:flex;gap:.32rem;align-items:baseline;min-width:0;color:#071044;font-size:1.12rem;line-height:1.05;letter-spacing:0}.projects-grid-card .project-showcase-copy p{display:-webkit-box;min-height:2.5rem;margin:.24rem 0 0;overflow:hidden;color:#303b65;font-size:.81rem;line-height:1.28;-webkit-box-orient:vertical;-webkit-line-clamp:2}.projects-grid-card .project-tag-row{gap:.38rem;margin:.52rem 0 0}.project-tag{min-height:1.24rem;margin-bottom:0;padding:0 .45rem;border-radius:.32rem;font-size:.58rem;line-height:1}.project-tag-blue{background:#dcecff;color:#1f61c9}.project-tag-yellow{background:#fff0c7;color:#916300}.project-tag-green{background:#dff8e8;color:#147944}.project-tag-cyan{background:#dff2ff;color:#116aa3}.project-tag-purple{background:#ece6ff;color:#5632c7}html[data-theme="dark"] .projects-showcase-shell{background:radial-gradient(circle at 12% 7%,#6842c43d,#0000 26rem),radial-gradient(circle at 88% 14%,#ff4eb62e,#0000 24rem),#0d1122}html[data-theme="dark"] .projects-overview-panel .availability-pill,html[data-theme="dark"] .projects-grid-card{background:#10162cd1;color:#eef1ff;box-shadow:inset 0 0 0 1px #ffffff1a,0 12px 24px #0000002e}html[data-theme="dark"] .projects-overview-panel .projects-copy h1,html[data-theme="dark"] .projects-overview-stats dd,html[data-theme="dark"] .project-showcase-copy h2,html[data-theme="dark"] .projects-grid-card .project-showcase-copy a{color:#eef1ff}html[data-theme="dark"] .projects-overview-panel .projects-lead,html[data-theme="dark"] .projects-overview-stats dt,html[data-theme="dark"] .projects-grid-card .project-showcase-copy p{color:#bfc6df}html[data-theme="dark"] .projects-overview-stats div + div{border-left-color:#ffffff1f}html[data-theme="dark"] body.projects-overview-page .projects-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size);color:#070d36}html[data-theme="dark"] body.projects-overview-page .projects-overview-panel .availability-pill{background:#fff;color:#071044;box-shadow:inset 0 0 0 1px #101c4c1a,0 9px 22px #1c265b1c}html[data-theme="dark"] body.projects-overview-page .projects-grid-card{background:#ffffffe6;color:#071044;box-shadow:inset 0 0 0 1px #101c4c1a,0 9px 22px #1c265b1c}html[data-theme="dark"] body.projects-overview-page .projects-overview-panel .projects-copy h1,html[data-theme="dark"] body.projects-overview-page .projects-grid-card .project-showcase-copy a{color:#071044}html[data-theme="dark"] body.projects-overview-page .project-showcase-copy h2{color:#071044}html[data-theme="dark"] body.projects-overview-page .projects-overview-panel .projects-lead,html[data-theme="dark"] body.projects-overview-page .projects-grid-card .project-showcase-copy p{color:#596486}@media (max-width:1180px){.projects-overview-main{padding-top:7rem}.projects-overview-intro{grid-template-columns:1fr}.projects-overview-stats{width:min(100%,42rem)}.projects-featured-card{grid-template-columns:1fr}.projects-featured-copy{padding-bottom:1.2rem}.projects-featured-visual{min-height:17rem}.featured-laptop{right:8.5rem;width:min(40rem,72%)}.projects-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:880px){.projects-overview-panel .projects-copy h1{font-size:4rem}.projects-overview-stats{grid-template-columns:repeat(3,minmax(8.2rem,1fr));overflow-x:auto;padding-bottom:.35rem}.projects-overview-stats div{min-width:8.2rem}.projects-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-featured-visual{overflow:hidden}.featured-laptop{right:5.6rem;width:33rem;min-width:33rem}.featured-phone{right:1rem}}@media (max-width:760px){.projects-overview-main{padding:7.2rem .85rem .95rem}.projects-overview-panel{padding:0}.projects-overview-panel .projects-copy h1{font-size:3.05rem;line-height:1}.projects-overview-panel .projects-lead{font-size:.95rem}.projects-overview-stats{grid-template-columns:1fr;width:100%;overflow:visible}.projects-overview-stats div{grid-template-columns:auto minmax(0,1fr);justify-items:start;align-items:center;min-height:auto;padding:.7rem 0;text-align:left}.projects-overview-stats div + div{border-left:0;border-top:1px solid #101c4c1f}.projects-overview-stats dd{order:0;grid-column:2;grid-row:1;justify-self:end}.projects-overview-stats dt{grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr);justify-items:start;align-items:center}.projects-stat-icon{width:2.45rem;height:2.45rem}.projects-featured-card{min-height:0;border-radius:.72rem}.projects-featured-copy{padding:1.25rem}.projects-featured-copy h2{font-size:1.75rem}.projects-featured-copy-slide>p:not(.projects-featured-label),.projects-featured-copy>p:not(.projects-featured-label){font-size:.92rem}.projects-featured-actions{display:grid;grid-template-columns:1fr}.projects-featured-primary,.projects-featured-secondary{width:100%}.projects-featured-visual{min-height:13.5rem}.featured-laptop{right:4.4rem;bottom:calc(.66rem + 1.55rem + 10px);width:26rem;min-width:26rem}.featured-laptop-screen{grid-template-columns:4.4rem minmax(0,1fr);min-height:10.2rem;border-width:3px}.featured-sidebar{padding:1.6rem .55rem 0}.featured-dashboard{padding:1.25rem .65rem .65rem}.featured-dashboard-grid{gap:.48rem}.featured-widget{min-height:3.9rem;padding:.5rem}.featured-widget strong{font-size:.9rem}.featured-phone{right:.6rem;bottom:calc(.66rem + 1.55rem + 10px);width:5.7rem;min-height:10.5rem;border-radius:1.1rem}.featured-phone-screen{min-height:9.6rem;padding:.8rem .55rem}.projects-overview-grid{grid-template-columns:1fr;gap:.75rem}.projects-card-media{aspect-ratio:16 / 7.3}.projects-grid-card .project-showcase-copy p{min-height:0}}@media (max-width:420px){.projects-overview-panel .projects-copy h1{font-size:2.48rem}.projects-featured-card{margin-top:.7rem}.projects-featured-copy{padding:1rem}.projects-featured-label{margin-bottom:.72rem;padding:.36rem .6rem;font-size:.64rem}.projects-featured-copy h2{font-size:1.55rem}.projects-featured-copy-slide>p:not(.projects-featured-label),.projects-featured-copy>p:not(.projects-featured-label){margin-top:.62rem;font-size:.86rem;line-height:1.4}.projects-featured-card .project-tag-row{margin-top:.78rem;gap:.42rem}.projects-featured-card .project-tag{min-height:1.55rem;padding:0 .5rem;font-size:.61rem}.projects-featured-actions{gap:.65rem;margin-top:.95rem}.projects-featured-primary,.projects-featured-secondary{min-height:2.48rem;font-size:.72rem}.projects-featured-visual{min-height:9.9rem}.featured-laptop{right:4.4rem;bottom:calc(.66rem + 1.55rem + 10px);width:18rem;min-width:18rem}.featured-laptop-screen{min-height:0;aspect-ratio:2.06}.featured-phone{right:.62rem;bottom:calc(.66rem + 1.55rem + 10px);width:4.35rem;min-height:8.2rem}}.featured-laptop--hookies .featured-laptop-screen{display:block;overflow:hidden;background:linear-gradient(#0a0b1e14,#0a0b1e14),#0a1024 url(assets/hookies-laptop-background-1440.webp) center top / cover no-repeat}.featured-laptop--hookies .featured-laptop-screen>:not(.featured-screen-slider){display:none}.featured-phone--hookies .featured-phone-screen{display:block;min-height:13.5rem;padding:0;overflow:hidden;background:#fff url(assets/hookies-phone-background-720.webp) center top / cover no-repeat}.featured-phone--hookies .featured-phone-screen>:not(.featured-screen-slider){display:none}@media (min-width:1181px){.featured-phone--hookies .featured-phone-screen{min-height:0;aspect-ratio:1179 / 2379;border-radius:.86rem}}@media (max-width:760px){.featured-phone--hookies .featured-phone-screen{min-height:9.6rem;padding:0}}@media (max-width:420px){.featured-phone--hookies .featured-phone-screen{min-height:7.4rem}}body.projects-overview-page .topbar-home2{background:#ffffff4d;box-shadow:none}body.projects-overview-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff61 56%,#fffffff5 100%)}body.projects-overview-page .brand-mark,body.projects-overview-page .brand-mark-text{color:#171723}body.projects-overview-page .nav-home2 a{color:#343447}body.projects-overview-page .nav-home2 a:hover{background:#0000;color:#4c5dff}body.projects-overview-page .nav-home2 a.active{background:#7b72ff24;color:#4c5dff}body.projects-overview-page .download-btn{border:0;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;box-shadow:0 14px 30px #5c63a42e}body.projects-overview-page .theme-toggle-switch{--theme-toggle-light-ink:var(--theme-blue-dark);background:#0000}@media (max-width:760px){body.projects-overview-page .nav-home2 a{background:#ffffff8f;box-shadow:inset 0 0 0 1px #ffffff6b;color:#343447}body.projects-overview-page .nav-home2 a.active{background:#7b72ff24;color:#4c5dff}}body.about-page{min-height:100dvh;height:auto;overflow:auto}.about-shell{min-height:100dvh;height:auto;overflow:auto;background:linear-gradient(180deg,#fffffff5 0,#ffffffe6 52%,#faf7fffa 100%),radial-gradient(circle at 12% 10%,#ff5cb11a,#0000 32%),radial-gradient(circle at 88% 6%,#5061ff1f,#0000 34%)}.about-shell .topbar-home2{background:var(--header-gradient);box-shadow:0 16px 34px #090f2b38}.about-shell .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#fff3 54%,#ffffffd1 100%)}.about-shell .brand-mark,.about-shell .brand-mark-text,.about-shell .nav-home2 a{color:#fff}.about-shell .brand-mark-icon img{filter:brightness(0) invert(1)}.about-shell .nav-home2 a:hover,.about-shell .nav-home2 a.active{background:#fff3;color:#fff}.about-shell .download-btn{border:1px solid #ffffffc2;background:#ffffff1f;color:#fff;box-shadow:none}.about-shell .theme-toggle-switch{--theme-toggle-light-ink:#fff;background:#ffffff24}body.saturne-detail-page .topbar-home2,html[data-theme="dark"] body.saturne-detail-page .topbar-home2{background:var(--header-gradient);box-shadow:0 16px 34px #090f2b38}html[data-theme="dark"] body.saturne-detail-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff3d 54%,#ffffffdb 100%)}.about-main{padding:6.6rem 1.2rem 1.6rem}.about-panel{width:min(100%,90rem);padding:2rem 2rem 1.5rem;overflow:visible;background:#0000;box-shadow:none}.about-panel .about-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(25rem,1.08fr);gap:clamp(2rem,5vw,4.8rem);align-items:center;min-height:0}.about-panel .about-copy{align-self:start;display:flex;flex-direction:column;min-height:0;padding:20px 0 0}.about-kicker{display:inline-flex;align-items:center;width:fit-content;margin:0 0 .6rem;padding:.34rem .78rem;border-radius:999px;background:#f1f1f8;color:#0c1350;font-family:"IBM Plex Mono",monospace;font-size:.82rem;font-weight:700}.about-panel .about-copy h1{margin:0;width:fit-content;background:linear-gradient(90deg,#f03491 0,#7a42d6 52%,#4059ff 100%);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:clamp(4.8rem,9vw,7.2rem);line-height:.92;letter-spacing:0}.about-panel .about-copy h2{max-width:18ch;margin:1.25rem 0 0;color:#07114a;font-size:clamp(1.7rem,2.2vw,2.25rem);line-height:1.18;letter-spacing:0}.about-panel .about-lead{max-width:36rem;margin:1.6rem 0 0;color:#293060;font-size:1.08rem;line-height:1.7}.about-hero-proof{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.45rem}.about-hero-proof span{display:inline-flex;align-items:center;min-height:2.1rem;padding:0 .8rem;border:1px solid #4049e829;border-radius:.5rem;background:#ffffff94;color:#1d255e;font-family:"IBM Plex Mono",monospace;font-size:.76rem;font-weight:800}.about-profile-portrait{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:center;justify-self:center;width:min(100%,30rem);min-width:0;min-height:clamp(calc(18.5rem + 100px),calc(34vw + 100px),calc(27.4rem + 100px));margin:0;overflow:hidden;padding:clamp(.65rem,1.15vw,.95rem) clamp(.7rem,1.25vw,1rem) 0;border:1px solid #161e4a17;border-radius:.5rem;background:#ffffffe6;box-shadow:none;isolation:auto}.about-profile-portrait::before{content:none;display:none}body.projects-overview-page .projects-featured-card::before{content:"";position:absolute;inset:0;z-index:0;border-radius:.62rem;background:var(--portfolio-blue-band);box-shadow:0 24px 42px #2b306429,inset 0 0 0 1px #ffffff0d;pointer-events:none}body.projects-overview-page .projects-featured-card::after{content:"";position:absolute;left:1.4rem;right:1.4rem;bottom:-1.95rem;z-index:-1;height:4.6rem;border-radius:0 0 1.15rem 1.15rem;background:linear-gradient(180deg,#070d3657,#0000);filter:blur(1.2rem);opacity:.82;pointer-events:none}body.projects-overview-page .projects-featured-card::before,body.projects-overview-page .projects-featured-card::after{content:none;display:none}body.projects-overview-page .projects-featured-card>.portfolio-starfield-canvas--band{display:block!important;mix-blend-mode:normal!important;opacity:1!important;z-index:1!important}.about-profile-image{position:relative;z-index:1;width:auto;max-width:min(92%,26.25rem);height:clamp(calc(17rem + 100px),calc(34vw + 100px),calc(27rem + 100px));max-height:100%;object-fit:contain;object-position:center bottom;filter:none;-webkit-mask-image:none;mask-image:none}.about-client-panel{display:grid;grid-template-columns:minmax(17rem,.72fr) minmax(0,1.28fr);gap:clamp(1.5rem,4vw,3.2rem);margin-top:0;padding:clamp(1rem,2.4vw,1.55rem) 0;border-block:1px solid #161e4a1a}.about-client-panel__intro{align-self:center}.about-client-panel h2{max-width:12ch;margin:0;color:#07114a;font-size:clamp(2rem,4vw,3.35rem);line-height:.96;letter-spacing:0}.about-client-panel__intro p{max-width:25rem;margin:1rem 0 0;color:#343b68;font-size:1rem;line-height:1.62}.about-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.about-service-card{display:grid;min-height:14rem;padding:1.15rem;border:1px solid #161e4a1a;border-radius:.5rem;background:#ffffffd1}.about-service-card img{width:2.15rem;height:2.15rem;margin-bottom:1rem}.about-service-card strong{display:block;color:#07114a;font-size:1.08rem;line-height:1.18}.about-service-card p{margin:.65rem 0 0;color:#4f557d;font-size:.94rem;line-height:1.52}.about-service-card>span{align-self:end;margin-top:1.1rem;color:#4050c8;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:800;line-height:1.35}.about-panel .about-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:clamp(.8rem,1.8vw,1.35rem)}.about-panel .about-card,.about-panel .about-cta-banner{min-width:0;padding:1.7rem;border:1px solid #161e4a14;border-radius:1rem;background:#ffffffd1;box-shadow:0 18px 38px #26275214}.about-panel .about-card-full,.about-panel .about-cta-banner{grid-column:1 / -1}.about-panel .about-card-tech,.about-panel .about-card-stack,.about-panel .about-card-values,.about-panel .about-journey-card{grid-row:auto;grid-column:auto;margin-top:0}.about-panel .about-card-full,.about-panel .about-journey-card,.about-panel .about-card-values{grid-column:1 / -1}.about-panel .about-card h3{display:flex;align-items:center;gap:.75rem;margin:0 0 1.35rem;color:#07114a;font-size:1.45rem;line-height:1.1;letter-spacing:0}.about-panel .about-card h3::before,.about-panel .about-card h3::after{content:none;display:none}.about-panel .about-card h3 img{width:1.55rem;height:1.55rem;object-fit:contain}.about-card-note{max-width:36rem;margin:-.45rem 0 1.35rem;color:#4f557d;font-size:.94rem;line-height:1.55}#about-journey-title{scroll-margin-top:6rem}.about-panel .about-journey-card{position:relative;z-index:3;min-height:clamp(29rem,36vw,35rem);padding-top:0;overflow:visible;background:#0000;border-color:#0000;box-shadow:none}.about-river-stage{position:absolute;top:clamp(-12.5rem,-15vw,-8.6rem);left:50%;z-index:1;width:100vw;height:clamp(28rem,42vw,39rem);transform:translateX(-50%);pointer-events:none}.about-river-flow{display:block;width:100%;height:100%;opacity:1}.about-river-dissolve{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;pointer-events:none}.about-journey-list{position:relative;z-index:3;display:block;height:clamp(22rem,28vw,27rem);margin:0;padding:0;list-style:none}.about-journey-step{position:absolute;--journey-color:#5a55df;--journey-accent-color:var(--journey-color);--marker-x:12%;--marker-y:54%;--marker-size:clamp(4.1rem,6.1vw,5.85rem);left:var(--marker-x);top:var(--marker-y);width:clamp(12rem,17vw,15.5rem);min-width:0}.about-journey-list::before,.about-journey-list::after,.about-journey-step::before{content:none;display:none}.about-journey-step-teal{--journey-color:#305f8c;--journey-accent-color:#8aa7ff;--marker-x:21%;--marker-y:60%}.about-journey-step-blue{--journey-color:#4f5ce8}.about-journey-step-coral{--journey-color:#5f48b8;--journey-accent-color:#9b83ff;--marker-x:50%;--marker-y:35%}.about-journey-step-violet{--journey-color:#294fa4;--journey-accent-color:#68bbff;--marker-x:88%;--marker-y:48%}.about-journey-step-purple{--journey-color:#a345be}.about-journey-step-pink{--journey-color:#ec3d91}.about-river-marker{position:absolute;left:0;top:0;z-index:1;display:block;width:var(--marker-size);height:var(--marker-size);overflow:visible;border-radius:0;background:#0000;box-shadow:none;transform:translate3d(-50%,-50%,0);animation:about-river-marker-float 5.8s ease-in-out infinite}.about-river-marker__canvas{display:block;width:100%;height:100%}.about-journey-step-copy{position:relative;z-index:2;display:block;text-align:center;text-shadow:0 1px 18px #ffffffd1;transform:translate3d(-50%,calc(var(--marker-size) * .5 + clamp(.72rem,1.1vw,1.15rem)),0)}.about-journey-date{position:absolute;left:0;z-index:3;display:block;width:max-content;max-width:11rem;margin:0;color:var(--journey-color);font-family:"IBM Plex Mono",monospace;font-size:.94rem;font-weight:800;line-height:1.25;text-align:center;text-wrap:balance;text-shadow:0 1px 18px #ffffffd1;top:calc(-1 * (var(--marker-size) * .5 + clamp(.46rem,.8vw,.82rem) + 1.18rem));transform:translateX(-50%)}.about-journey-step-copy>.about-journey-date{display:none!important}.about-journey-step strong{display:block;color:#07114a;font-size:1rem;line-height:1.3}.about-journey-step p{margin:.55rem 0 0;color:#4f557d;font-size:.94rem;line-height:1.48}.about-journey-badge{display:inline-flex;align-items:center;min-height:1.95rem;margin-top:1.05rem;padding:0 .7rem;border-radius:.5rem;background:color-mix(in srgb,var(--journey-accent-color) 13%,#fff);color:var(--journey-color);font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:800;line-height:1}.about-skill-groups{display:grid;gap:1.15rem}.about-skill-group h4{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 .55rem;color:#4049e8;font-size:.92rem;line-height:1.2}.about-skill-group h4 span{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .45rem;border-radius:.4rem;background:#4050c814;color:#4050c8;font-family:"IBM Plex Mono",monospace;font-size:.64rem;font-weight:800;line-height:1}.about-chip-list{display:flex;flex-wrap:wrap;gap:.72rem}.about-chip-list span{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:0 .9rem;border-radius:.55rem;background:#f0f1f7;color:#1d255e;font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:700}.about-stack-pyramid-layout{display:grid;grid-template-columns:minmax(16rem,.95fr) minmax(14rem,1fr);gap:clamp(1.7rem,4vw,3rem);align-items:center;min-height:23rem}.about-stack-pyramid{display:grid;justify-items:center;gap:.72rem;width:min(100%,25.5rem);margin:0 auto}.about-stack-tier{display:inline-flex;align-items:center;justify-content:center;height:clamp(4.1rem,6.4vw,5.55rem);border-radius:.78rem;background:radial-gradient(circle at 24% 28%,#ffffff6b,#0000 30%),linear-gradient(115deg,#7e6fffc7 0,#ef55a7c7 100%);clip-path:polygon(11% 0,89% 0,100% 100%,0 100%)}.about-stack-symbol{width:2.55rem;height:2.55rem;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}.about-stack-tier-interface{width:31%;min-width:6.6rem;color:#4d5cf4;background:radial-gradient(circle at 32% 22%,#ffffff61,#0000 32%),linear-gradient(135deg,#c7beffd6 0,#d4bdffb8 100%)}.about-stack-tier-api{width:50%;min-width:11rem;color:#7a45ec;background:radial-gradient(circle at 24% 20%,#ffffff52,#0000 31%),linear-gradient(135deg,#b3a3f5d6 0,#e3afe0bd 100%)}.about-stack-tier-data{width:76%;color:#fff;background:radial-gradient(circle at 26% 22%,#ffffff4d,#0000 32%),linear-gradient(115deg,#8e7bf6d1 0,#ed80cad1 100%)}.about-stack-tier-tools{width:100%;color:#fff}.about-stack-list{display:grid;align-content:center;gap:clamp(1.3rem,2.8vw,2.3rem)}.about-stack-list article{display:block;min-width:0}.about-stack-list strong{display:block;color:#07114a;font-size:1.08rem;line-height:1.2}.about-stack-list p{margin:.35rem 0 0;color:#4f557d;font-size:1rem;line-height:1.5}.about-panel .about-values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}.about-panel .about-value-card{display:grid;align-content:start;gap:.9rem;min-height:10rem;padding:1.3rem;border:1px solid #161e4a14;border-radius:.9rem;background:#ffffffb8;box-shadow:none}.about-panel .about-value-card img{width:2.25rem;height:2.25rem;object-fit:contain}.about-panel .about-value-card strong{color:#07114a;font-size:1.06rem;line-height:1.2}.about-panel .about-value-card p{margin:0;color:#4f557d;font-size:.94rem;line-height:1.55}.about-panel .about-cta-banner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:0;padding:1.3rem 1.6rem;background:var(--portfolio-blue-band);color:#fff}.about-panel .about-cta-copy{display:flex;align-items:center;gap:1.2rem}.about-panel .about-cta-icon{display:inline-flex;align-items:center;justify-content:center;width:4.2rem;height:4.2rem;border-radius:1rem;background:#ffffff1f;flex:0 0 auto}.about-panel .about-cta-icon img{width:3.3rem;height:3.3rem;object-fit:contain;filter:brightness(0) invert(1);animation:none}.about-panel .about-cta-copy h2{margin:0;color:#fff;font-size:1.6rem;line-height:1.1}.about-panel .about-cta-copy p{margin:.45rem 0 0;color:#ffffffeb;line-height:1.5}.about-contact-button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-width:13.5rem;min-height:3.6rem;padding:0 1.35rem;border-radius:.8rem;background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);font-family:"IBM Plex Mono",monospace;font-weight:800;text-decoration:none;box-shadow:var(--portfolio-cta-night-shadow)}.about-contact-button img{width:1.25rem;height:1.25rem;object-fit:contain}@keyframes about-river-marker-float{0%,100%{transform:translate3d(-50%,-50%,0) rotate(-1deg)}50%{transform:translate3d(-50%,calc(-50% - .42rem),0) rotate(1.4deg)}}@keyframes about-river-marker-float-centered{0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}50%{transform:translate3d(0,-.35rem,0) rotate(1.4deg)}}html[data-theme="dark"] .about-shell{background:linear-gradient(180deg,#0d1122fa 0,#12162dfa 100%),radial-gradient(circle at 12% 10%,#ff5cb124,#0000 32%),radial-gradient(circle at 88% 6%,#5061ff29,#0000 34%)}html[data-theme="dark"] .about-kicker,html[data-theme="dark"] .about-panel .about-card,html[data-theme="dark"] .about-panel .about-value-card{border-color:#ffffff1a;background:#121830c7;box-shadow:0 18px 38px #0003}html[data-theme="dark"] .about-kicker,html[data-theme="dark"] .about-panel .about-copy h2,html[data-theme="dark"] .about-panel .about-card h3,html[data-theme="dark"] .about-journey-step strong,html[data-theme="dark"] .about-stack-list strong,html[data-theme="dark"] .about-panel .about-value-card strong{color:#f2f4ff}html[data-theme="dark"] .about-panel .about-lead,html[data-theme="dark"] .about-journey-step p,html[data-theme="dark"] .about-stack-list p,html[data-theme="dark"] .about-panel .about-value-card p{color:#c5cbe4}html[data-theme="dark"] .about-chip-list span{background:#f0f1f7;color:#1d255e}@media (max-width:1180px){.about-panel .about-hero{grid-template-columns:1fr}.about-panel .about-copy{align-self:auto;padding:0}.about-profile-portrait{max-width:43rem;width:100%;justify-self:center}.about-panel .about-content-grid{grid-template-columns:1fr}.about-client-panel{grid-template-columns:1fr}.about-client-panel h2{max-width:18ch}.about-panel .about-values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.about-panel .about-content-grid{margin-top:clamp(.65rem,2.8vw,1rem)}.about-service-grid{grid-template-columns:1fr}.about-panel .about-journey-card{min-height:0}.about-river-stage{top:.2rem;left:-1rem;width:calc(100% + 2rem);height:100%;opacity:.5;transform:none}.about-journey-list{display:grid;height:auto;justify-items:center;gap:2.05rem;padding:.2rem 0 0}.about-journey-step{position:relative;display:grid;justify-items:center;left:auto;top:auto;width:min(100%,18rem);transform:none}.about-river-marker{--marker-size:3.65rem;position:relative;left:auto;top:auto;margin:0 0 .75rem;transform:none;animation-name:about-river-marker-float-centered}.about-journey-date{position:relative;left:auto;top:auto;width:auto;max-width:100%;margin:0 0 .62rem;transform:none}.about-journey-step-copy{text-align:center;transform:none}}@media (max-width:760px){.about-main{padding:7.15rem .85rem 1rem}.about-panel{width:100%;padding:1rem .85rem}.about-shell .nav-home2 a{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a}.about-panel .about-copy h1{font-size:clamp(3.55rem,17vw,5rem)}.about-panel .about-copy h2{max-width:17ch;font-size:1.48rem;overflow-wrap:break-word}.about-panel .about-lead{font-size:.98rem;line-height:1.58}.about-profile-portrait{min-height:calc(20.8rem + 100px)}.about-profile-image{max-width:88%;height:calc(20rem + 100px)}.about-panel .about-content-grid{gap:.9rem;margin-top:.65rem}.about-hero-proof{gap:.5rem}.about-hero-proof span{min-height:1.95rem;padding-inline:.65rem;font-size:.68rem}.about-client-panel{margin-top:0;padding:.95rem 0}.about-client-panel h2{font-size:1.85rem;line-height:1.02}.about-service-card{min-height:0;padding:1rem}.about-panel .about-card,.about-panel .about-cta-banner{padding:1rem;border-radius:.9rem}.about-panel .about-card h3{font-size:1.3rem}.about-stack-pyramid-layout{grid-template-columns:1fr;gap:1.25rem;min-height:0}.about-stack-pyramid{width:min(100%,18rem);gap:.5rem}.about-stack-tier{height:3.45rem;border-radius:.6rem}.about-stack-symbol{width:2rem;height:2rem}.about-stack-tier-interface{min-width:5rem}.about-stack-tier-api{min-width:8rem}.about-stack-list{gap:1rem}.about-stack-list strong{font-size:1rem}.about-stack-list p{font-size:.92rem}.about-panel .about-values-grid{grid-template-columns:1fr;gap:.85rem}.about-panel .about-value-card{min-height:0;padding:1rem}.about-panel .about-cta-banner,.about-panel .about-cta-copy{display:grid;align-items:stretch}.about-contact-button{width:100%;min-width:0}}body.home-showcase-page{min-height:100dvh;height:auto;overflow:auto;background:#fff}.home-showcase-shell{min-height:100dvh;height:auto;overflow:auto;background:radial-gradient(circle at 4% 16%,#ff5cb114,#0000 28%),radial-gradient(circle at 86% 10%,#4c5dff17,#0000 28%),linear-gradient(180deg,#fff 0,#fff 48%,#fbfcff 100%);color:#101642}.home-modern-main{--home-modern-inline-padding:2.4rem;--home-title-gradient:var(--wave-title-reference-gradient);padding:8.3rem 2.4rem 1.4rem}.home-modern-panel{width:min(100%,94rem);margin:0 auto}.home-hero-grid{--home-blue-band-offset:calc(clamp(3.283rem,4.263vw,4.165rem) + 4rem);--home-blue-band-height:calc(16.95rem + 68px);display:grid;grid-template-columns:minmax(24rem,.95fr) minmax(34rem,1.05fr);gap:clamp(2rem,3.8vw,4rem);align-items:start}.home-hero-copy{min-width:0;padding:1.55rem 0 0 .35rem}.home-hero-copy h1{max-width:16ch;margin:0;background:var(--home-title-gradient);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:clamp(3.65rem,4.8vw,4.8rem);line-height:1.04;letter-spacing:0}.home-hero-copy h1>span{display:block}.home-liquid-wave-text{position:relative;isolation:isolate;width:fit-content;max-width:100%;background:var(--home-title-gradient);-webkit-background-clip:text;background-clip:text;color:#0000;-webkit-text-fill-color:#0000}.home-title-exclamation,.about-title-question,.contact-title-question{display:inline-block;background:linear-gradient(90deg,#a540d2 0,#2d62ff 100%);-webkit-background-clip:text;background-clip:text;color:#0000;-webkit-text-fill-color:#0000;line-height:.9;transform:rotate(30deg);transform-origin:50% 70%}.wave-text__visual,.wave-text__word,.wave-text__space,.wave-text__char{font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;font-optical-sizing:inherit;font-kerning:inherit;font-feature-settings:inherit;letter-spacing:inherit;line-height:inherit;text-rendering:inherit}.wave-text__visual{display:inline}.wave-text__word{display:inline-block;white-space:nowrap}.wave-text__space{display:inline-block;white-space:pre}.wave-text__char{display:inline-block;background-image:var(--wave-char-background,inherit);background-position:var(--wave-char-background-position,0 0);background-size:var(--wave-char-background-size,auto);-webkit-background-clip:text;background-clip:text;color:var(--wave-char-color,currentColor);-webkit-text-fill-color:var(--wave-char-text-fill,currentColor);vertical-align:baseline;transform:translateY(0);transform-origin:50% 100%;will-change:transform}@media (prefers-reduced-motion:no-preference){[data-wave-reveal="true"]:not(.is-wave-text-ready){opacity:0}[data-wave-reveal="true"].is-wave-text-ready .wave-text__char{opacity:0;will-change:transform,opacity}}@supports ((filter:url(#availability-liquid-wave-filter)) and ((-webkit-mask-image:linear-gradient(90deg,#0000,#000)) or (mask-image:linear-gradient(90deg,#0000,#000)))){.home-liquid-wave-text:not(.wave-text)::after{content:attr(data-text);position:absolute;inset:0;z-index:1;display:block;background:var(--home-title-gradient);-webkit-background-clip:text;background-clip:text;color:#0000;-webkit-text-fill-color:#0000;filter:url(#availability-liquid-wave-filter);opacity:0;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 28%,#000 72%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 28%,#000 72%,#0000 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:34% 165%;mask-size:34% 165%;-webkit-mask-position:-45% 50%;mask-position:-45% 50%;animation:home-liquid-wave-pass 4s linear infinite;will-change:opacity,mask-position,-webkit-mask-position}}.home-hero-lead{max-width:39rem;margin:1.3rem 0 0;color:#182052;font-size:clamp(1.3rem,1.7vw,1.52rem);font-weight:700;line-height:1.4}.home-hero-lead--personal{max-width:40rem;font-size:1.12rem;font-weight:400;line-height:1.5}.home-hero-lead--personal span{display:block;font-weight:400}.home-hero-lead--personal span + span{margin-top:.82rem}body.home-showcase-page .home-hero-lead.home-hero-lead--personal{background:none!important;color:var(--header-blue-night)!important;-webkit-text-fill-color:currentColor!important}body.home-showcase-page .home-appear-item{display:block;background:none!important;color:var(--header-blue-night)!important;-webkit-text-fill-color:currentColor!important}body.home-showcase-page .home-appear-love{font-size:1.5rem;font-weight:900;line-height:1.14}body.home-showcase-page .home-magic-emphasis{font-weight:900}body.home-showcase-page .home-appear-item,body.home-showcase-page .home-hero-actions>a,body.home-showcase-page .home-value-card{opacity:0;translate:0 50%;animation:home-stagger-appear .8s ease-in-out var(--home-appear-delay,0s) both}@keyframes home-stagger-appear{0%{opacity:0;translate:0 50%}100%{opacity:1;translate:0 0}}@media (prefers-reduced-motion:reduce){body.home-showcase-page .home-appear-item,body.home-showcase-page .home-hero-actions>a,body.home-showcase-page .home-value-card{opacity:1;translate:0 0;animation:none}}.home-hero-actions{display:flex;gap:1.25rem;flex-wrap:wrap;margin-top:2.35rem}.home-primary-action,.home-secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3.7rem;border-radius:.95rem;font-family:"IBM Plex Mono",monospace;font-size:1rem;font-weight:800;text-decoration:none;transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}.home-primary-action{min-width:17.4rem;padding:0 1.55rem;background:linear-gradient(90deg,#3e42f4e0 0,#e83d97e0 100%),var(--portfolio-blue-band);color:#fff;box-shadow:0 18px 34px #524cd533}.home-secondary-action{min-width:14rem;padding:0 1.4rem;border:1px solid var(--portfolio-cta-night-border);background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);box-shadow:var(--portfolio-cta-night-shadow)}.home-secondary-action img{width:1.35rem;height:1.35rem;object-fit:contain;filter:brightness(0) invert(1)}.home-secondary-action-label{background:none;color:var(--portfolio-cta-night-color);-webkit-text-fill-color:var(--portfolio-cta-night-color)}.home-hero-side{position:relative;z-index:0;display:grid;gap:1rem;width:calc(100% + var(--home-modern-inline-padding));margin-top:var(--home-blue-band-offset);min-width:0}.home-code-card{position:relative;display:grid;align-items:center;overflow:visible;height:var(--home-blue-band-height);min-height:var(--home-blue-band-height);padding:.85rem 1rem .72rem;background:#0000;color:#dce7ff;isolation:isolate}.home-hero-copy{position:relative;z-index:1}.home-code-layout{position:relative;display:grid;grid-template-columns:1fr;place-items:center;gap:0;align-items:center;min-height:100%;margin-top:0}.home-modern-main,.projects-overview-main{position:relative}.home-connectivity-sphere-2d,.projects-connectivity-sphere-2d{--connectivity-sphere-scale-x:1.2;--connectivity-sphere-scale-y:1.2;position:fixed;top:50dvh;z-index:0;width:100dvh;height:100dvh;pointer-events:none;transform:translate(-50%,-50%);isolation:isolate}.home-connectivity-sphere-2d{--connectivity-sphere-scale-x:-1.2;left:100%}.projects-connectivity-sphere-2d{left:0}.home-connectivity-sphere-2d img,.projects-connectivity-sphere-2d img{position:relative;display:block;width:100%;height:100%;object-fit:contain;opacity:.9;mask-image:url(assets/connectivity-sphere-2d.webp);mask-mode:luminance;mask-position:center;mask-repeat:no-repeat;mask-size:contain;filter:saturate(1.08) drop-shadow(0 0 1.15rem #4ddcff2e) drop-shadow(0 0 1.65rem #f55ccf24);transform:scale(var(--connectivity-sphere-scale-x),var(--connectivity-sphere-scale-y));transform-origin:center}.home-connectivity-sphere-2d::before,.projects-connectivity-sphere-2d::before{content:"";position:absolute;left:50%;top:50%;z-index:1;width:113%;height:113%;border-radius:50%;background:#0000;filter:none;opacity:0;pointer-events:none;transform:translate(-50%,-50%);-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 1.9px),#000 calc(100% - 1.35px),#000 calc(100% - .35px),#0000 100%);mask:radial-gradient(farthest-side,#0000 calc(100% - 1.9px),#000 calc(100% - 1.35px),#000 calc(100% - .35px),#0000 100%)}.home-connectivity-sphere-2d img{transform:scale(var(--connectivity-sphere-scale-x),var(--connectivity-sphere-scale-y))}body.projects-overview-page{--projects-orbit-focus-size:clamp(10.75rem,23dvh,14.5rem)}.projects-orbit-focus{position:fixed;left:var(--projects-orbit-focus-x,56.5dvh);top:var(--projects-orbit-focus-y,50dvh);z-index:12;display:none;width:var(--projects-orbit-focus-size);aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%)}.projects-orbit-focus::after{content:"";position:absolute;inset:0;background:conic-gradient(#0000 10%,#ffe9f5,#f0dcff,#ced8ff,#fbd8ee 23%,#0000 31% 58%,#efdfff,#d5ddff,#0000 76%);animation:orbitNeon 2.8s linear infinite;-webkit-mask:radial-gradient(farthest-side,#0000 91%,#000 95%,#0000)}@keyframes orbitNeon{to{rotate:1turn}}@media (min-width:1181px){body.projects-overview-page.projects-logo-orbit-active .projects-orbit-focus{display:block}}body.home-showcase-page .home-showcase-shell,body.projects-overview-page .projects-showcase-shell{overflow-x:hidden}body.projects-overview-page .projects-overview-panel{position:relative;z-index:2}@media (min-width:1241px){.home-hero-copy{display:grid;grid-template-rows:calc(var(--home-blue-band-offset) - 1.55rem) minmax(0,1fr) auto;min-height:calc(var(--home-blue-band-offset) + var(--home-blue-band-height))}.home-hero-copy h1{align-self:start}.home-hero-lead--personal{align-self:start;margin:0}.home-hero-lead--personal span + span{margin-top:30.45px}.home-hero-actions{align-self:end;flex-wrap:nowrap;margin-top:0}.home-code-card{overflow:visible}.home-code-layout{grid-template-columns:1fr}}.home-values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:4.57rem}.home-value-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;min-height:8.55rem;padding:1.05rem 1.15rem;border:1px solid #151f540f;border-radius:.85rem;background:#ffffffdb;box-shadow:inset 0 0 0 1px #ffffffc2,0 16px 32px #1b25580f}.home-value-card-blue{background:linear-gradient(135deg,#f8faffeb 0,#f5f7ffeb 100%)}.home-value-card-pink{background:linear-gradient(135deg,#fffafdf5 0,#fff2f7e6 100%)}.home-value-card-indigo{background:linear-gradient(135deg,#fafcfffa 0,#f5f9fff0 100%)}.home-value-card-green{background:linear-gradient(135deg,#fafffbf5 0,#effbf4eb 100%)}.home-value-card img{width:2.1rem;height:2.1rem;object-fit:contain}.home-value-card-blue img{filter:brightness(0) saturate(100%) invert(46%) sepia(93%) saturate(2300%) hue-rotate(232deg) brightness(101%) contrast(98%)}.home-value-card-pink img{filter:brightness(0) saturate(100%) invert(50%) sepia(94%) saturate(1664%) hue-rotate(303deg) brightness(103%) contrast(93%)}.home-value-card-indigo img{filter:brightness(0) saturate(100%) invert(43%) sepia(85%) saturate(2280%) hue-rotate(215deg) brightness(99%) contrast(95%)}.home-value-card-green img{filter:brightness(0) saturate(100%) invert(57%) sepia(69%) saturate(726%) hue-rotate(94deg) brightness(92%) contrast(88%)}.home-value-card h2{margin:0;color:#11184a;font-size:.94rem;line-height:1.2}.home-value-card p{margin:.6rem 0 0;color:#31385e;font-family:"IBM Plex Mono",monospace;font-size:.76rem;font-weight:700;line-height:1.45}.home-stack-band{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;justify-items:center;gap:clamp(1.2rem,3vw,2.35rem);margin-top:.8rem;padding:.85rem 1.2rem;border:0;background:#0000;box-shadow:none}.home-stack-list{display:grid;grid-template-columns:repeat(8,minmax(4.6rem,1fr));gap:.8rem;align-items:center;align-self:center;justify-self:center;width:min(100%,72rem);margin:0;padding:0;list-style:none}.home-stack-list li{display:grid;justify-items:center;gap:.48rem;min-width:0;text-align:center}.home-stack-list img{width:2rem;height:2rem;display:block;object-fit:contain}.home-stack-list span{color:#1d2558;font-family:"IBM Plex Mono",monospace;font-size:.68rem;font-weight:800;line-height:1.2}@media (min-width:1181px){body.home-showcase-page.home-stack-orbit-active .home-stack-band{z-index:1;min-height:clamp(8rem,15dvh,11rem);pointer-events:none}body.home-showcase-page.home-stack-orbit-active .home-stack-list{display:block;width:auto;pointer-events:none}body.home-showcase-page.home-stack-orbit-active .home-stack-list li{position:fixed;left:0;top:0;z-index:1;display:grid;width:clamp(5.35rem,6.5vw,6.85rem);min-width:0;height:clamp(4.95rem,5.9vw,6.15rem);place-items:center;align-content:center;gap:.46rem;opacity:0;text-align:center;transform:translate3d(-200vw,0,0) translate(-50%,-50%);will-change:transform}}html[data-theme="dark"] .home-showcase-shell{background:radial-gradient(circle at 4% 16%,#ff5cb124,#0000 30%),radial-gradient(circle at 86% 10%,#4c5dff29,#0000 30%),linear-gradient(180deg,#0e1325 0,#11172b 100%);color:#f3f5ff}html[data-theme="dark"] .home-hero-lead,html[data-theme="dark"] .home-value-card h2{color:#f3f5ff}html[data-theme="dark"] .home-value-card p,html[data-theme="dark"] .home-stack-list span{color:#c7cde6}html[data-theme="dark"] .home-value-card,html[data-theme="dark"] .home-stack-band{border-color:#ffffff1a;background:#121830c7;box-shadow:inset 0 0 0 1px #ffffff0d,0 16px 34px #0000003d}@media (max-width:1240px){.home-hero-grid{grid-template-columns:minmax(0,1fr)}.home-hero-copy{padding-right:0}.home-hero-side{width:100%;margin-top:1.45rem}.home-code-card{min-height:21rem}.home-values-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.1rem}.home-stack-band{grid-template-columns:1fr;align-items:center;justify-items:center}.home-stack-list{grid-template-columns:repeat(4,minmax(4.6rem,1fr))}}@media (max-width:1180px){.home-modern-main{--home-modern-inline-padding:1.4rem;padding-inline:1.4rem}}@media (max-width:760px){body.home-showcase-page{min-width:0;overflow-x:hidden}.home-modern-main::after,.projects-overview-main::after{content:"";position:absolute;inset:0 0 auto;z-index:1;height:100dvh;pointer-events:none}.home-modern-main::after{background:linear-gradient(90deg,#e7dcffe6 0,#e2d8ffbd 56%,#cad5ff94 100%)}.projects-overview-main::after{background:linear-gradient(90deg,#ffe9f5e6 0,#f0dcffbd 56%,#cad5ff94 100%)}.home-modern-panel,.projects-overview-panel{position:relative;z-index:2}.home-modern-main{--home-modern-inline-padding:.85rem;padding:8.85rem .85rem 1rem}.home-modern-panel{width:100%;min-width:0}.home-showcase-page .nav-home2 a{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff1a}.home-hero-copy{min-width:0;padding:.45rem 0 0}.home-hero-copy h1{max-width:100%;font-size:clamp(2rem,10vw,2.48rem);line-height:1}.home-liquid-wave-text{width:100%}.home-hero-lead{margin-top:1rem;font-size:1.08rem;line-height:1.45}.home-hero-lead--personal{font-size:1rem;line-height:1.48}.home-appear-love{font-size:1.32rem}.home-hero-lead--personal span + span{margin-top:.72rem}.home-hero-actions{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1.45rem}.home-primary-action,.home-secondary-action{width:100%;min-width:0;min-height:3.25rem;border-radius:.9rem;font-size:.86rem}.home-code-card{height:20rem;min-height:20rem;padding:.9rem;overflow:visible}.home-code-layout{grid-template-columns:1fr;gap:.9rem}.home-values-grid{grid-template-columns:1fr;gap:.85rem;margin-top:1rem}.home-value-card{min-height:0;padding:1rem;border-radius:.9rem}.home-value-card h2{font-size:.98rem}.home-value-card p{font-size:.76rem}.home-stack-band{margin-top:1rem;padding:1rem}.home-stack-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.95rem .7rem}}@media (max-width:380px){.home-hero-copy h1{font-size:2.1rem}}body.contact-page{min-height:100dvh;height:auto;overflow:auto;background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.contact-page .contact-showcase-shell{min-height:100dvh;height:auto;overflow:visible;background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}.contact-page .topbar-home2{background:var(--header-gradient);box-shadow:0 16px 34px #090f2b38}.contact-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff3d 54%,#ffffffdb 100%)}.contact-page .brand-mark,.contact-page .brand-mark-text,.contact-page .nav-home2 a{color:#fff}.contact-page .nav-home2 a:hover,.contact-page .nav-home2 a.active{background:#ffffff38;color:#fff}.contact-page .brand-mark-icon img{filter:brightness(0) invert(1)}.contact-page .download-btn{border:1px solid #ffffffbd;background:#ffffff1a;color:#fff;box-shadow:none}.contact-page .theme-toggle-switch{--theme-toggle-light-ink:#fff;background:#ffffff24}.contact-page .contact-showcase-main{padding:9.9rem clamp(1.25rem,5vw,4.8rem) 2.2rem}.contact-page .contact-showcase-panel{width:min(100%,92rem);margin:0 auto;padding:0;overflow:visible}.contact-page .contact-layout{display:grid;grid-template-columns:minmax(20rem,.86fr) minmax(30rem,1.08fr);gap:clamp(2.2rem,5.8vw,5.6rem);align-items:start}.contact-page .contact-side-column{display:grid;gap:1.15rem;min-width:0}.contact-page .contact-hero{min-height:0}.contact-page .contact-copy{max-width:38rem}.contact-page .availability-pill{width:fit-content;margin:0 0 1.35rem;padding:.62rem 1.12rem;border-radius:999px;background:#f8f8fb;color:#ef3d94;font-family:"Space Grotesk",sans-serif;font-size:.9rem;font-weight:700;line-height:1;box-shadow:inset 0 0 0 1px #10184809}.contact-page .availability-dot{width:.46rem;height:.46rem;background:#ef3d94;box-shadow:0 0 0 .32rem #ef3d941f;animation:none}.contact-page .contact-copy h1{margin:0;font-size:clamp(3.4rem,4.9vw,4.45rem);line-height:1.02;letter-spacing:0;background:linear-gradient(90deg,#f02f91 0,#8546c8 53%,#233fe0 100%);-webkit-background-clip:text;background-clip:text;color:#0000}.contact-page .contact-lead{max-width:42rem;margin:1rem 0 1rem;color:#31366f;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.58;font-weight:500}.contact-page .contact-lead-nowrap{white-space:normal}.contact-page .contact-info-list{display:grid;gap:.72rem}.contact-page .contact-info-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.05rem;min-height:5rem;padding:.9rem 1rem;border-radius:.8rem;background:#f8f9ffeb;color:#101752;text-decoration:none;box-shadow:inset 0 0 0 1px #ffffffd9,0 15px 32px #1620560e;transition:transform 180ms ease,box-shadow 180ms ease}.contact-page .contact-info-card-link:hover,.contact-page .contact-info-card-link:focus-visible{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #fffffff2,0 20px 36px #232f7d17;outline:none}.contact-page .contact-info-icon{display:inline-flex;align-items:center;justify-content:center;width:3.42rem;height:3.42rem;border-radius:.68rem;background:linear-gradient(135deg,#233fd7 0,#7042c4 50%,#f02f91 100%);box-shadow:0 12px 22px #5347bb2e}.contact-page .contact-info-icon img{width:1.55rem;height:1.55rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-page .contact-info-card strong,.contact-page .contact-info-card span span{display:block}.contact-page .contact-info-card strong{margin-bottom:.28rem;color:#101752;font-size:.95rem;line-height:1.12}.contact-page .contact-info-card span span{color:#2531dc;font-size:.9rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.contact-page .contact-info-arrow{width:2.64rem;height:2.64rem;padding:.72rem;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #16205617,0 8px 18px #1620560e;object-fit:contain;filter:none}.contact-page .contact-panel{border-radius:.95rem;background:#fffffff5;box-shadow:inset 0 0 0 1px #111c5b14,0 18px 36px #171f4a14}.contact-page .contact-form-panel{padding:clamp(1.5rem,3vw,2.45rem)}.contact-page .contact-reasons-panel{padding:1.2rem}.contact-page .contact-panel-title{display:grid;gap:.9rem;margin-bottom:1.75rem}.contact-page .contact-panel-title h2{margin:0;color:#0d164d;font-size:clamp(1.28rem,1.65vw,1.58rem);line-height:1.12}.contact-page .contact-panel-title::after{content:"";width:2.25rem;height:.18rem;border-radius:999px;background:#f02f91}.contact-page .contact-panel-icon{width:2.35rem;height:2.35rem;border-radius:.72rem;background:linear-gradient(135deg,#243ed8 0,#f02f91 100%)}.contact-page .contact-panel-icon img{width:1.18rem;height:1.18rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-page .contact-reasons-panel .contact-panel-title{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.82rem .9rem;margin-bottom:1rem}.contact-page .contact-reasons-panel .contact-panel-title::after{grid-column:2}.contact-page .contact-reasons{display:grid;grid-template-columns:1fr;gap:.72rem}.contact-page .contact-reason-card{padding:.9rem 1rem;border-radius:.76rem;background:#f8f9ff;box-shadow:inset 0 0 0 1px #131e570d}.contact-page .contact-reason-card strong{color:#343b70;font-size:.92rem;line-height:1.35}.contact-page .contact-form{gap:1.35rem}.contact-page .contact-row{gap:1rem}.contact-page .form-field{position:relative;gap:0}.contact-page .form-field>span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;border:0;clip:rect(0 0 0 0);white-space:nowrap}.contact-page .form-field input,.contact-page .form-field textarea{min-height:3.62rem;border:1px solid #16205624;border-radius:.62rem;padding:0 1.05rem;background:#fff;color:#13194f;box-shadow:none;font-size:.96rem;font-weight:500}.contact-page .form-field textarea,.contact-page .contact-form-panel .form-field textarea{min-height:11.2rem;padding-top:1rem}.contact-page .form-field input::placeholder,.contact-page .form-field textarea::placeholder{color:#37407b;opacity:.88}.contact-page .form-field input:focus,.contact-page .form-field textarea:focus{border-color:#434bdc73;outline:3px solid #434bdc1f;outline-offset:0}.contact-page .contact-submit-row{display:grid;gap:1.15rem}.contact-page .contact-form-page .contact-submit,.contact-page .contact-submit{justify-self:stretch;width:100%;min-width:0;min-height:3.82rem;display:inline-flex;align-items:center;justify-content:center;gap:.85rem;border-radius:.62rem;background:linear-gradient(90deg,#243ed8 0,#7a44c6 52%,#f02f91 100%);color:#fff;font-family:"Space Grotesk",sans-serif;font-size:1rem;font-weight:800;box-shadow:0 18px 30px #6a3abe38}.contact-page .contact-submit img{width:1.35rem;height:1.35rem;display:block;object-fit:contain;filter:brightness(0) invert(1)}.contact-page .contact-form-note{justify-content:center;color:#5f668d;font-family:"Space Grotesk",sans-serif;font-size:.86rem;line-height:1.35}.contact-page .contact-form-note--with-icon img{width:.95rem;height:.95rem;filter:brightness(0) saturate(100%) invert(27%) sepia(18%) saturate(1263%) hue-rotate(201deg) brightness(92%) contrast(89%)}.contact-page .contact-form-feedback{min-height:1.1rem;margin:-.35rem 0 0;text-align:center}html[data-theme="dark"] body.contact-page{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}html[data-theme="dark"] .contact-page .contact-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}html[data-theme="dark"] .contact-page .topbar-home2{background:var(--header-gradient);box-shadow:0 16px 34px #0000004d}html[data-theme="dark"] .contact-page .contact-panel,html[data-theme="dark"] .contact-page .contact-info-card{background:#101730e0;box-shadow:inset 0 0 0 1px #ffffff17,0 18px 36px #0000003d}html[data-theme="dark"] .contact-page .availability-pill,html[data-theme="dark"] .contact-page .contact-reason-card,html[data-theme="dark"] .contact-page .form-field input,html[data-theme="dark"] .contact-page .form-field textarea{background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff14}html[data-theme="dark"] .contact-page .contact-copy h1,html[data-theme="dark"] .contact-page .contact-panel-title h2,html[data-theme="dark"] .contact-page .contact-info-card strong{color:#eef1ff}html[data-theme="dark"] .contact-page .contact-info-card span span{color:#92a0ff}html[data-theme="dark"] .contact-page .contact-lead,html[data-theme="dark"] .contact-page .contact-reason-card strong,html[data-theme="dark"] .contact-page .contact-form-note{color:#c3c9df}html[data-theme="dark"] .contact-page .form-field input,html[data-theme="dark"] .contact-page .form-field textarea{border-color:#ffffff1f;color:#eef1ff}html[data-theme="dark"] .contact-page .form-field input::placeholder,html[data-theme="dark"] .contact-page .form-field textarea::placeholder{color:#c3c9df}@media (max-width:1180px){.contact-page .contact-showcase-main{padding-top:8.7rem}.contact-page .contact-layout{grid-template-columns:1fr;gap:2rem}.contact-page .contact-copy{max-width:48rem}}@media (max-width:760px){.contact-page .contact-showcase-main{padding:7.25rem .85rem 1rem}.contact-page .contact-showcase-panel{width:100%}.contact-page .contact-layout,.contact-page .contact-side-column{gap:.95rem}.contact-page .contact-copy h1{font-size:2.82rem;line-height:1.03}.contact-page .contact-lead{margin:.9rem 0 1.1rem;font-size:.98rem}.contact-page .contact-info-card{min-height:4.65rem;gap:.8rem;padding:.8rem;border-radius:.75rem}.contact-page .contact-info-icon{width:3rem;height:3rem}.contact-page .contact-info-arrow{width:2.25rem;height:2.25rem;padding:.62rem}.contact-page .contact-form-panel,.contact-page .contact-reasons-panel{padding:1rem}.contact-page .contact-panel-title{margin-bottom:1.15rem}.contact-page .contact-panel-title h2{font-size:1.32rem}.contact-page .contact-row{grid-template-columns:1fr}.contact-page .form-field input,.contact-page .form-field textarea{min-height:3.25rem;font-size:.95rem}.contact-page .form-field textarea,.contact-page .contact-form-panel .form-field textarea{min-height:9rem}.contact-page .contact-form-page .contact-submit,.contact-page .contact-submit{min-height:3.35rem}}.site-ambient-lights{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.site-ambient-lights::before{content:"";position:absolute;inset:6% 10% auto 6%;height:20rem;background:radial-gradient(circle at 18% 36%,#ffc6e838 0,#0000 34%),radial-gradient(circle at 72% 22%,#b0c2ff33 0,#0000 34%);filter:blur(44px);opacity:.72}.site-ambient-lights::after{content:"";position:absolute;inset:auto 10% 8% 18%;height:14rem;background:radial-gradient(circle at 22% 54%,#ffffff29 0,#0000 22%),radial-gradient(circle at 64% 48%,#9fd5ff29 0,#0000 24%);filter:blur(48px);opacity:.6}.site-sky-star{pointer-events:none}.site-sky-back{opacity:.34;filter:blur(.6px);animation-duration:5.6s}.site-sky-mid{opacity:.56;filter:blur(.18px);animation-duration:4.4s}.site-sky-front{opacity:.82;animation-duration:3.3s}body.saturne-detail-page .project-detail-panel[data-project-layout="case-study"] .about-ambient-lights{display:block;z-index:0}.home-modern-panel,.about-panel,.contact-showcase-panel{position:relative;overflow:visible}.home-hero-grid,.home-values-grid,.home-stack-band,.about-hero,.about-content-grid,.about-cta-banner,.contact-layout,.projects-showcase-intro,.projects-featured-card,.projects-overview-grid,.project-detail-hero,.project-detail-content{position:relative;z-index:2}body:is(.home-showcase-page,.about-page,.projects-overview-page,.contact-page,.saturne-detail-page,.project-case-study-page) .page-shell,body.home-showcase-page .home-showcase-shell,body.about-page .about-shell,body.projects-overview-page .projects-showcase-shell,body.contact-page .contact-showcase-shell,body.saturne-detail-page .projects-showcase-shell,body.project-case-study-page .projects-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-transition-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size);color:#070d36}body:is(.home-showcase-page,.about-page,.projects-overview-page,.contact-page,.saturne-detail-page,.project-case-study-page) .page-shell>.portfolio-starfield-canvas--page{mix-blend-mode:normal!important;opacity:1!important}body.home-showcase-page .topbar-home2,body.about-page .topbar-home2,body.projects-overview-page .topbar-home2,body.contact-page .topbar-home2,body.saturne-detail-page .topbar-home2,html[data-theme="dark"] body.home-showcase-page .topbar-home2,html[data-theme="dark"] body.about-page .topbar-home2,html[data-theme="dark"] body.projects-overview-page .topbar-home2,html[data-theme="dark"] body.contact-page .topbar-home2,html[data-theme="dark"] body.saturne-detail-page .topbar-home2{background:#ffffff4d;box-shadow:none}body.home-showcase-page .topbar-home2::after,body.about-page .topbar-home2::after,body.projects-overview-page .topbar-home2::after,body.contact-page .topbar-home2::after,body.saturne-detail-page .topbar-home2::after,html[data-theme="dark"] body.home-showcase-page .topbar-home2::after,html[data-theme="dark"] body.about-page .topbar-home2::after,html[data-theme="dark"] body.projects-overview-page .topbar-home2::after,html[data-theme="dark"] body.contact-page .topbar-home2::after,html[data-theme="dark"] body.saturne-detail-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff61 56%,#fffffff5 100%)}body.home-showcase-page .brand-mark,body.home-showcase-page .brand-mark-text,body.about-page .brand-mark,body.about-page .brand-mark-text,body.projects-overview-page .brand-mark,body.projects-overview-page .brand-mark-text,body.contact-page .brand-mark,body.contact-page .brand-mark-text,body.saturne-detail-page .brand-mark,body.saturne-detail-page .brand-mark-text,html[data-theme="dark"] body.home-showcase-page .brand-mark,html[data-theme="dark"] body.home-showcase-page .brand-mark-text,html[data-theme="dark"] body.about-page .brand-mark,html[data-theme="dark"] body.about-page .brand-mark-text,html[data-theme="dark"] body.projects-overview-page .brand-mark,html[data-theme="dark"] body.projects-overview-page .brand-mark-text,html[data-theme="dark"] body.contact-page .brand-mark,html[data-theme="dark"] body.contact-page .brand-mark-text,html[data-theme="dark"] body.saturne-detail-page .brand-mark,html[data-theme="dark"] body.saturne-detail-page .brand-mark-text{color:#171723}body.home-showcase-page .brand-mark-icon img,body.about-page .brand-mark-icon img,body.contact-page .brand-mark-icon img,body.saturne-detail-page .brand-mark-icon img,html[data-theme="dark"] body.home-showcase-page .brand-mark-icon img,html[data-theme="dark"] body.about-page .brand-mark-icon img,html[data-theme="dark"] body.contact-page .brand-mark-icon img,html[data-theme="dark"] body.saturne-detail-page .brand-mark-icon img{filter:none}body.home-showcase-page .download-btn,body.about-page .download-btn,body.projects-overview-page .download-btn,body.contact-page .download-btn,body.saturne-detail-page .download-btn,html[data-theme="dark"] body.home-showcase-page .download-btn,html[data-theme="dark"] body.about-page .download-btn,html[data-theme="dark"] body.projects-overview-page .download-btn,html[data-theme="dark"] body.contact-page .download-btn,html[data-theme="dark"] body.saturne-detail-page .download-btn{border:0;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;box-shadow:0 14px 30px #5c63a42e}body.home-showcase-page .theme-toggle-switch,body.about-page .theme-toggle-switch,body.projects-overview-page .theme-toggle-switch,body.contact-page .theme-toggle-switch,body.saturne-detail-page .theme-toggle-switch,html[data-theme="dark"] body.home-showcase-page .theme-toggle-switch,html[data-theme="dark"] body.about-page .theme-toggle-switch,html[data-theme="dark"] body.projects-overview-page .theme-toggle-switch,html[data-theme="dark"] body.contact-page .theme-toggle-switch,html[data-theme="dark"] body.saturne-detail-page .theme-toggle-switch{--theme-toggle-light-ink:var(--theme-blue-dark);background:#0000}html[data-theme="dark"] body.home-showcase-page .home-hero-lead,html[data-theme="dark"] body.home-showcase-page .home-value-card h2,html[data-theme="dark"] body.home-showcase-page .home-value-card h2{color:#182052}html[data-theme="dark"] body.home-showcase-page .home-value-card p,html[data-theme="dark"] body.home-showcase-page .home-stack-list span{color:#555c86}html[data-theme="dark"] body.home-showcase-page .home-value-card,html[data-theme="dark"] body.home-showcase-page .home-stack-band{border-color:#19235c1a;background:#ffffffeb;box-shadow:inset 0 0 0 1px #ffffffe6,0 14px 30px #202a6614}html[data-theme="dark"] .home-stack-band,html[data-theme="dark"] body.home-showcase-page .home-stack-band{border:0;background:#0000;box-shadow:none}html[data-theme="dark"] body.about-page .about-panel .about-copy h1{background:linear-gradient(90deg,#f03491 0,#7a42d6 52%,#4059ff 100%);-webkit-background-clip:text;background-clip:text;color:#0000}html[data-theme="dark"] body.about-page .about-kicker,html[data-theme="dark"] body.about-page .about-panel .about-copy h2,html[data-theme="dark"] body.about-page .about-panel .about-card h3,html[data-theme="dark"] body.about-page .about-journey-step strong,html[data-theme="dark"] body.about-page .about-stack-list strong,html[data-theme="dark"] body.about-page .about-panel .about-value-card strong{color:#07114a}html[data-theme="dark"] body.about-page .about-panel .about-lead,html[data-theme="dark"] body.about-page .about-journey-step p,html[data-theme="dark"] body.about-page .about-stack-list p,html[data-theme="dark"] body.about-page .about-panel .about-value-card p{color:#293060}html[data-theme="dark"] body.about-page .about-kicker,html[data-theme="dark"] body.about-page .about-panel .about-card,html[data-theme="dark"] body.about-page .about-panel .about-value-card{border-color:#111c5b14;background:#ffffffe6;box-shadow:0 18px 38px #202a6614}html[data-theme="dark"] body.about-page .about-panel .about-journey-card{border-color:#0000;background:#0000;box-shadow:none}html[data-theme="dark"] body.contact-page .contact-copy h1{background:linear-gradient(90deg,#f02f91 0,#8546c8 53%,#233fe0 100%);-webkit-background-clip:text;background-clip:text;color:#0000}html[data-theme="dark"] body.contact-page .contact-panel,html[data-theme="dark"] body.contact-page .contact-info-card{background:#fffffff5;color:#101752;box-shadow:inset 0 0 0 1px #111c5b14,0 18px 36px #171f4a14}html[data-theme="dark"] body.contact-page .availability-pill,html[data-theme="dark"] body.contact-page .contact-reason-card,html[data-theme="dark"] body.contact-page .form-field input,html[data-theme="dark"] body.contact-page .form-field textarea{background:#fff;box-shadow:inset 0 0 0 1px #16205614}html[data-theme="dark"] body.contact-page .contact-panel-title h2,html[data-theme="dark"] body.contact-page .contact-info-card strong{color:#101752}html[data-theme="dark"] body.contact-page .contact-info-card span span{color:#2531dc}html[data-theme="dark"] body.contact-page .contact-lead,html[data-theme="dark"] body.contact-page .contact-reason-card strong,html[data-theme="dark"] body.contact-page .contact-form-note{color:#343b70}html[data-theme="dark"] body.contact-page .form-field input,html[data-theme="dark"] body.contact-page .form-field textarea{border-color:#16205624;color:#13194f}html[data-theme="dark"] body.contact-page .form-field input::placeholder,html[data-theme="dark"] body.contact-page .form-field textarea::placeholder{color:#37407b}html[data-theme="dark"] body.saturne-detail-page .saturne-case-study{color:#07114a}html[data-theme="dark"] body.saturne-detail-page .saturne-subtitle,html[data-theme="dark"] body.saturne-detail-page .saturne-breadcrumb,html[data-theme="dark"] body.saturne-detail-page .saturne-breadcrumb a{color:#07114a}html[data-theme="dark"] body.saturne-detail-page .saturne-lead{color:#465279}body.projects-overview-page .page-shell,body.projects-overview-page .projects-showcase-shell{background-color:#ffe9f5;background-image:var(--portfolio-public-sky);background-position:var(--portfolio-public-sky-position);background-repeat:no-repeat;background-size:var(--portfolio-public-sky-size)}body.projects-overview-page .projects-showcase-shell>.portfolio-starfield-canvas--page{mix-blend-mode:normal!important;z-index:1!important;opacity:1!important}body.projects-overview-page .projects-overview-main{background:#0000!important;padding:8.3rem 2.4rem 1.4rem;z-index:auto!important}body.projects-overview-page .projects-overview-panel{background:#0000!important;isolation:auto!important;width:min(100%,94rem);padding:0;z-index:auto!important}body.projects-overview-page .projects-overview-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}body.projects-overview-page .projects-copy{max-width:40rem}body.projects-overview-page .projects-overview-panel .projects-copy h1{font-size:clamp(3.35rem,4.35vw,4.25rem);line-height:.98}body.projects-overview-page .projects-overview-panel .projects-lead{width:min(100%,36rem);margin-top:.8rem;color:#435073;font-size:1.03rem}body.projects-overview-page .projects-overview-stats-spacer{display:block;width:min(100%,34.6rem);height:2.25rem;margin:0;pointer-events:none}body.projects-overview-page .projects-featured-card{isolation:isolate;grid-template-columns:1fr;min-height:0;margin-top:.25rem;border-radius:0;background:none;overflow:visible;color:var(--header-blue-night);box-shadow:none}body.projects-overview-page .projects-featured-copy{display:flex;flex-direction:column;align-self:stretch;justify-content:center;padding:0;color:var(--header-blue-night)}body.projects-overview-page .projects-featured-label{margin-bottom:.95rem;padding:.48rem .78rem;border-radius:.46rem;background:#7a5cffad;font-size:.7rem}body.projects-overview-page .projects-featured-copy h2{font-size:clamp(2.05rem,2.8vw,2.65rem);color:var(--header-blue-night)}body.projects-overview-page .projects-featured-copy-slide{display:flex;flex-direction:column;gap:20px;min-height:8.35rem}body.projects-overview-page .projects-featured-copy-slide>p:not(.projects-featured-label),body.projects-overview-page .projects-featured-copy>p:not(.projects-featured-label){margin-top:0;color:#090f2bd6;font-size:1.12rem;height:3em;line-height:1.5;overflow:hidden}body.projects-overview-page .projects-featured-card .project-tag-row{margin-top:calc(var(--projects-featured-paragraph-tags-gap) - 20px);margin-bottom:0;transform:translate3d(0,var(--projects-featured-tags-center-shift,0),0);will-change:transform}body.projects-overview-page .projects-featured-actions{gap:20px;margin-top:var(--projects-featured-tags-actions-gap)}body.projects-overview-page .projects-featured-primary,body.projects-overview-page .projects-featured-secondary{min-height:2.85rem;padding:0 1.12rem;border-radius:.48rem}body.projects-overview-page .projects-featured-primary{min-width:12rem;background:var(--projects-featured-primary-gradient)}body.projects-overview-page .projects-featured-secondary{min-width:8.2rem;background:var(--portfolio-cta-night-background);color:var(--portfolio-cta-night-color);opacity:1;box-shadow:var(--portfolio-cta-night-shadow)}body.projects-overview-page .projects-featured-secondary.is-confidential{min-width:0;padding:0;background:none;color:#090f2bad;box-shadow:none}body.projects-overview-page .projects-photo-sphere{display:none}body.projects-overview-page .projects-photo-sphere__canvas,body.projects-overview-page .projects-photo-sphere__cards{position:absolute;inset:0}body.projects-overview-page .projects-photo-sphere__cards{z-index:2}body.projects-overview-page .projects-photo-sphere__card{--projects-photo-sphere-zoom-scale:1.333;position:absolute;left:0;top:0;display:block;overflow:visible;border:0;border-radius:.72rem;background:#0000;box-shadow:none;pointer-events:auto;transform-origin:center;transition:opacity 320ms ease;will-change:transform,opacity}body.projects-overview-page .projects-photo-sphere__card-frame{position:absolute;inset:0;display:block;overflow:hidden;border:1px solid #ffffffc7;border-radius:inherit;background:#ffffffb8;box-shadow:0 1rem 2rem #2c257829,inset 0 0 0 1px #ffffff4d;transform:scale(1);transform-origin:center;transition:transform 260ms cubic-bezier(.22,1,.36,1),filter 220ms ease,box-shadow 260ms ease;will-change:transform,filter}body.projects-overview-page .projects-photo-sphere__card:hover,body.projects-overview-page .projects-photo-sphere__card:focus-visible,body.projects-overview-page .projects-photo-sphere__card.is-photo-sphere-hovered{opacity:1!important;z-index:40!important;transition:none}body.projects-overview-page .projects-photo-sphere__card:hover .projects-photo-sphere__card-frame,body.projects-overview-page .projects-photo-sphere__card:focus-visible .projects-photo-sphere__card-frame,body.projects-overview-page .projects-photo-sphere__card.is-photo-sphere-hovered .projects-photo-sphere__card-frame{border-color:#fff;background:#fff;filter:saturate(1.06) contrast(1.04);box-shadow:0 1rem 2rem #2c257829,inset 0 0 0 1px #ffffff61}body.projects-overview-page .projects-photo-sphere__card:focus-visible{outline:2px solid #ff00817a;outline-offset:.22rem}body.projects-overview-page .projects-photo-sphere__card--wide{width:clamp(13.67rem,20vw,19.73rem);aspect-ratio:16 / 9}body.projects-overview-page .projects-photo-sphere__card-frame img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 360ms ease}body.projects-overview-page .projects-photo-sphere__card-frame img.is-current{opacity:1}body.projects-overview-page .projects-photo-sphere__card:hover .projects-photo-sphere__card-frame img.is-current,body.projects-overview-page .projects-photo-sphere__card:focus-visible .projects-photo-sphere__card-frame img.is-current,body.projects-overview-page .projects-photo-sphere__card.is-photo-sphere-hovered .projects-photo-sphere__card-frame img.is-current{opacity:1;transition:none}body.projects-overview-page .projects-photo-sphere__card-frame img.is-leaving{opacity:0}@media (min-width:1181px){body.projects-overview-page{--projects-band-left-inset:50%}body.projects-overview-page .projects-overview-intro{width:calc(100% - var(--projects-band-left-inset));margin-left:var(--projects-band-left-inset)}body.projects-overview-page .projects-featured-card{width:calc(100% - var(--projects-band-left-inset) - 2.45rem);margin-left:var(--projects-band-left-inset)}body.projects-overview-page .projects-photo-sphere{position:sticky;top:calc(var(--projects-featured-sticky-top) + clamp(13rem,23dvh,28rem));z-index:13;display:block;width:min(46.67rem,calc(100% - var(--projects-band-left-inset) - 2.45rem));height:clamp(21.33rem,40dvh,37.33rem);margin-top:clamp(1.1rem,2dvh,2rem);margin-left:var(--projects-band-left-inset);opacity:.95;pointer-events:none;transform:translate3d(0,0,0);transition:opacity 420ms ease,transform 520ms cubic-bezier(.22,1,.36,1)}body.projects-overview-page:is(.projects-logo-entry-pending,.projects-logo-entry-active:not(.projects-band-entry-revealed)) .projects-photo-sphere{opacity:0;transform:translate3d(0,.65rem,0)}body.projects-overview-page.projects-band-entry-revealed .projects-photo-sphere{opacity:.95;transform:translate3d(0,0,0)}body.projects-overview-page .projects-overview-intro{position:sticky;top:var(--projects-title-sticky-top);z-index:4;transform:none;pointer-events:none}body.projects-overview-page .projects-overview-stats-spacer{height:.35rem}body.projects-overview-page .projects-featured-card{grid-template-columns:1fr;min-height:0;margin-top:.55rem;position:sticky;top:var(--projects-featured-sticky-top);z-index:12}body.projects-overview-page .projects-featured-card::before{content:none;display:none}body.projects-overview-page .projects-featured-card::after{content:none;display:none}body.projects-overview-page .projects-featured-copy{grid-column:1 / -1;align-self:start;justify-content:flex-start;width:min(100%,34rem);height:auto;padding:var(--projects-featured-copy-top-space) 0 var(--projects-featured-actions-bottom-space)}body.projects-overview-page .projects-featured-copy-slide{transform:none}body.projects-overview-page .projects-featured-actions{transform:translate3d(0,var(--projects-featured-actions-focus-shift,0),0);will-change:transform}body.projects-overview-page .projects-featured-visual{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}body.projects-overview-page .projects-featured-dots{display:none}body.projects-overview-page .featured-laptop{left:50%;top:calc(var(--projects-band-h) + .85rem);bottom:auto;width:32.5%}body.projects-overview-page .featured-laptop-screen{aspect-ratio:1.68}body.projects-overview-page .featured-phone{left:78.3%;right:auto;top:calc(var(--projects-band-h) + 2.05rem);bottom:auto;width:8.8%;min-width:6.25rem}}body.projects-overview-page .projects-overview-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr;justify-content:start;justify-items:start;row-gap:clamp(1.25rem,2.4vw,2.15rem);column-gap:0;margin-top:1.55rem}body.projects-overview-page .projects-grid-card{position:relative;isolation:isolate;grid-column:1;display:block;justify-self:start;width:min(100%,var(--projects-grid-card-size,19rem));min-height:0;aspect-ratio:1;padding:0;overflow:visible;border-radius:50%;background:#0000;box-shadow:none;color:inherit;text-decoration:none;cursor:pointer}body.projects-overview-page.projects-logo-orbit-active .projects-overview-grid{z-index:auto;display:block;min-height:var(--projects-logo-orbit-scroll-height,420dvh);pointer-events:none}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card{position:fixed;left:0;top:0;z-index:3;width:clamp(5.45rem,7.1vw,6.55rem);height:clamp(5.45rem,7.1vw,6.55rem);margin-left:0;opacity:0;pointer-events:auto;transform:translate3d(-200vw,0,0) translate(-50%,-50%);will-change:transform,width,height}body.projects-overview-page.projects-logo-entry-pending:is(.projects-featured-copy,.projects-grid-card,.projects-orbit-focus),body.projects-overview-page.projects-logo-entry-active:not(.projects-band-entry-revealed) .projects-featured-copy{opacity:0!important;pointer-events:none}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card.is-orbit-focus{width:var(--projects-orbit-focus-size);height:var(--projects-orbit-focus-size);transition:width 80ms ease,height 80ms ease}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card.is-orbit-ejecting{transition:transform 240ms cubic-bezier(.22,1,.36,1),width 140ms ease,height 140ms ease}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused){z-index:42!important}body.projects-overview-page.projects-logo-orbit-active .projects-overview-intro{z-index:30}body.projects-overview-page.projects-logo-orbit-active .projects-featured-card{z-index:32}@media (min-width:1181px){body.projects-overview-page .projects-overview-grid{--projects-logo-path-size:clamp(7.6rem,10vw,9.35rem);--projects-logo-path-gap:clamp(1.4rem,2.8vw,2.35rem);grid-template-columns:1fr;grid-auto-rows:var(--projects-logo-path-size);align-items:stretch;row-gap:var(--projects-logo-path-gap)}body.projects-overview-page .projects-grid-card{position:relative;top:auto;z-index:2;grid-column:1;width:var(--projects-logo-path-size);height:var(--projects-logo-path-size);margin-left:var(--projects-logo-path-x,0);min-height:0}body.projects-overview-page .projects-grid-card:nth-child(1){--projects-logo-path-x:clamp(12.4rem,18.5vw,17.8rem)}body.projects-overview-page .projects-grid-card:nth-child(2){--projects-logo-path-x:clamp(9.2rem,13.8vw,13.4rem)}body.projects-overview-page .projects-grid-card:nth-child(3){--projects-logo-path-x:clamp(6.1rem,9.5vw,9.2rem)}body.projects-overview-page .projects-grid-card:nth-child(4){--projects-logo-path-x:clamp(3.6rem,5.8vw,5.8rem)}body.projects-overview-page .projects-grid-card:nth-child(5){--projects-logo-path-x:clamp(1.3rem,2.7vw,2.6rem)}body.projects-overview-page .projects-grid-card:nth-child(6){--projects-logo-path-x:clamp(-.65rem,-.4vw,-.2rem)}body.projects-overview-page.projects-logo-orbit-active .projects-overview-grid{grid-template-columns:none;grid-auto-rows:auto;row-gap:0}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card{margin-left:0}}body.projects-overview-page .projects-grid-card::before{content:none;display:none}body.projects-overview-page .projects-grid-card::after{content:none;display:none}body.projects-overview-page .projects-grid-card>*{position:relative;z-index:2}body.projects-overview-page .projects-grid-card:focus-visible{outline:3px solid #ffffffd1;outline-offset:.3rem}body.projects-overview-page .projects-card-media{display:grid;min-height:0;height:100%;aspect-ratio:auto;border-radius:50%}body.projects-overview-page .projects-card-media img{object-position:center}body.projects-overview-page .project-logo-connector{display:none}body.projects-overview-page .projects-card-media-contain img{padding:.65rem}.project-card-logo-front{place-content:center;place-items:center;padding:0;background:#0000;box-shadow:none}@keyframes project-logo-connector-glow-shift{0%{background-position:0 50%}100%{background-position:320% 50%}}@media (min-width:1181px){body.projects-overview-page.projects-logo-orbit-active .project-logo-connector{--project-logo-connector-text-width:8rem;--project-logo-connector-exit-gap:1.5rem;--project-logo-connector-dot-size:.5rem;--project-logo-connector-bend-angle:-45deg;--project-logo-connector-glow-gradient:linear-gradient(90deg,#ff3a9adb 0,#8053ffd6 32%,#3fc4ffd1 62%,#ef4adbd1 82%,#ff3a9adb 100%);position:absolute;left:69%;top:31%;z-index:4;display:block;width:calc(2.07rem + var(--project-logo-connector-exit-gap) + var(--project-logo-connector-text-width));font-family:"IBM Plex Mono",monospace;font-size:.8rem;font-weight:800;opacity:0;pointer-events:none;transform:translate3d(0,-1.7rem,0);transition:opacity 160ms ease}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card.is-orbit-focus .project-logo-connector{display:none!important}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__dot{position:absolute;left:calc(var(--project-logo-connector-dot-size) * -.5);top:calc(1.7rem - var(--project-logo-connector-dot-size) * .5);width:var(--project-logo-connector-dot-size);height:var(--project-logo-connector-dot-size);border-radius:50%;background:var(--project-logo-connector-glow-gradient);background-size:320% 100%;box-shadow:0 0 0 .1rem #ffffff61,0 0 .55rem #ff3a9a52;opacity:0;transform:scale(.58);transition:opacity 170ms ease,transform 260ms cubic-bezier(.22,1,.36,1);animation:project-logo-connector-glow-shift 13.333s linear infinite}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__stem,body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__bend,body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__line{position:absolute;height:.075rem;border-radius:999px;background:var(--project-logo-connector-glow-gradient);background-size:320% 100%;box-shadow:0 0 .55rem #ff3a9a47;transform:scaleX(0);transform-origin:left center;animation:project-logo-connector-glow-shift 13.333s linear infinite}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__stem{left:0;top:calc(1.7rem - .0375rem);width:1.25rem;transition:transform 240ms cubic-bezier(.22,1,.36,1) 50ms}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__bend{left:1.25rem;top:calc(1.7rem - .0375rem);width:1.16rem;transform:rotate(var(--project-logo-connector-bend-angle)) scaleX(0);transition:transform 280ms cubic-bezier(.22,1,.36,1) 140ms}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__line{left:2.07rem;top:.8425rem;width:calc(var(--project-logo-connector-exit-gap) + var(--project-logo-connector-text-width));transition:transform 360ms cubic-bezier(.22,1,.36,1) 220ms}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__label{position:absolute;left:calc(2.07rem + var(--project-logo-connector-exit-gap));color:#080719;font:inherit;white-space:nowrap;opacity:0;transition:opacity 260ms ease,transform 360ms cubic-bezier(.22,1,.36,1)}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__label--title{top:-.22rem;text-transform:uppercase;transform:translate3d(-.85rem,0,0)}body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__label--category{top:1.25rem;transform:translate3d(.85rem,0,0)}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector{opacity:1}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector__dot{opacity:1;transform:scale(1)}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector__bend{transform:rotate(var(--project-logo-connector-bend-angle)) scaleX(1)}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector__stem,body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector__line{transform:scaleX(1)}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card:is(:hover,:focus-visible,.is-logo-hovered,.is-logo-focused) .project-logo-connector__label{opacity:1;transform:translate3d(0,0,0)}}@media (prefers-reduced-motion:reduce){body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__dot,body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__stem,body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__bend,body.projects-overview-page.projects-logo-orbit-active .project-logo-connector__line{animation:none}}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card.is-orbit-focus .project-card-logo-front{overflow:hidden;border-radius:50%;background:radial-gradient(circle at 32% 24%,#fff 0 14%,#eef3ff 38%,#c8d2ff 72%,#8068db 100%);box-shadow:inset -1rem -1.25rem 2rem #33238b40,0 1.2rem 2.6rem #3f2fa13d}body.projects-overview-page.projects-logo-orbit-active .projects-grid-card.is-orbit-focus .project-card-logo-front::before{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;background:radial-gradient(circle at 30% 23%,#ffffff75,#0000 24%),radial-gradient(circle at 78% 82%,#1c0f642e,#0000 54%);pointer-events:none}.projects-card-media .project-card-logo{position:relative;z-index:1;width:100%;height:auto;max-height:100%;border-radius:0;object-fit:contain;filter:drop-shadow(0 .62rem .8rem #231f581f)}html.portfolio-scroll-route-active,html.portfolio-scroll-route-active body{overflow:hidden}html.portfolio-scroll-route-active .projects-showcase-shell{overflow:hidden}.portfolio-scroll-route-stage{position:fixed;inset:0;z-index:20;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;background:#0000}html.portfolio-scroll-route-active .portfolio-scroll-route-stage.is-ready{visibility:visible;opacity:1}html:not(.portfolio-scroll-route-active) .portfolio-scroll-route-stage{visibility:hidden!important;opacity:0!important}.portfolio-scroll-route-track{transform:translate3d(0,var(--portfolio-route-from,0),0);transition:transform var(--portfolio-route-duration,680ms) var(--portfolio-route-easing,cubic-bezier(.19,1,.22,1));will-change:transform}.portfolio-scroll-route-stage.is-moving .portfolio-scroll-route-track{transform:translate3d(0,var(--portfolio-route-to,0),0)}.portfolio-scroll-route-panel{flex:none;width:100%;background:#0000}.portfolio-scroll-route-frame-panel{min-height:100dvh;overflow:hidden;background:#0000}.portfolio-scroll-route-frame{display:block;width:100%;height:100dvh;border:0;background:#0000}html.portfolio-scroll-route-active body>.page-shell>main{visibility:hidden}@media (prefers-reduced-motion:reduce){.portfolio-scroll-route-track{transition-duration:1ms}}html[data-theme="dark"] body.projects-overview-page .projects-grid-card{background:#0000;color:#071044;box-shadow:none}@media (max-width:1180px){body.projects-overview-page .projects-overview-main{padding-inline:1.4rem}body.projects-overview-page .projects-overview-grid{grid-template-columns:1fr;justify-items:start}body.projects-overview-page .projects-featured-card{grid-template-columns:1fr}body.projects-overview-page .projects-featured-visual{min-height:18rem}}@media (max-width:760px){body.projects-overview-page .projects-overview-main{padding:8.85rem .85rem 1rem}body.projects-overview-page .projects-overview-panel .projects-copy h1{font-size:2.7rem}body.projects-overview-page .projects-featured-card{margin-top:.9rem}body.projects-overview-page .projects-featured-dots{bottom:.66rem}body.projects-overview-page .projects-featured-copy{padding:1.2rem}body.projects-overview-page .projects-featured-actions{display:grid;grid-template-columns:1fr;gap:.7rem}body.projects-overview-page .nav-home2{gap:.34rem}body.projects-overview-page .nav-home2 a{padding:0 .68rem}body.projects-overview-page .projects-overview-grid{grid-template-columns:1fr;justify-items:start}body.projects-overview-page .projects-grid-card{grid-column:1;grid-template-columns:1fr}body.projects-overview-page .projects-card-media{height:100%;aspect-ratio:1}}body.project-case-study-page .project-detail-main{padding:7rem clamp(1rem,3vw,2.6rem) 1.5rem}body.project-case-study-page .project-detail-panel[data-project-layout="case-study"]{width:min(100%,95rem)}body.project-case-study-page .saturne-hero{align-items:start}body.project-case-study-page .saturne-hero-copy{min-height:0}body.project-case-study-page .saturne-status-pill{margin-bottom:1.5rem}body.project-case-study-page .saturne-subtitle{margin-top:1rem;font-size:1.22rem;line-height:1.4}body.project-case-study-page .saturne-lead{margin-top:.62rem;font-size:.94rem;line-height:1.55}body.project-case-study-page .saturne-meta-line{gap:.45rem;margin-top:1.4rem;flex-wrap:nowrap}body.project-case-study-page .saturne-meta-line div{gap:.35rem;flex:0 1 auto}body.project-case-study-page .saturne-meta-line div + div::before{margin-right:.18rem}body.project-case-study-page .saturne-meta-line dd{gap:.32rem;font-size:.68rem;white-space:nowrap}body.project-case-study-page .saturne-meta-line img{width:.95rem;height:.95rem}body.project-case-study-page .saturne-note{margin-top:.65rem;font-size:.76rem}body.project-case-study-page .saturne-hero-preview,body.project-case-study-page .saturne-preview-button{height:auto;min-height:0}body.project-case-study-page .saturne-preview-button img,body.project-case-study-page .saturne-preview-button video{height:auto;object-fit:contain}body.project-case-study-page .saturne-actions{gap:.5rem;padding-top:.9rem}body.project-case-study-page .saturne-actions .saturne-button{min-width:0;min-height:3rem;padding:0 .7rem;font-size:.74rem}body.project-case-study-page .saturne-proof-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.85rem;padding:.72rem;border-radius:.7rem;background:#ffffffad;box-shadow:inset 0 0 0 1px #2d398324,0 14px 28px #3a3a8112}body.project-case-study-page .saturne-proof-strip article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.1rem .55rem;align-items:center;min-width:0}body.project-case-study-page .saturne-proof-strip img{grid-row:1 / span 2;width:1.15rem;height:1.15rem;object-fit:contain;filter:brightness(0) saturate(100%) invert(35%) sepia(88%) saturate(3355%) hue-rotate(235deg) brightness(98%) contrast(96%)}body.project-case-study-page .saturne-proof-strip span,body.project-case-study-page .saturne-proof-strip strong{min-width:0}body.project-case-study-page .saturne-proof-strip span{color:#596389;font-size:.52rem;line-height:1.2;white-space:nowrap}body.project-case-study-page .saturne-proof-strip strong{color:#10184d;font-size:.58rem;line-height:1.25;white-space:nowrap}body.project-case-study-page .saturne-screen-band{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;margin-top:2rem}@media (max-width:760px){body.project-case-study-page .saturne-meta-line{flex-wrap:wrap;gap:.65rem}body.project-case-study-page .saturne-meta-line div{width:100%}body.project-case-study-page .saturne-meta-line div + div::before{display:none}body.project-case-study-page .saturne-meta-line dd{white-space:normal}body.project-case-study-page .saturne-proof-strip{grid-template-columns:1fr}body.project-case-study-page .saturne-screen-band{grid-template-columns:1fr}body.project-case-study-page .nav-home2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;overflow:visible;padding-inline:0}body.project-case-study-page .nav-home2 a,html[data-theme="dark"] body.project-case-study-page .nav-home2 a{justify-content:center;min-height:2.2rem;padding:0 .25rem;font-size:.66rem;text-align:center;white-space:nowrap}}body.project-case-study-page .topbar-home2,html[data-theme="dark"] body.project-case-study-page .topbar-home2{background:linear-gradient(90deg,#1739c8 0,#3e2fbe 52%,#e63f98 100%);box-shadow:0 16px 34px #090f2b38}body.project-case-study-page .topbar-home2::after,html[data-theme="dark"] body.project-case-study-page .topbar-home2::after{background:linear-gradient(180deg,#0000 0,#ffffff2e 54%,#ffffffc2 100%)}body.project-case-study-page .brand-mark,body.project-case-study-page .brand-mark-text,body.project-case-study-page .nav-home2 a,html[data-theme="dark"] body.project-case-study-page .brand-mark,html[data-theme="dark"] body.project-case-study-page .brand-mark-text,html[data-theme="dark"] body.project-case-study-page .nav-home2 a{color:#fff}body.project-case-study-page .brand-mark-icon img,html[data-theme="dark"] body.project-case-study-page .brand-mark-icon img{filter:brightness(0) invert(1)}body.project-case-study-page .nav-home2 a:hover,body.project-case-study-page .nav-home2 a.active,html[data-theme="dark"] body.project-case-study-page .nav-home2 a:hover,html[data-theme="dark"] body.project-case-study-page .nav-home2 a.active{background:#fff3;color:#fff}body.project-case-study-page .download-btn,html[data-theme="dark"] body.project-case-study-page .download-btn{border:1px solid #ffffffc2;background:#ffffff1f;color:#fff;box-shadow:none}body.project-case-study-page .theme-toggle-switch,html[data-theme="dark"] body.project-case-study-page .theme-toggle-switch{--theme-toggle-light-ink:#fff;background:#ffffff24}.saturne-note{margin:.85rem 0 0;color:#394575;font-family:"IBM Plex Mono",monospace;font-size:.82rem;line-height:1.45}.saturne-meta-line img{display:inline-block;object-fit:contain;filter:brightness(0) saturate(100%) invert(17%) sepia(75%) saturate(1643%) hue-rotate(223deg) brightness(92%) contrast(92%)}.saturne-architecture{display:none!important}@media (max-width:760px){body.project-case-study-page .project-detail-main{padding:7.2rem .85rem 1rem}body.project-case-study-page .nav-home2 a,html[data-theme="dark"] body.project-case-study-page .nav-home2 a{background:#ffffff29;color:#fff;box-shadow:inset 0 0 0 1px #ffffff2e}body.project-case-study-page .nav-home2 a.active,html[data-theme="dark"] body.project-case-study-page .nav-home2 a.active{background:#ffffff42;color:#fff}}body .topbar-home2,html[data-theme="dark"] body .topbar-home2,body.project-case-study-page .topbar-home2,html[data-theme="dark"] body.project-case-study-page .topbar-home2{padding:1.05rem 1.55rem;background:radial-gradient(circle at 6% 0,#ffb1db85,#0000 31%),radial-gradient(circle at 90% 10%,#97a6ff80,#0000 34%),linear-gradient(90deg,#ffddf0e6 0,#efe2ffe6 45%,#cdd8ffe6 100%);border-bottom:1px solid #ffffff9e;box-shadow:0 12px 28px #605baa14;backdrop-filter:blur(18px)}body .topbar-home2::after,html[data-theme="dark"] body .topbar-home2::after,body.project-case-study-page .topbar-home2::after,html[data-theme="dark"] body.project-case-study-page .topbar-home2::after{bottom:-.22rem;height:.62rem;background:linear-gradient(180deg,#ffffff0d 0,#ffffff7a 55%,#fffffffa 100%)}body .brand-mark,body .brand-mark-text,body .nav-home2 a,html[data-theme="dark"] body .brand-mark,html[data-theme="dark"] body .brand-mark-text,html[data-theme="dark"] body .nav-home2 a,body.project-case-study-page .brand-mark,body.project-case-study-page .brand-mark-text,body.project-case-study-page .nav-home2 a,html[data-theme="dark"] body.project-case-study-page .brand-mark,html[data-theme="dark"] body.project-case-study-page .brand-mark-text,html[data-theme="dark"] body.project-case-study-page .nav-home2 a{color:#272737}body .brand-mark-icon img,html[data-theme="dark"] body .brand-mark-icon img,body.project-case-study-page .brand-mark-icon img,html[data-theme="dark"] body.project-case-study-page .brand-mark-icon img{filter:none}body .nav-home2 a:hover,html[data-theme="dark"] body .nav-home2 a:hover,body.project-case-study-page .nav-home2 a:hover,html[data-theme="dark"] body.project-case-study-page .nav-home2 a:hover{background:#7b72ff1a;color:#4c5dff}body .nav-home2 a.active,html[data-theme="dark"] body .nav-home2 a.active,body.project-case-study-page .nav-home2 a.active,html[data-theme="dark"] body.project-case-study-page .nav-home2 a.active{background:#7b72ff29;color:#4c5dff}body .download-btn,html[data-theme="dark"] body .download-btn,body.project-case-study-page .download-btn,html[data-theme="dark"] body.project-case-study-page .download-btn{border:0;background:linear-gradient(90deg,#ff66bd 0,var(--theme-blue-dark) 100%);color:#fff;box-shadow:0 14px 30px #5c63a42e}body .button-hover-effect{position:relative;isolation:isolate;overflow:visible;border:2px solid #0000!important;border-radius:var(--portfolio-bubbly-button-radius)!important;background:var(--portfolio-bubbly-button-bg)!important;color:#fff!important;box-shadow:0 2px 25px var(--portfolio-bubbly-button-shadow)!important;transition:all 240ms ease,transform 100ms ease-in}body .button-hover-outline{position:absolute;inset:0;z-index:2;opacity:0;overflow:visible;pointer-events:none}body .button-hover-outline svg{display:block;width:100%;height:100%;overflow:visible}body .button-hover-outline rect{fill:none;stroke:var(--portfolio-bubbly-button-bg);stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;vector-effect:non-scaling-stroke}body .button-hover-effect:is(:hover,.button-hover-active) .button-hover-outline{opacity:1}body .button-hover-effect:is(:hover,.button-hover-active) .button-hover-outline rect{stroke-dashoffset:0;animation:btn-border-draw 900ms linear both}body .button-hover-effect:is(:hover,.button-hover-active){background:#fff!important;color:var(--portfolio-bubbly-button-bg)!important;box-shadow:0 2px 25px #ff008233!important}body .button-hover-effect:active{transform:scale(.9)}body .button-hover-effect:focus-visible{outline:2px solid #ff00816b;outline-offset:.2rem}body .button-hover-effect:is(:hover,.button-hover-active) .home-secondary-action-label{color:var(--portfolio-bubbly-button-bg);-webkit-text-fill-color:var(--portfolio-bubbly-button-bg)}body .button-hover-effect:is(:hover,.button-hover-active) img{filter:invert(18%) sepia(99%) saturate(7466%) hue-rotate(318deg) brightness(102%) contrast(106%)!important}@keyframes btn-border-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}body .button-hover-bubbles{position:absolute;inset:0;z-index:3;overflow:visible;pointer-events:none}body .button-hover-bubbles span{position:absolute;top:calc(50% + var(--button-bubble-y,0));left:calc(50% + var(--button-bubble-x,0));width:3px;height:3px;border-radius:999px;background:var(--portfolio-bubbly-button-bg);box-shadow:0 0 10px var(--portfolio-bubbly-button-shadow);opacity:0;filter:blur(.35px);transform:translate3d(-50%,-.25rem,0) scale(var(--button-bubble-scale,1))}body .button-hover-bubbles span:nth-child(1){--button-bubble-x:21%;--button-bubble-y:-14%;--button-bubble-scale:1.4;animation-delay:-.75s;animation-duration:1.7s}body .button-hover-bubbles span:nth-child(2){--button-bubble-x:13%;--button-bubble-y:-15%;animation-delay:-.6s;animation-duration:.7s}body .button-hover-bubbles span:nth-child(3){--button-bubble-x:-1%;--button-bubble-y:-10%;animation-delay:-.8s;animation-duration:.8s}body .button-hover-bubbles span:nth-child(4){--button-bubble-x:-17%;--button-bubble-y:-12%;animation-delay:-.15s;animation-duration:1.6s}body .button-hover-bubbles span:nth-child(5){--button-bubble-x:-29%;--button-bubble-y:-9%;--button-bubble-scale:.75;animation-delay:-.3s;animation-duration:1.6s}body .button-hover-bubbles span:nth-child(6){--button-bubble-x:17%;--button-bubble-y:-8%;--button-bubble-scale:1.3;animation-delay:-.6s;animation-duration:1.1s}body .button-hover-bubbles span:nth-child(7){--button-bubble-x:-42%;--button-bubble-y:11%;--button-bubble-scale:1.2;animation-delay:-.7s;animation-duration:1.15s}body .button-hover-bubbles span:nth-child(8){--button-bubble-x:44%;--button-bubble-y:40%;--button-bubble-scale:.65;animation-delay:-.55s;animation-duration:1.74s}body .button-hover-effect:is(:hover,.button-hover-active) .button-hover-bubbles span{animation-name:portfolio-button-particle;animation-timing-function:ease-in;animation-iteration-count:infinite;animation-fill-mode:both}@keyframes portfolio-button-particle{0%,100%{opacity:0;transform:translate3d(-50%,-.25rem,0) scale(var(--button-bubble-scale,1))}45%{opacity:.82;filter:blur(.75px)}100%{transform:translate3d(-50%,-4.95rem,0) scale(calc(var(--button-bubble-scale,1) * .82),calc(var(--button-bubble-scale,1) * 1.38))}}@media (prefers-reduced-motion:reduce){body .button-hover-bubbles span{animation:none!important;opacity:0!important}}@media (max-width:760px){:root{--portfolio-bubbly-button-radius:.9rem}}body .theme-toggle-switch,html[data-theme="dark"] body .theme-toggle-switch,body.project-case-study-page .theme-toggle-switch,html[data-theme="dark"] body.project-case-study-page .theme-toggle-switch{--theme-toggle-light-ink:#ffffffeb;--theme-toggle-dark-ink:#ffffffeb;background:#0000;box-shadow:none}@media (max-width:760px){body .topbar-home2,html[data-theme="dark"] body .topbar-home2,body.project-case-study-page .topbar-home2,html[data-theme="dark"] body.project-case-study-page .topbar-home2{padding:.65rem .85rem .75rem}body .nav-home2,html[data-theme="dark"] body .nav-home2,body.project-case-study-page .nav-home2,html[data-theme="dark"] body.project-case-study-page .nav-home2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;overflow:visible;padding-inline:0}body .nav-home2 a,html[data-theme="dark"] body .nav-home2 a,body.project-case-study-page .nav-home2 a,html[data-theme="dark"] body.project-case-study-page .nav-home2 a{justify-content:center;min-width:0;min-height:2.2rem;padding:0 .25rem;background:#ffffff80;color:#272737;font-size:.66rem;text-align:center;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff73}body .nav-home2 a.active,html[data-theme="dark"] body .nav-home2 a.active,body.project-case-study-page .nav-home2 a.active,html[data-theme="dark"] body.project-case-study-page .nav-home2 a.active{background:#7b72ff29;color:#4c5dff}}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2{top:.5rem;right:auto;left:50%;width:min(calc(100% - 2rem),88rem);min-height:3.45rem;padding:.34rem clamp(.85rem,1.35vw,1.35rem);border:1px solid #ffffffb8;border-radius:1.48rem;background:radial-gradient(circle at 7% 16%,#ffc2e5ad,#0000 28%),radial-gradient(circle at 86% 15%,#b8c5ff99,#0000 30%),linear-gradient(90deg,#fff4fa8a 0,#f7e9ff94 48%,#e1e7ff8f 100%);box-shadow:inset 0 1px 0 #ffffffc7,0 14px 32px #796fb821;backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);transform:translateX(-50%)}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2::after{display:none;background:#0000}:is(body[class],html[data-theme="dark"] body[class]) .brand-mark{gap:.48rem}:is(body[class],html[data-theme="dark"] body[class]) .brand-mark-icon{flex-basis:2rem;width:2rem;height:2rem;--brand-logo-extra:26px}:is(body[class],html[data-theme="dark"] body[class]) .brand-mark-icon img{width:calc(100% + 26px);height:calc(100% + 26px)}:is(body[class],html[data-theme="dark"] body[class]) .brand-mark-text{font-size:.9rem;line-height:1.04}:is(body[class],html[data-theme="dark"] body[class]) .brand-mark-copy{gap:.04rem}:is(body[class],html[data-theme="dark"] body[class]) .header-availability-pill{gap:.22rem;padding:.08rem .3rem;font-size:.6rem}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch{--theme-toggle-width:2.65rem;--theme-toggle-height:2.65rem;--theme-toggle-light-ink:#7357ff;--theme-toggle-dark-ink:#7357ff;padding:.24rem;border:1px solid #ffffffb8;background:#ffffff6b;box-shadow:inset 0 1px 0 #ffffffc7,0 10px 22px #7467af1c;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1)}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-graphic{opacity:0}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch::before,:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch::after{content:"";position:absolute;left:50%;top:50%;z-index:1;display:block;pointer-events:none;transition:width 180ms ease,height 180ms ease,opacity 180ms ease,box-shadow 180ms ease,transform 180ms ease}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch::before{width:1rem;height:1rem;border-radius:50%;background:#0000;box-shadow:inset -.32rem -.02rem 0 0 #7357ff;transform:translate(-50%,-50%) rotate(-16deg)}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch::after{width:.22rem;height:.22rem;border-radius:50%;background:#7357ff;opacity:0;transform:translate(-50%,-50%)}:is(body[class] .theme-toggle-switch.is-dark,html[data-theme="dark"] body[class] .theme-toggle-switch)::before{width:.86rem;height:.86rem;box-shadow:inset 0 0 0 .18rem #7357ff;transform:translate(-50%,-50%)}:is(body[class] .theme-toggle-switch.is-dark,html[data-theme="dark"] body[class] .theme-toggle-switch)::after{opacity:1;box-shadow:0 -.7rem 0 0 #7357ff,0 .7rem 0 0 #7357ff,-.7rem 0 0 0 #7357ff,.7rem 0 0 0 #7357ff,-.5rem -.5rem 0 0 #7357ff,.5rem -.5rem 0 0 #7357ff,-.5rem .5rem 0 0 #7357ff,.5rem .5rem 0 0 #7357ff}:is(body[class],html[data-theme="dark"] body[class]) .nav-home2 a.active{background:#7b72ff29;color:#4c5dff}body .nav-home2.is-liquid-ready a:focus-visible,html[data-theme="dark"] body .nav-home2.is-liquid-ready a:focus-visible,body.project-case-study-page .nav-home2.is-liquid-ready a:focus-visible,html[data-theme="dark"] body.project-case-study-page .nav-home2.is-liquid-ready a:focus-visible{outline-color:#ffffffb8;outline-offset:-.34rem;box-shadow:inset 0 0 0 1px #4c5dff47}:is(body[class],html[data-theme="dark"] body[class]):is(.nav-home2 a,.brand-mark,.brand-mark-text){color:var(--header-blue-night)}body .ln.nav-home2 a,html[data-theme="dark"] body .ln.nav-home2 a{position:relative;width:100%;min-width:0;min-height:2.45rem;padding:0 clamp(.72rem,1vw,1.05rem);border:1px solid #0000!important;border-radius:1.38rem;background:#0000!important;box-shadow:none!important;color:var(--header-blue-night)!important;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate;overflow:visible;text-shadow:none;--nav-neon-h1:236;--nav-neon-h2:286;--nav-neon-h3:326}body .ln.nav-home2 a::after,html[data-theme="dark"] body .ln.nav-home2 a::after{content:"";position:absolute;top:50%;left:50%;z-index:-1;width:260%;height:300%;border-radius:50%;background:conic-gradient(from 0deg,hsl(var(--nav-neon-h1),100%,60%),hsl(var(--nav-neon-h2),100%,60%),hsl(var(--nav-neon-h3),100%,62%),hsl(var(--nav-neon-h1),100%,60%));filter:blur(36px);opacity:0;pointer-events:none;transform:translate(-50%,-50%);transition:opacity 180ms ease,transform 180ms ease}body .ln.nav-home2 a.active,html[data-theme="dark"] body .ln.nav-home2 a.active{background:#0000!important;background-clip:border-box!important;color:#fff!important;-webkit-background-clip:border-box!important;-webkit-text-fill-color:#fff;text-shadow:0 0 10px hsl(var(--nav-neon-h1),100%,70%),0 0 20px hsl(var(--nav-neon-h2),100%,70%),0 0 30px hsl(var(--nav-neon-h3),100%,70%),0 0 50px hsl(var(--nav-neon-h1),100%,70%)}body .ln.nav-home2 a.active::after,html[data-theme="dark"] body .ln.nav-home2 a.active::after{opacity:.78}body.about-page .ln.nav-home2 a.active,html[data-theme="dark"] body.about-page .ln.nav-home2 a.active{text-shadow:0 0 8px hsl(var(--nav-neon-h1),100%,72%),0 0 14px hsl(var(--nav-neon-h2),100%,72%),0 0 22px hsl(var(--nav-neon-h3),100%,72%)}body.about-page .ln.nav-home2 a.active::after,html[data-theme="dark"] body.about-page .ln.nav-home2 a.active::after{opacity:.28;filter:blur(28px)}body .ln.nav-home2.is-liquid-ready a:not(.active):hover,html[data-theme="dark"] body .ln.nav-home2.is-liquid-ready a:not(.active):hover{color:#e548a8!important}body .ln.nav-home2 a:focus-visible,html[data-theme="dark"] body .ln.nav-home2 a:focus-visible{outline:none;box-shadow:none!important;text-decoration:underline;text-decoration-thickness:.12rem;text-underline-offset:.38rem}.ln.nav-home2,html[data-theme="dark"] body .ln.nav-home2{width:clamp(29rem,43vw,40rem);min-height:2.65rem;margin-block:0;padding:0}.ln.nav-home2::before,.ln-s{display:none}.ln.nav-home2 .ln-l{display:none}.ln-k{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.5rem,1vw,.9rem)}@media (max-width:760px){:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2{top:.65rem;width:min(calc(100% - .9rem),34rem);min-height:0;padding:.72rem .78rem .82rem;border-radius:1.45rem}body .ln.nav-home2,html[data-theme="dark"] body .ln.nav-home2{grid-template-columns:1fr;width:min(100%,34rem);min-height:0;margin:0 auto;padding:0}.ln-k{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.32rem}body .ln.nav-home2 a,html[data-theme="dark"] body .ln.nav-home2 a{width:100%;min-width:0;min-height:2.32rem;padding:0 .18rem;border-radius:.86rem;font-size:clamp(.54rem,2.42vw,.67rem);line-height:1.05;white-space:nowrap}body .ln.nav-home2 a::after,html[data-theme="dark"] body .ln.nav-home2 a::after{width:230%;height:260%;filter:blur(24px)}:is(body[class],html[data-theme="dark"] body[class]) .theme-toggle-switch{--theme-toggle-width:3.1rem;--theme-toggle-height:3.1rem;padding:.25rem}}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2{top:.72rem;right:auto;left:50%;display:flex;width:min(calc(100% - 1rem),40rem);min-height:0;justify-content:center;padding:0;border:0;border-radius:0;background:#0000;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transform:translateX(-50%)}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2>:is(.brand-mark,.topbar-home2-actions){display:none}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2::after{display:none}:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2 .ln.nav-home2{width:100%}@media (max-width:760px){:is(body[class],html[data-theme="dark"] body[class]) .topbar-home2{top:.65rem;width:min(calc(100% - .9rem),34rem)}}html.header-route-slide-active,html.header-route-slide-active body{overflow:hidden}html.header-route-slide-active body>.page-shell>main{visibility:hidden}body>.header-route-live-chrome{z-index:140!important;pointer-events:none!important}body>.header-route-live-chrome *{pointer-events:none!important}.header-route-stage{position:fixed;inset:0;z-index:20;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;background:#0000}.header-route-stage[data-unified-background="true"] .header-route-shell{background:#0000!important}html.header-route-slide-active .header-route-stage.is-ready{visibility:visible;opacity:1}html:not(.header-route-slide-active) .header-route-stage{visibility:hidden!important;opacity:0!important}.header-route-track{position:relative;display:flex;width:max-content;height:100%;transform:translate3d(var(--header-route-from,0),0,0);transition:transform var(--header-route-duration,520ms) var(--header-route-easing,cubic-bezier(.19,1,.22,1));will-change:transform}.header-route-stage.is-moving .header-route-track{transform:translate3d(var(--header-route-to,0),0,0)}.header-route-panel{flex:0 0 100dvw;width:100dvw;height:100dvh;overflow:hidden;position:relative;background:#0000}html.header-route-starfield-cloned body>.page-shell>.portfolio-starfield-canvas--page{visibility:hidden}.header-route-panel>.header-route-starfield-clone{position:absolute!important;inset:0!important;z-index:0!important;width:100%!important;height:100%!important;pointer-events:none!important;contain:strict}.header-route-panel .home-connectivity-sphere-2d,.header-route-panel .projects-connectivity-sphere-2d{position:absolute}.header-route-stage.is-moving[data-split-sphere-roll="true"] .header-route-panel .home-connectivity-sphere-2d::before,.header-route-stage.is-moving[data-split-sphere-roll="true"] .header-route-panel .projects-connectivity-sphere-2d::before{animation:header-route-sphere-roll var(--header-route-duration,520ms) var(--header-route-easing,cubic-bezier(.19,1,.22,1)) both;background:conic-gradient(from 0deg,#0000 0 12%,#ffffff57 13%,#97dfff2e 14.5%,#0000 18% 50%,#ffffff38 52%,#0000 56% 100%);filter:drop-shadow(0 0 .42rem #97dfff29);opacity:.42;will-change:transform}@keyframes header-route-sphere-roll{to{transform:translate(-50%,-50%) rotate(var(--header-route-sphere-roll,120deg))}}.header-route-stage[data-source-content="hidden"] .header-route-panel[data-route-panel="source"] .header-route-shell{opacity:0}.header-route-panel + .header-route-panel{margin-left:calc(-1 * var(--header-route-panel-overlap,14px))}.header-route-shell{position:relative;z-index:1;width:100%;height:100%;min-height:100dvh;overflow:auto}.header-route-source-main{min-height:100dvh}.header-route-source-main [data-wave-reveal="true"].is-wave-text-ready .wave-text__char{opacity:1}.header-route-source-main .header-route-preserved-wave-title,body.home-showcase-page .header-route-source-main .home-liquid-wave-text.wave-text.header-route-preserved-wave-text{background:none!important;background-size:0 0!important;background-repeat:no-repeat!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}.header-route-source-main .header-route-preserved-wave-text .wave-text__char{opacity:1!important;transform:translateY(0)!important;animation:none!important;will-change:auto}.header-route-source-main .header-route-home-exit-item{opacity:1;translate:0 0;animation:none!important}.header-route-source-main.header-route-home-exit-active .header-route-home-exit-item{pointer-events:none;animation:header-route-home-source-exit var(--header-route-home-exit-duration,170ms) cubic-bezier(.33,0,.2,1) var(--header-route-home-exit-delay,0ms) both!important;will-change:opacity,translate,filter}.header-route-source-main .home-hero-copy h1.header-route-home-exit-item{--header-route-home-exit-blur:0;overflow:visible}.header-route-source-main.header-route-home-exit-active .home-hero-copy h1.header-route-home-exit-item{animation-name:header-route-home-source-title-exit!important}@keyframes header-route-home-source-exit{0%{opacity:1;translate:0 0;filter:blur(0)}100%{opacity:0;translate:0 .9rem;filter:blur(var(--header-route-home-exit-blur,3px))}}@keyframes header-route-home-source-title-exit{0%{opacity:1;translate:0 0;filter:none;visibility:visible}100%{opacity:0;translate:0 .9rem;filter:none;visibility:hidden}}.header-route-target-main .home-appear-item,.header-route-target-main .home-hero-actions>a,.header-route-target-main .home-value-card,.header-route-target-main .home-stack-list li,.header-route-target-main .projects-featured-copy,.header-route-target-main .projects-grid-card{opacity:0!important;animation:none!important;pointer-events:none!important}.header-route-target-main .home-appear-item,.header-route-target-main .home-hero-actions>a,.header-route-target-main .home-value-card{translate:0 50%!important}@media (prefers-reduced-motion:no-preference){.header-route-target-main .header-route-wave-title-gate,.header-route-target-main [data-wave-reveal="true"]{opacity:0!important;animation:none!important}}@media (prefers-reduced-motion:reduce){.header-route-track{transition-duration:1ms}}:is(body.home-showcase-page,body.projects-overview-page,body.about-page,body.contact-page,body.saturne-detail-page,body.project-case-study-page) *:is(.brand-mark-text,.nav-home2 a:not(.active),main h2,main h3,main p,main strong,main li,main dt,main dd,.projects-copy h1,.project-detail-title #project-title-main,.project-breadcrumb *,.saturne-breadcrumb *,.home-stack-list span,.contact-form-note span):not(.projects-featured-card *,.about-cta-banner *,.about-hero-proof *,.about-client-panel *,.about-card-note,.project-browser *,.project-gallery-screen *,.home-hero-lead--personal,.home-hero-lead--personal *,.wave-text,.wave-text *,.availability-pill){background:var(--portfolio-blue-band)!important;-webkit-background-clip:text!important;background-clip:text!important;color:var(--header-blue-night)!important;-webkit-text-fill-color:#0000!important}body.about-page .about-journey-step .about-journey-date,body.about-page .about-journey-step strong,body.about-page .about-journey-step p,body.about-page .about-journey-step .about-journey-badge{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:currentColor!important}body.about-page .about-journey-step strong{color:#07114a!important}body.about-page .about-journey-step p{color:#343b68!important}body.about-page .about-journey-step .about-journey-date,body.about-page .about-journey-step .about-journey-badge{color:var(--journey-color)!important}:is(body.home-showcase-page .home-liquid-wave-text.wave-text,body.projects-overview-page .projects-overview-panel .projects-copy h1.wave-text,body.about-page .about-panel .about-copy h1.wave-text,body.contact-page .contact-copy h1.wave-text){width:fit-content;max-width:100%;background:var(--wave-title-reference-gradient)!important;-webkit-background-clip:text!important;background-clip:text!important;color:#0000!important;font-family:"Space Grotesk",sans-serif!important;font-size:var(--wave-title-reference-size)!important;font-weight:700!important;line-height:var(--wave-title-reference-line-height)!important;letter-spacing:0!important;-webkit-text-fill-color:#0000!important}body.projects-overview-page .projects-overview-panel .projects-copy h1.wave-text{padding-block:.45em .08em;margin-block:-.45em -.08em;overflow:visible}body.projects-overview-page .projects-overview-panel .projects-copy h1.wave-text.is-wave-text-ready{background-size:0 0!important;background-repeat:no-repeat!important;-webkit-background-clip:border-box!important;background-clip:border-box!important}body.home-showcase-page .home-liquid-wave-text.wave-text .home-title-exclamation,body.projects-overview-page .projects-overview-panel .projects-copy h1.wave-text .projects-title-accent,body.about-page .about-panel .about-copy h1.wave-text .about-title-question,body.contact-page .contact-copy h1.wave-text .contact-title-question{background:inherit!important;-webkit-background-clip:text!important;background-clip:text!important;color:#0000!important;-webkit-text-fill-color:#0000!important}@media (max-width:760px){:root{--wave-title-reference-size:clamp(2rem,10vw,2.48rem);--wave-title-reference-line-height:1}:is(body.home-showcase-page .home-liquid-wave-text.wave-text,body.projects-overview-page .projects-overview-panel .projects-copy h1.wave-text,body.about-page .about-panel .about-copy h1.wave-text,body.contact-page .contact-copy h1.wave-text){width:100%}}@media (max-width:380px){:root{--wave-title-reference-size:2.1rem}}
