﻿:root {--border:1px solid var(--back-color);--border-color:#000;--border-radius-large:20px;--border-radius-medium:12px;--border-radius-small:4px;--spacing-large-alt:.8em;--spacing-large:.8em;--spacing-medium-alt:.4em;--spacing-medium:.4em;--spacing-small-alt:.2em;--spacing-small:.2em;--color-primary:#3b5621;--color-primary-alt:#17260e;--color-secondary:#136b69;--color-secondary-alt:#268d9e;--color-tertiary:#243c58;--color-tertiary-alt:#556b8a;--color-warning:#7b383c;--color-success:#004779;--color-detail:#a7b33c;--color-detail-alt:#777a46;--font-color:#ffffff;--font-color-alt:#000000;--font-color-warning:#ffffff;--font-color-success:#ffffff;--font-size-small:.8em;--font-size:1em;--font-size-large:1.4em;--background1:#bbbbbb;--background2:var(--color-primary);--background3:var(--color-tertiary);--background4:var(--color-secondary);--banner-size:calc(50px * var(--fhd-hr));--main-content-size:calc(860px * var(--fhd-vr));--cream:#f0e8d8;--cream-2:#e8dec9;--panel:#f5eee0;--ink:#23332b;--ink-soft:#5e6b60;--line:rgba(35,51,43,.13);--line-2:rgba(35,51,43,.22);--green:#2f7d5b;--teal:#1f8d8a;--green-deep:#1d4f3a;--green-mid:#3c8a64;--font-mono:"Geist Mono","JetBrains Mono",ui-monospace,monospace;--font-body:"Hanken Grotesk",system-ui,sans-serif;}
@font-face {font-family: "Geist Mono"; src: url("https://www.stemile.fr/files/csseditor/1/csseditor_fonts-file¤1¤0¤0.ttf");}
@font-face {font-family: "Hanken Grotesk"; src: url("https://www.stemile.fr/files/csseditor/1/csseditor_fonts-file¤2¤0¤0.ttf");}
.connection_info.banned ~ .hlp_validator_parent, .connection_info.banned ~ label, .connection_info.banned ~ button:first-of-type {pointer-events: none;opacity: 0.7;}.document_fiche {display: none;}.connection_form_resend_activation {text-align: center;}.subtitle {display: block;width: 100%;background: var(--color-success);padding: var(--spacing-medium);color: var(--color-primary);}.block_container > .label {display: none;}*, *::before, *::after {box-sizing: border-box;}html, body {margin: 0;
height: 100%;
overflow: hidden;}body {background: var(--cream);color: var(--ink);font-family: var(--font-body);font-size: 17px;line-height: 1.6;-webkit-font-smoothing: antialiased;display: grid;grid-template-columns: 300px 1fr;}#modules {display: grid;
grid-template-columns: 300px 1fr;
grid-template-rows: 100vh;
height: 100vh;
overflow: hidden;}#sidebar {grid-column: 1;
grid-row: 1;
position: relative;
background: var(--cream-2);
border-right: 1px solid var(--line-2);
display: flex;
flex-direction: column;
padding: 34px 30px 0;
overflow: hidden;
height: 100vh;}#lemain {grid-column: 2;
grid-row: 1;
overflow-y: auto;
height: 100vh;}#lemain::-webkit-scrollbar {width: 10px;}#lemain::-webkit-scrollbar-thumb {background: var(--line-2);
border-radius: 8px;
border: 3px solid var(--cream);}.side-brand {display: flex;
align-items: center;
gap: 14px;}.side-logo {width: 48px;
height: 48px;
border-radius: 12px;
display: block;
flex-shrink: 0;
box-shadow: 0 2px 10px rgba(35,51,43,.18);}.side-brand-wordmark {line-height: 1;}.side-brand-wordmark b {font-family: var(--font-mono);
font-weight: 600;
font-size: 23px;
letter-spacing: -.01em;
display: block;
color: var(--ink);}.side-brand-wordmark span {font-family: var(--font-mono);
font-size: 10.5px;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--ink-soft);}.menu_public {list-style: none;
margin: 46px 0 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 2px;
counter-reset: nav-item;}.menu_public li {counter-increment: nav-item;
position: relative;}.menu_public a {font-family: var(--font-mono);
font-size: 14px;
letter-spacing: .01em;
color: var(--ink-soft);
text-decoration: none;
white-space: nowrap;
padding: 11px 14px 11px 16px;
border-radius: 9px;
display: flex;
align-items: center;
gap: 11px;
cursor: pointer;
position: relative;
transition: background .18s, color .18s;}.menu_public a::before {content: counter(nav-item, decimal-leading-zero);
font-size: 11px;
color: var(--green);
opacity: .55;
min-width: 20px;
flex-shrink: 0;}.menu_public a:hover {background: rgba(35,51,43,.05);
color: var(--ink);}.menu_public a.active {background: var(--panel);
color: var(--ink);
box-shadow: 0 1px 8px rgba(35,51,43,.06);}.menu_public a.active::before {opacity: 1;}.menu_public a.active::after {content: "";
position: absolute;
left: -30px;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 22px;
background: var(--green);
border-radius: 0 4px 4px 0;}.module_container.languages_container {display: inline-flex;border: 1px solid var(--line-2);border-radius: 8px;overflow: hidden;margin-top: 18px;align-self: flex-start;}.module_container.languages_container .languages_link {font-family: var(--font-mono);font-size: 12px;color: var(--ink-soft);text-decoration: none;padding: 6px 12px;background: transparent;transition: background .15s, color .15s;}.module_container.languages_container .languages_link.languages_current {background: var(--green);color: #f3ede0;}.side-foot {padding-bottom: 20px;}.side-socials {display: flex;
gap: 16px;
font-family: var(--font-mono);
font-size: 12px;}.side-social-link {color: var(--ink-soft);
text-decoration: none;
transition: color .15s;}.side-social-link:hover {color: var(--green);}.side-mtn {position: absolute;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;}.side-mtn-layer {position: absolute;
left: 0;
right: 0;
bottom: 0;}.side-mtn-layer.m1 {height: 122px;background: color-mix(in oklab, var(--green-deep) 20%, var(--cream-2));clip-path: polygon(0px 99.18%, 0px 75%, 8.94% 51.97%, 19.58% 55.15%, 30.9% 37.05%, 43.23% 48.66%, 53.6% 23.46%, 69.61% 50.07%, 83.32% 38.3%, 99.99% 57.94%, 100% 100%);}.side-mtn-layer.m2 {height: 88px;background: color-mix(in oklab, var(--green-deep) 58%, var(--cream-2));clip-path: polygon(0px 100%, 0% 82%, 7.65% 58.87%, 25.67% 48.77%, 42% 66%, 58% 40%, 72% 68%, 86% 46%, 100% 66%, 100% 100%);}.side-mtn-layer.m3 {height: 48px;
background: var(--green-deep);
clip-path: polygon(0 100%,20% 52%,38% 74%,54% 48%,70% 72%,88% 54%,100% 70%,100% 100%);}.page {padding: 64px 76px;max-width: 1140px;}.page-accueil {display: flex;
flex-direction: column;
justify-content: center;
min-height: 100vh;}h1 {font-family: var(--font-mono);font-weight: 600;font-size: 2.725rem;line-height: 1.07;letter-spacing: -.02em;text-wrap: balance;margin: 0 0 22px;color: var(--ink);}h2 {font-family: var(--font-mono);
font-weight: 600;
font-size: 30px;
letter-spacing: -.02em;
margin: 0 0 14px;
color: var(--ink);}h3 {font-family: var(--font-mono);
font-weight: 600;
font-size: 21px;
letter-spacing: -.01em;
margin: 0 0 8px;
color: var(--ink);}.lead {font-size: 20px;
max-width: 52ch;
color: var(--ink-soft);
margin: 0 0 28px;}.soft {color: var(--ink-soft);}.eyebrow {font-family: var(--font-mono);
font-size: 12px;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--green);
display: flex;
align-items: center;
gap: 10px;
margin: 0 0 18px;}.eyebrow::before {content: "";
display: block;
width: 26px;
height: 1.5px;
background: var(--green);
flex-shrink: 0;}.btn {font-family: var(--font-mono);
font-size: 14px;
padding: 13px 22px;
border-radius: 10px;
border: 1.5px solid var(--green);
cursor: pointer;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
white-space: nowrap;
transition: transform .18s, background .18s, color .18s;
background: transparent;}.btn:hover {transform: translateY(-2px);}.btn .ar {transition: transform .18s; display: inline-block;}.btn:hover .ar {transform: translateX(3px);}.btn.fill {background: var(--green);
color: #f3ede0;}.btn.ghost {background: transparent;
color: var(--green);}.cta {display: flex;
gap: 12px;
flex-wrap: wrap;
margin: 0 0 44px;}.chips {display: flex;
flex-wrap: wrap;
gap: 8px;
margin: 0 0 30px;}.chip {font-family: var(--font-mono);
font-size: 12.5px;
background: var(--panel);
border: 1px solid var(--line-2);
border-radius: 30px;
padding: 7px 15px;
white-space: nowrap;
color: var(--ink);}.featured {display: grid;
grid-template-columns: 200px 1fr;
gap: 26px;
background: var(--panel);
border: 1px solid var(--line);
border-radius: 18px;
padding: 22px;
max-width: 680px;}.featured-title {font-family: var(--font-mono);
font-weight: 600;
font-size: 21px;
color: var(--ink);
margin: 0 0 8px;}.featured-desc {color: var(--ink-soft);
font-size: 16px;
margin: 0 0 14px;}.lk {color: var(--ink);
text-decoration: none;
font-family: var(--font-mono);
font-size: 13px;
border-bottom: 1px solid var(--line-2);
padding-bottom: 1px;
transition: border-color .15s, color .15s;}.lk:hover {border-color: var(--green);
color: var(--green);}.img-placeholder {background: var(--panel);border: 1px dashed var(--line-2);border-radius: 12px;width: 100%;display: flex;aspect-ratio: 16/9;}.featured-img {height: 140px;}.proj-img {height: 200px;}.about-photo-inner {width: auto;height: 264px;border-radius: 14px;aspect-ratio: 9/16;}.proj {display: grid;grid-template-columns: auto 1fr;gap: 30px 40px;align-items: center;padding: 34px 0;border-top: 1px solid var(--line);}.proj.rev .proj-media {order: 2;}.proj-desc {color: var(--ink-soft);
margin: 8px 0 14px;}.proj-tags {display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 14px;}.tag {font-family: var(--font-mono);
font-size: 12px;
color: var(--green-deep);
border: 1px solid var(--line-2);
border-radius: 6px;
padding: 4px 10px;}.svc {display: grid;
grid-template-columns: 64px 1fr;
gap: 22px;
padding: 24px 0;
border-top: 1px solid var(--line);
align-items: start;}.num {font-family: var(--font-mono);
font-weight: 600;
font-size: 28px;
color: var(--green);
opacity: .8;
line-height: 1.2;}.svc-desc {color: var(--ink-soft);
font-size: 16px;
max-width: 54ch;
margin: 6px 0 0;}.svc-note {background: var(--panel);
border-radius: 16px;
padding: 24px 26px;
max-width: 60ch;
margin-top: 24px;}.contact-wrap {display: grid;
grid-template-columns: 1.3fr .9fr;
gap: 54px;
margin-top: 32px;}.field {display: flex;
flex-direction: column;
gap: 6px;
margin-bottom: 16px;}.field label {font-family: var(--font-mono);
font-size: 12px;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--ink-soft);}.field input, .field textarea {font-family: var(--font-body);
font-size: 16px;
background: var(--panel);
border: 1px solid var(--line-2);
border-radius: 10px;
padding: 13px 15px;
color: var(--ink);
outline: none;
resize: vertical;}.field textarea {min-height: 130px;}.field input:focus, .field textarea:focus {border-color: var(--green);
box-shadow: 0 0 0 3px color-mix(in oklab, var(--green) 18%, transparent);}.contact-info {border-left: 1px solid var(--line);
padding-left: 34px;}.contact-info .row {margin-bottom: 22px;}.contact-info .k {font-family: var(--font-mono);
font-size: 11px;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--green);
margin-bottom: 5px;}.contact-info a, .contact-info span {color: var(--ink);
text-decoration: none;
font-size: 16px;}.contact-info a:hover {color: var(--green);}.form-msg {font-family: var(--font-mono);
font-size: 13px;
color: var(--green);
margin-top: 10px;
min-height: 1.4em;}.about-grid {display: grid;
grid-template-columns: 220px 1fr;
gap: 44px;
align-items: start;
margin-top: 32px;}.about-body p {font-size: 18px;
margin-bottom: 18px;}.about-skills {margin-top: 24px;}#lemain .disp_longmulti > .page {animation: stemile-fade .4s ease;}.side-brand > div {line-height: 1;}.side-name {font-family: var(--font-mono);font-weight: 600;font-size: 23px;display: block;}.side-label {font-family: var(--font-mono);font-size: 10.5px;letter-spacing: .12em;text-transform: uppercase;color: var(--ink-soft);}.module_container.deco_container.socials {flex: 1;margin-bottom: 80px;justify-content: center;display: flex;align-items: end;}.img-placeholder img {width: 100%;border-radius: 12px;padding: 1px;}.about-photo {align-self: center;display: flex;justify-content: center;}.lead a:hover {color: var(--green);}.lead a {color: inherit;}.about-photo-inner img {height: 100%;width: auto !important;}.contact_form label {font-family: var(--font-mono);font-size: 12px;letter-spacing: .08em;text-transform: uppercase;color: var(--ink-soft);}.contact_form input, .contact_form textarea {font-family: var(--font-body);font-size: 16px;background: var(--panel);border: 1px solid var(--line-2);border-radius: 10px;padding: 13px 15px;color: var(--ink);outline: none;resize: vertical;width: 100%;}.contact_form input:focus, .contact_form textarea:focus {border-color: var(--green);box-shadow: 0 0 0 3px color-mix(in oklab, var(--green) 18%, transparent);}.msg_err {font-family: var(--font-mono);font-size: var(--font-size-small);color: var(--ink-soft);padding-left: 4px;}.contact_form label:nth-child(5), .contact_form div:nth-child(6) {display: none;}.contact_btn_send {background: var(--green);color: #f3ede0;font-family: var(--font-mono);font-size: 14px;padding: 13px 22px;border-radius: 10px;border: 1.5px solid var(--green);cursor: pointer;text-decoration: none;display: inline-flex;align-items: center;gap: 8px;white-space: nowrap;transition: transform .18s, background .18s, color .18s;}.contact_btn_send:hover {transform: translateY(-2px);}.contact_btn_send::after {content: '→';transition: transform .18s;display: inline-block;}.contact_btn_send:hover::after {transform: translateX(3px);}.contact_form > div {margin-bottom: 16px;}@media (max-width: 880px){html, body {overflow: auto;}#modules {grid-template-columns: 1fr;
grid-template-rows: auto;
height: auto;}#sidebar {grid-column: 1;
grid-row: 1;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
gap: 14px 20px;
padding: 16px 22px;
height: auto;
overflow: visible;}#lemain {grid-column: 1;
grid-row: 2;
height: auto;
overflow: visible;}.menu_public {flex-direction: row;
flex-wrap: wrap;
margin-top: 0;
order: 3;
width: 100%;}.menu_public a {padding: 8px 12px;}.menu_public a.active::after {display: none;}.side-mtn {display: none;}.side-foot {padding-bottom: 0;}.side-socials {display: none;}.page {padding: 42px 24px;}.proj, .contact-wrap, .about-grid, .featured {grid-template-columns: 1fr;}.proj.rev .proj-media {order: 0;}.page-accueil {min-height: auto;}}