/* HOME additions; scoped to preserve the service pages. */
.home-page .nav-container { gap: 20px; }
.home-page .nav-menu { margin-left: auto; gap: clamp(10px, 1.15vw, 18px); }
.language-switch { display: flex; align-items: center; gap: 7px; order: 2; flex-shrink: 0; }
.language-switch button { font: 500 .7rem var(--font-sans); padding: 9px 2px; border: 0; border-bottom: 1px solid transparent; color: var(--color-mid-gray); background: transparent; cursor: pointer; }
.language-switch button[aria-pressed="true"] { color: var(--color-black); border-color: currentColor; }
.home-page .nav-toggle { order: 3; }
.home-page .hero { min-height: 0; padding: 3.5rem 2rem 5.5rem; }
.home-page .hero-content { max-width: 1020px; }
.home-page .hero-logo { max-width: min(220px, 55vw); }
.home-page .hero-logo-container { margin-bottom: 1.5rem; }
.home-page .artist-location { letter-spacing: .14em; font-size: .78rem; margin-bottom: 1.25rem; }
.home-page .hero-subtitle { font-weight: 500; font-size: clamp(1.18rem, 2.1vw, 1.65rem); line-height: 1.5; margin-bottom: 2rem; }
.hero-biography { max-width: 820px; margin: 0 auto; }
.hero-biography p { font-size: clamp(.97rem, 1.2vw, 1.06rem); line-height: 1.85; margin-bottom: 1rem; }
.home-page .hero-scroll { bottom: .7rem; }
.home-page .atelier-intro { padding: 4rem 0 2rem; }
.line-heading { position: relative; isolation: isolate; display: table; font-size: clamp(2.2rem, 4.1vw, 3.6rem); font-weight: 400; margin-bottom: 2rem; line-height: 1.18; }
.line-heading::before { content: ''; position: absolute; z-index: -1; left: -5px; right: -8px; bottom: -.025em; aspect-ratio: 710 / 58; background: #B5DEB9; -webkit-mask: url('../assets/branding/fudeline/fudeline-mask.png') center / 100% 100% no-repeat; mask: url('../assets/branding/fudeline/fudeline-mask.png') center / 100% 100% no-repeat; clip-path: inset(0); }
.home-motion .line-heading::before { clip-path: inset(0 100% 0 0); transition: clip-path 950ms cubic-bezier(.2,.65,.3,1); }
.home-motion .line-heading.is-drawn::before { clip-path: inset(0); }
.home-page .section-title { margin-left: auto; margin-right: auto; }
.home-page .atelier-intro .line-heading { margin-left: 0; }
.home-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4.5rem 2.5rem; }
.home-service { min-width: 0; display: flex; flex-direction: column; align-items: stretch; border-top: 1px solid var(--color-light-gray); padding-top: 1.2rem; }
.service-number { font-size: .82rem; letter-spacing: .08em; margin-bottom: .65rem; }
.home-service .service-title { font: 400 clamp(1.7rem,2.4vw,2.15rem)/1.18 var(--font-serif); min-height: 2.5em; margin-bottom: 1.4rem; }
.media-carousel { min-width: 0; position: relative; }
.media-stage { width: 100%; aspect-ratio: 4 / 5; position: relative; background: #F0EDE7; overflow: hidden; touch-action: pan-y; }
.media-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 650ms ease, visibility 650ms; }
.media-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.media-slide img, .media-slide video { width: 100%; height: 100%; display: block; object-fit: contain; }
.carousel-controls { display: flex; gap: 10px; align-items: center; min-height: 48px; }
.carousel-controls button { color: var(--color-charcoal); font: .74rem var(--font-sans); background: none; border: 0; cursor: pointer; min-height: 44px; min-width: 38px; padding: 8px 2px; }
.carousel-controls .carousel-toggle { margin-left: auto; text-align: right; }
.carousel-count { font-size: .75rem; white-space: nowrap; }
.service-description { font-size: .95rem; line-height: 1.75; margin: .85rem 0 1.5rem; }
.service-explore { margin-top: auto; align-self: flex-start; font-size: .85rem; border-bottom: 1px solid; padding-bottom: .5rem; }
.home-page .about .container-narrow { max-width: 1000px; }
.home-page .about-content { grid-template-columns: 160px minmax(0,1fr); align-items: start; gap: 3rem; }
.home-page .about-image-container { max-width: 160px; background: transparent; }
.about-eyebrow { text-align: center; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 1rem; }
.home-page .about-text p { font-size: .97rem; line-height: 1.85; margin-bottom: 1.3rem; }
.home-page:lang(ja) { word-break: normal; }
.home-page:lang(ja) .hero-subtitle { font-family: var(--font-sans); font-size: clamp(1rem,1.9vw,1.4rem); }
.home-page:lang(ja) .line-heading { font-family: var(--font-sans); font-size: clamp(1.9rem,3.5vw,3rem); line-height: 1.4; }
.home-page:lang(ja) .service-title { font-family: var(--font-sans); font-size: clamp(1.35rem,2vw,1.65rem); line-height: 1.5; }
@media(min-width:1201px) {
 .home-services-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
 .home-service { grid-column: span 2; }
 .home-service:nth-child(4) { grid-column: 2 / span 2; }
 .home-service:nth-child(5) { grid-column: 4 / span 2; }
}
@media(max-width:1200px) {
 .home-page .nav-toggle { display: flex; }
 .home-page .nav-menu { position: fixed; top: var(--nav-height); left: 0; right: 0; flex-direction: column; gap: 0; background: var(--color-ivory); padding: 1rem 2rem; max-height: calc(100dvh - var(--nav-height)); overflow-y: auto; visibility: hidden; opacity: 0; transform: translateY(-12px); margin: 0; }
 .home-page .nav-menu.active { opacity: 1; visibility: visible; transform: none; }
 .home-page .nav-menu li { padding: .65rem 0; text-align: left; }
 .home-page .nav-link { display: block; font-size: .9rem; }
 .home-page .language-switch { margin-left: auto; }
 .home-services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:768px) {
 .home-page .nav-container { padding: 0 20px; gap: 14px; }
 .home-page .nav-logo { font-size: 1.1rem; }
 .language-switch { gap: 6px; }
 .home-page .hero { padding: 2.5rem 20px 1.5rem; }
 .hero-biography { text-align: left; }
 .home-page .hero-logo { max-width: 180px; }
 .home-page .hero-subtitle { margin-bottom: 1.5rem; }
 .home-services-grid { grid-template-columns: minmax(0,1fr); gap: 3.5rem; }
 .home-service .service-title { min-height: 0; font-size: 1.95rem; margin-bottom: 1.2rem; }
 .home-page .about-content { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
 .home-page .about-image-container { width: 140px; margin: 0 auto; }
 .home-page .container, .home-page .container-narrow { padding-left: 20px; padding-right: 20px; }
 .home-page .contact-intro { line-height: 1.9; }
}
@media(prefers-reduced-motion: reduce) {
 .home-motion .line-heading::before { clip-path: inset(0) !important; }
 .media-slide { transition: none; }
}

/* 03 is the height reference; each artwork retains its own ratio and width. */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.representative-gallery { --gallery-height: 520px; --gallery-gap: 0px; padding: 1rem 0 2.5rem; }
.gallery-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.gallery-track { display: flex; width: max-content; }
.gallery-set { display: flex; flex: none; align-items: center; gap: 0; padding: 0; }
.gallery-item { flex: none; height: var(--gallery-height); aspect-ratio: var(--art-ratio); margin: 0; padding: 0; border: 0; }
.gallery-item img { display: block; height: 100%; width: 100%; object-fit: contain; cursor: zoom-in; }
.gallery-clone { display: none; }
.gallery-ready .gallery-viewport { overflow-x: auto; touch-action: pan-x pan-y; cursor: grab; }
.gallery-ready .gallery-track { animation: gallery-drift var(--gallery-duration) linear infinite; will-change: transform; }
.gallery-ready .gallery-clone { display: flex; }
.gallery-paused .gallery-track { animation-play-state: paused; }
.gallery-static .gallery-viewport, .gallery-browsing .gallery-viewport { overflow-x: auto; touch-action: pan-x pan-y; }
.gallery-static .gallery-track, .gallery-browsing .gallery-track { animation: none; transform: none; }
.gallery-static .gallery-clone, .gallery-browsing .gallery-clone { display: none; }
.gallery-controls { display: flex; justify-content: flex-end; max-width: 1400px; margin: 1rem auto 0; padding: 0 2rem; }
.gallery-toggle { background: none; border: 0; color: var(--color-mid-gray); font: .75rem var(--font-sans); padding: 8px 0; min-height: 44px; cursor: pointer; }
@keyframes gallery-drift { from { transform: translateX(0); } to { transform: translateX(calc(-1 * var(--gallery-cycle))); } }
.home-page .projects-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; align-items: start; }
.home-page .project-image-container { aspect-ratio: 2812 / 3495; overflow: hidden; }
.home-page .project-image { width: 100%; height: 100%; object-fit: cover; }
.home-page .project-card:nth-child(1) .project-image { object-position: center; }
.home-page .project-card:nth-child(2) .project-image { object-position: center 46%; }
.home-page .project-card:nth-child(3) .project-image { object-position: center 50%; }
.home-page .project-card:nth-child(4) .project-image { object-position: center 40%; }
.home-page .project-title { min-height: 2.4em; margin-bottom: .5rem; }
@media(max-width:1100px) { .home-page .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:768px) { .representative-gallery { --gallery-height: 320px; --gallery-gap: 0px; } .gallery-controls { padding: 0 20px; } }
@media(max-width:600px) { .home-page .projects-grid { grid-template-columns: minmax(0,1fr); } }
@media(prefers-reduced-motion: reduce) {
 .gallery-ready .gallery-viewport { overflow-x: auto; touch-action: pan-x pan-y; }
 .gallery-ready .gallery-track { animation: none !important; transform: none !important; }
 .gallery-clone { display: none !important; }
}
