@import"https://use.typekit.net/fak1hro.css";:root{color-scheme:light;--bg:#ffffff;--fg:#0b1020;--muted:rgba(11,18,33,.56);--accent:#ff5830;--accent-soft:rgba(255,88,48,.2);--panel:rgba(255,255,255,.9);--border:rgba(11,18,33,.08);--font-sans:"indivisible", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--overlay-opacity:0;--hero-bg:rgba(255,255,255,.94);--hero-border:rgba(11,18,33,.08);--card-bg:rgba(255,255,255,.92);--card-border:rgba(11,18,33,.12);--card-shadow:0 16px 40px rgba(11,18,33,.12);--text-strong:#0b1020;--text-body:rgba(11,18,33,.82);--detail-hero-max-width: clamp(25rem, 72vw, 72rem);--detail-hero-max-height: clamp(340px, 64vh, 820px);--detail-carousel-max-width: clamp(25rem, 72vw, 72rem);--detail-carousel-caption-width: 1000px;--detail-carousel-caption-offset: 0px;--detail-carousel-caption-size: 1.6rem;--detail-image-radius: 10px;--detail-narrative-size: 1.8rem;--app-height: 100vh;--app-height: 100svh}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text-body);font-family:var(--font-sans)}body{line-height:1.6;scroll-behavior:smooth;overflow-x:hidden;position:relative;background:var(--bg);color:var(--text-body);--fg:var(--text-body);--muted:rgba(11,18,33,.56);font-weight:400;font-size:.96rem;scroll-snap-type:none}main{position:relative;z-index:1}.hero__canvas{position:absolute;inset:0;width:100%;justify-content:center;min-height:var(--app-height);border-radius:0;overflow:visible;background:#fff;border:none;box-shadow:none;pointer-events:none;z-index:0;transition:opacity .8s ease}.hero__canvas:after{content:"";position:absolute;inset:0;border-radius:inherit;border:none;pointer-events:none;background:transparent}.hero__canvas canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;pointer-events:none;opacity:1;transition:opacity .8s ease}.hero__canvas canvas.is-hidden{opacity:0!important}.triple-scroll{position:fixed;inset:0;display:none;grid-template-columns:repeat(3,1fr);pointer-events:none;z-index:-1;opacity:.22;transition:opacity .6s ease;mix-blend-mode:normal}.lane{position:relative;overflow:auto;background:linear-gradient(180deg,#060c18b3,#060c182e);border-right:1px solid rgba(10,18,36,.32);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateZ(0);will-change:transform}.lane:before{content:"";position:absolute;inset:-40%;background:radial-gradient(ellipse at center,rgba(32,249,179,.16),transparent 70%);opacity:.4}.lane:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(6,12,24,.35) 42%,transparent 100%);opacity:.55}.lane--left{border-left:1px solid rgba(10,18,36,.32)}body:not([data-theme=intro]) .triple-scroll{opacity:.32;background:linear-gradient(90deg,#060c182e,#060c1842,#060c182e)}body:not([data-theme=intro]) .lane{background:linear-gradient(180deg,color-mix(in srgb,var(--accent, #20f9b3) 22%,rgba(6,12,24,.8)),#060c1838);border-right:1px solid rgba(6,12,24,.45)}body:not([data-theme=intro]) .lane--left{border-left:1px solid rgba(6,12,24,.45)}@media(min-width:981px){.triple-scroll{display:grid}}.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}.anchor-marker{position:relative;top:-120px;height:0;display:block}.scroll-top{position:fixed;right:clamp(1rem,3vw,2.5rem);bottom:clamp(1.2rem,4vw,2.6rem);display:inline-flex;align-items:center;gap:.45rem;padding:.65rem 1.1rem;border-radius:999px;border:1px solid currentColor;background:transparent;color:var(--fg);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;box-shadow:none;cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease;z-index:30}.scroll-top:before{content:"↑";font-size:.9rem;letter-spacing:0}.scroll-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-top:hover{background:#ff5830;border-color:#ff5830;color:#fff}body[data-theme=intro] .scroll-top{color:#fff;border-color:#ffffffb3}body.is-locked .scroll-top{opacity:0;pointer-events:none}header.hero,section,footer.contact{position:relative;z-index:1;padding:clamp(2.2rem,9vw,3rem) clamp(.9rem,6vw,1.4rem)}section,footer.contact{display:block;min-height:auto}.section-with-band{position:relative;isolation:isolate;margin-bottom:clamp(2.5rem,5vw,4rem)}.section-with-band:before{content:none;border-radius:24px}.section-with-band:after{content:"";position:absolute;left:50%;bottom:clamp(-1.8rem,-1vw,-.8rem);width:min(1080px,92vw);height:2px;background:linear-gradient(90deg,transparent 0%,rgba(255,88,48,.42) 18%,rgba(255,88,48,.75) 50%,rgba(255,88,48,.42) 82%,transparent 100%);opacity:1;transform:translate(-50%);pointer-events:none;z-index:-1}footer.section-with-band{margin-top:clamp(2.5rem,5vw,4rem);margin-bottom:0}footer.section-with-band:after{display:none}@media(min-width:721px){.section-with-band:before{border-radius:0}}[data-index]:before{content:none}header.hero{position:relative;display:flex;align-items:stretch;justify-content:center;min-height:var(--app-height);padding:clamp(1.2rem,6vw,2rem) clamp(1.4rem,7vw,2.4rem) clamp(1.4rem,6vw,2.2rem);color:var(--fg)}header.hero:before{content:none}.hero__inner{position:relative;z-index:1;display:grid;grid-template-rows:auto 1fr auto;gap:clamp(1.6rem,5vw,3rem);width:100%;max-width:min(1180px,95vw);min-height:100%;margin:0 auto;align-items:center;justify-items:start}.hero__layout{display:grid;grid-template-columns:1fr;align-items:center;gap:clamp(1.6rem,5vw,2.4rem);padding:clamp(1.2rem,7vw,2.2rem);margin-top:clamp(2.5rem,10vw,5rem);margin-left:clamp(.5rem,4vw,2rem);border:none;background:transparent;box-shadow:none;max-width:100%;justify-items:start}.hero__intro{display:grid;gap:clamp(.8rem,2.5vw,1.6rem);align-self:start;padding:clamp(1rem,6vw,1.4rem);width:clamp(260px,70vw,420px);max-width:100%;aspect-ratio:1 / 1;background:#fff;border:1px solid rgba(11,18,33,.12);border-radius:0;box-shadow:0 24px 48px #0c121e14}@media(max-width:480px){.hero__layout{margin-left:0;justify-items:center}.hero__intro{width:100%;max-width:100%;margin:0 auto;aspect-ratio:auto}.lang-switcher{flex-direction:column;align-items:flex-start;gap:.35rem}.lang-switcher__btn{justify-content:flex-start;width:auto}}.hero__tag{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--muted)}.hero__title{margin:0;font-size:clamp(2rem,11vw,2.8rem);line-height:1.02;letter-spacing:-.02em;color:var(--text-strong)}.hero__excerpt{margin:0;font-size:clamp(.95rem,2vw,1.25rem);line-height:1.6;color:var(--text-body);max-width:48ch}.hero__scroll{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;justify-self:flex-start;align-self:flex-start;border-radius:50%;background:#ffffffc7;border:1px solid rgba(11,18,33,.16);box-shadow:0 24px 48px #0c121e2e;color:var(--accent);font-size:2.2rem;text-decoration:none;transition:transform .3s ease,background .3s ease,color .3s ease;position:relative;overflow:hidden;margin-top:.5rem}.hero__scroll:hover{transform:translateY(6px);background:#ff5830;color:#fff}.hero__scroll.is-animating{animation:heroScrollDip .6s ease}@keyframes heroScrollDip{0%{transform:translateY(0)}40%{transform:translateY(12px)}70%{transform:translateY(-6px)}to{transform:translateY(0)}}.hero__bottom{display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;flex-wrap:wrap;gap:.6rem;font-size:.85rem;color:var(--muted);padding:0}.hero__bottom a{color:inherit;text-decoration:none;letter-spacing:.14em;text-transform:uppercase;font-weight:600;transition:color .25s ease}.hero__bottom a:hover{color:var(--accent)}@media(min-width:721px){header.hero{padding:clamp(1.2rem,4vw,2.6rem) clamp(2rem,8vw,6rem) clamp(2rem,6vw,3rem)}.hero__layout{gap:clamp(1.8rem,6vw,2.6rem);padding:clamp(1.2rem,5vw,2.2rem)}.hero__title{font-size:clamp(3rem,9vw,4.8rem)}.hero__scroll{justify-self:center;align-self:center;margin-top:0}.hero__bottom{flex-direction:row;align-items:center;justify-content:space-between;gap:.8rem clamp(1.2rem,3vw,2rem)}}@media(min-width:901px){.hero__layout{grid-template-columns:minmax(0,520px) auto;gap:clamp(2rem,8vw,4rem)}}@media(min-width:981px){.hero__layout{max-width:min(960px,95%)}}header.hero .hero__inner :where(h1,h2,h3,p,span,li){text-shadow:none}header.hero .hero__inner .muted{color:#0b12218c}.eyebrow{text-transform:uppercase;letter-spacing:.4em;font-size:.75rem;color:var(--muted);display:block;margin:0 0 1.5rem}h1{font-size:clamp(2.9rem,5vw,4.6rem);line-height:1.05;margin:0 0 2rem;font-weight:600}h2{font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.1;margin:0 0 1.5rem;font-weight:600}h3{font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 1rem;font-weight:600}h4,h5,h6{font-weight:600}p{margin:0 0 1.25rem;color:var(--fg)}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.9rem;border-radius:999px;border:1px solid currentColor;background:transparent;color:var(--fg);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .25s ease,color .25s ease,transform .25s ease;width:100%}.button:hover{background:#ff5830;color:#fff;transform:translateY(-2px)}.button--primary{background:#ff5830;border-color:#ff5830;color:#fff}.button--primary:hover{background:#e64d28;border-color:#e64d28;color:#fff}.button--ghost{border-color:#f4f6ff52;background:#f4f6ff14;color:inherit}.button--ghost:hover{background:#ff5830;border-color:#ff5830;color:#fff}body:not([data-theme=intro]) .button--ghost{border-color:#0b122129;background:#0b12210a}body:not([data-theme=intro]) .button--ghost:hover{background:#ff5830;border-color:#ff5830;color:#fff}.site-nav{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;gap:.75rem;width:100%;padding:.9rem clamp(.5rem,3vw,1rem)}.site-nav__brand{display:flex;flex-direction:column;gap:.1rem}.site-nav__name{font-weight:600;letter-spacing:.08em;text-transform:uppercase}header.hero .site-nav{display:none}.site-nav__links{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.65rem}.site-nav__links a{position:relative;text-decoration:none;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:inherit;transition:color .25s ease}.site-nav__links a:hover{color:#ff5830;text-decoration:none}.site-nav__actions{display:flex;align-items:center;gap:clamp(.8rem,2vw,1.4rem);width:100%;justify-content:flex-start}.site-nav__contact{text-decoration:none;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:inherit;transition:color .25s ease}.site-nav__contact:hover{color:#ff5830}.lang-switcher{display:inline-flex;align-items:center;gap:.3rem;padding:0;border:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.lang-switcher__btn{appearance:none;border:none;background:transparent;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .4rem;border-radius:999px;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:inherit;cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease}.lang-switcher__btn img{width:12px;height:12px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #0b122140}.lang-switcher__btn.is-active{background:#ff5830;color:#fff;transform:translateY(-1px)}.lang-switcher__btn:not(.is-active):hover{background:#ff58302e;color:#ff5830}.section-header{max-width:min(1080px,90vw);margin:0 auto clamp(1.8rem,4vw,2.6rem);display:flex;flex-direction:column;gap:.75rem}.section-header .section-lead{margin:0;font-size:.92rem;color:#0b1221b3;line-height:1.6;max-width:44ch}.section-header--projects{max-width:min(1600px,96vw);margin:0 auto clamp(1.2rem,6vw,1.6rem);padding:0 clamp(.8rem,6vw,1.4rem);box-sizing:border-box;align-items:flex-start}.about{--about-photo-max-width:clamp(220px, 70vw, 320px);--about-photo-max-height:clamp(260px, 80vw, 420px);max-width:min(1600px,96vw);margin:0 auto;width:100%;padding:clamp(2.4rem,9vw,3.2rem) clamp(.9rem,6vw,1.4rem)}.about .section-header{width:100%;max-width:none;align-items:flex-start;padding:0;margin:0 0 clamp(1.8rem,4vw,2.6rem);box-sizing:border-box}@media(min-width:920px){.about .section-header{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem}.about .section-header .section-kicker,.about .section-header h2{grid-column:1}}.section-kicker{text-transform:uppercase;letter-spacing:.28em;font-size:1.2rem;color:#ff5830;display:inline-block;font-weight:700;line-height:1.3}@media(min-width:641px){.section-kicker{font-size:1.4rem;letter-spacing:.32em}.projects-grid{gap:clamp(1.2rem,5vw,1.8rem);padding:0 clamp(1rem,6vw,2rem)}.section-header--projects{margin:0 auto clamp(1.8rem,4vw,2.6rem);padding:0 clamp(2.5rem,6vw,4rem)}.projects-grid .project{padding:0}}.section-body{max-width:min(720px,80vw);margin:0 auto;display:grid;gap:1.1rem;font-size:1.05rem;line-height:1.7;color:var(--text-body)}.about .section-body{width:100%;max-width:none;padding:0;margin:0;box-sizing:border-box}.about__layout{display:grid;grid-template-columns:1fr;column-gap:2.5rem;row-gap:clamp(1.6rem,6vw,2.2rem);align-items:stretch}.about__text{display:grid;gap:clamp(.9rem,6vw,1.3rem);grid-column:1;max-width:36rem;margin:0 auto;width:min(100%,32rem)}.about__photo{margin:0;display:flex;justify-content:center;align-items:center;align-self:center;background:none;grid-column:1;padding-top:0;min-height:auto;margin-top:clamp(1rem,5vw,1.6rem)}.about__photo img{width:min(70vw,260px);max-width:var(--about-photo-max-width);height:auto;max-height:clamp(200px,60vw,320px);display:block;object-fit:cover;align-self:center;margin:0 auto}.projects-overview{padding:clamp(3.5rem,6vw,6rem) 0}.projects-grid{display:grid;grid-template-columns:1fr;gap:clamp(.9rem,6vw,1.3rem);align-items:start;width:100%;max-width:min(1400px,96vw);margin:clamp(2.2rem,5vw,3.6rem) auto;padding:0 clamp(.8rem,6vw,1.4rem);box-sizing:border-box}.projects-grid .project{padding:0}.project{margin:0}.project-card{width:100%;display:flex;flex-direction:column;gap:.6rem;padding:0;background:none;border:none}.project-card__media{position:relative;display:block;border-radius:0;overflow:hidden;aspect-ratio:1 / 1;min-height:0;box-shadow:none}.project-card__media img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;transition:transform .6s ease}.project-card__media:hover img{transform:scale(1.04)}.project-card__body{display:flex;flex-direction:column;gap:.75rem;padding:0 0 .25rem}.project-card__meta{display:none}.project-card__title{font-size:clamp(1.45rem,6vw,2rem);margin:0;line-height:1.05;font-weight:600}.project-card__title a{color:inherit;text-decoration:none}.project-card__title a:hover{text-decoration:underline}.project-card__excerpt{margin:0;font-size:.76rem;color:var(--text-body);line-height:1.45}.project-card__footer{display:flex;align-items:center;justify-content:flex-start;gap:.45rem;font-size:.72rem;letter-spacing:.06em;color:var(--muted);font-weight:300;flex-wrap:wrap}.project-card__tags span{text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;font-weight:300;color:var(--muted)}.project-card__cta{display:inline-flex;align-items:center;gap:.4rem;color:inherit;text-decoration:none}.project-card__cta:hover{color:#ff5830}.project-card__cta:focus-visible{color:#ff5830;outline:none}@media(min-width:721px){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,3.5rem);padding:0 clamp(2rem,6vw,4rem)}.project-card__title{font-size:clamp(1.35rem,2.4vw,1.9rem)}.project-card__media{min-height:0}.detail-view__back{font-size:.95rem;padding:.85rem 1.8rem;gap:.8rem}}body.is-locked{overflow:hidden;touch-action:pan-y}body.is-locked footer.contact{visibility:hidden}.detail-overlay{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1rem,6vw,1.6rem);background:#fffffff5;z-index:30;opacity:0;visibility:hidden;pointer-events:none;overflow-y:auto;overflow-x:hidden;transition:opacity .35s ease;isolation:isolate}.detail-overlay:before{content:none}.detail-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}.detail-overlay__panel{position:relative;z-index:1;max-width:100%;width:100%;min-height:var(--app-height);height:auto;background:#fff;color:#0f1526;border-radius:22px;padding:clamp(.6rem,7vw,1rem) clamp(.6rem,6vw,1rem);border:1px solid rgba(11,18,33,.06);box-shadow:0 18px 40px #0b122114;display:flex;flex-direction:column;gap:clamp(2.2rem,5vw,3.4rem);overflow:hidden}.detail-overlay__content{display:flex;flex-direction:column;gap:clamp(1.1rem,4vw,1.6rem);flex:1 1 auto;min-height:0}.detail-view{display:flex;flex-direction:column;gap:clamp(.8rem,4vw,1.2rem);height:100%;min-height:0;flex:1 1 auto;align-items:flex-start;--detail-content-width:100%}.detail-view__header{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(1.2rem,4vw,2rem);width:var(--detail-content-width);max-width:100%;padding-top:clamp(2.6rem,10vw,3.6rem)}.detail-view__header .detail-view__back{align-self:flex-start}.detail-view__header .detail-view__summary{width:100%}.detail-view__scroll{flex:1 1 auto;min-height:0;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2rem);align-items:stretch;width:100%;padding-right:clamp(0rem,1vw,.5rem);padding-bottom:clamp(4.6rem,12vw,6.2rem)}.detail-view__back{align-self:flex-start;display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.2rem;border-radius:999px;border:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:#0f1526b3;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:color .25s ease,transform .25s ease,border-color .25s ease,background .25s ease;z-index:4;margin-bottom:clamp(.9rem,4vw,1.5rem)}.detail-overlay .detail-view__back{position:fixed;top:calc(env(safe-area-inset-top) + clamp(.65rem,5vw,1rem));left:calc(env(safe-area-inset-left) + clamp(.8rem,6vw,1.4rem));right:auto;bottom:auto;display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.2rem;border-radius:999px;border:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;color:#0b1221e0;white-space:nowrap;z-index:7;margin-bottom:0}@media(max-width:720px){.detail-overlay .detail-view__back{z-index:12}.detail-overlay .detail-view__back:after{content:"";position:fixed;top:0;left:0;right:0;height:calc(env(safe-area-inset-top) + clamp(3.2rem,14vw,4.2rem));background:#fff;pointer-events:none;z-index:-1}}@media(max-width:820px){.detail-overlay{--detail-overlay-edge:clamp(.3rem,3vw,.7rem);background:#fff;box-shadow:none}.detail-overlay__content{align-items:center;width:100%;padding:0 clamp(.3rem,3vw,.7rem)}.detail-view{width:100%;max-width:100%;padding:0 clamp(.3rem,3vw,.7rem);box-sizing:border-box}.detail-view__summary,.detail-view__info,.detail-view__body{width:100%}}.detail-view__back:before{content:"←";font-size:1rem;transform:translateY(-1px)}.detail-view__back:hover{color:#ff5830;border-color:#ff583059;transform:none}.detail-view__back:focus-visible{outline:2px solid #ff5830;outline-offset:4px;border-color:#ff583073}.detail-view__hero{width:100%;max-width:var(--detail-hero-max-width);margin:0 auto;border-radius:18px;background:transparent;display:flex;flex-direction:column;flex:0 0 auto;align-self:center}.detail-view__hero-media{width:100%;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;border-radius:20px;overflow:hidden;touch-action:manipulation}.detail-view__hero-media img{width:100%;max-width:100%;height:auto;max-height:none;display:block;border-radius:20px}.detail-view__hero-caption{margin:.4rem 0 0;padding:0;font-size:.54rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:#0f152680;background:transparent;text-align:left;max-width:100%}.detail-view__layout{display:flex;flex-direction:column;gap:clamp(1.1rem,4vw,1.6rem);align-items:start}.detail-view__summary{position:static;display:flex;flex-direction:column;gap:.9rem;width:var(--detail-content-width);max-width:100%;align-self:flex-start;padding:0;background:transparent;border-radius:0;box-shadow:none}.detail-view__tags{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;font-size:.48rem;letter-spacing:.14em;text-transform:uppercase;color:#0f15267a}.detail-view__title{margin:0;font-size:clamp(1.55rem,7.5vw,2rem);line-height:1.15;color:#0f1526;font-weight:600;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.detail-view__lead{margin:0;font-size:.84rem;color:#0f1526bd;line-height:1.55;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.detail-view__info{margin:0;padding:0;list-style:none;display:grid;gap:.15rem clamp(.3rem,4vw,.8rem);font-size:.68rem;color:#0f152685;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;text-align:center}.detail-view__info span{display:block}.detail-view__info span:first-child{font-weight:600;color:#0f1526;text-transform:uppercase;letter-spacing:.14em;font-size:.56rem;margin-bottom:.05rem}.detail-view__info span:last-child{font-weight:300;color:#0f1526bd;text-transform:none;letter-spacing:.01em;font-size:.74rem}.detail-view__body{flex:1 1 auto;min-height:0;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(.9rem,4vw,1.4rem);align-items:stretch;width:100%;--carousel-gap:clamp(1.2rem,2.8vw,2.2rem)}.detail-view__body[data-carousel=ready]{gap:0}.detail-narrative{display:grid;gap:clamp(.8rem,2vw,1.2rem);font-size:var(--detail-narrative-size, .98rem);line-height:1.65;color:#0f1526c7}.detail-narrative p{margin:0}.detail-view__body>*{width:100%;max-width:var(--detail-content-width);margin:0;align-self:stretch}.detail-view__body>section{background:transparent;border-radius:0;padding:0;box-shadow:none}.detail-carousel-wrapper{position:relative;flex:1 1 auto;display:flex;align-items:center;justify-content:flex-start;width:100%;max-width:var(--detail-carousel-max-width);margin:0;align-self:flex-start}.detail-carousel{display:flex;flex:0 1 auto;align-items:flex-start;justify-content:flex-start;gap:var(--carousel-gap);max-width:var(--detail-carousel-max-width);width:100%;margin:0;height:auto;overflow-x:auto;overflow-y:visible;padding:clamp(.6rem,1.5vw,1.4rem) 0 clamp(.8rem,2vw,1.2rem);scroll-snap-type:x proximity;--carousel-gap:clamp(.8rem,4vw,1.6rem);touch-action:manipulation}.detail-carousel:focus-visible{outline:2px solid rgba(255,88,48,.6);outline-offset:6px}.detail-carousel::-webkit-scrollbar{display:none}.detail-slide{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:flex-start;justify-content:flex-start}.detail-slide__media{width:100%;height:auto;margin:0;background:none;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:.25rem;box-shadow:none}.detail-slide__media figure{margin:0;display:flex;flex-direction:column;width:100%;height:auto}.detail-slide__media figure img{width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover;background:#fff;display:block;border-radius:0}.detail-slide__media figure .detail-view__caption{display:block;margin-top:.25rem;margin-left:.2rem;padding:0;font-size:.58rem;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:#0f152673}.detail-carousel__caption{flex:0 0 auto;align-self:flex-start;width:min(var(--detail-carousel-caption-width),var(--detail-content-width, 100%));max-width:var(--detail-content-width, 100%);margin:0 auto 0 0;padding:clamp(1.1rem,2.6vw,1.8rem) clamp(1rem,2.6vw,1.8rem) clamp(1.2rem,3vw,2rem) clamp(.4rem,1.5vw,1rem);font-size:var(--detail-carousel-caption-size, .82rem);line-height:1.6;color:#0f1526b3;column-count:1;column-gap:var(--carousel-gap);column-fill:auto;min-height:auto;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.detail-carousel__caption p{margin:0 0 .8rem;break-inside:avoid}.detail-carousel__caption p:last-child{margin-bottom:0}.detail-carousel__nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;gap:.4rem;pointer-events:none;width:100%;max-width:100%;justify-content:space-between;padding-block:0;padding-inline:var(--detail-carousel-nav-padding, clamp(.3rem, calc((100% - var(--carousel-gap, 1rem)) * .08), 1.6rem));z-index:2}.detail-carousel__btn{pointer-events:auto;appearance:none;border:none;background:#0f15262e;color:#fff;width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;--detail-carousel-btn-offset:0;transform:translate3d(var(--detail-carousel-btn-offset),0,0);transition:background .25s ease,transform .25s ease,opacity .25s ease}.detail-carousel__btn:hover{background:#ff5830e6;transform:translate3d(var(--detail-carousel-btn-offset),-1px,0)}.detail-carousel__btn:focus-visible{outline:2px solid #ff5830;outline-offset:3px}.detail-carousel__btn[disabled]{opacity:.35;cursor:default;transform:translate3d(var(--detail-carousel-btn-offset),0,0)}.detail-carousel__nav .detail-carousel__btn:first-child{--detail-carousel-btn-offset:-50%}.detail-carousel__nav .detail-carousel__btn:last-child{--detail-carousel-btn-offset:50%}.detail-view__list{margin:0;padding-left:1.4rem;display:grid;gap:.45rem;color:#0f1526d1}.detail-view__gallery{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.detail-view__gallery figure{margin:0;border-radius:0;overflow:hidden;background:transparent;display:flex;flex-direction:column}.detail-view__gallery img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}.detail-view__caption{margin:.25rem 0 0;padding:0;font-size:.5rem;line-height:1.25;letter-spacing:.08em;text-transform:uppercase;color:#0f152673;background:transparent;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.detail-view__section--rich{display:flex;flex-direction:column;gap:clamp(.7rem,3vw,1.1rem);height:100%}.detail-section__intro{display:flex;flex-direction:column;gap:.35rem}.detail-section__content{display:flex;flex-direction:column;gap:clamp(.8rem,2vw,1.1rem);align-items:flex-start}.detail-section__points{display:grid;gap:clamp(1rem,3vw,1.4rem)}.detail-point{padding:0;border-radius:0;background:transparent;border:none;display:grid;gap:.45rem}.detail-point h3{margin:0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#0f152694}.detail-point p{margin:0;font-size:.88rem;color:#0f1526cc;line-height:1.55;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.detail-overlay{--detail-font-scale:.8;--detail-body-scale:.8;--detail-narrative-size:calc(1.8rem * var(--detail-body-scale))}.detail-overlay .detail-view__back{font-size:.95rem;padding:.85rem 1.8rem;gap:.8rem}.detail-overlay .detail-view__hero-caption{font-size:.54rem}.detail-overlay .detail-view__tags{font-size:.48rem}.detail-overlay .detail-view__title{font-size:clamp(1.55rem,7.5vw,2rem)}.detail-overlay .detail-view__lead{font-size:.84rem}.detail-overlay .detail-view__info{font-size:.68rem}.detail-overlay .detail-view__info span:first-child{font-size:.56rem}.detail-overlay .detail-view__info span:last-child{font-size:.74rem}.detail-overlay .detail-section__intro h2{font-size:calc(clamp(2.2rem,4vw,3.4rem) * var(--detail-font-scale))}.detail-overlay .detail-section__intro p{font-size:calc(.98rem * var(--detail-body-scale));line-height:1.65}.detail-overlay .detail-point h3{font-size:calc(.8rem * var(--detail-font-scale))}.detail-overlay .detail-point p{font-size:calc(.88rem * var(--detail-body-scale))}.detail-overlay .detail-carousel__caption{font-size:var(--detail-carousel-caption-size, .82rem)}.detail-overlay .detail-slide__media figure .detail-view__caption{font-size:calc(.58rem * var(--detail-font-scale))}.detail-overlay .detail-view__caption{font-size:calc(.5rem * var(--detail-font-scale))}.detail-overlay .detail-view__body{font-size:calc(1rem * var(--detail-body-scale));line-height:1.55}.detail-overlay .detail-narrative{font-size:var(--detail-narrative-size)}.detail-overlay .detail-view__body>*{font-size:inherit}.detail-section__media{display:flex;gap:clamp(.6rem,4vw,1rem);overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:.3rem}.detail-section__media::-webkit-scrollbar{display:none}.detail-section__media figure{flex:0 0 100%;scroll-snap-align:center;margin:0;border-radius:14px;background:transparent;box-shadow:none;display:flex;flex-direction:column}.detail-section__media img{width:100%;height:auto;min-height:0;object-fit:cover;display:block;border-radius:14px}.detail-section__media .detail-view__caption{padding:0;margin-top:.25rem;border-top:none}@media(max-width:720px){.detail-overlay{--detail-overlay-edge:clamp(.12rem, 1.6vw, .28rem);padding:0;background:#fff}.detail-overlay__panel{border-radius:0;border:none;box-shadow:none;padding:clamp(.9rem,6vw,1.4rem) clamp(.9rem,6vw,1.4rem);position:relative;overflow:visible}.detail-overlay__panel:before,.detail-overlay__panel:after{content:none}.detail-overlay__content,.detail-view{padding:0 clamp(.12rem,2.4vw,.4rem)}.detail-view__scroll{padding-right:0;overflow-y:auto;overflow-x:hidden}.detail-view__hero{width:100%;max-width:100%;margin:0;border-radius:var(--detail-image-radius);align-self:stretch}.detail-view__hero-media{aspect-ratio:auto;width:100%;max-width:100%;border-radius:inherit;overflow:hidden;min-height:clamp(260px,78vw,460px)}.detail-view__hero-media img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.detail-carousel{--carousel-gap:0;gap:0;padding:0;scroll-snap-type:x mandatory;scroll-padding:0;width:min(var(--detail-carousel-max-width),400px);max-width:100%}.detail-slide{flex:0 0 100%;width:100%;max-width:100%;scroll-snap-align:center;padding-inline:clamp(.4rem,3.5vw,.8rem);padding-block:0}.detail-slide__media figure{border-radius:0;overflow:hidden;justify-content:flex-start;gap:.35rem}.detail-slide__media figure img{width:100%;height:auto;min-height:0;aspect-ratio:1 / 1;object-fit:cover;border-radius:0;background:#fff;display:block}.detail-slide__media figure .detail-view__caption{display:block;margin-top:.2rem;margin-left:.2rem;text-align:left}.detail-related{gap:.18rem;justify-content:space-between;align-items:center;flex-wrap:nowrap;width:100%}.detail-overlay .detail-related{position:fixed;left:0;right:0;bottom:0;padding:clamp(.7rem,5vw,1rem) clamp(1rem,6vw,1.6rem) calc(env(safe-area-inset-bottom) + clamp(.9rem,6vw,1.4rem));margin:0;width:100%;background:#fffffffa;border-top:1px solid rgba(11,18,33,.12);box-shadow:0 -10px 26px #0b12211a;z-index:60;justify-content:space-between;align-items:center}.detail-related__control{font-size:.78rem;letter-spacing:.1em;padding:.6rem 1rem;gap:.55rem;flex:0 0 calc(50% - .6rem);justify-content:center;min-width:0;text-align:center;white-space:nowrap;border-radius:999px}.detail-related__control:after,.detail-related__control:before{font-size:.95rem}.detail-related__control--next{margin-left:auto}.detail-carousel-wrapper{max-width:100%;padding-inline:clamp(.35rem,4vw,.9rem);overflow:visible}.detail-carousel__nav{left:0;right:0;transform:translateY(-50%);pointer-events:auto;z-index:3;width:100%;max-width:100%;margin:0;padding-block:0;padding-inline:clamp(.1rem,2vw,.4rem)}.detail-carousel__btn{width:clamp(26px,7vw,34px);height:clamp(26px,7vw,34px);font-size:.85rem;background:#0f152626;--detail-carousel-btn-offset:0}.detail-carousel__nav .detail-carousel__btn:first-child,.detail-carousel__nav .detail-carousel__btn:last-child{--detail-carousel-btn-offset:0}.detail-carousel__caption{margin-top:0;padding:clamp(.45rem,2.4vw,.9rem) clamp(.45rem,2.4vw,.9rem)}}@media(min-width:541px){.detail-overlay__panel{padding:clamp(.8rem,5vw,1.2rem) clamp(.7rem,5vw,1.1rem)}.detail-view__back{gap:.6rem;padding:.4rem .85rem;font-size:.78rem}.detail-view__hero-caption{margin:.35rem 0 0;font-size:.55rem;line-height:1.25}.detail-view__tags{font-size:.52rem;letter-spacing:.18em}.detail-view__title{font-size:clamp(1.7rem,6.6vw,2.2rem);line-height:1.12}.detail-view__lead{font-size:.9rem;line-height:1.6}.detail-slide__media figure .detail-view__caption{margin-top:.35rem}.detail-section__media .detail-view__caption{margin-top:.35rem}.detail-view__caption{font-size:.58rem;line-height:1.3;margin:.35rem 0 0}}@media(min-width:641px){.detail-overlay{padding:clamp(.3rem,3vw,.6rem)}.detail-overlay__panel{border-radius:18px}.detail-view__hero{border-radius:20px}.site-nav{flex-direction:row;align-items:center;justify-content:space-between;gap:clamp(.8rem,3vw,1.6rem)}.site-nav__links{align-items:center;flex-wrap:wrap;gap:clamp(1.2rem,3vw,2rem)}.site-nav__links a{font-size:.82rem;letter-spacing:.18em}.site-nav__actions{width:auto;justify-content:flex-end}.lang-switcher{padding:.25rem .4rem;gap:.4rem}.lang-switcher__btn{padding:.35rem .55rem;font-size:.72rem;letter-spacing:.2em}.lang-switcher__btn img{width:18px;height:18px}body{font-size:1rem}.button{width:auto}.projects-grid{gap:clamp(1.6rem,5vw,2.4rem);padding:0 clamp(1.2rem,6vw,2rem)}.project-card{gap:.9rem}.project-card__excerpt{font-size:.9rem;line-height:1.6}}@media(min-width:821px){.detail-overlay{align-items:stretch;padding:0;overflow:hidden}.detail-overlay__panel{max-width:none;height:var(--app-height);max-height:var(--app-height);padding:clamp(1.8rem,5vw,3.2rem);border-radius:0}.detail-overlay__content{gap:clamp(2.2rem,5vw,3.4rem)}.detail-view{gap:clamp(1.6rem,4vw,2.4rem);--detail-content-width:min(1500px, 96vw)}.detail-view__hero{max-width:var(--detail-hero-max-width);border-radius:var(--detail-image-radius)}.detail-view__hero-media{padding:clamp(.35rem,1.4vw,1rem);border-radius:var(--detail-image-radius)}.detail-view__hero-media img{width:auto;max-height:var(--detail-hero-max-height);border-radius:var(--detail-image-radius)}.detail-carousel{max-width:var(--detail-carousel-max-width);width:100%}.detail-view__hero-caption{margin:.4rem 0 0;font-size:.58rem;line-height:1.2}.detail-view__layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(2.8rem,6vw,4rem)}.detail-view__summary{gap:1.4rem}.detail-view__tags{font-size:.62rem;letter-spacing:.24em}.detail-view__title{font-size:clamp(2rem,4.8vw,3rem);line-height:1.05}.detail-view__lead{font-size:.92rem;line-height:1.55}.detail-view__info{font-size:.85rem;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;gap:.2rem clamp(.4rem,4vw,1rem);text-align:center}@media(min-width:820px)and (orientation:landscape){.detail-view{flex-direction:row;gap:clamp(1.6rem,4vw,2.4rem)}.detail-view__header{flex:0 0 clamp(260px,22vw,320px);display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2.4rem);position:sticky;top:clamp(1.8rem,5vw,2.6rem);align-self:stretch;height:100%;min-height:calc(var(--app-height) - clamp(1.8rem,5vw,2.6rem) * 2)}.detail-view__scroll{flex:1 1 auto;padding-left:clamp(2rem,4vw,3rem)}}.detail-view__section--rich{gap:inherit}.detail-point h3{font-size:.94rem;letter-spacing:.06em}.detail-point p{font-size:.98rem;line-height:1.55}.detail-section__media{gap:clamp(.8rem,2.5vw,1.4rem);overflow-y:hidden;scroll-snap-type:x mandatory;padding-bottom:.2rem}.detail-section__media figure{border-radius:var(--detail-image-radius)}.detail-section__media img{min-height:320px;height:100%;border-radius:var(--detail-image-radius)}.detail-section__media .detail-view__caption{margin-top:.45rem}.detail-slide__media figure .detail-view__caption{margin-top:.4rem}.detail-view__caption{font-size:.6rem;margin:.45rem 0 0}}@media(min-width:901px){.detail-carousel{scroll-snap-type:none;--carousel-gap:clamp(1.2rem,2.8vw,2.2rem)}.detail-slide{flex:0 0 calc(50% - var(--carousel-gap)/2);width:calc(50% - var(--carousel-gap)/2);min-width:0}.detail-carousel__caption{column-count:auto;column-width:24rem;font-size:.92rem;line-height:1.5;width:100%;max-width:var(--detail-carousel-max-width);min-height:clamp(280px,46vh,380px);min-height:clamp(280px,46svh,380px);margin-top:clamp(-2rem,-.7vw,-1rem);margin-left:clamp(-1rem,-.3vw,.3rem);margin-right:auto}}@media(min-width:981px){nav.progress{display:flex;left:2vw}header.hero,section,footer.contact{padding:clamp(3.5rem,6vw,6rem) clamp(1.5rem,7vw,6rem)}}@media(min-width:1201px){:root{--detail-carousel-max-width: clamp(72rem, 94vw, 110rem);--detail-carousel-caption-width: 1400px}nav.progress{left:4vw}.detail-carousel{max-width:min(var(--detail-carousel-max-width),94vw)}.detail-carousel__caption{column-count:auto;column-width:28rem;column-gap:var(--carousel-gap, 1.8rem);width:100%;max-width:min(var(--detail-carousel-max-width),94vw);font-size:.98rem;line-height:1.62;margin-top:clamp(-2rem,-.7vw,-1rem);margin-left:clamp(-1rem,-.3vw,.3rem);margin-right:auto}}.detail-related{margin-top:clamp(2.2rem,6vw,3.4rem);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:clamp(.75rem,3vw,1.2rem)}.detail-overlay .detail-related{position:static;left:auto;right:auto;bottom:auto;margin-top:clamp(.6rem,3vw,1rem);padding:0;z-index:1;background:transparent;border-radius:0;border:none;box-shadow:none;align-items:flex-start;gap:clamp(.6rem,5vw,1.2rem);pointer-events:auto;visibility:visible}.detail-view__header .detail-related{grid-column:1 / -1;margin-top:clamp(.8rem,2.5vw,1.2rem);width:100%;flex-wrap:nowrap;gap:clamp(1rem,2vw,1.6rem)}.detail-related__control{appearance:none;border:none;background:#ff5830;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .8rem;border-radius:999px;color:#fff;font-size:.58rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .25s ease,transform .25s ease,background .25s ease,border-color .25s ease}.detail-overlay .detail-related__control{border:none;background:#ff5830;color:#fff}.detail-related__control--next{margin-left:auto;justify-content:flex-end}.detail-related__control:after,.detail-related__control:before{font-size:.9rem;line-height:1;color:#fff}.detail-related__control--prev:before{content:"←"}.detail-related__control--next:after{content:"→";margin-left:.4rem}.detail-related__control--prev:before{margin-right:.4rem}.detail-related__control:hover,.detail-related__control:focus-visible{outline:none;color:#ff5830;background:transparent;border:1.5px solid #ff5830;transform:none}.detail-related__control:hover:before,.detail-related__control:hover:after,.detail-related__control:focus-visible:before,.detail-related__control:focus-visible:after{color:#ff5830}.detail-related__control:focus-visible{box-shadow:0 0 0 2px #ff583040}.detail-overlay .detail-related__control:focus-visible{border-color:#ff583066}@media(max-width:900px){.detail-overlay .detail-related{position:fixed;left:0;right:0;bottom:0;width:100%;margin:0;padding:clamp(.7rem,5vw,1rem) clamp(1rem,6vw,1.6rem) calc(env(safe-area-inset-bottom) + clamp(.9rem,6vw,1.4rem));background:#fffffffa;border-top:none;box-shadow:none;justify-content:space-between;align-items:center;z-index:70}.detail-overlay .detail-view__scroll{padding-bottom:clamp(5rem,14vw,8rem)}}@media(max-width:720px){.detail-related{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.35rem;width:100%}.detail-related__control{flex:0 0 calc(50% - .2rem);justify-content:center;text-align:center;min-width:0;white-space:nowrap}.detail-related__control--next{margin-left:auto}}@media(min-width:721px){.detail-view__back{position:sticky;top:clamp(1rem,4vw,2rem);left:auto;right:auto;bottom:auto;padding:.35rem .75rem;border-radius:999px;border:none;background:transparent;box-shadow:none;margin-bottom:clamp(.9rem,4vw,1.5rem)}.detail-overlay .detail-view__back{bottom:auto;left:auto;right:auto;padding:.35rem .75rem;border-radius:999px;border:none;background:transparent;box-shadow:none}.detail-related{position:static;left:auto;right:auto;bottom:auto;padding:0;background:transparent;border:none;box-shadow:none}.detail-overlay .detail-view__back:before,.detail-overlay .detail-related:before{content:none}.detail-view__header{padding-top:0}}@media(min-width:1024px){.detail-view{flex-direction:row;gap:clamp(3rem,6vw,4.5rem)}.detail-view__header{flex:0 0 clamp(260px,22vw,320px);display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2.4rem);position:sticky;top:clamp(1.8rem,5vw,2.6rem);align-self:stretch;height:100%;min-height:calc(var(--app-height) - clamp(1.8rem,5vw,2.6rem) * 2)}.detail-view__header .detail-view__back{position:static;margin-bottom:.6rem}.detail-view__header .detail-view__summary{max-width:100%}.detail-view__header .detail-related{margin-top:auto;justify-content:space-between}.detail-view__scroll{flex:1 1 auto;padding-left:clamp(2rem,4vw,3rem);overflow:visible;height:auto;max-height:none}.detail-view__hero{max-width:calc(var(--detail-hero-max-width) * 1.05)}.detail-carousel,.detail-carousel-wrapper{width:100%;max-width:100%}.detail-related{position:static;bottom:auto;padding:0;background:transparent;border:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}.detail-related__control{border:none;background:transparent}.detail-related__control:hover,.detail-related__control:focus-visible{background:transparent;border:none}}footer.contact{min-height:auto;max-width:min(1600px,96vw);width:100%;margin:0 auto;padding:clamp(4rem,8vw,6rem) clamp(2.5rem,6vw,4rem) clamp(5rem,8vw,6.5rem);background:transparent}.contact__inner{width:100%;margin:0;display:flex;flex-direction:column;gap:1.1rem;font-size:1.05rem;align-items:flex-start}.contact__inner:after{content:"";display:none}.contact__copy{display:flex;flex-direction:column;gap:1.1rem;max-width:100%;width:100%;align-items:flex-start;grid-column:1}.contact__info--inline{display:flex;flex-direction:column;gap:.25rem}.contact__info--inline span{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.contact__inline{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;gap:.75rem}.contact__info{display:flex;flex-direction:column;gap:.25rem;font-size:.95rem;color:var(--muted)}.contact__info a{color:var(--fg);text-decoration:none;font-weight:600}.contact__info a:hover{color:var(--accent)}@media(min-width:921px){.about{--about-photo-max-width:clamp(200px, 22vw, 300px);--about-photo-max-height:clamp(220px, 32vw, 380px);padding:clamp(3.5rem,6vw,6rem) clamp(2.5rem,6vw,4rem)}.about__layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:1.8rem}.about__photo{justify-content:flex-end;align-items:flex-end;align-self:stretch;grid-column:2;min-height:100%;margin-top:0}.about__photo img{width:100%;max-width:var(--about-photo-max-width);max-height:var(--about-photo-max-height);align-self:flex-end;margin:0}.about__text{max-width:none;margin:0;gap:1.1rem}.contact__inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,6vw,4rem);align-items:start}.contact__inline{flex-direction:row;align-items:center;gap:1.6rem}.contact__inner:after{display:block}}nav.progress{position:fixed;top:50%;left:2vw;transform:translateY(-50%);z-index:3;display:none;flex-direction:column;align-items:flex-start;gap:1rem}nav.progress:before{content:"Parcours";font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#0b12218c;writing-mode:vertical-rl;transform:rotate(180deg);align-self:center}nav.progress ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}nav.progress button{display:flex;align-items:center;gap:.65rem;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--card-border);background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-body);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .3s ease,border-color .3s ease,background .3s ease,transform .3s ease}nav.progress button .index{font-weight:600;color:#0b122173}nav.progress button .label{white-space:nowrap}nav.progress li.is-active button{background:color-mix(in srgb,var(--accent, #ff5830) 20%,rgba(255,255,255,.95));color:var(--text-strong);border-color:var(--accent-soft);transform:translate(6px)}body:not([data-theme=intro]) nav.progress button{background:#ffffffd1;color:var(--text-body);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body:not([data-theme=intro]) nav.progress button .index{color:#0b122173}body:not([data-theme=intro]) nav.progress li.is-active button{background:color-mix(in srgb,var(--accent, #ff5830) 18%,rgba(255,255,255,.94));color:var(--text-strong);border-color:var(--accent-soft)}nav.progress button:focus-visible{outline:none;border-color:var(--accent);color:var(--fg)}.mini-header{position:fixed;top:0;left:0;right:0;padding:.65rem clamp(.8rem,4vw,1.6rem);background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(11,18,33,.08);box-shadow:0 12px 24px #0b12210f;opacity:0;transform:translateY(-12px);pointer-events:none;transition:opacity .25s ease,transform .25s ease;z-index:60}body.is-detail-open .mini-header{display:none}.mini-header.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.mini-header__inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(.8rem,3vw,1.4rem);max-width:1200px;margin:0 auto;width:100%}.mini-header__brand{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;color:#0b1020;white-space:nowrap}.mini-header__nav{display:flex;align-items:center;gap:clamp(.6rem,2vw,1.2rem);flex:1;justify-content:center}.mini-header__nav a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:#0b1020;font-weight:600;padding:.15rem .2rem}.mini-header__nav a:hover{color:#ff5830}.mini-header__actions{display:flex;align-items:center;gap:.6rem}[data-anim]{opacity:0;transform:translate3d(0,40px,0) scale3d(.97,.97,1);filter:blur(6px);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform 1.1s cubic-bezier(.19,1,.22,1),filter .9s ease}[data-anim][data-anim-speed=slow]{transition-duration:1.4s,1.6s,1.4s}.is-visible[data-anim]{opacity:1;transform:translateZ(0) scaleZ(1);filter:blur(0)}header.hero [data-anim]{opacity:1;transform:none;filter:none}[data-anim=tilt]{transform:perspective(1200px) translate3d(0,60px,0) rotateX(8deg) scale(.94);transform-origin:center top}.is-visible[data-anim=tilt]{transform:perspective(1200px) translateZ(0) rotateX(0) scale(1)}body[data-theme=intro]{background:#fff;color:var(--text-body);--fg:var(--text-body);--muted:rgba(11,18,33,.56);--accent:#ff5830;--accent-soft:rgba(255,88,48,.2)}body[data-theme=intro]:before,body[data-theme=intro]:after{content:none;background:none;opacity:0}body[data-theme=intro] header.hero{color:var(--text-body);--fg:var(--text-body);--muted:rgba(11,18,33,.56)}body[data-theme=intro] header.hero a{color:inherit}body[data-theme=intro] header.hero .label{color:#f4f6ffa6}body[data-theme=about]{--accent:#8f9bff;--accent-soft:rgba(143,155,255,.32)}body[data-theme=smile-thermik]{--accent:#20f9b3;--accent-soft:rgba(32,249,179,.3)}body[data-theme=umbra]{--accent:#ffb12b;--accent-soft:rgba(255,177,43,.32)}body[data-theme=maison]{--accent:#00c7ff;--accent-soft:rgba(0,199,255,.32)}body[data-theme=climb-form]{--accent:#f05bff;--accent-soft:rgba(240,91,255,.34)}body[data-theme=fire]{--accent:#ff6b3d;--accent-soft:rgba(255,107,61,.35)}body[data-theme=ploop]{--accent:#58f2b3;--accent-soft:rgba(88,242,179,.32)}body[data-theme=savon-rouge]{--accent:#ff3d6b;--accent-soft:rgba(255,61,107,.32)}body[data-theme=contact]{--accent:#ff5830;--accent-soft:rgba(255,88,48,.32)}section[data-theme=about]{--section-accent:#8f9bff}section[data-theme=smile-thermik]{--section-accent:#ff8a47}section[data-theme=umbra]{--section-accent:#ffb12b}section[data-theme=maison]{--section-accent:#00b8ff}section[data-theme=climb-form]{--section-accent:#f05bff}section[data-theme=fire]{--section-accent:#ff6b3d}section[data-theme=ploop]{--section-accent:#58f2b3}section[data-theme=savon-rouge]{--section-accent:#ff3d6b}footer[data-theme=contact]{--section-accent:#ff5830}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-anim]{opacity:1!important;transform:none!important;filter:none!important}body:before{transform:none!important}}@media(min-width:481px){header.hero,section,footer.contact{padding:clamp(3rem,6vw,4rem) clamp(1.4rem,6vw,3rem)}.hero__title{font-size:clamp(2.4rem,11vw,3.2rem)}.hero__intro{padding:clamp(1.4rem,4vw,2.2rem)}.hero__scroll{width:84px;height:84px;font-size:2.8rem}.site-nav__links a{font-size:.72rem}.lang-switcher__btn{font-size:.6rem;padding:.28rem .45rem}.lang-switcher__btn img{width:14px;height:14px}.projects-grid{gap:clamp(1.2rem,5vw,1.8rem);padding:0 clamp(1rem,6vw,2rem)}.project-card__excerpt{font-size:.78rem;line-height:1.5}.about{padding:clamp(3rem,8vw,4.2rem) clamp(1.4rem,7vw,2.4rem)}.about__text{width:auto;gap:clamp(1rem,5vw,1.5rem)}.contact__inline{gap:.9rem}}.detail-overlay .detail-view__back:before{content:"←";position:static;font-size:1rem;transform:none;margin-right:.1rem;color:inherit}@media(min-width:821px)and (orientation:landscape){.detail-view{flex-direction:row;align-items:stretch;gap:clamp(1.6rem,4vw,2.4rem)}.detail-view__header{flex:0 0 clamp(260px,22vw,320px);width:clamp(260px,22vw,320px);max-width:clamp(260px,22vw,320px);display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2.4rem);position:sticky;top:clamp(1.8rem,5vw,2.6rem);align-self:stretch;height:100%;min-height:calc(var(--app-height) - clamp(1.8rem,5vw,2.6rem) * 2)}.detail-view__scroll{flex:1 1 auto;padding-left:clamp(2rem,4vw,3rem)}}.detail-view.detail-view--wide{flex-direction:row;align-items:stretch;gap:clamp(1.6rem,4vw,2.4rem)}.detail-view.detail-view--wide .detail-view__header{flex:0 0 clamp(260px,22vw,320px);width:clamp(260px,22vw,320px);max-width:clamp(260px,22vw,320px);display:flex;flex-direction:column;gap:clamp(1.4rem,4vw,2.4rem);position:sticky;top:clamp(1.8rem,5vw,2.6rem);align-self:stretch;height:100%;min-height:calc(var(--app-height) - clamp(1.8rem,5vw,2.6rem) * 2)}.detail-view.detail-view--wide .detail-view__scroll{flex:1 1 auto;padding-left:clamp(2rem,4vw,3rem)}body.is-detail-restoring{background:#fff}body.is-detail-restoring header.hero,body.is-detail-restoring main>*:not(.detail-overlay),body.is-detail-restoring footer,body.is-detail-restoring .scroll-top{opacity:0;visibility:hidden;pointer-events:none}body.is-detail-restoring .detail-overlay{transition:none;background:#fff}body.is-detail-restoring .detail-overlay:before{content:none}.detail-overlay.detail-overlay--instant{transition:none!important}.detail-overlay.detail-overlay--instant:before{content:none}
