@charset "UTF-8";@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zuume;src:url("./media/Zuume Regular-FNJHRPWR.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Zuume;src:url("./media/Zuume SemiBold-Z7XGKRNB.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Zuume;src:url("./media/Zuume Bold-TKWSGXSN.ttf") format("truetype");font-weight:700;font-style:normal}:root{--space-15: .9375rem;--c-bg: #2d2d2d;--c-surface: #30302f;--c-surface-soft: #383836;--c-text: #ffffff;--c-muted: #bdbdbd;--c-accent: #339989;--c-accent-deep: #153030;--c-accent-light: #9ce3d8;--shadow-soft: 0 16px 34px rgba(0, 0, 0, .24)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Montserrat,sans-serif;color:var(--c-text);background:radial-gradient(circle at 10% 5%,rgba(51,153,137,.24),transparent 38%),radial-gradient(circle at 85% 15%,rgba(21,48,48,.55),transparent 42%),linear-gradient(165deg,#2d2d2d,#252525 60%,#20201f);transition:background .22s ease,color .22s ease}p{line-height:1.65;margin:0 0 .5rem}body.theme-light{--c-bg: #edf2f3;--c-surface: #ffffff;--c-surface-soft: #f6f9f9;--c-text: #24545b;--c-muted: #51696a;--c-accent: #237d74;--c-accent-deep: #d9ece9;--c-accent-light: #1d5f5a;--shadow-soft: 0 14px 30px rgba(9, 37, 37, .1);background:radial-gradient(circle at 12% 6%,rgba(44,153,138,.14),transparent 36%),radial-gradient(circle at 88% 12%,rgba(28,96,96,.1),transparent 42%),linear-gradient(165deg,#edf2f3,#e7efef 60%,#e3ebeb)}h1,h2,h3{margin-top:0;font-family:Montserrat,sans-serif;line-height:1.15;letter-spacing:.01em}a{color:var(--c-accent)}a,button,[role=button],summary,input,textarea,select{-webkit-tap-highlight-color:transparent}a:focus,button:focus,[role=button]:focus,summary:focus{outline:none;box-shadow:none}.page-section{width:min(1280px,100%);margin:0 auto;padding:3.2rem var(--space-15)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-section--home{padding-top:1.2rem}.section-header{margin-bottom:1.5rem;animation:fade-up .52s ease-out}.section-header--compact{margin-bottom:.9rem}.section-header__kicker{margin:0 0 .2rem;color:var(--c-muted);text-transform:uppercase;letter-spacing:.13em;font-size:.8rem}.section-header h1{margin:0;font-size:clamp(1.9rem,4vw,3rem);max-width:24ch}.section-title{margin:0;font-size:clamp(1.4rem,3vw,2.2rem)}.home-projects .section-title{margin-bottom:15px}.intro-text{max-width:72ch;color:var(--c-muted);margin-bottom:1rem}.intro-text--tight{margin-bottom:0}.text-block{display:grid;gap:1rem;max-width:84ch}.text-block p{margin:0}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.45rem;margin-top:1.45rem}.panel,.card,.contact-card,.timeline__item,.stat-card{background:linear-gradient(180deg,color-mix(in srgb,var(--c-surface) 90%,transparent),color-mix(in srgb,var(--c-surface-soft) 92%,transparent));border:1px solid rgba(189,189,189,.22);border-radius:18px;box-shadow:var(--shadow-soft);animation:scale-up .62s ease-out both}.card:nth-child(1){animation-delay:0ms}.card:nth-child(2){animation-delay:80ms}.card:nth-child(3){animation-delay:.16s}.card:nth-child(4){animation-delay:.24s}.card:nth-child(5){animation-delay:.32s}.card:nth-child(6){animation-delay:.4s}.panel,.card,.contact-card,.timeline__item{padding:1.45rem}.panel h2,.card h2,.timeline__item h2{margin-bottom:1.5rem;font-size:clamp(1.25rem,2.2vw,1.8rem)}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.45rem}@media(min-width:761px){.cards-grid>.card--project:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:min(100%,(100% - 1.45rem) / 2)}}.mobile-realisations-summary{display:none}.cards-grid--skills{grid-template-columns:repeat(3,minmax(0,1fr))}.card--skill{display:flex;flex-direction:column}.card--skill-tech{background:linear-gradient(180deg,color-mix(in srgb,var(--c-surface) 92%,transparent),color-mix(in srgb,var(--c-surface-soft) 94%,transparent)),linear-gradient(140deg,color-mix(in srgb,#49a296 14%,transparent),transparent 65%);border-color:color-mix(in srgb,var(--c-accent) 28%,rgba(189,189,189,.22));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 18%,transparent)}.card--skill-human{background:linear-gradient(180deg,color-mix(in srgb,var(--c-surface) 92%,transparent),color-mix(in srgb,var(--c-surface-soft) 94%,transparent)),linear-gradient(140deg,color-mix(in srgb,#7e8bbf 13%,transparent),transparent 65%);border-color:color-mix(in srgb,#7e8bbf 24%,rgba(189,189,189,.22));box-shadow:inset 0 0 0 1px color-mix(in srgb,#7e8bbf 17%,transparent)}.card__body{flex:1}.card__footer{margin-top:auto;padding-top:.3rem}.card p{margin:0 0 15px;color:var(--c-muted);line-height:1.65}.skill-note{margin-top:.55rem;font-size:.92rem}.skill-head{display:inline-flex;align-items:center;gap:.5rem}.skill-head__icon{width:34px;height:34px;fill:var(--c-accent);transform:translateY(.03rem)}.skill-meter{margin-top:.7rem;height:9px;border-radius:999px;background:color-mix(in srgb,var(--c-muted) 28%,transparent);overflow:hidden}.skill-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ec6b3,#2c8f83);width:var(--progress-width, 0%);transform-origin:left center;transform:scaleX(0);animation:skill-progress 1.2s ease-out forwards}@keyframes skill-progress{to{transform:scaleX(1)}}.card-link{display:inline-flex;align-items:center;justify-content:center;margin-top:1rem;margin-bottom:.6rem;font-weight:400;font-family:Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;padding:.52rem .75rem;border:1px solid color-mix(in srgb,var(--c-muted) 42%,transparent);border-radius:8px;transition:border-color .16s ease,color .16s ease,background .16s ease;text-decoration:none}.card-link:hover{border-color:color-mix(in srgb,var(--c-accent) 64%,transparent);background:color-mix(in srgb,var(--c-accent) 14%,transparent)}.card-meta-title{display:block;margin-top:1.2rem;margin-bottom:.55rem;padding:0;border:0;border-radius:0;font-size:.72rem;font-family:Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.24em;color:color-mix(in srgb,var(--c-muted) 84%,var(--c-accent-light) 16%);font-weight:600;width:auto}.card-meta-list{margin:.65rem 0 0;padding:0;list-style:none;display:grid;gap:.5rem}.card-meta-list li{display:grid;grid-template-columns:.75rem minmax(0,1fr);gap:.45rem;align-items:start}.card-meta-list li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-accent-light);box-shadow:0 0 #9ce3d86b;animation:pulse-ring 2.8s ease-out infinite;justify-self:center;align-self:start;margin-top:calc((1.45em - 8px)/2)}.card-meta-list li a{display:block;margin-top:0;line-height:1.45}.card-meta-list--pretty{margin-top:.8rem}.card-meta-list--pretty li a{text-decoration:none}.card--project>a{display:inline-flex;align-items:center;gap:.5rem;margin-top:.7rem;text-decoration:none;font-weight:700}.project-visual{margin:-1.45rem -1.45rem 0;border-radius:18px 18px 0 0;overflow:hidden;border-bottom:1px solid rgba(189,189,189,.18)}.project-visual img{display:block;width:100%;height:180px;object-fit:cover;object-position:top;transform-origin:var(--zoom-x, 50%) var(--zoom-y, 50%);transition:transform .42s ease}.project-visual:hover img{transform:scale(1.14)}.github-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.2rem;color:var(--c-accent)!important}.github-link svg{width:18px;height:18px;fill:currentColor}.github-link:hover{opacity:.8}.chip{display:inline-block;margin:.9rem 0 .6rem!important;border:1.5px solid var(--c-accent-light);color:var(--c-accent-light);border-radius:999px;padding:.28rem .8rem;font-size:1.2rem!important;font-family:Zuume,Montserrat,sans-serif;letter-spacing:.3em;text-transform:uppercase;font-weight:600}.metric-chip{margin:.9rem 0 .6rem!important;padding:0;border:0;border-radius:0;font-family:Zuume,Montserrat,sans-serif;font-size:1.2rem!important;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);font-weight:600}.home-hero{position:relative;z-index:2;margin-top:-1.5rem;margin-left:-15px;margin-right:-15px;overflow-x:clip;padding:1.5rem var(--space-15) 1.4rem;background:radial-gradient(circle at 18% 45%,rgba(0,0,0,.56),rgba(0,0,0,.22) 52%,transparent 72%),linear-gradient(116deg,#080f11e6,#0e1c1ed6 52%,#122427cc),url("./media/background-hero-MKPRDR2R.png") left center/cover no-repeat;border-bottom:1px solid color-mix(in srgb,var(--c-muted) 26%,transparent)}.home-hero__inner{width:min(1280px,100%);margin:0 auto;min-height:calc(100vh - 96px);display:grid;grid-template-rows:1fr auto auto;gap:1.3rem;align-items:center}.home-hero__text{display:grid;gap:.2rem;align-content:center;justify-items:end;text-align:right}.home-hero__name{margin:0;font-size:1rem;line-height:1.3;letter-spacing:.06em;font-weight:600;color:#fff}.home-hero__name-first{text-transform:capitalize}.home-hero__name-last{text-transform:uppercase}.home-hero__title{margin:20px 0 0;font-size:clamp(1.4rem,4.2vw,2.85rem);line-height:1.08;color:#fff;white-space:nowrap}.home-hero__focus{margin:.35rem 0 0;font-size:1.02rem;line-height:1.25;font-weight:600;letter-spacing:.05em;color:color-mix(in srgb,var(--c-accent-light) 78%,#ffffff 22%);white-space:nowrap;overflow:hidden;width:0;border-right:2px solid color-mix(in srgb,var(--c-accent-light) 78%,#ffffff 22%);animation:typing-focus 3s steps(28,end) .2s 1 forwards,caret-hide 0s linear 3.2s 1 forwards}.home-hero__actions{display:flex;justify-content:center;align-items:center;margin-bottom:16px}.home-hero__scroll-hint{display:flex;justify-content:center;align-items:center;opacity:.6;transform:translateY(-36px);animation:scroll-pulse 4.6s ease-in-out infinite}.home-hero__scroll-hint svg{width:24px;height:24px;fill:#fff}.home-angles{position:relative;z-index:1;padding-top:4rem;padding-bottom:4rem;opacity:calc(.2 + var(--home-angles-progress, 0) * .8);transform:translateY(calc((1 - var(--home-angles-progress, 0)) * -72px));will-change:transform,opacity}.home-angles__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.home-angle-line{display:grid;grid-template-rows:auto auto auto auto;justify-items:center;align-content:start;text-align:center;gap:.62rem;padding:.7rem 1rem .5rem}.home-angle-line+.home-angle-line{border-left:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent)}.home-angle-line__icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;color:var(--c-accent-light)}.home-angle-line__icon svg{width:58px;height:58px;fill:currentColor}.home-angle-line__keyword{margin:0;font-family:Zuume,Montserrat,sans-serif;font-size:1.2rem;letter-spacing:.3em;text-transform:uppercase;color:var(--c-accent);font-weight:600}.home-angle-line__sentence{margin:0;color:color-mix(in srgb,var(--c-text) 90%,var(--c-muted));max-width:30ch;line-height:1.45}.home-projects{padding-top:1.6rem;padding-bottom:3.8rem;display:grid;gap:1.3rem}.home-project{display:grid;gap:.9rem;border-radius:18px;border:1px solid color-mix(in srgb,var(--c-muted) 24%,transparent);background:color-mix(in srgb,var(--c-surface) 94%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--c-shadow) 12%,transparent);overflow:hidden}.home-project img{width:100%;height:100%;object-fit:cover;max-height:360px}.home-project--lead{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0}.home-project__content{display:grid;gap:.8rem;align-content:start;padding:1.2rem}.home-project--lead .home-project__content{gap:.45rem;padding:1.45rem 1.3rem}.home-project__content h3{margin:0;font-size:clamp(1.1rem,2.2vw,1.6rem)}.home-project__content h3 a{text-decoration:none;color:var(--c-text)}.home-project__content p{margin:0;color:var(--c-muted)}.home-project__cta{text-decoration:none;font-weight:700;color:var(--c-accent-light);letter-spacing:.02em;justify-self:start}.home-projects__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.home-project--compact img{max-height:220px}.home-projects__all-link{display:flex;justify-content:center}.home-projects__all-link .btn{min-width:250px}.home-quote{width:100%;margin-left:0;margin-right:0;padding:4rem var(--space-15);background:var(--c-accent);border-top:1px solid color-mix(in srgb,var(--c-muted) 24%,transparent);border-bottom:1px solid color-mix(in srgb,var(--c-muted) 24%,transparent)}.home-quote__inner{width:min(1040px,100%);margin:0 auto;text-align:center;display:grid;gap:.8rem}.home-quote__text{margin:0;font-size:clamp(1.3rem,3vw,2.35rem);line-height:1.35;color:#fff}.home-quote__line{display:block}.home-quote__line--typed{font-weight:700;display:inline-block;margin-top:.12em;white-space:nowrap;overflow:hidden;width:0;max-width:100%;border-right:2px solid rgba(255,255,255,.92);animation:typing-quote 6s steps(39,end) .25s 1 forwards,caret-hide 0s linear 4.3s 1 forwards}.home-quote__attribution{margin:0;font-size:.84rem;letter-spacing:.08em;text-transform:uppercase;color:#fffc}.home-contact-invite{padding-top:3.6rem;padding-bottom:4rem;text-align:center;display:grid;gap:1rem}.home-contact-invite p{margin:0;font-size:1rem;color:var(--c-text)}.home-contact-invite__actions{display:flex;justify-content:center;gap:.9rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:8px;font-weight:600;font-family:Montserrat,sans-serif;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;padding:.76rem 1.1rem;border:1px solid transparent;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.btn--primary{min-width:220px;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--c-accent) 96%,#7bd7ca 4%),color-mix(in srgb,#2d9085 90%,transparent));box-shadow:0 12px 24px #1345402e}.btn--ghost{min-width:220px;color:var(--c-text);border-color:color-mix(in srgb,var(--c-muted) 52%,transparent);background:color-mix(in srgb,var(--c-surface) 70%,transparent)}.btn--back{margin-bottom:1.1rem;min-width:0;width:64px;height:64px;padding:0;color:var(--c-text);background:color-mix(in srgb,var(--c-surface-soft) 92%,transparent);border-color:color-mix(in srgb,var(--c-muted) 45%,transparent)}.btn--back svg{width:36px;height:36px;fill:currentColor}.btn--detail{margin-top:1rem;margin-bottom:1.6rem}.detail-primary-action{margin-top:.55rem;margin-bottom:.25rem}.detail-return-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.62rem 1rem;border-radius:10px;border:1px solid color-mix(in srgb,var(--c-accent) 88%,#173d39 12%);background:var(--c-accent);color:#fff!important;text-decoration:none;font-family:Montserrat,sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease}.detail-return-link:hover{background:color-mix(in srgb,var(--c-accent) 86%,#ffffff 14%);box-shadow:0 10px 20px #13454033;transform:translateY(-1px)}.detail-block--definition,.detail-block--anecdotes,.detail-block--critical,.detail-block--evolution,.detail-block--linked{padding:.2rem 0;border:0;background:transparent;box-shadow:none;border-radius:0;margin-bottom:2.3rem}.detail-quote{margin:0;padding-left:1rem;border-left:3px solid color-mix(in srgb,var(--c-accent) 78%,transparent);font-size:clamp(1.2rem,2.8vw,1.95rem);line-height:1.4;font-weight:700;color:color-mix(in srgb,var(--c-text) 96%,var(--c-accent-light) 4%)}.detail-definition-copy{display:grid;gap:.65rem;max-width:78ch}.detail-definition-copy p{margin:0;line-height:1.72;color:color-mix(in srgb,var(--c-text) 92%,var(--c-muted))}.anecdote-accordion-list{display:grid;gap:.65rem}.anecdote-accordion{border:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);border-radius:14px;background:color-mix(in srgb,var(--c-surface-soft) 84%,transparent);overflow:hidden}.anecdote-accordion summary{list-style:none;cursor:pointer;padding:.9rem 1rem;font-weight:700;font-size:clamp(1rem,1.9vw,1.22rem);color:var(--c-text);position:relative}.anecdote-accordion summary::marker{display:none}.anecdote-accordion summary:after{content:"+";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:1.15rem;color:var(--c-accent-light)}.anecdote-accordion[open] summary:after{content:"-"}.anecdote-accordion .detail-points{padding:.8rem 1rem 1rem;margin-top:0;border-top:1px solid color-mix(in srgb,var(--c-muted) 22%,transparent)}.detail-section-divider{height:1px;width:100%;margin:.45rem 0 1.75rem;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--c-muted) 42%,transparent) 22%,color-mix(in srgb,var(--c-muted) 42%,transparent) 78%,transparent 100%)}.detail-block--critical{margin-top:.6rem;margin-bottom:1rem;padding:1.35rem 1.2rem;border-radius:12px;background:linear-gradient(140deg,color-mix(in srgb,var(--c-surface-soft) 82%,transparent),color-mix(in srgb,var(--c-accent-deep) 16%,transparent));border:1px solid color-mix(in srgb,var(--c-accent) 36%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c-accent) 14%,transparent)}.detail-block--critical h2{margin:0}.detail-list--critical{margin:.15rem 0 0;padding-left:1rem;display:grid;gap:.62rem}.detail-list--critical li{font-style:italic;line-height:1.7;color:color-mix(in srgb,var(--c-text) 90%,var(--c-muted))}.detail-block--evolution{gap:.2rem;padding-top:.2rem}.detail-block--evolution .section-header__kicker{margin:0;color:color-mix(in srgb,var(--c-accent-light) 62%,var(--c-muted) 38%)}.detail-block--evolution h2{margin:0}.detail-evolution-copy{display:grid;gap:.8rem;max-width:76ch;margin-top:.35rem;padding:1.08rem 1.05rem 1.08rem 1.2rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 70%,transparent);position:relative}.detail-evolution-copy:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;background:color-mix(in srgb,var(--c-accent) 74%,transparent)}.detail-evolution-copy p{margin:0;line-height:1.72;color:color-mix(in srgb,var(--c-text) 90%,var(--c-muted));position:relative;padding-left:.95rem}.detail-evolution-copy p:before{content:">";position:absolute;left:0;top:0;color:var(--c-accent-light);font-weight:700}.linked-projects-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.linked-project-mini{display:grid;gap:.2rem;padding:.9rem 1rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--c-muted) 32%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 84%,transparent);text-decoration:none;position:relative;color:var(--c-text);transition:border-color .16s ease,background-color .16s ease}.linked-project-mini:hover{border-color:color-mix(in srgb,var(--c-accent) 64%,transparent);background:color-mix(in srgb,var(--c-accent) 16%,transparent)}.linked-project-mini__title{font-weight:700;padding-right:1.5rem}.linked-project-mini__meta{font-size:.86rem;color:var(--c-muted);line-height:1.45;padding-right:1.5rem}.linked-project-mini__arrow{position:absolute;right:.9rem;top:.9rem;color:var(--c-accent-light);font-weight:700}.btn:hover{transform:translateY(-1px)}.btn--ghost:hover{border-color:color-mix(in srgb,var(--c-accent) 70%,transparent);background:color-mix(in srgb,var(--c-accent) 18%,transparent)}.btn--primary:hover{box-shadow:0 14px 28px #1345403d}@keyframes scroll-pulse{0%,to{opacity:.3;transform:translateY(-18px)}50%{opacity:.75;transform:translateY(-15px)}}@keyframes typing-quote{0%{width:0}to{width:37ch}}@keyframes typing-focus{0%{width:0}to{width:28ch}}@keyframes caret-hide{to{border-right-color:transparent}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}@keyframes scale-up{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulse-ring{0%{box-shadow:0 0 #9ce3d86b}70%{box-shadow:0 0 0 8px #9ce3d800}to{box-shadow:0 0 #9ce3d800}}@keyframes drift{0%,to{transform:translateZ(0)}50%{transform:translate3d(-14px,-10px,0)}}.timeline{margin:0;padding:0;list-style:none;display:grid;gap:.9rem}.timeline__period{margin:0;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-accent-light)}.timeline__place{margin:0 0 .5rem;color:var(--c-muted)}.detail-block{display:grid;gap:.95rem;margin-bottom:1.9rem}.realisation-screenshot{margin:0 0 1.9rem;border-radius:var(--radius-md);overflow:hidden;border:1px solid color-mix(in srgb,var(--c-border) 60%,transparent);box-shadow:0 4px 18px color-mix(in srgb,var(--c-shadow) 20%,transparent)}.realisation-screenshot img{display:block;width:100%;height:auto;object-fit:cover}.detail-block--experience{padding-top:.7rem;padding-bottom:.2rem;border:0;background:transparent;box-shadow:none;border-radius:0}.detail-block--experience>h2,.detail-block--formation>h2{text-transform:capitalize}.detail-block--formation,.detail-block--certification{padding-top:1.35rem;padding-bottom:.2rem;border:0;border-top:1px solid color-mix(in srgb,var(--c-muted) 32%,transparent);background:transparent;box-shadow:none;border-radius:0}.detail-block--certification .detail-list li:before{display:none}.detail-list--rich{padding-left:1.1rem}.detail-list--rich h3{margin:0;font-size:clamp(1rem,1.9vw,1.35rem)}.detail-list--rich p{margin:.25rem 0 0}.detail-list--cards{padding-left:0}.detail-list--cards li{display:block;list-style:none;padding:1rem 1rem 1rem 1.1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 86%,transparent);position:relative}.detail-list--cards li:before{content:"";position:absolute;left:.68rem;top:1.18rem;width:8px;height:8px;border-radius:50%;background:var(--c-accent-light);box-shadow:0 0 #9ce3d88c;animation:pulse-ring 2.8s ease-out infinite}.detail-list--no-bullet li:before{display:none}.detail-points{display:grid;gap:.55rem;margin-top:.5rem}.detail-block h2{margin:0}.detail-block h3{margin:0;font-size:clamp(1.05rem,2vw,1.6rem)}.detail-heading--anchored{margin:0;padding-left:.68rem;border-left:4px solid color-mix(in srgb,var(--c-accent) 86%,transparent)}.panel.detail-block--results{background-color:#00808012;border-color:color-mix(in srgb,var(--c-accent) 30%,rgba(189,189,189,.22))}.segment-filter{display:inline-flex;flex-wrap:wrap;gap:.5rem;margin:.1rem 0 1.15rem}.segment-filter__item{border:1px solid color-mix(in srgb,var(--c-muted) 46%,transparent);background:color-mix(in srgb,var(--c-surface) 88%,transparent);color:var(--c-text);padding:.5rem .95rem;border-radius:999px;font-family:Montserrat,sans-serif;font-size:.88rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.segment-filter__item--tech{border-color:color-mix(in srgb,var(--c-accent) 36%,transparent);background:color-mix(in srgb,var(--c-accent) 10%,transparent)}.segment-filter__item--human{border-color:color-mix(in srgb,#7e8bbf 40%,transparent);background:color-mix(in srgb,#7e8bbf 10%,transparent)}.segment-filter__item--active{background:color-mix(in srgb,var(--c-accent) 82%,transparent);color:#102d2c;border-color:color-mix(in srgb,var(--c-accent) 72%,transparent)}.segment-filter__item--human.segment-filter__item--active{background:color-mix(in srgb,#8f9dd1 54%,transparent);color:#17213d;border-color:color-mix(in srgb,#8f9dd1 66%,transparent)}.journey-list{margin:0;padding:0 0 0 1.05rem;list-style:none;display:grid;gap:1.15rem;border-left:2px dashed color-mix(in srgb,var(--c-muted) 36%,transparent)}.journey-item{padding:1.2rem;border-radius:16px;border:1px solid rgba(189,189,189,.2);background:color-mix(in srgb,var(--c-accent-deep) 20%,var(--c-surface-soft));display:grid;grid-template-columns:210px 1fr;gap:1.15rem;position:relative}.journey-item:before{content:"";position:absolute;left:-1.58rem;top:1.35rem;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--c-accent) 78%,#d2f5ef 22%);box-shadow:0 0 0 5px color-mix(in srgb,var(--c-accent) 25%,transparent)}.journey-item--formation:before{border-radius:4px;background:color-mix(in srgb,var(--c-accent) 78%,#d2f5ef 22%);box-shadow:0 0 0 5px color-mix(in srgb,var(--c-accent) 25%,transparent)}.journey-item__logo{display:grid;align-content:start;gap:.75rem}.journey-item__content{display:grid;gap:.8rem}.journey-item__summary{display:grid;gap:.55rem}.journey-item__summary h3{margin:0;font-size:clamp(1.1rem,2.1vw,1.6rem)}.journey-item__place{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center;color:var(--c-muted)}.journey-item__place a{font-weight:700;text-decoration:none}.logo-chip{display:inline-flex;align-items:center;justify-content:center;width:128px;height:128px;padding:.9rem;border-radius:12px;background:#fff;border:1px solid rgba(0,0,0,.08);text-decoration:none}.logo-chip img{height:96px;width:96px;object-fit:contain}.journey-item__details{padding-top:.45rem;border-top:1px dashed rgba(189,189,189,.28)}.journey-item__details summary{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-weight:700;color:var(--c-accent-light);margin-bottom:.7rem}.journey-item__details summary::marker{color:var(--c-accent-light)}.journey-item__details p{margin:.35rem 0}.journey-item__details .card-meta-title{margin-top:1.2rem;margin-bottom:4px;font-family:Montserrat,sans-serif;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#009b8a}.journey-item__details>p:not(.card-meta-title){font-weight:400;color:var(--c-muted)}.journey-toggle-arrow{display:inline-flex;line-height:1;transform:rotate(0);transition:transform .3s ease}.journey-item__details summary:hover .journey-toggle-arrow{transform:rotate(180deg)}.journey-item__details[open]{margin-top:.55rem;padding-top:1.05rem;padding-bottom:.95rem}.journey-item__details[open]>.card-meta-title{margin-top:1.45rem;margin-bottom:.5rem;padding-top:1rem;border-top:1px dashed color-mix(in srgb,var(--c-muted) 24%,transparent)}.journey-item__details[open]>summary+.card-meta-title{margin-top:.9rem;padding-top:0;border-top:0}.journey-item__details[open]>p:not(.card-meta-title),.journey-item__details[open]>.detail-list{margin-bottom:.25rem}.journey-item__details[open] .journey-toggle-arrow{transform:rotate(180deg)}.detail-list{margin:0;padding-left:0;display:grid;gap:.8rem}.detail-list li::marker{color:transparent}.detail-list li{display:grid;grid-template-columns:.75rem minmax(0,1fr);column-gap:.45rem;align-items:start;list-style:none;padding-left:0}.detail-list li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-accent-light);box-shadow:0 0 #9ce3d873;animation:pulse-ring 2.8s ease-out infinite;justify-self:center;align-self:start;margin-top:calc((1.6em - 8px)/2)}.detail-list.detail-list--cards li{display:block;padding:1rem 1rem 1rem 1.1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 86%,transparent);position:relative}.detail-list.detail-list--cards li:before{content:"";position:absolute;left:.68rem;top:1.18rem;width:8px;height:8px;border-radius:50%;background:var(--c-accent-light);box-shadow:0 0 #9ce3d88c;animation:pulse-ring 2.8s ease-out infinite;margin-top:0}.detail-list.detail-list--no-bullet li:before{display:none;content:none}.detail-result-card{display:grid;gap:.6rem;padding:1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 88%,transparent)}.detail-result-card h3{margin:0;font-size:1rem}.two-columns--details{margin-top:.2rem}.detail-list li p{margin:.18rem 0 0;color:var(--c-muted)}.journey-item__details .detail-list li>span{display:block;min-width:0;line-height:1.6;color:var(--c-muted)}.journey-item__details .detail-list li>span a{display:inline;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.certification-item{list-style:none;padding:.95rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--c-muted) 34%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 88%,transparent)}.detail-block--certification .detail-list li.certification-item{display:grid;grid-template-columns:1fr;gap:.55rem;padding:.95rem}.detail-block--certification .detail-list li.certification-item:before{display:none;content:none}.certification-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.certification-logo{width:34px;height:34px;padding:4px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid color-mix(in srgb,var(--c-muted) 35%,transparent)}.certification-item--single{padding:1.05rem;display:grid;gap:.45rem}.certification-line{margin:0}.certification-line--date{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;color:color-mix(in srgb,var(--c-muted) 78%,var(--c-accent-light) 22%);text-align:left}.certification-line--school{font-weight:700;color:color-mix(in srgb,var(--c-accent) 78%,var(--c-text) 22%)}.certification-line--title{line-height:1.5;font-weight:400}.certification-line--summary{line-height:1.5;font-weight:400;color:var(--c-muted)}.certification-line--summary strong{font-weight:700;color:color-mix(in srgb,var(--c-accent) 78%,var(--c-text) 22%)}.certification-line--proof a{text-decoration:none;font-weight:600;color:color-mix(in srgb,var(--c-accent) 84%,var(--c-text) 16%)}@media(min-width:761px){.journey-item__details .card-meta-title{font-size:11px}}.certification-line--proof a:hover{color:color-mix(in srgb,var(--c-accent) 92%,var(--c-text) 8%)}.certification-school{font-weight:700;color:color-mix(in srgb,var(--c-accent) 78%,var(--c-text) 22%)}.certification-logo{margin-top:.55rem;width:88px;height:88px;padding:.42rem;border-radius:10px;background:#fff;border:1px solid rgba(0,0,0,.1);display:inline-flex;align-items:center;justify-content:center}.certification-logo img,.certification-logo a{width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center}.certification-logo img{width:62px;height:62px;object-fit:contain}.detail-list--links a{font-weight:700;text-decoration:none}.detail-inline-github{display:inline-flex;align-items:center;gap:.45rem;margin-top:.8rem;font-size:.85rem;font-weight:600;letter-spacing:.03em;text-decoration:none;color:color-mix(in srgb,var(--c-accent) 78%,var(--c-text) 22%)}.detail-inline-github svg{width:15px;height:15px;fill:currentColor}.detail-inline-github:hover{color:color-mix(in srgb,var(--c-accent) 88%,var(--c-text) 12%)}.logo-marquee{overflow:hidden;border-radius:12px;border:1px solid rgba(189,189,189,.2);background:color-mix(in srgb,var(--c-surface) 88%,transparent);padding:.8rem 0}.logo-marquee__track{display:flex;align-items:center;gap:1.3rem;width:fit-content;animation:marquee 26s linear infinite}.logo-marquee__item{flex:0 0 auto;width:160px;height:82px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#fff;border:1px solid rgba(0,0,0,.08)}.logo-marquee__item img{max-width:126px;max-height:58px;object-fit:contain}.metrics-grid .metric-value{font-size:1.05rem;font-weight:700;color:var(--c-accent-light)}.contact-links{display:grid;gap:.95rem}.contact-link{display:grid;grid-template-columns:22px 1fr;gap:.65rem;align-items:center;padding:1.7rem .78rem;text-decoration:none;border-radius:12px;border:1px solid color-mix(in srgb,var(--c-muted) 36%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 86%,transparent);color:var(--c-text)}.contact-link:hover{border-color:color-mix(in srgb,var(--c-accent) 68%,transparent);background:color-mix(in srgb,var(--c-accent) 22%,transparent)}.contact-link svg{width:18px;height:18px;fill:color-mix(in srgb,var(--c-accent) 88%,var(--c-accent-light) 12%)}.contact-link span{display:grid;gap:.08rem}.contact-link strong{font-size:.92rem}.contact-link small{font-size:.82rem;color:var(--c-muted)}.contact-card--contact-info{display:grid;align-content:start;gap:1rem}.contact-card--contact-info h2{margin:0 0 .35rem}.detail-hero-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.9rem;align-items:stretch;margin-bottom:1.9rem}.detail-hero-split .realisation-screenshot{margin:0;border-radius:18px;box-shadow:var(--shadow-soft);position:relative;min-height:200px}.detail-hero-split .realisation-screenshot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:18px}.detail-hero-split .detail-block{margin-bottom:0}.detail-intro-copy{display:grid;gap:.45rem}.detail-intro-copy p{margin:0}.contact-socials{padding-top:.2rem;border-top:1px dashed color-mix(in srgb,var(--c-muted) 36%,transparent)}.contact-socials__list{display:flex;flex-wrap:wrap;gap:.55rem}.contact-socials__item{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .62rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--c-muted) 38%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 86%,transparent);text-decoration:none;color:var(--c-text);font-size:.84rem;font-weight:600}.contact-socials__item:hover{border-color:color-mix(in srgb,var(--c-accent) 68%,transparent);background:color-mix(in srgb,var(--c-accent) 20%,transparent)}.contact-socials__item svg{width:16px;height:16px;fill:color-mix(in srgb,var(--c-accent) 88%,var(--c-accent-light) 12%)}.contact-actions{margin-top:1.25rem;display:grid;gap:.75rem}.contact-actions--band{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.contact-form{display:grid;gap:.95rem}.field-float{position:relative}.field-float input,.field-float textarea{width:100%;border-radius:10px;border:1px solid color-mix(in srgb,var(--c-muted) 45%,transparent);padding:1.15rem .72rem .42rem;font:inherit;color:var(--c-text);background:color-mix(in srgb,var(--c-surface) 90%,transparent);transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.field-float label{position:absolute;top:50%;left:.78rem;transform:translateY(-50%);font-size:.9rem;font-weight:600;color:var(--c-muted);background:transparent;padding:0 .28rem;pointer-events:none;transition:top .16s ease,transform .16s ease,font-size .16s ease,color .16s ease;line-height:1}.field-float--textarea label{top:1.1rem;transform:none}.field-float input:focus~label,.field-float input:not(:placeholder-shown)~label{top:0;transform:translateY(-50%);font-size:.72rem;color:var(--c-accent);background:var(--c-surface)}.field-float textarea:focus~label,.field-float textarea:not(:placeholder-shown)~label{top:0;transform:translateY(-50%);font-size:.72rem;color:var(--c-accent);background:var(--c-surface)}.field-float input:focus-visible,.field-float textarea:focus-visible{outline:none;border-color:color-mix(in srgb,var(--c-accent) 75%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-accent) 20%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 92%,transparent)}.field-float input:disabled,.field-float textarea:disabled{opacity:.6;cursor:not-allowed}body.theme-light .field-float input:focus~label,body.theme-light .field-float input:not(:placeholder-shown)~label,body.theme-light .field-float textarea:focus~label,body.theme-light .field-float textarea:not(:placeholder-shown)~label{background:var(--c-surface)}.form-status{padding:.8rem;border-radius:10px;font-size:.9rem;line-height:1.5;animation:slide-in-left .4s ease}.form-status--success{background:color-mix(in srgb,#4ade80 24%,transparent);color:#86efac;border-left:3px solid #4ade80}.form-status--error{background:color-mix(in srgb,#f87171 24%,transparent);color:#fca5a5;border-left:3px solid #f87171}.btn--loading{opacity:.7;cursor:not-allowed}.presentation-banner{position:relative;margin-top:-1.5rem;margin-left:-15px;margin-right:-15px;padding:0 var(--space-15);min-height:clamp(320px,50vh,500px);display:grid;align-items:center;background:linear-gradient(108deg,#0000,#0c181ab8),url("./media/background-hero2-E3TEWVXS.png") center/cover no-repeat;border-bottom:1px solid color-mix(in srgb,var(--c-muted) 26%,transparent)}.presentation-banner__inner{width:min(1220px,100%);margin:0 auto;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(1rem,3vw,2.3rem)}.presentation-banner__photo{width:clamp(140px,16vw,180px);aspect-ratio:3/4;object-fit:cover;border-radius:18px;border:1px solid color-mix(in srgb,var(--c-muted) 46%,transparent);box-shadow:var(--shadow-soft)}.presentation-banner__content{display:grid;gap:.35rem;align-content:center}.presentation-banner__content .section-header__kicker{margin:0;color:color-mix(in srgb,var(--c-accent-light) 78%,#ffffff 22%)}.presentation-banner__content h1{margin:0;color:#fff;font-size:clamp(1.65rem,4vw,3rem);max-width:18ch;line-height:1.1}.presentation-intro-editorial{padding-top:3rem;padding-bottom:2.2rem}.presentation-intro-editorial .section-header{margin-bottom:.8rem}.presentation-intro-editorial__copy{width:min(760px,100%);margin:0 auto;display:grid;gap:1.05rem}.presentation-intro-editorial__copy p{margin:0;line-height:1.78;color:color-mix(in srgb,var(--c-text) 92%,var(--c-muted))}.presentation-pillars{padding-top:1.2rem;padding-bottom:2.2rem;display:grid;gap:0}.presentation-pillar{padding:2rem 0;border-top:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent);display:grid;gap:.7rem}.presentation-pillar .section-header__kicker{margin:0;color:color-mix(in srgb,var(--c-muted) 78%,var(--c-accent-light) 22%)}.presentation-pillar h2{margin:0;font-size:clamp(1.25rem,2.6vw,1.85rem);max-width:34ch}.presentation-pillar p{margin:0;max-width:76ch;line-height:1.74;color:color-mix(in srgb,var(--c-text) 92%,var(--c-muted))}.presentation-plain-list{margin:.15rem 0 0;padding:0;list-style:none;display:grid;gap:.6rem;max-width:76ch}.presentation-plain-list li{position:relative;padding-left:1.05rem;line-height:1.72;color:color-mix(in srgb,var(--c-text) 92%,var(--c-muted))}.presentation-plain-list li:before{content:"-";position:absolute;left:0;top:0;color:color-mix(in srgb,var(--c-muted) 75%,var(--c-accent-light) 25%)}.presentation-plain-list strong{font-weight:700;color:var(--c-text)}.presentation-transition{padding-top:1.8rem;padding-bottom:4rem;text-align:center;display:grid;gap:1.1rem}.presentation-transition__text{margin:0 auto;max-width:70ch;line-height:1.72;color:color-mix(in srgb,var(--c-text) 90%,var(--c-muted))}.presentation-transition__actions{display:flex;justify-content:center;gap:.9rem;flex-wrap:wrap}.project-visual--legacy{min-height:128px;padding:.75rem;display:grid;align-content:space-between;border-radius:12px;border:1px dashed color-mix(in srgb,var(--c-muted) 52%,transparent);background:linear-gradient(125deg,color-mix(in srgb,var(--c-accent-deep) 40%,transparent),color-mix(in srgb,var(--c-accent) 14%,transparent))}.project-visual--legacy p,.project-visual--legacy span{margin:0;color:var(--c-text)}.project-visual--legacy span{font-size:.78rem;color:var(--c-muted)}.project-tagline{margin-top:.3rem;font-weight:700;color:color-mix(in srgb,var(--c-text) 82%,var(--c-accent))}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(max-width:980px){.cards-grid--skills{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{padding-top:1.6rem}.home-hero__inner{min-height:auto;gap:1.1rem}.home-project--lead,.home-projects__grid{grid-template-columns:1fr}.home-project img,.home-project--compact img{max-height:280px}.presentation-banner{min-height:clamp(320px,44vh,430px);padding-top:1.2rem;padding-bottom:1.2rem}.presentation-banner__inner{grid-template-columns:1fr;justify-items:center;text-align:center}.presentation-banner__content{justify-items:center}.presentation-banner__content h1{max-width:20ch}.home-hero__actions{margin-bottom:100px}.journey-item{grid-template-columns:1fr}.journey-list{padding-left:.8rem}.logo-chip{width:104px;height:104px}.logo-chip img{width:78px;height:78px}.contact-actions--band{grid-template-columns:1fr}}@media(max-width:760px){.cards-grid,.cards-grid--skills,.two-columns{grid-template-columns:1fr}.mobile-realisations-summary{display:grid;grid-template-columns:1fr;gap:.55rem;margin:0 0 1rem}.mobile-realisations-summary a{display:grid;gap:.18rem;padding:.62rem .72rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--c-muted) 34%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 86%,transparent);text-decoration:none;color:var(--c-text)}.mobile-realisations-summary strong{font-size:.88rem;line-height:1.3}.mobile-realisations-summary span{font-size:.78rem;line-height:1.35;color:var(--c-muted)}.home-hero{padding:0}.home-hero__inner{min-height:100dvh;padding:3rem var(--space-15) 0;padding-bottom:calc(52px + 5rem)}.home-hero__text{justify-items:center;text-align:center}.home-hero__name{font-size:.9rem}.home-hero__title{font-size:clamp(1.8rem,4.2vw,2.5rem);white-space:normal}.home-hero__focus{font-size:.9rem}.home-hero__actions{margin-bottom:3rem}.home-hero__scroll-hint{transform:translateY(-8px)}.home-angles__list{grid-template-columns:1fr}.home-angle-line{gap:.6rem}.home-angle-line+.home-angle-line{border-left:0;border-top:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent);padding-top:1.2rem}.presentation-banner{min-height:clamp(300px,40vh,380px)}.presentation-banner__photo{width:min(165px,48vw)}.presentation-banner__inner{justify-items:start;text-align:left}.presentation-banner__content{justify-items:start}.presentation-banner__content h1{max-width:none}.segment-filter{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;scrollbar-width:none}.segment-filter::-webkit-scrollbar{display:none}.segment-filter__item{flex-shrink:0;white-space:nowrap;font-size:.78rem;padding:.42rem .75rem}.presentation-pillars{padding-top:.6rem}.presentation-pillar{padding-top:1.5rem;padding-bottom:1.5rem}.home-quote{padding-top:3rem;padding-bottom:3rem}.home-quote__text{font-size:clamp(1.15rem,6vw,1.65rem)}.home-quote__line--typed{display:block;width:auto;max-width:none;white-space:normal;overflow:visible;border-right:none;animation:none}.journey-list{border-left:none;padding-left:0}.journey-item:before{display:none}.detail-hero-split{grid-template-columns:1fr;gap:1.9rem;margin-bottom:1.9rem}.linked-projects-mini{grid-template-columns:1fr}.anecdote-accordion summary{padding-right:2rem}.detail-hero-split .realisation-screenshot img{max-height:none}.detail-block--experience>h2,.detail-block--formation>h2{text-transform:uppercase;letter-spacing:.06em}}.drawer-backdrop{position:fixed;inset:0;z-index:800;background:#0000007a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detail-drawer{position:fixed;top:0;right:0;height:100vh;width:min(46vw,640px);z-index:850;background:var(--c-surface);border-left:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);overflow-y:auto;display:flex;flex-direction:column;animation:drawer-slide-in .26s cubic-bezier(.16,1,.3,1) forwards}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-drawer__header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;background:color-mix(in srgb,var(--c-surface) 95%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent)}.detail-drawer__title{flex:1;margin:0;font-size:1rem;line-height:1.35;color:var(--c-text)}.detail-drawer__close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid color-mix(in srgb,var(--c-muted) 40%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 90%,transparent);color:var(--c-text);cursor:pointer;transition:all .15s ease}.detail-drawer__close svg{width:16px;height:16px;fill:currentColor}.detail-drawer__close:hover{border-color:color-mix(in srgb,var(--c-accent) 70%,transparent);background:color-mix(in srgb,var(--c-accent) 20%,transparent)}.detail-drawer__body{padding:1.2rem 1.4rem 4rem;display:flex;flex-direction:column;gap:0}.detail-drawer__body .section-header__kicker{margin-bottom:.4rem}.detail-drawer__body h3{font-size:1rem;margin-bottom:.6rem}.detail-drawer__body h4{font-size:.92rem;margin-bottom:.4rem}.realisation-screenshot--interactive{cursor:zoom-in}.realisation-screenshot--interactive img{transform-origin:var(--zoom-x, 50%) var(--zoom-y, 50%);transition:transform .32s ease}.realisation-screenshot--interactive:hover img{transform:scale(1.22)}.image-viewer{position:fixed;inset:0;z-index:920;display:grid;place-items:center;padding:1rem}.image-viewer__backdrop{position:absolute;inset:0;border:none;background:#000000c7;cursor:zoom-out}.image-viewer__content{position:relative;margin:0;z-index:1;max-width:min(1200px,96vw);max-height:92vh;border-radius:14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--c-muted) 40%,transparent);box-shadow:0 20px 40px #0006;background:#0f0f0f}.image-viewer__content img{display:block;max-width:100%;max-height:92vh;object-fit:contain}.image-viewer__close{position:absolute;top:.6rem;right:.6rem;width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:10px;background:#101010b8;color:#fff;cursor:pointer;font-size:1rem}@media(max-width:760px){.detail-drawer{inset:auto 0 0;width:100%;height:90dvh;border-left:none;border-top:1px solid color-mix(in srgb,var(--c-muted) 30%,transparent);border-radius:20px 20px 0 0;animation:drawer-bottom-in .26s cubic-bezier(.16,1,.3,1) forwards}@keyframes drawer-bottom-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.tech-stack{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.75rem}.tech-stack--compact{margin-top:.35rem;gap:.5rem}.tech-badge{display:inline-flex;align-items:center;gap:.42rem;padding:.34rem .72rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--c-muted) 38%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 82%,transparent);font-size:.82rem;font-weight:600;color:var(--c-text)}.tech-badge--mini{padding:.28rem .62rem;font-size:.76rem}.tech-badge--button{cursor:pointer;font-family:inherit}.detail-list--tech-usage{margin-top:.9rem}.detail-list--tech-usage li p{margin:0}.tech-badge__icon{width:16px;height:16px;object-fit:contain;flex-shrink:0}.tech-filter-section{margin:2rem 0 1.6rem}.tech-filter-section__label{margin:0 0 .85rem;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted)}.tech-filter-chips{display:flex;flex-wrap:wrap;gap:.55rem}.tech-filter-chip{display:inline-flex;align-items:center;gap:.42rem;padding:.36rem .78rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--c-muted) 38%,transparent);background:color-mix(in srgb,var(--c-surface-soft) 82%,transparent);font-size:.82rem;font-weight:600;color:var(--c-text);cursor:pointer;transition:border-color .18s,background .18s,color .18s}.tech-filter-chip:hover{border-color:var(--c-accent-light);background:color-mix(in srgb,var(--c-accent) 10%,transparent)}.tech-filter-chip--active{border-color:var(--c-accent);background:color-mix(in srgb,var(--c-accent) 16%,transparent);color:var(--c-accent-light)}.tech-filter-chip__icon{width:16px;height:16px;object-fit:contain;flex-shrink:0}.tech-filter-section__clear{display:inline-flex;align-items:center;margin-top:.9rem;padding:0;background:none;border:none;color:var(--c-accent-light);font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.tech-filter-section__clear:hover{opacity:.75}.mobile-bottom-nav{display:none}@media(max-width:760px){:root{--mobile-nav-icon-color: color-mix(in srgb, var(--c-accent) 72%, var(--c-text) 28%);--mobile-nav-icon-active-color: var(--c-accent-light)}body.theme-light{--mobile-nav-icon-color: color-mix(in srgb, var(--c-accent) 86%, #2d4f4c 14%);--mobile-nav-icon-active-color: #124742}.app-main{padding-bottom:5.5rem}.mobile-bottom-nav{display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:400px;height:52px;background:color-mix(in srgb,var(--c-accent-deep) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--c-muted) 28%,transparent);border-radius:999px;padding:0 .75rem;z-index:900;box-shadow:0 4px 24px color-mix(in srgb,#000 30%,transparent)}.mobile-bottom-nav__item{display:flex;align-items:center;justify-content:center;flex:1;appearance:none;border:0;background:none;text-decoration:none;color:var(--mobile-nav-icon-color);padding:.5rem 0;border-radius:999px;cursor:pointer;transition:color .16s ease}.mobile-bottom-nav__item svg{width:30px;height:30px;fill:currentColor}.mobile-bottom-nav__item.is-active,.mobile-bottom-nav__item:hover{color:var(--mobile-nav-icon-active-color)}}
