:root{--paper:#fff9f4;--ink:#62473f;--muted:#80685f;--pink:#f4d5d6;--line:#d5c2b8;--serif:Georgia,'Yu Mincho','Hiragino Mincho ProN',serif;--sans:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;--ease:cubic-bezier(.22,.72,.2,1)}*{box-sizing:border-box}html{scroll-padding-top:110px}html[data-motion=on]{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.95}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,video:focus-visible{outline:2px solid currentColor;outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(1.8rem,3.4vw,3.4rem);line-height:1.65;letter-spacing:.055em}h2 em{font-style:normal;color:#9b7565}h3{font-size:1.7rem;line-height:1.6}.eyebrow{font-family:Georgia,serif;font-size:.75rem;letter-spacing:.15em;line-height:1.7;margin-bottom:24px}.header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:24px;padding:24px 4%;background:transparent;transition:background .35s,box-shadow .35s}.header.scrolled{background:#fff9f4ed;backdrop-filter:blur(16px);box-shadow:0 1px #684d471a}.brand{font-family:Georgia,serif;font-size:1.4rem;line-height:1.3;white-space:nowrap}.brand em{font-size:1.9rem;font-weight:normal}.brand span{display:block;font-family:var(--sans);font-size:.75rem;letter-spacing:.1em;margin-top:6px}nav{display:flex;align-items:center;gap:28px;font-size:.875rem}.header nav{margin-left:auto}.header nav a{padding:8px 0;position:relative}.header nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav a:hover:after{transform:scaleX(1)}.nav-contact span{margin-left:12px}.motion-toggle{border:1px solid var(--line);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff9f4a8;flex:none}.motion-toggle[hidden]{display:none}.motion-toggle>span:first-child{font-size:1rem}.motion-label{position:absolute;right:4%;top:80px;white-space:nowrap;background:var(--paper);padding:4px 10px;font-size:.75rem;opacity:0;pointer-events:none}.motion-toggle:hover .motion-label,.motion-toggle:focus-visible .motion-label{opacity:1}.hero-journey{position:relative}.hero-stage{position:relative;min-height:820px;height:100svh;overflow:hidden;isolation:isolate;background:#f5e8dd}.hero-atmosphere{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 20% 30%,#fffdf8 0%,#f8ede3 47%,#ecd2c2 100%)}.hero-atmosphere:after{content:'';position:absolute;inset:-10%;background:radial-gradient(ellipse at 20% 70%,#efbed04a,transparent 50%),radial-gradient(ellipse at 45% 10%,#ffffffaa,transparent 45%);opacity:.8}.hero-window{position:absolute;inset:0;clip-path:inset(13% 7% 12% 53% round 220px 220px 12px 12px);z-index:-1;transform-origin:70% 50%}.window-image{position:absolute;inset:0;overflow:hidden}.window-image img{width:100%;height:100%;object-fit:cover;object-position:center 56%;display:block}.hero-window:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#4f312a65,transparent 45%)}.hero-window figcaption{position:absolute;right:10%;bottom:16%;color:white;font-size:.75rem;letter-spacing:.17em}.hero-copy{position:absolute;left:8%;top:50%;width:44%;transform:translateY(-43%);z-index:2}.hero-copy h1{font-size:clamp(3rem,5.3vw,5.6rem);line-height:1.35;letter-spacing:.075em}.line-mask{display:block;overflow:hidden}.line-mask>span{display:block}.hero-sub{font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.5rem);margin-top:20px;letter-spacing:.05em}.intro{font-size:1rem;line-height:2.15;margin-top:18px}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin-top:22px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;background:var(--ink);color:var(--paper);padding:17px 27px;border:1px solid var(--ink);border-radius:2px;font-size:.95rem;transition:transform .3s var(--ease),background .3s}.button>span{font-size:1.3rem;transition:transform .3s}.button:hover{background:#49312a;transform:translateY(-3px)}.button:hover>span{transform:translate(3px,-3px)}.small-link{font-size:.875rem;border-bottom:1px solid var(--line);padding-bottom:4px}.hero-bottom{position:absolute;bottom:26px;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;font-family:Georgia,serif;font-size:.75rem;letter-spacing:.12em;z-index:4}.hero-bottom a{display:flex;align-items:center;gap:18px}.scroll-line{height:38px;width:1px;display:block;background:linear-gradient(var(--ink) 50%,transparent 50%);background-size:100% 200%}.window-caption{position:absolute;bottom:16%;left:8%;font:italic clamp(2rem,5vw,5rem)/1.3 Georgia,serif;color:#fff9f4;opacity:0;text-shadow:0 2px 24px #53352660;pointer-events:none}.window-caption span{display:block}.section{padding:120px max(7%,calc((100vw - 1200px)/2));scroll-margin-top:0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:55px;margin-bottom:50px}.section-heading>p{font-size:1rem}.works{background:#f4ece5;padding-top:110px}.work-index{gap:28px;margin-bottom:35px;border-bottom:1px solid var(--line);padding-bottom:22px}.work-index a{border-bottom:1px solid transparent}.work-index a:hover{border-color:var(--ink)}.project{display:grid;grid-template-columns:1.32fr 1fr;gap:5%;align-items:center;position:relative;isolation:isolate;padding:65px 35px;min-height:620px;border:1px solid var(--line);border-radius:6px;background:#fff9f4;box-shadow:0 20px 55px #62473f0a;scroll-margin-top:120px}.project+.project{margin-top:80px}.project-lp{background:#f0ded4}.project-watermark{position:absolute;right:28px;top:0;font:9rem/1.2 Georgia,serif;color:#684d470c;z-index:-1}.project-media{display:block;min-width:0}.project-media video,.project-media img{display:block;width:100%;height:auto;border:1px solid #62473f28;box-shadow:0 20px 40px #41272019;border-radius:3px}.project-media video{background:#123f43;aspect-ratio:8/5}.lp-media{transition:transform .7s var(--ease)}.lp-media img{aspect-ratio:1.775;object-fit:cover;object-position:top}.lp-media:hover{transform:perspective(1100px) rotateY(-3deg) translateY(-7px)}.media-caption{display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.1em;margin-top:14px}.project-copy h3{font-size:clamp(1.5rem,2vw,2rem);margin-bottom:22px}.project-copy>p:not(.eyebrow){font-size:1rem}.project-label{display:inline-block;font-family:var(--sans);letter-spacing:0;margin-left:10px;font-size:.75rem;border-bottom:1px solid var(--line)}.project-tags{display:flex;flex-wrap:wrap;gap:8px 15px;list-style:none;padding:0;margin:22px 0;font-size:.875rem}.text-link{display:inline-flex;align-items:center;gap:28px;font-size:.95rem;border-bottom:1px solid var(--ink);padding:7px 0}.text-link span{transition:transform .3s}.text-link:hover span{transform:translate(4px,-4px)}.project-copy>.project-disclaimer{font-size:.8rem;color:var(--muted);margin-top:20px}.message{text-align:center;background:#fffdfb;padding-top:130px;padding-bottom:130px}.message-body{margin-top:35px}.message p+p{margin-top:22px}.handwritten{display:block;font:italic clamp(1rem,2vw,1.5rem) Georgia,serif;color:#967366;margin-top:40px}.service{display:grid;grid-template-columns:50px 1fr 1.4fr;gap:30px;border-top:1px solid var(--line);padding:38px 0}.service:last-child{border-bottom:1px solid var(--line)}.service .eyebrow{margin-bottom:8px}.number{font:1.2rem Georgia,serif;color:var(--muted)}.detail{display:block;margin-top:16px;font-size:.875rem;color:var(--muted);line-height:1.8}.approach{text-align:center;background:#684d47;color:var(--paper);position:relative;overflow:hidden}.approach:before{content:'';position:absolute;width:60vw;height:60vw;top:-40vw;left:-15vw;border:1px solid #fff9f425;border-radius:50%;pointer-events:none}.approach>p:last-child{margin-top:30px;line-height:2.2}.process{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.process ol{list-style:none;padding:0;margin:0;border-left:1px solid var(--line)}.process li{position:relative;display:flex;gap:25px;padding:0 0 32px 30px;margin-bottom:20px}.process li:before{content:'';position:absolute;left:-5px;top:8px;width:9px;height:9px;border-radius:50%;background:#bb8e7e;box-shadow:0 0 0 6px var(--paper)}.process li:last-child{margin:0;padding-bottom:0}.process li>span{font:1rem Georgia,serif}.process h3{font-size:1.35rem}.process h3 em{font:italic 1rem Georgia,serif;color:var(--muted);margin-left:18px}.process li p{margin-top:7px}.about{display:grid;grid-template-columns:.85fr 1.2fr;gap:30px 8%;border-top:1px solid var(--line);align-items:center}.about-image{grid-row:span 2;overflow:hidden;border-radius:180px 180px 3px 3px}.about-image img{width:100%;height:550px;object-fit:cover;object-position:70% 90%;display:block}.about-name .eyebrow{margin-bottom:10px}.about-name>span{font:italic 5rem/1 Georgia,serif}.about-name>p:last-child{font-size:.875rem;margin-top:14px}.about h2{font-size:1.9rem;margin-bottom:26px}.about p+p{margin-top:20px}.contact{text-align:center;background:#f0d9d0;position:relative;overflow:hidden}.contact:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 70% 40%,#fff9f4aa,transparent 60%)}.contact>*{position:relative}.contact>p:not(.eyebrow){margin-top:25px}.contact .button{margin-top:30px}.contact .contact-note{font-size:.875rem}footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:38px 5%}footer small,footer>a:last-child{font-size:.75rem}.mobile-break{display:none}.skip{position:fixed;top:-100px;left:20px;padding:10px;background:var(--paper);z-index:30}.skip:focus{top:10px}.reveal{opacity:1;transform:none}html[data-motion=on] .reveal:not(.visible){opacity:0;transform:translateY(25px)}html[data-motion=on] .reveal{transition:opacity .8s var(--ease) var(--delay,0ms),transform .8s var(--ease) var(--delay,0ms)}html[data-motion=on] .line-mask>span{animation:lineEnter 1.25s var(--ease) both}.line-mask:nth-child(2)>span{animation-delay:.15s!important}html[data-motion=on] .entrance{animation:fadeEnter 1.1s var(--ease) .3s both}html[data-motion=on] .hero-sub{animation-delay:.5s}html[data-motion=on] .hero-actions{animation-delay:.7s}html[data-motion=on] .scroll-line{animation:scrollHint 2.6s ease-in-out infinite}html[data-motion=on]:not(.hero-offscreen):not(.tab-hidden) .hero-atmosphere:after{animation:lightDrift 12s ease-in-out infinite alternate}html.tab-hidden *,html.hero-offscreen .hero-stage *{animation-play-state:paused!important}@keyframes lineEnter{from{transform:translateY(105%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeEnter{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes lightDrift{from{transform:translate(-3%,0)}to{transform:translate(4%,5%)}}@keyframes scrollHint{0%,100%{background-position:0 100%}50%{background-position:0 0}}
@media(min-width:901px) and (min-height:650px) and (hover:hover){html[data-motion=on] .hero-journey{height:185svh}html[data-motion=on] .hero-stage{position:sticky;top:0;min-height:0;height:100svh}html[data-motion=on] .hero-copy{top:18%;transform:none}.project-lp{z-index:2}.works{padding-bottom:100px}}
@media(max-width:1100px){.header{gap:18px}.header nav{gap:16px}.brand span{font-size:.75rem}.hero-copy{left:6%}.hero-copy h1{font-size:4.2rem}.section{padding:90px 6%}.project{padding:40px 25px;min-height:580px}.project-copy h3{font-size:1.6rem}.section-heading{gap:35px}.service{grid-template-columns:30px 1fr 1.4fr;gap:22px}}
@media(max-width:900px),(max-height:649px){.header{position:sticky;background:#fff9f4ed;padding:18px 5%;flex-wrap:wrap;gap:12px}.header nav{gap:18px}.brand{font-size:1.2rem}.brand em{font-size:1.6rem}.brand span{font-size:.75rem;letter-spacing:0}.header nav a:not(.nav-contact){display:none}.motion-toggle{width:36px;height:36px}.motion-label{top:70px}.hero-stage{min-height:0;height:auto;display:flex;flex-direction:column;padding:45px 7% 75px}.hero-copy{position:relative;top:auto;left:auto;width:100%;transform:none}.hero-copy h1{font-size:clamp(3rem,9vw,5rem)}.hero-copy h1 .line-mask{display:inline-block;margin-right:10px}.hero-sub{font-size:1.15rem}.hero-window{position:relative;inset:auto;clip-path:none!important;transform:none!important;z-index:0;order:2;width:90%;height:480px;margin:40px 0 0 auto;border-radius:220px 220px 4px 4px;overflow:hidden}.window-image img{object-position:50% 65%}.hero-window figcaption{bottom:5%;right:7%;font-size:.75rem}.window-caption{display:none}.hero-bottom{bottom:20px;left:7%;right:7%}.hero-bottom>span:last-child{display:none}.hero-bottom a{font-size:.75rem}.intro{font-size:1rem}.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:20px}.section{padding:75px 7%}.section-heading{display:block}.section-heading>p{margin-top:25px}.project{display:flex;flex-direction:column;gap:28px;padding:28px;min-height:0;position:relative!important;transform:none!important}.project+.project{margin-top:40px}.project-media{width:100%}.project-watermark{font-size:6rem}.project-copy{width:100%}.project-copy h3{font-size:1.7rem}.work-index{font-size:.875rem;gap:20px}.service{grid-template-columns:30px 1fr;gap:15px}.service>div:last-child{grid-column:2}.service h3{font-size:1.5rem}.process{grid-template-columns:1fr;gap:40px}.about{grid-template-columns:1fr 1fr;gap:35px}.about-image{grid-row:auto}.about-image img{height:360px}.about>div:last-child{grid-column:1/-1}.about h2{font-size:1.75rem}.about-name>span{font-size:4rem}.contact h2{font-size:1.85rem}footer{flex-wrap:wrap}.mobile-break{display:block}}
@media(max-width:480px){.header{gap:10px}.brand{font-size:1.15rem}.brand em{font-size:1.5rem}.brand span{display:none}.header nav{margin-left:auto}.nav-contact{font-size:.8rem}.nav-contact span{margin-left:3px}.motion-toggle{width:34px;height:34px}.hero-stage{padding-top:38px}.hero-copy>.eyebrow{font-size:.75rem;letter-spacing:.07em}.hero-copy h1{font-size:3.35rem}.hero-copy h1 .line-mask{display:block}.hero-sub{font-size:1.05rem}.hero-actions{gap:16px}.button{font-size:.875rem;padding:15px 20px;gap:30px}.small-link{font-size:.8rem}.hero-window{height:350px;margin-top:30px}.hero-bottom>span:first-child{font-size:.65rem}.hero-bottom a{font-size:.65rem}.scroll-line{height:25px}.section{padding:65px 6%}h2{font-size:1.85rem}.project{padding:18px;gap:24px}.project-copy>.eyebrow{font-size:.75rem}.project-label{margin-left:6px}.project-tags{font-size:.8rem}.project-copy h3{font-size:1.45rem}.project-copy>p:not(.eyebrow){font-size:.95rem}.project-copy>.project-disclaimer{font-size:.8rem}.media-caption{font-size:.65rem}.message h2{font-size:1.6rem}.message-body{font-size:1rem}.about{gap:25px}.about-image img{height:250px}.about-name>span{font-size:3.5rem}.about-name>p:last-child{font-size:.75rem}.about h2{font-size:1.5rem}.approach h2{font-size:1.6rem}.approach>p:last-child{font-size:.95rem}.contact h2{font-size:1.55rem}footer .brand{width:100%}footer small{flex:1}}
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}html[data-motion=off] .reveal{opacity:1!important;transform:none!important}@media print{.header,.hero-journey,.motion-toggle{position:relative!important}.hero-journey{height:auto!important}.hero-stage{height:650px!important}.reveal{opacity:1!important;transform:none!important}.project{position:relative!important;break-inside:avoid}}

/* Individual LP portfolio */
.lp-collection{padding-top:100px;scroll-margin-top:100px}.lp-collection-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:40px}.lp-collection-heading h3{font-size:2rem}.lp-collection-heading>p{font-size:.9rem}.lp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px}.lp-card{min-width:0}.lp-card>a{display:block}.lp-card-preview{position:relative;aspect-ratio:4/5;overflow:hidden;background:#e6d8cf;border:1px solid var(--line);border-radius:4px;box-shadow:0 12px 32px #62473f10}.lp-card-preview img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover;object-position:top;transition:transform 1.4s var(--ease)}.lp-open{position:absolute;right:14px;bottom:14px;padding:8px 12px;font-size:.75rem;letter-spacing:.08em;background:var(--paper);color:var(--ink);border:1px solid var(--line);transition:transform .35s,background .35s}.lp-card-info{padding:20px 2px 0}.lp-card-info .eyebrow{margin-bottom:8px}.lp-card-info h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;line-height:1.5;margin:0}.lp-type{font-size:.8rem;color:var(--muted);margin-top:10px;display:flex;gap:16px}.lp-type span{border-left:1px solid var(--line);padding-left:16px}.lp-card a:hover .lp-open,.lp-card a:focus-visible .lp-open{background:var(--ink);color:var(--paper)}@media(hover:hover){html[data-motion=on] .lp-card a:hover .lp-card-preview img,html[data-motion=on] .lp-card a:focus-visible .lp-card-preview img{transform:translateY(-70px)}}@media(max-width:900px){.lp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 22px}.lp-collection-heading{display:block}.lp-collection-heading>p{margin-top:20px}.lp-collection{padding-top:65px}}@media(max-width:520px){.lp-grid{grid-template-columns:1fr;gap:40px}.lp-card-preview{aspect-ratio:4/4.5}.lp-collection-heading h3{font-size:1.55rem}.lp-card-info h4{font-size:1.4rem}}

/* Yuka, the atelier host. Transform layers separate entrance and greeting. */
.yuka-host{position:absolute;z-index:3;right:10%;bottom:12%;width:clamp(190px,23vw,330px);text-align:center;transform-origin:50% 95%}.yuka-button{display:block;width:100%;padding:0;border:0;background:none;transform-origin:50% 90%;line-height:0}.yuka-button img{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 12px #62473f18)}.yuka-greeting{position:absolute;bottom:95%;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid var(--line);border-radius:30px 30px 30px 5px;background:#fff9f4ed;padding:9px 17px;font-size:.8rem}.yuka-hint{display:block;font-size:.6rem;letter-spacing:.15em;margin-top:-10px}html[data-motion=on] .yuka-host{animation:yuka-arrive .9s var(--ease) both}html[data-motion=on] .yuka-button{animation:yuka-breathe 4.5s ease-in-out infinite}html[data-motion=on] .yuka-button.is-greeting{animation:yuka-hello .9s ease-in-out}html.hero-offscreen .yuka-button,html.tab-hidden .yuka-button{animation-play-state:paused!important}@keyframes yuka-arrive{from{opacity:0;translate:0 35px}to{opacity:1;translate:0 0}}@keyframes yuka-breathe{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(1deg) translateY(-7px)}}@keyframes yuka-hello{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg) translateY(-8px)}55%{transform:rotate(5deg) translateY(-3px)}75%{transform:rotate(-3deg)}}@media(max-width:900px){.yuka-host{right:12%;bottom:65px;width:210px}.yuka-greeting{font-size:.75rem}}@media(max-width:520px){.yuka-host{right:8%;bottom:68px;width:165px}.yuka-greeting{font-size:.68rem;padding:7px 12px}.yuka-hint{font-size:.55rem}}
.yuka-button img{transform-origin:50% 85%;transition:transform .55s cubic-bezier(.2,.65,.3,1)}
html[data-motion=off] .yuka-button img{transform:none!important}
@media(hover:hover) and (pointer:fine) and (min-width:901px){.yuka-button{cursor:pointer}}
