:root{--red:#b93937;--blue:#0064b4;--gray:#e8ebed;--ink:#111;--white:#fff;--ease:cubic-bezier(.23,1,.32,1);--pop:cubic-bezier(.17,.88,.3,1.28);--border:1px solid var(--ink)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;overflow-x:clip;color:var(--ink);background:var(--gray);font-family:"Zen Kaku Gothic New","Yu Gothic",sans-serif;font-weight:500;line-height:2;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;height:auto;display:block}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:900;line-height:1.4;letter-spacing:.015em}h2{font-size:clamp(32px,3.55vw,64px)}ul,ol{margin:0;padding:0;list-style:none}button{border:0;background:none}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ffcf00;outline-offset:5px}::selection{background:var(--blue);color:white}.inner{width:88.311688%;max-width:1695px;margin-inline:auto}.sp{display:none}.label{display:inline-flex;align-items:center;gap:.5em;color:var(--blue);font:900 clamp(18px,1.6vw,26px)/1.4 "Zen Kaku Gothic New","Yu Gothic",sans-serif;letter-spacing:.06em;white-space:nowrap}.label::before{content:"(";font:300 1.3em/1 Inter,sans-serif;margin-right:.1em}.label::after{content:")";font:300 1.3em/1 Inter,sans-serif;margin-left:.1em}.pill,.arrow-pill{display:inline-flex;align-items:center;justify-content:space-between;border:var(--border);background:var(--ink);color:white;border-radius:100px;transition:background .6s var(--ease),color .6s var(--ease),border-color .6s var(--ease)}.pill{min-width:265px;padding:16px 25px;font-size:15px;font-weight:700;gap:35px;line-height:1.5}.pill span,.arrow-pill{font-family:Inter,sans-serif;font-size:25px;font-weight:400}.pill span{transition:transform .4s}.pill:hover,.arrow-pill:hover{background:var(--red);border-color:var(--red)}.pill:hover span{transform:translateX(5px)}.pill.light{background:white;color:var(--ink)}.pill.light:hover{background:var(--gray)}.arrow-pill{width:85px;height:52px;justify-content:center}.text-link{display:inline-flex;align-items:center;gap:25px;font-weight:700;position:relative}.text-link::after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}.text-link:hover::after{transform:scaleX(1)}.skip-link{position:fixed;top:0;left:15px;z-index:1000;background:#fff;padding:10px;transform:translateY(-110%)}.skip-link:focus{transform:none}.reveal{opacity:0;transform:translateY(20px);transition:opacity 1.3s var(--ease) var(--delay,0s),transform 1.3s var(--ease) var(--delay,0s)}.reveal.is-visible{opacity:1;transform:none}.mascot{position:relative}.mascot img{width:100%;height:auto}.speech{position:absolute;background:var(--blue);color:#fff;font-size:14px;font-weight:700;line-height:1.5;border-radius:55% 48% 51% 44% / 55% 48% 60% 45%;padding:15px 24px;z-index:2;text-align:center;white-space:nowrap}.speech::after{content:"";position:absolute;bottom:-7px;right:18px;border-top:16px solid var(--blue);border-left:12px solid transparent;transform:rotate(-15deg)}

/* Initial opening: 2 s opposing type motion, then the same 3.2 s handover. */
.loader{display:none;position:fixed;inset:0;background:var(--gray);z-index:200;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}.loading .loader{display:flex}.loader img{width:140px;margin:10px 0;animation:loader-ranger .7s var(--pop) .6s both}.loader-top,.loader-bottom{font:900 clamp(45px,9vw,130px)/1 Inter,sans-serif;letter-spacing:-.065em;color:var(--red)}.loader-top{animation:load-top 2s cubic-bezier(.45,0,.55,1) both}.loader-bottom{animation:load-bottom 2s cubic-bezier(.45,0,.55,1) both}.loader>span{font-size:14px;margin-top:24px;animation:fade-in .4s 2s both}.loader-skip{display:none;position:fixed;bottom:35px;right:35px;z-index:201;text-decoration:underline;font-size:14px}.loading .loader-skip{display:block}.loader.is-leaving{opacity:0;transition:opacity .4s}.loading{overflow:hidden}@keyframes load-top{from{transform:translate(-60vw,-12vh)}to{transform:none}}@keyframes load-bottom{from{transform:translate(60vw,12vh)}to{transform:none}}@keyframes loader-ranger{from{opacity:0;transform:translateY(50px) scale(.8)}to{opacity:1;transform:none}}@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* The reference's two-row header becomes a compact bar on scroll. */
.site-header{height:150px;position:absolute;top:0;left:0;width:100%;z-index:60}.header-inner{width:91%;height:100%;max-width:1770px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{width:300px;flex:none}.brand img{width:100%}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:25px}.utility{display:flex;gap:12px;font-size:12px;font-weight:700;line-height:1}.utility a{border:var(--border);padding:12px 18px;border-radius:100px;min-width:130px;display:flex;justify-content:space-between;gap:20px;transition:background .4s,color .4s}.utility a:hover{background:#fff}.utility a.dark{background:#111;color:white;min-width:245px}.utility a.dark:hover{background:var(--red)}.desktop-nav{display:flex;gap:24px;font-size:14px;font-weight:700}.desktop-nav a:hover{color:var(--red)}.site-header.is-fixed{position:fixed;height:86px;background:rgba(232,235,237,.97);border-bottom:var(--border);animation:header-in .3s both}.site-header.is-fixed .brand{width:218px}.site-header.is-fixed .utility{display:none}.site-header.is-fixed .header-right{flex:1}.menu-toggle{display:none;flex:none;background:#111;width:78px;height:44px;border-radius:50px;position:relative}.menu-toggle span{position:absolute;left:25px;top:18px;width:28px;height:1px;background:white;transition:transform .4s}.menu-toggle span+span{top:25px}.site-menu{border:0;padding:25px 26px 45px;inset:0 0 auto auto;margin:0;width:min(580px,100%);height:100dvh;max-height:100dvh;max-width:100%;background:var(--gray);animation:menu-in .5s cubic-bezier(.33,1,.68,1)}.site-menu::backdrop{background:#1119}.menu-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.menu-top img{width:220px}.menu-close,.dialog-close{background:#111;color:white;width:54px;height:45px;border-radius:50px;font:300 32px/1 Inter,sans-serif}.site-menu nav{margin-bottom:30px}.site-menu nav a{display:flex;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid #a9acaf;font-size:19px;font-weight:700}.site-menu nav small{font:12px Inter;color:var(--blue)}.site-menu nav span{margin-left:auto}.menu-phone{display:block;font:700 26px Inter;margin-top:20px}@keyframes header-in{from{transform:translateY(-100%)}to{transform:none}}@keyframes menu-in{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}

/* Hero and the continuous red service stage. */
.red-stage{position:relative;padding-top:150px;padding-bottom:90px}.red-stage::before{content:"";position:absolute;inset:290px 0 0;background:var(--red);clip-path:polygon(0 0,100% 190px,100% 100%,0 100%)}.hero{position:relative}.hero-stage{position:relative;aspect-ratio:2720/1460;border:var(--border);border-radius:10px;overflow:hidden;background:#dadde0}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .4s ease;pointer-events:none}.hero-slide.is-active{opacity:1;z-index:1}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:50% 51%}.hero-photo.trees{object-position:50% 58%}.hero-photo.base{object-position:50% 47%}.photo-ranger{position:absolute;right:12%;bottom:16%;width:22%;max-width:300px;opacity:0;transform:translateY(35px);transition:opacity .6s ease,transform .6s var(--pop)}.photo-ranger .speech{top:-30px;left:-75px}.hero-slide.has-ranger .photo-ranger{opacity:1;transform:none}.hero-pagination{position:absolute;right:-40px;top:16%;z-index:5;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.hero-pagination button{display:flex;align-items:center;gap:10px;padding:5px 0;writing-mode:vertical-rl;min-width:24px;min-height:20px}.hero-pagination i{display:block;width:8px;height:8px;border-radius:50px;background:#1113;transition:height .25s,background .25s}.hero-pagination .is-active i{height:20px;background:#111}.hero-pagination span{display:none;font:700 11px/1 Inter,sans-serif;letter-spacing:.025em}.hero-pagination .is-active span{display:inline}.hero-title{position:absolute;bottom:0;left:-3.7%;z-index:4;transform:translateY(28%);font-size:clamp(45px,5.15vw,87px);line-height:1.22;letter-spacing:-.025em;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.title-line{display:block;position:relative;width:max-content;max-width:100%;padding:0 17px 9px;background:white;border:var(--border);border-radius:4px;clip-path:inset(0 100% 0 0)}.is-ready .title-line{animation:title-grow .6s var(--ease) .2s both}.is-ready .title-line:nth-child(2){animation-delay:.35s}.title-line::after{content:"";position:absolute;inset:0;background:#111;transform-origin:right}.is-ready .title-line::after{animation:cover-wipe .6s var(--ease) .8s both}.is-ready .title-line:nth-child(2)::after{animation-delay:.95s}.hero-guide{position:absolute;right:-4.3%;bottom:-102px;width:195px;z-index:5;opacity:0;transform:translateX(50px)}.is-ready .hero-guide{animation:mascot-in .4s var(--pop) 1.8s forwards}.hero-guide .speech{top:-12px;left:-93px}.hero-guide small{display:block;text-align:center;color:white;font-size:9px;line-height:1.5;margin-top:4px}.hero-caption{position:absolute;right:195px;bottom:-33px;color:white;font-size:10px;letter-spacing:.09em}.service-intro{padding-top:157px;position:relative}.marquee{display:flex;overflow:hidden;user-select:none}.marquee>div{flex:none;animation:marquee var(--speed,50s) linear 1s infinite;white-space:nowrap}.outline{font:900 clamp(80px,9vw,145px)/1.1 Inter,sans-serif;-webkit-text-stroke:1px currentColor;color:transparent;opacity:.35}.outline>div{padding-right:50px}.service-marquee{position:absolute;top:68px;width:100%;-webkit-text-stroke-color:#fff}.service-panels{display:grid;grid-template-columns:1fr 1fr;gap:26px;position:relative}.service-panel{position:relative;border:var(--border);border-radius:10px;background:white;padding:62px 50px 44px;transition:transform 1.3s var(--ease),opacity 1.3s var(--ease),background .6s}.service-panel:hover{background:#f8fafb}.quote-mark{position:absolute;font-family:Georgia,serif;font-size:68px;color:var(--blue);font-weight:900;line-height:1;left:20px;top:30px}.service-panel .label{position:absolute;top:27px;right:43px}.panel-kicker{font-size:14px;font-weight:700}.service-panel h2{font-size:clamp(36px,3.5vw,63px);margin:1px 0 27px;letter-spacing:.06em}.service-panel>p:last-child{font-size:17px;line-height:1.85}.service-panel .arrow-pill{position:absolute;right:40px;top:93px}.service-panel:hover .arrow-pill{background:var(--red);border-color:var(--red)}.business-band{position:relative;grid-column:1/-1;background:white;border:var(--border);border-radius:10px;padding:42px 45px 37px 55px;display:grid;grid-template-columns:1fr 1.45fr;gap:40px;overflow:hidden}.business-band h2{font-size:28px;margin-top:13px}.business-band h3{font-size:24px;margin-bottom:9px}.business-band p{font-size:14px;line-height:1.8}.business-band .quote-mark{left:20px;top:35px;font-size:44px}.business-band .label{margin-left:0}.business-copy{position:relative;z-index:2;padding-right:110px}.business-copy .text-link{font-size:13px;margin-top:12px}.business-ranger{position:absolute;right:-10px;bottom:-48px;width:170px;transform:rotate(-7deg)}@keyframes title-grow{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes cover-wipe{to{transform:scaleX(0)}}@keyframes mascot-in{to{opacity:1;transform:none}}@keyframes marquee{to{transform:translateX(-100%)}}

/* Monumental typography and centered message. */
.concept{position:relative;text-align:center;padding:55px 0 45px;overflow:hidden}.concept-word{position:relative;font:900 clamp(70px,16.7vw,290px)/.92 Inter,sans-serif;letter-spacing:-.075em;color:var(--red);z-index:1;white-space:nowrap;transform:scaleX(1.05)}.concept-ghost{position:absolute;left:0;right:0;top:40%;font-size:18vw;line-height:1;font-weight:900;letter-spacing:-.13em;color:#dce0e3;white-space:nowrap}.concept-copy{position:relative;z-index:2;padding:80px 20px 65px}.concept-copy h2{font-size:clamp(38px,4.5vw,76px);line-height:1.55;letter-spacing:.05em;margin:30px 0 40px}.concept-body{font-weight:700;line-height:2.1;font-size:17px}.concept-body p+p{margin-top:25px}.concept-copy .pill{margin-top:43px;text-align:left}.bottom-word{font-size:clamp(100px,23vw,390px);letter-spacing:-.08em}.photo-strip{position:relative;padding-top:165px;padding-bottom:0;z-index:3}.photo-strip::after{content:"";position:absolute;z-index:-1;inset:35% 0 -200px;background:var(--blue);clip-path:polygon(0 160px,100% 0,100% 100%,0 100%)}.photos{--speed:30s}.photo-group{display:flex;gap:30px;padding-right:30px;align-items:flex-end}.photo-group img{width:330px;height:445px;object-fit:cover;border:var(--border);border-radius:10px}.photo-group img:nth-child(2n){height:405px}.strip-ranger{width:235px;position:absolute;top:20px;right:8%;z-index:3;--delay:.2s;transform:translateX(50px);transition-timing-function:var(--pop);transition-duration:.4s}.strip-ranger .speech{top:15px;left:-118px}

/* Organic blue section; the four cards retain their front/back orientation. */
.about-data{position:relative;z-index:4;background:var(--blue);padding:200px 0 250px;clip-path:polygon(0 0,100% 0,100% calc(100% - 160px),0 100%);margin-bottom:20px}.about-data>.marquee{position:absolute;top:80px;width:100%;-webkit-text-stroke-color:#fff;opacity:.5}.data-inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.data-copy{position:relative;isolation:isolate;padding:90px 5% 100px 8%;align-self:center}.data-copy::before{content:"";position:absolute;z-index:-1;inset:-55px -90px -45px -18%;background:white;border-radius:41% 50% 36% 47% / 41% 37% 57% 49%;transform:rotate(-10deg)}.data-copy h2{font-size:clamp(44px,4.8vw,75px);margin:25px 0 27px;line-height:1.45}.data-copy p{font-size:17px;line-height:2}.data-copy .pill{margin-top:33px}.fact-cards{display:flex;gap:28px;position:relative;z-index:2}.fact-column{width:50%;display:flex;flex-direction:column;gap:28px}.fact-column:first-child{transform:translateY(65px)}.fact-card{aspect-ratio:1/1.22;perspective:1200px}.fact-turn{position:relative;width:100%;height:100%;transform-style:preserve-3d}.fact-card.is-visible .fact-turn{animation:fact-flip 7s linear var(--flip-delay,0s) infinite}.fact-front,.fact-back{position:absolute;inset:0;backface-visibility:hidden;border:var(--border);border-radius:10px;background:var(--gray);padding:23px 15px 15px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;overflow:hidden}.fact-front>span{font-size:12px;font-weight:700}.fact-front>img{height:55%;width:auto;object-fit:contain;margin:4px auto}.fact-front>strong{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;white-space:nowrap}.fact-front>strong>span{font-size:28px}.fact-front .fact-number{display:block;font:900 clamp(40px,5vw,78px)/1.1 Inter,sans-serif;letter-spacing:-.05em;margin:20px 0 6px}.fact-number small{display:block;font:700 17px/2 "Zen Kaku Gothic New",sans-serif;letter-spacing:.1em}.fact-front>p{font-size:10px}.fact-front>img.small-ranger{height:39%;align-self:flex-end;margin-right:0}.fact-front .fact-kanji{font-size:clamp(44px,4.9vw,79px);line-height:1.12;letter-spacing:.08em;display:block;margin:17px auto}.fact-front>small{font-size:11px}.fact-back{transform:rotateY(180deg);justify-content:center;background:#fff}.fact-back small{font:10px Inter;color:var(--blue);margin-bottom:20px}.fact-back strong{font-size:21px;line-height:1.7}.fact-back p{font-size:12px;line-height:1.8;margin-top:14px}@keyframes fact-flip{0%{transform:rotateY(0)}5%{transform:rotateY(180deg)}10%,100%{transform:rotateY(360deg)}}

/* Case story with the vertical title and offset blue note. */
.work-section{position:relative;padding:90px 0 180px}.work-intro{display:flex;align-items:flex-start;min-height:260px;position:relative;padding-left:7%;padding-right:30%}.work-intro h2{position:absolute;right:1%;top:0;writing-mode:vertical-rl;font-size:clamp(46px,4.8vw,76px);line-height:1.6;letter-spacing:.1em;height:465px}.work-intro .label{margin:25px 0 33px}.work-intro p{font-size:17px;line-height:2.1}.steps{position:absolute;right:2%;bottom:15px;color:var(--blue);letter-spacing:14px;transform:rotate(-25deg);font-size:30px;clip-path:inset(0 100% 0 0)}.is-visible .steps{animation:footsteps 1.2s steps(4,end) .4s forwards}.featured-work{position:relative;margin-right:18%;margin-left:3%;}.work-photo{position:relative;aspect-ratio:1.63;border:var(--border);border-radius:10px}.work-photo::before{content:"";position:absolute;inset:0;border:var(--border);border-radius:10px;background:#d8dde0;z-index:-1;transform:translate(-24px,25px);transition:transform .6s .3s}.featured-work:not(.is-visible) .work-photo::before{transform:none}.work-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 57%;border-radius:9px}.work-note{position:absolute;right:-23%;bottom:-60px;width:31%;min-width:280px;background:var(--blue);border:var(--border);border-radius:10px;padding:32px 32px 30px;color:white;z-index:3}.work-index{font:11px Inter;letter-spacing:.05em}.work-note h3{font-size:31px;line-height:1.65;margin:24px 0}.work-note p{font-size:12px;line-height:1.9}.work-note time{font:10px Inter;color:#c3d9ec;display:block;margin-top:22px}.work-link{position:absolute;left:-30px;bottom:-47px;z-index:4;min-width:320px;padding-block:22px}.work-ranger{position:absolute;right:7%;bottom:-140px;width:160px;z-index:5}.work-ranger .speech{left:-95px;top:15px;font-size:12px}@keyframes footsteps{to{clip-path:inset(0)}}

/* Service portraits follow the large central slide rhythm. */
.service-gallery{position:relative;background:white;padding:110px 0 120px}.service-gallery::before{content:"";position:absolute;inset:-90px 0 auto;height:91px;background:#fff;clip-path:polygon(0 100%,100% 0,100% 100%)}.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:75px}.gallery-heading h2{margin-top:22px;font-size:clamp(35px,3.7vw,60px)}.gallery-heading .pill{margin-bottom:7px}.service-carousel{overflow:hidden;padding:20px 0 0;touch-action:pan-y}.service-track{display:flex;align-items:flex-start;gap:40px;transition:transform .5s var(--ease);will-change:transform}.gallery-card{flex:0 0 330px;min-width:0;padding-top:75px;transition:padding-top .5s var(--ease);position:relative}.gallery-card.is-current{padding-top:0}.gallery-photo{position:relative;height:385px;background:var(--gray);border:var(--border);border-radius:10px;transition:height .5s var(--ease);isolation:isolate}.gallery-card.is-current .gallery-photo{height:460px}.gallery-photo>img:first-child{width:100%;height:100%;object-fit:cover;border-radius:9px;transition:filter .4s,object-position .4s}.gallery-photo::after{content:"";position:absolute;inset:0;border-radius:9px;box-shadow:inset 0 -80px 80px -70px #0008;pointer-events:none}.gallery-photo .card-ranger{position:absolute;right:-18px;bottom:32px;width:128px;height:145px;object-fit:contain;filter:drop-shadow(0 2px 1px #0002);transition:transform .4s var(--pop)}.gallery-card:hover .card-ranger{transform:translateY(-12px) rotate(5deg)}.card-number{position:absolute;top:-19px;right:-19px;width:57px;height:57px;border-radius:50%;display:grid;place-items:center;background:var(--gray);border:var(--border);font:500 16px Inter;z-index:2}.card-category{position:absolute;bottom:20px;left:-1px;background:var(--blue);color:white;font-size:13px;font-weight:700;padding:6px 20px;border-radius:0 4px 4px 0;transition:background .4s;z-index:3}.gallery-card:hover .card-category{background:var(--red)}.gallery-card h3{font-size:24px;line-height:1.6;margin:20px 0 6px;transition:color .4s}.gallery-card:hover h3{color:var(--red)}.gallery-card>p{font-size:12px;color:#666}.card-more{font-size:11px;display:block;margin-top:12px}.ranger-only{background:#cbdcec;overflow:visible}.ranger-only>img:first-child{object-fit:contain;padding:40px 20px 35px}.exterior-card{background:#d4c5bc}.carousel-controls{display:flex;justify-content:space-between;align-items:center;margin-top:35px;font:12px Inter}.carousel-controls p span{font-size:25px;margin-right:10px}.carousel-controls>div{display:flex;gap:12px}.circle-button{width:55px;height:43px;border:var(--border);border-radius:50px;font-size:23px;transition:background .4s,color .4s}.circle-button:hover{background:var(--ink);color:white}

/* Journal, area and practical consultation content. */
.news-section{position:relative;padding:180px 0 90px}.news-section::before{content:"";position:absolute;inset:0 0 auto;height:110px;background:white;clip-path:polygon(0 0,100% 0,0 100%)}.news-section::after{content:"";position:absolute;top:0;right:0;width:55%;height:110px;background:var(--blue);clip-path:polygon(0 0,100% 0,100% 100%);z-index:-1}.news-inner{display:grid;grid-template-columns:1fr 2fr;gap:55px}.news-heading{padding-top:32px}.news-heading h2{font-size:29px;margin:25px 0 15px}.blue-dot{font-size:13px;margin:25px 0 42px}.blue-dot::before{content:"";display:inline-block;width:7px;height:7px;background:var(--blue);border-radius:50%;margin-right:12px}.news-heading .pill{min-width:235px;font-size:13px}.news-card{display:flex;align-items:center;position:relative;gap:20px;background:white;border:var(--border);border-radius:10px;padding:25px 30px 25px 25px}.news-card+.news-card{margin-top:17px}.news-card figure{width:135px;aspect-ratio:1.22;overflow:hidden;border:var(--border);border-radius:7px;flex:none}.news-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.news-card:hover img{transform:scale(1.07)}.news-card time,.vertical-date{writing-mode:vertical-rl;flex:none;font:10px/1 Inter,sans-serif;letter-spacing:.04em}.news-card>div{padding-right:55px}.tag{display:inline-block;font-size:10px;background:var(--blue);color:white;border-radius:3px;padding:2px 10px;line-height:1.7}.news-card h3{font-size:16px;line-height:1.8;margin-top:10px}.news-card .arrow-pill{position:absolute;width:52px;height:40px;right:24px;top:50%;transform:translateY(-50%)}.news-card:hover .arrow-pill{background:var(--red);border-color:var(--red)}.area-section{padding:40px 0 100px}.area-section h2{font-size:29px;margin:18px 0 10px}.area-section p{font-size:14px}.area-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:35px}.area-tiles a{background:white;border:var(--border);border-radius:10px;text-align:center;font-size:25px;font-weight:700;padding:32px 15px;transition:color .4s,background .4s}.area-tiles a:hover{background:var(--blue);color:#fff}.area-tiles span{font-size:15px;font-weight:500;color:var(--blue);margin-inline:8px}.area-tiles a:hover span{color:white}.area-tiles small{display:block;font:10px Inter;letter-spacing:.05em;margin-top:14px}.estimate-section{padding:50px 0 120px;display:grid;grid-template-columns:1fr 1fr;gap:100px;border-top:var(--border)}.estimate-heading h2{font-size:clamp(31px,3.5vw,53px);margin:25px 0}.estimate-heading>p{font-size:15px}.quick-note{margin-top:30px;padding-left:22px;border-left:4px solid var(--red);max-width:460px}.quick-note strong{font-size:16px}.quick-note p{font-size:13px;line-height:1.85;margin:8px 0 13px}.quick-note a{display:flex;justify-content:space-between;max-width:300px;font:700 27px Inter}.estimate-steps{padding-top:50px}.estimate-steps li{display:flex;gap:30px;border-bottom:var(--border);padding:24px 0}.estimate-steps li:first-child{border-top:var(--border)}.estimate-steps li>span{font:500 14px Inter;color:var(--blue);padding-top:8px}.estimate-steps h3{font-size:23px}.estimate-steps p{font-size:13px;margin-top:8px}.faq-section{display:grid;grid-template-columns:1fr 2fr;gap:80px;padding:20px 0 130px}.faq-section h2{font-size:36px;margin:22px 0}.faq-section>div>img{width:125px;margin:30px auto 0}.faq-list{border-top:var(--border)}.faq-list details{border-bottom:var(--border)}.faq-list summary{padding:23px 50px 23px 34px;font-size:16px;font-weight:700;cursor:pointer;list-style:none;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::before{content:"Q";position:absolute;left:0;color:var(--blue);font:600 16px/2 Inter}.faq-list summary::after{content:"+";position:absolute;right:10px;top:19px;font:400 26px/1.5 Inter;transition:transform .3s}.faq-list details[open] summary::after{transform:rotate(45deg)}.faq-list details>p{font-size:14px;line-height:2;padding:0 35px 25px}

/* The footer image opens along the exact slanted mask from the reference. */
.recruit-bridge{position:relative;margin-top:60px;padding-bottom:90px;opacity:1;transform:none;overflow:hidden}.bridge-photo{aspect-ratio:3086/1712;position:relative;clip-path:polygon(0 22.42%,0 0,0 77.58%,0 100%);transition:clip-path .6s ease;background:#929da6}.is-visible .bridge-photo{clip-path:polygon(0 22.42%,100% 0,100% 77.58%,0 100%)}.bridge-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}.bridge-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0008,transparent 70%)}.bridge-copy{position:absolute;left:8%;top:33%;z-index:5;color:white}.bridge-copy .label{color:white}.bridge-copy h2{font-size:clamp(34px,4.3vw,70px);line-height:1.55;margin:15px 0 30px}.bridge-ranger{position:absolute;width:37%;max-width:580px;right:-5%;bottom:14%;transform:translateX(50px);opacity:0;transition:transform .4s var(--pop) .3s,opacity .4s .3s}.is-visible .bridge-ranger{transform:none;opacity:1}.bridge-ranger .speech{font-size:20px;top:0;left:0;padding:25px 40px}.bridge-marquee{position:absolute;bottom:30px;width:100%;font:900 clamp(75px,8.7vw,145px)/1 Inter;z-index:6;letter-spacing:-.04em}.bridge-marquee>div{padding-right:50px}.site-footer{position:relative;padding:70px 0 35px}.footer-main{display:grid;grid-template-columns:1.05fr .65fr 1.3fr;gap:45px;align-items:start}.footer-company>a>img{width:100%;max-width:340px;margin-top:15px}.footer-company p{font-size:11px;line-height:2.2;margin-top:35px}.footer-company p strong{font-size:14px;display:inline-block;margin-bottom:12px}.footer-company .text-link{font-size:12px;margin-top:20px}.footer-nav{display:flex;flex-direction:column;gap:18px;font-size:12px;font-weight:700;padding-top:20px}.footer-nav a:hover{color:var(--red)}.contact-box{position:relative;background:#111;color:white;border-radius:10px;padding:40px 35px 175px;border:var(--border);overflow:hidden}.contact-box>.label{color:#b4d8f4}.contact-box h2{font-size:29px;line-height:1.6;margin:17px 0 12px}.contact-box>p{font-size:13px;line-height:1.85}.contact-tel{display:block;font:700 clamp(23px,2.3vw,38px)/1.3 Inter,sans-serif;letter-spacing:-.03em;margin:24px 0 22px;white-space:nowrap}.contact-tel small{display:block;font:500 10px/1.5 "Zen Kaku Gothic New",sans-serif;letter-spacing:.05em;margin-bottom:7px}.contact-box .pill{width:100%;min-width:0;font-size:12px;gap:10px;padding:14px 20px}.contact-rangers{position:absolute;display:flex;justify-content:center;bottom:-66px;right:0;left:0;height:220px;pointer-events:none}.contact-rangers img{width:180px;height:220px;object-fit:contain}.contact-rangers img+img{margin-left:-36px;transform:rotate(8deg)}.footer-bottom{display:flex;gap:30px;align-items:center;font:10px/1.7 Inter,sans-serif;margin-top:55px}.footer-bottom>a{font-family:"Zen Kaku Gothic New",sans-serif;font-size:10px;margin-left:auto}.back-top{position:absolute;right:12px;top:72px;display:flex;align-items:center;gap:20px;writing-mode:vertical-rl;background:#111;color:white;border-radius:50px;padding:20px 9px;font:10px Inter}.back-top span{letter-spacing:.07em}

/* Native dialogs keep the prototype's details and navigation usable. */
.service-dialog{position:fixed;width:min(850px,92vw);max-height:90dvh;margin:auto;padding:0;border:var(--border);border-radius:14px;background:var(--gray);overflow:auto}.service-dialog[open]{display:grid;grid-template-columns:35% 65%;animation:dialog-in .3s var(--ease)}.service-dialog::backdrop{background:#111a;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:18px;top:18px;z-index:5}.dialog-visual{display:flex;align-items:center;justify-content:center;background:var(--red);padding:40px 10px;overflow:hidden}.dialog-visual img{width:100%;max-height:430px;object-fit:contain}.dialog-copy{padding:55px 42px 45px}.dialog-copy h2{font-size:36px;margin:18px 0 22px}.dialog-copy>p{font-size:14px;line-height:2}.dialog-copy ul{font-size:14px;margin:20px 0}.dialog-copy li{padding:8px 0;border-bottom:1px solid #b5bac0}.dialog-copy li::before{content:"・";color:var(--blue)}.dialog-copy .dialog-note{font-size:11px;color:#555;margin-bottom:23px}.dialog-copy .pill{min-width:0;width:100%;font-size:13px}.dialog-phone{display:block;font-size:13px;margin-top:15px}@keyframes dialog-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* User and OS motion preferences are reflected by one explicit state. */

@media(min-width:1700px){.hero-title{font-size:87px}.hero-guide{width:230px}.photo-group img{width:400px;height:535px}.photo-group img:nth-child(2n){height:485px}}
@media(max-width:1200px){.brand{width:245px}.desktop-nav{font-size:12px;gap:15px}.header-right{gap:20px}.utility{gap:8px}.utility a{min-width:115px}.service-panel{padding-inline:40px}.service-panel .arrow-pill{width:65px;right:25px}.business-band{padding-inline:40px;gap:25px;grid-template-columns:1fr 1.2fr}.business-copy{padding-right:65px}.business-band h3{font-size:21px}.business-ranger{width:135px}.fact-cards{gap:18px}.fact-column{gap:18px}.news-inner{gap:28px}.news-card{padding:22px 20px;gap:15px}.news-card figure{width:110px}.news-card h3{font-size:14px}.news-card .arrow-pill{right:18px;width:42px}.news-card>div{padding-right:45px}.footer-main{gap:25px}.contact-box{padding-inline:25px}.contact-box h2{font-size:24px}.area-tiles a{font-size:20px}}
@media(max-width:1050px){.site-header{height:120px}.brand{width:285px}.header-right{display:none}.menu-toggle{display:block}.site-header.is-fixed{height:76px}.site-header.is-fixed .brand{width:220px}.site-header.is-fixed .header-right{display:none}.red-stage{padding-top:120px}.red-stage::before{top:26vw;clip-path:polygon(0 0,100% 90px,100% 100%,0 100%)}.hero-stage{aspect-ratio:700/670}.hero-title{font-size:7vw;bottom:0}.hero-guide{bottom:-150px;width:190px}.hero-caption{bottom:-115px;left:0;right:auto;font-size:10px}.photo-ranger{width:30%;right:15%;bottom:25%}.hero-pagination{top:-25px;right:0;flex-direction:row;align-items:center;gap:9px}.hero-pagination button{writing-mode:initial;padding:0;min-width:8px;min-height:15px}.hero-pagination .is-active i{width:17px;height:8px}.hero-pagination span{font-size:10px}.service-intro{padding-top:205px}.service-panels{grid-template-columns:1fr;gap:15px}.service-panel{padding:55px 50px 40px}.service-panel h2{font-size:44px}.service-panel .arrow-pill{top:78px;right:55px;width:85px}.service-panel .label{right:55px}.business-band{grid-template-columns:1fr;gap:20px;padding:45px 50px}.business-band h2{font-size:30px}.business-copy{padding-right:150px}.business-ranger{width:220px;bottom:-60px;right:-25px}.data-inner{display:block}.data-copy{max-width:550px;padding:65px 35px;margin:0 auto 90px}.data-copy::before{inset:-50px -50px}.data-copy h2{font-size:60px}.fact-cards{max-width:620px;margin:0 auto;gap:25px}.fact-column{gap:25px}.fact-front .fact-number{font-size:75px}.fact-front .fact-kanji{font-size:80px}.fact-front>span{font-size:15px}.fact-front>strong{font-size:19px}.fact-front>strong>span{font-size:36px}.fact-front>small{font-size:13px}.fact-front>p{font-size:12px}.about-data{padding-top:150px}.work-section{padding-top:40px;padding-bottom:180px}.work-intro{padding-left:0;padding-right:0;min-height:0;gap:7%;margin-bottom:55px}.work-intro h2{position:relative;right:auto;top:auto;flex:none;font-size:54px;height:310px;line-height:1.4}.work-intro>div{flex:1;padding-top:10px}.work-intro .label{margin-top:0}.steps{right:8%;bottom:10px}.featured-work{margin:0}.work-photo{aspect-ratio:1.5}.work-note{position:relative;right:auto;bottom:auto;width:75%;margin-left:auto;margin-top:-65px;padding:30px 40px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.work-note h3{font-size:29px;grid-row:2/4}.work-note p{margin-top:20px}.work-note time{grid-column:2}.work-link{bottom:-35px;left:-20px;min-width:285px}.work-ranger{right:-25px;bottom:-155px;width:180px}.gallery-heading{margin-bottom:60px}.news-inner{grid-template-columns:1fr}.news-heading{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin-bottom:20px}.news-heading>.label,.news-heading h2{grid-column:1}.news-heading .pill{grid-column:2;grid-row:2;justify-self:end}.blue-dot{margin:5px 0 15px}.news-card figure{width:145px}.news-card h3{font-size:18px}.news-card{padding:25px 30px}.news-card .arrow-pill{width:60px;height:45px;right:30px}.news-card>div{padding-right:70px}.area-tiles{gap:15px}.area-tiles a{font-size:18px}.area-tiles span{margin-inline:2px}.estimate-section{gap:45px}.faq-section{gap:40px;grid-template-columns:1fr 1.7fr}.footer-main{grid-template-columns:1fr 1.2fr;gap:40px}.footer-nav{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr 1fr}.contact-box{grid-column:2;grid-row:1/3}.contact-box h2{font-size:27px}.contact-tel{font-size:30px}.footer-company>a>img{max-width:290px}.bridge-ranger .speech{font-size:16px;padding:18px 25px}.bridge-copy{top:28%}}

@media(max-width:800px){html{scroll-padding-top:88px}.inner{width:90%}.pc{display:none}.sp{display:block}body{font-size:14px}.pill{font-size:13px;min-width:235px;padding:15px 23px}.pill span{font-size:22px}.site-header{height:112px}.header-inner{width:90%;gap:15px}.brand{width:min(65%,250px)}.menu-toggle{width:66px;height:42px}.menu-toggle span{left:22px;width:23px;top:17px}.menu-toggle span+span{top:24px}.red-stage{padding-top:132px;padding-bottom:45px}.red-stage::before{top:245px;clip-path:polygon(0 0,100% 47px,100% 100%,0 100%)}.hero{width:92%}.hero-stage{border-radius:6px}.hero-photo{object-position:50% 52%}.hero-title{font-size:clamp(26px,7.9vw,60px);left:-1.5%;bottom:-6px;gap:5px;transform:translateY(50%);line-height:1.27}.title-line{padding:0 7px 5px;border-radius:3px}.hero-guide{width:95px;right:-4.3%;bottom:-166px}.hero-guide .speech{font-size:9px;line-height:1.35;top:30px;left:-70px;padding:10px 14px}.hero-guide small{font-size:6px;line-height:1.5}.hero-caption{bottom:-122px;font-size:8px;letter-spacing:0;max-width:55%}.hero-pagination{top:-23px;gap:8px}.hero-pagination span{font-size:8px}.hero-pagination i{width:6px;height:6px}.hero-pagination .is-active i{height:6px;width:14px}.photo-ranger{width:31%;right:11%;bottom:23%}.photo-ranger .speech{font-size:8px;padding:8px 13px;left:-47px;top:-20px}.speech::after{border-top-width:11px;border-left-width:8px;right:13px;bottom:-5px}.service-intro{padding-top:185px}.service-marquee{top:113px;font-size:65px}.service-panels{width:92%;gap:12px}.service-panel{padding:52px 30px 30px;border-radius:10px}.service-panel .label{top:25px;right:30px}.quote-mark{left:14px;top:28px;font-size:44px}.panel-kicker{font-size:11px}.service-panel h2{font-size:32px;margin:3px 0 23px}.service-panel .arrow-pill{width:70px;height:39px;top:75px;right:28px}.service-panel>p:last-child{font-size:14px;line-height:1.85}.business-band{padding:40px 30px 30px;gap:16px}.business-band .quote-mark{left:12px;top:31px;font-size:38px}.business-band h2{font-size:25px;margin-top:11px}.business-band p{font-size:12px}.business-band h3{font-size:18px;max-width:220px}.business-copy{padding-right:58px}.business-copy p{font-size:12px}.business-copy .text-link{font-size:11px;gap:10px}.business-ranger{width:115px;right:-24px;bottom:-5px}.concept{padding:37px 0 20px}.concept-word{font-size:16.5vw;letter-spacing:-.07em}.concept-copy{padding:53px 12px 48px}.concept-copy h2{font-size:36px;line-height:1.6;margin:22px 0 30px;letter-spacing:.03em}.concept-ghost{font-size:29vw;top:42%;left:-9%;right:-9%}.concept-body{font-size:14px;line-height:2.15}.concept-body p+p{margin-top:22px}.concept-copy .pill{margin-top:33px}.bottom-word{font-size:25vw}.photo-strip{padding-top:115px}.photo-strip::after{inset:40% 0 -160px;clip-path:polygon(0 80px,100% 0,100% 100%,0 100%)}.photo-group{gap:15px;padding-right:15px}.photo-group img{width:205px;height:290px;border-radius:6px}.photo-group img:nth-child(2n){height:260px}.strip-ranger{width:130px;top:30px;right:1%}.strip-ranger .speech{font-size:10px;padding:10px 17px;left:-77px;top:3px}.about-data{padding:130px 0 170px;clip-path:polygon(0 0,100% 0,100% calc(100% - 75px),0 100%);margin-bottom:0}.about-data>.marquee{font-size:60px;top:37px}.data-copy{max-width:380px;padding:42px 22px 45px;margin:0 auto 85px}.data-copy::before{inset:-25px -25px -15px -25px;border-radius:38% 51% 40% 42% / 40% 42% 51% 48%}.data-copy h2{font-size:43px;line-height:1.45;margin:20px 0 22px}.data-copy p{font-size:14px}.data-copy .pill{margin-top:24px}.fact-cards{gap:15px;width:100%;max-width:450px}.fact-column{gap:15px}.fact-column:first-child{transform:translateY(45px)}.fact-card{aspect-ratio:1/1.32}.fact-front,.fact-back{padding:17px 8px 13px;border-radius:7px}.fact-front>span{font-size:9px}.fact-front>strong{font-size:11px;gap:4px}.fact-front>strong>span{font-size:22px}.fact-front .fact-number{font-size:44px;margin-top:14px}.fact-number small{font-size:12px}.fact-front .fact-kanji{font-size:49px;margin:14px auto}.fact-front>small{font-size:8px}.fact-front>p{font-size:7px}.fact-back strong{font-size:16px}.fact-back p{font-size:9px;margin-top:10px}.fact-back small{font-size:8px;margin-bottom:12px}.work-section{padding:35px 0 150px}.work-intro{gap:20px;margin-bottom:35px}.work-intro h2{font-size:34px;height:235px;line-height:1.5;letter-spacing:.06em}.work-intro>div{padding-top:10px}.work-intro .label{margin:0 0 25px}.work-intro p{font-size:12px;line-height:2}.steps{font-size:22px;right:7%;bottom:10px;letter-spacing:8px}.work-photo{aspect-ratio:1.14;border-radius:7px}.work-photo img{border-radius:6px;object-position:50% 65%}.work-photo::before{border-radius:7px;transform:translate(-12px,14px)}.work-note{display:block;margin-top:-28px;width:88%;margin-right:-2%;padding:23px 24px 26px;min-width:0}.work-index{font-size:9px}.work-note h3{font-size:25px;line-height:1.6;margin:16px 0}.work-note p{font-size:11px;margin-top:0}.work-note time{font-size:9px;margin-top:17px}.work-link{left:-6px;bottom:-42px;min-width:230px;padding:17px 20px;font-size:12px}.work-ranger{width:105px;right:-4%;bottom:-110px}.work-ranger .speech{font-size:9px;left:-75px;top:25px;padding:9px 13px}.service-gallery{padding:50px 0 60px}.service-gallery::before{top:-50px;height:51px}.gallery-heading{display:block;margin-bottom:40px}.gallery-heading h2{font-size:33px;margin-top:17px;line-height:1.5}.gallery-heading .pill{margin-top:25px;margin-bottom:0}.service-track{gap:20px}.gallery-card{flex-basis:265px;padding-top:0}.gallery-card.is-current{padding-top:0}.gallery-photo,.gallery-card.is-current .gallery-photo{height:350px}.gallery-photo .card-ranger{width:110px;height:130px;right:-8px;bottom:35px}.card-number{width:44px;height:44px;font-size:13px;top:-15px;right:-12px}.card-category{font-size:11px;padding:5px 15px;bottom:17px}.gallery-card h3{font-size:21px;margin-top:17px}.gallery-card>p{font-size:11px}.carousel-controls{margin-top:22px}.circle-button{width:48px;height:38px;font-size:20px}.news-section{padding:110px 0 50px}.news-section::before,.news-section::after{height:55px}.news-inner{gap:15px}.news-heading{display:block;padding-top:0;margin-bottom:18px}.news-heading h2{font-size:27px;margin:16px 0 13px}.blue-dot{font-size:11px;margin-bottom:23px}.news-heading .pill{font-size:12px}.news-card{gap:10px;padding:19px 12px;border-radius:7px;align-items:flex-start}.news-card+.news-card{margin-top:12px}.news-card figure{width:77px;aspect-ratio:.83;border-radius:5px}.news-card time,.vertical-date{font-size:8px;line-height:1;margin-top:5px}.news-card>div{padding-right:19px;padding-bottom:15px;flex:1}.news-card h3{font-size:12px;line-height:1.85;margin-top:8px}.tag{font-size:8px;padding:2px 7px}.news-card .arrow-pill{width:33px;height:26px;right:12px;top:auto;bottom:12px;transform:none;font-size:19px}.area-section{padding:20px 0 65px}.area-section h2{font-size:28px;line-height:1.5}.area-section p{font-size:12px;margin-top:16px}.area-tiles{grid-template-columns:1fr;gap:10px;margin-top:25px}.area-tiles a{font-size:21px;padding:22px 15px;border-radius:7px}.area-tiles small{font-size:9px;margin-top:9px}.estimate-section{display:block;padding:40px 0 65px}.estimate-heading h2{font-size:31px;line-height:1.55;margin:19px 0}.estimate-heading>p{font-size:13px}.quick-note{padding-left:17px;margin-top:25px}.quick-note strong{font-size:14px}.quick-note p{font-size:12px}.quick-note a{font-size:27px}.estimate-steps{padding-top:30px}.estimate-steps li{padding:20px 0;gap:20px}.estimate-steps h3{font-size:20px}.estimate-steps p{font-size:12px}.faq-section{display:block;padding:0 0 55px}.faq-section>div:first-child{position:relative;padding-bottom:30px}.faq-section h2{font-size:30px;margin:18px 0}.faq-section>div>img{position:absolute;right:0;bottom:15px;width:78px;margin:0}.faq-list summary{font-size:12px;line-height:1.8;padding:22px 27px 22px 25px}.faq-list summary::before{font-size:13px;line-height:1.7}.faq-list summary::after{font-size:23px;right:2px;top:15px}.faq-list details>p{font-size:12px;padding:0 20px 22px 25px}.recruit-bridge{margin-top:70px;padding-bottom:65px;overflow:visible}.bridge-photo{aspect-ratio:1/1.15;clip-path:polygon(0 17.47%,100% 0,100% 82.53%,0 100%)}.is-visible .bridge-photo{clip-path:polygon(0 17.47%,100% 0,100% 82.53%,0 100%)}.bridge-photo img{object-position:50% 55%}.bridge-copy{left:6%;top:35%}.bridge-copy h2{font-size:31px;margin:14px 0 23px}.bridge-copy .pill{min-width:225px;font-size:12px}.bridge-ranger{width:43%;right:0;bottom:auto;top:-48px;max-width:220px;z-index:3}.bridge-ranger .speech{font-size:10px;padding:13px 20px;left:-90px;top:20px}.bridge-marquee{font-size:58px;bottom:30px;letter-spacing:-.04em}.site-footer{padding:30px 0 75px}.footer-main{display:flex;flex-direction:column;gap:35px}.footer-company{width:100%}.footer-company>a>img{width:285px;margin-top:0}.footer-company p{font-size:11px;margin-top:24px}.footer-company p strong{font-size:13px}.footer-company .text-link{margin-top:17px}.footer-nav{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:17px;font-size:12px;padding-top:0}.contact-box{width:100%;padding:32px 28px 157px;border-radius:10px;margin-top:5px}.contact-box h2{font-size:27px;margin:17px 0}.contact-box>p{font-size:12px}.contact-tel{font-size:32px;margin:24px 0}.contact-box .pill{font-size:12px}.contact-rangers{height:190px;bottom:-47px}.contact-rangers img{width:160px;height:190px}.footer-bottom{flex-wrap:wrap;gap:17px;font-size:8px;margin-top:30px}.footer-bottom>a{margin-left:0;font-size:9px}.back-top{top:26px;right:3px;padding:15px 5px;font-size:8px;gap:15px}.service-dialog{width:92vw;max-height:88dvh;border-radius:10px}.service-dialog[open]{display:block}.dialog-visual{height:160px;padding:10px}.dialog-visual img{height:160px;width:150px;transform:rotate(-5deg)}.dialog-copy{padding:27px 26px 30px}.dialog-copy h2{font-size:29px;margin:15px 0}.dialog-copy>p,.dialog-copy ul{font-size:13px}.dialog-copy .dialog-note{font-size:10px}.dialog-close{right:12px;top:12px;width:48px;height:38px;font-size:27px}.dialog-copy .pill{font-size:12px}.dialog-phone{font-size:12px}}
@media(max-width:370px){.hero-title{font-size:7.8vw}.hero-caption{font-size:6px}.service-panel{padding-inline:25px}.service-panel .arrow-pill{right:20px;width:58px}.service-panel h2{font-size:29px}.service-panel>p:last-child{font-size:13px}.fact-front .fact-number{font-size:38px}.fact-front .fact-kanji{font-size:43px}.fact-front>strong>span{font-size:20px}.contact-tel{font-size:28px}.work-intro h2{font-size:30px}.news-card h3{font-size:11px}.news-card figure{width:63px}}

/* ================= motion (GSAP) ================= */
/* GSAPが起動したら .reveal の既定トランジションを外し、GSAPへ明け渡す。
   起動しなければ従来どおりCSSで動く。 */
html.gsap .reveal{opacity:1;transform:none;transition:none}
html.gsap .featured-work .work-photo::before{transition:none}
html.gsap .bridge-photo{transition:none}
html.gsap .photo-ranger{transition:none}
/* 色面の傾きをスクロールに連動させるための変数（既定＝現状の見た目） */
.red-stage{--slope:0px}
.about-data{--tilt:0px}
.fact-column{transform:translateY(calc(var(--col-base,0px) + var(--col-shift,0px)))}
.fact-column:first-child{--col-base:65px}
.concept-ghost{transform:translateX(var(--ghost-x,0px))}
.v3-char{display:inline-block;will-change:transform}

html.gsap .red-stage::before{clip-path:polygon(0 0,100% calc(190px + var(--slope,0px)),100% 100%,0 100%)}
html.gsap .about-data{clip-path:polygon(0 0,100% 0,100% calc(100% - 160px - var(--tilt,0px)),0 100%)}

html{overflow-x:clip}
