@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{--blue:#0955df;--ink:#142841;--muted:#516074;--line:#dce3ec;--pale:#f1f6fc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}button,select{font:inherit}a:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #f7b846;outline-offset:6px}header{height:100px;max-width:1500px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:26px;background:white}.brand{font-family:Arial,sans-serif;font-size:29px;font-weight:800;letter-spacing:-1.4px;display:flex;align-items:center}.brandmark{width:31px;height:35px;display:grid;place-items:center;background:var(--blue);color:white;font-size:28px;margin-right:10px;border-radius:3px}.brand-dot{color:var(--blue)}nav{display:flex;gap:30px;font-size:14px;font-weight:600}nav a:hover{color:var(--blue)}.header-cta{font-size:14px;background:var(--ink);color:white;padding:12px 22px;border-radius:5px}.hero{max-width:1500px;margin:auto;padding:48px 5% 62px;display:grid;grid-template-columns:47% 53%;align-items:center}.eyebrow{font-family:Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--blue);margin:0 0 24px}.hero h1{font-size:clamp(48px,5.7vw,84px);line-height:1.35;letter-spacing:.015em;font-weight:800;margin:0 0 25px}.hero h1 span{color:var(--blue)}.hero-lead{font-size:16px;line-height:2.1;margin-bottom:30px}.button{display:inline-block;padding:17px 28px;border-radius:5px;color:white;background:var(--blue);font-weight:600;font-size:14px;transition:background .2s}.button:hover{background:#073bab}.origin{display:flex;align-items:center;gap:12px;margin-top:39px;font-size:12px;letter-spacing:.05em}.origin-line{width:32px;height:2px;background:var(--blue)}.hero-art{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding-left:14px}.art-label,.art-bottom{display:flex;justify-content:space-between;gap:15px;font-size:11px;letter-spacing:1px}.art-label{margin:0 0 13px}.art-label span:first-child,.art-bottom span:last-child{font-family:Arial,sans-serif}.art-bottom{margin-top:14px;letter-spacing:0}.image-frame{min-height:480px;flex:1;max-height:600px;border-radius:130px 8px 8px 8px;overflow:hidden;background:#dfecff}.image-frame img{width:100%;height:100%;min-height:480px;object-fit:cover;display:block}.image-wait{height:100%;min-height:480px;display:flex;flex-direction:column;justify-content:center;padding:50px;color:var(--blue);font:800 64px/1 Arial,sans-serif;background:linear-gradient(130deg,#dfecff,#80b1f5)}.image-wait small{font:500 15px/2 'Noto Sans JP',sans-serif;margin-top:30px}.ribbon{background:var(--blue);color:white;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-weight:600;letter-spacing:2px}.ribbon i{height:5px;width:5px;background:#9fc5ff;border-radius:50%}.ribbon-en{font:12px Arial,sans-serif;letter-spacing:2px}.section{padding:105px max(5%,calc((100vw - 1350px)/2));scroll-margin-top:20px}.section-label{font:700 12px/1.8 Arial,sans-serif;letter-spacing:1.7px;color:var(--blue)}.section-label span{display:block;font:500 14px/1.9 'Noto Sans JP',sans-serif;letter-spacing:0;margin-top:9px}h2{font-size:clamp(27px,3vw,42px);font-weight:700;line-height:1.65;letter-spacing:.02em;margin:0 0 25px}p{color:var(--muted)}.about{display:grid;grid-template-columns:30% 70%}.about p{line-height:2.25;margin:25px 0}.about-emphasis{font-weight:600;color:var(--ink)}.work{background:var(--pale)}.section-top{display:grid;grid-template-columns:30% 70%;margin-bottom:44px}.section-top p{margin:0}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service{padding:28px 28px 22px;background:white;border:1px solid #e0e7f0;border-radius:7px}.service-top{display:flex;align-items:center;justify-content:space-between}.number{font:14px Arial,sans-serif;color:var(--blue)}.badge{font-size:12px;padding:3px 10px;background:#eaf1ff;color:#215dbf;border-radius:3px}.badge.light{background:#eef1f4;color:#526174}.service-symbol{font:600 38px Arial,sans-serif;height:75px;display:flex;align-items:center;gap:8px;color:var(--blue);margin:15px 0}.service-symbol span{font-size:18px;background:#e9f2ff;display:grid;place-items:center;width:32px;height:32px;border-radius:50%}.parking{font-size:47px}.road{font-size:64px}.service-kicker{font-size:12px;margin:15px 0 9px;color:#537091}.service h3{font-size:25px;line-height:1.6;margin:0 0 20px}.service>p:not(.service-kicker){font-size:14px;line-height:2}.service details{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:14px}.service summary{cursor:pointer;font-size:13px;color:var(--blue);font-weight:600;line-height:1.8}.service ul{padding-left:19px}.service details p{font-size:13px}.promise{display:grid;grid-template-columns:1fr 1fr;gap:70px}.promise-list>div{display:grid;grid-template-columns:40px 1fr;border-bottom:1px solid var(--line);padding:0 0 22px;margin-bottom:25px}.promise-list span{color:var(--blue);font:12px Arial,sans-serif;padding-top:8px}.promise-list h3{font-size:20px;margin:0}.promise-list p{grid-column:2;font-size:14px;margin:8px 0 0}.future{background:#104fcd;color:white;display:grid;grid-template-columns:30% 70%;position:relative;overflow:hidden}.future .section-label,.future .eyebrow{color:#b4d0ff}.future h2{font-size:clamp(40px,5vw,68px);line-height:1.5;margin-bottom:30px}.future p{color:#e1ebff}.ambition{margin-top:38px;padding-top:28px;border-top:1px solid #5c8ade}.ambition>span{display:block;font-size:13px}.ambition strong{display:block;font-size:30px;margin-top:10px}.ambition p{font-size:14px}.ideas{display:grid;grid-template-columns:1fr 1fr;gap:65px;background:#edf4ff}.ideas h2{font-size:32px}.ideas>div>p:last-child{font-size:14px}.idea-panel{background:white;padding:30px;border-radius:7px;border:1px solid #dce7f6}.idea-panel label{display:block;font-weight:500;font-size:14px;margin-bottom:12px}select{width:100%;padding:14px;border:1px solid #b6c8e4;background:white;border-radius:4px;color:var(--ink);font-size:16px}#idea-result{margin-top:22px}#idea-result>span{font-size:12px;color:var(--blue);font-weight:600}#idea-result h3{font-size:19px;margin:8px 0}#idea-result p{font-size:14px;margin:0}.company{display:grid;grid-template-columns:30% 70%}.company dl{margin:0}.company dl div{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line);padding:20px 0;font-size:14px}.company dt{color:var(--muted)}.company dd{margin:0}footer{padding:50px 5% 26px;border-top:1px solid var(--line)}footer>.brand{font-size:34px}footer>p{font-size:13px}footer>div{display:flex;justify-content:space-between;gap:20px;margin-top:35px;font-size:12px;color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}@media(min-width:1600px){.ribbon{padding-left:calc((100vw - 1350px)/2);padding-right:calc((100vw - 1350px)/2)}}@media(max-width:1000px){header{height:85px}nav{gap:16px}.header-cta{display:none}.hero{padding-top:30px}.hero h1{font-size:58px}.image-frame,.image-frame img{min-height:440px}.art-label span:first-child{display:none}.ribbon-en{display:none}.service{padding:20px}.service h3{font-size:22px}.promise{gap:30px}.ideas{gap:30px}.ideas h2{font-size:27px}}@media(max-width:700px){html{scroll-padding-top:20px}header{padding:0 6%;height:80px}.brand{font-size:25px}nav{gap:15px}nav a{font-size:12px}nav a:first-child{display:none}.hero{padding:26px 6% 38px;grid-template-columns:1fr;gap:38px}.hero h1{font-size:clamp(50px,12vw,72px)}.hero h1 br:nth-of-type(2){display:none}.hero .eyebrow{font-size:10px;letter-spacing:1.5px}.hero-lead{font-size:15px}.origin{margin-top:25px}.hero-art{padding:0}.image-frame{height:340px;min-height:0;border-radius:90px 5px 5px 5px;flex:auto}.image-frame img{min-height:0;height:340px}.image-wait{min-height:340px;font-size:55px}.art-bottom{font-size:10px}.ribbon{padding:22px 6%;gap:10px;letter-spacing:0;font-size:12px}.ribbon i:last-of-type{display:none}.section{padding:65px 6%}.about,.section-top,.future,.company,.promise,.ideas{grid-template-columns:1fr;gap:30px}.section-label{margin-bottom:6px}.section-label span{display:inline;margin-left:12px;font-size:12px}.about p{font-size:14px}.desktop{display:none}.services{grid-template-columns:1fr;gap:20px}.service{padding:25px}.service h3{font-size:26px}.service-symbol{height:52px;margin:12px 0}.service>p:not(.service-kicker){font-size:15px}.service summary{font-size:14px}.promise-list h3{font-size:19px}.future h2{font-size:48px}.future p{font-size:14px}.ambition strong{font-size:25px}.ideas h2{font-size:29px}.idea-panel{padding:24px}.company dl div{grid-template-columns:110px 1fr;gap:12px;font-size:13px}footer{padding:35px 6%}footer>div{flex-direction:column;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* FuttoWorks identity: supplied wordmark + original F, with C mascot poses. */
.brand{gap:5px;flex-shrink:0;line-height:1}
.logo-icon{position:relative;display:block;width:31px;height:36px;overflow:hidden;flex:none}
.logo-icon img{position:absolute;max-width:none;width:48px;height:37px;left:-9px;top:0}
.logo-wordmark{display:block;width:204px;height:45px;object-fit:contain}
.hero-copy{position:relative}
.mascot{width:140px;height:120px;position:relative;isolation:isolate;pointer-events:none;mix-blend-mode:multiply}
.mascot-sprite{position:absolute;inset:0;background-image:url('mascot-poses.png');background-repeat:no-repeat;background-size:576px 384px;transform-origin:50% 90%}
.mascot-wave .mascot-sprite{background-position:-216px -221px}
.mascot-walk .mascot-sprite{background-position:-47px -222px}
.mascot-rest .mascot-sprite{background-position:-404px -230px}
.hero-mascot{position:absolute;right:12px;bottom:0;transform:scale(.8);transform-origin:bottom right}
.promise .mascot{margin-bottom:24px}
.about .mascot{margin-left:auto;margin-top:-12px}
.mascot.is-visible.mascot-wave .mascot-sprite{animation:mascot-greet 2.8s ease-in-out 1}
.mascot.is-visible.mascot-walk .mascot-sprite{animation:mascot-step 1.8s ease-in-out 2}
.mascot.is-visible.mascot-rest .mascot-sprite{animation:mascot-breathe 3.8s ease-in-out 1}
@keyframes mascot-greet{0%,100%{transform:rotate(0)}15%,45%,75%{transform:rotate(-7deg) translateY(-3px)}30%,60%{transform:rotate(5deg)}}
@keyframes mascot-step{0%,100%{transform:translateX(0) rotate(-3deg)}25%{transform:translate(6px,-7px) rotate(3deg)}50%{transform:translate(12px,0) rotate(-3deg)}75%{transform:translate(6px,-7px) rotate(3deg)}}
@keyframes mascot-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025,.98) translateY(2px)}}
@media(max-width:1100px){.hero-mascot{right:0;bottom:70px;transform:scale(.62)}}
@media(max-width:700px){header{gap:12px}.logo-wordmark{width:170px;height:38px}.logo-icon{transform:scale(.85);transform-origin:left center;width:29px}.brand{gap:0}nav{gap:12px}.hero-mascot{bottom:0;right:0;transform:scale(.7)}.about .mascot{margin-top:12px}.promise .mascot{margin-bottom:18px}}
@media(max-width:390px){header nav a:last-child{display:none}.hero-mascot{bottom:55px;transform:scale(.55)}}
@media(prefers-reduced-motion:reduce){.mascot .mascot-sprite{animation:none!important}}
@media(max-width:700px){header nav{white-space:nowrap}.hero-copy{padding-bottom:90px}.hero-mascot{bottom:0;right:4px;transform:scale(.7)}.hero h1{font-size:clamp(38px,12vw,72px)}.hero h1 br:nth-of-type(2){display:initial}}
@media(max-width:390px){.logo-wordmark{width:150px;height:34px}.hero-mascot{bottom:0;transform:scale(.65)}}
