:root{--cream:#eae4d8;--green:#5a915a;--ink:#254c32;--line:#b9c4ac;--serif:'Libre Baskerville',Georgia,serif;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.65 var(--sans)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;width:100%;height:auto}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:6px}::selection{background:var(--green);color:var(--cream)}.skip{position:fixed;top:-100px;left:20px;background:var(--cream);padding:10px;z-index:100}.skip:focus{top:10px}.nav{height:104px;padding:24px 4.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:#eae4d8f5;backdrop-filter:blur(12px);z-index:30}.brand{display:block;width:270px}.brand img{filter:invert(50%) sepia(22%) saturate(800%) hue-rotate(65deg) brightness(94%) contrast(83%)}nav{display:flex;align-items:center;gap:32px;font-size:11px;letter-spacing:.09em;text-transform:uppercase}nav a{padding:6px 0}.nav-contact{border-bottom:1px solid var(--ink);margin-left:15px}.nav-contact span{margin-left:35px}.menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:710px}.hero-copy{padding:46px 5vw 30px 4.3vw;display:flex;flex-direction:column}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:500;margin:0}.dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--green);margin-right:8px;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1,h2,h3,blockquote{font-family:var(--serif);font-weight:400}h1{font-size:clamp(55px,6.7vw,105px);line-height:1.1;letter-spacing:-.065em;margin:55px 0 44px;color:var(--green)}em{font-weight:400}h1 em{letter-spacing:-.07em}.hero-bottom{display:flex;align-items:end;justify-content:space-between;margin-top:auto}.hero-bottom p{font-size:13px;margin:0;line-height:1.7}.circle-arrow{border:1px solid #799577;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-size:23px;transition:.25s}.circle-arrow:hover{background:var(--green);color:var(--cream);transform:translateY(4px)}.hero-image{position:relative;overflow:hidden;min-height:660px}.hero-image>img{position:absolute;height:100%;object-fit:cover;object-position:center 50%}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#16331fc7,transparent 35%,#16331f20)}.image-caption{position:absolute;bottom:30px;left:30px;right:30px;display:flex;justify-content:space-between;gap:20px;z-index:1;color:#f5f0e7;font-size:10px}.image-caption span:first-child{font-family:var(--serif);font-style:italic;font-size:18px}.image-index{position:absolute;right:28px;top:30px;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:white;z-index:1}.intro-bar{display:flex;justify-content:space-between;align-items:center;padding:28px 4.3%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.intro-bar p{font-family:var(--serif);font-size:23px;margin:0;letter-spacing:-.04em}.intro-bar>span{font-size:11px}.section-pad{padding:95px 6%}.section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px}.small-label{font-size:10px;opacity:.75}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:45px}h2{font-size:clamp(38px,4.5vw,68px);line-height:1.22;letter-spacing:-.055em;margin:0}h2 em{color:var(--green)}.section-heading>p{max-width:285px;font-size:13px;line-height:1.9;margin:0 4% 7px 30px}.filters{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:14px}.filters button{border:0;background:none;padding:0;opacity:.55;font-size:11px}.filters button.active{opacity:1;text-decoration:underline;text-underline-offset:8px}.filters sup{font-size:8px;margin-left:4px}.portfolio{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px}.project{border:0;background:transparent;padding:0;text-align:left;min-width:0}.project[hidden]{display:none}.project-image{height:410px;overflow:hidden;position:relative;background:#dcd9c9}.project.tall .project-image{height:520px}.project:nth-child(2){padding-top:90px}.project:nth-child(3){margin-top:-110px}.project:nth-child(5){margin-top:-110px}.portfolio.filtered .project{padding-top:0;margin-top:0}.project-image img{height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.project:hover img{transform:scale(1.035)}.project-image.artwork{padding:0;background:#d6d8c8}.project-image.artwork img{object-fit:cover}.project-image.ink{background:#ded5c4}.view{position:absolute;bottom:20px;left:20px;background:var(--cream);padding:10px 18px;font-size:10px;opacity:0;transform:translateY(8px);transition:.25s}.project:hover .view,.project:focus-visible .view{opacity:1;transform:none}.project-meta{display:grid;grid-template-columns:1fr auto;position:relative;padding-top:16px}.project-meta h3{font-size:20px;margin:0 0 4px;letter-spacing:-.04em}.project-meta span{grid-row:2;font-size:10px;opacity:.7}.project-meta b{grid-column:2;grid-row:1/3;font-size:21px;font-weight:400;padding-left:12px}.work-end{border-top:1px solid var(--line);margin-top:46px;padding-top:25px;display:flex;justify-content:space-between;font-size:11px}.text-link{border-bottom:1px solid currentColor;padding-bottom:4px;font-size:11px}.services{background:var(--ink);color:var(--cream)}.services h2 em{color:#b6c7a0}.services .small-label{opacity:.6}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:65px}.service-grid article{border-top:1px solid #ffffff45;padding-top:22px}.service-number{display:block;font-size:11px;color:#b6c7a0;margin-bottom:45px}.service-grid h3{font-size:26px;letter-spacing:-.05em;margin-bottom:17px}.service-grid p{font-size:12px;line-height:1.9;color:#eae4d8b5;max-width:310px}.service-tags{font-size:9px;display:block;margin-top:30px;color:#c3d0b8}.about{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.about-photo{position:relative;padding-bottom:30px}.about-photo img{height:570px;object-fit:cover;object-position:45% center}.about-photo>span{position:absolute;bottom:0;left:0;font-size:9px;opacity:.7}.about-copy .eyebrow{margin-bottom:30px}.about-copy h2{font-size:clamp(36px,3.4vw,51px);margin-bottom:30px}.about-copy>p:not(.eyebrow){font-size:13px;line-height:1.95;max-width:420px}.about-copy blockquote{font-size:19px;line-height:1.75;font-style:italic;margin:30px 0;border-left:1px solid var(--green);padding-left:22px;color:var(--green)}.process{border-top:1px solid var(--line);padding-top:55px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px}.process-grid article>span{font-size:10px;text-transform:uppercase;letter-spacing:.1em}.process-grid h3{font-size:22px;margin:25px 0 13px;letter-spacing:-.04em}.process-grid p{font-size:12px;max-width:280px;opacity:.8}.contact{background:var(--green);color:var(--cream);padding-top:75px;padding-bottom:60px}.contact h2{font-size:clamp(45px,7.5vw,112px);position:relative;margin:40px 0}.contact h2 em{color:var(--cream)}.contact h2>a{position:absolute;right:0;bottom:0;font-family:var(--sans);font-size:110px;line-height:1}.contact-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eae4d870;padding-top:30px}.contact-bottom p{font-size:12px;margin:0}.contact-button{display:inline-block;padding:16px 27px;background:var(--cream);color:var(--ink);font-size:11px;transition:.25s}.contact-button:hover{background:var(--ink);color:var(--cream)}.email{font-size:11px;display:inline-block;margin-top:32px;border-bottom:1px solid #eae4d870}footer{padding:38px 4.3%;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:10px}footer .brand{width:220px}dialog{max-width:1000px;width:90%;max-height:90dvh;border:0;background:var(--cream);color:var(--ink);padding:55px;overscroll-behavior:contain}dialog::backdrop{background:#102718cc;backdrop-filter:blur(8px)}.close-dialog{position:absolute;right:22px;top:18px;border:0;background:none;font-size:12px}.dialog-content h2{margin:20px 0;font-size:44px}.dialog-content>p:not(.eyebrow){max-width:620px;font-size:14px}.dialog-content img{height:clamp(280px,65vh,700px);object-fit:cover;object-position:center;background:#ded8cb;margin:20px 0}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(min-width:1600px){.hero{min-height:830px}h1{font-size:110px}.section-pad{padding-left:max(6%,calc((100% - 1400px)/2));padding-right:max(6%,calc((100% - 1400px)/2))}}@media(max-width:1000px){.nav{height:85px}.brand{width:225px}nav{gap:18px;font-size:9px}.nav-contact{margin-left:0}.nav-contact span{margin-left:12px}.hero{min-height:600px}.hero-image{min-height:600px}h1{font-size:7vw}.hero-copy{padding-top:35px}.hero-copy .eyebrow{font-size:8px}.image-caption{flex-direction:column;gap:4px}.project-image{height:320px}.project.tall .project-image{height:420px}.project:nth-child(2){padding-top:60px}.project:nth-child(3),.project:nth-child(5){margin-top:-100px}.service-grid{gap:24px}.service-grid h3{font-size:23px}.about{gap:6%}.about-photo img{height:470px}.section-pad{padding:70px 5%}}@media(max-width:700px){html{scroll-padding-top:85px}.nav{height:80px;padding:20px 6%}.brand{width:205px}.menu{display:block;background:none;border:0;font-size:11px;letter-spacing:.05em;padding:7px}.menu span{margin-left:12px;font-size:18px}.nav nav{display:none;position:absolute;top:80px;left:0;right:0;flex-direction:column;align-items:start;background:var(--cream);padding:28px 6%;border-bottom:1px solid var(--line);font-size:14px;gap:22px}.nav nav.open{display:flex}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:32px 6%}.hero-copy .eyebrow{font-size:8px}h1{font-size:clamp(56px,12vw,85px);margin:36px 0;line-height:1.08}.hero-bottom p{font-size:12px}.circle-arrow{width:42px;height:42px}.hero-image{min-height:430px}.hero-image>img{object-position:50% 48%}.image-caption{left:6%;bottom:23px}.image-index{right:6%}.intro-bar{padding:22px 6%;display:block}.intro-bar p{font-size:21px}.intro-bar>span{font-size:10px;margin-top:7px;display:block}.section-pad{padding:60px 6%}.section-top{margin-bottom:30px}.small-label{display:none}.section-heading{display:block}.section-heading h2{font-size:45px}.section-heading>p{margin:22px 0 0;max-width:340px}.filters{gap:19px;overflow:auto;white-space:nowrap;padding-bottom:18px}.filters button{font-size:10px}.portfolio{gap:30px;grid-template-columns:1fr}.project:nth-child(n){padding:0;margin:0}.project-image,.project.tall .project-image{height:440px}.project-image.artwork{height:350px;padding:0}.view{opacity:1;transform:none;font-size:9px;bottom:14px;left:14px}.project-meta h3{font-size:22px}.work-end{flex-direction:column;align-items:start;gap:18px}.service-grid{grid-template-columns:1fr;margin-top:40px;gap:30px}.service-number{margin-bottom:18px}.service-grid h3{font-size:27px}.service-grid p{max-width:none}.service-tags{margin-top:20px}.about{grid-template-columns:1fr;gap:36px}.about-photo img{height:430px}.about-copy h2{font-size:40px}.about-copy blockquote{font-size:18px}.process-grid{grid-template-columns:1fr;gap:28px}.process-grid article{border-top:1px solid var(--line);padding-top:22px}.process-grid h3{margin-top:16px}.process-grid p{max-width:none;margin:0}.contact h2{font-size:12vw;margin:30px 0}.contact h2>a{font-size:55px;bottom:-3px;right:-4px}.contact-bottom{align-items:start;gap:25px;flex-direction:column}.contact-button{width:100%;text-align:center}footer{padding:30px 6%;flex-wrap:wrap;gap:22px}footer .brand{width:200px;flex-basis:100%}footer .brand img{width:200px}footer>a:last-child{margin-left:auto}dialog{padding:48px 22px 25px;width:94%}.dialog-content h2{font-size:34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
/* Studio edition: art-led compositions and intentional interactions. */
.studio-hero{min-height:735px;overflow:hidden;border-bottom:1px solid var(--ink)}.studio-hero h1{font-size:clamp(55px,6.8vw,110px);letter-spacing:-.065em;line-height:1.12;margin:50px 0;color:var(--ink)}.studio-hero h1 em{color:var(--green)}.art-desk{position:relative;padding:70px 12% 30px 5%;display:flex;flex-direction:column;justify-content:center;background:#dedcc9}.art-stack{position:relative;width:100%;aspect-ratio:1;perspective:1000px}.stack-paper{position:absolute;inset:0;transform:rotate(-8deg);background:#769572;box-shadow:0 8px 25px #254c3220}.paper-two{transform:rotate(6deg);background:#b8bda2}.stack-main{position:absolute;inset:0;border:0;padding:0;background:var(--cream);overflow:hidden;box-shadow:0 14px 40px #19332125;transform:rotate(-2deg);transition:transform .65s cubic-bezier(.2,.8,.2,1)}.art-stack:hover .stack-main{transform:rotate(0deg) translateY(-7px)}.stack-main img{height:100%;object-fit:cover;position:absolute;inset:0}.stack-main #stack-next{clip-path:inset(100% 0 0 0);z-index:1}.stack-main.turning #stack-next{clip-path:inset(0);transition:clip-path .65s cubic-bezier(.7,0,.2,1)}.stack-instruction{position:absolute;bottom:18px;right:16px;z-index:2;background:var(--cream);font-size:9px;padding:7px 11px}.stack-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:42px}.stack-meta b{font:20px var(--serif)}.stack-meta small{display:block;font-size:9px;margin-top:7px}.stack-controls{display:flex;align-items:center;gap:14px}.stack-controls span{font-size:9px;font-variant-numeric:tabular-nums}.stack-controls button{border:0;background:none;font-size:22px;padding:4px}.desk-note{font:italic 15px var(--serif);position:absolute;right:30px;top:20px;transform:rotate(4deg)}.studio-strip{display:flex;align-items:center;gap:40px;padding:22px 4.3%;border-bottom:1px solid var(--line);font-size:10px}.studio-strip>span{font:italic 22px var(--serif);margin-right:auto}.studio-strip button{border:0;background:none;font-size:10px;padding:5px}.section-heading h2{font-size:clamp(35px,4.2vw,64px)}.collection{grid-template-columns:repeat(12,1fr);gap:65px 28px}.collection .project:nth-child(n){padding:0;margin:0;grid-column:span 6}.collection .project:nth-child(6n+1){grid-column:span 7}.collection .project:nth-child(6n+2){grid-column:span 5;align-self:end}.collection .project:nth-child(6n+3){grid-column:span 5}.collection .project:nth-child(6n+4){grid-column:span 7}.collection .project .project-image{height:auto;aspect-ratio:1.14}.collection .project:nth-child(6n+2) .project-image,.collection .project:nth-child(6n+3) .project-image{aspect-ratio:.88}.collection .project-image>img{position:absolute;inset:0;object-fit:cover;width:100%;height:100%}.collection .project-image .alternate-art{clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.7,0,.2,1),transform .7s}.collection .project:hover .alternate-art,.collection .project:focus-visible .alternate-art{clip-path:inset(0)}.art-note{position:absolute;top:15px;left:15px;background:var(--cream);padding:6px 10px;font-size:8px}.collection .project-meta{padding-left:34px}.project-meta .work-number{position:absolute;left:0;top:20px;font-size:9px}.collection .item-12 .project-image{background:#b7bfa7}.collection.filtered .project:nth-child(n){grid-column:span 6}.reveal{opacity:1;transform:none}.app-feature{background:#19271f;color:var(--cream);display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:center;overflow:hidden}.app-icon{width:68px;height:68px;object-fit:cover;margin:40px 0 28px;border-radius:16px}.app-story h2{font-size:clamp(36px,4.6vw,70px)}.app-story h2 em{color:#b7c99e}.app-story>p:not(.eyebrow){font-size:13px;max-width:380px;line-height:1.9;margin:24px 0}.app-links{display:flex;gap:28px;font-size:11px;margin-top:30px}.app-links a{border-bottom:1px solid #eae4d880;padding-bottom:6px}.app-credit{font-size:8px;display:block;margin-top:35px;color:#b7c99e}.app-demonstration{display:flex;flex-direction:column;align-items:center}.screen-window{position:relative;width:min(100%,310px);aspect-ratio:736/1600;overflow:hidden;border-radius:35px;box-shadow:0 25px 50px #0005;border:6px solid #101b15;transform:rotate(3deg);transition:transform .6s}.screen-window:hover{transform:rotate(0)}.app-screen{position:absolute;inset:0;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0);transition:clip-path .65s cubic-bezier(.7,0,.2,1)}.app-screen.active{clip-path:inset(0);z-index:1}.screen-tabs{display:flex;gap:17px;margin-top:30px}.screen-tabs button{border:0;border-bottom:1px solid transparent;background:none;color:#eae4d890;font-size:9px;padding:8px 0}.screen-tabs .active{border-color:var(--cream);color:var(--cream)}.screen-note{font:italic 12px var(--serif);color:#b7c99e;margin:15px 0 0}.motion-work{overflow:hidden;padding-bottom:70px}.motion-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:45px}.motion-heading p{max-width:290px;font-size:12px;margin:0}.motion-work button{border:1px solid var(--green);padding:10px 18px;background:none;font-size:10px}.filmstrip{display:grid;grid-template-columns:1fr 1fr;gap:30px}.filmstrip figure{margin:0;overflow:hidden}.filmstrip img{aspect-ratio:16/9;object-fit:cover;width:100%}.filmstrip figcaption{font-size:9px;padding-top:12px;text-transform:uppercase;letter-spacing:.1em}.service-grid{grid-template-columns:1fr;gap:0;margin-top:45px}.service-grid article{display:grid;grid-template-columns:70px 1fr 1.1fr;column-gap:30px;padding:28px 0;align-items:start}.service-number{margin:8px 0}.service-grid h3{font-size:32px;margin:0}.service-grid p{max-width:none;margin:0}.service-tags{grid-column:3;margin:15px 0 0}.nav:after{content:'';position:absolute;left:0;bottom:-1px;height:2px;background:var(--green);width:var(--read-progress,0%);transition:width .1s linear}.motion-paused *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.motion-paused .stack-main{transform:none}.motion-paused .screen-window{transform:none}
@media(max-width:1000px){.studio-hero{min-height:630px}.art-desk{padding:80px 10% 35px 6%}.studio-hero h1{font-size:7vw}.stack-meta b{font-size:17px}.stack-controls{gap:8px}.stack-controls span{font-size:8px}.service-grid article{grid-template-columns:40px 1fr 1.1fr;gap:20px}.service-grid h3{font-size:26px}.service-tags{grid-column:3}.app-feature{gap:6%}.screen-window{max-width:260px}.app-story h2{font-size:42px}}
@media(max-width:700px){.studio-hero{min-height:0}.studio-hero h1{font-size:13vw;margin:35px 0}.art-desk{padding:60px 12% 32px;min-height:0}.art-stack{max-width:380px;align-self:center}.stack-meta{margin-top:32px}.desk-note{font-size:12px;top:22px;right:10%}.studio-strip{padding:20px 6%;gap:18px;flex-wrap:wrap}.studio-strip>span{flex-basis:100%;font-size:22px}.studio-strip a,.studio-strip button{font-size:9px}.studio-strip button{margin-left:auto}.collection{grid-template-columns:1fr;gap:36px}.collection .project:nth-child(n),.collection.filtered .project:nth-child(n){grid-column:1}.collection .project .project-image,.collection .project:nth-child(6n+2) .project-image,.collection .project:nth-child(6n+3) .project-image{aspect-ratio:1;height:auto}.app-feature{grid-template-columns:1fr;gap:50px}.app-story h2{font-size:45px}.app-story>p:not(.eyebrow){max-width:none}.screen-window{width:270px;max-width:100%}.screen-tabs{gap:22px}.motion-heading{display:block}.motion-heading p{margin-top:25px;max-width:340px}.motion-heading h2{font-size:43px}.motion-work .section-top{gap:12px;align-items:start}.motion-work .eyebrow{max-width:170px;font-size:8px}.motion-work button{white-space:nowrap}.filmstrip{grid-template-columns:1fr;gap:28px}.service-grid article{grid-template-columns:30px 1fr;gap:10px}.service-grid h3{font-size:29px}.service-grid p,.service-tags{grid-column:2}.service-grid p{margin-top:12px}.service-tags{margin-top:8px}.section-heading h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){.stack-main,.screen-window{transform:none!important}}
/* Direct, factual copy. */
.studio-strip{justify-content:flex-end}.work-end{justify-content:flex-end}.contact h2{padding-right:1.2em}.contact-bottom{justify-content:flex-end}.service-grid article{align-items:center}.service-grid p{margin:0}.section-heading{margin-bottom:35px}
@media(max-width:700px){.studio-strip{justify-content:flex-start}.contact-bottom{align-items:stretch}}
/* Artwork is display-only. */
.project,.stack-main{cursor:default}.project-meta{display:block}.collection .project-meta{padding-left:34px}.project-meta>span:not(.work-number){display:block}.project-meta h3{margin-bottom:4px}img{-webkit-user-drag:none;user-select:none}.stack-main{display:block}
/* User-supplied photography. */
.beach-hero{position:relative;min-height:640px;height:calc(100svh - 104px);overflow:hidden;background:var(--ink)}.beach-splash{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%}.beach-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,44,31,.68),rgba(18,44,31,.06) 65%)}.beach-title{position:absolute;bottom:50px;left:4.3%;right:4.3%;display:flex;align-items:end;justify-content:space-between;gap:24px}.beach-title h1{color:var(--cream);font-size:clamp(60px,8.5vw,140px);line-height:1.06;margin:0;text-shadow:0 2px 20px #142e1920}.beach-title .circle-arrow{border-color:var(--cream);color:var(--cream);flex-shrink:0}.about-photo img{object-position:68% center}.project-image,.collection .item-12 .project-image{background:var(--cream)}.collection .item-5 .project-image{background:#b7bfa7}.brand{background:transparent}.brand img{background:transparent}.collection .item-12 .project-image img{mix-blend-mode:multiply}
@media(max-width:1000px){.beach-hero{height:calc(100svh - 85px);min-height:580px}}
@media(max-width:700px){.beach-hero{height:calc(100svh - 80px);min-height:540px}.beach-splash{object-position:57% center}.beach-title{left:6%;right:6%;bottom:35px}.beach-title h1{font-size:14vw}.about-photo img{object-position:68% center}}
/* Dutch / English name translation. */
.name-translation{display:inline-grid;position:relative;isolation:isolate;outline-offset:12px;cursor:default}
.name-dutch,.name-english{grid-area:1/1;transition:opacity 1.65s ease,transform 1.65s cubic-bezier(.2,.6,.2,1),filter 1.65s ease}
.name-dutch{opacity:1;transform:translateY(0);filter:blur(0)}
.name-english{opacity:0;transform:translateY(15px);filter:blur(5px)}
.name-translation:is(:hover,:focus-visible) .name-dutch{opacity:0;transform:translateY(-12px);filter:blur(5px);transition-duration:.5s}
.name-translation:is(:hover,:focus-visible) .name-english{opacity:1;transform:translateY(0);filter:blur(0);transition-duration:.6s}
@media(prefers-reduced-motion:reduce){.name-dutch,.name-english{transition:none!important;filter:none!important}}
/* English / Nederlands in the header. */
.nav{gap:28px}.nav .brand{margin-right:auto;flex-shrink:0}.language-switch{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:10px}.language-switch button{border:0;border-bottom:1px solid transparent;background:none;padding:6px 0;font-size:10px;color:var(--ink);opacity:.55;white-space:nowrap}.language-switch button.active{opacity:1;border-color:var(--ink)}.language-switch>span{opacity:.45}.language-short{display:none}
@media(max-width:1100px) and (min-width:701px){.nav{gap:18px}.nav .brand{width:210px}.nav nav{gap:18px}.nav-contact span{margin-left:10px}.nav-contact{margin-left:0}.language-switch{gap:6px}.language-switch button{font-size:9px}}
@media(max-width:700px){.nav{gap:16px}.nav .brand{width:160px;min-width:0}.language-full{display:none}.language-short{display:inline}.language-switch{order:2;gap:8px}.language-switch button{font-size:10px;padding:10px 0}.menu{order:3;padding:6px 0}.menu span{margin-left:7px}.nav nav{order:4}.nav{padding-left:5%;padding-right:5%}}
@media(max-width:360px){.nav{gap:12px}.nav .brand{width:140px}}
/* Email contact: glow builds once and ends in a single shine. */
.contact-email-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:45px;min-height:410px;padding:105px 6% 120px;text-align:center;overflow:hidden;background:var(--ink)}.contact.contact-email-section .contact-label{font:500 11px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;padding:0;margin:0;color:var(--cream)}.contact-email{display:inline-flex;align-items:center;justify-content:center;gap:20px;max-width:100%;outline-offset:18px;position:relative}.email-address{position:relative;display:block;font:400 clamp(25px,6.2vw,105px)/1.3 var(--serif);letter-spacing:-.05em;white-space:nowrap;color:var(--cream);text-shadow:none}.email-link-arrow{font:300 clamp(22px,3vw,45px)/1 var(--sans);color:#cbdcba;transition:transform .35s}.contact-email:hover .email-link-arrow{transform:translate(4px,-4px)}.contact-email:hover .email-address{text-shadow:none}.email-shine{position:absolute;inset:0;pointer-events:none;color:transparent;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.15) 44%,#fff 49%,#fff 51%,rgba(255,255,255,.15) 56%,transparent 62%);background-size:280% 100%;background-position:180% 0;-webkit-background-clip:text;background-clip:text;opacity:0;filter:none}.contact-email-section.email-revealed .contact-email{animation:email-arrive 1.2s cubic-bezier(.2,.75,.2,1) both}.contact-email-section.email-revealed .email-shine{animation:email-shine 1.45s cubic-bezier(.3,.1,.4,1) 1.1s both}@keyframes email-arrive{from{opacity:0;transform:translateY(20px) scale(.975);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes email-shine{0%{opacity:0;background-position:180% 0}12%{opacity:1}85%{opacity:1}100%{opacity:0;background-position:-80% 0}}.motion-paused .contact-email,.motion-paused .email-address{animation:none!important;filter:none!important;opacity:1!important;transform:none!important}.motion-paused .email-shine{animation:none!important;opacity:0!important}@media(max-width:700px){.contact-email-section{min-height:300px;gap:30px;padding:70px 6% 85px}.contact-email{gap:9px}.email-address{font-size:clamp(23px,6.9vw,48px)}.email-link-arrow{font-size:23px}}@media(prefers-reduced-motion:reduce){.contact-email-section .contact-email,.contact-email-section .email-address{animation:none!important;filter:none!important;opacity:1!important;transform:none!important}.contact-email-section .email-shine{animation:none!important;opacity:0!important}}
/* Plain headings and captions, without decorative numbering. */
.collection .project-meta{padding-left:0}.service-grid article{grid-template-columns:1fr 1.1fr}.about-copy h2{margin-top:0}.app-icon{margin-top:0}.motion-work .section-top{justify-content:flex-end;margin-bottom:28px}
@media(max-width:1000px){.service-grid article{grid-template-columns:1fr 1.1fr}}
@media(max-width:700px){.service-grid article{grid-template-columns:1fr}.service-grid p{grid-column:1}.service-grid h3{grid-column:1}.motion-work .section-top{justify-content:flex-end}}
/* Edge-to-edge artwork, with details revealed on hover or keyboard focus. */
.work.image-only-work{padding:0}.image-only-work .collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.image-only-work .collection .project:nth-child(n){position:relative;grid-column:auto;align-self:stretch;margin:0;padding:0;overflow:hidden;isolation:isolate;outline-offset:-4px}.image-only-work .collection .project:nth-child(n) .project-image{aspect-ratio:1;height:auto;width:100%;padding:0}.image-only-work .collection .project .project-meta{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:30px;background:linear-gradient(0deg,rgba(15,32,22,.94),rgba(15,32,22,.55) 55%,rgba(15,32,22,.1));color:var(--cream);opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}.image-only-work .project-meta h3{font-size:clamp(22px,2vw,34px);line-height:1.25;margin:0 0 9px;letter-spacing:-.04em}.image-only-work .project-meta>span{font:10px/1.6 var(--sans);color:#c9dbbd;opacity:1}.image-only-work .project-detail{font:12px/1.8 var(--sans);margin:15px 0 0;max-width:310px;color:#eae4d8dc}.image-only-work .project:is(:hover,:focus) .project-meta{opacity:1;transform:none}.image-only-work .project:focus-visible{outline:2px solid var(--cream);z-index:3}.image-only-work .project .project-image>img{transition:transform .7s cubic-bezier(.2,.7,.2,1),clip-path .7s cubic-bezier(.7,0,.2,1)}.image-only-work .project:focus .alternate-art{clip-path:inset(0)}.image-only-work .project:focus img{transform:scale(1.035)}
@media(max-width:900px){.image-only-work .collection{grid-template-columns:repeat(2,minmax(0,1fr))}.image-only-work .collection .project .project-meta{padding:24px}.image-only-work .project-meta h3{font-size:25px}}
@media(max-width:500px){.image-only-work .collection{grid-template-columns:repeat(2,minmax(0,1fr))}.image-only-work .collection .project .project-meta{padding:14px}.image-only-work .project-meta h3{font-size:18px;margin-bottom:5px}.image-only-work .project-meta>span{font-size:8px}.image-only-work .project-detail{font-size:9px;line-height:1.55;margin-top:8px}}
@font-face{font-family:'Batmip Book';src:url('assets/fonts/batmip-book.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}
#app-feature .app-story h2{font-family:'Batmip Book',var(--serif);font-weight:400;letter-spacing:0;line-height:1.2}
/* Full-screen coast, flowing into a navigation bar below the image. */
.beach-hero{height:100svh;min-height:640px}.beach-title{bottom:clamp(125px,18vh,200px);z-index:2}.ocean-waves{position:absolute;inset:auto 0 -1px;height:clamp(100px,16vh,170px);overflow:hidden;pointer-events:none;z-index:3;contain:paint}.ocean-layer{position:absolute;left:0;bottom:-1px;width:200%;height:100%;max-width:none;will-change:transform;animation:ocean-drift 24s linear infinite;backface-visibility:hidden}.ocean-layer-1{fill:#5a915a;opacity:.3;height:112%;animation-duration:31s;animation-delay:-11s}.ocean-layer-2{fill:#c0cbb3;opacity:.5;height:97%;animation-duration:24s;animation-direction:reverse;animation-delay:-8s}.ocean-layer-3{fill:#eae4d8;opacity:.55;height:79%;animation-duration:20s;animation-delay:-5s}.ocean-layer-4{fill:var(--cream);height:60%;animation-duration:27s;animation-direction:reverse;animation-delay:-16s}@keyframes ocean-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}.ocean-waves.wave-sleep .ocean-layer{animation-play-state:paused}.nav{position:sticky;top:0;z-index:30}.motion-paused .ocean-layer{animation-play-state:paused!important;animation-name:ocean-drift!important}
@media(max-width:1000px){.beach-hero{height:100svh;min-height:580px}}
@media(max-width:700px){.beach-hero{height:100svh;min-height:540px}.beach-title{bottom:130px}.ocean-waves{height:115px}.ocean-layer-1{animation-duration:34s}.ocean-layer-2{animation-duration:29s}}
@media(prefers-reduced-motion:reduce){.ocean-layer{animation:none!important;will-change:auto}}
/* App artwork is presented as app icons, rather than cropped photographs. */
.image-only-work .collection .project.app-icon-project .project-image{background:#d2d7c4;overflow:hidden;perspective:900px}.image-only-work .collection .project.item-2.app-icon-project .project-image{background:#b4c4a4}.image-only-work .collection .project.item-5.app-icon-project .project-image{background:#254c32}.image-only-work .collection .project.app-icon-project .project-image>img{inset:17% auto auto 17%;width:66%;height:66%;object-fit:cover;border-radius:23%;clip-path:none;box-shadow:0 15px 30px #142e1938;transform:translate(-9%,8%) rotate(-9deg);z-index:2;transition:transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .65s}.image-only-work .collection .project.app-icon-project .project-image>.alternate-art{inset:10% auto auto 25%;z-index:1;transform:translate(8%,-2%) rotate(11deg);clip-path:none;opacity:1}.image-only-work .collection .project.app-icon-project:is(:hover,:focus) .project-image>img:not(.alternate-art){transform:translate(-14%,9%) rotate(-13deg)}.image-only-work .collection .project.app-icon-project:is(:hover,:focus) .project-image>.alternate-art{transform:translate(13%,-5%) rotate(15deg)}.image-only-work .collection .project.item-5.app-icon-project .project-image>img{inset:17%;transform:rotate(-7deg);box-shadow:0 18px 40px #101f1866}.image-only-work .collection .project.item-5.app-icon-project:is(:hover,:focus) .project-image>img{transform:translateY(-5px) rotate(0deg)}
@media(max-width:500px){.image-only-work .collection .project.app-icon-project .project-image>img{box-shadow:0 7px 15px #142e1938}}
/* Small app icons carried left-to-right between the wave layers. */
.ocean-layer-1{z-index:1}.ocean-layer-2{z-index:2}.ocean-layer-3{z-index:4}.ocean-layer-4{z-index:5}.floating-apps{position:absolute;inset:0;z-index:3;pointer-events:none}.floating-app{position:absolute;left:-80px;top:28%;width:clamp(30px,3.4vw,48px);aspect-ratio:1;animation:app-voyage 78s linear infinite;animation-delay:var(--drift-delay);will-change:transform}.floating-app-bob{display:block;width:100%;height:100%;animation:app-bob 6.8s ease-in-out infinite;animation-delay:var(--bob-delay);transform-origin:50% 80%}.floating-app img{width:100%;height:100%;object-fit:cover;border-radius:23%;box-shadow:0 4px 9px #173b2833;opacity:.94}@keyframes app-voyage{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(100vw + 160px),0,0)}}@keyframes app-bob{0%,100%{transform:translateY(3px) rotate(-7deg)}50%{transform:translateY(-7px) rotate(6deg)}}.wave-sleep .floating-app,.wave-sleep .floating-app-bob{animation-play-state:paused}.motion-paused .floating-app,.motion-paused .floating-app-bob{animation-play-state:paused!important;animation-name:app-voyage!important}.motion-paused .floating-app-bob{animation-name:app-bob!important}
@media(max-width:700px){.floating-app{top:24%;width:32px;animation-duration:78s}}
@media(prefers-reduced-motion:reduce){.floating-apps{display:none}}
/* ScareSafe press mentions, using the supplied publication logos. */
.scaresafe-press{margin-top:35px;padding-top:27px;border-top:1px solid #eae4d835;max-width:420px}.scaresafe-press .press-label{font:400 12px/1.5 var(--sans);margin:0 0 19px;color:var(--cream)}.press-publications{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.press-publications figure{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.press-publications img{width:54px;height:54px;object-fit:cover}.press-publications figcaption{font:400 10px/1.6 var(--sans);color:#eae4d8d9}.press-article-link{display:inline-block;font:400 10px/1.5 var(--sans);border-bottom:1px solid #eae4d860;margin-top:22px;padding-bottom:5px}.press-article-link:hover{color:#b7c99e}
@media(max-width:700px){.scaresafe-press{max-width:none;margin-top:30px}.press-publications{gap:14px}.press-publications img{width:48px;height:48px}}
/* One Made By Willy tile, cycling through all four photographs. */
.image-only-work .collection .project.willy-slideshow .project-image>.willy-slide{opacity:0;transition:opacity 1s ease,transform .7s cubic-bezier(.2,.7,.2,1);z-index:0;clip-path:none}.image-only-work .collection .project.willy-slideshow .project-image>.willy-slide.active{opacity:1;z-index:1}.motion-paused .willy-slide{transition:none!important}@media(prefers-reduced-motion:reduce){.willy-slide{transition:none!important}}
/* All app-icon variants in one non-overlapping row above the photo grid. */
.app-icon-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#c8d1ba;overflow:hidden}.icon-row-project{position:relative;aspect-ratio:1;min-width:0;isolation:isolate;outline-offset:-4px;scroll-snap-align:start;cursor:default}.icon-row-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:16%}.icon-row-image img{width:100%;height:100%;object-fit:cover;border-radius:23%;box-shadow:0 9px 20px #142e1928;transform:none;transition:transform .4s ease}.icon-row-project:hover .icon-row-image img,.icon-row-project:focus .icon-row-image img{transform:translateY(-4px)}.app-icon-row .project-meta{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:start;padding:20px;color:var(--cream);background:linear-gradient(0deg,#102719f5,#102719b0 65%,#10271920);opacity:0;transform:translateY(7px);transition:opacity .3s,transform .4s;pointer-events:none}.app-icon-row .project-meta h3{font:400 clamp(17px,1.5vw,25px)/1.25 var(--serif);letter-spacing:-.035em;margin:0 0 7px}.app-icon-row .project-meta>span{font:400 9px/1.5 var(--sans);color:#c9dbbd}.app-icon-row .project-detail{font:400 10px/1.6 var(--sans);margin:10px 0 0;color:#eae4d8dc}.icon-row-project:is(:hover,:focus) .project-meta{opacity:1;transform:none}.icon-row-project:focus-visible{outline:2px solid var(--cream);z-index:2}
@media(max-width:850px){.app-icon-row{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;scroll-snap-type:x proximity}.app-icon-row .project-meta{padding:12px}.app-icon-row .project-meta h3{font-size:17px}.app-icon-row .project-detail{font-size:9px;line-height:1.5}.icon-row-image{padding:15%}}
/* Compact navigation, half the original desktop height. */
html{scroll-padding-top:65px}.nav{height:52px;padding:7px 4.3%;gap:22px}.nav .brand{width:180px}.nav nav{font-size:10px;gap:23px}.nav-contact span{margin-left:14px}.nav-contact{margin-left:0}.language-switch button{font-size:9px;padding:4px 0}
/* Verified personal portfolio results. */
.achievement-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:40px 6% 38px;border-bottom:1px solid var(--line);gap:24px;background:var(--cream)}.achievement{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;border-right:1px solid var(--line);padding:0 15px;gap:5px}.achievement:last-child{border-right:0}.achievement strong{font:400 clamp(31px,4.3vw,68px)/1.2 var(--serif);letter-spacing:-.06em;color:var(--ink);font-variant-numeric:tabular-nums}.achievement>span{font:500 11px/1.5 var(--sans);margin-top:8px}.achievement small{font:400 10px/1.5 var(--sans);opacity:.72;min-height:15px}
/* Matching transparent logo bars. */
.credibility-bars{padding:28px 6% 32px;border-bottom:1px solid var(--line)}.logo-bar{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:24px}.logo-bar+ .logo-bar{margin-top:24px;padding-top:24px;border-top:1px solid #b9c4ac80}.logo-bar>p{font-size:11px;margin:0;color:var(--ink)}.logo-list{display:flex;align-items:center;justify-content:space-between;gap:30px}.logo-list img{width:auto;height:38px;max-width:145px;object-fit:contain}.client-logos .logo-list img:nth-child(3){height:47px;width:110px}.client-logos .logo-list img:nth-child(4){height:52px;width:70px}.client-logos .logo-list img:nth-child(5){max-width:125px;height:24px}.media-logos .logo-list{justify-content:space-around}.media-logos .logo-list img{height:38px;max-width:155px}.media-logos .logo-list img:first-child{height:31px;max-width:170px}
/* New banners and thumbnail work keep their appropriate proportions. */
.image-only-work .collection .project.campaign-wide{grid-column:span 2}.image-only-work .collection .project.campaign-wide .project-image{height:100%;aspect-ratio:2/1}.image-only-work .collection .project.campaign-portrait .project-image>img{object-position:center 28%;transition:object-position 1.4s ease,transform .7s}.image-only-work .collection .project.campaign-portrait:is(:hover,:focus) .project-image>img{object-position:center 73%}.image-only-work .collection .project.thumbnail-project .project-image{aspect-ratio:16/9}.image-only-work .collection .project.thumbnail-project .project-meta{padding:20px}.image-only-work .thumbnail-project .project-meta h3{font-size:24px}.press-text{font:400 11px/1.8 var(--sans);color:var(--cream);margin:0}.scaresafe-press{max-width:420px}.scaresafe-press .press-label{margin-bottom:10px}.scaresafe-press .press-article-link{margin-top:12px}
/* Contact-for-quote packages, with no invented price amounts. */
.rate-section{border-bottom:1px solid var(--line)}.rates-intro{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.rates-intro h2{font-size:clamp(34px,3.5vw,54px);max-width:460px}.rates-intro p{font-size:13px;line-height:1.85;max-width:450px}.rate-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:45px;border-top:1px solid var(--line)}.rate-options article{padding:30px 28px 10px 0;display:flex;flex-direction:column;border-right:1px solid var(--line);margin-top:25px}.rate-options article+article{padding-left:28px}.rate-options article:last-child{border-right:0;padding-right:0}.rate-options h3{font-size:25px;line-height:1.3;letter-spacing:-.035em;margin:0 0 18px}.rate-options .rate-type{font-size:13px;color:var(--green);font-weight:500;margin-bottom:16px}.rate-options article>p:not(.rate-type){font-size:12px;line-height:1.85;margin-bottom:25px}.rate-options a{font-size:11px;align-self:flex-start;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-top:auto}.about-copy .about-name{font-family:var(--serif);font-size:24px;line-height:1.5;margin:22px 0 20px}
@media(max-width:1100px) and (min-width:701px){.nav{height:44px;padding:5px 4.3%;gap:18px}.nav .brand{width:150px}.nav nav{font-size:9px;gap:16px}.logo-list{gap:22px}.logo-list img{max-width:112px;height:32px}.client-logos .logo-list img:nth-child(5){max-width:95px}.logo-bar{grid-template-columns:80px 1fr;gap:18px}.media-logos .logo-list img:first-child{max-width:145px}}
@media(max-width:900px){.achievement-row{gap:14px;padding:32px 4%}.achievement{padding:0 10px}.achievement>span{font-size:10px}.achievement small{font-size:9px}.image-only-work .collection .project.campaign-wide{grid-column:1/-1}.image-only-work .collection .project.campaign-wide .project-image{height:auto;aspect-ratio:2.1}.image-only-work .collection .project.campaign-portrait .project-image{aspect-ratio:1}.image-only-work .collection .project.thumbnail-project .project-image{aspect-ratio:1}.logo-list{gap:18px}.logo-list img{max-width:100px}.client-logos .logo-list img:nth-child(3){width:85px;height:40px}.client-logos .logo-list img:nth-child(4){width:50px;height:44px}.client-logos .logo-list img:nth-child(5){max-width:90px}}
@media(max-width:700px){html{scroll-padding-top:55px}.nav{height:44px;padding:5px 5%;gap:14px}.nav .brand{width:140px}.nav nav{top:44px;font-size:14px}.menu{font-size:10px;padding:4px 0}.menu span{font-size:15px}.language-switch button{padding:5px 0;font-size:9px}.achievement-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:28px 3%}.achievement{padding:0 6px;gap:3px}.achievement strong{font-size:clamp(25px,7vw,39px)}.achievement>span{font-size:8px;line-height:1.5;margin-top:5px}.achievement small{font-size:8px;line-height:1.45}.credibility-bars{padding:25px 6%}.logo-bar{grid-template-columns:1fr;gap:16px}.logo-bar>p{font-size:10px}.logo-list{flex-wrap:wrap;justify-content:center;gap:22px 26px}.logo-list img{height:28px;max-width:100px}.client-logos .logo-list img:nth-child(3){height:37px;width:87px}.client-logos .logo-list img:nth-child(4){height:42px;width:52px}.client-logos .logo-list img:nth-child(5){height:20px;max-width:105px}.media-logos .logo-list{justify-content:center;gap:25px}.media-logos .logo-list img{height:32px;max-width:70px}.media-logos .logo-list img:first-child{height:26px;max-width:130px}.rates-intro{grid-template-columns:1fr;gap:25px}.rates-intro h2{font-size:37px;max-width:330px}.rate-options{grid-template-columns:1fr;margin-top:30px}.rate-options article,.rate-options article+article{border-right:0;border-bottom:1px solid var(--line);margin:0;padding:26px 0}.rate-options article:last-child{border-bottom:0}.rate-options h3{font-size:26px}.rate-options a{margin-top:0}.about-copy .about-name{font-size:23px}}

/* Give each portfolio image room to breathe. */
.work.image-only-work{padding:64px 6% 96px}.image-only-work .collection{gap:clamp(28px,4vw,64px)}
.app-icon-row{background:transparent;gap:16px;margin-bottom:64px}.icon-row-image{padding:12%}
.image-only-work .collection .project[data-slideshow] .project-image>.portfolio-slide{opacity:0;z-index:0;clip-path:none;transition:opacity .8s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.image-only-work .collection .project[data-slideshow] .project-image>.portfolio-slide.active{opacity:1;z-index:1}
.filmstrip{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.5vw,40px)}
@media(max-width:1000px){.filmstrip{grid-template-columns:repeat(4,minmax(260px,40vw));overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:20px}.filmstrip figure{scroll-snap-align:start}}
@media(max-width:700px){.work.image-only-work{padding:40px 6% 64px}.image-only-work .collection{gap:28px 20px}.app-icon-row{margin-bottom:40px;gap:12px}.image-only-work .collection .project.thumbnail-project .project-image{aspect-ratio:16/9}.image-only-work .collection .project.thumbnail-project{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.portfolio-slide{transition:none!important}}
@media(min-width:601px) and (max-width:850px){.app-icon-row{grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}}
@media(max-width:900px){.image-only-work .collection .project.thumbnail-project{grid-column:1/-1}.image-only-work .collection .project.thumbnail-project .project-image{aspect-ratio:16/9}}

/* Thumbnail studies sit beside the films in the image-only motion row. */
.filmstrip{grid-template-columns:repeat(5,minmax(0,1fr))}.filmstrip .thumbnail-film{position:relative;aspect-ratio:16/9;align-self:start;outline-offset:5px}.thumbnail-film .portfolio-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease}.thumbnail-film .portfolio-slide.active{opacity:1}.thumbnail-film:focus-visible{outline:2px solid var(--green)}
@media(max-width:1000px){.filmstrip{grid-template-columns:repeat(5,minmax(260px,40vw))}}

/* Introductory offer: type on scroll, followed by three distinct cards. */
.rates-copy{position:relative}.rates-copy strong{font-weight:800;color:var(--ink)}.rates-copy.typing-ready .rates-source{opacity:0}.rates-typed{position:absolute;inset:0;pointer-events:none}.typed-character{opacity:0}.typed-character.typed{opacity:1}.rates-copy.typing-active .rates-typed::after{content:'';display:block;width:7px;height:16px;margin-top:4px;background:var(--green);animation:typing-caret .8s steps(1) infinite}@keyframes typing-caret{50%{opacity:0}}
.rate-options{gap:24px;margin-top:46px;border-top:0;perspective:1200px}.rate-options article,.rate-options article+article,.rate-options article:last-child{padding:32px 28px;margin:0;border:1px solid #254c3238;border-radius:10px;background:#f1ecdf;box-shadow:0 10px 25px #254c3208;min-height:285px;transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1),box-shadow .3s}.rate-options article:nth-child(2){background:#dce2cf;transition-delay:.18s}.rate-options article:nth-child(3){background:#c8d7bb;transition-delay:.36s}.rate-options.cards-ready:not(.cards-visible) article{opacity:0;transform:translateX(-48px) rotateY(-5deg)}.rate-options.cards-visible article{opacity:1;transform:none}.rate-options article:hover{box-shadow:0 14px 30px #254c3215}.rate-options .rate-type{font-weight:700;color:var(--ink)}
@media(max-width:700px){.rate-options{gap:18px}.rate-options article,.rate-options article+article,.rate-options article:last-child{padding:28px;min-height:260px}.rate-options.cards-ready:not(.cards-visible) article{transform:translateX(-25px)}}
@media(prefers-reduced-motion:reduce){.rate-options article{transition:none!important}.rates-typed::after{animation:none!important}}

/* The supplied ship rides between the back swell and the foreground waves. */
.sailing-ship{position:absolute;z-index:3;top:8%;left:0;width:clamp(88px,9vw,130px);pointer-events:none;animation:ship-voyage 64s linear -18s infinite;will-change:transform}.ship-bob{position:relative;width:100%;transform-origin:50% 85%;animation:ship-bob 5.6s ease-in-out -1.4s infinite}.ship-bob>img{position:relative;z-index:2;display:block;width:100%;height:auto}.ship-wake{position:absolute;bottom:2%;left:-28%;width:100%;height:8px;border:2px solid #eae4d899;border-top:0;border-radius:50%;animation:ship-wake 2.4s ease-out infinite}.ship-spray{position:absolute;inset:0;z-index:3}.ship-spray i{position:absolute;left:4%;bottom:9%;width:4px;height:7px;border-radius:60% 60% 65% 65%;background:#dce6d2;opacity:0;animation:ship-droplet 2s ease-out infinite;--spray-x:-24px;--spray-y:-19px}.ship-spray i:nth-child(2){animation-delay:-.4s;--spray-x:-16px;--spray-y:-28px;width:3px;height:5px}.ship-spray i:nth-child(3){animation-delay:-1.1s;--spray-x:-35px;--spray-y:-12px;width:3px;height:4px}.ship-spray i:nth-child(4){left:91%;bottom:17%;animation-delay:-.8s;--spray-x:15px;--spray-y:-17px}.ship-spray i:nth-child(5){left:91%;bottom:17%;animation-delay:-1.5s;--spray-x:24px;--spray-y:-11px;width:3px;height:5px}
@keyframes ship-voyage{from{transform:translate3d(-150px,0,0)}to{transform:translate3d(calc(100vw + 150px),0,0)}}
@keyframes ship-bob{0%,100%{transform:translateY(4px) rotate(-4deg)}30%{transform:translateY(-5px) rotate(2deg)}60%{transform:translateY(2px) rotate(5deg)}80%{transform:translateY(6px) rotate(-1deg)}}
@keyframes ship-droplet{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:.85}55%{opacity:.55;transform:translate(var(--spray-x),var(--spray-y)) rotate(-30deg) scale(.8)}100%{opacity:0;transform:translate(calc(var(--spray-x) * 1.5),7px) rotate(-55deg) scale(.3)}}
@keyframes ship-wake{0%{opacity:0;transform:translateX(10px) scale(.6)}30%{opacity:.6}100%{opacity:0;transform:translateX(-24px) scale(1.2)}}
.wave-sleep .sailing-ship,.wave-sleep .ship-bob,.wave-sleep .ship-wake,.wave-sleep .ship-spray i{animation-play-state:paused}
.motion-paused .sailing-ship{animation:none!important;transform:translateX(24vw)}.motion-paused .ship-bob{animation:none!important;transform:rotate(-2deg)}.motion-paused .ship-wake,.motion-paused .ship-spray{display:none}
@media(max-width:700px){.sailing-ship{top:13%;width:88px}}
@media(prefers-reduced-motion:reduce){.sailing-ship{animation:none!important;transform:translateX(24vw);will-change:auto}.ship-bob{animation:none!important;transform:rotate(-2deg)}.ship-spray,.ship-wake{display:none}}
/* Compact beach header, matching the supplied wide reference. */
.beach-hero{height:41vw;min-height:360px;max-height:680px}.beach-title{bottom:clamp(115px,12vw,155px)}.beach-splash{object-position:center 64%}.ocean-waves{height:clamp(100px,9vw,140px)}
@media(max-width:700px){.beach-hero{height:65svh;min-height:360px;max-height:480px}.beach-title{bottom:115px}.beach-splash{object-position:57% 64%}.ocean-waves{height:100px}}
.beach-splash{object-position:center bottom;transform:scale(1.12);transform-origin:center bottom}
@media(max-width:700px){.beach-splash{object-position:57% 64%;transform:none}}
.beach-overlay{background:linear-gradient(0deg,rgba(18,44,31,.64),rgba(18,44,31,.25) 65%,rgba(18,44,31,.15))}

/* Preserve the supplied ScareSafe artwork; crop the screenshot margin in CSS. */
.scaresafe-mark{position:relative;display:block;aspect-ratio:1;overflow:hidden;border-radius:23%;isolation:isolate}.scaresafe-mark>img,.icon-row-image .scaresafe-mark>img{position:absolute;left:-9.5%;top:0;width:120%;height:108.75%;max-width:none;object-fit:fill;border-radius:0;box-shadow:none;transform:none!important}.icon-row-image>.scaresafe-mark{width:100%;height:100%;box-shadow:0 9px 20px #142e1928;transition:transform .4s ease}.icon-row-project:is(:hover,:focus) .scaresafe-mark{transform:translateY(-4px)}
.app-icon-row{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:600px){.app-icon-row{grid-template-columns:repeat(6,minmax(130px,1fr));overflow-x:auto}}
/* Keep the hull in contact with the matching cream foreground wave. */
.sailing-ship{top:var(--ship-top,50%);z-index:5}.ship-bob{animation:none;transform:rotate(var(--ship-pitch,0deg));transform-origin:50% 76%}

/* Soft downward entrances replace the clipped shutter transitions. */
.scroll-entrance{opacity:0;translate:0 -26px;transition:opacity .9s ease-out,translate 1.35s cubic-bezier(.16,1,.3,1)}.scroll-entrance.entrance-visible{opacity:1;translate:0 0}
.rate-options.cards-ready:not(.cards-visible) article{transform:translateY(-26px)}.rate-options article,.rate-options article+article,.rate-options article:last-child{transition-duration:.95s,1.35s,.3s;transition-timing-function:ease-out,cubic-bezier(.16,1,.3,1),ease}
@keyframes email-arrive{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}
.app-title-line{display:flex;align-items:center;gap:22px;margin:16px 0 28px}.app-title-line .app-icon{width:68px;height:68px;flex:0 0 68px;margin:0}.app-title-line h2{margin:0;line-height:1.1;min-width:0}
.motion-paused .scroll-entrance{opacity:1;translate:none;transition:none}
@media(max-width:700px){.app-title-line{gap:16px}.app-title-line .app-icon{width:56px;height:56px;flex-basis:56px}.rate-options.cards-ready:not(.cards-visible) article{transform:translateY(-22px)}}
@media(prefers-reduced-motion:reduce){.scroll-entrance{opacity:1;translate:none;transition:none}}
/* Trim inside the screenshot's pale bevel and rounded white corners. */
.scaresafe-mark,.app-title-line .scaresafe-mark{border-radius:25%;background:#0b2d54}.scaresafe-mark>img,.icon-row-image .scaresafe-mark>img{left:-13.9785%;top:-3.7634%;width:129.0323%;height:116.9355%}

/* ScareSafe and Minecraft each have their own column. */
.feature-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;background:var(--cream)}.feature-columns>.app-feature{display:flex;flex-direction:column;gap:48px;align-items:stretch;padding:64px clamp(24px,4vw,64px)}.feature-columns>.motion-work{padding:64px clamp(24px,4vw,64px);overflow:visible;min-width:0}.feature-columns .filmstrip{grid-template-columns:minmax(0,1fr);gap:32px;overflow:visible;padding:0;scroll-snap-type:none}.feature-columns .filmstrip figure{width:100%;min-width:0}.feature-columns .app-title-line{gap:18px}.feature-columns .app-title-line h2{font-size:clamp(34px,4.2vw,62px)}.feature-columns .app-title-line .app-icon{width:60px;height:60px;flex-basis:60px}.feature-columns .app-story>p:not(.eyebrow){max-width:none}.feature-columns .app-demonstration{margin-top:auto}.feature-columns .screen-window{width:min(100%,270px)}
@media(max-width:700px){.feature-columns{grid-template-columns:minmax(0,1fr)}.feature-columns>.app-feature,.feature-columns>.motion-work{padding:48px 6%}.feature-columns .app-title-line h2{font-size:45px}.feature-columns .app-title-line .app-icon{width:56px;height:56px;flex-basis:56px}.feature-columns .filmstrip{gap:24px}}

/* Supplied vector wordmarks share one unmoving emblem and common lettering bounds. */
.beach-title .hero-logo-heading{width:min(76vw,1100px);max-width:calc(100% - 72px);margin:0;font-size:0;line-height:0;text-shadow:none}.hero-logo-switch{display:block;width:100%;cursor:default;outline-offset:12px}.hero-logo-switch:focus-visible{outline:1px solid #ffffff80;border-radius:2px}.hero-wordmark{display:block;width:100%;height:auto;overflow:visible}.hero-name-nl,.hero-name-en{transition:opacity 1.5s ease}.hero-name-nl{opacity:1}.hero-name-en{opacity:0}
.beach-splash{object-position:center 75%;transform:none}.beach-overlay{background:linear-gradient(0deg,rgba(18,38,31,.65),rgba(18,38,31,.36) 60%,rgba(18,38,31,.18))}
.image-only-work .collection{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(min-width:701px) and (max-width:1100px){.image-only-work .collection{grid-template-columns:repeat(3,minmax(0,1fr))}.image-only-work .collection .project.campaign-wide{grid-column:span 2}}
@media(max-width:700px){.image-only-work .collection{grid-template-columns:repeat(2,minmax(0,1fr))}.image-only-work .collection .project.campaign-wide{grid-column:1/-1}.beach-title .hero-logo-heading{width:100%;max-width:calc(100% - 58px)}.beach-title{gap:12px}.beach-splash{object-position:55% 65%;transform:none}}
@media(prefers-reduced-motion:reduce){.hero-name-nl,.hero-name-en{transition:none}}
/* Keep the logo slot stable, with only one brand mark visible at a time. */
.nav .brand{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px) scale(.98);transition:none}
.nav .brand.nav-logo-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .35s ease,transform .5s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.nav .brand.nav-logo-visible{transition:none}}

/* Quiet captions below the artwork replace all hover description panels. */
.image-only-work .collection .project:nth-child(n){overflow:visible;cursor:default}.work-caption{display:flex;flex-wrap:wrap;gap:0 8px;margin:9px 0 0;font:400 10px/1.65 var(--sans);letter-spacing:0;color:var(--ink)}.work-caption .caption-name{font-weight:500}.caption-type{opacity:.65}.image-only-work .collection .project.campaign-wide .project-image{height:auto;aspect-ratio:2.1}.icon-row-project{aspect-ratio:auto;cursor:default;overflow:visible}.icon-row-image{aspect-ratio:1;height:auto}.icon-row-image>.scaresafe-mark{height:auto;aspect-ratio:1}.app-icon-row .work-caption{padding:0 12%}.icon-row-project:is(:hover,:focus) .icon-row-image img,.icon-row-project:is(:hover,:focus) .scaresafe-mark,.image-only-work .project:is(:hover,:focus) .project-image>img{transform:none}.image-only-work .collection .project.campaign-portrait:is(:hover,:focus) .project-image>img{object-position:center 28%}
/* A single Minecraft row directly above the compact, full-width ScareSafe feature. */
.motion-work{padding:42px 6% 48px;overflow:hidden}.filmstrip{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;overflow:visible;padding-bottom:0}.filmstrip .thumbnail-film{aspect-ratio:auto;position:relative}.thumbnail-frame{position:relative;aspect-ratio:16/9;overflow:hidden}.filmstrip figcaption{font:400 10px/1.65 var(--sans);text-transform:none;letter-spacing:0;padding-top:8px}.filmstrip figure{align-self:start}
.app-feature{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(200px,.7fr);align-items:center;gap:6%;padding:42px 6%}.app-title-line{margin:0 0 16px;gap:18px}.app-title-line h2{font-size:clamp(34px,3.7vw,54px)}.app-title-line .app-icon{width:58px;height:58px;flex-basis:58px}.app-story>p:not(.eyebrow){max-width:600px;font-size:12px;line-height:1.75;margin:12px 0}.app-links{margin-top:18px;gap:24px;font-size:10px}.app-credit{margin-top:18px;line-height:1.6}.scaresafe-press{margin-top:20px;padding-top:16px;max-width:600px}.scaresafe-press .press-label{margin-bottom:6px;font-size:10px}.scaresafe-press .press-text{font-size:10px}.scaresafe-press .press-article-link{margin-top:8px}.screen-window{height:320px;width:auto;aspect-ratio:736/1600;border-width:4px;border-radius:22px;transform:none}.screen-tabs{margin-top:10px;gap:16px}.screen-tabs button{font-size:8px;padding:5px 0}.screen-note{font-size:10px;margin-top:8px}
@media(max-width:900px){.filmstrip{grid-template-columns:repeat(4,minmax(220px,42vw));overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity}.filmstrip figure{scroll-snap-align:start}}
@media(max-width:700px){.app-feature{grid-template-columns:minmax(0,1fr) 150px;gap:24px;padding:32px 6%}.app-title-line{gap:12px}.app-title-line h2{font-size:34px}.app-title-line .app-icon{width:46px;height:46px;flex-basis:46px}.app-links{flex-wrap:wrap;gap:12px}.work-caption{font-size:9px;gap:0 5px}.screen-window{height:285px}.screen-tabs{gap:10px}}
@media(max-width:520px){.app-feature{grid-template-columns:minmax(0,1fr);gap:24px}.app-demonstration{align-items:center}.screen-window{height:300px}.app-story>p:not(.eyebrow){font-size:12px}}
.about-photo{border-radius:22px;overflow:hidden}.about-photo img{border-radius:inherit}

/* Vector brand artwork and smooth fractional alpha for supplied monochrome logos. */
.brand img{filter:none;image-rendering:auto}.nav{backdrop-filter:none}.nav .brand,.nav .brand.nav-logo-visible{transform:none}.nav .brand.nav-logo-visible{transition:opacity .35s ease}.logo-list img{image-rendering:auto;filter:none;transform:none}.client-logos .logo-list img:nth-child(2){height:48px;max-width:120px}
/* A second shore at the page bottom. The ship waits until this section is reached. */
.bottom-ocean{position:relative;height:170px;background:var(--ink);overflow:hidden}.bottom-ocean .ocean-waves{height:170px}.bottom-ocean .sailing-ship{animation:ship-voyage-left 64s linear -10s infinite;animation-play-state:paused;opacity:0}.bottom-ocean.ship-arrived .sailing-ship{animation-play-state:running}.bottom-ocean.ship-in-view .sailing-ship{opacity:1;transition:opacity .5s ease}.bottom-ocean .ship-bob>img{transform:scaleX(-1)}.bottom-ocean .ship-spray{transform:scaleX(-1)}.bottom-ocean .ship-wake{left:auto;right:-28%;animation-name:ship-wake-left}.bottom-ocean .wave-sleep .sailing-ship{animation-play-state:paused}
@keyframes ship-voyage-left{from{transform:translate3d(calc(100vw + 150px),0,0)}to{transform:translate3d(-150px,0,0)}}
@keyframes ship-wake-left{0%{opacity:0;transform:translateX(-10px) scale(.6)}30%{opacity:.6}100%{opacity:0;transform:translateX(24px) scale(1.2)}}
@media(max-width:700px){.bottom-ocean,.bottom-ocean .ocean-waves{height:130px}.client-logos .logo-list img:nth-child(2){height:40px;max-width:100px}}
@media(prefers-reduced-motion:reduce){.bottom-ocean .sailing-ship{animation:none!important;transform:translateX(70vw)}}
/* Wider, consistent side margins and a quieter hero wordmark. */
:root{--content-width:1120px;--page-gutter:max(clamp(32px,10vw,240px),calc((100% - var(--content-width))/2))}
.section-pad,.work.image-only-work,.app-feature,.motion-work,.contact-email-section,.achievement-row,.credibility-bars,.studio-strip,.nav,footer{padding-inline:var(--page-gutter)}
.beach-title{left:var(--page-gutter);right:var(--page-gutter)}.beach-title .hero-logo-heading{width:min(62vw,900px);max-width:calc(100% - 72px)}
@media(max-width:700px){:root{--page-gutter:clamp(28px,8vw,48px)}.beach-title .hero-logo-heading{width:72vw;max-width:calc(100% - 60px)}}

/* Shorter header and smaller hero mark, per the annotated reference. */
.beach-hero{height:30vw;min-height:280px;max-height:430px}.beach-title{bottom:96px}.beach-title .hero-logo-heading{width:min(47vw,680px)}.beach-hero .ocean-waves{height:clamp(88px,8vw,110px)}
.client-logos .logo-list img:nth-child(2){height:42px;max-width:112px}.client-logos .logo-list img:nth-child(4){width:68px;height:58px}
/* Three screenshots remain next to each other and arrive in sequence. */
.app-feature{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:6%;padding-block:42px}.app-demonstration{display:block;min-width:0}.screen-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.scaresafe-preview{margin:0;min-width:0;transition:opacity 1.5s ease-out,translate 1.7s cubic-bezier(.16,1,.3,1);transition-delay:var(--screen-delay)}.scaresafe-preview>img{width:100%;height:auto;aspect-ratio:736/1600;object-fit:cover;border:3px solid #101b15;border-radius:18px;box-shadow:0 10px 25px #0003}.scaresafe-preview figcaption{font:400 9px/1.5 var(--sans);color:#eae4d8b0;text-align:center;margin-top:10px}.screen-gallery.screens-ready:not(.screens-visible) .scaresafe-preview{opacity:0;translate:0 -28px}.screen-gallery.screens-visible .scaresafe-preview{opacity:1;translate:0 0}
.filmstrip .autoplay-film{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--cream)}.package-icon{display:block;width:32px;height:34px;flex:none;margin-bottom:20px;color:var(--ink)}.rate-options article{min-height:315px}
@media(max-width:850px){.app-feature{grid-template-columns:1fr;gap:28px}.screen-gallery{max-width:620px;margin:auto;gap:14px}.app-story>p:not(.eyebrow){max-width:none}}
@media(max-width:700px){.beach-hero{height:47svh;min-height:280px;max-height:340px}.beach-title{bottom:100px}.beach-title .hero-logo-heading{width:62vw}.screen-gallery{gap:10px}.scaresafe-preview>img{border-radius:14px;border-width:2px}.scaresafe-preview figcaption{font-size:8px}.client-logos .logo-list img:nth-child(4){width:58px;height:50px}}
.motion-paused .scaresafe-preview{opacity:1!important;translate:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.scaresafe-preview{opacity:1!important;translate:none!important;transition:none!important}}
/* Keep app artwork at icon size, with a square frame independent of the caption. */
.app-icon-row{align-items:start;overflow:visible}
.app-icon-row .icon-row-project{width:100%;max-width:144px;justify-self:center;min-width:0}
.app-icon-row .icon-row-image{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;padding:0}
.app-icon-row .icon-row-image>img,.app-icon-row .icon-row-image>.scaresafe-mark{display:block;position:absolute;inset:0;width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.app-icon-row .work-caption{padding:0;margin-top:14px;display:flex;flex-direction:column;gap:0}
@media(max-width:600px){.app-icon-row{grid-template-columns:repeat(6,112px);overflow-x:auto;gap:24px;padding-block:12px 20px}.app-icon-row .icon-row-project{max-width:112px}}
/* Artwork falls across the preceding section, then settles into its square row. */
.work.image-only-work{position:relative;z-index:2;overflow:visible}
.app-icon-row .icon-row-project{z-index:3}
.icon-drop-ready .icon-row-image{transform:translate3d(0,-160px,0) rotate(var(--drop-tilt));transform-origin:50% 35%;will-change:transform}
.icon-drop-ready .work-caption{opacity:0}
.icons-dropping.icon-drop-ready .icon-row-image{animation:icon-fall 2.6s cubic-bezier(.22,.65,.25,1) var(--drop-delay) both}
.icons-dropping.icon-drop-ready .work-caption{animation:icon-caption .8s ease-out calc(var(--drop-delay) + 1.5s) both}
@keyframes icon-fall{0%{transform:translate3d(0,-160px,0) rotate(var(--drop-tilt))}68%{transform:translate3d(0,7px,0) rotate(-1deg)}85%{transform:translate3d(0,-3px,0) rotate(.5deg)}100%{transform:translate3d(0,0,0) rotate(0deg)}}
@keyframes icon-caption{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
.services.section-pad{padding-block:48px 52px}.services>h2{font-size:clamp(32px,3vw,44px)}
.services .service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:28px}
.services .service-grid article{display:block;padding:18px 0 0;min-width:0}
.services .service-grid h3{font-size:clamp(19px,1.55vw,25px);line-height:1.35;margin:0 0 12px}
.services .service-grid p{font-size:12px;line-height:1.65;margin:0;max-width:280px}
@media(max-width:900px){.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 28px}}
@media(max-width:600px){.app-icon-row.icon-drop-ready{padding-top:100px;margin-top:-100px}.icon-drop-ready .icon-row-image{transform:translate3d(0,-80px,0) rotate(var(--drop-tilt))}.icons-dropping.icon-drop-ready .icon-row-image{animation-name:icon-fall-small}.services.section-pad{padding-block:36px 40px}.services .service-grid{gap:22px 18px;margin-top:22px}.services .service-grid h3{font-size:20px}.services .service-grid p{font-size:11px}@keyframes icon-fall-small{0%{transform:translate3d(0,-80px,0) rotate(var(--drop-tilt))}68%{transform:translate3d(0,5px,0) rotate(-1deg)}85%{transform:translate3d(0,-2px,0) rotate(.5deg)}100%{transform:none}}}
.motion-paused .icon-row-image{animation:none!important;transform:none!important}.motion-paused .app-icon-row .work-caption{opacity:1;animation:none!important}
@media(prefers-reduced-motion:reduce){.app-icon-row .icon-row-image{animation:none!important;transform:none!important}.app-icon-row .work-caption{opacity:1;animation:none!important}}

/* Claude fixes, 26 Oct 2026 */
/* KUMA tile spans two columns so the artwork grid ends on a full row at every breakpoint; its height follows the row */
.image-only-work .collection .project.kuma-wide{grid-column:span 2;display:flex;flex-direction:column}
.image-only-work .collection .project.kuma-wide .project-image{aspect-ratio:auto;flex:1 1 auto;min-height:0}
.image-only-work .collection .project.kuma-wide .project-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Video row sits one grid gap below the artwork instead of a separate section gap */
.work.image-only-work{padding-bottom:0}
.motion-work{padding-top:clamp(28px,4vw,64px)}
@media(max-width:700px){
 .image-only-work .collection .project.kuma-wide .project-image{flex:none;aspect-ratio:16/9}
 /* Stats: 2 x 2 on phones so the numbers no longer collide */
 .achievement-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px;column-gap:0;padding-block:32px}
 .achievement{padding:0 8px}
 .achievement:nth-child(2n){border-right:0}
 .achievement strong{font-size:clamp(34px,10.5vw,44px)}
 .achievement>span{font-size:11px;margin-top:6px}
 .achievement small{font-size:10px}
}
/* Overnight delivery note (shown outside Australia only, see app.js) */
.overnight-note{margin:0 0 0 auto;font:400 11px/1.5 var(--sans);letter-spacing:.01em;opacity:.78;text-align:right}
.studio-strip a,.studio-strip button{white-space:nowrap}
@media(min-width:1101px){.studio-strip .overnight-note:not([hidden])+button{margin-left:0}}
@media(max-width:1100px){.studio-strip{flex-wrap:wrap;row-gap:8px}.studio-strip .overnight-note{order:5;flex-basis:100%;margin:0;text-align:right}}
@media(max-width:700px){.studio-strip .overnight-note{text-align:left;margin-top:4px}}
.contact-email-section .overnight-note{margin:-18px 0 0;font-size:14px;color:#cbdcba;opacity:1;text-align:center}
@media(max-width:700px){.contact-email-section .overnight-note{margin-top:-10px;font-size:13px}}
/* Studio strip (ScareSafe app, Video & motion, motion toggle, overnight note) hidden on request; markup kept so it can be restored */
.studio-strip{display:none!important}
/* Hero: plain dark green instead of the photo */
.beach-hero{background:var(--ink)}
/* Bottom waves sit above Contact, upside down: the cream of the About section melts into them and the boat sails underneath */
.bottom-ocean .ocean-waves.ocean-flipped{inset:-1px 0 auto;transform:scaleY(-1)}
/* Night skies: Big Dipper (Netherlands) over the hero, Southern Cross and pointers (Australia) behind Contact */
.sky{position:absolute;z-index:2;height:auto;pointer-events:none;overflow:visible}
.beach-hero .sky-north{top:clamp(26px,9%,70px);right:var(--page-gutter);width:clamp(190px,21vw,330px)}
.contact-email-section{position:relative}
.contact-email-section>*:not(.sky){position:relative;z-index:1}
.contact-email-section .sky-south{top:28px;right:var(--page-gutter);width:clamp(170px,19vw,300px)}
.sky-line{stroke:#eae4d8;stroke-width:.7;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:.3}
.sky-core{fill:#f7f2e6}
.sky-star{opacity:0}
.sky.sky-on .sky-star{animation:sky-star-in 2.4s ease-out calc(.5s + var(--i) * .55s) forwards}
.sky.sky-on .sky-glow{animation:sky-twinkle 7s ease-in-out calc(3.5s + var(--i) * 1.1s) infinite}
.sky.sky-on .sky-line{animation:sky-line-in 2.8s ease-in-out calc(4.8s + var(--i) * .4s) forwards}
@keyframes sky-star-in{to{opacity:1}}
@keyframes sky-twinkle{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes sky-line-in{to{stroke-dashoffset:0}}
.motion-paused .sky .sky-star{animation:none;opacity:1}
.motion-paused .sky .sky-line{animation:none;stroke-dashoffset:0}
.motion-paused .sky .sky-glow{animation:none}
@media(prefers-reduced-motion:reduce){.sky .sky-star{animation:none!important;opacity:1}.sky .sky-line{animation:none!important;stroke-dashoffset:0}.sky .sky-glow{animation:none!important}}
@media(max-width:700px){
 .beach-hero .sky-north{top:18px;width:132px}
 .contact-email-section .sky-south{top:18px;width:128px}
}

/* Unconnected background stars in both skies */
.sky.sky-field{inset:0;width:100%;height:100%;z-index:1}
.sky-dot{fill:#f3eee2;opacity:0}
.sky-field.sky-on .sky-dot{animation:sky-dot-in 3.2s ease-out var(--d) forwards}
.sky-field.sky-on .sky-dot.tw{animation:sky-dot-in 3.2s ease-out var(--d) forwards,sky-dot-tw var(--t) ease-in-out calc(var(--d) + 3.2s) infinite}
@keyframes sky-dot-in{to{opacity:var(--o)}}
@keyframes sky-dot-tw{0%,100%{opacity:var(--o)}50%{opacity:calc(var(--o) * .3)}}
.motion-paused .sky-field .sky-dot{animation:none;opacity:var(--o)}
@media(prefers-reduced-motion:reduce){.sky-field .sky-dot{animation:none!important;opacity:var(--o)}}
@media(max-width:700px){.sky-dot.dk{display:none}}

/* Explain the offer before presenting achievements and portfolio evidence. */
.beach-hero{height:32vw;min-height:390px;max-height:480px}
.beach-title{flex-direction:column;align-items:flex-start;gap:20px;bottom:108px}
.beach-title .hero-logo-heading{max-width:100%}
.hero-offer{color:var(--cream);max-width:680px;text-shadow:0 1px 12px #10271955}
.hero-offer-title{font:500 clamp(18px,1.65vw,24px)/1.4 var(--sans);margin:0 0 5px}
.hero-offer-detail{font:400 13px/1.6 var(--sans);margin:0;color:#f1ede4}
.hero-offer-links{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:18px;font:500 12px/1.6 var(--sans)}
.hero-offer-links a{border-bottom:1px solid #eae4d899;padding-bottom:4px;transition:border-color .25s}
.hero-offer-links a:hover{border-color:var(--cream)}.hero-offer-links span{margin-left:8px}
.hero-offer-links a:focus-visible{outline-color:var(--cream)}
@media(max-width:700px){.beach-hero{height:55svh;min-height:390px;max-height:430px}.beach-title{bottom:105px;gap:18px}.hero-offer-title{font-size:19px}.hero-offer-detail{font-size:12px;max-width:340px}.hero-offer-links{margin-top:16px;gap:12px 24px}.beach-title .hero-logo-heading{width:min(72vw,420px)}}

/* One ScareSafe icon, with reserved row and title spaces during its journey. */
.scaresafe-dock>.scaresafe-mark{position:relative;display:block;width:100%;height:100%;box-shadow:none}
.scaresafe-flight{position:fixed;left:0;top:0;z-index:60;pointer-events:none;transform-origin:center;will-change:transform}
.scaresafe-flight[hidden]{display:none}
.scaresafe-flight>.scaresafe-mark{position:absolute;inset:0;width:100%;height:100%;box-shadow:0 12px 24px #062c2422}

/* ScareSafe's own orange and navy, sampled from the supplied app icon. */
#app-feature{background:#f99d3d;color:#0b2d54}
#app-feature .app-credit,#app-feature .press-label,#app-feature .press-text,#app-feature .scaresafe-preview figcaption{color:#0b2d54}
#app-feature .app-links a,#app-feature .press-article-link,#app-feature .scaresafe-press{border-color:#0b2d5466}
#app-feature a:hover{color:#061c36}

/* Angled newspaper clippings sit to the left of the ScareSafe story. */
#app-feature{grid-template-columns:minmax(140px,.65fr) minmax(240px,1.2fr) minmax(210px,1fr);gap:32px;overflow:visible;position:relative;padding-block:54px}
.press-clippings{align-self:center;position:relative;z-index:1;padding-block:12px;min-width:0}
.press-clipping{margin:0;position:relative;transform:rotate(7deg);transition:translate 2.6s cubic-bezier(.16,1,.3,1),opacity 2.1s ease-out;will-change:translate}
.press-clipping+ .press-clipping{margin-top:-8px;transform:rotate(-9deg) translateX(-8px);transition-delay:.38s;z-index:1}
.press-clipping img{width:100%;height:auto;display:block;border-radius:2px;box-shadow:0 12px 24px #0b2d5426;object-fit:cover}
.papers-ready:not(.papers-visible) .press-clipping{opacity:0;translate:-85px 24px}
.papers-visible .press-clipping{opacity:1;translate:0 0}
#app-feature .app-story,#app-feature .app-demonstration{min-width:0}
#app-feature .press-text{line-height:1.9}
#app-feature .screen-gallery{gap:8px}
@media(min-width:761px) and (max-width:1200px){#app-feature{gap:24px}#app-feature .app-title-line{gap:10px}#app-feature .app-title-line h2{font-size:32px}#app-feature .app-title-line .app-icon{width:44px;height:44px;flex-basis:44px}}
@media(max-width:760px){#app-feature{grid-template-columns:1fr;gap:32px;padding-block:40px}.press-clippings{grid-row:3;display:grid;grid-template-columns:1fr 1fr;gap:20px;width:min(100%,460px);justify-self:center;padding:6px 10px 14px}.press-clipping+ .press-clipping{margin-top:32px;transform:rotate(-7deg)}.press-clipping{transform:rotate(5deg)}#app-feature .app-demonstration{width:100%}#app-feature .screen-gallery{max-width:460px;gap:10px}}
.motion-paused .press-clipping{opacity:1!important;translate:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.press-clipping{opacity:1!important;translate:none!important;transition:none!important}}

/* Introductory offers: two small, tangible stickers above the fold. */
.intro-stickers{position:absolute;right:0;top:0;width:166px;display:flex;flex-direction:column;align-items:center;gap:8px;text-shadow:none}
.intro-sticker{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.25;box-shadow:0 8px 20px #061c3620;transition:scale .3s;pointer-events:auto}
.intro-sticker:hover{scale:1.04}.intro-sticker:focus-visible{outline:3px solid var(--cream);outline-offset:7px}
.intro-sticker-main{width:154px;min-height:154px;padding:25px 18px;background:#f3cb62;color:#163529;transform:rotate(9deg);clip-path:polygon(50% 0,58% 6%,69% 4%,75% 14%,86% 14%,89% 25%,98% 31%,96% 42%,100% 50%,94% 59%,96% 69%,86% 75%,86% 86%,75% 89%,69% 98%,58% 96%,50% 100%,41% 94%,31% 96%,25% 86%,14% 86%,11% 75%,2% 69%,4% 58%,0 50%,6% 41%,4% 31%,14% 25%,14% 14%,25% 11%,31% 2%,42% 4%)}
.intro-sticker-main>span{font:700 17px/1.1 var(--sans);text-transform:uppercase;max-width:120px;letter-spacing:-.02em}
.intro-sticker-main small{font:400 9px/1.3 var(--sans);margin-top:9px;max-width:105px}
.intro-sticker-regular{background:var(--cream);color:#163529;width:150px;padding:11px 14px;border-radius:3px;transform:rotate(-7deg);font:400 10px/1.4 var(--sans)}
.intro-sticker-regular strong{font-size:14px}
@media(min-width:901px){.intro-stickers{animation:offer-drift 6s ease-in-out infinite}.hero-offer{max-width:calc(100% - 200px)}}
@keyframes offer-drift{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(max-width:900px){.intro-stickers{position:static;width:auto;flex-direction:row;justify-content:flex-start;gap:10px;margin-top:18px;order:2}.hero-offer{display:flex;flex-direction:column}.intro-sticker-main{clip-path:none;min-height:0;width:auto;max-width:190px;flex:1;padding:10px 13px;border-radius:3px;transform:rotate(-3deg)}.intro-sticker-main>span{font-size:12px;max-width:none}.intro-sticker-main small{display:none}.intro-sticker-regular{width:auto;max-width:170px;flex:1;padding:8px 12px;transform:rotate(3deg);font-size:9px}.intro-sticker-regular strong{font-size:12px}.beach-hero{min-height:450px}.hero-offer-links{order:3;margin-top:22px}}
@media(prefers-reduced-motion:reduce){.intro-stickers{animation:none}.intro-sticker{transition:none}}
html[lang="nl"] .intro-sticker-main>span{font-size:14px;overflow-wrap:anywhere}
@media(max-width:900px){html[lang="nl"] .intro-sticker-main>span{font-size:11px}}

/* Service names and descriptions carry the section without an extra heading. */
.services .service-grid{margin-top:0;text-align:center}
.services .service-grid article{border:0;padding-top:0}
.services .service-grid p{margin-inline:auto}

/* Supplied recommendations, transcribed without dates or invented ratings. */
.reviews{background:var(--cream);padding-block:56px;border-bottom:1px solid var(--line)}
.reviews>h2{text-align:center;font-size:clamp(28px,3vw,38px);margin:0 0 32px}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;max-width:1000px;margin-inline:auto}
.review{margin:0;display:flex;flex-direction:column;min-width:0}
.review blockquote{margin:0 0 24px;padding:0;border:0;flex:1}
.review blockquote:before{content:'“';display:block;font:54px/.8 var(--serif);color:var(--gold);margin-bottom:8px}
.review blockquote p{font:400 13px/1.85 var(--sans);margin:0;color:var(--ink)}
.review figcaption{border-top:1px solid var(--line);padding-top:15px}
.review figcaption strong{display:block;font:500 14px/1.5 var(--sans)}
.review figcaption span{display:block;margin-top:4px;font:400 10px/1.6 var(--sans);opacity:.75}
@media(max-width:700px){.reviews{padding-block:40px}.review-grid{grid-template-columns:1fr;gap:32px}.review blockquote p{font-size:12px}.reviews>h2{margin-bottom:26px}}

/* Six clear, concise services. */
.services .service-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.services .service-grid h3{font-size:clamp(17px,1.5vw,21px);min-height:2.7em;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.services .service-grid p{font-size:11px;line-height:1.65;max-width:190px}
@media(max-width:1100px){.services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.services .service-grid h3{min-height:0;font-size:21px}}
@media(max-width:600px){.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.services .service-grid h3{font-size:19px}.services .service-grid p{font-size:11px}}

/* One continuous surface per layer: no translated track or reset seam. */
.ocean-layer{left:-1px;bottom:-2px;width:calc(100% + 2px);animation:none!important;transform:none!important;will-change:auto}
.services .service-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:18px}
@media(max-width:1100px){.services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.services .service-grid article:last-child{grid-column:2}}
@media(max-width:600px){.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.services .service-grid article:last-child{grid-column:1/-1;max-width:220px;justify-self:center}}

/* Three remaining films fill the row after removing Cousin Chronicles. */
.motion-work .filmstrip{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.motion-work .filmstrip{grid-template-columns:repeat(3,minmax(220px,42vw))}}

/* Service selection doubles as a short, visitor-controlled email brief. */
.services.section-pad{padding-block:36px 30px}
.service-picker{border:0;padding:0;margin:0;min-width:0}
.service-picker legend,.service-preview-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.services .service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 30px;margin:0;padding:0;border:0;text-align:left}
.services .service-grid article{display:block;min-width:0;padding:0;border:0}
.services .service-grid article:last-child{grid-column:auto;max-width:none;justify-self:stretch}
.service-choice{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:10px 0;cursor:pointer;font:500 clamp(16px,1.35vw,19px)/1.4 var(--sans);letter-spacing:-.015em;color:var(--cream)}
.service-choice input{appearance:none;flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;border:1px solid #eae4d899;border-radius:3px;background:transparent;cursor:pointer}
.service-choice input:checked{background:var(--gold);border-color:var(--gold)}
.service-choice input:checked:after{content:"";display:block;width:5px;height:9px;margin:1px 0 0 5px;border:solid var(--palette-deep,var(--ink));border-width:0 2px 2px 0;transform:rotate(45deg)}
.service-choice input:focus-visible{outline:2px solid var(--cream);outline-offset:4px}
.service-choice:hover,.service-choice:has(input:checked){color:var(--gold)}
.service-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid #bea36744}
.service-actions p{margin:0;color:var(--cream);opacity:.75;font:400 12px/1.5 var(--sans)}
.service-draft-buttons{display:flex;align-items:center;gap:22px}.service-draft-buttons[hidden],.service-email-preview[hidden]{display:none}
.service-email{font:500 13px/1.5 var(--sans);padding:10px 16px;border:1px solid var(--gold);border-radius:4px;background:var(--gold);color:var(--palette-deep,var(--ink));white-space:nowrap}
.service-draft-buttons button{font:400 12px/1.5 var(--sans);color:var(--cream);padding:8px 0;border:0;border-bottom:1px solid #eae4d866;background:none;cursor:pointer}
.service-email-preview{margin-top:20px;color:var(--cream);font:400 12px/1.6 var(--sans)}
.service-email-preview summary{cursor:pointer;width:fit-content;padding:4px 0}
.service-email-preview textarea{display:block;width:100%;max-width:740px;margin-top:14px;padding:16px;border:1px solid #bea36766;border-radius:4px;background:#ffffff08;color:var(--cream);font:400 13px/1.65 var(--sans);resize:vertical}
.services-ready .service-grid article{opacity:0;transform:translate3d(-18px,0,0);transition:opacity .25s ease var(--service-delay),transform .42s cubic-bezier(.2,.7,.25,1) var(--service-delay)}
.services-visible .service-grid article{opacity:1;transform:none}
@media(max-width:700px){.services.section-pad{padding-block:26px}.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.service-choice{font-size:16px;gap:10px}.service-actions{align-items:flex-start;flex-direction:column;gap:14px;margin-top:16px}.service-draft-buttons{gap:20px}}
@media(prefers-reduced-motion:reduce){.services-ready .service-grid article{opacity:1;transform:none;transition:none}}
.motion-paused .services-ready .service-grid article{opacity:1;transform:none;transition:none}
