@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--blue:#2858ed;--ink:#132346;--muted:#6b7486;--line:#e2e6ed;--soft:#f4f7fb;--font:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#fff;font-family:var(--font);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,summary,textarea{outline-offset:5px}button{cursor:pointer}header,main,footer{max-width:1600px;margin:auto}.header{height:108px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--line)}.brand{font-family:Manrope,Arial,sans-serif;font-size:29px;font-weight:800;letter-spacing:-1.5px;display:inline-flex;align-items:baseline}.brand span{font-weight:450}.brand i{width:7px;height:7px;background:var(--blue);border-radius:50%;margin-left:5px}.header nav{display:flex;gap:35px;font-size:13px}.header nav a:hover,footer a:hover{color:var(--blue)}.nav-contact{font-size:13px;font-weight:600}.nav-contact span{margin-left:20px;color:var(--blue);font-size:20px}.intro{padding:66px 5% 48px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;display:flex;align-items:center;gap:10px}.dot{width:6px;height:6px;background:var(--blue);border-radius:50%}h1,h2,h3,p{margin:0}h1,h2{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(38px,4.8vw,73px);line-height:1.13;letter-spacing:-3.5px;margin:25px 0 30px;font-weight:600}h1>span{color:var(--blue)}.intro-bottom{display:flex;align-items:end;justify-content:space-between}.intro p{font-size:14px;line-height:1.8;color:var(--muted)}.scroll-link{font-size:12px}.scroll-link span{margin-left:24px;font-size:21px}.people{margin:0 5%;display:grid;grid-template-columns:1fr 1fr;gap:18px}.person{position:relative;border-radius:8px;overflow:hidden}.stepan{background:#edf2fc}.ondra{background:var(--blue);color:white}.person-top{display:flex;justify-content:space-between;align-items:center;padding:25px 28px;font-size:10px;letter-spacing:1.2px}.small-star{font-size:25px}.art{height:245px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.art-label{position:absolute;left:28px;bottom:22px;font-size:8px;letter-spacing:2.3px;opacity:.55}.camera{width:205px;height:131px;border-radius:18px;background:linear-gradient(145deg,#fcfdff,#c8d6f4);box-shadow:15px 25px 32px #15387a24,inset 0 2px 1px #fff;transform:rotate(-13deg);position:relative;z-index:1;border:1px solid #becded}.viewfinder{position:absolute;top:-19px;left:58px;width:71px;height:27px;background:linear-gradient(145deg,#f6f9ff,#c8d6ef);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);border-radius:8px}.camera-grip{position:absolute;left:10px;top:12px;bottom:12px;width:37px;border-radius:10px;background:repeating-linear-gradient(90deg,#b8c8e2 0 1px,#c9d6ec 1px 3px)}.lens{position:absolute;left:66px;top:15px;width:108px;height:108px;border-radius:50%;background:linear-gradient(140deg,#7897dc,#e5edff);box-shadow:6px 8px 10px #19377932;display:grid;place-items:center;border:3px solid #c2d2f7}.lens-inner{width:85px;height:85px;border:8px solid #284786;border-radius:50%;background:radial-gradient(circle at 65% 32%,#7599f3,#15346c 35%,#0c1c40 67%);box-shadow:0 0 0 3px #93abe0,inset 0 0 0 2px #081f50;display:grid;place-items:center}.lens-inner i{width:35px;height:35px;border:1px solid #89b3f055;border-radius:50%;background:linear-gradient(135deg,#7c94f075,transparent)}.camera-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--blue);right:16px;top:15px}.orbit{position:absolute;border:1px solid #c5d4ef;border-radius:50%;width:370px;height:185px;transform:rotate(-25deg)}.orbit-two{transform:rotate(35deg);width:320px;height:225px;border-style:dashed;opacity:.6}.sound-circle{width:245px;height:245px;border:1px solid #ffffff20;border-radius:50%;position:absolute;box-shadow:0 0 0 35px #ffffff04,0 0 0 70px #ffffff04}.wave{height:185px;display:flex;align-items:center;gap:6px;transform:rotate(-9deg)}.wave i{width:5px;height:var(--h);background:linear-gradient(#deefff,#93c3ff);border-radius:5px;box-shadow:0 4px 10px #102da315;animation:wave 5s ease-in-out infinite;animation-delay:var(--d)}@keyframes wave{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.7)}}.person-content{padding:22px 28px 0}.person-role{font-size:9px;letter-spacing:1.4px;opacity:.65;margin-bottom:12px}.person h2{font-size:36px;letter-spacing:-1.4px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.person h2 span{font-family:Arial;font-size:27px;font-weight:400;opacity:.75}.person-content>p:not(.person-role){font-size:14px;line-height:1.75;margin-top:14px;opacity:.75}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:23px}.tags span{font-size:10px;border:1px solid #b6c3dc;border-radius:20px;padding:7px 12px}.ondra .tags span{border-color:#ffffff45}.person-cta{margin-top:31px;padding:19px 0;border-top:1px solid #152a4e20;display:flex;justify-content:space-between;font-size:12px}.ondra .person-cta{border-color:#ffffff30}.person-cta span{font-size:18px}.person-cta:hover{padding-left:8px;padding-right:8px;transition:.2s}.bridge{margin:0 5%;display:flex;justify-content:space-between;padding:27px 0;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}.bridge i{font-size:20px;margin-left:25px;color:var(--blue);font-style:normal}.section{padding:100px 5%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:45px}.section h2{font-size:clamp(34px,3.6vw,53px);line-height:1.16;letter-spacing:-2px;font-weight:550;margin-top:20px}.section h2 em{font-style:normal;color:var(--blue)}.section-heading>p{color:var(--muted);line-height:1.8;font-size:14px;padding-bottom:4px;min-width:310px}.services{display:grid;grid-template-columns:1fr 1fr;column-gap:7%;padding-bottom:50px}.services .section-heading{display:block;margin:0}.services .section-heading>p{margin-top:28px}.service-list details{border-bottom:1px solid var(--line)}.service-list details:first-child{border-top:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;gap:18px;padding:23px 0;cursor:pointer}summary::-webkit-details-marker{display:none}.number{font-size:10px;color:var(--muted)}summary h3{font-size:19px;font-weight:500;letter-spacing:-.5px}.plus{margin-left:auto;font-size:25px;color:var(--blue);font-weight:400}details[open] .plus{transform:rotate(45deg)}.detail{padding:0 0 26px 32px;color:var(--muted);font-size:13px;line-height:1.8}.detail .tags{margin:18px 0}.detail .tags span{padding:3px 10px;font-size:10px}.text-link{display:inline-block;color:var(--blue);font-size:12px;margin-top:15px}.text-link:hover{text-decoration:underline}.subtle-note{font-size:11px;color:var(--muted);line-height:1.8;margin-top:30px}.ondrej-section{padding-top:75px;padding-bottom:100px}.projects{background:var(--soft)}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{padding:10px 17px;border:1px solid #dce2ed;border-radius:25px;font-size:11px;background:transparent;color:var(--muted)}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 20px}.project[hidden]{display:none}.project-visual{height:190px;background:#dde5ee;border-radius:5px;position:relative;overflow:hidden;display:grid;place-items:center}.mini-browser{background:white;width:76%;height:126px;border-radius:4px 4px 0 0;transform:translateY(20px) rotate(-6deg);box-shadow:0 8px 25px #12204b20;transition:transform .4s;padding:9px 11px;overflow:hidden}.project:hover .mini-browser{transform:translateY(12px) rotate(0)}.mini-browser>span{font-size:7px;letter-spacing:1px;color:#a5abba}.mini-browser small{font-size:5px;float:right;color:#9ba3b2;margin-top:2px}.mini-word{font-size:23px;font-family:Manrope,Arial,sans-serif;font-weight:800;letter-spacing:-1px;margin:15px 0 8px}.mini-line{width:40%;height:3px;background:currentColor;opacity:.2}.mini-boxes{display:flex;gap:5px;margin-top:15px}.mini-boxes i{width:33%;height:35px;background:currentColor;opacity:.12}.pv-0{background:#d9dee7}.pv-0 .mini-browser{background:#181a20;color:#f5f6f9}.pv-1{background:#dce5d9}.pv-1 .mini-browser{color:#324c36;background:#f8faf5}.pv-2{background:#d8e4ee}.pv-2 .mini-browser{background:#203c4e;color:#fff}.pv-3{background:#f0e5d7}.pv-3 .mini-browser{color:#db7a28}.pv-4{background:#dae2f2}.pv-4 .mini-browser{color:#3055ae}.pv-5{background:#e4def5}.pv-5 .mini-browser{background:#282047;color:#cbff77}.pv-6{background:#d9ece7}.pv-6 .mini-browser{color:#258a76}.pv-7{background:#e9e4df}.pv-7 .mini-browser{color:#353128}.project-arrow{position:absolute;right:12px;top:12px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#ffffffaa;font-size:15px}.project-meta{margin-top:15px}.project-meta h3{font-size:13px;font-weight:600}.project-meta>span{font-size:10px;color:var(--muted);display:block;margin-top:5px}.about{padding-top:110px;padding-bottom:110px}.about h2{font-size:clamp(42px,5.7vw,83px);margin-top:27px;letter-spacing:-3.5px}.about h2>span{color:#9aa4b7}.about-bottom{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:40px;align-items:center}.monogram{font-size:87px;font-weight:700;letter-spacing:-13px;position:relative;color:var(--blue)}.monogram>span{font-weight:400}.monogram i{font-style:normal;font-size:35px;position:relative;top:-35px;left:20px}.about-bottom p{font-size:14px;color:var(--muted);line-height:1.85;margin:12px 0}.contact{background:#edf2fc;display:grid;grid-template-columns:1fr 1fr;gap:7%}.contact>div>p{color:var(--muted);font-size:13px;line-height:1.9;margin-top:28px}.contact-sign{font-size:21px;font-family:Manrope,Arial,sans-serif;letter-spacing:-.8px;margin-top:55px}.contact-sign span{margin-left:35px;color:var(--blue)}fieldset{border:0;padding:0;margin:0 0 26px}legend{font-size:11px;margin-bottom:12px}form label{font-size:11px;display:block}input,textarea{display:block;width:100%;border:0;border-bottom:1px solid #bbc8df;background:transparent;border-radius:0;padding:12px 0;color:var(--ink);font-size:13px}input::placeholder,textarea::placeholder{color:#8b97ac}textarea{resize:vertical}.recipient-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px}.recipient-switch label{cursor:pointer;position:relative}.recipient-switch input{position:absolute;opacity:0;width:1px;height:1px}.recipient-switch span{display:block;border:1px solid #cad4e7;border-radius:5px;padding:14px;font-size:12px;font-weight:600}.recipient-switch small{display:block;font-size:8px;font-weight:400;margin-top:5px;color:var(--muted)}.recipient-switch input:checked+span{border-color:var(--blue);background:#ffffffbb;color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.recipient-switch input:focus-visible+span{outline:2px solid var(--blue)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:23px;margin-bottom:25px}.consent{display:flex;gap:8px;line-height:1.6;color:var(--muted);font-size:9px;margin-top:20px}.consent input{width:13px;flex-shrink:0;margin-top:3px;accent-color:var(--blue)}.consent button{border:0;background:none;padding:0;color:var(--blue);font-size:9px;text-decoration:underline}.submit{width:100%;display:flex;justify-content:space-between;padding:17px 20px;background:var(--blue);color:white;border:0;border-radius:4px;margin-top:20px;font-size:12px}.submit:hover{background:#1946ce}.submit:disabled{opacity:.6;cursor:wait}.form-status{font-size:10px;line-height:1.7;color:var(--muted);margin-top:12px}.trap{position:absolute;left:-10000px}footer{padding:34px 5%;display:flex;align-items:center;justify-content:space-between}footer>span,footer>a:last-child{font-size:10px;color:var(--muted)}footer .brand{font-size:23px}dialog{max-width:520px;border:1px solid var(--line);border-radius:12px;padding:40px;color:var(--ink)}dialog::backdrop{background:#10204077;backdrop-filter:blur(4px)}dialog h2{font-size:25px;margin-bottom:20px}dialog p{line-height:1.8;font-size:13px;margin-top:15px}.dialog-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:25px;color:var(--muted)}.cookie-panel{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(920px,94vw);padding:20px;background:white;box-shadow:0 5px 40px #15234525;border:1px solid var(--line);z-index:9;display:flex;align-items:center;gap:16px;border-radius:8px}.cookie-panel[hidden]{display:none}.cookie-panel strong{font-size:12px}.cookie-panel p{font-size:10px;color:var(--muted);margin-top:5px}.cookie-panel>div{margin-right:auto}.cookie-panel button{font-size:10px;padding:12px;border:1px solid var(--line);border-radius:4px;background:white;white-space:nowrap}.cookie-panel .cookie-yes{background:var(--blue);color:white;border-color:var(--blue)}
@media(min-width:1600px){.header{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:1000px){.header nav{gap:20px}.person h2{font-size:29px}.tags span{font-size:9px;padding:6px 9px}.project-grid{grid-template-columns:repeat(2,1fr)}.project-visual{height:230px}.mini-browser{max-width:240px;height:160px}.mini-word{font-size:29px}.section-heading>p{min-width:0}.services{column-gap:5%}.section{padding-top:75px;padding-bottom:75px}.contact{gap:5%}}@media(max-width:650px){.header{height:80px;padding:0 6%}.brand{font-size:25px}.header nav{display:none}.nav-contact{font-size:11px}.nav-contact span{margin-left:8px}.intro{padding:45px 6% 32px}h1{font-size:41px;letter-spacing:-2.2px;margin-top:22px}.eyebrow{font-size:8px}.intro-bottom{display:block}.intro p{font-size:12px}.scroll-link{display:inline-block;margin-top:23px;font-size:11px}.people{margin:0 6%;grid-template-columns:1fr;gap:16px}.person-top{padding:22px 24px}.art{height:220px}.person-content{padding:18px 24px 0}.person h2{font-size:33px}.person-role{font-size:8px}.person-content>p:not(.person-role){font-size:13px}.person-cta{margin-top:25px}.bridge{margin:0 6%;font-size:10px}.bridge>span:last-child{display:none}.section{padding:60px 6%}.section h2{font-size:38px;letter-spacing:-1.8px}.services{display:block}.services .section-heading{margin-bottom:30px}.services .section-heading>p{font-size:13px;margin-top:20px}.subtle-note{margin-top:20px}.section-heading{display:block;margin-bottom:30px}.filters{margin-top:25px}.filters button{font-size:10px;padding:9px 15px}.project-grid{gap:25px 12px}.project-visual{height:150px}.mini-browser{height:110px;padding:7px}.mini-word{font-size:18px;margin-top:15px}.mini-browser small{display:none}.project-meta h3{font-size:11px}.project-meta>span{font-size:9px}.project-arrow{width:22px;height:22px;right:8px;top:8px}.about h2{font-size:46px;letter-spacing:-2.5px}.about-bottom{display:block;margin-top:20px}.monogram{font-size:65px;margin-bottom:15px}.about-bottom p{font-size:13px}.contact{display:block}.contact-sign{margin:25px 0 40px}.contact>div>p{font-size:12px}.form-row{gap:15px}.recipient-switch span{padding:12px}.recipient-switch small{font-size:8px}footer{flex-wrap:wrap;padding:30px 6%;gap:23px}footer>span{order:3;width:100%;font-size:9px}.cookie-panel{flex-wrap:wrap;padding:16px;gap:10px;bottom:10px}.cookie-panel>div{width:100%}.cookie-panel button{flex:1}dialog{margin:auto 6%;padding:30px}.wave{gap:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wave i{animation:none}*{transition:none!important}}

[hidden]{display:none!important}

/* Real project screenshots — locally stored, including for file:// preview. */
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px}
.screenshot-visual{height:auto;display:block;padding:22px 22px 0;border-radius:9px;overflow:hidden}
.browser-bar{position:relative;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:6px 6px 0 0;height:30px;padding:0 12px;color:#8490a3;font-size:8px;box-shadow:0 -3px 20px #14244706}
.browser-dots{display:flex;gap:4px;min-width:30px}.browser-dots i{width:5px;height:5px;border-radius:50%;background:#dae0e9}.browser-dots i:first-child{background:#f4a99f}.browser-dots i:nth-child(2){background:#efd29b}.browser-dots i:last-child{background:#afd6b7}
.screenshot-window{position:relative;aspect-ratio:1265/712;overflow:hidden;background:white;box-shadow:0 10px 30px #10204012}
.screenshot-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .65s cubic-bezier(.2,.65,.25,1)}
.project-visit{position:absolute;bottom:16px;right:16px;padding:10px 15px;background:white;color:var(--ink);font-size:10px;border-radius:30px;box-shadow:0 4px 20px #12234520;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}
.project:hover .screenshot-window img{transform:scale(1.025)}.project:hover .project-visit,.project:focus-visible .project-visit{opacity:1;transform:none}
.project-meta{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:17px;padding:0 2px}.project-meta h3{font-size:15px}.project-meta>span{font-size:10px;margin:0;text-align:right}
@media(min-width:1100px){.projects .section-heading{margin-bottom:50px}.project-grid{gap:48px 32px}.screenshot-visual{padding:28px 28px 0}}
@media(max-width:650px){.project-grid{grid-template-columns:1fr;gap:29px}.screenshot-visual{padding:17px 17px 0}.browser-bar{height:25px;font-size:7px;padding:0 9px}.browser-dots i{width:4px;height:4px}.project-meta h3{font-size:13px}.project-meta>span{font-size:9px}.project-visit{opacity:1;transform:none;font-size:8px;bottom:10px;right:10px;padding:8px 11px}}
@media(hover:none){.project-visit{opacity:1;transform:none}}

/* Compact photography selection. */
.photo-section{padding-top:0;padding-bottom:55px}.photo-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:20px}.photo-heading h3{font-family:Manrope,Arial,sans-serif;font-size:24px;letter-spacing:-.8px;font-weight:550;margin-top:10px}.photo-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.photo-heading .text-link{font-size:11px;margin:0 0 3px}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo-card{position:relative;display:block;aspect-ratio:3/2;border:0;padding:0;border-radius:5px;overflow:hidden;background:#14223a;text-align:left;color:#fff;isolation:isolate}.photo-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s}.photo-shade{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#08101eb0)}.photo-caption{position:absolute;left:13px;right:13px;bottom:13px}.photo-caption small{display:block;font-size:7px;letter-spacing:.8px;text-transform:uppercase;color:#ffffffba;margin-bottom:4px}.photo-caption strong{display:block;font-size:12px;font-weight:500}.photo-expand{position:absolute;right:10px;top:10px;width:24px;height:24px;border:1px solid #ffffff55;border-radius:50%;display:grid;place-items:center;background:#15213a25;font-size:13px}.photo-card:hover img{transform:scale(1.045)}.photo-card:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.photo-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;gap:20px}.photo-footer>span{font-size:9px;color:var(--muted)}.photo-more{background:none;border:0;padding:5px 0;font-size:11px;color:var(--blue)}.photo-more span{margin-left:14px;font-size:17px}.photo-viewer{width:96vw;max-width:1500px;height:94vh;max-height:1000px;margin:auto;padding:35px 65px 20px;background:#0c1220;border:0;border-radius:8px;overflow:hidden;color:white}.photo-viewer::backdrop{background:#060c15e8;backdrop-filter:blur(8px)}.photo-viewer figure{height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}.photo-viewer figure img{max-height:calc(100% - 40px);max-width:100%;width:auto;height:auto;object-fit:contain}.photo-viewer figcaption{font-size:12px;text-align:center;color:#c1cadb;line-height:1.6}.photo-viewer button{position:absolute;background:#ffffff0d;border:1px solid #ffffff25;color:white;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;font-size:20px;z-index:1}.photo-close{right:14px;top:12px}.photo-prev{left:14px;top:50%}.photo-next{right:14px;top:50%}.photo-viewer button:hover{background:#ffffff25}@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card{aspect-ratio:1.8}}@media(max-width:650px){.photo-section{padding-top:0;padding-bottom:35px}.photo-heading{display:block;margin-bottom:17px}.photo-heading h3{font-size:22px}.photo-heading .text-link{margin-top:12px}.photo-grid{gap:9px}.photo-card{aspect-ratio:3/2}.photo-caption{left:10px;right:10px;bottom:10px}.photo-caption strong{font-size:11px}.photo-caption small{font-size:6px;letter-spacing:.5px}.photo-expand{width:22px;height:22px;right:8px;top:8px}.photo-footer{gap:12px;flex-wrap:wrap}.photo-footer>span{font-size:8px}.photo-more{font-size:10px}.photo-viewer{width:100vw;height:100dvh;max-height:none;max-width:none;border-radius:0;padding:55px 12px 80px}.photo-prev,.photo-next{top:auto!important;bottom:22px}.photo-viewer figcaption{font-size:10px}.photo-prev{left:calc(50% - 48px)}.photo-next{right:calc(50% - 48px)}}

/* Frameless full-screen photo viewer; only the image sits on the backdrop. */
dialog.photo-viewer{inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
dialog.photo-viewer::backdrop{background:rgba(4,8,15,.94);backdrop-filter:blur(6px)}
.photo-viewer figure{position:absolute;inset:42px 65px 48px;display:flex;align-items:center;justify-content:center;margin:0;gap:0}
.photo-viewer figure img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border:0;border-radius:0;box-shadow:none;background:transparent}
.photo-viewer figcaption{position:fixed;bottom:16px;left:80px;right:80px;color:#c1cadb;font-size:11px;text-align:center;pointer-events:none}
.photo-viewer button{width:44px;height:44px;background:transparent;border:0;border-radius:0;color:#e4e8f1;font-size:26px;text-shadow:0 1px 8px #000;transition:color .2s}
.photo-viewer button:hover{background:transparent;color:white}.photo-close{right:12px;top:8px}.photo-prev{left:10px;top:calc(50% - 22px)}.photo-next{right:10px;top:calc(50% - 22px)}
@media(max-width:650px){.photo-viewer figure{inset:58px 10px 83px}.photo-viewer figcaption{bottom:64px;left:15px;right:15px;font-size:10px}.photo-prev,.photo-next{top:auto!important;bottom:12px}.photo-prev{left:calc(50% - 54px)}.photo-next{right:calc(50% - 54px)}.photo-close{right:8px;top:7px}}

/* Compact website selection mirrors the photography gallery. */
.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 12px}.project{min-width:0}.screenshot-visual{padding:0;border-radius:5px;aspect-ratio:3/2;background:#e4eaf3}.browser-bar{height:23px;font-size:7px;padding:0 8px;border-radius:0;gap:5px}.browser-bar>span:nth-child(2){overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.browser-dots{min-width:22px;gap:3px}.browser-dots i{width:4px;height:4px}.screenshot-window{aspect-ratio:auto;height:calc(100% - 23px);box-shadow:none}.screenshot-window img{object-fit:cover;object-position:top}.project-meta{display:block;margin-top:10px;padding:0}.project-meta h3{font-size:12px;font-weight:500;line-height:1.5}.project-meta>span{display:block;text-align:left;font-size:9px;margin-top:3px}.project-visit{font-size:8px;padding:7px 10px;right:8px;bottom:8px}.project-footer{padding-top:20px}.photo-viewer figure{height:auto}#project-full-caption{pointer-events:auto;display:flex;justify-content:center;align-items:center;gap:20px}#project-live-link{color:#fff;text-decoration:underline;text-underline-offset:4px;font-size:11px}#project-live-link:hover{color:#9cb9ff}
@media(min-width:1100px){.project-grid{gap:24px 12px}.screenshot-visual{padding:0}}
@media(max-width:900px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screenshot-visual{aspect-ratio:1.8}}
@media(max-width:650px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 9px}.screenshot-visual{aspect-ratio:3/2;padding:0}.browser-bar{height:20px;font-size:6px;padding:0 6px}.screenshot-window{height:calc(100% - 20px)}.project-meta h3{font-size:11px}.project-meta>span{font-size:8px}.project-visit{font-size:7px;padding:6px 8px;right:6px;bottom:6px}#project-full-caption{flex-direction:column;gap:6px;bottom:60px}#project-live-link{font-size:10px}}

/* Visible expand controls shared by both galleries. */
.photo-footer{padding-top:22px;align-items:center}
.photo-more{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding:11px 18px;border:1px solid var(--blue);border-radius:6px;background:var(--blue);color:#fff;font-size:13px;font-weight:600;line-height:1.4;box-shadow:0 4px 12px #2858ed1a;transition:background .2s,box-shadow .2s}
.photo-more span{display:grid;place-items:center;flex-shrink:0;margin:0;width:24px;height:24px;border-radius:50%;background:#ffffff24;font-size:22px;font-weight:400;line-height:1}
.photo-more:hover{background:#1946ce;border-color:#1946ce;box-shadow:0 5px 16px #2858ed30}
.photo-more:focus-visible{outline:3px solid #96b6ff;outline-offset:4px}
.photo-more[aria-expanded="true"]{background:#edf2ff;color:var(--blue);border-color:#b5c8fc;box-shadow:none}
.photo-more[aria-expanded="true"] span{background:#2858ed12}
.photo-more[aria-expanded="true"]:hover{background:#e0e9ff}
@media(max-width:650px){.photo-footer{gap:16px}.photo-more{width:100%;font-size:13px;min-height:48px;order:-1}.photo-footer>span{width:100%;text-align:center}}

/* Brand-led introduction and borderless pinned navigation. */
.header{position:sticky;top:0;z-index:50;height:88px;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding-left:max(5%,calc((100vw - 1440px)/2));padding-right:max(5%,calc((100vw - 1440px)/2))}
.header nav a{padding:12px 0}.person h2{font-size:clamp(25px,2.65vw,38px);letter-spacing:-1.3px;gap:12px}.person h2 span{flex-shrink:0}.recipient-switch small{font-size:9px}.recipient-switch span{font-size:11px}
@media(min-width:1600px){.header{border:0}}
@media(max-width:900px){.person h2{font-size:27px}.header nav{gap:23px}}
@media(max-width:650px){html{scroll-padding-top:130px}.header{height:auto;min-height:108px;display:flex;flex-wrap:wrap;align-content:center;row-gap:9px;padding:14px 6% 10px}.header nav{display:flex;order:3;width:100%;justify-content:space-between;gap:15px;font-size:11px}.header nav a{padding:6px 0}.header .brand{font-size:25px}.nav-contact{font-size:11px}.person h2{font-size:30px;letter-spacing:-1.2px}.intro h1{font-size:clamp(32px,8.7vw,48px);letter-spacing:-1.8px}.intro .eyebrow{font-size:7px;letter-spacing:1.3px}.recipient-switch span{font-size:10px}.recipient-switch small{font-size:8px}}

/* Owned software product: idea, development and website presented together. */
.product-spotlight{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:45px;padding:38px;border:1px solid #dce5f8;border-radius:8px;background:linear-gradient(120deg,#edf3ff,#f8faff);margin:0 0 36px;overflow:hidden}.product-story .eyebrow{font-size:8px;letter-spacing:1.6px}.product-story h3{font-family:Manrope,Arial,sans-serif;font-size:42px;font-weight:650;letter-spacing:-2px;margin:19px 0 21px;color:var(--blue)}.product-story h3>span{display:block;font-size:20px;font-weight:500;letter-spacing:-.6px;line-height:1.4;color:var(--ink);margin-top:7px}.product-story>p{font-size:12px;color:var(--muted);line-height:1.9;margin-top:12px}.product-scope{display:flex;flex-wrap:wrap;gap:12px;margin:23px 0}.product-scope>span{font-size:8px;color:#7c93bc;display:flex;gap:6px}.product-scope strong{font-size:9px;color:var(--ink);font-weight:500}.product-link{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border-radius:5px;background:var(--blue);color:#fff;padding:12px 16px;font-size:11px}.product-link:hover{background:#1946ce}.product-story .product-roadmap{font-size:9px;line-height:1.8;margin-top:17px;color:#75829a}.product-roadmap i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#648ce9;margin-right:7px;vertical-align:middle}.product-shot{position:relative;display:block;width:100%;min-width:0;padding:0;border:1px solid #d4dfee;border-radius:6px;background:#fff;box-shadow:0 18px 38px #254c9b14;overflow:hidden}.product-shot img{width:100%;height:auto;display:block;transition:transform .4s}.product-browser{height:29px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;color:#8d9bb3;font-size:8px}.product-browser>span:first-child{font-size:6px;letter-spacing:3px;color:#becce2}.product-zoom{position:absolute;bottom:12px;right:12px;background:white;color:var(--ink);padding:8px 12px;border-radius:20px;font-size:9px;box-shadow:0 3px 10px #10204020}.product-shot:hover img{transform:scale(1.015)}
.company-identity{max-width:1600px;margin:auto;padding:32px 5% 26px;display:grid;grid-template-columns:1fr 1.35fr auto;gap:30px;border-top:1px solid var(--line)}.company-identity>div{display:flex;flex-direction:column;gap:7px;font-size:9px;color:var(--muted);line-height:1.7}.company-identity strong{font-size:12px;font-weight:600;color:var(--ink)}.company-identity a{font-size:10px;color:var(--blue)}.company-identity a:hover{text-decoration:underline}
@media(max-width:1000px){.product-spotlight{gap:25px;padding:27px;grid-template-columns:1fr 1fr}.product-story h3>span{font-size:18px}.product-scope{gap:9px}.product-scope strong{font-size:8px}.company-identity{grid-template-columns:1fr 1.4fr}.company-identity>div:last-child{grid-column:span 2;flex-direction:row;gap:25px}}
@media(max-width:650px){.product-spotlight{grid-template-columns:1fr;gap:27px;padding:24px 19px;margin-bottom:28px}.product-story h3{font-size:36px;margin:17px 0}.product-story h3>span{font-size:20px}.product-story>p{font-size:12px}.product-scope{gap:12px;margin:20px 0}.product-scope>span{font-size:8px}.product-scope strong{font-size:9px}.product-story .product-roadmap{font-size:10px}.product-shot{box-shadow:0 8px 22px #254c9b14}.company-identity{padding:27px 6% 23px;grid-template-columns:1fr;gap:20px}.company-identity>div:last-child{grid-column:auto;flex-direction:column;gap:7px}.company-identity>div{font-size:10px}.company-identity a{font-size:11px}}
