@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,100;0,200;0,400;0,500;1,100;1,200;1,300&family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Zen+Old+Mincho:wght@400;500;600&display=swap');
:root{--blue:#0072bc;--ink:#111213;--gradient:linear-gradient(90deg,#00a1a4 1%,#0071bc 100%);--serif:'Zen Old Mincho',serif;--sans:'Zen Kaku Gothic New',sans-serif;--latin:'Inter',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font:400 18px/1.6 var(--sans);color:var(--ink);background:#fff}body.menu-open{overflow:hidden}h1,h2,h3,p,ul{margin:0;padding:0}ul{list-style:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #00a1a4;outline-offset:4px}img{display:block;max-width:100%;height:auto}main{overflow:hidden}section{position:relative}section[id],article[id]{scroll-margin-top:80px}.section{padding:10% 0}.center{text-align:center}header{position:fixed;inset:0 0 auto;height:80px;z-index:100;color:white}.header-bg{position:absolute;inset:0;background:rgba(17,18,19,.9);backdrop-filter:blur(3px);transform:translateY(-100%);transition:transform .5s}.scrolled .header-bg{transform:none}.brand{position:absolute;top:20px;left:3%;display:flex;align-items:center;gap:12px;font:600 18px var(--serif);height:40px;z-index:102}.mark{display:inline-flex;border-top:3px solid;border-right:3px solid;font:600 27px/1 var(--serif);width:30px;height:30px;align-items:center}.menu-toggle{display:none}nav>ul{display:flex;justify-content:flex-end;padding:20px 2% 0 250px;align-items:flex-start}.nav-item>a,.nav-item>button{display:block;padding:.8em 1.2em;font-size:16px;line-height:1;white-space:nowrap;position:relative;z-index:2}.nav-item>button.nav-parent{padding-bottom:1em}.nav-parent>span{position:absolute;bottom:-3px;left:47%;font-size:10px}.nav-item.contact>button{background:var(--ink);border:1px solid #777;border-radius:40px;margin-left:16px}.nav-item.contact>button:hover{background:white;color:black}.submenu{position:absolute;top:0;left:0;width:100%;padding-top:80px;opacity:0;visibility:hidden;transition:opacity .2s;z-index:-1;background:#11121380;backdrop-filter:blur(3px)}.submenu ul{display:flex;justify-content:center;background:#fffffff0;color:#111}.submenu li{width:20%}.submenu button{width:100%;padding:1em;font-size:15px}.submenu button:hover{color:white;background:var(--gradient)}.nav-item:hover .submenu,.nav-item:focus-within .submenu,.nav-parent[aria-expanded=true]+.submenu{visibility:visible;opacity:1}.skip{position:fixed;z-index:999;left:16px;top:-80px;padding:12px;background:white}.skip:focus{top:8px}.hero{height:100vh;background:#172a2c;overflow:hidden}.hero::after{content:'';position:absolute;inset:0;background:#172a2c66}.hero-photo{width:100%;height:100%;object-fit:cover}.hero-title{position:absolute;z-index:2;left:5%;bottom:5%;font:300 italic 7.7vw/1.07 var(--latin);letter-spacing:.015em;color:white;width:65%;margin:0}.hero-title span{font-weight:100}.hero-catch{position:absolute;right:3%;bottom:0;z-index:2;writing-mode:vertical-rl;font:500 2.45vw/1.5 var(--serif);letter-spacing:.25em;color:white;height:61%;max-height:560px}.text-box{position:relative;z-index:3;padding:0 5%;line-height:2}.text-box p{margin-bottom:1em}.section-title{font:500 2.3em/1.4 var(--serif);margin:0 0 1em}.eyebrow{display:flex;align-items:center;gap:15px;font:300 italic .4em/1.6 var(--latin);margin:0 0 36px}.eyebrow:after{content:'';width:60px;height:1px;background:currentColor}.section-title.center .eyebrow{justify-content:center}.about{display:flex;justify-content:flex-end;padding-top:48px;padding-bottom:10%;min-height:64vw}.about-text{width:50%;margin-bottom:5%}.about-photo{position:absolute;top:10%;left:0;width:40%;aspect-ratio:1;object-fit:cover;z-index:2}.color-square{position:absolute;background:var(--gradient);width:20%;aspect-ratio:1;top:7%;left:23%;z-index:1}.more{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;max-width:250px;width:100%;padding:15px 40px;border:1px solid var(--ink);border-radius:40px;font:200 italic 18px/1.6 var(--latin);position:relative;overflow:hidden;isolation:isolate;text-align:left}.more span{font-size:20px}.more:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.45,0,.55,1)}.more:hover{color:white}.more:hover:before{transform:scaleX(1)}.more.white{border-color:white;color:white}.more.white:before{background:white}.more.white:hover{color:var(--ink)}.service-intro{background:var(--gradient);color:white;padding:10% 0}.service-intro .text-box{width:50%}.intro-photo{position:absolute;top:-5%;right:5%;width:40%;aspect-ratio:1.5;object-fit:cover;z-index:2}.service-intro .color-square{top:20%;left:auto;right:28%}.services{display:grid;grid-template-columns:1fr 1fr}.service-card{position:relative;background-image:linear-gradient(#172a2c66,#172a2c66),var(--photo);background-size:cover;background-position:center;color:white}.service-content{position:relative;padding:10%;line-height:2}.number{font:200 italic 100px/1.6 var(--latin);text-align:center;margin-bottom:1rem}.service-card h3{font:500 28px/1.6 var(--serif);text-align:center;margin-bottom:1em}.service-card ul{margin-top:1em;border-top:1px solid #ccc}.service-card li{border-bottom:1px solid #ccc}.service-card li button{display:flex;justify-content:space-between;width:100%;padding:1em;text-align:left;transition:transform .2s}.service-card li button:hover{transform:translateX(3px)}.works .marquee{display:flex;overflow:hidden;padding:3% 0;margin:0 0 3%}.marquee-track{display:flex;flex-shrink:0;animation:marquee 60s linear .5s infinite both}.work-photo{width:calc(100vw / 3);margin:0 10px;flex-shrink:0}.work-photo img{width:100%;aspect-ratio:1.17;object-fit:cover}@keyframes marquee{to{transform:translateX(-100%)}}.news{display:grid;grid-template-columns:25% 75%;padding:8%;gap:0}.news-heading{position:relative}.news-heading .more{position:absolute;left:0;top:50%}.news-slider{position:relative;left:5%;width:95%;padding:20px}.news-window{overflow:hidden}.news-track{display:flex;transition:transform .5s ease}.news-item{flex:0 0 calc(100% / 3);padding:0 10px;min-width:0}.news-card{padding:0;width:100%;text-align:left}.news-card img{width:100%;height:230px;object-fit:cover;border-radius:10px;transition:transform .3s}.news-card:hover img{transform:scale(1.05)}.news-card>div{padding:1.5em;overflow:hidden}.news-card time{font-weight:700;letter-spacing:2px;color:#939393;font-size:16px;display:block;margin-bottom:.5em}.news-card h3{font-size:16px;font-weight:400;line-height:2}.news-arrow{position:absolute;top:115px;width:50px;height:50px;border:1px solid #ccc;border-radius:50%;background:#ffffffdd;color:#888;font-size:18px}.news-arrow.prev{left:0;transform:translateX(-20%)}.news-arrow.next{right:0;transform:translateX(20%)}.csr{color:white;background-image:linear-gradient(90deg,#00a1a4c9,#0071bccc),url('assets/town.webp');background-position:top center;background-size:cover;background-attachment:fixed}.csr-content{position:relative;z-index:4;padding:5% 15%;text-align:center;max-width:1140px;margin:auto}.csr-content>p{max-width:600px;width:100%;margin:0 auto 2em;text-align:left;line-height:2}.floating-photos{position:absolute;inset:0;pointer-events:none;z-index:5}.floating{position:absolute;object-fit:cover;aspect-ratio:1}.p1{width:15%;left:2%;top:-25px}.p2{width:13%;right:0;top:-10px}.p3{width:10%;left:5%;top:50%}.p4{width:13%;left:0;bottom:-20px}.p5{width:10%;right:5%;top:62%}.p6{width:10%;right:0;top:77%}.recruit{padding:10% 8% 8%}.recruit-script{position:absolute;left:0;right:0;top:3%;text-align:center;font:italic 5.2vw/1.3 cursive;transform:rotate(-8deg);z-index:6}.recruit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.recruit-banner{grid-column:1/-1}.recruit-banner img{width:100%;aspect-ratio:2.94;object-fit:cover;object-position:center 43%}.interview{padding:0;position:relative;overflow:hidden}.interview img,.recruit-small img{width:100%;aspect-ratio:1;object-fit:cover}.interview:before{position:absolute;content:'';inset:5%;border:1px solid #fff;z-index:2;transition:inset .1s}.interview:after{content:'';position:absolute;inset:0;background:#172a2c4d;transition:opacity .3s}.interview img{transition:transform .6s}.interview:hover:after{opacity:0}.interview:hover:before{inset:0}.interview:hover img{transform:scale(1.1)}.recruit-text{position:relative;display:grid;place-items:center;aspect-ratio:1;text-align:center;overflow:hidden}.recruit-text>div:last-child{position:relative;z-index:1;width:85%}.pale-mark{position:absolute;color:#e4f3f6;font:600 23vw var(--serif);transform:rotate(-10deg)}.recruit-text h2{font:500 4.2vw/1.2 var(--latin);margin-bottom:20px}.recruit-text h2 span{font:500 40%/2 var(--sans);display:block;margin-top:6px}.recruit-text p{margin-bottom:1em;font-size:18px}.recruit-text .more{max-width:170px;font-size:12px;padding:10px 20px;gap:10px}.footer-contact{padding:60px 0;color:white;background:linear-gradient(#172a2c80,#172a2c80),url('assets/town.webp') center top/cover fixed}.footer-contact>div{padding:5% 8%;max-width:1140px;margin:auto;text-align:center}.footer-contact p{margin-bottom:1em}.contact-buttons{display:flex;justify-content:center;gap:30px}.contact-buttons button{width:33.33%;border:1px solid white;border-radius:60px;padding:1em}.contact-buttons button:hover{background:#111213}.footer-info{padding:5% 8%;display:grid;grid-template-columns:1fr 1fr;gap:20px}.footer-brand{display:inline-flex;align-items:center;gap:10px;font:600 20px var(--serif);margin-bottom:20px}.address{font-size:15px}.footer-links{display:flex;flex-wrap:wrap;margin-top:1.5em;margin-left:-10px}.footer-links button{font-size:14px;padding:0 10px}.footer-links button+button{border-left:1px solid #ccc}.footer-links button:hover{text-decoration:underline}.sample-badges{text-align:right;font-size:14px;color:#697478}.sample-badges>span{border:1px solid #d5dfe1;padding:8px 25px;display:inline-block;margin-bottom:15px}.sample-badges>div{display:flex;justify-content:flex-end;gap:12px}.sample-badges>div span{width:60px;aspect-ratio:1;border:1px solid #d5dfe1;border-radius:50%;display:grid;place-items:center;font-size:10px;text-align:center;padding:9px}.sample-badges small{font-size:11px}.demo-note{grid-column:1/-1;font-size:12px;color:#65757a;margin-top:10px}.copyright{grid-column:1/-1;text-align:right;font-size:13px}.pagetop{position:fixed;right:20px;bottom:20px;width:50px;height:50px;border-radius:50%;background:var(--blue);color:white;display:grid;place-items:center;font:35px/1 sans-serif;z-index:95;opacity:0;visibility:hidden;transition:opacity .3s}.scrolled .pagetop{opacity:1;visibility:visible}dialog{border:0;border-radius:8px;max-width:680px;width:calc(100% - 40px);padding:48px;max-height:85vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#172a2cb3;backdrop-filter:blur(4px)}dialog h2{font:500 28px/1.5 var(--serif);margin:16px 0 24px}dialog p{line-height:2}.dialog-close{position:absolute;right:14px;top:8px;font-size:32px}.demo-label{font:400 12px var(--latin);color:#0072bc;letter-spacing:.12em}.scope-note{margin-top:24px;border-top:1px solid #ddd;padding-top:16px;font-size:14px;color:#62737a}form{margin-top:25px}label{display:block;margin:16px 0;font-size:16px}input,textarea{display:block;width:100%;border:1px solid #bdc9cc;border-radius:3px;margin-top:6px;padding:10px;background:#fff;color:#111}.form-submit{border-radius:40px;background:var(--blue);color:white;padding:12px 20px;font-size:15px}#form-result{font-size:14px;margin-top:16px}.animate-ready{opacity:0;transform:translateY(20%);transition:opacity .5s .4s,transform .5s .4s cubic-bezier(.215,.61,.355,1)}.animate-ready.left{transform:translateX(30%)}.animate-ready.right{transform:translateX(-30%)}.animate-ready.group{transform:translateY(30px);transition-duration:1s;transition-delay:1s}.animate-ready.big{transform:scale(.5);transition:opacity .5s,transform .5s cubic-bezier(.175,.885,.32,1.275)}.animate-ready.visible{opacity:1;transform:none}
@media(min-width:1025px) and (max-width:1200px){.brand{font-size:15px;gap:6px}.nav-item>a,.nav-item>button{font-size:14px;padding:.9em .8em}nav>ul{padding-left:210px}.recruit-text p{font-size:14px}.news-item{flex-basis:50%}}
@media(max-width:1024px){html{scroll-padding-top:60px}header{height:60px}.header-bg{transform:none}.brand{top:15px;height:30px;font-size:14px;gap:8px}.mark{font-size:22px;width:24px;height:25px}.menu-toggle{display:block;position:absolute;top:0;right:0;width:60px;height:60px;z-index:104}.menu-toggle span{display:block;position:absolute;left:15px;width:30px;height:2px;background:white;transition:.5s}.menu-toggle span:nth-child(1){top:20px}.menu-toggle span:nth-child(2){top:30px}.menu-toggle span:nth-child(3){top:40px}.menu-open .menu-toggle span:nth-child(1){transform:translateY(10px) rotate(-45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-10px) rotate(45deg)}nav{position:fixed;inset:0;background:#292e30;transform:translateX(100%);transition:transform .5s cubic-bezier(.215,.61,.355,1);overflow:auto;visibility:hidden;z-index:101}.menu-open nav{transform:none;visibility:visible}nav>ul{display:block;width:70%;margin:auto;padding:100px 0 2em}.nav-item>a,.nav-item>button{padding:1em;font-size:16px;line-height:1.6;width:100%;border-bottom:1px solid #8d9192;text-align:left}.nav-item.contact>button{margin:0;background:none;border:0;border-bottom:1px solid #8d9192;border-radius:0}.nav-parent>span{left:auto;right:0;bottom:20px;color:#777}.submenu{position:static;padding:0;visibility:visible;opacity:1;display:none;background:none;backdrop-filter:none}.submenu ul{display:block;background:none;color:white;margin-bottom:1em}.submenu li{width:100%}.submenu button{font-size:16px;text-align:left;padding:.5em 1em .5em 2em}.submenu button:before{content:'→';color:#777;margin-right:1em}.nav-item:hover .submenu,.nav-item:focus-within .submenu{display:none}.nav-parent[aria-expanded=true]+.submenu,.nav-item:focus-within .nav-parent[aria-expanded=true]+.submenu{display:block}.nav-parent[aria-expanded=true]>span{transform:rotate(180deg)}.section-title{font-size:27px}.eyebrow{font-size:.4em;margin-bottom:22px}.text-box{padding:5% 5% 0}.more{max-width:160px;padding:13px 20px;gap:10px;font-size:14px}.news-slider{left:0;width:100%}.service-intro .text-box{padding-top:0}.recruit-text p{font-size:14px}.csr-content{padding:2em}.csr-content>p{width:70%}.about{min-height:0}.about-text{padding-top:0}.footer-info{padding:5% 8%}}
@media(max-width:992px){.about{padding:10% 0}.about-text{width:100%;padding:5% 5% 0}.about-photo{width:25%;top:20px;left:auto;right:20px}.about .color-square{top:0;left:auto;right:0}.about .section-title{max-width:85%;padding-top:30px}.intro-photo{right:0;top:-10%}.service-intro .color-square{right:25%;top:15%}.service-intro .text-box{width:100%}.service-intro .section-title{padding-right:38%;min-height:100px}.services{grid-template-columns:1fr}.news{grid-template-columns:1fr}.news-heading .more{position:relative;top:auto;margin:20px 0}.news-item{flex-basis:50%}.news-slider{grid-row:2}.news-heading{display:contents}.news-heading .section-title{grid-row:1}.news-heading .more{grid-row:3}.news .news-heading .more{margin-top:20px}.recruit-text p{display:none}.footer-info{grid-template-columns:1fr;text-align:center}.footer-links,.sample-badges>div{justify-content:center}.sample-badges{text-align:center}.copyright{text-align:center}.contact-buttons{display:block}.contact-buttons button{display:block;width:70%;margin:1em auto 0}.footer-brand{margin:auto auto 20px}}
@media(max-width:768px){.hero{height:auto;aspect-ratio:16/9;margin-top:60px}.hero-title{width:40%;font-size:5.1vw;bottom:8%}.hero-catch{font-size:13px;right:3%;bottom:-20px;height:65%;line-height:1.4;letter-spacing:.15em}.hero-photo{height:100%;object-fit:cover}.about{padding-top:10%}.about-text{margin-bottom:5%}.about .section-title{padding-top:45px}.about-photo{width:25%;right:20px}.section-title{font-size:27px}.text-box p{font-size:16px;line-height:2}.service-intro .section-title{min-height:80px;padding-top:0}.csr,.footer-contact{background-attachment:scroll}.service-content{padding:10%}.service-content p:not(.number){font-size:16px}.service-card h3{font-size:22px}.csr-content>p{font-size:16px}.recruit-script{font-size:5.2vw;top:2%}.recruit-text h2{font-size:4.2vw;margin-bottom:10px}.recruit-text .more{max-width:90%;font-size:10px;padding:8px 10px;gap:0}.address{font-size:14px}.demo-note{font-size:11px}.footer-contact>div{padding:2em}.footer-info{padding:8% 5%}.footer-links button{font-size:12px}dialog{padding:40px 24px}dialog h2{font-size:24px}}
@media(max-width:578px){.hero-catch{width:20px;font-size:8px;right:3%;height:61%}.number{font-size:50px}.service-card h3{font-size:20px}.recruit-text .more{display:none}.contact-buttons button{width:95%}.news-item{flex-basis:100%}.news{padding:8%}.news-heading .more{margin-top:10px}.news-card h3{font-size:16px}.recruit-text h2{margin-bottom:0}.recruit-text h2 span{font-size:48%}.footer-contact{padding:40px 0}.footer-contact p{font-size:16px}.sample-badges>div{gap:8px}.sample-badges>div span{width:50px;font-size:9px;padding:5px}.copyright{font-size:11px}.about .section-title{max-width:100%}.csr-content>p{width:70%}.floating{max-width:15%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.animate-ready{opacity:1;transform:none}.marquee-track:nth-child(2){display:none}}

/* Alignment adjustments from the matched-width reference comparison. */
@media(min-width:1025px){.about{min-height:0}.section-title{padding-top:30px}.about .about-photo{left:1%;width:38%}.about .color-square{width:18%;left:24%}.service-content{padding:10% 11.5%}.service-card h3{margin-bottom:1em}}
@media(min-width:1025px){.about{min-height:57.8vw;padding-bottom:48px}.section-title{padding-top:22px}.service-intro{padding-bottom:calc(10% - 22px)}.works{padding-bottom:calc(10% - 22px)}.csr .section-title{padding-top:0}.news{min-height:48.9vw}}
.service-card li button{line-height:1.6}
@media(max-width:578px){body{font-size:16px;line-height:1.5}.section-title{font-size:24px;letter-spacing:2px}.about .section-title{padding-top:25px}.about .eyebrow{position:relative;top:12px;margin-bottom:15px}.about-photo{width:18.75%;right:8.2%}.csr-content{padding:3em}.eyebrow{letter-spacing:0}.footer-contact>div{padding:2em}}
.recruit-banner img{object-position:center top}

/* Requested revision: first view typography + original Yoshimoto identity / intro only. */
.yoshimoto-mark{border:0!important;display:inline-flex;flex-shrink:0;width:30px;height:30px}
.yoshimoto-mark svg{width:100%;height:100%;display:block}
.hero-title{width:60%;font-size:7.6vw;line-height:1.045;letter-spacing:.035em;font-weight:300}
.hero-title span{font-weight:100;letter-spacing:.045em}
.hero-catch{right:3%;bottom:0;height:61%;font-size:2.45vw;line-height:1.5;letter-spacing:.25em}
.hero-catch:after{content:'';position:absolute;width:1px;height:14%;background:#ffffff88;right:1.25em;bottom:0}
#brand-loader{display:none}
#brand-loader.playing{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#102529;color:#fff;clip-path:inset(0);transition:clip-path .7s cubic-bezier(.76,0,.24,1),visibility .7s}
html.intro-active{overflow:hidden}
.loader-center{text-align:center;transform:translateY(-4%)}
.loader-emblem{width:88px;height:88px;margin:0 auto 28px;color:#fff}
.loader-emblem svg{width:100%;height:100%;overflow:visible}
.loader-emblem path{stroke-dasharray:155;stroke-dashoffset:155;animation:build-yoshimoto 1.05s .1s cubic-bezier(.33,0,.2,1) forwards}
.loader-name{font:500 26px/1.5 var(--serif);letter-spacing:.22em;padding-left:.22em;animation:intro-name .7s .45s both}
.loader-caption{font:300 10px/2 var(--latin);letter-spacing:.2em;margin-top:12px;animation:intro-name .7s .6s both}
.loader-rule{display:block;width:160px;height:1px;background:#ffffff30;position:relative;margin:32px auto 0;overflow:hidden}
.loader-rule:after{content:'';position:absolute;inset:0;background:#56c7d1;transform-origin:left;animation:build-rule 1.5s .1s both}
#skip-loader{position:absolute;right:3%;bottom:30px;color:#ffffff99;font:300 10px var(--latin);letter-spacing:.12em;padding:14px}
#brand-loader.leaving{clip-path:inset(0 0 100% 0);pointer-events:none;visibility:hidden}
@keyframes build-yoshimoto{to{stroke-dashoffset:0}}
@keyframes intro-name{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes build-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1024px){.yoshimoto-mark{width:24px;height:25px}}
@media(max-width:768px){.hero-title{width:40%;font-size:5.07vw;line-height:1.045;bottom:8%}.hero-catch{font-size:13px;right:3%;bottom:-20px;height:65%;line-height:1.4;letter-spacing:.15em}.loader-emblem{width:68px;height:68px}.loader-name{font-size:22px}}
@media(max-width:578px){.hero-catch{width:20px;font-size:8px;height:61%}}
@media(prefers-reduced-motion:reduce){#brand-loader.playing{display:none}}

@media(min-width:769px){.hero-catch{right:5%}}
.hero-title>span{letter-spacing:.005em}.hero-title .hero-last{letter-spacing:.015em}
/* Reload intro, prominent vertical message, faster service entrances. */
.hero-catch{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:.24em;writing-mode:horizontal-tb;right:4%;bottom:9%;height:auto;max-height:none;width:auto;font-size:clamp(30px,3.3vw,64px);font-weight:600;line-height:1.28;letter-spacing:.1em;z-index:3;text-shadow:0 2px 18px #172a2c55}
.hero-catch>span{writing-mode:vertical-rl;display:block;opacity:0;clip-path:inset(0 0 100%);transform:translateY(20px);transition:clip-path 1s cubic-bezier(.16,1,.3,1),opacity .5s,transform 1s cubic-bezier(.16,1,.3,1)}
.intro-complete .hero-catch>span{opacity:1;clip-path:inset(0);transform:none;transition-delay:.12s}.intro-complete .hero-catch>span:nth-child(2){transition-delay:.4s}
.hero-catch:after{display:none}.services .animate-ready.group{transition-duration:.6s;transition-delay:.08s}
/* Community pictures keep their layout and float on independent inner layers. */
.csr .floating{border-radius:50%;overflow:visible;aspect-ratio:1;box-shadow:0 8px 35px #003b5030}
.csr .float-orbit{width:100%;height:100%;object-fit:cover;border-radius:50%;animation:community-float 6s ease-in-out infinite;will-change:transform}
.csr .p2 .float-orbit{animation-duration:7.3s;animation-delay:-2s}.csr .p3 .float-orbit{animation-duration:5.7s;animation-delay:-3.5s}.csr .p4 .float-orbit{animation-duration:8s;animation-delay:-1s}.csr .p5 .float-orbit{animation-delay:-4s}.csr .p6 .float-orbit{animation-duration:7s;animation-delay:-2.5s}
@keyframes community-float{0%,100%{transform:translateY(-10px) rotate(-3deg)}50%{transform:translateY(12px) rotate(3deg)}}
/* Recruitment: a bold, distinct chapter, with all styling scoped here. */
.recruit-new{background:#11282d;color:#fff;padding:0 0 60px;overflow:hidden;isolation:isolate;--recruit-accent:#c5f56b}
.recruit-ticker{overflow:hidden;background:var(--recruit-accent);color:#11282d;transform:rotate(-2deg) scale(1.04);margin:35px -2% 65px;padding:10px 0}
.recruit-ticker>div{display:flex;align-items:center;gap:45px;width:max-content;animation:recruit-tape 30s linear infinite}.recruit-ticker span{font:500 clamp(22px,3.8vw,58px)/1.2 var(--latin);letter-spacing:-.04em;white-space:nowrap}.recruit-ticker b{font-size:42px;font-weight:400}
@keyframes recruit-tape{to{transform:translateX(-50%)}}
.recruit-stage{display:grid;grid-template-columns:1.08fr 1fr;gap:4%;padding:3% 7% 8%;align-items:center}
.recruit-kicker{font:400 12px var(--latin);letter-spacing:.18em;margin-bottom:28px;color:var(--recruit-accent)}
.recruit-copy h2{font:700 clamp(32px,3.8vw,62px)/1.55 var(--sans);letter-spacing:-.04em;position:relative;z-index:2;margin-bottom:28px}.recruit-copy h2>span{display:block;white-space:nowrap}.accent-word{color:var(--recruit-accent);display:inline-block;position:relative}.accent-word:after{content:'';position:absolute;bottom:.08em;left:0;right:0;border-bottom:2px solid currentColor;transform:rotate(-7deg)}
.recruit-description{font-size:16px;line-height:2.1;max-width:450px;color:#e1ebea;margin-bottom:32px}.recruit-cta{display:flex;align-items:center;gap:25px;text-align:left;background:var(--recruit-accent);color:#11282d;padding:15px 16px 15px 25px;border-radius:60px;font-size:15px;font-weight:700;transition:transform .3s,background .3s}.recruit-cta>span{display:grid;place-items:center;border-radius:50%;width:42px;height:42px;background:#11282d;color:#fff;font-size:25px;transition:transform .3s}.recruit-cta:hover{transform:translateY(-4px);background:#dcff9c}.recruit-cta:hover>span{transform:rotate(45deg)}
.recruit-visual{position:relative;min-width:0;padding:35px 10px 75px}.recruit-team-photo{position:relative;z-index:1;transform:rotate(5deg);padding:10px 10px 35px;background:#fff;box-shadow:0 25px 70px #0004;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.recruit-team-photo img{width:100%;aspect-ratio:1.12;object-fit:cover;object-position:center top}.recruit-visual:hover .recruit-team-photo{transform:rotate(0) translateY(-8px)}.recruit-orbit{position:absolute;inset:-20px -10% 10%;border:1px solid #ffffff29;border-radius:50%;transform:rotate(-30deg)}.recruit-orbit:after{content:'';position:absolute;inset:10%;border:1px solid #ffffff18;border-radius:50%}.recruit-stamp{position:absolute;z-index:3;top:-6%;right:-6%;width:125px;height:125px;border-radius:50%;background:var(--recruit-accent);color:#11282d;display:flex;flex-direction:column;justify-content:center;align-items:center;font:500 13px/1.3 var(--latin);text-align:center;transform:rotate(14deg);animation:stamp-bob 5s ease-in-out infinite}.recruit-stamp span{font-size:35px}.recruit-photo-note{position:absolute;bottom:8px;right:0;z-index:2;color:#fff;font:500 19px/1.7 var(--serif);transform:rotate(-5deg)}
@keyframes stamp-bob{50%{transform:translateY(-10px) rotate(7deg)}}
.recruit-stories{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:0 7% 65px}.recruit-story{display:grid;grid-template-columns:45% 55%;padding:0;background:#fff;color:#11282d;text-align:left;min-width:0;overflow:hidden;border-radius:3px;transition:transform .4s}.recruit-story:hover{transform:translateY(-8px)}.recruit-story>img{width:100%;height:100%;min-height:260px;object-fit:cover;transition:transform .7s}.recruit-story:hover>img{transform:scale(1.05)}.recruit-story>div{position:relative;padding:30px 22px;display:flex;flex-direction:column;justify-content:center;background:white}.story-index{font:400 10px var(--latin);letter-spacing:.12em;color:#647c80}.recruit-story h3{font:700 clamp(17px,1.65vw,26px)/1.7 var(--sans);margin:20px 0}.recruit-story p{font-size:13px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d7e0df;padding-top:15px}.recruit-story p span{font-size:25px}.recruit-bottom{font:500 clamp(32px,7vw,112px)/1.1 var(--latin);letter-spacing:-.07em;text-align:center;white-space:nowrap;color:#fff}.recruit-bottom em{font-style:normal;color:var(--recruit-accent)}
@media(prefers-reduced-motion:no-preference){.recruit-new .recruit-copy h2>span{clip-path:inset(0 0 100%);transform:translateY(25px);transition:clip-path .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.recruit-new.in-view .recruit-copy h2>span{clip-path:inset(0);transform:none}.recruit-new.in-view .recruit-copy h2>span:nth-child(2){transition-delay:.15s}}
@media(max-width:1024px){.recruit-stage{padding:3% 6% 8%;gap:5%}.recruit-copy h2{font-size:3.8vw}.recruit-description{font-size:14px}.recruit-stamp{width:100px;height:100px;font-size:11px}.recruit-photo-note{font-size:16px}.recruit-stories{padding:0 6% 50px;gap:20px}.recruit-story{grid-template-columns:42% 58%}.recruit-story>div{padding:22px 16px}.recruit-story>img{min-height:240px}}
@media(max-width:768px){.hero-catch{font-size:clamp(13px,3.3vw,24px);right:4%;bottom:8%;height:auto;max-height:none;width:auto;letter-spacing:.05em;gap:.15em}.recruit-stage{grid-template-columns:1fr;padding:10px 7% 55px;gap:55px}.recruit-copy h2{font-size:clamp(28px,6.8vw,50px);line-height:1.65;letter-spacing:-.045em}.recruit-description{font-size:15px;max-width:520px}.recruit-kicker{font-size:10px;margin-bottom:20px}.recruit-visual{width:85%;margin:0 auto;padding-bottom:65px}.recruit-team-photo img{aspect-ratio:1.35}.recruit-stamp{right:-10%;top:-5%;width:100px;height:100px}.recruit-photo-note{font-size:17px;right:-8%}.recruit-ticker{margin-bottom:45px}.recruit-stories{grid-template-columns:1fr;gap:22px;padding:0 7% 40px}.recruit-story{grid-template-columns:43% 57%}.recruit-story>img{min-height:220px}.recruit-story h3{font-size:20px}.recruit-story>div{padding:24px 20px}.recruit-bottom{font-size:7vw}.recruit-new{padding-bottom:45px}.recruit-cta{font-size:14px;padding-left:20px;gap:14px}.recruit-cta>span{width:38px;height:38px}.csr .float-orbit{animation-name:community-float-small}}
@keyframes community-float-small{0%,100%{transform:translateY(-5px) rotate(-3deg)}50%{transform:translateY(6px) rotate(3deg)}}
@media(max-width:390px){.recruit-story h3{font-size:17px}.recruit-story>div{padding:22px 15px}.recruit-copy h2{font-size:6.7vw}}
@media(prefers-reduced-motion:reduce){.hero-catch>span{opacity:1;clip-path:none;transform:none}.recruit-new .recruit-copy h2>span{clip-path:none;transform:none}.recruit-ticker>div,.csr .float-orbit,.recruit-stamp{animation:none!important}}
@media(max-width:578px){.hero-catch{font-size:clamp(14px,4vw,20px);right:4%;bottom:7%}}
/* Keep focus and carousel operations from shifting the page horizontally. */
main{overflow:clip}.news{grid-template-columns:minmax(0,25%) minmax(0,75%)}.news-slider,.news-window{min-width:0}
@media(max-width:992px){.news{grid-template-columns:minmax(0,1fr)}}
/* Independent Yoshimoto palette. Recruitment keeps its existing local colors. */
:root{--ink:#253d34;--blue:#385c4f;--gradient:linear-gradient(100deg,#203d35,#203d35);--paper:#f5f1e7;--clay:#ad7254;--line:#cfc7b8}
html,body{background:var(--paper)}body{color:var(--ink)}
:is(a,button):not(#recruit *):focus-visible{outline-color:var(--clay)}
.header-bg{background:rgba(25,47,39,.94)}
.nav-item.contact>button{background:#233f34;border-color:#c7b99b88}
.nav-item.contact>button:hover{color:#233f34;background:#f5f1e7}
.submenu ul{background:#f5f1e7f5;color:#253d34}.submenu button:hover{background:#314e40;color:#fff8ec}
.hero{background:#1a3028}.hero::after{background:linear-gradient(90deg,#13271e94 0%,#10231b40 55%,#14291e80 100%)}
.hero-title,.hero-catch{color:#fff8ec}
.news{background:#ece6d9}.news-card h3{color:#253d34}.news-card time{color:#7b6249}
.news-arrow{border-color:#b4a791;background:#f7f2e8e8;color:#425848}
.about,.works{background:var(--paper)}.color-square{background:#b7835e}
.section-title .eyebrow{color:#6b624e}.service-intro .eyebrow{color:#dbcfaf}
.service-intro{background:#29483a;color:#fff8ec}
.service-card{background-image:linear-gradient(110deg,#162d24b8,#172b2388),var(--photo);color:#fff8ec}
.service-card ul{border-top-color:#eee5cd80}.service-card li{border-bottom-color:#eee5cd80}
.number{color:#e4c89a}.more{border-color:var(--ink)}.more:hover{color:#fff8ec}.more:before{background:#29483a}
.more.white{color:#fff8ec;border-color:#e6d6b7}.more.white:before{background:#eee1c4}.more.white:hover{color:#253d34}
.csr{background-color:#233e30;background-image:linear-gradient(90deg,#1b382bdc,#2d4536c9),var(--community-photo);color:#fff8ec}
.csr .floating{box-shadow:0 8px 35px #17291f30}.csr .float-orbit{outline:3px solid #d8c5a51a}
.footer-contact{background-image:linear-gradient(#1b3027a3,#1b3027c4),var(--footer-photo);background-color:#213c30}
.contact-buttons button{border-color:#e4d4b7;color:#fff8ec}.contact-buttons button:hover{background:#2f5140}
.footer-info{background:var(--paper);color:#253d34}.footer-links button+button{border-left-color:var(--line)}
.sample-badges{color:#716852}.sample-badges>span,.sample-badges>div span{border-color:#c6bda9}
.demo-note{color:#716b5a}.pagetop{background:#365c48;color:#fff8ec}
dialog{background:#fbf8f0;color:#253d34}dialog::backdrop{background:#142d24b3}.demo-label{color:#52684e}
input,textarea{border-color:#c7bfae}.form-submit{background:#365c48;color:#fff8ec}.scope-note{border-top-color:#d7d0c1;color:#656955}
#brand-loader.playing{background:#1b362b;color:#fff8ec}.loader-emblem{color:#fff8ec}.loader-rule:after{background:#c8ab78}
.works .marquee-track{animation:works-pan 38s cubic-bezier(.45,0,.55,1) infinite alternate;animation-delay:.5s}
@keyframes works-pan{from{transform:translateX(0)}to{transform:translateX(var(--works-travel,0px))}}
@media(max-width:1024px){nav{background:#203d31}.submenu ul{background:none;color:#fff8ec}.nav-item.contact>button{background:none}.nav-item.contact>button:hover{color:#fff8ec;background:#365342}}
@media(prefers-reduced-motion:reduce){.works .marquee{overflow-x:auto}.works .marquee-track{animation:none!important}}
/* Three concise service cards; all other homepage chapters retain their layout. */
.services{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding:5% 7% 8%;background:var(--paper)}
.services .service-card{background:none;color:var(--ink);min-width:0}.service-card-link{display:block;height:100%;background:#ede7da;overflow:hidden}
.service-card-link figure{margin:0;overflow:hidden}.service-card-link figure img{width:100%;aspect-ratio:1.4;object-fit:cover;transition:transform .7s}
.service-card-link:hover figure img{transform:scale(1.045)}.service-brief{padding:28px}.service-index{display:flex;align-items:center;gap:18px;font:300 italic 28px/1 var(--latin);color:#947155;margin-bottom:22px}.service-index span{font:400 10px/1.4 var(--latin);letter-spacing:.09em;color:#63735e}
.service-brief h3{font:500 27px/1.5 var(--serif);text-align:left;margin:0 0 16px}.service-summary{font-size:16px;line-height:1.9;min-height:3.8em}.service-go{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #c8c1b2;margin-top:25px;padding-top:16px;font-size:13px}.service-go b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#29483a;color:#fff8ec;font-size:19px;font-weight:400;transition:transform .3s}.service-card-link:hover .service-go b{transform:rotate(45deg)}
.works .marquee-track{animation:none!important;will-change:transform}.work-photo{display:block}.work-caption{display:flex;align-items:center;justify-content:space-between;padding:12px 5px;font-size:14px}.work-caption b{font-size:20px;font-weight:400}
.submenu a{display:block;width:100%;padding:1em;font-size:15px;text-align:center}.submenu a:hover{background:#314e40;color:#fff8ec}.nav-item.contact>a{background:#233f34;border:1px solid #c7b99b88;border-radius:40px;margin-left:16px}.nav-item.contact>a:hover{color:#233f34;background:#f5f1e7}.news-card{display:block}.contact-buttons>a{display:block;width:33.33%;border:1px solid #e4d4b7;border-radius:60px;padding:1em;color:#fff8ec}.contact-buttons>a:hover{background:#2f5140}.footer-links>a{font-size:14px;padding:0 10px}.footer-links>a+a{border-left:1px solid var(--line)}.footer-links>a:hover{text-decoration:underline}
@media(max-width:1024px){.submenu a{text-align:left;padding:.5em 1em .5em 2em}.submenu a:before{content:'→';color:#aab2a2;margin-right:1em}.nav-item.contact>a{margin:0;border:0;border-bottom:1px solid #8d9192;background:none;border-radius:0}.nav-item.contact>a:hover{background:#365342;color:#fff8ec}.service-brief{padding:22px}.service-brief h3{font-size:24px}.service-index{gap:12px}.services{gap:20px}}
@media(max-width:900px){.services{grid-template-columns:1fr;padding:6% 6% 10%;gap:25px}.service-card-link{display:grid;grid-template-columns:45% 55%;align-items:stretch}.service-card-link figure img{height:100%;aspect-ratio:auto}.service-summary{min-height:0}.service-go{margin-top:20px}}
@media(max-width:992px){.contact-buttons>a{width:70%;margin:1em auto 0}}
@media(max-width:578px){.service-card-link{display:block}.service-card-link figure img{aspect-ratio:1.7;height:auto}.service-index{margin-bottom:16px}.service-summary{font-size:15px}.service-brief{padding:24px}.contact-buttons>a{width:95%}.service-brief h3{font-size:25px}}
