@font-face{font-family:Jiyudo Sans;src:url('./assets/fonts/noto-sans-jp.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#10161c;--muted:#4f5754;--green:#83bf46;--green-text:#577b30;--pale:#f3f7ec;--line:#e8eae6;--ease:cubic-bezier(.22,1,.36,1);--header:112px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 16px);-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);background:#fff;font-family:"Jiyudo Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:16px;line-height:1.8;letter-spacing:.035em;overflow-x:clip}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button,input{font-family:inherit}button{border:0}svg{display:block;max-width:100%}img{display:block;max-width:100%;height:auto}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-weight:800;line-height:1.5;letter-spacing:.015em}h2{font-size:34px}h3{font-size:22px}p{color:var(--muted)}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #58862b;outline-offset:6px}main:focus{outline:0}[hidden]{display:none!important}.wrap{width:min(1200px,calc(100% - 112px));margin-inline:auto}.icon{width:24px;height:24px;flex:0 0 24px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:12px;padding:12px 20px;border-radius:30px;background:var(--ink);color:#fff;transform:translateY(-150%);z-index:300}.skip-link:focus{transform:translateY(0)}.eyebrow{font-size:14px;font-weight:700;color:var(--green-text);letter-spacing:.06em;margin-bottom:6px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:56px;padding:8px 12px 8px 29px;background:var(--ink);color:#fff;font-size:16px;line-height:1.5;letter-spacing:.05em;font-weight:700;border-radius:32px 30px 32px 29px;position:relative;transition:background .3s,box-shadow .3s,transform .5s var(--ease);transform:translate(var(--mag-x,0px),var(--mag-y,0px));isolation:isolate}.button:hover{background:#263720;box-shadow:0 6px 18px #3c5a1712}.button:active{scale:.97}.plus-disc{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:var(--green);color:#172115;transition:transform .65s var(--ease),background .3s}.plus-disc .icon{width:22px;height:22px}.button:hover .plus-disc,.button:focus-visible .plus-disc,.nav-contact:hover .plus-disc{transform:rotate(90deg);background:#a1d36b}
/* The official PNG stays untouched, including in the opening animation. */
.site-header{height:var(--header);position:relative;background:#fff;z-index:40}.header-inner{width:min(1320px,calc(100% - 80px));height:100%;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:17px;flex-shrink:0;min-height:68px}.brand-logo{width:80px;flex:none}.brand-name{font-size:23px;letter-spacing:.07em;font-weight:800;white-space:nowrap;line-height:1.4}.brand-name small{font-size:12px;display:block;font-weight:500;letter-spacing:.15em;color:#677063;margin-top:8px}.site-nav{display:flex;align-items:center;gap:25px}.site-nav>a{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:700;white-space:nowrap;transition:color .25s}.site-nav>a:hover{color:var(--green-text)}.site-nav .nav-contact{background:var(--pale);border-radius:28px;padding:8px 10px 8px 22px;gap:18px;min-height:48px}.nav-contact .plus-disc{height:28px;width:28px;flex-basis:28px}.nav-contact .icon{width:19px;height:19px}.menu-toggle{display:none}.hero{position:relative;isolation:isolate;overflow:clip}.hero-layout{display:grid;grid-template-columns:46% 54%;align-items:center;min-height:580px}.hero-copy{position:relative;z-index:2;padding-bottom:12px}.hero-first,.hero-second{display:flex;align-items:baseline;white-space:nowrap}.hero-first{font-size:74px;line-height:1.5;letter-spacing:-.045em}.hero-yu{font-size:108px;line-height:1.1;letter-spacing:-.09em;margin-right:4px}.hero-second{font-size:58px;line-height:1.45;letter-spacing:-.035em;align-items:center}.hero-plus{width:79px;height:79px;color:var(--green);flex:0 0 79px;margin-left:0}.business-line{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:.12em;margin:12px 0 20px;white-space:nowrap}.business-line span{padding-inline:3px;color:#35432d}.hero-description{font-size:19px;font-weight:600;line-height:1.8;letter-spacing:.055em;margin-bottom:24px}.hero .button{min-height:60px;padding-left:32px;gap:32px}.hero-visual{width:calc(100% + 65px);margin-left:7px;margin-right:-72px;transform:perspective(900px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .7s var(--ease)}.hero-art{width:100%;overflow:visible}.hero-shape{position:absolute;width:520px;height:175px;bottom:0;left:0;z-index:-1}.hero-shape svg{height:100%;width:100%}.illustration{overflow:visible;width:100%;height:auto}.about-layout{display:grid;grid-template-columns:47% 53%;align-items:center;min-height:370px}.about{overflow:clip}.about-mark{height:370px;position:relative;display:flex;align-items:center;justify-content:center;padding-right:38px}.big-yu{font-size:244px;font-weight:600;line-height:1.1;color:#0e151c;position:relative;z-index:1;margin-top:-13px;letter-spacing:-.09em}.about-plus{width:100px;height:100px;color:var(--green);position:relative;margin:104px 0 0 12px;z-index:2}.about-blob{position:absolute;inset:0;width:100%;height:100%}.about-curve{position:absolute;left:-100px;bottom:0;width:calc(100% + 135px);height:100%;max-width:none}.about-copy{padding:20px 0 25px 13px}.about h2{font-size:36px;white-space:nowrap;margin-bottom:13px}.about p:not(.eyebrow){font-size:16px;line-height:1.95;font-weight:500}.business{padding:30px 0 36px;border-bottom:1px solid var(--line)}.business-heading{width:fit-content;margin:0 auto 2px}.business-heading h2{font-size:32px}.business-grid{display:grid;grid-template-columns:1fr 48px 1fr 48px 1fr;align-items:center;gap:13px}.business-card{display:block;border-radius:26px;padding:0 4px 8px;transition:background .4s,transform .6s var(--ease)}.business-card:hover{background:#f8faf4;transform:translateY(-5px)}.business-art{height:185px;max-width:270px;margin:0 auto;display:flex;align-items:center}.business-art .illustration{height:205px;width:100%}.business-art .draw-line,.business-art .repair-crack,.business-art .illustration>g>circle{display:none}.business-art .rays{stroke-width:4}.business-label{display:flex;align-items:center;gap:23px;min-height:72px}.business-number{font-size:52px;font-weight:700;color:#c8dbb1;line-height:1;letter-spacing:-.04em}.business-label h3{font-size:27px}.business-label p{font-size:13px;letter-spacing:0;margin-top:3px;white-space:nowrap}.business-plus{display:flex;align-items:center;justify-content:center}.business-plus svg{width:44px;height:44px;color:var(--green);margin-top:42px}.service{border-bottom:1px solid var(--line);overflow:clip}.service-layout{display:grid;grid-template-columns:46% 54%;align-items:center;min-height:400px}.service-copy{padding:28px 0;position:relative;z-index:2}.service .eyebrow{margin-bottom:0}.service h2{font-size:44px;line-height:1.35;margin-bottom:6px}.service h3{font-size:22px;line-height:1.6;margin-bottom:12px;letter-spacing:-.015em}.service-copy>p:not(.eyebrow){font-size:16px;line-height:1.85;font-weight:500;letter-spacing:.015em}.tags{display:flex;gap:10px;margin:14px 0 17px;padding:0;list-style:none;flex-wrap:wrap}.tags li{border:1px solid #a2a7a1;border-radius:30px;padding:1px 19px;font-size:14px;font-weight:700;line-height:1.65;white-space:nowrap;color:#40473d}.service .button{min-height:52px;font-size:15px;gap:35px;padding:8px 10px 8px 28px}.service .plus-disc{width:30px;height:30px;flex-basis:30px}.service-visual{width:100%;max-width:650px;margin-right:-25px;transform:perspective(1000px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg))}.service-visual>.illustration{width:100%;height:390px;max-width:none}.service-reverse .service-copy{grid-column:2;grid-row:1;padding-left:60px}.service-reverse .service-visual{grid-column:1;grid-row:1;margin-left:-30px;width:calc(100% + 20px)}.service-reverse .service-layout{grid-template-columns:50% 50%}#advertising .service-copy{margin-right:-45px}.approach{background:#f4f8ed;position:relative;padding:35px 0 38px;overflow:clip}.approach h2{font-size:32px}.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:31px;gap:30px}.approach-item{display:flex;gap:17px;padding-right:16px;transition:transform .4s var(--ease)}.approach-item+.approach-item{border-left:1px solid #dce5d3;padding-left:28px}.value-plus{flex:0 0 42px;width:42px;height:42px;color:var(--green);margin-top:-1px;transition:transform .7s var(--ease)}.approach-item h3{font-size:19px;white-space:nowrap;margin-bottom:12px;letter-spacing:0}.approach-item p{font-size:15px;line-height:1.8}.approach-item:hover .value-plus{transform:rotate(180deg)}.shops{padding:34px 0 25px;border-bottom:1px solid var(--line)}.shops-heading{display:flex;justify-content:space-between;align-items:end;gap:40px}.shops-heading h2{font-size:32px}.shops-heading>p{font-size:13px;line-height:1.9}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;align-items:start;margin-top:2px}.shop{text-align:center;padding:0 8px 8px}.shop-art{height:115px;width:175px;max-width:100%;margin:auto}.shop-art .illustration{height:100%}.shop h3{font-size:19px;line-height:1.6;letter-spacing:-.02em}.shop h3 span{white-space:nowrap}.shop-city{display:flex;justify-content:center;align-items:center;gap:5px;font-size:14px;font-weight:600;margin:2px 0 7px}.shop-city .icon{width:19px;height:19px;flex-basis:19px;color:var(--green-text)}.shop details{max-width:320px;margin:auto}.shop summary{display:inline-flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;min-height:44px;border:1px solid #99a28e;border-radius:26px;padding:4px 5px 4px 29px;font-size:15px;font-weight:700;gap:38px;transition:background .3s}.shop summary::-webkit-details-marker{display:none}.shop summary:hover{background:var(--pale)}.shop summary .plus-disc{height:31px;width:31px;flex-basis:31px}.shop details[open] .plus-disc{transform:rotate(45deg)}.shop-details{text-align:left;padding:20px 18px;margin-top:12px;background:#f5f8f0;border-radius:18px;animation:fade-up .45s var(--ease)}.shop-details p{font-size:14px;margin-bottom:10px}.phone-link{display:flex;align-items:center;min-height:44px;font-size:22px;font-weight:700;letter-spacing:0}.external-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;font-size:14px;text-decoration:underline;text-underline-offset:4px}.company{padding:22px 0 26px}.company-layout{display:grid;grid-template-columns:35% 65%;align-items:center;gap:0}.company h2{font-size:32px}.company-table{margin:0;font-size:15px}.company-table>div{display:grid;grid-template-columns:165px 1fr;gap:30px;min-height:37px;border-bottom:1px solid var(--line);align-items:center;padding:5px 0}.company-table>div:last-child{border:0}.company-table dt{font-weight:500;color:#535b52}.company-table dd{margin:0;color:#363e37}.company-table small{font-size:13px;display:block;color:#6a7366}.contact{position:relative;background:#f9fbf6;overflow:clip}.contact-layout{min-height:260px;display:grid;grid-template-columns:39% 61%;align-items:center;padding-block:30px}.contact h2{font-size:34px;line-height:1.45;margin-bottom:10px}.contact p:not(.eyebrow){font-size:15px;line-height:1.9}.contact-actions{position:relative;display:flex;align-items:center;gap:14px;isolation:isolate}.contact-actions .button{font-size:15px;gap:19px;padding-left:24px;white-space:nowrap;min-height:60px}.contact-curve{position:absolute;width:calc(100% + 220px);left:-160px;max-width:none;top:50%;height:230px;transform:translateY(-50%);z-index:-1}.site-footer{padding:30px 0 29px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.site-footer .brand-logo{width:80px}.site-footer .brand-name{font-size:22px}.site-footer nav{display:flex;gap:25px}.site-footer nav a{font-size:13px;min-height:44px;display:flex;align-items:center;font-weight:600}.site-footer nav a:hover{color:var(--green-text)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.footer-bottom p{font-size:12px;color:#687262}.footer-tools{display:flex;gap:24px;margin-top:7px}.footer-tools button{min-height:44px;background:none;color:#627253;font-size:13px;padding:0}.footer-tools button span{margin-left:6px;color:#5c8d31;font-size:20px}.motion-toggle{position:fixed;z-index:50;bottom:max(18px,env(safe-area-inset-bottom));right:max(22px,env(safe-area-inset-right));min-height:44px;padding:8px 15px 8px 10px;display:flex;align-items:center;gap:6px;background:#fffef9ef;color:#56644c;border:1px solid #dde6d4;border-radius:25px;font-size:12px;box-shadow:0 3px 14px #26372006;transition:transform .3s,background .3s}.motion-toggle .icon{width:20px;height:20px;flex-basis:20px;color:var(--green-text)}.motion-toggle:hover{background:#f0f6e8}.motion-toggle[aria-pressed=true]{background:#edf4e4}.offline-notice,.update-notice{position:fixed;left:20px;bottom:20px;z-index:70;max-width:min(520px,calc(100% - 40px));padding:17px 22px;background:#1c281a;color:#fff;border-radius:16px;font-size:14px;box-shadow:0 8px 30px #0002}.update-notice button{min-height:44px;background:#dfeece;border-radius:22px;margin:10px 10px 0 0;padding:5px 16px;font-size:14px}.update-notice button:last-child{background:transparent;color:#fff}dialog{position:fixed;border:1px solid #e4eada;border-radius:28px;padding:48px;width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 40px);color:var(--ink);overflow:auto;box-shadow:0 30px 100px #1a251b25}dialog::backdrop{background:#1c291b70;backdrop-filter:blur(5px)}dialog[open]{animation:dialog-in .4s var(--ease)}dialog h2{font-size:27px;margin-bottom:20px}dialog h3{font-size:17px;margin-top:22px;margin-bottom:6px}dialog p{font-size:15px}dialog .button{margin-top:24px}dialog .dialog-close{position:absolute;right:16px;top:15px;background:#f3f6ed;display:grid;place-items:center;width:44px;height:44px;border-radius:50%}.install-logo{margin-bottom:20px}.install-status{margin-top:16px}.noscript-note{font-size:14px;padding:20px;text-align:center;background:var(--pale)}
/* Motion: progressive enhancement, bounded entrance sequences and pausable ambient movement. */
.splash{display:none;position:fixed;inset:0;background:white;z-index:200;place-items:center;overflow:hidden}.show-intro .splash{display:grid;animation:splash-exit .75s var(--ease) 1.75s both}.splash-lockup{text-align:center;position:relative;z-index:2}.splash-lockup img{width:168px;margin:auto;animation:logo-arrive .8s var(--ease) both}.splash-name{font-size:21px;font-weight:700;letter-spacing:.14em;color:var(--ink);margin-top:24px;animation:fade-up .7s var(--ease) .2s both}.splash-words{display:flex;align-items:center;gap:13px;justify-content:center;font-size:15px;font-weight:600;margin-top:18px}.splash-words b{font-size:22px;color:var(--green);animation:plus-in .8s var(--ease) .6s both}.splash-words span{animation:fade-up .65s var(--ease) .35s both}.splash-words span:nth-of-type(2){animation-delay:.5s}.splash-words span:nth-of-type(3){animation-delay:.65s}.splash-orbit{position:absolute;width:min(900px,120vw);height:80%;inset:10% auto auto 50%;transform:translateX(-50%)}.splash-orbit path{stroke-dasharray:1;stroke-dashoffset:1;animation:line-draw 1.65s var(--ease) .1s forwards}.splash-skip{position:absolute;bottom:32px;right:36px;min-height:44px;padding:10px 15px;background:none;color:#60714f;font-size:14px;z-index:3}.js .hero-copy>*{animation:hero-arrive .9s var(--ease) both;animation-delay:var(--intro-delay,0s)}.show-intro{--intro-delay:2s}.js .hero-copy>.business-line{animation-delay:calc(var(--intro-delay,0s) + .1s)}.js .hero-copy>.hero-description{animation-delay:calc(var(--intro-delay,0s) + .18s)}.js .hero-copy>.button{animation-delay:calc(var(--intro-delay,0s) + .26s)}.js .hero-plus{animation:plus-in 1s var(--ease) calc(var(--intro-delay,0s) + .3s) both}.js .hero-visual{animation:art-arrive 1.2s var(--ease) calc(var(--intro-delay,0s) + .1s) both}.motion-ready .reveal{opacity:0;translate:0 26px;transition:opacity .85s var(--ease),translate .95s var(--ease);transition-delay:var(--reveal-delay,0s)}.motion-ready .reveal.revealed{opacity:1;translate:0 0}.business-card:nth-child(3),.approach-item:nth-child(2),.shop:nth-child(2){--reveal-delay:.1s}.business-card:nth-child(5),.approach-item:nth-child(3),.shop:nth-child(3){--reveal-delay:.2s}.motion-ready .draw-line{stroke-dasharray:1;stroke-dashoffset:1}.scene.entered .draw-line{animation:line-draw 1.7s var(--ease) .15s forwards}.scene.in-view .float{animation:float 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.scene.in-view .float.secondary{animation-delay:-2s;animation-duration:7s}.scene.in-view .blob{animation:blob-breathe 9s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.scene.in-view .blob.second{animation-delay:-4s}.scene.in-view .dot-breathe{animation:dot-breathe 4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}.scene.entered .reuse-orbit{animation:orbit 1.8s var(--ease) .35s both;transform-origin:309px 211px}.service-visual:hover .reuse-orbit,.business-card:hover .reuse-orbit{animation:orbit-hover 2s var(--ease) both}.scene.in-view .wrench-motion{animation:wrench 5.5s ease-in-out infinite;transform-origin:320px 230px}.scene.entered .repair-crack{animation:repair 1.5s var(--ease) .8s forwards}.scene.in-view .pencil-motion{animation:pencil 6s ease-in-out infinite;transform-origin:400px 280px}.scene.in-view .rays{animation:rays 5s ease-in-out infinite}.scene.entered .about-plus{animation:plus-in 1.2s var(--ease) .2s both}.about-mark:hover .big-yu{transform:rotate(-4deg);transition:transform .6s var(--ease)}.scene.entered .value-plus{animation:plus-in .9s var(--ease) both;animation-delay:var(--reveal-delay,0s)}.scene.entered .draw-city{stroke-dasharray:1000;stroke-dashoffset:1000;animation:city-draw 2s var(--ease) .2s forwards}.company-table .reveal:nth-child(2){--reveal-delay:.06s}.company-table .reveal:nth-child(3){--reveal-delay:.12s}.company-table .reveal:nth-child(4){--reveal-delay:.18s}.company-table .reveal:nth-child(5){--reveal-delay:.24s}.motion-off *,.motion-off *::before,.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-off{scroll-behavior:auto}.motion-off .reveal{opacity:1;translate:none}.motion-off .draw-line,.motion-off .draw-city{stroke-dashoffset:0}.motion-off .repair-crack{opacity:0}.motion-off .splash{display:none}.motion-off [data-tilt],.motion-off .button{transform:none!important}.motion-off .hero-copy>*,.motion-off .hero-visual,.motion-off .hero-plus{opacity:1;transform:none}.no-animation-page .reveal{opacity:1;translate:none}
@keyframes fade-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes art-arrive{from{opacity:0;translate:20px 10px}to{opacity:1;translate:0 0}}@keyframes plus-in{from{opacity:0;rotate:-90deg;scale:.65}to{opacity:1;rotate:0deg;scale:1}}@keyframes logo-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes splash-exit{from{clip-path:inset(0 0 0 0 round 0)}to{clip-path:inset(0 0 100% 0 round 0 0 45% 45%);visibility:hidden}}@keyframes line-draw{to{stroke-dashoffset:0}}@keyframes city-draw{to{stroke-dashoffset:0}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes blob-breathe{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.025) rotate(2deg)}}@keyframes dot-breathe{0%,100%{transform:scale(1)}50%{transform:scale(.8)}}@keyframes orbit{from{rotate:-32deg}to{rotate:0deg}}@keyframes orbit-hover{from{rotate:0deg}to{rotate:360deg}}@keyframes wrench{0%,30%,100%{rotate:0deg}45%{rotate:-8deg}60%{rotate:3deg}75%{rotate:0deg}}@keyframes repair{to{opacity:0;stroke-dasharray:100;stroke-dashoffset:100}}@keyframes pencil{0%,35%,100%{translate:0 0;rotate:0deg}50%{translate:-6px 8px;rotate:-3deg}65%{translate:5px 4px;rotate:2deg}80%{translate:0 0;rotate:0deg}}@keyframes rays{0%,60%,100%{opacity:1}72%{opacity:.2}83%{opacity:1}}@keyframes dialog-in{from{opacity:0;translate:0 14px;scale:.98}to{opacity:1;translate:0 0;scale:1}}
@media(min-width:1600px){.wrap{width:min(1280px,calc(100% - 160px))}.hero-layout{min-height:630px}.hero-first{font-size:80px}.hero-yu{font-size:116px}.hero-second{font-size:63px}}
@media(max-width:1200px){:root{--header:96px}.wrap{width:calc(100% - 80px)}.header-inner{width:calc(100% - 48px)}.brand-name{font-size:20px}.brand-logo{width:65px}.brand{gap:12px}.site-nav{gap:16px}.site-nav>a{font-size:13px}.site-nav .nav-contact{gap:10px;padding-left:16px}.hero-layout{min-height:530px}.hero-first{font-size:62px}.hero-yu{font-size:91px}.hero-second{font-size:48px}.hero-plus{width:66px;height:66px;flex-basis:66px}.business-line{font-size:19px}.hero-description{font-size:17px}.about h2{font-size:31px}.about p:not(.eyebrow){font-size:15px}.wide-only{display:none}.about-layout{grid-template-columns:45% 55%}.big-yu{font-size:220px}.about-plus{width:84px;height:84px}.business-heading h2{font-size:29px}.business-label{gap:12px}.business-label h3{font-size:25px}.business-number{font-size:44px}.business-label p{font-size:13px;white-space:normal}.business-grid{gap:6px;grid-template-columns:1fr 32px 1fr 32px 1fr}.service-reverse .service-copy{padding-left:24px}.service h3{font-size:20px}.service-copy>p:not(.eyebrow){font-size:15px}.service-layout{min-height:390px}.approach-grid{gap:18px}.approach-item{gap:10px;padding-right:0}.approach-item+.approach-item{padding-left:16px}.approach-item h3{font-size:17px}.value-plus{flex-basis:35px;width:35px;height:35px}.approach-item p{font-size:14px}.shops-heading h2{font-size:28px}.shop-grid{gap:20px}.shop h3{font-size:17px}.contact-layout{grid-template-columns:37% 63%}.contact-actions{gap:12px}.contact-actions .button{font-size:14px;gap:12px;padding-left:18px}.contact-actions .plus-disc{width:28px;height:28px;flex-basis:28px}.contact h2{font-size:30px}.footer-top nav{gap:18px}}
@media(max-width:1000px){.site-nav{gap:12px}.site-nav>a{font-size:12px}.brand-name{font-size:18px}.brand-logo{width:58px}.site-nav .nav-contact{padding:7px 8px 7px 14px;gap:8px}.hero-first{font-size:54px}.hero-yu{font-size:80px}.hero-second{font-size:40px}.hero-plus{width:57px;height:57px;flex-basis:57px}.hero-layout{min-height:480px}.hero-visual{width:calc(100% + 35px);margin-left:0}.hero-description{font-size:16px}.hero .button{font-size:14px;gap:20px;min-height:54px;padding-left:24px}.business-line{font-size:16px}.about-layout{min-height:330px}.about-mark{height:330px}.big-yu{font-size:180px}.about-plus{width:70px;height:70px;margin-left:5px}.about h2{font-size:27px}.about p:not(.eyebrow){font-size:14px}.business-heading h2{font-size:27px}.business-art{height:150px}.business-art .illustration{height:170px}.service h2{font-size:38px}.service h3{font-size:18px}.service-copy>p:not(.eyebrow){font-size:14px}.service .button{font-size:14px;gap:20px}.service-layout{min-height:365px}.service-visual>.illustration{height:335px}.tags li{font-size:13px;padding-inline:12px}.approach-grid{gap:12px}.approach-item{gap:8px}.approach-item h3{font-size:15px;white-space:normal}.approach h2{font-size:28px}.value-plus{width:30px;height:30px;flex-basis:30px}.shops-heading h2{font-size:25px}.shops-heading>p{max-width:240px}.shop h3{font-size:16px}.shop h3 span{display:block}.company-table>div{grid-template-columns:125px 1fr;gap:15px}.company-table{font-size:14px}.contact-actions{flex-direction:column;align-items:stretch;width:fit-content;margin:auto}.contact-actions .button{min-height:52px;font-size:15px;gap:28px}.contact-layout{grid-template-columns:48% 52%}.site-footer nav{gap:12px}.site-footer nav a{font-size:12px}.site-footer .brand-name{font-size:18px}.site-footer .brand-logo{width:60px}}
@media(max-width:900px){:root{--header:86px}.wrap{width:calc(100% - 40px)}.header-inner{width:calc(100% - 32px)}.site-header{height:var(--header)}.brand{gap:9px;min-height:54px}.brand-logo{width:56px}.brand-name{font-size:17px;letter-spacing:.04em}.brand-name small{font-size:12px;margin-top:5px;letter-spacing:.08em}.menu-toggle{display:flex;align-items:center;gap:5px;min-height:44px;padding:5px 8px;background:#f2f6eb;border-radius:25px;font-size:12px;font-weight:600}.menu-toggle .icon{height:22px;width:22px;flex-basis:22px;transition:rotate .4s}.menu-toggle[aria-expanded=true] .icon{rotate:45deg}.js .site-nav{position:absolute;inset:86px 0 auto;display:flex;align-items:stretch;flex-direction:column;background:#fff;gap:2px;padding:20px 26px 28px;box-shadow:0 18px 22px #24331a12;visibility:hidden;opacity:0;translate:0 -8px;transition:opacity .25s,translate .3s,visibility .3s;max-height:calc(100dvh - 86px);overflow:auto}.js .site-nav.is-open{visibility:visible;opacity:1;translate:0 0}.site-nav>a{font-size:16px;min-height:52px;padding:7px 16px;border-radius:22px}.site-nav>a:hover{background:#f3f7ed}.site-nav .nav-contact{padding:10px 15px 10px 18px;margin-top:8px;justify-content:space-between}.menu-open{overflow:hidden}.hero-layout{grid-template-columns:1fr;min-height:auto;padding-top:31px;gap:10px}.hero-copy{padding:0 0 0 7px}.hero-first{font-size:clamp(43px,8.6vw,65px);letter-spacing:-.05em;line-height:1.4}.hero-yu{font-size:clamp(63px,13.7vw,96px);letter-spacing:-.07em}.hero-second{font-size:clamp(31px,6.7vw,49px);letter-spacing:-.04em}.hero-plus{width:clamp(44px,9.5vw,68px);height:clamp(44px,9.5vw,68px);flex-basis:clamp(44px,9.5vw,68px)}.business-line{font-size:17px;letter-spacing:.08em;margin:12px 0 15px}.hero-description{font-size:15px;line-height:1.9;margin-bottom:20px}.hero .button{font-size:14px;gap:34px;min-height:52px;padding-left:23px}.hero .plus-disc{width:30px;height:30px;flex-basis:30px}.hero-visual{width:100%;max-width:570px;margin:-5px auto 0}.hero-art{max-height:355px}.hero-shape{width:60%;height:120px;opacity:.8}.about-layout{grid-template-columns:1fr;padding-block:25px 39px;gap:4px}.about-mark{height:235px;width:100%;max-width:430px;margin:auto;padding-right:0}.big-yu{font-size:166px;margin-top:-5px}.about-plus{width:65px;height:65px;margin:64px 0 0 7px}.about-curve{left:-20px;width:calc(100% + 40px);height:235px}.about-copy{padding:0 6px}.eyebrow{font-size:13px;margin-bottom:7px}.about h2{font-size:clamp(24px,5.6vw,32px);margin-bottom:17px;white-space:normal;letter-spacing:-.035em}.about p:not(.eyebrow){font-size:14px;line-height:2}.business{padding:30px 0 34px}.business-heading{margin:0 0 20px}.business-heading h2{font-size:25px;line-height:1.65;letter-spacing:0}.business-grid{grid-template-columns:1fr;gap:0;max-width:540px;margin:auto}.business-card{display:grid;grid-template-columns:43% 57%;align-items:center;padding:5px 0}.business-art{height:140px;max-width:190px;width:100%;margin:0}.business-art .illustration{height:150px}.business-label{gap:13px;align-items:start;min-height:auto;padding-right:3px}.business-number{font-size:36px;margin-top:5px}.business-label h3{font-size:24px}.business-label p{font-size:13px;line-height:1.8;margin-top:4px}.business-plus{margin:0 auto;height:26px}.business-plus svg{width:27px;height:27px;margin:0}.service-layout,.service-reverse .service-layout{grid-template-columns:1fr;min-height:0;gap:0;padding:30px 5px 15px}.service-copy{padding:0!important;margin:0!important}.service h2{font-size:36px;margin-bottom:7px}.service h3{font-size:18px;margin-bottom:14px;letter-spacing:-.03em}.service-copy>p:not(.eyebrow){font-size:14px;line-height:2}.tags{margin:15px 0 18px;gap:7px}.tags li{font-size:13px;padding-inline:14px}.service .button{font-size:14px;min-height:52px;gap:27px;padding-left:24px}.service-visual,.service-reverse .service-visual{width:100%;max-width:500px;margin:5px auto 0;grid-column:1;grid-row:2}.service-visual>.illustration{height:auto;max-height:300px}.service-reverse .service-copy{grid-column:1;grid-row:1}.approach{padding:33px 0 37px}.approach h2{font-size:25px;line-height:1.65;letter-spacing:-.025em}.approach-grid{grid-template-columns:1fr;gap:25px;margin-top:24px}.approach-item,.approach-item+.approach-item{padding:0;border:0;gap:18px}.value-plus{width:39px;height:39px;flex-basis:39px;margin-top:-3px}.approach-item h3{font-size:19px;margin-bottom:8px}.approach-item p{font-size:14px;line-height:1.9}.approach-item p br{display:none}.shops{padding:34px 0 26px}.shops-heading{display:block}.shops-heading h2{font-size:25px;line-height:1.65;letter-spacing:-.03em}.shops-heading>p{max-width:none;font-size:13px;margin-top:15px}.shop-grid{grid-template-columns:1fr;gap:22px;margin-top:15px}.shop{padding:0 0 23px}.shop+.shop{border-top:1px solid var(--line);padding-top:10px}.shop-art{height:120px;width:175px}.shop h3{font-size:20px;letter-spacing:-.03em}.shop h3 span{display:inline}.shop-city{font-size:14px;margin:4px 0 9px}.shop summary{min-height:46px;font-size:15px}.shop-details{padding:20px 23px}.company{padding:32px 0}.company-layout{grid-template-columns:1fr;gap:20px}.company h2{font-size:27px}.company-table>div{grid-template-columns:88px 1fr;gap:15px;align-items:start;padding:12px 0;min-height:44px}.company-table{font-size:14px}.company-table dd{overflow-wrap:anywhere}.company-table small{font-size:13px;line-height:1.8;margin-top:7px}.contact-layout{grid-template-columns:1fr;padding-block:33px 37px;gap:28px}.contact h2{font-size:29px}.contact p:not(.eyebrow){font-size:14px}.contact-actions{width:100%;align-items:stretch;gap:12px}.contact-actions .button{min-height:56px;font-size:15px;padding-left:25px}.contact-curve{width:calc(100% + 80px);left:-40px;top:20%}.site-footer{padding:30px 0 75px}.footer-top{align-items:start;flex-direction:column;gap:25px}.site-footer .brand-logo{width:63px}.site-footer .brand-name{font-size:19px}.site-footer nav{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:2px 10px}.site-footer nav a{font-size:13px;min-height:44px}.footer-bottom{flex-direction:column;align-items:start;gap:9px;margin-top:21px}.footer-bottom p{font-size:12px}.footer-tools{flex-wrap:wrap;gap:0 20px;margin-top:12px}.footer-tools button{font-size:13px}.motion-toggle{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:8px 12px 8px 9px}.offline-notice,.update-notice{bottom:68px;left:12px;max-width:calc(100% - 24px);font-size:13px}.splash-lockup img{width:136px}.splash-name{font-size:20px}.splash-words{font-size:14px;gap:9px}.splash-skip{right:20px;bottom:25px}.splash-orbit{width:150vw;height:60%;top:20%}dialog{padding:50px 24px 28px;border-radius:24px}dialog h2{font-size:23px}dialog .button{font-size:14px;gap:16px}dialog p{font-size:14px}.js .hero-copy>*{animation-duration:.75s}.site-header:has(.site-nav.is-open){z-index:100}}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.header-inner{width:calc(100% - 24px)}.brand-name{font-size:15px}.brand-logo{width:48px}.brand-name small{font-size:12px;letter-spacing:.025em}.menu-toggle{font-size:12px;padding-inline:8px;gap:3px}.menu-toggle .icon{width:18px;height:18px;flex-basis:18px}.hero-copy{padding-left:2px}.hero-first{font-size:45px}.hero-yu{font-size:67px}.hero-second{font-size:32px}.hero-plus{width:44px;height:44px;flex-basis:44px}.business-line{font-size:15px;letter-spacing:.055em}.business-label{gap:8px}.business-number{font-size:31px}.business-label h3{font-size:22px}.about h2{font-size:24px}.service h3{font-size:17px}.shop h3{font-size:18px}.approach-item h3{font-size:18px}.company-table>div{grid-template-columns:78px 1fr;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.splash{display:none!important}.motion-ready .reveal{opacity:1;translate:none}.draw-line,.draw-city{stroke-dashoffset:0!important}.hero-copy>*,.hero-visual,.hero-plus{opacity:1;transform:none}.repair-crack{opacity:0}}
@media print{.splash,.menu-toggle,.motion-toggle,.footer-tools,.offline-notice,.update-notice,dialog{display:none!important}.reveal{opacity:1!important;translate:none!important}.draw-line,.draw-city{stroke-dashoffset:0!important}*{animation:none!important;transition:none!important}.wrap{width:95%}.site-nav{display:none!important}.service,.shop,.company{break-inside:avoid}}
.page-hidden .illustration *{animation-play-state:paused!important}.footer-tools button:disabled{opacity:.5}.hero-copy h1:focus,.scene h2:focus{outline:none}
/* Fidelity pass: match the selected typography, generous art and organic surfaces. */
.section-shapes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.approach>.wrap,.contact>.wrap{position:relative;z-index:1}.big-yu{font-weight:400}.about-mark:hover .big-yu{transform:rotate(-4deg)}
@media(min-width:1201px){.hero-first{font-size:82px}.hero-yu{font-size:115px}.hero-second{font-size:73px;letter-spacing:-.05em}.hero-plus{width:88px;height:88px;flex-basis:88px}.hero-copy{padding-top:52px;padding-bottom:0}.hero-description{font-size:21px;margin-bottom:23px}.hero .button{font-size:18px;gap:35px;min-height:63px}.business-line{font-size:24px;margin-top:7px;margin-bottom:19px}.about p:not(.eyebrow){font-size:18px;line-height:1.9}.about h2{font-size:40px;letter-spacing:-.03em}.service-copy>p:not(.eyebrow){font-size:18px;line-height:1.75}.service h3{font-size:24px;letter-spacing:-.03em}.service .button{font-size:17px;min-height:56px}.tags li{font-size:16px}.business-art .illustration{transform:scale(1.2)}.business-label h3{font-size:30px}.business-label p{font-size:14px}.business-number{font-size:57px}.approach-item h3{font-size:21px;letter-spacing:-.025em}.approach-item p{font-size:17px}.approach h2{font-size:35px}.approach-grid{gap:24px}.approach-item+.approach-item{padding-left:23px}.approach-item{gap:15px}.value-plus{width:46px;height:46px;flex-basis:46px}.shop h3{font-size:21px}.shop-city{font-size:15px}.shop summary{font-size:17px;min-height:48px}.shop-art{height:120px;width:190px}.shops-heading h2{font-size:34px}.company-table{font-size:16px}.contact-actions .button{font-size:17px;gap:23px}.contact p:not(.eyebrow){font-size:16px}}
.footer-bottom p{font-size:13px}.offline-ready{margin-top:16px;color:var(--green-text);font-size:13px!important}.big-yu{font-weight:300}
@media(min-width:1201px){.hero .button{min-width:328px}.service .button{min-width:292px}.service-reverse .button{min-width:338px}#advertising .button{min-width:358px}.contact-actions .button{flex:1}.contact-actions{width:100%}.about-plus{width:112px;height:112px}}
@media(max-width:900px){html:not(.js) .site-header{height:auto}html:not(.js) .header-inner{flex-wrap:wrap;padding-block:15px}html:not(.js) .menu-toggle{display:none}html:not(.js) .site-nav{display:flex;flex-wrap:wrap;gap:5px;width:100%}html:not(.js) .site-nav>a{font-size:14px}}
/* Keep completed vector outlines visible when motion is paused after entry. */
.motion-off .draw-line,.motion-off .draw-city{stroke-dashoffset:0!important}
/* Playful edition: organic edge layers, scattered 遊 / + and a living thread. */
.scene{position:relative;isolation:isolate}.scene>.wrap{position:relative;z-index:1}.playfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;user-select:none}.playfield-canvas{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.play-cloud{fill:#f0f6e5;transform-box:fill-box;transform-origin:center;animation:cloud-wander 16s ease-in-out infinite;animation-play-state:paused}.play-cloud--mist{fill:#f7f9f0;animation-delay:-7s;animation-duration:20s}.play-thread{fill:none;stroke:#9caf8d;stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.7;stroke-dasharray:1;stroke-dashoffset:0}.motion-ready .play-thread{stroke-dashoffset:1}.scene.entered .play-thread{animation:line-draw 2.4s var(--ease) .15s both}.play-dots{fill:#95b76e;opacity:.55;transform-box:fill-box;transform-origin:center;animation:dot-dance 8s ease-in-out infinite;animation-play-state:paused}.play-bead{fill:#91bb5b;offset-distance:28%;offset-rotate:0deg;animation:thread-travel 14s linear infinite;animation-delay:var(--bead-delay,0s);animation-play-state:paused;opacity:.85}.play-symbol{position:absolute;left:var(--px);top:var(--py);width:var(--ps);height:var(--ps);font-size:var(--ps);line-height:1;opacity:var(--po,.6);color:#86b74d;translate:-50% -50%;transform:translateY(calc(var(--scene-shift,0px) * var(--depth,.5)))}.play-token{display:block;width:100%;height:100%;rotate:var(--pr,0deg);animation:symbol-drift 9s ease-in-out infinite;animation-delay:var(--pd,0s);animation-play-state:paused;transform-origin:center}.play-token svg{width:100%;height:100%}.play-symbol--yu{color:#314029;font-weight:500;letter-spacing:-.08em}.play-symbol--yu .play-token{animation-name:yu-drift;animation-duration:13s}.play-symbol--outline{color:#769752}.scene.in-view .play-cloud,.scene.in-view .play-token,.scene.in-view .play-dots,.scene.in-view .play-bead{animation-play-state:running}.scene.in-view .art-plus{animation:plus-wiggle 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.scene.in-view .business-plus svg{animation:plus-hop 6s ease-in-out infinite;animation-delay:-1.5s}.scene.in-view .reuse-orbit{animation:reuse-cycle 12s var(--ease) infinite}.service-visual:hover .reuse-orbit,.business-card:hover .reuse-orbit{animation:orbit-hover 2s var(--ease) both}.scene.in-view .about-plus{animation:plus-in 1.2s var(--ease) both,plus-hop 7s ease-in-out 1.2s infinite}.play-burst-layer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:115}.plus-spark{position:absolute;width:var(--spark-size,15px);height:var(--spark-size,15px);color:var(--green);animation:plus-burst .8s var(--ease) both}.plus-spark:nth-child(3n){color:#293a1f}.plus-spark svg{width:100%;height:100%}
@keyframes cloud-wander{0%,100%{transform:translate(0,0) rotate(0deg) scale(1)}50%{transform:translate(7px,-9px) rotate(3deg) scale(1.045)}}
@keyframes symbol-drift{0%,100%{transform:translate(0,0) rotate(0)}35%{transform:translate(4px,-12px) rotate(35deg)}70%{transform:translate(-3px,6px) rotate(85deg)}}
@keyframes yu-drift{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(5px,-13px) rotate(7deg)}}
@keyframes dot-dance{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(12deg) scale(.88)}}
@keyframes thread-travel{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes plus-wiggle{0%,25%,100%{transform:rotate(0)}50%,75%{transform:rotate(90deg)}}
@keyframes plus-hop{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-8px) rotate(0)}65%{transform:translateY(3px) rotate(90deg)}}
@keyframes reuse-cycle{0%,12%{rotate:0deg}42%,57%{rotate:180deg}88%,100%{rotate:360deg}}
@keyframes plus-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}15%{opacity:.85}100%{opacity:0;transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(.55) rotate(var(--spark-turn))}}
/* Opening choreography: scatter -> gather -> original logo -> curved reveal. */
.show-intro{--intro-delay:3.1s}.show-intro .splash{animation:splash-exit .75s var(--ease) 3s both}.splash-garden{position:absolute;inset:0;pointer-events:none;overflow:hidden}.splash-clouds{width:100%;height:100%;position:absolute;inset:0}.splash-cloud{fill:#f0f6e5;transform-origin:center;transform-box:fill-box}.splash-cloud.second{fill:#f4f8ec}.show-intro .splash-cloud{animation:splash-cloud-open 3.4s var(--ease) both}.show-intro .splash-cloud.second{animation-delay:.12s}.splash-track{fill:none;stroke:#a8c580;stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}.show-intro .splash-track{animation:line-draw 2s var(--ease) .15s both}.splash-track.second{stroke:#c9d5bd;stroke-width:1}.show-intro .splash-track.second{animation-delay:.4s}.splash-fragment{position:absolute;left:50%;top:45%;font-size:var(--fs);width:var(--fs);height:var(--fs);line-height:1;display:block;color:#87b94e;opacity:0;font-weight:400;transform:translate(-50%,-50%);will-change:transform,opacity}.splash-fragment svg{width:100%;height:100%}.splash-fragment--yu{color:#4a6335}.splash-fragment:nth-of-type(4n){color:#1f2c1a}.show-intro .splash-fragment{animation:fragment-flight 2.05s cubic-bezier(.45,0,.22,1) var(--fd,0s) both}.splash-playword{position:absolute;left:50%;top:45%;display:flex;align-items:center;gap:19px;color:#172017;font-size:204px;font-weight:500;line-height:1.1;letter-spacing:-.08em;transform:translate(-50%,-50%);white-space:nowrap}.splash-playword svg{width:112px;height:112px;color:var(--green);margin-top:75px}.show-intro .splash-playword{animation:splash-word 1.95s var(--ease) both}.splash-lockup{z-index:3}.splash-lockup img{animation:logo-arrive .7s var(--ease) 1.8s both}.splash-name{animation:fade-up .6s var(--ease) 2s both}.splash-words span{animation:fade-up .55s var(--ease) 2.12s both}.splash-words span:nth-of-type(2){animation-delay:2.25s}.splash-words span:nth-of-type(3){animation-delay:2.38s}.splash-words b{animation:plus-in .6s var(--ease) 2.2s both}
@keyframes fragment-flight{0%{opacity:0;transform:translate(calc(-50% + var(--sx) * .8),calc(-50% + var(--sy) * .8)) scale(.3) rotate(calc(var(--fr) - 35deg))}20%{opacity:.55;transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(1) rotate(var(--fr))}53%{opacity:.7;transform:translate(calc(-50% + var(--sx) + 10px),calc(-50% + var(--sy) - 14px)) scale(1) rotate(calc(var(--fr) + 25deg))}87%,100%{opacity:0;transform:translate(-50%,-50%) scale(.1) rotate(calc(var(--fr) + 120deg))}}
@keyframes splash-word{0%{opacity:0;transform:translate(-50%,-45%) rotate(-12deg) scale(.6)}25%{opacity:1;transform:translate(-50%,-50%) rotate(-3deg) scale(1)}62%{opacity:1;transform:translate(-50%,-53%) rotate(4deg) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) rotate(8deg) scale(.75)}}
@keyframes splash-cloud-open{from{opacity:0;transform:scale(.75) rotate(-8deg)}45%,100%{opacity:1;transform:scale(1) rotate(0)}}
@media(max-width:900px){.play-symbol{width:calc(var(--ps) * .68);height:calc(var(--ps) * .68);font-size:calc(var(--ps) * .68);opacity:calc(var(--po,.6) * .7)}.play-symbol--yu{opacity:calc(var(--po) * .7)}.playfield-canvas{opacity:.85}.splash-playword{font-size:142px;gap:9px}.splash-playword svg{width:76px;height:76px;margin-top:52px}.splash-fragment{font-size:calc(var(--fs) * .65);width:calc(var(--fs) * .65);height:calc(var(--fs) * .65)}.splash-clouds{width:160%;left:-30%}.splash-lockup img{width:144px}.splash-skip{bottom:max(24px,env(safe-area-inset-bottom))}}
@media(max-width:370px){.splash-playword{font-size:118px}.splash-playword svg{width:66px;height:66px}.splash-fragment{font-size:calc(var(--fs) * .55);width:calc(var(--fs) * .55);height:calc(var(--fs) * .55)}}
.motion-off .play-thread{stroke-dashoffset:0!important}.motion-off .play-symbol{transform:none!important}.motion-off .play-burst-layer{display:none}.page-hidden .playfield *,.page-hidden .splash *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.play-thread{stroke-dashoffset:0!important}.play-symbol{transform:none!important}.play-burst-layer{display:none}}
@media print{.playfield,.play-burst-layer{display:none}}

/* Mobile composition: readable copy, generous controls and compact store rows. */
@media (max-width:900px){
  :root{--header:calc(80px + env(safe-area-inset-top,0px));--mobile-gutter:20px}
  html{scroll-padding-bottom:80px}
  .wrap{width:calc(100% - var(--mobile-gutter)*2);max-width:560px}
  .site-header{position:sticky;top:0;height:var(--header);background:#fffffff5}
  .header-inner{width:calc(100% - 32px);max-width:580px;gap:12px;padding-top:env(safe-area-inset-top,0px)}
  .site-header .brand{gap:8px;min-width:0}
  .site-header .brand-logo{width:50px}
  .site-header .brand-name{font-size:17px;letter-spacing:.02em}
  .site-header .brand-name small{font-size:12px;letter-spacing:.06em;margin-top:4px}
  .menu-toggle{min-height:48px;padding:8px 11px;gap:5px;font-size:13px;flex-shrink:0}
  .menu-toggle .icon{width:21px;height:21px;flex-basis:21px}
  .js .site-nav{position:fixed;inset:calc(var(--header) + 8px) 12px auto;max-width:580px;margin-inline:auto;padding:12px;gap:4px;border:1px solid var(--line);border-radius:24px;max-height:calc(100dvh - var(--header) - 24px - env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
  .site-nav>a{min-height:56px;font-size:16px;padding:10px 18px}
  .site-nav .nav-contact{margin-top:4px;min-height:56px}
  .hero-layout{padding-top:24px;gap:14px}
  .hero-copy{padding:0}
  .hero-first{font-size:clamp(42px,12.5vw,66px);line-height:1.3}
  .hero-yu{font-size:clamp(67px,19vw,100px)}
  .hero-second{font-size:clamp(30px,8.8vw,48px);line-height:1.55}
  .hero-plus{width:clamp(40px,12vw,64px);height:clamp(40px,12vw,64px);flex-basis:clamp(40px,12vw,64px)}
  .business-line{font-size:clamp(15px,4.3vw,20px);letter-spacing:.045em;margin:12px 0 18px}
  .business-line span{padding-inline:1px}
  .hero-description{font-size:16px;line-height:1.9;margin-bottom:22px}
  .hero .button,.service .button,.contact-actions .button{width:100%;min-height:56px;font-size:15px;padding:10px 12px 10px 23px;gap:12px;text-align:left}
  .hero .plus-disc,.service .plus-disc,.contact-actions .plus-disc{width:34px;height:34px;flex-basis:34px}
  .hero-visual{width:calc(100% + 24px);max-width:510px;margin:0 -12px}
  .hero-art{max-height:280px}
  .hero .play-symbol--yu{top:88%}
  .about-layout{padding:28px 0 44px;gap:16px}
  .about-mark{height:180px;max-width:340px}
  .big-yu{font-size:139px}
  .about-plus{width:55px;height:55px;margin-top:53px}
  .about-curve{height:190px}
  .about-copy{padding:0}
  .about h2{font-size:clamp(25px,6.7vw,32px);line-height:1.6;letter-spacing:-.04em;text-wrap:balance;margin-bottom:16px}
  .about p:not(.eyebrow){font-size:15px;line-height:2;letter-spacing:.025em}
  .business{padding:36px 0 38px}
  .business-heading{margin-bottom:20px}
  .business-heading h2,.approach h2,.shops-heading h2{font-size:clamp(25px,6.6vw,32px);line-height:1.6;letter-spacing:-.025em;text-wrap:balance}
  .business-grid{max-width:none;gap:0}
  .business-card{grid-template-columns:112px minmax(0,1fr);column-gap:10px;min-height:130px;padding:8px 0}
  .business-art{height:114px;max-width:none}
  .business-art .illustration{height:124px}
  .business-label{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:10px;row-gap:5px;padding:0}
  .business-label>div{display:contents}
  .business-number{font-size:32px;line-height:1.15;margin:0}
  .business-label h3{font-size:25px;line-height:1.4}
  .business-label p{grid-column:1/-1;font-size:14px;line-height:1.85;margin:0;white-space:normal}
  .business-plus{height:24px}
  .business-plus svg{width:24px;height:24px}
  .service-layout,.service-reverse .service-layout{padding:38px 0 22px;gap:18px}
  .service h2{font-size:38px;margin-bottom:8px}
  .service h3{font-size:19px;line-height:1.7;letter-spacing:-.025em;margin-bottom:16px;text-wrap:balance}
  .service-copy>p:not(.eyebrow){font-size:15px;line-height:2;letter-spacing:.025em}
  .service-copy>p:not(.eyebrow) br{display:none}
  .tags{margin:18px 0 20px;gap:8px}
  .tags li{font-size:13px;padding:3px 13px}
  .service-visual,.service-reverse .service-visual{width:100%;max-width:390px;margin:0 auto}
  .service-visual>.illustration{height:230px;max-height:none}
  .service .play-symbol--yu{top:76%;opacity:.04}
  .approach{padding:38px 0 42px}
  .approach-grid{gap:26px;margin-top:28px}
  .approach-item,.approach-item+.approach-item{gap:13px}
  .value-plus{width:32px;height:32px;flex-basis:32px;margin-top:1px}
  .approach-item h3{font-size:19px;line-height:1.65;margin-bottom:8px;text-wrap:balance}
  .approach-item p{font-size:15px;line-height:1.9}
  .shops{padding:40px 0 28px}
  .shops-heading>p{font-size:14px;line-height:1.95;margin-top:17px}
  .shops-heading>p br{display:none}
  .shop-grid{gap:0;margin-top:28px}
  .shop,.shop+.shop{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:17px;row-gap:0;text-align:left;padding:22px 0}
  .shop-art{grid-column:1;grid-row:1 / span 2;width:100px;height:90px;margin:0;align-self:center}
  .shop h3{grid-column:2;grid-row:1;font-size:20px;line-height:1.5;align-self:end}
  .shop h3 span{display:block;font-size:13px;font-weight:600;letter-spacing:.025em;margin-bottom:4px}
  .shop-city{grid-column:2;grid-row:2;justify-content:start;align-self:start;margin:6px 0 0;font-size:14px}
  .shop details{grid-column:1/-1;max-width:none;width:100%;margin:16px 0 0}
  .shop summary{display:flex;width:100%;min-height:52px;padding:8px 10px 8px 22px;font-size:15px;background:#fff9}
  .shop-details{padding:20px;margin-top:12px}
  .shop-details p{font-size:15px;line-height:1.9}
  .shop .phone-link{min-height:48px;font-size:23px}
  .shop .external-link{font-size:15px;min-height:48px}
  .company{padding:36px 0 42px}
  .company-layout{gap:18px}
  .company h2{font-size:28px}
  .company-table{font-size:15px;line-height:1.9}
  .company-table>div{grid-template-columns:80px minmax(0,1fr);gap:15px;padding:14px 0}
  .company-table dt{font-size:13px;padding-top:2px}
  .company-table dd{overflow-wrap:anywhere}
  .company-table small{font-size:13px;line-height:1.8;margin-top:5px}
  .contact-layout{padding-block:38px 42px;gap:27px}
  .contact h2{font-size:32px}
  .contact p:not(.eyebrow){font-size:15px;line-height:1.95}
  .contact p:not(.eyebrow) br{display:none}
  .contact-actions{gap:14px}
  .site-footer{padding:32px 0 calc(84px + env(safe-area-inset-bottom,0px))}
  .site-footer nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:2px}
  .site-footer nav a{min-height:48px;font-size:14px}
  .footer-top{gap:22px}
  .footer-tools{gap:0;flex-direction:column;align-items:start;margin-top:16px}
  .footer-tools button{min-height:48px;font-size:14px}
  .footer-bottom p{font-size:13px;line-height:1.9}
  .motion-toggle{right:max(12px,env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .offline-notice,.update-notice{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  dialog{width:calc(100vw - 32px);max-width:540px;padding:62px 24px 26px;max-height:calc(100dvh - 32px - env(safe-area-inset-bottom,0px))}
  dialog h2{font-size:24px;line-height:1.6;text-wrap:balance}
  dialog p{font-size:15px;line-height:1.9}
  dialog .button{width:100%;font-size:15px;padding-left:20px;gap:12px;min-height:56px}
  .playfield--business .play-symbol--yu,.playfield--shops .play-symbol--yu{right:-15px;left:auto;translate:0 -50%;opacity:.025}
  .splash-skip{min-height:48px;min-width:112px;right:16px;bottom:calc(20px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:370px){
  :root{--mobile-gutter:18px}
  .header-inner{width:calc(100% - 24px);gap:8px}
  .site-header .brand-logo{width:43px}
  .site-header .brand-name{font-size:15px}
  .site-header .brand-name small{letter-spacing:.025em}
  .menu-toggle{padding-inline:9px;font-size:12px}
  .menu-toggle .icon{width:18px;height:18px;flex-basis:18px}
  .business-card{grid-template-columns:92px minmax(0,1fr);gap:10px}
  .business-number{font-size:28px}
  .business-label h3{font-size:23px}
  .business-label{column-gap:8px}
  .shop,.shop+.shop{grid-template-columns:83px minmax(0,1fr);column-gap:12px}
  .shop-art{width:83px;height:80px}
  .shop h3{font-size:19px}
  .company-table>div{grid-template-columns:70px minmax(0,1fr);gap:12px}
  .service h3,.approach-item h3{font-size:18px}
  dialog{padding-inline:20px}
  dialog h2{font-size:22px}
}
@media (min-width:600px) and (max-width:900px){
  .hero-visual{margin-inline:auto}
  .business-card{grid-template-columns:150px minmax(0,1fr);column-gap:24px}
  .business-art{height:140px}
  .business-art .illustration{height:150px}
  .shop,.shop+.shop{grid-template-columns:120px minmax(0,1fr);column-gap:24px}
  .shop-art{width:120px;height:100px}
}
@media (max-width:900px) and (max-height:500px){
  :root{--header:68px}
  .splash-playword{font-size:100px;top:40%}
  .splash-playword svg{width:58px;height:58px;margin-top:30px}
  .splash-lockup img{width:94px}
  .splash-name{font-size:18px}
  .splash-words{margin-top:10px}
}

@media(max-width:900px){.mobile-phrase{display:inline-block}.about p:not(.eyebrow),.service-copy>p:not(.eyebrow),.approach-item p,.shops-heading>p{text-wrap:pretty}}

/* Shared backdrop: soft surfaces cross boundaries without connecting strokes. */
.page-story{position:relative;isolation:isolate;overflow:clip}
.page-story>main,.page-story>.site-footer{position:relative;z-index:1}
.page-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;user-select:none}
.backdrop-shape{position:absolute;rotate:var(--surface-angle);pointer-events:none}
.backdrop-shape svg{width:100%;height:100%;overflow:visible;fill:#f3f7ec;animation:surface-breathe 20s ease-in-out infinite;animation-delay:var(--surface-delay);animation-play-state:paused;transform-origin:center}
.backdrop-shape--mist svg{fill:#f8faf5;animation-duration:24s}
.backdrop-shape.is-visible svg{animation-play-state:running}
.page-story .scene{overflow:visible;border-bottom:0;background:transparent}
.page-story .playfield{overflow:visible}
.page-story .section-shapes,.page-story .hero-shape,.page-story .about-curve,.page-story .contact-curve{display:none}
.page-story .illustration .draw-line:not(.ink-line){display:none}
.page-story .scene>.wrap{z-index:1}
.page-story .play-symbol--yu{opacity:calc(var(--po,.05) * .8)}
@keyframes surface-breathe{0%,100%{transform:translateY(-5px) rotate(-1deg)}50%{transform:translateY(5px) rotate(1deg)}}
.page-hidden .page-backdrop *{animation-play-state:paused!important}
@media(max-width:900px){
  .backdrop-shape svg{fill:#f5f8f0}
  .backdrop-shape--mist svg{fill:#f9fbf6}
  .page-story .play-symbol--yu{opacity:calc(var(--po,.05) * .55)}
  .page-story .service-visual{margin-bottom:10px}
}
@media print{.page-backdrop{display:none}}
