:root{color-scheme:light;--page: #f4f6fb;--surface: #ffffff;--surface-raised: #fbfcff;--surface-strong: #e8edf7;--text: #101522;--muted: #596277;--line: #cdd5e5;--line-strong: #aeb9ce;--blue: #245cff;--violet: #7256ff;--accent-soft: #e8edff;--focus: #0b57d0;--button-primary-text: #ffffff;--button-primary-hover: #1d4bd1;--button-primary-active: #173ca9;--button-primary-disabled: #4e5f7f;--button-primary-disabled-text: #ffffff;--danger-text: #a51d32;--danger-border: #c72f45;--content: 1180px;--radius: 18px;--radius-small: 10px;--shadow: 0 24px 70px rgb(28 43 84 / 12%)}:root[data-theme=dark]{color-scheme:dark;--page: #070910;--surface: #0e1220;--surface-raised: #111727;--surface-strong: #171d30;--text: #f5f7ff;--muted: #aab3c7;--line: #2b3550;--line-strong: #43506e;--blue: #7896ff;--violet: #a28cff;--accent-soft: #171f3b;--focus: #b3c1ff;--button-primary-text: #101522;--button-primary-hover: #91a9ff;--button-primary-active: #849fff;--button-primary-disabled: #7d8ed0;--button-primary-disabled-text: #101522;--danger-text: #ff9aa7;--danger-border: #ef6475;--shadow: 0 24px 80px rgb(0 0 0 / 38%)}[data-project=ecocharge]{--project-accent: #20b995;--project-accent-2: #4cb8ff;--project-accent-text: #08715e}[data-project=cinemaverse]{--project-accent: #8f6dff;--project-accent-2: #e9b949;--project-accent-text: #5f3dcc}[data-project=restaurant-kassasysteem]{--project-accent: #ed7147;--project-accent-2: #e9ad3d;--project-accent-text: #a33b18}[data-project=the-impenetrable-2]{--project-accent: #43c6d8;--project-accent-2: #f3c14d;--project-accent-text: #086d7b}[data-project=seabattle]{--project-accent: #347ff1;--project-accent-2: #31bfd1;--project-accent-text: #1959bd}:root[data-theme=dark] [data-project=ecocharge]{--project-accent-text: #20b995}:root[data-theme=dark] [data-project=cinemaverse]{--project-accent-text: #a28cff}:root[data-theme=dark] [data-project=restaurant-kassasysteem]{--project-accent-text: #f08a67}:root[data-theme=dark] [data-project=the-impenetrable-2]{--project-accent-text: #43c6d8}:root[data-theme=dark] [data-project=seabattle]{--project-accent-text: #6b9cff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 85% 5%,color-mix(in srgb,var(--violet) 13%,transparent),transparent 30rem),var(--page);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65}img{display:block;max-width:100%;height:auto}.optimized-picture{display:contents}.lightbox-open{overflow:hidden}a{color:inherit}button,input,textarea{font:inherit}p,dd{overflow-wrap:normal;word-break:normal;hyphens:none}h1,h2,h3{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.container{width:min(calc(100% - 2rem),var(--content));margin-inline:auto}.skip-link{position:fixed;left:1rem;top:-8rem;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:.5rem .85rem;border-radius:var(--radius-small);background:var(--surface);box-shadow:var(--shadow);text-decoration:none}.skip-link:focus{top:1rem}astro-dev-toolbar{display:none!important}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);background:color-mix(in srgb,var(--page) 86%,transparent);backdrop-filter:blur(18px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:72px}.site-brand{display:inline-flex;align-items:center;min-width:max-content;min-height:44px;font-size:1rem;font-weight:850;letter-spacing:-.02em;text-decoration:none}.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.75rem,3vw,2rem);width:100%}.site-nav__links,.site-actions,.language-switch{display:flex;align-items:center;gap:.65rem}.site-nav__links{gap:clamp(.65rem,2vw,1.5rem)}.site-nav__links>a,.work-menu__link,.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-inline:.35rem;color:var(--muted);font-size:.9rem;font-weight:700;text-decoration:none}.site-nav__links>a:hover,.work-menu__link:hover,.language-switch a:hover,.language-switch a[aria-current=true]{color:var(--text)}.work-menu{position:relative;display:flex;align-items:center}.work-menu__link{padding-inline-end:.1rem}.work-menu__toggle{width:44px;height:44px;display:grid;place-items:center;border:0;padding:0;background:transparent;color:var(--muted);cursor:pointer}.work-menu__toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;transition:transform .18s ease}.work-menu__panel{position:absolute;top:calc(100% + .55rem);left:50%;z-index:30;min-width:13.5rem;display:grid;gap:.2rem;border:1px solid var(--line);border-radius:var(--radius);padding:.45rem;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translate(-50%,-.35rem);transition:opacity .16s ease,transform .16s ease}.work-menu__hover-corridor{position:absolute;top:100%;left:0;z-index:29;width:100%;height:.65rem;pointer-events:none}.work-menu[data-open=true] .work-menu__hover-corridor{pointer-events:auto}.work-menu__panel a{min-height:44px;display:flex;align-items:center;border-radius:var(--radius-small);padding:.55rem .75rem;color:var(--muted);font-size:.88rem;font-weight:750;text-decoration:none}.work-menu__panel a:hover,.work-menu__panel a:focus-visible{background:var(--surface-strong);color:var(--text)}.work-menu[data-open=true] .work-menu__panel{opacity:1;visibility:visible;transform:translate(-50%)}.work-menu[data-open=true] .work-menu__toggle svg{transform:rotate(180deg)}.language-switch{border-inline-start:1px solid var(--line);padding-inline-start:.75rem}.language-switch a[aria-current=true]{text-decoration:underline;text-underline-offset:.25em}.language-switch__short{display:none}.theme-switch{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);cursor:pointer}.theme-switch:hover{background:var(--surface-strong)}.theme-switch__icon{width:20px;height:20px}:root[data-theme=dark] .theme-switch__icon--moon,:root:not([data-theme=dark]) .theme-switch__icon--sun{display:none}main{min-height:56vh}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border:1px solid var(--line);border-radius:999px;padding:.8rem 1.2rem;font-weight:800;line-height:1.2;text-decoration:none}.button--primary{border-color:var(--blue);background:var(--blue);color:var(--button-primary-text);box-shadow:0 12px 30px color-mix(in srgb,var(--blue) 26%,transparent)}.button--primary:hover{border-color:var(--button-primary-hover);background:var(--button-primary-hover)}.button--primary:active{border-color:var(--button-primary-active);background:var(--button-primary-active)}.button--secondary{background:var(--surface);color:var(--text)}.button--secondary:hover{background:var(--surface-strong)}.text-link{display:inline-flex;align-items:center;min-height:44px;width:fit-content;color:var(--blue);font-weight:850;text-decoration-thickness:.12em;text-underline-offset:.24em}.section-label,.hero__note,.project-card__context{margin:0;color:var(--muted);font-size:.78rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.section-band{scroll-margin-top:5rem;padding-block:clamp(5rem,9vw,8.5rem)}.section-band--quiet{background:color-mix(in srgb,var(--surface) 94%,transparent)}.section-heading{max-width:760px}.section-heading--wide{max-width:900px}.section-heading h2,.about-strip__content h2,.contact h2{margin:0;font-size:clamp(2.35rem,6vw,4.8rem);line-height:1.08;letter-spacing:-.025em}.section-heading p:not(.section-label),.about-strip__content p,.contact p{max-width:48rem;margin:1.25rem 0 0;color:var(--muted);font-size:1.05rem}.hero{position:relative;isolation:isolate;overflow:clip;min-height:min(900px,calc(100svh - 72px));display:grid;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);background:linear-gradient(115deg,color-mix(in srgb,var(--blue) 8%,transparent),transparent 44%),radial-gradient(circle at 82% 35%,color-mix(in srgb,var(--violet) 18%,transparent),transparent 27rem)}.hero:before,.hero:after{position:absolute;z-index:-1;content:"";pointer-events:none}.hero:before{width:min(42vw,36rem);aspect-ratio:1;right:-12rem;top:8%;border:1px solid color-mix(in srgb,var(--violet) 24%,transparent);border-radius:50%}.hero:after{width:min(48vw,42rem);height:12rem;left:-10rem;bottom:8%;opacity:.42;background-image:radial-gradient(circle,color-mix(in srgb,var(--blue) 40%,transparent) 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}.hero__inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(25rem,.95fr);gap:clamp(2.5rem,6vw,6rem);align-items:center;padding-block:clamp(4.5rem,8vw,7.5rem)}.hero__content{min-width:0;position:relative;z-index:1}.hero__title{margin:.8rem 0 0;font-size:clamp(4rem,9vw,8rem);line-height:1.06;letter-spacing:.005em;background:linear-gradient(120deg,var(--text) 20%,color-mix(in srgb,var(--blue) 72%,var(--text)));background-clip:text;color:transparent}.hero__role{max-width:50rem;margin:2rem 0 0;font-size:clamp(1.35rem,3vw,2.1rem);font-weight:760;line-height:1.18;letter-spacing:-.025em}.hero__intro{max-width:45rem;margin:1.25rem 0 0;color:var(--muted);font-size:1.1rem}.hero__context{max-width:42rem;margin:1rem 0 0;color:var(--text);font-size:.95rem;font-weight:750}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.hero__showcase{min-width:0;position:relative;border:1px solid color-mix(in srgb,var(--line-strong) 72%,transparent);border-radius:calc(var(--radius) + 18px);padding:clamp(1rem,2.2vw,1.5rem);background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 90%,transparent),color-mix(in srgb,var(--surface-strong) 82%,transparent));box-shadow:var(--shadow),inset 0 1px color-mix(in srgb,#ffffff 28%,transparent);backdrop-filter:blur(18px)}.hero__showcase:before{position:absolute;inset:12% -8% -8% 12%;z-index:-1;border-radius:45% 55% 38% 62%;background:color-mix(in srgb,var(--violet) 16%,transparent);filter:blur(50px);content:"";pointer-events:none}.hero__showcase-heading{margin-bottom:1rem}.hero__project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.hero-project-tile{min-width:0;display:grid;overflow:hidden;border:1px solid color-mix(in srgb,var(--project-accent) 36%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 92%,var(--project-accent) 8%);color:var(--text);text-decoration:none;box-shadow:0 18px 42px color-mix(in srgb,var(--project-accent) 12%,transparent);transition:border-color .22s ease,transform .28s ease,box-shadow .28s ease}.hero-project-tile__media{min-width:0;aspect-ratio:16 / 9;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--project-accent) 30%,transparent),transparent 50%),#090d18}.hero-project-tile__media img{width:100%;height:100%;object-fit:cover;transition:transform .42s ease}.hero-project-tile[data-project=ecocharge] .hero-project-tile__media img{width:auto;max-width:82%;object-fit:contain;padding:.35rem}.hero-project-tile__meta{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:center;padding:.75rem}.hero-project-tile__meta>span{color:var(--project-accent-text);font-size:.68rem;font-weight:900;letter-spacing:.1em}.hero-project-tile__meta strong{min-width:0;font-size:.83rem;line-height:1.22}.capability-grid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.capability-card{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:.2rem .9rem;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:var(--radius);padding:1.15rem;background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:blur(12px)}.capability-card span{grid-row:1 / 3;color:var(--violet);font-size:.75rem;font-weight:900;letter-spacing:.1em}.capability-card h2,.capability-card p{margin:0}.capability-card h2{font-size:1rem;line-height:1.25}.capability-card p{color:var(--muted);font-size:.9rem;line-height:1.5}.portfolio-work{position:relative;isolation:isolate;overflow:clip;border-top:1px solid var(--line);background:radial-gradient(circle at 8% 18%,color-mix(in srgb,var(--blue) 9%,transparent),transparent 30rem),var(--surface)}.portfolio-work:before{position:absolute;inset:9rem 0 auto;z-index:-1;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);content:""}.project-grid{display:grid;gap:clamp(2rem,5vw,4.5rem);margin-top:clamp(3rem,7vw,6rem)}.project-card{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(22rem,.92fr);border:1px solid color-mix(in srgb,var(--project-accent) 28%,var(--line));border-radius:calc(var(--radius) + 14px);overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--project-accent) 5%,var(--surface-raised)),var(--surface-raised));box-shadow:var(--shadow),0 28px 90px color-mix(in srgb,var(--project-accent) 10%,transparent)}.project-card:before{position:absolute;z-index:-1;width:22rem;aspect-ratio:1;right:-12rem;bottom:-13rem;border-radius:50%;background:color-mix(in srgb,var(--project-accent) 10%,transparent);filter:blur(25px);content:"";pointer-events:none}.project-card:after{position:absolute;z-index:3;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--project-accent),var(--project-accent-2));content:"";transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.75,.2,1)}.project-card[data-revealed=true]:after{transform:scaleX(1)}.project-card:nth-child(2n){grid-template-columns:minmax(22rem,.92fr) minmax(0,1.08fr)}.project-card:nth-child(2n) .project-card__figure{order:2;border-inline-start:1px solid color-mix(in srgb,var(--project-accent) 26%,var(--line));border-inline-end:0}.project-card__figure{min-width:0;display:grid;align-content:center;margin:0;border-inline-end:1px solid color-mix(in srgb,var(--project-accent) 26%,var(--line));padding:clamp(1rem,3vw,2rem);background:radial-gradient(circle at 25% 20%,color-mix(in srgb,var(--project-accent) 30%,transparent),transparent 42%),linear-gradient(145deg,color-mix(in srgb,var(--project-accent-2) 12%,var(--surface-strong)),var(--surface-strong))}.project-card__media{width:100%;min-height:clamp(300px,45vw,560px);display:grid;place-items:center;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--project-accent) 34%,var(--line-strong));border-radius:calc(var(--radius) + 4px);background:#0b0e18;cursor:zoom-in;box-shadow:0 28px 65px #00000047,0 0 45px color-mix(in srgb,var(--project-accent) 12%,transparent)}.project-card__media img{width:100%;height:100%;min-height:inherit;object-fit:cover}.project-card__media--contain{padding:clamp(1rem,3vw,2.5rem)}.project-card__media--contain img{width:auto;max-width:100%;min-height:0;max-height:520px;object-fit:contain;border-radius:var(--radius-small);box-shadow:0 20px 50px #00000042}.project-card__figure figcaption{margin-top:.8rem;color:var(--muted);font-size:.86rem}.project-card__content{min-width:0;display:grid;align-content:center;padding:clamp(2rem,5vw,4.25rem)}.project-card__topline{min-width:0;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.project-card__topline>span{flex:0 0 auto;color:var(--project-accent-text);font-size:.72rem;font-weight:900;letter-spacing:.12em}.project-card h3{margin:.65rem 0 0;font-size:clamp(2.1rem,5vw,4rem);line-height:1.08;letter-spacing:-.025em}.project-card__summary{margin:1.25rem 0 0;color:var(--muted);font-size:1.02rem}.project-card__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.75rem 0 0}.project-card__facts div{min-width:0;border-top:1px solid var(--line);padding-top:.85rem}.project-card__facts dt,.project-facts dt{color:var(--muted);font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.project-card__facts dd,.project-facts dd{margin:.35rem 0 0;font-weight:750;line-height:1.4}.technology-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.5rem 0 0;padding:0;list-style:none}.technology-list li{border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem;background:var(--surface);color:var(--muted);font-size:.78rem;font-weight:750}.project-card .technology-list li,.case-study .technology-list li{border-color:color-mix(in srgb,var(--project-accent) 30%,var(--line));background:color-mix(in srgb,var(--project-accent) 7%,var(--surface))}.project-card__result{margin-top:1.5rem;border-inline-start:3px solid var(--project-accent);padding-inline-start:1rem}.project-card__result strong{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.project-card__result p{margin:.35rem 0 0;color:var(--muted);font-size:.93rem}.project-card .text-link{margin-top:1.6rem;color:var(--project-accent-text)}.about-strip{position:relative;isolation:isolate;overflow:clip;background:linear-gradient(110deg,color-mix(in srgb,var(--blue) 13%,transparent),transparent 48%),var(--page)}.about-strip:after{position:absolute;z-index:-1;width:min(48rem,72vw);height:14rem;right:-8rem;bottom:-5rem;opacity:.38;background-image:radial-gradient(circle,color-mix(in srgb,var(--violet) 48%,transparent) 1px,transparent 1px);background-size:19px 19px;mask-image:radial-gradient(ellipse,#000,transparent 72%);content:""}.about-strip__inner{display:grid;grid-template-columns:clamp(220px,28vw,340px) minmax(0,1fr);gap:clamp(2rem,7vw,6rem);align-items:center}.about-strip__portrait-wrap{position:relative;display:grid;gap:1rem;justify-items:center}.about-strip__portrait-wrap:before{position:absolute;z-index:-1;inset:-8% -10% 8%;border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);border-radius:58% 42% 48% 52%/45% 55%;background:color-mix(in srgb,var(--blue) 9%,transparent);content:"";transform:rotate(-6deg)}.about-strip__portrait{width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:38% 62% 58% 42%/46% 38% 62% 54%;object-fit:cover;box-shadow:var(--shadow)}.about-strip__portrait-wrap>p{margin:0;color:var(--muted);font-size:.72rem;font-weight:850;letter-spacing:.1em;text-align:center;text-transform:uppercase}.about-strip__approach{display:grid;gap:.85rem;margin-top:2rem;border-top:1px solid var(--line);padding-top:1.2rem}.about-strip__approach>strong{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}.about-strip__approach ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none}.about-strip__approach li{min-width:0;display:grid;gap:.35rem;border:1px solid var(--line);border-radius:var(--radius-small);padding:.8rem;background:color-mix(in srgb,var(--surface) 78%,transparent);font-size:.82rem;font-weight:750}.about-strip__approach li span{color:var(--violet);font-size:.68rem;font-weight:900;letter-spacing:.1em}.profile-section{border-top:1px solid var(--line);background:radial-gradient(circle at 88% 12%,color-mix(in srgb,var(--violet) 10%,transparent),transparent 30rem),var(--surface)}.profile-group{scroll-margin-top:8rem}.profile-group__heading{display:grid;gap:.5rem;margin-bottom:1.5rem}.profile-group__heading h2{max-width:48rem;margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1.12;letter-spacing:-.02em}.timeline-grid{max-width:64rem;display:grid;grid-template-columns:1fr;gap:1rem}.timeline-card{min-width:0;position:relative;display:grid;grid-template-columns:minmax(9rem,11rem) minmax(0,1fr);align-content:start;gap:.4rem 1.5rem;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.25rem,3vw,1.75rem);background:linear-gradient(145deg,var(--surface-raised),color-mix(in srgb,var(--accent-soft) 45%,var(--surface-raised)))}.timeline-card:before{position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--blue),var(--violet));content:""}.timeline-card h3,.timeline-card p{margin:0}.timeline-card h3{font-size:1.15rem;line-height:1.3}.timeline-card p{color:var(--muted);font-size:.92rem}.timeline-card__period{grid-column:1;grid-row:1 / span 4;align-self:stretch;border-inline-end:1px solid var(--line);padding-inline-end:1.25rem;color:var(--blue)!important;font-size:.75rem!important;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.timeline-card__role{color:var(--text)!important;font-weight:800}.timeline-card h3,.timeline-card p:not(.timeline-card__period){grid-column:2}.contact{position:relative;isolation:isolate;overflow:clip;background:radial-gradient(circle at 78% 18%,color-mix(in srgb,var(--violet) 12%,transparent),transparent 28rem),color-mix(in srgb,var(--surface) 94%,transparent)}.contact:before{position:absolute;z-index:-1;width:32rem;height:24rem;left:-8rem;bottom:-6rem;opacity:.32;background-image:radial-gradient(circle,color-mix(in srgb,var(--blue) 48%,transparent) 1px,transparent 1px);background-size:18px 18px;mask-image:radial-gradient(ellipse,#000,transparent 72%);content:""}.contact__inner{display:grid;grid-template-columns:minmax(0,.85fr) minmax(24rem,1.15fr);gap:clamp(3rem,8vw,7rem);align-items:start}.contact__direct{margin-top:2.25rem;border-top:1px solid var(--line);padding-top:1.25rem}.contact__direct>p{margin:0;color:var(--text);font-size:.9rem;font-weight:800}.contact__links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.65rem}.contact-form{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);padding:clamp(1.25rem,4vw,2.5rem);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--shadow),inset 0 1px color-mix(in srgb,#ffffff 24%,transparent);backdrop-filter:blur(18px)}.contact-form__botcheck{display:none}.form-field{min-width:0;display:grid;gap:.45rem}.form-field--wide,.contact-form__captcha,.contact-form__required-note,.contact-form__validation,.contact-form__privacy,.contact-form__status,.contact-form .button{grid-column:1 / -1}.contact-form__captcha{min-width:0;min-height:78px;overflow:hidden}.contact-form__captcha iframe{display:block}.form-field label{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.85rem;font-weight:800}.form-field__required{color:var(--muted);font-size:.68rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.form-field input,.form-field textarea{width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius-small);padding:.85rem .95rem;background:var(--page);color:var(--text)}.form-field textarea{min-height:9rem;resize:vertical}.form-field input:hover,.form-field textarea:hover{border-color:var(--blue)}.form-field[data-state=error] label,.form-field__error{color:var(--danger-text)}.form-field[data-state=error] input,.form-field[data-state=error] textarea{border-color:var(--danger-border);background:color-mix(in srgb,var(--danger-border) 7%,var(--page));box-shadow:0 0 0 1px color-mix(in srgb,var(--danger-border) 24%,transparent)}.form-field__error{margin:0;font-size:.8rem;font-weight:750;line-height:1.45}.contact-form__required-note,.contact-form__privacy,.contact-form__status{margin:0;font-size:.82rem}.contact-form__required-note{color:var(--muted)}.contact-form__validation{border:1px solid var(--danger-border);border-inline-start-width:4px;border-radius:var(--radius-small);padding:.85rem 1rem;background:color-mix(in srgb,var(--danger-border) 10%,var(--surface));color:var(--text)}.contact-form__validation strong,.contact-form__validation p{margin:0}.contact-form__validation strong{color:var(--danger-text)}.contact-form__validation p{margin-top:.2rem;color:var(--muted);font-size:.82rem}.contact-form__privacy a{color:var(--blue);font-weight:800;text-underline-offset:.18em}.contact-form__status{border:1px solid color-mix(in srgb,#26a269 55%,var(--line));border-radius:var(--radius-small);padding:.75rem;background:color-mix(in srgb,#26a269 12%,var(--surface));color:var(--text)!important}.contact-form__status[data-state=pending]{border-color:color-mix(in srgb,var(--blue) 48%,var(--line));background:color-mix(in srgb,var(--blue) 10%,var(--surface))}.contact-form__status[data-state=error]{border-color:color-mix(in srgb,#d63c4a 58%,var(--line));background:color-mix(in srgb,#d63c4a 11%,var(--surface))}.contact-form .button{width:fit-content;cursor:pointer}.contact-form .button:disabled{cursor:wait;opacity:1}.contact-form .button--primary:disabled{border-color:var(--button-primary-disabled);background:var(--button-primary-disabled);color:var(--button-primary-disabled-text)}.privacy-page__inner{width:min(100%,900px)}.privacy-page h1{max-width:14ch;margin:.45rem 0 1.25rem;font-size:clamp(3rem,9vw,6.5rem);line-height:1.08;letter-spacing:-.035em;overflow-wrap:normal}.privacy-page__intro{max-width:70ch;margin:0;color:var(--muted);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7}.privacy-page__sections{display:grid;gap:0;margin-top:clamp(3rem,7vw,5rem);border-bottom:1px solid var(--line)}.privacy-page__sections section{display:grid;grid-template-columns:minmax(12rem,.38fr) minmax(0,1fr);gap:1.5rem clamp(2rem,6vw,5rem);border-top:1px solid var(--line);padding-block:clamp(1.75rem,4vw,2.75rem)}.privacy-page__sections h2{margin:0;font-size:clamp(1.25rem,3vw,1.8rem);line-height:1.2}.privacy-page__sections p,.privacy-page__sections ul{grid-column:2;margin:0;color:var(--muted);line-height:1.75}.privacy-page__sections ul{display:grid;gap:.8rem;padding-inline-start:1.2rem}.privacy-page__sections a,.privacy-page__provider-links a{color:var(--blue);font-weight:800;text-underline-offset:.2em}.privacy-page__provider-links{display:flex;flex-wrap:wrap;gap:.65rem 1.5rem}.privacy-page__updated{margin:1.5rem 0 0;color:var(--muted);font-size:.85rem}.error-page{min-height:calc(100vh - 12rem);display:grid;align-items:center;overflow:clip;background:radial-gradient(circle at 18% 42%,color-mix(in srgb,var(--blue) 16%,transparent),transparent 32rem),linear-gradient(135deg,color-mix(in srgb,var(--surface) 94%,transparent),var(--page))}.error-page__inner{position:relative;display:grid;grid-template-columns:minmax(10rem,.6fr) minmax(0,1fr);gap:clamp(2rem,8vw,8rem);align-items:center}.error-page__code{margin:0;color:color-mix(in srgb,var(--blue) 72%,var(--text));font-size:clamp(7rem,22vw,18rem);font-weight:950;line-height:.78;letter-spacing:-.08em}.error-page__content{min-width:0}.error-page h1{max-width:11ch;margin:.65rem 0 1.35rem;font-size:clamp(2.75rem,7vw,6rem);line-height:1.08;letter-spacing:-.035em}.error-page__content>p:not(.section-label){max-width:60ch;margin:.65rem 0 0;color:var(--muted);line-height:1.7}.error-page__actions{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center;margin-top:2rem}.case-study{background:var(--page)}.case-hero{position:relative;isolation:isolate;overflow:clip;min-height:44rem;display:grid;align-items:end;border-bottom:1px solid var(--line);padding-block:clamp(4.5rem,9vw,7rem) 4rem;background:radial-gradient(circle at 76% 30%,color-mix(in srgb,var(--project-accent) 18%,transparent),transparent 32rem),linear-gradient(120deg,color-mix(in srgb,var(--project-accent-2) 7%,transparent),transparent 48%)}.case-hero:before{position:absolute;z-index:-1;width:min(44rem,58vw);height:14rem;left:-8rem;bottom:-4rem;opacity:.32;background-image:radial-gradient(circle,color-mix(in srgb,var(--project-accent) 55%,transparent) 1px,transparent 1px);background-size:18px 18px;mask-image:radial-gradient(ellipse,#000,transparent 72%);content:""}.case-hero__inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);align-items:center}.case-hero__copy{min-width:0;display:grid;gap:1rem}.case-study .section-label{color:var(--project-accent-text)}.back-link{display:inline-flex;align-items:center;min-height:44px;width:fit-content;color:var(--muted);font-size:.9rem;font-weight:750;text-decoration:none}.back-link:hover{color:var(--text)}.case-hero h1{margin:0;font-size:clamp(3rem,4.5vw,4.5rem);line-height:1.06;letter-spacing:-.035em;text-shadow:0 18px 55px color-mix(in srgb,var(--project-accent) 14%,transparent)}.case-hero__summary,.case-hero__role{max-width:42rem;margin:0;color:var(--muted);font-size:1.05rem}.case-hero__role{color:var(--text);font-weight:800}.case-hero__figure{min-width:0;position:relative;margin:0}.case-hero__figure:before{position:absolute;z-index:-1;inset:8% -5% -7% 8%;border-radius:42% 58% 45% 55%;background:color-mix(in srgb,var(--project-accent) 18%,transparent);filter:blur(42px);content:""}.case-hero__media,.evidence__media,.project-image-trigger{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.case-hero__media,.evidence__media{width:100%;padding:0;color:inherit;cursor:zoom-in}.case-hero__media{aspect-ratio:var(--media-ratio, 16 / 9);border-color:color-mix(in srgb,var(--project-accent) 34%,var(--line));box-shadow:var(--shadow),0 0 55px color-mix(in srgb,var(--project-accent) 11%,transparent)}.case-hero__media img,.evidence__media img{width:100%;height:100%;object-fit:cover}.case-hero__media--contain{max-height:660px;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 28% 20%,color-mix(in srgb,var(--project-accent) 24%,transparent),transparent 45%),linear-gradient(145deg,color-mix(in srgb,var(--project-accent-2) 10%,var(--surface-strong)),var(--surface-strong))}.case-hero__media--contain img,.evidence__media--contain img{object-fit:contain}.media-caption-row{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem 1.25rem;margin-top:.8rem}.media-caption-row figcaption{min-width:0;margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.media-zoom-hint{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;min-height:28px;color:var(--project-accent-text, var(--blue));font-size:.76rem;font-weight:800;white-space:nowrap}.project-facts{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.75rem;margin:.5rem 0 0}.project-facts__item{min-width:0;border:1px solid color-mix(in srgb,var(--project-accent) 28%,var(--line));border-radius:var(--radius-small);background:color-mix(in srgb,var(--project-accent) 4%,var(--page));padding:1rem}.evidence{border-top:1px solid var(--line);padding-block:clamp(4.5rem,10vw,8rem)}.case-study .evidence:nth-of-type(2n){background:linear-gradient(110deg,color-mix(in srgb,var(--project-accent) 6%,transparent),transparent 48%),color-mix(in srgb,var(--surface) 48%,transparent)}.evidence__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);align-items:center}.evidence--end .evidence__content{order:2}.evidence--end .evidence__figure{order:1}.evidence__content,.evidence__text{min-width:0;display:grid;gap:1rem}.evidence__text{max-width:760px}.evidence--text .evidence__text{border-inline-start:4px solid var(--project-accent);padding-inline-start:clamp(1.25rem,3vw,2.25rem)}.evidence h2,.case-reflection h2{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.12;letter-spacing:-.02em}.evidence p,.case-reflection p{max-width:48rem;margin:0;color:var(--muted);font-size:1.02rem}.evidence__figure{min-width:0;margin:0}.evidence__media{aspect-ratio:var(--media-ratio, auto);border-color:color-mix(in srgb,var(--project-accent) 28%,var(--line));box-shadow:0 24px 70px #0000002e,0 0 48px color-mix(in srgb,var(--project-accent) 8%,transparent)}.evidence__media--contain{max-height:680px;padding:clamp(1rem,4vw,2.5rem)}.media-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start;margin-top:2.5rem}.media-pair figure{min-width:0;margin:0}.media-pair img{width:100%;height:auto}.project-image-trigger{width:100%;display:block;padding:0;color:inherit;cursor:zoom-in;box-shadow:0 20px 55px #00000029}[data-lightbox-trigger]{transition:border-color .22s ease,box-shadow .26s ease,transform .26s ease}[data-lightbox-trigger] img{transition:transform .28s ease}@media(hover:hover){.hero-project-tile:hover,.hero-project-tile:focus-visible{border-color:color-mix(in srgb,var(--project-accent) 70%,var(--line));box-shadow:0 22px 55px color-mix(in srgb,var(--project-accent) 20%,transparent);transform:translateY(-5px)}.hero-project-tile:hover .hero-project-tile__media img,.hero-project-tile:focus-visible .hero-project-tile__media img{transform:scale(1.045)}[data-lightbox-trigger]:hover img,[data-lightbox-trigger]:focus-visible img{transform:scale(1.018)}[data-lightbox-trigger]:hover,[data-lightbox-trigger]:focus-visible{border-color:color-mix(in srgb,var(--project-accent, var(--blue)) 70%,var(--line));box-shadow:0 24px 65px #0000003d,0 0 42px color-mix(in srgb,var(--project-accent, var(--blue)) 16%,transparent);transform:translateY(-3px)}}.image-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:#03050ad1;color:var(--text)}.image-lightbox[open]{display:grid;place-items:center}.image-lightbox::backdrop{background:transparent}.image-lightbox__panel{position:relative;width:fit-content;max-width:75vw;max-height:75dvh;overflow:hidden;border:1px solid color-mix(in srgb,var(--line-strong) 82%,transparent);border-radius:var(--radius);background:var(--surface-strong);box-shadow:0 30px 100px #00000094;transform-origin:center}.image-lightbox__panel img{--lightbox-zoom: 1;--lightbox-pan-x: 0px;--lightbox-pan-y: 0px;display:block;width:auto;max-width:75vw;height:auto;max-height:75dvh;object-fit:contain;cursor:zoom-in;transform:translate(var(--lightbox-pan-x),var(--lightbox-pan-y)) scale(var(--lightbox-zoom));transform-origin:center;transition:transform .18s ease;user-select:none;-webkit-user-drag:none;touch-action:none}.image-lightbox__panel img[data-zoomed=true]{cursor:grab}.image-lightbox__panel img[data-zoomed=true]:active{cursor:grabbing;transition-duration:0ms}.image-lightbox__controls{position:absolute;top:.75rem;left:.75rem;z-index:2;display:inline-flex;align-items:center;gap:.35rem;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;padding:.3rem;background:#05080fd1;box-shadow:0 8px 24px #00000059;backdrop-filter:blur(14px)}.image-lightbox__zoom-button,.image-lightbox__zoom-reset{min-width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:#fff;cursor:pointer;font:inherit;font-weight:850}.image-lightbox__zoom-button{font-size:1.25rem}.image-lightbox__zoom-reset{min-width:4rem;padding-inline:.7rem;background:#ffffff17;font-size:.82rem}.image-lightbox__zoom-button:hover,.image-lightbox__zoom-button:focus-visible,.image-lightbox__zoom-reset:hover,.image-lightbox__zoom-reset:focus-visible{background:#ffffff29}.image-lightbox__zoom-button:disabled{opacity:.42;cursor:not-allowed}.image-lightbox__close{position:absolute;z-index:2;top:.75rem;right:.75rem;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgb(255 255 255 / 28%);border-radius:50%;background:#05080fd1;box-shadow:0 8px 24px #00000059;color:#fff;cursor:pointer}.image-lightbox__close span{font-size:1.8rem;font-weight:350;line-height:1;transform:translateY(-1px)}.media-pair__item--contain{padding:0}.media-pair__item--contain .project-image-trigger{padding:1rem}.media-pair__item--contain .project-image-trigger img{max-height:650px;object-fit:contain}.case-reflection{border-top:1px solid var(--line);padding-block:clamp(5rem,10vw,8rem);background:radial-gradient(circle at 82% 20%,color-mix(in srgb,var(--project-accent) 9%,transparent),transparent 28rem),var(--surface)}.case-reflection__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem}.case-reflection article{min-width:0;display:grid;gap:1rem;align-content:start;border:1px solid color-mix(in srgb,var(--project-accent) 24%,var(--line));border-radius:var(--radius);padding:clamp(1.4rem,3vw,2rem);background:linear-gradient(145deg,color-mix(in srgb,var(--project-accent) 5%,var(--surface-raised)),var(--surface-raised))}.case-reflection h2{font-size:clamp(1.5rem,3vw,2.15rem)}.project-pagination{border-top:1px solid var(--line);padding-block:clamp(2rem,5vw,3.5rem);background:var(--page)}.project-pagination__inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-pagination__link{min-width:0;display:flex;align-items:center;gap:1rem;border:1px solid color-mix(in srgb,var(--project-accent) 25%,var(--line));border-radius:var(--radius);padding:1.1rem 1.25rem;background:color-mix(in srgb,var(--project-accent) 5%,var(--surface));text-decoration:none;transition:border-color .18s ease,transform .18s ease}.project-pagination__link--next{justify-content:flex-end;text-align:right}.project-pagination__link>span:first-child:last-child,.project-pagination__link>span[aria-hidden=true]{flex:0 0 auto;color:var(--project-accent);font-size:1.4rem}.project-pagination__link span:not([aria-hidden=true]){min-width:0;display:grid}.project-pagination__link small{color:var(--muted);font-size:.75rem}.project-pagination__link strong{overflow-wrap:normal;font-size:1rem}.project-pagination__link:hover,.project-pagination__link:focus-visible{border-color:var(--project-accent);transform:translateY(-2px)}.site-footer{border-top:1px solid var(--line);color:var(--muted)}.site-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.4rem;font-size:.88rem}.site-footer p{margin:0}.site-footer__meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem 1.25rem}.site-footer__meta a{color:var(--muted);font-weight:750;text-underline-offset:.2em}.site-footer__meta a:hover,.site-footer__meta a:focus-visible{color:var(--text)}@media(max-width:1279px){.evidence__grid{grid-template-columns:1fr}.evidence--end .evidence__content,.evidence--end .evidence__figure{order:initial}}@media(max-width:980px){.hero__inner,.contact__inner{grid-template-columns:1fr}.capability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero__showcase{width:min(100%,780px)}.capability-card{grid-template-columns:1fr}.capability-card span{grid-row:auto}.project-card,.project-card:nth-child(2n){grid-template-columns:1fr}.project-card:nth-child(2n) .project-card__figure{order:initial;border-inline-start:0}.project-card__figure{border-inline-end:0;border-bottom:1px solid color-mix(in srgb,var(--project-accent) 26%,var(--line))}.project-card__media{min-height:clamp(300px,60vw,520px)}.case-hero{min-height:auto}.case-hero__inner{grid-template-columns:1fr}.case-hero__copy{max-width:780px}.case-hero__figure{width:100%}}@media(max-width:760px){html{scroll-behavior:auto}.site-footer__inner{align-items:center;flex-direction:column;text-align:center}.site-footer__meta{justify-content:center}.site-header__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.35rem .75rem;min-height:0;padding-block:.4rem .5rem}.site-nav{display:contents}.site-nav__links{grid-column:1 / -1;grid-row:2;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:visible;border:1px solid var(--line);border-radius:999px;padding:.2rem;background:color-mix(in srgb,var(--surface) 76%,transparent);box-shadow:inset 0 1px color-mix(in srgb,#ffffff 12%,transparent)}.site-nav__links>a,.work-menu__link{position:relative;min-width:0;min-height:44px;border-radius:999px;padding-inline:.5rem}.work-menu{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 44px}.work-menu__toggle{width:44px}.work-menu__panel{top:calc(100% + .65rem)}.site-nav__links>a:hover,.site-nav__links>a:focus-visible,.work-menu__link:hover,.work-menu__link:focus-visible{background:var(--surface-strong)}.site-actions{grid-column:2;grid-row:1;width:auto;gap:.4rem;justify-self:end}.language-switch{gap:0;border:1px solid var(--line);border-radius:999px;padding:.1rem;background:color-mix(in srgb,var(--surface) 76%,transparent)}.language-switch a{min-width:44px;min-height:44px;border-radius:999px;padding-inline:.35rem}.language-switch a[aria-current=true]{background:var(--surface-strong);text-decoration:none}.language-switch__long{display:none}.language-switch__short{display:inline}.theme-switch{background:color-mix(in srgb,var(--surface) 76%,transparent)}.hero{min-height:auto}.hero__inner{gap:2.5rem;padding-block:4rem}.hero__content{text-align:center}.hero__title{max-width:8ch;margin-inline:auto;font-size:clamp(3.5rem,18vw,6rem);line-height:1.06}.hero__role{margin-inline:auto}.hero__intro,.hero__context{margin-inline:auto;text-align:left}.hero__actions{justify-content:center}.hero__showcase-heading{text-align:center}.capability-grid,.project-card__facts,.about-strip__inner,.contact-form,.media-pair,.timeline-grid{grid-template-columns:1fr}.privacy-page__sections section{grid-template-columns:1fr}.privacy-page__sections p,.privacy-page__sections ul{grid-column:1}.error-page__inner{grid-template-columns:1fr;gap:2rem}.error-page__code{font-size:clamp(6rem,35vw,10rem);text-align:center}.error-page__content{text-align:center}.error-page__content>p:not(.section-label){margin-inline:auto;text-align:left}.error-page__actions{justify-content:center}.timeline-card{grid-template-columns:1fr}.timeline-card__period{grid-column:1;grid-row:auto;border-inline-end:0;border-bottom:1px solid var(--line);padding:0 0 .65rem}.timeline-card h3,.timeline-card p:not(.timeline-card__period){grid-column:1}.capability-card{grid-template-columns:2.5rem minmax(0,1fr)}.capability-card span{grid-row:1 / 3}.project-card__media{min-height:min(105vw,460px)}.project-card__content{padding:1.5rem}.about-strip__portrait-wrap{width:min(68vw,260px);justify-self:center}.profile-group__heading,.portfolio-work .section-heading,.contact__content .section-heading{justify-items:center;margin-inline:auto;text-align:center}.portfolio-work .section-heading>p:not(.section-label),.contact__content .section-heading>p:not(.section-label){margin-inline:auto;text-align:left}.about-strip__approach ol{grid-template-columns:1fr}.contact__inner{gap:2.5rem}.contact__direct{text-align:center}.contact__links{justify-content:center}.form-field:nth-of-type(3),.form-field:nth-of-type(4),.contact-form__captcha,.contact-form__privacy,.contact-form__status,.contact-form .button{grid-column:auto}.contact-form .button{width:100%}.case-hero{padding-block:4rem 2.5rem}.case-hero__media--contain{max-height:560px}.evidence__media--contain{max-height:580px}.project-pagination__inner{grid-template-columns:1fr}}@media(max-width:480px){.privacy-page h1{font-size:clamp(2rem,9.5vw,2.75rem)}.case-hero h1{font-size:clamp(2.5rem,13vw,3rem)}}@media(max-width:440px){.container{width:min(calc(100% - 1.25rem),var(--content))}.site-nav__links>a,.work-menu__link,.language-switch a{font-size:.82rem}.contact-form__captcha{min-height:144px}.hero__title{font-size:clamp(3rem,17vw,4.5rem)}.hero__showcase{border-radius:calc(var(--radius) + 8px);padding:.75rem}.hero__project-grid{gap:.5rem}.hero-project-tile__meta{grid-template-columns:1fr;gap:.2rem;padding:.65rem}.hero-project-tile__meta strong{font-size:.74rem}.hero__actions .button{width:100%}.project-card__figure,.project-card__media--contain{padding:.75rem}.project-card h3{font-size:2rem}.project-card__topline{align-items:flex-start}.media-caption-row{display:grid;gap:.45rem}}@media(prefers-reduced-motion:reduce){.project-card:after{transform:scaleX(1)}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
