@font-face{font-family:Teachers;src:url('assets/Teachers-Variable.ttf') format('truetype');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:'Noto Sans JP';src:url('assets/NotoSansJP-Variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#00071f;--paper:#f3f1ec;--orange:#ff4b00;--font-en:Teachers,Arial,sans-serif;--font-ja:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif}
*{box-sizing:border-box}html,body{margin:0}html{scroll-behavior:auto}body{background:var(--ink);color:var(--ink);font-family:var(--font-ja);overflow-x:clip}p,h1,h2,h3{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:6px}button:disabled{cursor:default}.skip-link{position:absolute;left:20px;top:16px;z-index:100;transform:translateY(-150%);padding:12px 20px;background:white;color:var(--ink)}.skip-link:focus{transform:none}
.hero-scroll{position:relative;height:175svh;background:var(--paper)}
.hero-sticky{position:sticky;top:0;width:100%;height:100svh;overflow:hidden;isolation:isolate;background:var(--paper)}
.hero-visual{position:absolute;inset:0;overflow:hidden;background:var(--ink);}
.hero-art-stage,.hero-stage{position:absolute;inset:0 auto auto 0;width:1440px;height:900px;transform:scale(var(--art-scale,1));transform-origin:top left}
.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;}
.hero-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}

.hero-exit-wash{position:absolute;inset:0;pointer-events:none;opacity:var(--hero-exit-opacity,0);background:var(--paper)}
.hero-exit-wash::after{position:absolute;inset:0;content:"";background:url('assets/service-grain.png') left top/50px 50px repeat;opacity:.9}
.hero-stage{opacity:var(--hero-content-opacity,1);pointer-events:auto}
.hero-stage[inert]{pointer-events:none}
.hero-title{position:absolute;left:102px;top:30.6667%;width:1457px;font:700 118px/98.9px var(--font-en);color:#fff;transform:translateY(var(--hero-copy-y,0px))}
.hero-title span{display:block;white-space:nowrap}
.hero-copy{position:absolute;left:102px;top:70.1111%;width:768px;font:700 37px/54px var(--font-ja);color:#fff;transform:translateY(var(--hero-copy-y,0px))}
.site-header{position:absolute;inset:0 0 auto;height:96px;border-bottom:1px solid #9a9a9a;color:#fff;font:700 15px/normal var(--font-en)}
.site-logo{position:absolute;left:40px;top:34.364px;display:block;width:128px;height:23.262px}.site-logo img{display:block;max-width:none}
.header-divider{position:absolute;left:217px;top:30px;width:1px;height:36px;background:#9a9a9a}
.site-header nav>*{position:absolute;border:0;background:none;color:inherit;padding:0;white-space:nowrap;font:inherit}
.nav-about{left:241px;top:36px}.nav-service{left:326px;top:36px}.nav-company{left:442px;top:36px}.nav-downloads{left:1184px;top:39px}
.site-header .nav-contact{left:1290px;top:31px;width:110px;height:34px;border-radius:17px;display:grid;place-items:center;background:#fff;color:var(--ink);font-size:14px}
.hero-chat{position:absolute;left:1228px;bottom:25px;width:180px;height:150px}.hero-chat img{position:absolute;left:30px;top:0;object-fit:cover;display:block}.chat-bubble{position:absolute;left:0;top:88px;width:48px;height:40px;border:0;border-radius:8px;background:#fbfbfb;color:#6a6a6a;font:700 18px/1 var(--font-en)}

.elastic-section{position:relative;--edge-bow:0px;--edge-tilt:0deg;isolation:isolate}
.art-stage{position:relative;width:1440px;transform:scale(var(--art-scale,1));transform-origin:top left}
.edge-mascot{position:absolute;left:50%;top:100%;width:clamp(112px,11.4vw,164px);height:auto;transform:translate(-50%,calc(-89.2% + var(--edge-bow,0px))) rotate(var(--edge-tilt,0deg));transform-origin:50% 89.2%;pointer-events:none;z-index:4;user-select:none}
.floating-chat{position:fixed;right:32px;bottom:25px;width:180px;height:150px;z-index:20;pointer-events:none}.floating-chat img{position:absolute;left:30px;top:0;object-fit:cover;display:block;pointer-events:none}.floating-chat .chat-bubble{pointer-events:auto;box-shadow:0 2px 12px #00071f0a}
@media(max-width:767px){.floating-chat{right:14px;bottom:16px;width:130px;height:104px}.floating-chat img{left:26px;width:104px;height:104px}.floating-chat .chat-bubble{width:40px;height:36px;top:59px}}
.review-tools{padding:24px 32px;background:#fff;border-top:1px solid #ddd;font-size:14px;line-height:1.8;color:var(--ink)}.review-tools>p:first-child{font-weight:700}.review-tools span{font-weight:400;margin-left:10px}.review-tools div{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.review-tools a,.review-tools button{border:1px solid #a8aab1;background:none;border-radius:24px;padding:8px 16px;font-size:14px}.review-tools .review-note{font-size:13px;color:#606676;margin-top:12px}
#preview-notice{position:fixed;z-index:30;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(620px,calc(100% - 40px));padding:16px 22px;border-radius:10px;background:#fff;box-shadow:0 4px 35px #0002;font-size:14px;line-height:1.7}
@media(max-width:767px){
 .hero-scroll{height:160svh}.hero-art-stage{width:1440px;height:900px;left:50%;transform:translateX(-50%) scale(.7);transform-origin:50% 20%}
 .hero-stage{width:100%;height:100%!important;transform:none}.site-header{height:84px}.site-logo{left:20px;top:28px;transform:scale(.8);transform-origin:0 0}.header-divider,.nav-about,.nav-company,.nav-downloads{display:none}.nav-service{left:auto;right:114px;top:31px;font-size:13px!important}.site-header .nav-contact{left:auto;right:20px;top:26px;width:80px;height:28px;font-size:12px}
 .hero-title{left:24px;top:29%;width:calc(100% - 48px);font-size:clamp(38px,9.8vw,66px);line-height:.99;letter-spacing:-.01em}.hero-title span{white-space:normal}.hero-copy{left:24px;top:58%;width:calc(100% - 48px);font-size:clamp(20px,5.3vw,28px);line-height:1.6}.hero-chat{left:auto;right:16px;bottom:20px;width:160px;height:124px}.hero-chat img{left:28px;width:124px;height:124px}.hero-chat .chat-bubble{top:74px;width:40px;height:34px}.review-tools{padding:24px}.review-tools span{display:block;margin-left:0}
}
@media(prefers-reduced-motion:reduce){.hero-scroll{height:100svh}.hero-visual{clip-path:none}.hero-stage{opacity:1;pointer-events:auto}.hero-film,.hero-exit-wash{display:none}.hero-title,.hero-copy{transform:none}.hero-background{transform:none}}
html[data-motion-paused='true'] .hero-scroll{height:100svh}
html[data-motion-paused='true'] .hero-visual{clip-path:none}
html[data-motion-paused='true'] .hero-stage{opacity:1;pointer-events:auto}
html[data-motion-paused='true'] .hero-film,html[data-motion-paused='true'] .hero-exit-wash{display:none}

/* The approved background fills the sticky viewport with a consistent crop. */
.hero-scroll .hero-art-stage{inset:0;width:100%;height:100%;transform:none;transform-origin:center}

/* Scroll magnifies the approved soft background; no change of motif. */
.hero-scroll .hero-art-stage{transform:scale(var(--hero-zoom,1));filter:blur(var(--hero-blur,0px));will-change:transform,filter}
[data-reveal-state='waiting']{opacity:0}
@media(prefers-reduced-motion:reduce){.hero-scroll .hero-art-stage{transform:none;filter:none;will-change:auto}[data-reveal-state='waiting']{opacity:1}}
html[data-motion-paused='true'] .hero-art-stage{transform:none;filter:none;will-change:auto}
html[data-motion-paused='true'] [data-reveal-state='waiting']{opacity:1}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .service-detail span,.service-list-link span[aria-hidden]{display:inline-block;transition:transform 240ms cubic-bezier(.22,1,.36,1)}
 .service-detail:is(:hover,:focus-visible) span,.service-list-link:is(:hover,:focus-visible) span[aria-hidden]{transform:translateX(6px)}
 .floating-chat img{transition:transform 320ms cubic-bezier(.22,1,.36,1)}
 .floating-chat:has(.chat-bubble:is(:hover,:focus-visible)) img{transform:translateY(-4px)}
}
html[data-motion-paused='true'] :is(.service-detail span,.service-list-link span[aria-hidden],.floating-chat img,.about-link-arrow){transform:none;transition:none}
