:root{--acc-1: var(--orange, #ff9d57);--acc-2: var(--violet, #7c4dff);--card-bg: color-mix( in srgb, var(--surface-2, rgba(255, 255, 255, .06)) 98%, transparent );--card-stroke: color-mix(in srgb, var(--border, #aab) 80%, transparent);--card-shadow: rgba(0, 0, 0, .18);--pill-bg: color-mix( in srgb, var(--surface-2, rgba(255, 255, 255, .06)) 94%, transparent );--pill-stroke: color-mix(in srgb, var(--border, #aab) 72%, transparent);--text-subtle: color-mix(in srgb, var(--fg, #fff) 75%, transparent);--dot-glow: color-mix(in oklab, var(--acc-1) 40%, transparent);--container-xl: 1200px}:root[data-theme=light],:root:not([data-theme=dark]){--card-bg: color-mix(in srgb, #fff 75%, transparent);--card-stroke: color-mix(in srgb, #1a1a1a 16%, transparent);--card-shadow: rgba(10, 12, 20, .08);--pill-bg: color-mix(in srgb, #fff 82%, transparent);--pill-stroke: color-mix(in srgb, #1a1a1a 14%, transparent);--text-subtle: color-mix(in srgb, #111 60%, transparent)}#about{max-width:100%;overflow-x:hidden}.portrait-ring{--size: 320px;--thickness: 6px;--blur: 10px;--c1: color-mix(in oklab, var(--acc-1) 65%, transparent);--c2: color-mix(in oklab, var(--acc-2) 70%, transparent);width:var(--size);aspect-ratio:1/1;border-radius:50%;position:relative;display:grid;place-items:center;isolation:isolate}.portrait-ring:before,.portrait-ring:after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 220deg,var(--c1) 0 28%,var(--c2) 28% 62%,transparent 62% 100%);-webkit-mask:radial-gradient(closest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + .5px));mask:radial-gradient(closest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness) + .5px))}.portrait-ring:before{filter:blur(var(--blur)) saturate(115%);opacity:.78}.portrait-ring:after{-webkit-mask:radial-gradient(closest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness)));mask:radial-gradient(closest-side,transparent calc(100% - var(--thickness)),#000 calc(100% - var(--thickness)));opacity:.96}.portrait-ring img{width:calc(100% - var(--thickness) * 2);height:calc(100% - var(--thickness) * 2);border-radius:50%;object-fit:cover;display:block;transform:translateY(2px);box-shadow:0 12px 28px #00000038;transition:transform .35s ease,box-shadow .35s ease;z-index:2}@media(hover:hover){.portrait-ring:hover img{transform:none;box-shadow:0 18px 40px #00000047}}@media(max-width:640px){#about{text-align:center}.actions{justify-content:center}.portrait-ring{--size: 260px;--thickness: 5px}.stack-grid{text-align:left}.bio-grid{text-align:center}}.bio-grid{display:grid;gap:clamp(20px,4vw,48px);align-items:center;grid-template-columns:1fr 1.4fr}@media(max-width:768px){.bio-grid{grid-template-columns:1fr;justify-items:center;text-align:center}.bio-grid>div{max-width:40rem}.bio-grid .portrait-ring{margin-inline:auto}}.stack-head{text-align:center;max-width:70ch;margin:0 auto clamp(14px,2.4vw,22px)}.stack-head p{margin:.4rem auto 0;opacity:.92;line-height:1.6}.stack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3.2vw,38px);margin-top:clamp(24px,3.8vw,44px)}.s-card{--acc: var(--border);position:relative;border-radius:16px;padding:clamp(18px,2.4vw,24px);background:radial-gradient(120% 140% at 10% 0%,color-mix(in oklab,var(--acc-1) 6%,transparent),transparent 45%),radial-gradient(120% 140% at 90% 0%,color-mix(in oklab,var(--acc-2) 7%,transparent),transparent 50%),var(--card-bg);border:1px solid var(--card-stroke);box-shadow:0 18px 36px var(--card-shadow),0 0 0 1px color-mix(in srgb,var(--card-stroke) 16%,transparent) inset;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.s-card{border-color:color-mix(in srgb,var(--acc) 60%,var(--card-stroke));box-shadow:0 18px 36px var(--card-shadow),0 0 0 1px color-mix(in srgb,var(--acc) 30%,transparent) inset}.s-card:after{content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;box-shadow:0 0 24px 6px color-mix(in oklab,var(--acc) 45%,transparent);opacity:.45}@media(hover:hover){.s-card:hover{transform:translateY(-2px);box-shadow:0 22px 46px var(--card-shadow),0 0 0 1px color-mix(in srgb,var(--card-stroke) 35%,transparent) inset}.s-card:hover:after{box-shadow:0 0 28px 10px color-mix(in oklab,var(--acc) 55%,transparent);opacity:.6}}:root[data-theme=light] .s-card:after{opacity:.35}.s-card--orange{--acc: var(--acc-1)}.s-card--cyan{--acc: #22d3ee}.s-card--violet{--acc: var(--acc-2)}.s-card__head{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem}.s-card__head h3{margin:0;font-size:clamp(1.08rem,.9rem + .55vw,1.24rem);letter-spacing:.2px}.s-badge{font-size:.76rem;font-weight:700;padding:.28rem .6rem;border-radius:.7rem;border:1px solid color-mix(in oklab,var(--acc-1) 55%,transparent);background:color-mix(in oklab,var(--acc-1) 26%,transparent);box-shadow:0 0 14px color-mix(in oklab,var(--acc-1) 22%,transparent)}.s-badge--cyan{border-color:color-mix(in oklab,#22d3ee 58%,transparent);background:color-mix(in oklab,#22d3ee 26%,transparent);box-shadow:0 0 14px color-mix(in oklab,#22d3ee 22%,transparent)}.s-badge--violet{border-color:color-mix(in oklab,var(--acc-2) 58%,transparent);background:color-mix(in oklab,var(--acc-2) 26%,transparent);box-shadow:0 0 14px color-mix(in oklab,var(--acc-2) 22%,transparent)}.s-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.s-list li{display:grid;grid-template-columns:16px 1fr;column-gap:.65rem;align-items:start;padding:.3rem .4rem;border-radius:.65rem;line-height:1.72;transition:background .15s ease}.s-list li:hover{background:color-mix(in srgb,var(--pill-bg) 70%,transparent)}.s-dot{width:.58rem;height:.58rem;border-radius:999px;margin-top:.58rem;flex:0 0 .58rem;background:radial-gradient(circle at 45% 45%,color-mix(in oklab,var(--acc-1) 70%,transparent),transparent 62%);box-shadow:0 0 12px var(--dot-glow)}.s-list code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.92em;padding:.12rem .44rem;border-radius:.4rem;white-space:nowrap;background:color-mix(in srgb,var(--pill-bg) 90%,transparent);border:1px solid color-mix(in srgb,var(--pill-stroke) 90%,transparent)}.s-pills{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem;padding:0;list-style:none}.s-pills li{font-size:.95rem;line-height:1;padding:.55rem .8rem;border-radius:1rem;border:1px solid var(--pill-stroke);background:var(--pill-bg);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}@media(hover:hover){.s-pills li:hover{transform:translateY(-1px);border-color:color-mix(in oklab,var(--acc-2) 36%,var(--pill-stroke));box-shadow:0 8px 20px var(--card-shadow),0 0 0 1px color-mix(in oklab,var(--acc-2) 20%,transparent)}}.stack-note{text-align:center;opacity:.85;margin-top:clamp(22px,3.2vw,38px);color:var(--text-subtle)}@media(max-width:1100px){.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.stack-grid{grid-template-columns:1fr}}@media(max-width:860px){.s-card{padding:clamp(16px,3.2vw,20px)}.s-list{gap:.65rem}.s-list li{line-height:1.66}}:where(.section){padding-block:clamp(48px,8vw,120px)}:where(.section)+:where(.section){margin-top:clamp(24px,6vw,72px)}:where(.section-head){margin-bottom:clamp(18px,3vw,40px)}.section--tight-bottom{padding-bottom:clamp(16px,3vw,32px)}.section--tight-bottom .stack-note{margin-bottom:clamp(6px,1.2vw,12px)}.section--tight-bottom+.cta-final{margin-top:0;padding-top:clamp(18px,3vw,34px)}.section.cta-final{padding-top:clamp(16px,3vw,32px);padding-bottom:clamp(8px,2vw,16px);margin-bottom:0}.cta-box{display:grid;place-items:center;text-align:center;border-radius:1.25rem;padding:clamp(14px,3.5vw,28px) clamp(20px,4vw,40px) clamp(10px,2vw,16px);background:radial-gradient(120% 120% at 50% 0%,color-mix(in srgb,rgba(255,255,255,.06) 100%,transparent),transparent 60%)}.cta-box h2{margin:0 0 .35rem}.cta-box p{margin:0 0 .8rem}.cta-actions{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin:0}main>.section.cta-final:last-child{padding-bottom:clamp(6px,1.5vw,12px)}.hbix{position:relative;isolation:isolate;padding:clamp(42px,7vw,84px) 0 clamp(56px,6vw,84px);margin-bottom:clamp(24px,5vw,72px)}.hbix__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:min(6vw,48px);align-items:center}@media(max-width:900px){.hbix__inner{grid-template-columns:1fr}.hbix__stage{order:-1;min-height:240px}}.hbix__text{max-width:820px}.kicker{margin:0 0 .45rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.82rem;color:var(--muted, #cfd0e6)}.title{margin:0 0 .5rem;font-family:var( --font-head, "Josefin Sans", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial );font-size:clamp(1.8rem,1.25rem + 2.2vw,3rem);letter-spacing:-.01em;line-height:1.1}.lead{margin:0;color:var(--muted, #cfd0e6);max-width:70ch;font-size:clamp(1rem,.96rem + .3vw,1.15rem);line-height:1.55}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:clamp(12px,1.2vw,16px)}.hbix__stage{position:relative;isolation:isolate;min-height:320px;overflow:visible;background:transparent}.hbix__stage:before{content:"";position:absolute;inset:-8% -6% -18%;z-index:0;pointer-events:none;background:radial-gradient(42% 40% at 25% 35%,rgba(106,168,255,.2),transparent 65%),radial-gradient(38% 36% at 75% 30%,rgba(185,132,246,.18),transparent 70%),radial-gradient(42% 40% at 55% 65%,rgba(255,209,102,.14),transparent 70%),radial-gradient(36% 34% at 68% 58%,rgba(92,199,160,.18),transparent 70%),radial-gradient(30% 28% at 48% 38%,rgba(213,17,17,.16),transparent 70%);filter:blur(22px) saturate(120%);opacity:.75}.hbix__chips{position:absolute;inset:0;list-style:none;margin:0;padding:0}.chip{--c: rgba(59, 57, 80, .85);--cO: rgba(255, 255, 255, .22);--cG: rgba(0, 0, 0, 0);--ink: #fff;--size: 82px;position:absolute;inset:auto;display:flex;align-items:center;justify-content:center;width:var(--size);height:var(--size);padding:0;border-radius:999px;font-weight:700;font-size:.8rem;color:var(--ink);text-align:center;line-height:1.2;white-space:normal;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.32),transparent 55%),radial-gradient(circle at 75% 80%,rgba(0,0,0,.22),transparent 60%),var(--c);outline:1px solid var(--cO);box-shadow:0 12px 24px #00000059,0 0 0 1px color-mix(in srgb,var(--cO) 60%,transparent);user-select:none;cursor:grab;pointer-events:auto;transition:filter .18s ease,box-shadow .18s ease,transform .18s ease;transform-origin:50% 50%;will-change:transform}.chip span{padding-inline:10px}.chip:hover{filter:saturate(1.06) brightness(1.03);box-shadow:0 16px 30px #0006,0 0 0 1px color-mix(in srgb,var(--cO) 85%,transparent);transform:translateY(-1px)}.chip:active{cursor:grabbing}.chip[data-tag=html]{--c: rgba(248, 113, 37, .96);--cO: rgba(248, 113, 37, .78)}.chip[data-tag=css]{--c: rgba(56, 189, 248, .96);--cO: rgba(56, 189, 248, .8)}.chip[data-tag=php]{--c: rgba(129, 140, 248, .96);--cO: rgba(129, 140, 248, .82)}.chip[data-tag=javascript]{--c: rgba(250, 204, 21, .96);--cO: rgba(250, 204, 21, .86)}.chip[data-tag=sass]{--c: rgba(236, 72, 153, .96);--cO: rgba(236, 72, 153, .82)}.chip[data-tag=react]{--c: rgba(45, 212, 191, .96);--cO: rgba(45, 212, 191, .82)}.chip[data-tag=astro]{--c: rgba(147, 51, 234, .96);--cO: rgba(147, 51, 234, .82)}.chip[data-tag="git github"]{--c: rgba(22, 163, 74, .96);--cO: rgba(22, 163, 74, .82)}.chip[data-tag=wordpress]{--c: rgba(37, 99, 235, .96);--cO: rgba(37, 99, 235, .82)}.chip[data-tag=gimp]{--c: rgba(202, 138, 4, .96);--cO: rgba(202, 138, 4, .82)}.chip[data-tag=figma]{--c: rgba(244, 63, 94, .96);--cO: rgba(244, 63, 94, .82)}.chip[data-tag=devtools]{--c: rgba(34, 197, 235, .96);--cO: rgba(34, 197, 235, .82)}.chip:nth-child(1){--size: 96px}.chip:nth-child(2){--size: 82px}.chip:nth-child(3){--size: 88px}.chip:nth-child(4){--size: 80px}.chip:nth-child(5){--size: 90px}.chip:nth-child(6){--size: 84px}.chip:nth-child(7){--size: 86px}.chip:nth-child(8){--size: 78px}.chip:nth-child(9){--size: 92px}.chip:nth-child(10){--size: 80px}.chip:nth-child(11){--size: 82px}.chip:nth-child(12){--size: 76px}@media(prefers-reduced-motion:reduce){.hbix__stage:before{animation:none!important}.hbix__chips{position:relative;display:flex;flex-wrap:wrap;gap:10px;padding:14px}.chip{position:relative;inset:auto;transform:none!important;cursor:default}}.chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding-inline:8px}.chip__icon{flex:0 0 28px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}.chip__icon i{font-size:1.7rem;line-height:1}.chip__label{font-size:.7rem;line-height:1.2;text-align:center}@media(max-width:640px){.hbix__stage{min-height:220px}.hbix__chips .chip:nth-child(n){--size: 54px;gap:4px}.chip__icon{width:24px;height:24px}.chip__icon i{font-size:1.4rem}.chip__label{font-size:.55rem}}#approche.approach-stagger>.container{max-width:1400px;padding-inline:clamp(24px,4vw,60px);margin-inline:auto}.approach-stagger .section-head{text-align:center}.approach-stagger .approach__title{margin:0 0 clamp(10px,1.8vw,18px)!important}.approach-stagger .approach-lead{margin:0 auto clamp(10px,2vw,20px);max-width:40rem;text-align:center;color:var(--muted);font-size:.98rem;line-height:1.6}.about-hero{margin-bottom:clamp(12px,3vw,32px)}#about>.section:first-of-type{padding-top:clamp(24px,4vw,48px)}
