@font-face{font-family:Outfit;src:url('/assets/fonts/outfit.woff2');font-weight:600;font-display:swap}@font-face{font-family:Quicksand;src:url('/assets/fonts/quicksand.woff2');font-weight:700;font-display:swap}@font-face{font-family:Libre;src:url('/assets/fonts/libre.woff2');font-weight:400;font-display:swap}
:root{--paper:#f6f5f1;--ink:#151515;--red:#ff3028;--blue:#091bdf;--sky:#83d8ef;--yellow:#ffce45;--pink:#f58fc6;--line:#e1dfd7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Outfit,Arial,sans-serif;font-size:15px;font-weight:600;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:6px}img,video{display:block;max-width:100%}button{border:0;background:none}h1,h2,p{margin:0}h1,h2,.serif-lead{font-family:Libre,Georgia,serif;font-weight:400}h2{font-size:38px;line-height:1.4;letter-spacing:-1.5px}.shell{width:min(824px,calc(100% - 48px));margin-inline:auto}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.8px;color:#8a877f;margin-bottom:12px}.muted{font-size:15px;line-height:1.75;color:#6f6b63}.pill{display:inline-flex;align-items:center;gap:25px;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:50px;padding:12px 21px;font-size:13px;transition:transform .2s,background .2s}.pill:hover{background:var(--blue);transform:translateY(-3px);border-color:var(--blue)}.pill.outline{color:var(--ink);background:transparent;border-color:var(--line)}.text-link{display:inline-flex;gap:14px;align-items:center;font-size:13px;border-bottom:1px solid #b9b5aa;padding-bottom:5px}.text-link:hover{color:var(--blue)}.hand-note{font-family:Quicksand,Arial,sans-serif;font-weight:700;font-size:15px;line-height:1.35;transform:rotate(-8deg);color:#6c6b61}.doodle-arrow{width:62px;height:62px;display:block}.skip-link{position:fixed;top:-80px;left:20px;z-index:20;background:white;padding:15px}.skip-link:focus{top:10px}
.site-header{height:130px;display:flex;align-items:center;justify-content:center;gap:62px;position:relative;max-width:1000px;margin:auto;padding:20px}.site-header>nav{display:flex;gap:28px}.site-header a:not(.brand),.lang-switch{font-size:12px}.site-header a:not(.brand):hover,.lang-switch:hover{color:var(--red)}.header-right{display:flex;gap:28px;align-items:center}.lang-switch{font-size:10px;border:1px solid #d4d1c7;border-radius:50%;width:29px;height:29px;padding:0}.brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);flex-shrink:0}.brand svg{width:54px;height:54px;overflow:visible}.brand-type{display:block}.brand-by{font:700 13.5px/1.3 Quicksand,Arial,sans-serif;display:flex;margin-bottom:1px}.brand-name{font:600 30px/1.1 Outfit,Arial,sans-serif;letter-spacing:-.6px;display:flex}.brand-type span span{display:inline-block;animation:ink-fade 8s calc(var(--i)*.085s) infinite}.brand .head{transform-box:fill-box;transform-origin:center;animation:hello 8s infinite}.brand .eye{transform-box:fill-box;transform-origin:center;animation:blink 8s infinite}.menu-toggle{display:none}.mobile-nav[hidden]{display:none!important}.tone-sky{color:var(--sky);--center:var(--blue)}.tone-red{color:var(--red);--center:var(--paper)}.tone-blue{color:var(--blue);--center:var(--yellow)}.tone-yellow{color:var(--yellow);--center:var(--red)}.tone-pink{color:var(--pink);--center:var(--blue)}.flower{width:100%;height:100%;display:block;overflow:visible}.hero{position:relative;overflow:hidden;min-height:620px;padding:45px 24px 65px;display:flex;justify-content:center}.hero-inner{position:relative;text-align:center;width:650px;z-index:1}.hello-mark{width:38px;height:38px;margin:0 auto 12px;color:var(--red);}.hello-mark svg{height:100%;width:100%}.hello{font-size:13px;margin-bottom:16px}.hero h1{font-size:54px;line-height:1.22;letter-spacing:-2.4px}.hero h1 em{font-style:normal}.hero-body{max-width:420px;margin:24px auto 25px;font-size:14px;line-height:1.65;color:#656158}.hero-flower{position:absolute;width:385px;height:385px;top:75px;animation:flower-drift 18s linear infinite}.hero-flower.left{left:calc(50% - 855px);transform:rotate(-12deg)}.hero-flower.right{right:calc(50% - 855px);animation-direction:reverse}.hero-note{position:absolute;left:calc(100% - 33px);top:335px;width:150px;color:var(--red);font-size:13px;text-align:left;transform:rotate(9deg)}.hero-note .doodle-arrow{transform:rotate(68deg);margin:8px 0 0 -40px;width:47px}.showcase{margin:0 0 100px;overflow:hidden;text-align:center}.showcase-intro{padding:8px 20px 35px}.tiny-face{display:block;width:30px;height:30px;color:var(--red);margin:0 auto 14px}.tiny-face svg{width:100%;height:100%}.showcase h2{font-size:24px;letter-spacing:-.7px}.marquee{overflow:hidden;mask-image:linear-gradient(to right,transparent,black 5%,black 95%,transparent)}.marquee-track{display:flex;gap:16px;width:max-content;animation:marquee 35s linear infinite;padding:10px 0}.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}.marquee-track>a{flex:none;width:355px;border-radius:16px;overflow:hidden;position:relative;background:#e6e4df;height:235px;transform:rotate(-2deg)}.marquee-track>a:nth-child(2n){transform:rotate(2deg)}.marquee-track img{width:100%;height:100%;object-fit:cover;object-position:top}.marquee-track>a>span{position:absolute;bottom:12px;left:12px;background:#ffffffe6;border-radius:20px;padding:7px 13px;font-size:11px}.marquee-toggle{margin-top:18px;color:#817b71;font-size:10px}.showcase.paused .marquee-track{animation-play-state:paused}.section-heading{margin-bottom:42px}.serif-lead{font-size:20px;line-height:1.6;letter-spacing:-.4px;max-width:580px;margin-top:13px}.work{margin-bottom:120px}.project-row{display:grid;grid-template-columns:3fr 1fr;gap:16px;margin-bottom:18px;min-height:377px}.project-row:nth-of-type(2n){grid-template-columns:1fr 3fr}.project-row:nth-of-type(2n) .project-art{order:2}.project-art{background:#e6e4df;border-radius:30px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:background .3s}.project-art:hover{background:#dfded6}.project-stage{height:320px;position:relative;perspective:1000px}.desktop-frame{position:absolute;width:79%;left:6%;top:34px;transform:rotate(-7deg);border:5px solid white;border-radius:13px;background:white;box-shadow:0 10px 25px #29271b13;overflow:hidden;transition:transform .5s}.desktop-frame video{width:100%;aspect-ratio:1.64;object-fit:cover;object-position:top}.window-bar{height:13px;display:flex;align-items:center;gap:3px;padding-left:7px;background:#fbfbfb}.window-bar i{width:3px;height:3px;background:#d1d1ce;border-radius:50%}.phone-frame{position:absolute;width:23%;right:5%;top:58px;border:5px solid white;border-radius:20px;transform:rotate(12deg);background:white;box-shadow:0 10px 25px #29271b1c;overflow:hidden;transition:transform .5s}.phone-frame:before{content:'';position:absolute;top:5px;left:30%;width:40%;height:8px;border-radius:20px;background:#161616;z-index:1}.phone-frame video{width:100%;aspect-ratio:.49;object-fit:cover;object-position:top}.project-art:hover .desktop-frame{transform:rotate(-3deg) translateY(-5px)}.project-art:hover .phone-frame{transform:rotate(7deg) translateY(-7px)}.project-label{display:flex;align-items:center;gap:8px;padding:0 25px 22px;font-size:13px;min-height:50px}.project-label>span:nth-child(2){color:#989187;font-size:12px}.round-arrow{width:26px;height:26px;border-radius:50%;background:white;display:grid;place-items:center;margin-left:auto}.project-side{display:grid;grid-template-rows:1fr 1.05fr;gap:16px}.ornament{display:grid;place-items:center;border-radius:30px;background:var(--blue);padding:35px}.ornament .flower{width:85px;height:85px;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.ornament:hover .flower{transform:rotate(35deg)}.ornament.tone-sky{background:var(--sky);color:var(--blue);--center:var(--yellow)}.ornament.tone-blue{background:var(--blue);color:var(--yellow);--center:var(--pink)}.ornament.tone-yellow{background:var(--yellow);color:var(--red);--center:var(--paper)}.project-note{background:#fff;border-radius:30px;padding:20px 19px;display:flex;flex-direction:column;justify-content:space-between;gap:13px}.project-number{font-size:8px;letter-spacing:1px;color:#aea492}.project-note p{font-size:12px;line-height:1.5}.project-note .text-link{font-size:10px;align-self:start;padding-bottom:3px;gap:4px}.work-more{margin-top:20px}.services{margin-bottom:130px}.service-visual{height:150px;position:relative;display:flex;align-items:center;gap:30px}.mini-device{width:160px;background:white;border:5px solid white;border-radius:9px;transform:rotate(-9deg);box-shadow:8px 9px 0 #e0ded4,-5px -8px 0 #d8e7e5}.mini-device img{aspect-ratio:1.6;object-fit:cover;object-position:top;border-radius:3px}.service-visual .hand-note{font-size:13px}.service-visual .doodle-arrow{height:40px;transform:rotate(60deg);margin-left:60px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 35px;margin-top:15px}.service-grid span{font-size:13px;padding:13px 0;border-bottom:1px dashed #d7d1c6}.about{display:grid;grid-template-columns:1fr 1.2fr;gap:65px;align-items:center;margin-bottom:145px}.about-art{position:relative;padding:20px 20px 65px}.portrait{width:230px;height:230px;border-radius:50%;padding:0;perspective:900px;display:block;margin:auto;transform:rotate(-5deg)}.portrait-inner{display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.portrait[aria-pressed=true] .portrait-inner{transform:rotateY(180deg)}.portrait-front,.portrait-back{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;overflow:hidden;box-shadow:0 0 0 12px #e9e4d8}.portrait-back{transform:rotateY(180deg)}.portrait img{width:100%;height:100%;object-fit:cover}.about-art .hand-note{position:absolute;bottom:0;left:50px;font-size:12px}.about-art .doodle-arrow{position:absolute;top:-34px;right:-65px;transform:rotate(170deg);width:45px}.about-copy .serif-lead{font-size:18px;line-height:1.65}.about-copy .muted{margin-top:19px;font-size:13px}.about-copy .text-link{margin-top:24px}.faq{margin-bottom:125px}.faq h2{font-size:35px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;cursor:pointer;padding:21px 40px 21px 0;position:relative;font-size:15px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:8px;top:17px;font-size:25px;font-weight:600;color:#9b9388}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:14px;line-height:1.8;color:#787165;max-width:650px;padding:0 35px 23px 0}.contact{position:relative;text-align:center;padding:45px 20px 100px;min-height:450px}.contact .mini-flower{width:48px;height:48px;margin:0 auto 23px}.contact h2{font-size:43px;line-height:1.35}.contact-body{color:#7a7367;font-size:14px;max-width:410px;margin:20px auto 25px;line-height:1.7}.email{display:block;margin-top:17px;font-size:12px;color:#8a8276}.contact .hand-note{position:absolute;right:-30px;bottom:140px;font-size:13px}.contact .doodle-arrow{transform:rotate(90deg);margin-left:-38px;width:50px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding:25px 0 50px;gap:20px}.footer-top>.brand{transform:scale(.8);transform-origin:left}.footer-top>a:not(.brand),.footer-top>span{font-size:10px;color:#8b8378}.flower-garden{display:grid;grid-template-columns:repeat(8,1fr);overflow:hidden;position:relative;margin:0 -35px -35px;gap:10px 14px}.flower-cell{display:grid;place-items:center;height:145px;transform:rotate(var(--turn));}.flower-cell>.flower{width:118px;height:118px;animation:garden-sway 12s ease-in-out infinite alternate}.flower-cell>.logo-svg{width:112px;height:112px}.flower-cell:nth-child(5n) .flower{animation-delay:-5s}.flower-garden>p{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:27px 35px;background:var(--paper);font:400 18px/1.6 Libre,serif;text-align:center;border-radius:60px;width:235px}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.js-motion .reveal.visible{opacity:1;transform:none}.works-page{padding-top:45px}.back-link{display:inline-block;font-size:12px;color:#8d8578;margin-bottom:45px}.project-detail{padding:45px 0 90px}.project-detail>h1{font-size:56px;line-height:1.25;letter-spacing:-2px;max-width:710px}.detail-lead{font:400 21px/1.65 Libre,serif;max-width:620px;margin:25px 0 35px}.project-meta{display:flex;gap:25px;font-size:12px;color:#8b8173;align-items:center;margin-bottom:40px;flex-wrap:wrap}.project-meta a{margin-left:auto;color:#171717}.detail-media{padding:35px;border-radius:28px;background:#e6e4df}.detail-media video{width:100%;border:5px solid white;border-radius:12px}.detail-description{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px;margin:70px 0 40px}.detail-description h2{font-size:29px}.detail-description p{font-size:14px;line-height:1.75;color:#7b7265}.detail-tags{display:flex;gap:10px;flex-wrap:wrap;grid-column:2}.detail-tags span{border:1px solid var(--line);padding:7px 10px;border-radius:20px;font-size:10px}.detail-mobile{background:#e9e7df;border-radius:30px;padding:45px;display:flex;align-items:center;justify-content:center;gap:50px}.detail-mobile video{max-width:225px;border:6px solid white;border-radius:25px}.next-project{display:flex;align-items:center;gap:25px;margin-top:65px;border-top:1px solid var(--line);padding-top:28px;font-size:25px}.next-project>span{font-size:11px;margin-right:auto;color:#998d7a}.next-project strong{font:400 25px Libre,serif}
@keyframes ink-fade{0%{opacity:0;filter:blur(2px)}18%,89%{opacity:1;filter:blur(0)}98%,100%{opacity:0;filter:blur(1px)}}@keyframes hello{0%,35%,100%{transform:rotate(0)}15%{transform:rotate(-5deg)}23%{transform:rotate(3deg)}}@keyframes blink{0%,32%,37%,100%{transform:scaleY(1)}34%{transform:scaleY(.08)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes flower-drift{to{rotate:360deg}}@keyframes garden-sway{from{rotate:-10deg}to{rotate:12deg}}
@media(min-width:1500px){.hero-flower.left{left:-135px}.hero-flower.right{right:-135px}}
@media(max-width:1050px){.hero-flower{width:300px;height:300px;top:130px}.hero-flower.left{left:-170px}.hero-flower.right{right:-170px}.hero-note{left:90%;top:365px;font-size:11px}.contact .hand-note{right:0}.flower-cell{height:110px}.flower-cell>.flower{width:95px;height:95px}.flower-cell>.logo-svg{width:95px;height:95px}}
@media(max-width:700px){.shell{width:calc(100% - 36px)}.site-header{height:100px;justify-content:space-between;padding:19px 22px;gap:15px}.site-header>nav:not(.mobile-nav){display:none}.brand svg{width:44px;height:44px}.brand{gap:8px}.brand-by{font-size:11px}.brand-name{font-size:25px}.header-right{gap:15px}.header-right>a{display:none}.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:8px 0;width:22px}.menu-toggle span{height:1.5px;width:22px;background:var(--ink);transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}.site-header .mobile-nav{position:absolute;top:83px;left:18px;right:18px;padding:27px;background:#eeece5;z-index:10;border-radius:18px;display:flex;flex-direction:column;gap:23px;box-shadow:0 15px 30px #24221513}.site-header .mobile-nav a{font-size:22px}.hero{min-height:620px;padding:32px 18px 65px}.hero-inner{width:100%}.hello-mark{width:33px;height:33px}.hello{font-size:12px;margin-bottom:19px}.hero h1{font-size:34px;line-height:1.35;letter-spacing:-1.6px}.hero-body{font-size:12px;max-width:285px;line-height:1.7;margin:20px auto 24px}.hero-flower{width:155px;height:155px;top:365px;opacity:.95}.hero-flower.left{left:-92px}.hero-flower.right{right:-92px}.hero-note{top:410px;left:auto;right:28px;width:108px;font-size:10px;transform:rotate(-6deg)}.hero-note .doodle-arrow{transform:rotate(180deg);margin:0 0 0 -28px;width:35px}.showcase{margin-bottom:68px}.showcase-intro{padding-bottom:24px}.showcase h2{font-size:20px}.marquee-track>a{width:270px;height:182px}.marquee-track{gap:12px}.marquee-track>a>span{font-size:9px}.section-heading{margin-bottom:28px}h2{font-size:29px;letter-spacing:-1px}.serif-lead{font-size:16px;line-height:1.7}.eyebrow{font-size:9px}.work{margin-bottom:75px}.project-row,.project-row:nth-of-type(2n){grid-template-columns:1fr;gap:10px;margin-bottom:26px;min-height:0}.project-row:nth-of-type(2n) .project-art{order:0}.project-art{border-radius:24px}.project-stage{height:252px}.desktop-frame{top:38px;left:5%;width:82%;border-width:4px;border-radius:9px}.desktop-frame video{aspect-ratio:1.55}.phone-frame{width:25%;top:62px;right:5%;border-width:4px;border-radius:15px}.phone-frame:before{height:5px}.project-label{font-size:12px;padding:0 17px 17px;gap:5px;flex-wrap:wrap}.project-label>span:nth-child(2){font-size:10px}.project-side{grid-template-rows:1fr;grid-template-columns:85px 1fr;gap:10px}.ornament{padding:19px;border-radius:23px}.ornament .flower{width:48px;height:48px}.project-note{padding:15px;border-radius:23px;gap:8px}.project-note p{font-size:11px}.project-number{font-size:7px}.project-note .text-link{font-size:10px}.services{margin-bottom:85px}.service-grid{gap:0 18px}.service-grid span{font-size:11px;padding:13px 0}.service-visual{height:140px;gap:27px}.mini-device{width:125px}.service-visual .hand-note{font-size:10px}.about{grid-template-columns:1fr;gap:30px;margin-bottom:85px}.about-art{padding:0 20px 60px}.portrait{width:200px;height:200px}.about-art .hand-note{left:75px}.about-copy .serif-lead{font-size:17px}.faq{margin-bottom:55px}.faq h2{font-size:29px}.faq-list summary{font-size:13px;line-height:1.55;padding:20px 35px 20px 0}.faq-list details p{font-size:12px}.contact{padding:35px 10px 115px;min-height:460px}.contact h2{font-size:31px;letter-spacing:-1.4px}.contact-body{font-size:12px;max-width:290px}.contact .hand-note{bottom:24px;right:35px;font-size:10px}.contact .doodle-arrow{width:32px;margin-left:-20px}.contact .mini-flower{width:39px;height:39px}.footer-top{flex-wrap:wrap;padding:20px 0 32px;gap:12px}.footer-top>span{font-size:8px}.footer-top>.brand{transform:scale(.85)}.footer-top>a:not(.brand){font-size:9px}.flower-garden{grid-template-columns:repeat(5,1fr);gap:8px;margin:0 -25px -25px}.flower-cell{height:82px}.flower-cell>.flower,.flower-cell>.logo-svg{width:73px;height:73px}.flower-cell:nth-child(n+26){display:none}.flower-garden>p{width:155px;font-size:12px;padding:16px 15px}.project-detail{padding-top:28px}.back-link{font-size:11px;margin-bottom:35px}.project-detail>h1{font-size:36px;letter-spacing:-1.4px}.detail-lead{font-size:17px;margin:20px 0 28px}.project-meta{gap:14px;font-size:10px;margin-bottom:26px}.project-meta a{margin-left:0}.detail-media{padding:14px;border-radius:18px}.detail-media video{border-width:3px;border-radius:8px}.detail-description{grid-template-columns:1fr;gap:19px;margin:43px 0 30px}.detail-description h2{font-size:26px}.detail-description p{font-size:13px}.detail-tags{grid-column:1}.detail-mobile{padding:28px 20px;gap:20px}.detail-mobile video{width:57%;border-width:4px}.detail-mobile .hand-note{font-size:10px}.detail-mobile .doodle-arrow{width:37px}.next-project{gap:15px;font-size:20px;margin-top:40px;flex-wrap:wrap}.next-project strong{font-size:19px}.works-page{padding-top:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.brand-type span span{opacity:1;filter:none}}
footer{overflow:hidden}
.skip-link{top:10px;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}
/* Personal identity: one monochrome signature, ocean flow and climbing routes. */
.brand{color:#111;--paper:#fff}.brand-type span span{animation:none;opacity:1;filter:none}.brand:hover .brand-type span span,.brand:focus-visible .brand-type span span{animation:signature-ink 1.5s calc(var(--i)*.07s) both}.brand .head{animation:face-float 4.8s ease-in-out infinite}.brand .eye{animation:blink 4.8s infinite}.hero{min-height:590px;padding-top:70px}.hero-flow{position:absolute;width:380px;height:450px;top:45px;color:#949b9a;opacity:.38;pointer-events:none}.hero-flow.left{left:calc(50% - 790px);transform:rotate(-20deg)}.hero-flow.right{right:calc(50% - 790px);transform:rotate(12deg)}.hero-flow .flow-art{width:100%;height:100%}.hero-flow .wave-art{animation:surf-drift 11s ease-in-out infinite alternate}.hero-flow .contour-art{animation:surf-drift 13s ease-in-out infinite alternate-reverse}.hero-note{color:#77796f;top:300px}.showcase{margin-bottom:100px}.showcase-intro{padding-top:10px;padding-bottom:45px}.showcase h2{font-size:30px;letter-spacing:-1px}.marquee-track{gap:24px;animation-duration:48s}.marquee-track>a{width:clamp(520px,48vw,720px);height:420px;transform:rotate(-1.2deg);border-radius:22px}.marquee-track>a:nth-child(2n){transform:rotate(1.2deg)}.marquee-track>a>span{font-size:13px;left:20px;bottom:20px;padding:10px 16px}.flow-art{width:100%;height:100%;overflow:visible}.ornament,.ornament.tone-sky,.ornament.tone-blue,.ornament.tone-yellow{background:#eae8e1;color:#434941;padding:25px}.ornament .flow-art{width:125px;height:115px}.ornament path{stroke-dasharray:600;stroke-dashoffset:0;transition:stroke-dashoffset 1s}.ornament .climb-route,.ornament .rope-art path:first-child{stroke-dasharray:3 9}.ornament:hover .flow-art{transform:translateY(-3px);transition:transform .5s}.ornament.tracing path{animation:route-trace 1.7s ease-in-out}.photo-portrait{border-radius:40% 48% 43% 45%;overflow:hidden;box-shadow:0 0 0 12px #e9e4d8;transform:rotate(-5deg)}.photo-portrait img{width:100%;height:100%;object-fit:cover}.contact{padding-top:40px;min-height:400px}.footer-signoff{font:400 15px Libre,serif!important;color:#565a52!important}.flow-landscape{height:420px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 18% 90%,#dfe6e080,transparent 60%),radial-gradient(ellipse at 80% 90%,#ddd9c580,transparent 55%);color:#858c82}.flow-landscape .flow-art{width:100%;height:100%}.landscape-wave{position:absolute;left:-4%;bottom:-110px;width:55%;height:460px;transform:rotate(-8deg)}.landscape-contour{position:absolute;right:-5%;bottom:-65px;width:60%;height:450px;transform:rotate(15deg)}.landscape-rope{position:absolute;left:42%;bottom:25px;width:150px;height:170px;opacity:.45;transform:rotate(-20deg)}.flow-landscape>p{position:absolute;left:50%;top:110px;transform:translateX(-50%);text-align:center;font:400 23px/1.6 Libre,serif;color:#535d54}.flow-landscape .wave-art{animation:surf-drift 16s ease-in-out infinite alternate}.flow-landscape .climb-route{animation:route-flow 12s linear infinite}.footer-top{padding-top:25px;padding-bottom:35px}
@keyframes signature-ink{from{opacity:.05;filter:blur(3px)}to{opacity:1;filter:blur(0)}}@keyframes face-float{0%,100%{transform:rotate(-3deg) translateY(1px)}50%{transform:rotate(3deg) translateY(-2px)}}@keyframes surf-drift{from{transform:translate(-5px,3px)}to{transform:translate(7px,-6px)}}@keyframes route-trace{0%{stroke-dashoffset:600}100%{stroke-dashoffset:0}}@keyframes route-flow{to{stroke-dashoffset:-120}}
@media(max-width:1050px){.hero-flow{width:270px;height:360px;top:75px}.hero-flow.left{left:-130px}.hero-flow.right{right:-140px}.hero-note{left:90%;top:325px;font-size:11px}.marquee-track>a{width:560px;height:355px}}
@media(max-width:700px){.hero{min-height:530px;padding-top:47px;padding-bottom:55px}.hero-flow{width:190px;height:220px;top:310px;opacity:.28}.hero-flow.left{left:-105px}.hero-flow.right{right:-100px}.hero-note{top:343px;left:auto;right:25px;font-size:10px}.showcase h2{font-size:22px}.showcase-intro{padding:5px 20px 30px}.marquee-track>a{width:88vw;max-width:440px;height:245px;border-radius:16px}.marquee-track{gap:16px;animation-duration:42s}.marquee-track>a>span{font-size:10px;left:13px;bottom:13px;padding:8px 12px}.showcase{margin-bottom:75px}.ornament,.ornament.tone-sky,.ornament.tone-blue,.ornament.tone-yellow{padding:13px}.ornament .flow-art{width:62px;height:70px}.photo-portrait{width:210px;height:240px}.about-art .hand-note{left:70px;font-size:10px}.footer-top{align-items:center}.footer-signoff{font-size:12px!important;max-width:130px}.flow-landscape{height:300px}.flow-landscape>p{font-size:19px;top:42px;width:100%}.landscape-wave{width:80%;height:270px;left:-18%;bottom:-60px}.landscape-contour{width:88%;height:300px;right:-29%;bottom:-40px}.landscape-rope{width:85px;height:130px;left:46%;bottom:10px}.contact{min-height:385px;padding-top:20px;padding-bottom:100px}}
@media(prefers-reduced-motion:reduce){.brand:hover .brand-type span span,.brand:focus-visible .brand-type span span,.hero-flow .flow-art,.flow-landscape .flow-art,.ornament.tracing path{animation:none!important}}
/* Freehand scenes spill into surrounding whitespace and beyond the viewport. */
body{overflow-x:clip}.hero{overflow:visible;isolation:isolate}.hero-flow{top:30px;opacity:.62;color:#858a81;z-index:-1;overflow:visible}.hero-flow.left{width:590px;height:445px;left:calc(50% - 1030px);transform:rotate(-7deg);top:105px}.hero-flow.right{width:420px;height:555px;right:calc(50% - 990px);transform:rotate(8deg);top:-70px}.hero-flow svg{overflow:visible}.hero-flow .wave-art{animation:ocean-breathe 12s ease-in-out infinite alternate}.hero-flow .contour-art{animation:rock-breathe 16s ease-in-out infinite alternate}.hero-flow .climb-route{stroke-dasharray:none}.ornament .flow-art{width:135px;height:120px}.ornament .contour-art{height:130px}.ornament .climb-route{stroke-dasharray:none}.flow-landscape{height:490px;overflow:visible}.landscape-wave{width:70%;height:510px;left:-17%;bottom:-115px;transform:rotate(-6deg)}.landscape-contour{width:44%;height:680px;right:-12%;bottom:-215px;transform:rotate(13deg)}.landscape-rope{display:none}.flow-landscape .climb-route{animation:none;stroke-dasharray:none}.flow-landscape>p{top:155px}.flow-landscape .wave-art{animation:ocean-breathe 16s ease-in-out infinite alternate}
@keyframes ocean-breathe{from{transform:translate(-8px,4px) rotate(-.8deg)}to{transform:translate(8px,-6px) rotate(.8deg)}}@keyframes rock-breathe{from{transform:rotate(-.5deg)}to{transform:rotate(.5deg)}}
@media(max-width:1550px){.hero-flow.left{left:-250px;width:570px}.hero-flow.right{right:-150px;width:385px;top:-25px}}
@media(max-width:1050px){.hero-flow.left{left:-260px;width:470px;top:160px}.hero-flow.right{right:-185px;width:340px;top:0}}
@media(max-width:700px){.hero-flow{opacity:.46}.hero-flow.left{left:-245px;width:390px;height:280px;top:310px;transform:rotate(-10deg)}.hero-flow.right{right:-190px;width:270px;height:350px;top:250px;transform:rotate(13deg)}.hero-note{right:48px}.ornament .flow-art{width:70px;height:78px}.ornament .contour-art{height:88px}.flow-landscape{height:350px}.flow-landscape>p{top:48px}.landscape-wave{width:120%;left:-50%;height:330px;bottom:-80px}.landscape-contour{width:67%;right:-23%;height:420px;bottom:-120px}}
@media(prefers-reduced-motion:reduce){.hero-flow .flow-art,.flow-landscape .flow-art{animation:none!important}}
html{overflow-x:hidden}body{overflow-x:clip}
@media(min-width:1051px) and (max-width:1550px){.hero-flow.left{left:-105px;width:540px}}
@media(min-width:701px) and (max-width:1050px){.hero-flow.left{left:-110px;width:390px;top:185px}}
@media(max-width:700px){.hero-flow.left{left:-85px;width:300px;height:250px;top:355px}.hero-flow.right{right:-140px;top:250px}}
/* A landscape composition: several ridgelines and swells, at different scales. */
.hero-flow.right{width:600px;height:375px;right:calc(50% - 1040px);top:145px;transform:rotate(3deg)}.hero-ridge-extra,.hero-tide-extra{position:absolute;pointer-events:none;z-index:-1;color:#92978d;opacity:.32}.hero-ridge-extra{width:340px;height:220px;left:-115px;top:-35px;transform:rotate(-9deg)}.hero-tide-extra{width:620px;height:200px;right:-145px;bottom:-20px;transform:rotate(9deg)}.hero-tide-extra .tide-art{animation:ocean-breathe 18s ease-in-out infinite alternate-reverse}.hero-ridge-extra .contour-art{animation:rock-breathe 19s ease-in-out infinite alternate}.landscape-contour{width:70%;height:440px;right:-14%;bottom:-50px;transform:rotate(3deg)}.ornament .contour-art{height:115px;width:150px}
@media(max-width:1550px){.hero-flow.right{width:510px;height:340px;right:-90px;top:160px}.hero-tide-extra{width:480px;right:-155px}}
@media(max-width:1050px){.hero-flow.right{width:440px;height:300px;right:-160px;top:210px}.hero-ridge-extra{width:270px;left:-130px;top:25px}.hero-tide-extra{width:360px;right:-140px;bottom:0}}
@media(max-width:700px){.hero-flow.right{width:380px;height:235px;right:-155px;top:350px;opacity:.38}.hero-ridge-extra{width:210px;height:130px;left:-115px;top:280px;opacity:.25}.hero-tide-extra{width:320px;height:130px;right:-170px;bottom:-10px;opacity:.25}.landscape-contour{width:100%;height:250px;right:-33%;bottom:-10px}.ornament .contour-art{width:82px;height:75px}}
@media(prefers-reduced-motion:reduce){.hero-tide-extra .flow-art,.hero-ridge-extra .flow-art{animation:none!important}}
/* Clearer offers and process; lettering stays still, hover belongs to the head. */
.brand-type span span,.brand:hover .brand-type span span,.brand:focus-visible .brand-type span span{animation:none!important;opacity:1;filter:none;transform:none}.brand:hover .head,.brand:focus-visible .head{animation:head-hover 1.7s ease-in-out infinite}.hero{min-height:550px}.hero-actions{display:flex;align-items:center;justify-content:center;gap:27px;margin-top:24px}.hero-contact{font-size:12px;border-bottom:0;padding:10px 0}.showcase{margin-bottom:76px}.showcase-intro{padding-bottom:32px}.work{margin-bottom:100px}.services{margin-bottom:100px;padding-top:38px;border-top:1px solid var(--line)}.services .section-heading{margin-bottom:35px}.services h2{font-size:34px}.offering-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.offering{padding:22px 0;border-top:1px solid #cdc9bd}.step-number{font-size:10px;letter-spacing:1.5px;color:#969082;display:block;margin-bottom:19px}.offering h3,.process-step h3{font:600 20px/1.3 Outfit,Arial,sans-serif;margin:0 0 13px}.offering p,.process-step p{font-size:13px;line-height:1.8;color:#7b756a}.process{margin-bottom:120px}.process .section-heading{display:grid;grid-template-columns:1fr 1fr;gap:8px 65px;align-items:end}.process .eyebrow{grid-column:1/-1}.process h2{font-size:34px}.process .muted{font-size:13px;max-width:300px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:25px;border-top:1px solid var(--line)}.process-step .step-number{margin-bottom:15px}.process-step h3{font-size:17px}.process-step p{font-size:12px;line-height:1.75}.about{padding-top:40px;border-top:1px solid var(--line);margin-bottom:105px}.faq{margin-bottom:90px}.contact{padding-top:35px;border-top:1px solid var(--line)}
@keyframes head-hover{0%,100%{transform:rotate(-5deg) translateY(-1px)}35%{transform:rotate(8deg) translateY(-4px)}65%{transform:rotate(-2deg) translateY(0)}}
@media(max-width:700px){.hero{min-height:530px}.hero-actions{gap:21px;margin-top:22px}.showcase{margin-bottom:55px}.work{margin-bottom:60px}.services{margin-bottom:65px;padding-top:28px}.services h2,.process h2{font-size:27px}.services .serif-lead{font-size:15px}.offering-grid{grid-template-columns:1fr;gap:4px}.offering{display:grid;grid-template-columns:35px 1fr;gap:5px 12px;padding:20px 0}.offering .step-number{grid-row:1/3;margin:4px 0 0}.offering h3{font-size:19px;margin-bottom:4px}.offering p{grid-column:2;font-size:12px}.process{margin-bottom:70px}.process .section-heading{display:block}.process .muted{margin-top:18px}.process-grid{grid-template-columns:repeat(2,1fr);gap:30px 24px}.process-step p{font-size:11px}.about{padding-top:35px;margin-bottom:75px}.faq{margin-bottom:60px}}
@media(prefers-reduced-motion:reduce){.brand:hover .head,.brand:focus-visible .head{animation:none!important}}

/* Animated characters in the main landscape. */
.character path[class^="arm"],.character path[class^="leg"]{fill:none;stroke:#344438;stroke-width:5}.character path[class^="arm"]{stroke-width:4}.contour-art .character .board{display:none}

/* Full-viewport landing: one section per scroll/swipe, as in Flow Trip. */
.slide-mode{height:100%;overflow:hidden;scroll-behavior:auto}
.slide-mode body{height:100svh;overflow:hidden}
.slide-mode .site-header{position:fixed;inset:0 0 auto;z-index:30;height:105px;background:linear-gradient(var(--paper) 80%,transparent);max-width:none}
.slide-mode main{height:100%;outline:none}
.slide-deck{width:100%;position:relative}
.slide-mode .slide-deck{height:100vh;height:100svh;overflow:hidden}
.slide-mode .slide-track{height:100%;will-change:transform}
.landing-slide{position:relative}
.slide-mode .landing-slide{height:100%;overflow:hidden;padding:105px 0 66px}
.slide-mode .slide-scroll{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d4d0c5 transparent;touch-action:pan-y pinch-zoom}
.slide-content{display:flex;flex-direction:column;justify-content:safe center;padding:30px 0}
.slide-mode .slide-content{min-height:100%}
.landing-slide .hero,.landing-slide .showcase,.landing-slide .work,.landing-slide .services,.landing-slide .process,.landing-slide .about,.landing-slide .faq,.landing-slide .contact{margin-bottom:0}
.landing-slide .hero{min-height:0;padding:70px 24px;align-items:center;width:100%;flex:1}
.hero-slide .slide-content{padding:0}
.hero-slide .hero-inner{margin:auto}
.landing-slide .services,.landing-slide .about,.landing-slide .contact{border-top:0;padding-top:0}
.landing-slide .section-heading{margin-bottom:30px}
.landing-slide .project-row{margin-bottom:0}
.landing-slide .project-stage{height:clamp(285px,36vh,420px)}
.landing-slide .work{width:min(1000px,calc(100% - 110px))}
.landing-slide .project-row{grid-template-columns:3fr 1fr;min-height:0}
.landing-slide .project-row .project-art{order:0}
.landing-slide .work-more{margin-top:18px}
.landing-slide .showcase-intro{padding-top:0;padding-bottom:35px}
.landing-slide .contact{padding-bottom:70px}
.slide-controls{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:20px;align-items:center;z-index:40;background:var(--paper);border:1px solid var(--line);border-radius:30px;padding:3px 10px}
.slide-controls button{font-size:21px;width:34px;height:34px;border-radius:50%}
.slide-controls button:hover:not(:disabled){background:#e5e2d9}
.slide-controls button:disabled{opacity:.25;cursor:default}
.slide-count{font-size:10px;letter-spacing:1px;font-variant-numeric:tabular-nums;min-width:45px;text-align:center;color:#7c776b}
.slide-dots{position:fixed;right:23px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:0}
.slide-dot{width:25px;height:25px;display:grid;place-items:center;padding:0}
.slide-dot:before{content:'';width:5px;height:5px;border-radius:50%;background:#bdb9ae;transition:transform .2s,background .2s}
.slide-dot[aria-current=step]:before{background:var(--ink);transform:scale(1.6)}
.outro-slide .slide-content{padding:0;justify-content:flex-end}
.outro-slide footer{width:100%;overflow:visible}
.outro-slide .flow-landscape{height:clamp(260px,48vh,490px)}
@media(max-width:700px){
 .slide-mode .site-header{height:90px;padding:18px 22px;background:var(--paper)}
 .landing-slide{padding:90px 0 66px}
 .slide-content{padding:24px 0}
 .landing-slide .hero{padding:25px 18px 45px}
 .landing-slide .hero-flow.left{top:auto;bottom:-30px;left:-130px}
 .landing-slide .hero-flow.right{top:auto;bottom:-40px;right:-155px}
 .landing-slide .hero-ridge-extra{top:-20px;opacity:.2}
 .landing-slide .hero-tide-extra{bottom:0}
 .slide-dots{display:none}
 .landing-slide .work{width:calc(100% - 36px)}
 .landing-slide .project-row{grid-template-columns:1fr}
 .landing-slide .project-stage{height:252px}
 .landing-slide .project-side{grid-template-columns:85px 1fr}
 .landing-slide .project-label>span:nth-child(2){font-size:9px}
 .landing-slide .section-heading{margin-bottom:22px}
 .landing-slide .about{gap:30px}
 .landing-slide .photo-portrait{width:170px;height:185px}
 .landing-slide .about-art{padding-bottom:45px}
 .landing-slide .about-art .hand-note{font-size:9px}
 .landing-slide .about-copy .serif-lead{font-size:16px}
 .landing-slide .contact .hand-note{bottom:0}
 .outro-slide .flow-landscape{height:320px}
}
@media(max-height:700px) and (min-width:701px){
 .slide-mode .site-header{height:85px}.slide-mode .landing-slide{padding-top:85px}
 .landing-slide .hero{padding-block:20px}.landing-slide .hero h1{font-size:43px}
 .landing-slide .project-stage{height:280px}
 .landing-slide .marquee-track>a{height:300px}
}
/* Decorative paths may spill sideways, but cannot create a second hero scroll. */
.hero-slide .hero{overflow:clip}
/* Quiet, neutral hover feedback on the landing. */
body[data-page="home"]{--blue:var(--ink)}
body[data-page="home"] .pill{transition:background .2s,color .2s,border-color .2s}
body[data-page="home"] .pill:hover{transform:none;background:#353530;color:#f6f5f1;border-color:#353530}
body[data-page="home"] .text-link:hover,
body[data-page="home"] .site-header a:not(.brand):hover,
body[data-page="home"] .lang-switch:hover{color:#656158}
body[data-page="home"] .ornament:hover .flow-art{transform:none}
@media(min-width:701px) and (min-height:701px){.landing-slide .project-stage{height:clamp(350px,32vw,465px)}}
/* Hero art lives in .slide-backdrop (the whole first screen), so it reaches the real screen corners:
   climbing mountain top-left just under the fixed header, surf wave bottom-right. Both bleed off the edges. */
.slide-backdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden}.slide-backdrop+.slide-scroll{position:relative}
.slide-backdrop .hero-flow{z-index:0}
.slide-backdrop .hero-flow.right{top:-28px;bottom:auto;left:-80px;right:auto;width:540px;height:338px;transform:none}
.slide-backdrop .hero-flow.left{top:auto;bottom:-4px;right:-55px;left:auto;width:560px;height:420px;transform:none}
.slide-backdrop .hero-ridge-extra{top:95px;bottom:auto;right:-80px;left:auto;transform:rotate(6deg)}
.slide-backdrop .hero-tide-extra{top:auto;bottom:0;left:-160px;right:auto;transform:rotate(-6deg)}
@media(max-width:1050px){.slide-backdrop .hero-flow.right{top:85px;left:-60px;width:460px;height:290px}.slide-backdrop .hero-flow.left{right:-45px;width:440px;height:330px}}
@media(max-width:700px){.slide-backdrop .hero-flow.right{top:85px;left:-45px;width:320px;height:200px}.slide-backdrop .hero-flow.left{bottom:-3px;right:-35px;width:310px;height:232px}.slide-backdrop .hero-ridge-extra{top:85px;right:-110px}.slide-backdrop .hero-tide-extra{left:-170px}}
/* First screen: no header backdrop so the mountain reaches the top edge (tablet/phone keep it under the header). */
.slide-mode:has(.hero-slide.is-active) .site-header{background:none}
@media(max-width:1050px){.slide-mode:has(.hero-slide.is-active) .site-header{background:var(--paper)}}
/* Section pager removed from view; slides.js still drives it, keyboard/wheel/dots keep working. */
.slide-controls{display:none}.slide-mode .landing-slide{padding-bottom:0}
/* A simpler five-slide story; every project shares the second slide. */
.work-gallery{width:min(1200px,calc(100% - 110px));margin:auto}
.gallery-heading{text-align:center;margin-bottom:36px}
.gallery-heading h2{font-size:36px}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.landing-slide .work-card,.landing-slide .work-card:nth-of-type(2n){display:flex;flex-direction:column;gap:12px;min-height:0;margin:0}
.landing-slide .work-card .project-art{order:0;border-radius:26px}
.landing-slide .work-card .project-stage{height:245px}
.work-card .desktop-frame{width:79%;left:5%;top:32px;border-width:4px;border-radius:9px}
.work-card .phone-frame{width:24%;right:5%;top:52px;border-width:4px;border-radius:15px}
.work-card .project-label{font-size:12px;min-height:45px;padding:0 18px 16px}
.work-card .project-note{flex:1;min-height:155px;padding:20px;border-radius:24px;gap:15px}
.work-card .project-note p{font-size:13px;line-height:1.6}
.work-card .project-number{font-size:8px}
.intro-aside{font:700 14px/1.6 Quicksand,Arial,sans-serif;color:#777269;margin-bottom:20px}
.ending-slide .slide-content{padding:20px 0 0}
.ending-slide .contact{min-height:0;padding:15px 20px 45px}
.ending-slide .contact h2{font-size:34px}
.ending-slide .contact .hand-note{display:none}
.ending-slide .flow-landscape{height:230px}
.ending-slide .flow-landscape>p{top:45px;font-size:21px}
.ending-slide .landscape-wave{height:310px;bottom:-65px}
.ending-slide .landscape-contour{height:310px;bottom:-55px}
@media(min-width:701px) and (max-width:1000px){
 .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .work-card:last-child{grid-column:1/-1;width:calc(50% - 9px);justify-self:center}
 .work-gallery{width:calc(100% - 90px)}
 .landing-slide .work-card .project-stage{height:210px}
 .work-card .project-note{min-height:120px;padding:16px}
 .gallery-heading{margin-bottom:24px}
}
@media(max-width:700px){
 .work-gallery{width:calc(100% - 36px)}
 .gallery-heading{margin:0 0 26px;text-align:left}
 .gallery-heading h2{font-size:27px}
 .work-grid{grid-template-columns:1fr;gap:28px}
 .landing-slide .work-card .project-stage{height:252px}
 .work-card .project-note{min-height:0;gap:12px;padding:18px}
 .work-card .project-note p{font-size:12px}
 .intro-aside{font-size:13px;margin-bottom:16px}
 .ending-slide .contact h2{font-size:29px}
 .ending-slide .contact{padding-bottom:35px}
 .ending-slide .flow-landscape{height:225px}
 .ending-slide .flow-landscape>p{font-size:19px}
}
.photo-portrait{position:relative}
/* A small invitation on the moving climber, then a focused local game. */
.mountain-play{position:absolute;z-index:6;width:56px;height:65px;transform:translate(-50%,-50%);padding:0;border-radius:50%;background:none;cursor:pointer}
.mountain-play-label{position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:8px 12px;background:#151515;color:#f6f5f1;border-radius:20px;font-size:11px;opacity:0;transition:opacity .2s;pointer-events:none}
.mountain-play:hover .mountain-play-label,.mountain-play:focus-visible .mountain-play-label{opacity:1}
.climb-dialog{position:fixed;inset:0;margin:auto;width:min(1240px,calc(100vw - 40px));height:min(850px,calc(100svh - 40px));max-width:none;max-height:none;padding:0;background:var(--paper);color:var(--ink);border:1px solid #d4d0c5;border-radius:22px;overflow:hidden}
.climb-dialog[open]{display:flex;flex-direction:column}
.climb-dialog::backdrop{background:#15151580;backdrop-filter:blur(5px)}
.climb-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 23px;flex:none}
.climb-dialog-bar .eyebrow{font-size:8px;margin-bottom:3px}
.climb-dialog-bar h2{font-size:23px;letter-spacing:-.5px}
.climb-dialog-actions{display:flex;gap:10px}
.climb-dialog-actions button{width:40px;height:40px;font-size:26px;border:1px solid #d4d0c5;border-radius:50%;display:grid;place-items:center;padding:0}
.climb-dialog-actions button:hover{background:#e5e2d9}
.climb-game-stage{flex:1;min-height:0;position:relative;background:#ecece3}
.climb-game-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
.climb-loading{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;z-index:1;background:var(--paper);pointer-events:none}
.climb-loading[hidden]{display:none}
.climb-instructions{font-size:11px;text-align:center;padding:13px 15px;color:#656158;flex:none}
.touch-instructions{display:none}
@media(pointer:coarse){.mountain-play-label{opacity:1;font-size:10px;padding:6px 10px}.desktop-instructions{display:none}.touch-instructions{display:inline}}
@media(max-width:700px){.climb-dialog{width:calc(100vw - 16px);height:calc(100svh - 16px);border-radius:17px}.climb-dialog-bar{padding:13px 15px;gap:8px}.climb-dialog-bar h2{font-size:19px}.climb-dialog-actions{gap:7px}.climb-dialog-actions button{width:35px;height:35px}.climb-instructions{font-size:10px;line-height:1.6;padding:10px 16px}}
/* Header whitespace must not block the mountain invitation behind it. */
.slide-mode .site-header{pointer-events:none}
.slide-mode .site-header nav,.slide-mode .site-header .brand,.slide-mode .site-header .header-right{pointer-events:auto}
/* Lightweight climbing stays in the same engraved mountain artwork. */
.climb-game-stage{background:var(--paper);overflow:hidden}
.mini-climb-scene{display:block;width:100%;height:100%;color:#6d7869;touch-action:none;user-select:none}
.mini-avatar .arm-back,.mini-avatar .arm-front{stroke-width:2.6!important}
.mini-avatar .leg-back,.mini-avatar .leg-front{stroke-width:3!important}
.mini-hold{fill:#e0e1d6;stroke:#68745c;stroke-width:.9;cursor:pointer}
.mini-hold.reachable{fill:#cad4bc;stroke:#354831;stroke-width:1.3}
.mini-hold.gripped{fill:#344438;stroke:#344438}
.mini-hud{position:absolute;left:22px;top:18px;pointer-events:none;max-width:310px}
.mini-progress{font:600 10px/1.4 Outfit,Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#6e7766}
.mini-tip{font:700 12px/1.6 Quicksand,Arial,sans-serif;color:#434e3d;margin-top:7px;background:#f6f5f1d9;border-radius:12px;padding:8px 10px}
.mini-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center;padding:8px;background:#f6f5f1e8;border:1px solid #d4d6c9;border-radius:19px}
.mini-controls button{min-width:65px;min-height:50px;padding:7px 10px;border:1px solid #d6d8cd;border-radius:12px;background:var(--paper);display:flex;flex-direction:column;align-items:center;gap:3px;touch-action:none}
.mini-controls button kbd{font:600 15px Outfit,Arial,sans-serif}
.mini-controls button span{font-size:8px;white-space:nowrap;color:#6e7668}
.mini-controls button[aria-pressed=true]{background:#344438;color:var(--paper);border-color:#344438}
.mini-controls button[aria-pressed=true] span{color:var(--paper)}
.mini-controls button:hover{background:#e4e7db}
.mini-controls button[aria-pressed=true]:hover{background:#344438}
.mini-move{font-size:18px}
.mini-control-divider{height:27px;width:1px;background:#d4d6c9;margin:0 4px}
.climb-dialog:focus-visible,.climb-dialog button:focus-visible{outline:2px solid #344438;outline-offset:3px}
@media(max-width:700px){.mini-hud{left:12px;top:12px;max-width:calc(100% - 24px)}.mini-tip{font-size:10px;padding:6px 8px}.mini-controls{gap:4px;padding:6px;bottom:12px;border-radius:14px;width:calc(100% - 18px);justify-content:center}.mini-controls button{min-width:0;flex:1;min-height:47px;padding:6px 4px}.mini-controls button span{font-size:7px}.mini-control-divider{margin:0 1px}}
/* The wave gets the same focused, playable invitation as the mountain. */
.surf-play .mountain-play-label{left:auto;right:calc(100% + 5px)}
.surf-markers .collected{opacity:0}
.surf-controls{min-width:310px}
@media(max-width:700px){.surf-controls{min-width:0}}

/* A quiet logo header and a language control that stays within reach. */
.site-header{justify-content:center;gap:0}
.lang-switch{
 position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));
 z-index:50;width:48px;height:48px;border-radius:50%;padding:0;
 background:var(--paper);border:1px solid #cbcbbf;color:#434b40;font-size:12px;letter-spacing:.5px;
 box-shadow:0 4px 18px #30382814;transition:background .2s,box-shadow .2s;
}
.lang-switch:hover{background:#e8ebdf;color:#344438;box-shadow:0 6px 22px #30382820}

/* The final landscape grows to the viewport edge, even on tall screens. */
.ending-slide .slide-content{padding:20px 0 0;justify-content:flex-start}
.landing-ending{flex:1;display:flex;flex-direction:column;width:100%}
.landing-ending>footer{flex:1;display:flex;flex-direction:column}
footer{background:var(--paper);overflow:hidden}
.footer-top{
 display:grid;grid-template-columns:1fr 1fr;align-items:center;
 width:min(1120px,calc(100% - 96px));padding:22px 0 25px;gap:24px;
 border-top:1px solid var(--line);
}
.footer-top .footer-signoff{font-size:14px!important;line-height:1.6;max-width:none}
.footer-back{display:inline-flex;align-items:center;gap:10px;justify-self:start;padding:10px 0}
.footer-back>span:last-child{font-size:16px;color:#535d54;transition:transform .2s}
.footer-back:hover>span:last-child{transform:translateY(-3px)}
.footer-copyright{justify-self:end}
.flow-landscape,.ending-slide .flow-landscape{
 height:340px;min-height:240px;flex:1;isolation:isolate;pointer-events:none;
 background:radial-gradient(ellipse at 12% 100%,#dfe6e0a6,transparent 65%),radial-gradient(ellipse at 85% 100%,#dedfcba6,transparent 65%);
}
.flow-landscape>p,.ending-slide .flow-landscape>p{
 z-index:1;top:24px;width:100%;padding:0 24px;
 font-size:clamp(21px,2vw,29px);line-height:1.65;letter-spacing:-.7px;
}
.landscape-wave,.ending-slide .landscape-wave{left:-7%;width:49%;height:clamp(310px,38svh,430px);bottom:-85px;transform:rotate(-6deg)}
.landscape-contour,.ending-slide .landscape-contour{right:-9%;width:55%;height:clamp(330px,40svh,460px);bottom:-70px;transform:rotate(5deg)}
@media(max-width:700px){
 .lang-switch{right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));width:44px;height:44px}
 .footer-top{width:calc(100% - 40px);grid-template-columns:1fr auto;gap:6px 14px;padding:18px 0}
 .footer-top .footer-signoff{font-size:12px!important;max-width:210px}
 .footer-back{justify-self:start}
 .footer-top .footer-copyright{justify-self:end;font-size:9px}
 .flow-landscape,.ending-slide .flow-landscape{min-height:260px;height:300px}
 .flow-landscape>p,.ending-slide .flow-landscape>p{font-size:21px;top:12px;letter-spacing:-.5px}
 .landscape-wave,.ending-slide .landscape-wave{width:90%;height:260px;left:-37%;bottom:-62px}
 .landscape-contour,.ending-slide .landscape-contour{width:104%;height:290px;right:-42%;bottom:-56px}
}

/* Mobile retains the animated deck; projects swipe horizontally within one panel. */
.project-pager{display:none}
.mobile-slides body,.mobile-slides .slide-deck{height:100dvh}
.mobile-slides .site-header{height:72px;padding:12px 18px;background:linear-gradient(var(--paper) 85%,transparent)}
.mobile-slides .brand svg{width:42px;height:42px}
.mobile-slides .brand-by{font-size:11px}.mobile-slides .brand-name{font-size:26px}
.mobile-slides .landing-slide{padding:72px 0 0}
.mobile-slides .slide-scroll{touch-action:auto;scrollbar-width:none}
.mobile-slides .slide-content{padding:18px 0;min-height:100%}
.mobile-slides .slide-dots{display:none}
.mobile-slides .hero-slide .slide-content{padding:0}
.mobile-slides .hero{padding:24px 20px 50px;min-height:0}
.mobile-slides .hero-inner{width:100%;max-width:500px}
.mobile-slides .hero h1{font-size:clamp(28px,7.6vw,42px);line-height:1.26;letter-spacing:-1.2px}
.mobile-slides .hello{font-size:12px;margin-bottom:16px}
.mobile-slides .hero-body{font-size:13px;line-height:1.7;max-width:340px;margin:20px auto}
.mobile-slides .hero-actions{gap:20px;margin-top:18px}
.mobile-slides .pill{min-height:44px;font-size:13px;padding:11px 20px}
.mobile-slides .hero-contact{min-height:44px;font-size:12px;display:inline-flex;align-items:center}
.mobile-slides .slide-backdrop .hero-flow.right{width:350px;height:225px;top:-65px;left:-145px;opacity:.3}
.mobile-slides .slide-backdrop .hero-flow.left{width:430px;height:290px;right:-160px;bottom:-70px;opacity:.25}
.mobile-slides .hero-ridge-extra,.mobile-slides .hero-tide-extra{display:none}
.mobile-slides .work-gallery{width:min(560px,calc(100% - 36px));margin:auto}
.mobile-slides .gallery-heading{text-align:left;margin-bottom:18px}
.mobile-slides .gallery-heading h2{font-size:clamp(25px,6.4vw,34px);line-height:1.3;letter-spacing:-.8px}
.mobile-slides .gallery-heading .eyebrow{font-size:10px;margin-bottom:9px}
.mobile-slides .work-grid{position:relative;display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x}
.mobile-slides .work-grid::-webkit-scrollbar{display:none}
.mobile-slides .work-card,.mobile-slides .work-card:last-child{flex:0 0 100%;width:100%;scroll-snap-align:start;scroll-snap-stop:always;gap:10px}
.mobile-slides .landing-slide .work-card .project-stage{height:clamp(180px,30dvh,320px)}
.mobile-slides .work-card .project-art{border-radius:22px}
.mobile-slides .work-card .project-label{font-size:12px;padding:0 16px 14px;min-height:38px}
.mobile-slides .work-card .project-note{min-height:0;padding:16px 18px;gap:10px;border-radius:20px}
.mobile-slides .work-card .project-note p{font-size:13px;line-height:1.55}
.mobile-slides .work-card .text-link{min-height:36px;align-items:center;font-size:12px}
.mobile-slides .project-pager{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:10px}
.mobile-slides .project-pager button{width:44px;height:44px;font-size:21px;border-radius:50%;border:1px solid var(--line)}
.mobile-slides .project-pager button:disabled{opacity:.3;cursor:default}
.mobile-slides .project-count{font-size:11px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#777269}
.mobile-slides .about{width:min(620px,calc(100% - 40px));grid-template-columns:1fr;gap:18px}
.mobile-slides .about-art{padding:0;margin:auto}
.mobile-slides .photo-portrait{width:clamp(100px,17dvh,160px);height:clamp(110px,18dvh,175px);box-shadow:0 0 0 7px #e9e4d8}
.mobile-slides .about-art .hand-note{display:none}
.mobile-slides .intro-aside{font-size:12px;line-height:1.5;margin-bottom:12px}
.mobile-slides .about-copy .eyebrow{font-size:10px;margin-bottom:7px}
.mobile-slides .about-copy h2{font-size:28px;line-height:1.3}
.mobile-slides .about-copy .serif-lead{font-size:15px;line-height:1.6;margin-top:12px}
.mobile-slides .about-copy .muted{font-size:13px;line-height:1.65;margin-top:12px}
.mobile-slides .about-copy .text-link{min-height:40px;margin-top:12px;align-items:center;font-size:12px}
.mobile-slides .faq{width:min(620px,calc(100% - 40px))}
.mobile-slides .faq .section-heading{margin-bottom:12px}
.mobile-slides .faq .eyebrow{font-size:10px;margin-bottom:8px}
.mobile-slides .faq h2{font-size:28px;line-height:1.3}
.mobile-slides .faq-list summary{min-height:44px;padding:14px 32px 14px 0;font-size:13px;line-height:1.5}
.mobile-slides .faq-list summary:after{top:10px;right:4px;font-size:23px}
.mobile-slides .faq-list details p{font-size:12px;line-height:1.7;padding:0 8px 16px 0}
.mobile-slides .ending-slide .slide-content{height:100%;padding:14px 0 0;justify-content:flex-start}
.mobile-slides .landing-ending{height:100%;min-height:0}
.mobile-slides .contact{width:min(620px,calc(100% - 40px));min-height:0;padding:0 0 20px}
.mobile-slides .contact .eyebrow{font-size:10px;margin-bottom:10px}
.mobile-slides .contact h2{font-size:28px;line-height:1.3}
.mobile-slides .contact-body{font-size:13px;line-height:1.65;max-width:350px;margin:16px auto}
.mobile-slides .email{font-size:12px;display:block;margin:12px auto 0;padding:8px 0}
.mobile-slides .landing-ending>footer{min-height:0}
.mobile-slides .footer-top{width:calc(100% - 40px);padding:4px 0;gap:10px}
.mobile-slides .footer-back{min-height:40px;font-size:10px}
.mobile-slides .footer-copyright{font-size:9px}
.mobile-slides .flow-landscape,.mobile-slides .ending-slide .flow-landscape{height:auto;min-height:0;flex:1}
.mobile-slides .ending-slide .landscape-wave{height:250px;width:90%;left:-37%;bottom:-65px}
.mobile-slides .ending-slide .landscape-contour{height:280px;width:104%;right:-42%;bottom:-65px}
@media(max-height:650px){
 .mobile-slides .slide-content{padding:12px 0}
 .mobile-slides .hero{padding:12px 20px 28px}
 .mobile-slides .about{gap:14px}
 .mobile-slides .photo-portrait{width:88px;height:96px}
 .mobile-slides .intro-aside{margin-bottom:8px;font-size:11px}
 .mobile-slides .about-copy h2{font-size:25px}
 .mobile-slides .about-copy .serif-lead{font-size:14px;line-height:1.55;margin-top:10px}
 .mobile-slides .about-copy .muted{font-size:12px;line-height:1.6;margin-top:10px}
 .mobile-slides .about-copy .text-link{margin-top:8px;min-height:36px}
 .mobile-slides .gallery-heading{margin-bottom:12px}
 .mobile-slides .landing-slide .work-card .project-stage{height:clamp(135px,25dvh,170px)}
 .mobile-slides .work-card .desktop-frame{top:14px;width:74%}
 .mobile-slides .work-card .desktop-frame video{aspect-ratio:2}
 .mobile-slides .work-card .phone-frame{top:16px;width:20%}
 .mobile-slides .work-card .project-note{padding:12px 16px;gap:7px}
 .mobile-slides .project-pager{margin-top:6px}
 .mobile-slides .contact h2{font-size:25px}
 .mobile-slides .contact-body{margin:12px auto}
}
@media(max-width:700px),(hover:none),(pointer:coarse){.mountain-play,.mountain-play-label{display:none!important}}
@media(max-height:500px) and (min-width:600px){
 .mobile-slides .site-header{height:60px;padding:8px 18px}
 .mobile-slides .landing-slide{padding-top:60px}
 .mobile-slides .hero h1{font-size:26px}
 .mobile-slides .hello{margin-bottom:8px;font-size:11px}
 .mobile-slides .hero-body{font-size:12px;line-height:1.5;margin:10px auto}
 .mobile-slides .hero-actions{margin-top:12px}
 .mobile-slides .work-gallery{width:min(700px,calc(100% - 40px))}
 .mobile-slides .gallery-heading{margin-bottom:10px}
 .mobile-slides .gallery-heading h2{font-size:24px}
 .mobile-slides .landing-slide .work-card,.mobile-slides .landing-slide .work-card:nth-of-type(2n){display:grid;grid-template-columns:1.1fr 1fr;gap:12px}
 .mobile-slides .landing-slide .work-card .project-stage{height:145px}
 .mobile-slides .about{width:min(680px,calc(100% - 40px));grid-template-columns:100px 1fr;gap:24px;align-items:center}
 .mobile-slides .faq-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
 .mobile-slides .faq-list summary{padding:10px 32px 10px 0}
 .mobile-slides .faq h2{font-size:25px}
 .mobile-slides .faq .section-heading{margin-bottom:8px}
 .mobile-slides .lang-switch{width:44px;height:44px;right:12px;bottom:12px}
}

/* Plain project previews, localized branding, and centered landing content. */
.slide-mode.mobile-slides .site-header,
.slide-mode.mobile-slides:has(.hero-slide.is-active) .site-header{background:transparent}
.landing-slide .work-card .project-art{background:transparent;border-radius:0;overflow:visible}
.landing-slide .work-card .project-stage{
 display:grid;grid-template-columns:minmax(0,1fr) 23%;align-items:center;gap:12px;
 height:auto;padding:12px 4px;position:relative;perspective:none;
}
.landing-slide .work-card .desktop-frame,.landing-slide .work-card .phone-frame{
 position:relative;inset:auto;width:100%;transform:none;border-width:3px;
 box-shadow:0 6px 18px #29271b12;
}
.landing-slide .work-card .desktop-frame{border-radius:9px}
.landing-slide .work-card .phone-frame{border-radius:14px}
.landing-slide .work-card .desktop-frame video{aspect-ratio:1.64}
.landing-slide .work-card .phone-frame video{aspect-ratio:.49}
.landing-slide .work-card .project-note{
 background:none;border-radius:0;padding:0;min-height:0;gap:10px;
 align-items:center;justify-content:flex-start;text-align:center;
}
.project-title{font:400 22px/1.35 Libre,Georgia,serif;letter-spacing:-.5px;margin:0;color:var(--ink)}
.landing-slide .work-card .project-note p{max-width:340px;font-size:13px;line-height:1.65;color:#6f6b63}
.landing-slide .work-card .text-link{min-height:36px;align-items:center;align-self:center;font-size:12px}
.gallery-heading{text-align:center}
.landing-slide .about{grid-template-columns:1fr;gap:22px;justify-items:center;text-align:center;width:min(620px,calc(100% - 40px))}
.landing-slide .about-art{padding:0;margin:auto}
.landing-slide .about-art .hand-note{display:none}
.landing-slide .about .photo-portrait{width:150px;height:160px}
.landing-slide .about-copy{display:flex;flex-direction:column;align-items:center;text-align:center}
.landing-slide .about-copy .serif-lead{max-width:520px}
.landing-slide .about-copy .muted{max-width:500px}
.ending-slide .contact{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 0;gap:0}
.landing-ending>footer{flex:0 0 clamp(180px,25dvh,300px);min-height:0}
.ending-slide .email{display:block;margin:14px auto 0;padding:8px 0}
.mobile-slides .gallery-heading{text-align:center;margin-bottom:16px}
.mobile-slides .gallery-heading h2{font-size:28px;line-height:1.3}
.mobile-slides .landing-slide .work-card,.mobile-slides .landing-slide .work-card:nth-of-type(2n){display:flex;flex-direction:column;gap:16px}
.mobile-slides .landing-slide .work-card .project-stage{height:auto;padding:12px 4px}
.mobile-slides .project-pager{gap:0;margin-top:12px}
.mobile-slides .project-pager .project-dot{width:40px;height:36px;border:0;border-radius:0;padding:0;display:grid;place-items:center}
.project-dot:before{content:'';width:6px;height:6px;border-radius:4px;background:#c6c8bf;transition:width .2s,background .2s}
.project-dot[aria-current=step]:before{width:18px;background:#596151}
.mobile-slides .about{gap:20px}
.mobile-slides .about .photo-portrait{width:clamp(92px,16dvh,135px);height:clamp(100px,17dvh,145px)}
.mobile-slides .ending-slide .slide-content{padding:0;height:100%}
.mobile-slides .ending-slide .contact{padding:20px 0;flex:1}
.mobile-slides .landing-ending>footer{flex:0 0 clamp(110px,24dvh,220px)}
.mobile-slides .contact-body{max-width:320px}
.mobile-slides .footer-top{padding:4px 0}
@media(max-height:650px){
 .mobile-slides .gallery-heading h2{font-size:25px}
 .mobile-slides .landing-slide .work-card{gap:12px}
 .mobile-slides .project-title{font-size:20px}
 .mobile-slides .landing-slide .work-card .project-stage{padding:8px 4px}
 .mobile-slides .landing-slide .work-card .project-note{gap:7px}
 .mobile-slides .work-card .project-note p{font-size:12px;line-height:1.55}
 .mobile-slides .about{gap:16px}
 .mobile-slides .ending-slide .contact{padding:12px 0}
}
@media(max-height:500px) and (min-width:600px){
 .mobile-slides .landing-slide .work-card,.mobile-slides .landing-slide .work-card:nth-of-type(2n){display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:center}
 .mobile-slides .landing-slide .work-card .project-stage{height:auto;padding:4px}
 .mobile-slides .about{grid-template-columns:100px 1fr;gap:24px}
 .mobile-slides .ending-slide .contact{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;align-content:center;justify-items:center;text-align:center}
 .mobile-slides .contact .eyebrow{grid-column:1;grid-row:1;margin-bottom:0}
 .mobile-slides .contact h2{grid-column:1;grid-row:2}
 .mobile-slides .contact-body{grid-column:1;grid-row:3;margin:6px auto}
 .mobile-slides .contact .pill{grid-column:2;grid-row:2}
 .mobile-slides .ending-slide .email{grid-column:2;grid-row:3;margin:0}
 .mobile-slides .landing-ending>footer{flex-basis:80px}
}
.slide-mode:not(.mobile-slides) .hero-slide .hero-inner{width:min(740px,100%)}
.slide-mode:not(.mobile-slides) .hero-slide .hello{font-size:15px}
.slide-mode:not(.mobile-slides) .hero-slide h1{font-size:62px}
.slide-mode:not(.mobile-slides) .hero-service-break{display:none}
.slide-mode:not(.mobile-slides) .hero-slide .hero-body{font-size:16px;max-width:480px}
.slide-mode:not(.mobile-slides) .hero-slide .pill{font-size:15px;padding:14px 25px}
.slide-mode:not(.mobile-slides) .hero-slide .hero-contact{font-size:14px;padding:12px 0}
@media(max-height:700px){
 .slide-mode:not(.mobile-slides) .hero-slide h1{font-size:48px}
}
@media(min-height:651px){
 .mobile-slides .hero-slide .hello{font-size:13px}
 .mobile-slides .hero-slide h1{font-size:clamp(30px,8vw,44px)}
 .mobile-slides .hero-slide .hero-body{font-size:14px}
 .mobile-slides .hero-slide .pill{font-size:14px;min-height:46px;padding:12px 21px}
 .mobile-slides .hero-slide .hero-contact{font-size:13px}
}
