@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#151918;--paper:#f6f7f4;--yellow:#e5ff30;--line:#d6d9d3;--muted:#626a64}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #638900;outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}button{color:inherit}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--yellow);padding:15px}.skip:focus{top:10px}.header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 4%;background:var(--paper);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;line-height:1.1}.brand strong{font-family:'Barlow Condensed',sans-serif;font-size:34px;letter-spacing:.03em}.brand small{display:block;font-size:12px;font-weight:700;letter-spacing:.13em;margin-top:7px}.brand-icon{font-family:Arial,sans-serif;display:block;font-size:51px;letter-spacing:-.15em;font-weight:900;line-height:1;position:relative;padding-right:14px}.brand-icon span{font-size:42px;position:absolute;left:17px;top:6px;color:#829900}.header nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.header nav>a:not(.nav-contact){position:relative}.header nav>a:not(.nav-contact):after{content:'';position:absolute;bottom:-8px;left:0;width:0;height:2px;background:var(--ink);transition:width .25s}.header nav>a:hover:after{width:100%}.nav-contact{background:var(--ink);color:white;padding:17px 22px;display:flex;gap:20px}.nav-contact span{color:var(--yellow)}.menu-toggle{display:none}.hero{height:calc(100svh - 96px);min-height:620px;max-height:980px;position:relative;overflow:hidden;color:#fff;background:var(--ink)}.hero-image{width:78%;height:100%;object-fit:cover;position:absolute;right:0;object-position:50% 41%;filter:saturate(.45);animation:hero-in 1.4s ease-out}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101713 0%,#101713e0 23%,#10171355 62%,#10171315),linear-gradient(0deg,#101713b0,transparent 35%)}.hero-top{position:absolute;top:28px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.16em}.hero-copy{position:absolute;left:8%;top:19%;}.eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:17px;letter-spacing:.16em;display:flex;align-items:center;gap:16px}.mini-line{height:2px;width:35px;background:var(--yellow)}h1{font-size:clamp(54px,6.5vw,102px);font-weight:900;line-height:1.32;letter-spacing:.025em;margin:25px 0 20px}h1 em{font-style:normal;color:var(--yellow)}.hero-description{font-size:17px;line-height:2;letter-spacing:.13em}.round-link{display:inline-flex;align-items:center;gap:30px;font-size:14px;margin-top:30px}.round-link span{display:grid;place-items:center;width:43px;height:43px;border:1px solid #ffffff60;border-radius:50%;font-size:21px;transition:background .25s,transform .25s}.round-link:hover span{background:var(--yellow);color:var(--ink);transform:rotate(45deg)}.hero-bottom{position:absolute;left:4%;right:4%;bottom:27px;display:flex;justify-content:space-between;align-items:end;font-size:13px;letter-spacing:.1em}.hero-bottom small{font-family:'Barlow Condensed',sans-serif;letter-spacing:.13em;font-size:12px}.scroll-link{display:flex;align-items:center;gap:20px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.16em;font-size:14px}.scroll-link span{font-size:28px}.hero-index{font-family:'Barlow Condensed',sans-serif;font-size:15px}.hero-index i{font-style:normal;color:var(--yellow);margin:0 16px}.intro-bar{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 4%;border-bottom:1px solid var(--line);font-size:14px}.intro-bar>span{font-weight:700}.intro-bar div{display:flex;gap:18px}.intro-bar div>span{color:#9ba294}.section{padding:110px 8%}.section-label{display:flex;justify-content:space-between;gap:20px;font-size:14px;border-top:1px solid var(--line);padding-top:20px;margin-bottom:68px}.section-label>span:first-child{font-family:'Barlow Condensed',sans-serif;font-size:17px;letter-spacing:.1em}.about-main{display:grid;grid-template-columns:1fr 1fr;gap:9%}h2{font-size:clamp(32px,3.65vw,54px);line-height:1.65;letter-spacing:.035em;font-weight:800}.accent-underline{box-shadow:inset 0 -.22em var(--yellow)}.about-copy p{margin-bottom:24px;line-height:2.2}.text-link{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding:18px 0;max-width:285px;font-size:14px;font-weight:600}.text-link span{font-size:25px;transition:transform .2s}.text-link:hover span{transform:translate(4px,-4px)}.facts{margin-top:65px;display:grid;grid-template-columns:1fr 1fr 1fr 1.15fr}.facts>div{border-left:1px solid var(--line);padding-left:30px}.facts>div:first-child{padding-left:0;border:0}.facts small{display:block;font-size:13px;color:var(--muted)}.facts strong{font-family:'Barlow Condensed',sans-serif;font-size:68px;line-height:1.3;font-weight:500}.facts strong span{font-family:'Noto Sans JP',sans-serif;font-size:16px;margin-left:8px}.facts .fact-ja{font-family:inherit;font-size:40px;line-height:1.9}.fact-last>span{display:block;font-weight:700;font-size:19px;line-height:1.8}.fact-last small{font-family:'Barlow Condensed',sans-serif;letter-spacing:.1em;margin-top:9px}.footer{padding:65px 8% 30px;background:#101412;color:white;display:grid;grid-template-columns:1fr 1fr;gap:30px}.footer p{text-align:right}.footer>a:nth-of-type(2){font-family:'Barlow Condensed',sans-serif;font-size:14px;letter-spacing:.1em}.footer>small{font-family:'Barlow Condensed',sans-serif;font-size:12px;color:#acb3ad;text-align:right}@keyframes hero-in{from{transform:scale(1.05)}to{transform:scale(1)}}
@media(min-width:1600px){.section{padding-left:max(8%,calc((100vw - 1400px)/2));padding-right:max(8%,calc((100vw - 1400px)/2))}}@media(max-width:1100px){.header nav{gap:16px;font-size:12px}.nav-contact{padding:14px}.brand strong{font-size:28px}.brand-icon{font-size:44px}.hero{min-height:630px}.hero-copy{left:6%;top:20%}.section{padding:90px 6%}.about-main{gap:5%}.about-copy{font-size:15px}.facts strong{font-size:58px}}
@media(max-width:800px){html{scroll-padding-top:76px}.header{height:76px;padding:0 6%}.brand strong{font-size:29px}.brand small{font-size:11px}.brand-icon{font-size:44px}.menu-toggle{display:flex;flex-direction:column;gap:7px;background:none;border:0;width:44px;height:44px;align-items:center;justify-content:center}.menu-toggle span{display:block;width:25px;height:2px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.header nav{display:none;position:absolute;top:76px;left:0;width:100%;background:var(--paper);padding:22px 6% 30px;box-shadow:0 18px 20px #0002;font-size:16px}.header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.header nav>a{padding:17px 10px;border-bottom:1px solid var(--line)}.header nav>a.nav-contact{margin-top:18px;justify-content:space-between;padding:18px}.hero{height:calc(100svh - 76px);min-height:600px;max-height:820px}.hero-image{width:100%;object-position:62% center}.hero-shade{background:linear-gradient(90deg,#101713c9,#1017133b),linear-gradient(0deg,#101713ce,transparent 60%)}.hero-top{left:6%;right:6%;top:23px;font-size:10px;letter-spacing:.09em}.hero-top span:last-child{max-width:125px;text-align:right}.hero-copy{left:6%;right:5%;top:24%}h1{font-size:clamp(43px,9.5vw,74px);margin:20px 0 23px;letter-spacing:0;line-height:1.5}.eyebrow{font-size:14px;letter-spacing:.1em}.hero-description{font-size:14px;letter-spacing:.06em;line-height:2.1}.hero-bottom{left:6%;right:6%;bottom:23px}.hero-bottom>span:first-child{display:none}.hero-index{font-size:12px}.hero-index i{margin:0 5px}.round-link{margin-top:26px}.intro-bar{padding:22px 6%;display:block;font-size:12px}.intro-bar>span{font-size:14px}.intro-bar div{margin-top:8px;gap:7px;flex-wrap:wrap}.section{padding:72px 6%}.section-label{margin-bottom:40px;font-size:12px}.section-label>span:first-child{font-size:15px}.about-main{grid-template-columns:1fr;gap:32px}h2{font-size:34px;line-height:1.65}.about-copy{font-size:16px}.desktop{display:none}.facts{grid-template-columns:1fr 1fr;gap:25px 0;margin-top:40px}.facts>div{padding-left:24px}.facts>div:nth-child(3){padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:20px}.facts>div:nth-child(4){border-top:1px solid var(--line);padding-top:20px}.facts strong{font-size:58px}.facts .fact-ja{font-size:33px;line-height:2}.fact-last>span{font-size:16px}.footer{padding:50px 6% 25px;grid-template-columns:1fr;gap:25px}.footer p,.footer>small{text-align:left}.footer p{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.field{display:grid;grid-template-columns:1fr 1fr;min-height:640px;background:var(--ink);color:#fff}.field-photo{overflow:hidden;max-height:730px}.field-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;filter:saturate(.4)}.field-statement{padding:85px 15%;display:flex;flex-direction:column;justify-content:center;position:relative}.field-statement .eyebrow{color:var(--yellow);font-size:14px}.field-statement h2{margin:30px 0;font-size:clamp(38px,4.4vw,68px);line-height:1.5}.field-statement p{color:#c6cbd8;line-height:2.3;font-size:16px}.field-number{font-family:'Barlow Condensed',sans-serif;letter-spacing:.12em;font-size:13px;margin-top:65px;color:#a0aabb}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:55px}.section-heading p{font-size:15px;line-height:2.1;color:var(--muted)}.service{border-top:1px solid var(--line)}.service:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary:focus-visible{outline:3px solid #168dd0;outline-offset:4px}.service summary{display:grid;grid-template-columns:80px 1fr 50px;gap:15px;align-items:center;padding:28px 0}.service-number{font-family:'Barlow Condensed',sans-serif;font-size:24px;color:var(--muted)}.service summary small{font-family:'Barlow Condensed',sans-serif;letter-spacing:.08em;font-size:14px;color:var(--muted)}.service h3{font-size:28px;font-weight:700;line-height:1.6}.service-toggle{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;font-size:23px;transition:background .25s,transform .25s}.service[open] .service-toggle{background:var(--yellow);border-color:var(--yellow);transform:rotate(45deg)}.service-body{padding:0 70px 32px 95px;max-width:880px}.service-body p{line-height:2}.service-body>span{display:block;margin-top:18px;font-size:14px;color:var(--muted)}.works{background:#e9eef4}.works-photo{position:relative;margin:0 0 45px;height:420px;overflow:hidden}.works-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.65)}.works-photo figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:50px 25px 20px;color:#fff;font-size:12px;background:linear-gradient(transparent,#000a)}.works-photo figcaption span:first-child{font-family:'Barlow Condensed',sans-serif;font-size:16px;letter-spacing:.13em}.work-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:23px}.work-filters button{border:1px solid #bdc5d0;background:transparent;padding:10px 19px;font-size:14px}.work-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.work-filters button:hover{background:#d7dfea}.work-filters button[aria-pressed=true]:hover{background:#253952}.work-count{font-size:13px;color:var(--muted);padding:0 0 15px;text-align:right}.work-row{display:grid;grid-template-columns:75px 120px 1fr 170px;gap:25px;padding:26px 0;border-top:1px solid #cbd2de;align-items:start}.work-year{font-family:'Barlow Condensed',sans-serif;font-size:26px;line-height:1.3}.work-category{font-size:12px;border:1px solid #c0c9d6;padding:2px 8px;width:fit-content;margin-top:3px}.work-row h3{font-size:17px;font-weight:600;line-height:1.8}.work-period{font-size:12px;color:var(--muted);margin-top:5px}.work-client{font-size:13px;color:var(--muted);text-align:right;padding-top:4px}.work-client small{display:block;font-size:12px}.more-button{margin:30px auto 0;display:flex;align-items:center;justify-content:space-between;gap:50px;background:none;border:1px solid var(--ink);padding:16px 24px;font-size:14px;min-width:280px}.more-button:hover{background:var(--ink);color:white}.more-button[hidden]{display:none}.message{background:var(--ink);color:white}.message .section-label{border-color:#3a4758}.message-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}.message h2{font-size:clamp(32px,3.3vw,49px)}.message-text p{font-size:16px;line-height:2.3;color:#d6dce5;margin-bottom:24px}.signature{margin-top:65px;display:flex;flex-direction:column}.signature small{font-size:12px;color:#bdc6d3}.signature strong{font-size:28px;letter-spacing:.18em;font-weight:500;margin:10px 0}.signature>span{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:.13em;color:var(--yellow)}.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.company-lead{margin-top:25px;color:var(--muted);line-height:2.2}.company-table{margin:0}.company-table>div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid var(--line);font-size:14px}.company-table>div:first-child{border-top:1px solid var(--line)}.company-table dt{color:var(--muted)}.company-table dd{margin:0}.technical{margin-top:55px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.technical summary{padding:23px 0;font-size:16px;display:flex;justify-content:space-between;font-weight:600}.technical summary>span{font-size:20px}.technical-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:15px 0 20px}.technical-grid small{display:block;font-size:14px}.technical-grid strong{font-family:'Barlow Condensed',sans-serif;font-size:48px;font-weight:500}.technical-grid strong span{font-family:inherit;font-size:17px}.note{font-size:12px;color:var(--muted);margin-bottom:20px}.recruit{position:relative;min-height:660px;background:#10223c;color:white;overflow:hidden}.recruit>img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:40% 40%;filter:saturate(.3)}.recruit:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#091b33ed 0%,#091b33d9 32%,#091b331a 80%)}.recruit-content{position:relative;z-index:2;padding:75px 8%;max-width:800px}.recruit-content>.eyebrow{color:var(--yellow)}.recruit-content h2{font-size:54px;line-height:1.5;margin:20px 0}.recruit-content>p:not(.eyebrow){font-size:16px;line-height:2}.recruit-button{display:flex;gap:45px;justify-content:space-between;padding:18px 24px;background:var(--yellow);color:var(--ink);border:0;margin-top:27px;font-size:14px;font-weight:600}.recruit-button:hover{background:#fff}.recruit-content>small{display:block;font-size:12px;margin-top:16px;color:#cbd3df}.recruit-word{position:absolute;right:-10px;bottom:-50px;z-index:1;color:#ffffff1a;font-size:210px;font-family:'Barlow Condensed',sans-serif;font-weight:700;line-height:1.2;pointer-events:none}.news{display:grid;grid-template-columns:1fr 2.2fr;gap:8%}.news h2{font-size:34px;margin-top:10px}.news-title .eyebrow{font-size:16px}.news-items details{border-top:1px solid var(--line)}.news-items details:last-child{border-bottom:1px solid var(--line)}.news-items summary{display:grid;grid-template-columns:82px 68px 1fr 20px;gap:14px;align-items:start;padding:25px 0;font-size:14px}.news-items time{font-family:'Barlow Condensed',sans-serif;font-size:17px;color:var(--muted)}.tag{font-size:12px;border:1px solid var(--line);text-align:center;padding:2px}.news-items summary b{font-weight:400}.news-items details>p{padding:0 0 25px;font-size:14px;line-height:2.2}.inline-button{display:block;width:fit-content;background:none;border:0;border-bottom:1px solid currentColor;padding:10px 0;font-size:14px;margin-top:10px;cursor:pointer}.contact{background:#006ab3;color:#fff;padding-bottom:55px}.contact .section-label{border-color:#ffffff50}.contact-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact-english{font-family:'Barlow Condensed',sans-serif;font-size:clamp(72px,10vw,150px);font-weight:600;line-height:1;letter-spacing:-.01em}.contact h2{font-size:34px;margin:25px 0}.contact-inner>div>p:last-child{font-size:16px}.contact-circle{border:1px solid #ffffff80;border-radius:50%;width:190px;height:190px;flex-shrink:0;background:transparent;color:white;display:flex;align-items:center;justify-content:center;gap:25px;transition:background .25s,color .25s}.contact-circle span{font-size:18px;font-weight:600}.contact-circle b{font-size:44px;font-weight:400}.contact-circle:hover{background:#fff;color:#006ab3}.contact-note{font-size:12px;margin-top:45px}dialog{width:min(640px,calc(100% - 28px));max-height:90svh;border:0;padding:32px 40px;background:var(--paper);color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#071123e6;backdrop-filter:blur(7px)}.dialog-header{display:flex;justify-content:space-between;align-items:center}.dialog-close{border:0;background:none;font-size:32px;width:44px;height:44px;line-height:1}dialog h2{font-size:24px;line-height:1.6;margin:20px 0 15px}.dialog-intro{font-size:14px;color:var(--muted);margin-bottom:22px}form label{display:block;font-size:14px;margin-bottom:17px}form label>span{font-size:12px;color:#145d8e;margin-left:5px}form input,form select,form textarea{width:100%;display:block;padding:11px;margin-top:7px;border:1px solid #c6ccda;border-radius:0;background:#fff;font-size:16px;color:var(--ink)}form textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-note,.form-status,.email-fallback{font-size:12px;line-height:1.9}.submit-button{width:100%;background:var(--ink);color:white;border:0;display:flex;justify-content:space-between;padding:17px 22px;margin:20px 0 10px;font-size:15px}.submit-button span{color:var(--yellow)}.email-fallback{border-top:1px solid var(--line);padding-top:17px;margin-top:17px}.email-fallback a{text-decoration:underline;overflow-wrap:anywhere}
:root{--ink:#111e34;--paper:#fff;--yellow:#78d4ff;--line:#d5dce5;--muted:#596676}.header{background:#fff}.hero-shade{background:linear-gradient(90deg,#0a192d 0%,#0a192de3 23%,#0a192d66 62%,#0a192d15),linear-gradient(0deg,#0a192dbb,transparent 35%)}.logo-wrap{display:block;position:relative;width:290px;height:37px;overflow:hidden;background:#fff;flex-shrink:0}.logo-wrap img{position:absolute;width:108%;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}.footer{background:#091629}.footer .brand{width:fit-content;background:#fff;padding:14px 18px}.footer .logo-wrap{width:270px;height:33px}.header nav{gap:22px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-color:#199cdd}
@media(max-width:1150px){.header nav{gap:14px}.logo-wrap{width:240px;height:30px}.header nav{font-size:12px}}
@media(max-width:1000px){.work-row{grid-template-columns:65px 100px 1fr;gap:15px}.work-client{grid-column:3;text-align:left;padding-top:0}.work-client small{display:inline;margin-right:8px}.field-statement{padding:70px 10%}.news{grid-template-columns:1fr;gap:30px}.message-grid{gap:6%}.technical-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.field{grid-template-columns:1fr;min-height:0}.field-photo{height:430px}.field-photo img{object-position:50% 37%}.field-statement{padding:55px 6%}.field-statement h2{font-size:40px;margin:25px 0}.field-number{margin-top:35px}.section-heading{display:block;margin-bottom:35px}.section-heading>p{margin-top:25px;font-size:14px}.service summary{grid-template-columns:32px 1fr 36px;gap:10px;padding:23px 0}.service-number{font-size:19px}.service h3{font-size:clamp(18px,4.7vw,26px)}.service summary small{font-size:12px}.service-toggle{width:34px;height:34px;font-size:20px}.service-body{padding:0 0 27px 42px}.service-body p{font-size:16px}.service-body>span{font-size:14px}.works-photo{height:290px;margin-bottom:30px}.works-photo figcaption{padding:35px 15px 14px;font-size:12px}.works-photo figcaption span:first-child{font-size:13px}.work-filters{gap:6px}.work-filters button{font-size:14px;padding:8px 12px}.work-row{grid-template-columns:54px 1fr;gap:7px 15px;padding:20px 0}.work-category{grid-column:2;font-size:12px;margin:0}.work-row>div{grid-column:2}.work-row h3{font-size:16px}.work-year{grid-row:1 / 3;font-size:25px}.work-client{grid-column:2}.work-period{font-size:12px}.message-grid,.company-grid{grid-template-columns:1fr;gap:40px}.message h2{font-size:34px}.signature{margin-top:25px}.message-text p{font-size:16px}.company-table>div{grid-template-columns:80px 1fr;gap:12px;font-size:14px}.technical{margin-top:35px}.technical-grid{gap:20px 12px}.technical-grid small{font-size:14px}.recruit{min-height:650px}.recruit>img{object-position:54% 45%}.recruit:after{background:linear-gradient(90deg,#0a192dde,#0a192d55)}.recruit-content{padding:65px 6%}.recruit-content h2{font-size:43px}.recruit-word{font-size:115px;bottom:-22px}.news-items summary{grid-template-columns:78px 68px 1fr;gap:12px;padding:22px 0}.news-items summary>span:nth-of-type(2){grid-column:1 / 3;grid-row:2;font-size:14px}.news-items summary>b{grid-column:3;grid-row:1 / 3;justify-self:end;align-self:center}.news h2{font-size:30px}.contact .section-label{margin-bottom:35px}.contact-inner{align-items:flex-start;flex-direction:column;gap:28px}.contact-english{font-size:88px}.contact h2{font-size:28px}.contact-inner>div>p:last-child{font-size:16px}.contact-circle{width:100%;height:auto;border-radius:0;padding:15px 23px;justify-content:space-between}.contact-circle b{font-size:30px}.contact-circle span{font-size:15px}.contact-note{margin-top:22px}dialog{padding:22px}dialog h2{font-size:21px}.form-row{grid-template-columns:1fr;gap:0}.hero-shade{background:linear-gradient(90deg,#0a192dcc,#0a192d55),linear-gradient(0deg,#0a192dd0,transparent 60%)}.header nav{font-size:16px}.logo-wrap{width:235px;height:30px}.footer .logo-wrap{width:245px;height:31px}.footer .brand{padding:12px}.intro-bar div{font-size:14px}.section-label{font-size:14px}.hero-description{font-size:16px}}
.logo-wrap img{height:auto}

.technical-group{padding-top:20px}.technical-group h3{font-size:18px;font-weight:700;border-left:3px solid #0078bd;padding-left:12px}.technical-group .technical-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.technical-description{margin:8px 0 28px;max-width:850px;font-size:16px;line-height:2}.technical[open]>summary>span{transform:rotate(45deg)}@media(max-width:800px){.technical-group .technical-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.technical-group .technical-grid small{overflow-wrap:anywhere}}

.works-disclosure{font-size:14px;line-height:2;color:var(--muted);margin:0 0 28px;max-width:780px}.work-row{grid-template-columns:75px 120px 1fr}@media(max-width:1000px){.work-row{grid-template-columns:65px 100px 1fr}}@media(max-width:800px){.work-row{grid-template-columns:54px 1fr}}

/* Official LINE and motion — content remains readable without JavaScript. */
.line-label{display:inline-block;background:#06c755;color:white;padding:9px 17px;border-radius:7px;font-family:Arial,sans-serif;font-weight:800;letter-spacing:.05em;margin-top:22px}
.line-pending{padding:16px 20px;background:#eef3f8;font-size:14px;color:#536174;margin:24px 0 10px}
.contact-circle{background:#06c755;border-color:#06c755;color:#fff;text-align:left;line-height:1.6;transition:transform .35s,background .35s,box-shadow .35s}
.contact-circle:hover{background:#05ac49;color:#fff;box-shadow:0 18px 40px #00214740}
.header:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#158dcd;transform:scaleX(var(--scroll-progress,0));transform-origin:left;pointer-events:none}
.header{transition:box-shadow .3s,background .3s}
.header.is-scrolled{box-shadow:0 8px 28px #0b1c3312;background:#ffffffed;backdrop-filter:blur(15px)}
a.recruit-button{width:fit-content}
.recruit-button,.nav-contact,.more-button{transition:background .25s,color .25s,transform .3s,box-shadow .3s}
.work-row{transition:background .25s,box-shadow .25s}
.service summary{transition:color .25s}
.service summary:hover{color:#006ab3}
.hero-copy>.eyebrow{animation:headline-enter .8s cubic-bezier(.22,1,.36,1) both}
.hero-copy>h1{animation:headline-enter 1.1s .12s cubic-bezier(.22,1,.36,1) both}
.hero-description{animation:headline-enter 1s .28s cubic-bezier(.22,1,.36,1) both}
.hero-copy>.round-link{animation:headline-enter .9s .42s cubic-bezier(.22,1,.36,1) both}
.hero-image{animation:hero-cinema 1.7s cubic-bezier(.2,.6,.3,1) both}
.contact-english{letter-spacing:-.02em}
@keyframes headline-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-cinema{from{transform:scale(1.07);filter:saturate(.2) brightness(.8)}to{transform:scale(1);filter:saturate(.45) brightness(1)}}
@keyframes row-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.work-row{animation:row-enter .45s ease-out both}.work-row:nth-child(2){animation-delay:35ms}.work-row:nth-child(3){animation-delay:70ms}.work-row:nth-child(4){animation-delay:105ms}.work-row:nth-child(5){animation-delay:140ms}.work-row:nth-child(6){animation-delay:175ms}
@media(hover:hover) and (pointer:fine){.contact-circle:hover{transform:translateY(-5px)}.recruit-button:hover,.more-button:hover{transform:translateY(-3px);box-shadow:0 9px 24px #091b3318}.nav-contact:hover{background:#006ab3;transform:translateY(-2px)}.work-row:hover{background:#ffffff65;box-shadow:inset 3px 0 #168dd0}.field-photo img,.works-photo img{transition:transform .9s cubic-bezier(.22,1,.36,1)}.field-photo:hover img,.works-photo:hover img{transform:scale(1.035)}}
@supports(animation-timeline:view()){.field-photo img{animation:photo-travel linear both;animation-timeline:view();animation-range:entry 0% exit 100%}@keyframes photo-travel{from{transform:scale(1.09) translateY(-2%)}to{transform:scale(1.09) translateY(2%)}}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.field-photo img,.works-photo img{transform:none!important}}

/* High-resolution concept photography, without aggressive enlargement. */
.hero-image{width:100%;height:100%;object-position:65% center;filter:none;animation:hero-image-enter 1.3s ease-out both}
.hero-shade{background:linear-gradient(90deg,#08182fe8 0%,#08182fb3 30%,#08182f38 65%,#08182f12),linear-gradient(0deg,#08182fa0,transparent 30%)}
.field-photo{position:relative}.field-photo img{object-position:72% center;filter:none;animation:none;transform:none}
.recruit>img{object-position:65% center;filter:none}
.image-disclaimer{display:block!important;text-align:right;font-family:'Noto Sans JP',sans-serif!important;font-size:12px!important;letter-spacing:.03em!important;color:#d4dfed;margin-top:4px}
.photo-disclaimer{position:absolute;right:20px;bottom:18px;z-index:3;font-size:12px;line-height:1.6;color:white;background:#08182fb3;padding:3px 9px;pointer-events:none}
@keyframes hero-image-enter{from{opacity:.5}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.field-photo:hover img{transform:scale(1.015)}}
@media(max-width:800px){.hero-image{object-position:64% center}.hero-shade{background:linear-gradient(90deg,#08182fd4,#08182f52),linear-gradient(0deg,#08182fcc,transparent 60%)}.field-photo img{object-position:70% center}.recruit>img{object-position:69% center}.hero-index{max-width:150px}.image-disclaimer{font-size:12px!important}.photo-disclaimer{right:14px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.hero-image,.field-photo img{animation:none!important;transform:none!important}}

/* Mobile reading and touch layout */
@media(max-width:1024px){
 .header{height:76px;padding:0 5%;gap:12px}
 .menu-toggle{display:flex;flex:none;flex-direction:column;gap:7px;background:none;border:0;width:48px;height:48px;align-items:center;justify-content:center}
 .menu-toggle span{display:block;width:25px;height:2px;background:var(--ink);transition:transform .2s}
 .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
 .header nav{display:none;position:absolute;top:76px;left:0;width:100%;padding:14px 5% 22px;background:white;font-size:16px;max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 20px #0002}
 .header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .header nav>a{padding:16px 10px;border-bottom:1px solid var(--line);min-height:52px}
 .header nav>a.nav-contact{margin-top:14px;justify-content:space-between;padding:16px}
 html{scroll-padding-top:88px}
}
@media(max-width:800px){
 body{font-size:1rem;line-height:1.9}
 .header{height:68px;padding-inline:20px}
 .header .brand{min-width:0;flex:1}
 .header .logo-wrap{width:min(235px,100%);height:auto;aspect-ratio:235/30}
 .header nav{top:68px;max-height:calc(100dvh - 68px);padding-bottom:max(22px,env(safe-area-inset-bottom))}
 html{scroll-padding-top:82px}
 .section{padding:56px 20px}
 .section-label{gap:12px;margin-bottom:30px;flex-wrap:wrap;line-height:1.7}
 .section-label>span:first-child{font-size:1rem}
 .hero{display:flex;flex-direction:column;justify-content:space-between;height:auto;min-height:min(720px,calc(100svh - 68px));max-height:none;padding:24px 20px 22px;gap:36px}
 .hero-top,.hero-copy,.hero-bottom{position:relative;inset:auto}
 .hero-top{gap:16px;font-size:.75rem;letter-spacing:.03em;line-height:1.7}
 .hero-top>span{min-width:0;max-width:48%}
 .hero-copy{padding-top:24px;padding-bottom:24px}
 .hero-copy h1{font-size:clamp(2rem,8.8vw,3.5rem);line-height:1.5;letter-spacing:0;margin:18px 0 24px}
 .hero-copy>.eyebrow{font-size:.875rem;letter-spacing:.06em;gap:12px}
 .hero-description{font-size:1rem;line-height:1.95;letter-spacing:0}
 .hero-bottom{gap:12px;flex-wrap:wrap;align-items:end}
 .scroll-link{min-height:44px;gap:12px;font-size:.75rem;letter-spacing:.06em}
 .hero-index{margin-left:auto}
 .round-link{min-height:48px;gap:24px;margin-top:24px;font-size:.9375rem}
 .hero-image{object-position:68% center}
 h2,.message h2{font-size:clamp(1.75rem,7.7vw,2.25rem);line-height:1.65;letter-spacing:0}
 .about-copy br,.company-lead br,.section-heading>p br,.contact-inner>div>p:last-child br{display:none}
 .about-copy p,.message-text p{line-height:2;margin-bottom:20px}
 .section-heading>p{font-size:1rem;line-height:2}
 .intro-bar{padding:20px}
 .intro-bar div{gap:6px 10px;font-size:.875rem;line-height:2}
 .intro-bar a{padding-block:6px}
 .facts{margin-top:30px}
 .facts>div{min-width:0;padding-left:18px}
 .facts strong{font-size:3.25rem}
 .fact-last small{font-size:.75rem;letter-spacing:0}
 .field-photo{height:auto;aspect-ratio:4/3;max-height:480px}
 .field-statement{padding:40px 20px}
 .field-statement h2{font-size:2.125rem}
 .field-statement .eyebrow{font-size:.8125rem;letter-spacing:.06em}
 .service summary{grid-template-columns:26px minmax(0,1fr) 36px;gap:10px;min-height:90px}
 .service h3{font-size:clamp(1.125rem,4.7vw,1.5rem);overflow-wrap:anywhere}
 .service summary small{font-size:.75rem;letter-spacing:.03em;overflow-wrap:anywhere}
 .service-body{padding:0 0 24px}
 .service-body>span{line-height:2}
 .work-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .work-filters button{min-height:46px;padding:10px 8px;font-size:.875rem}
 .work-row{grid-template-columns:52px minmax(0,1fr);gap:8px 14px;padding:22px 0}
 .work-row h3{font-size:1rem;line-height:1.85;overflow-wrap:anywhere}
 .work-category{font-size:.75rem;max-width:100%}
 .more-button{width:100%;min-width:0;min-height:52px;gap:16px;padding:16px 18px}
 .company-table>div{grid-template-columns:74px minmax(0,1fr);gap:12px;font-size:.9375rem}
 .company-table dd{overflow-wrap:anywhere}
 .technical summary{gap:12px;font-size:1rem}
 .technical summary>span{flex:none}
 .technical-group .technical-grid{grid-template-columns:1fr;gap:0;padding:8px 0 16px}
 .technical-grid>div{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:14px 0}
 .technical-grid small{font-size:.9375rem;line-height:1.8;max-width:calc(100% - 75px)}
 .technical-grid strong{font-size:2.5rem;line-height:1.2;white-space:nowrap;flex:none}
 .technical-description{font-size:1rem;line-height:2}
 .recruit{min-height:0}
 .recruit-content{padding:48px 20px 76px}
 .recruit-content h2{font-size:clamp(2rem,9vw,2.75rem);line-height:1.5}
 .recruit-content>p:not(.eyebrow){font-size:1rem;line-height:2}
 .recruit-button,a.recruit-button{width:100%;min-height:54px;gap:12px;padding:16px;font-size:.9375rem}
 .recruit-word{font-size:clamp(80px,24vw,145px);bottom:-16px}
 .recruit:after{background:linear-gradient(90deg,#08182fee,#08182f85)}
 .news-items summary{grid-template-columns:82px minmax(0,1fr) 24px;gap:12px}
 .news-items .tag{width:fit-content;padding:2px 10px}
 .news-items summary>span:nth-of-type(2){grid-column:1/-1;grid-row:2;font-size:1rem;line-height:1.8}
 .news-items summary>b{grid-column:3;grid-row:1}
 .news-items details>p{font-size:1rem}
 .contact-english{font-size:clamp(3.5rem,18vw,5.5rem)}
 .contact h2{font-size:clamp(1.5rem,6.7vw,2rem)}
 .contact-inner{width:100%;gap:24px}
 .contact-inner>div{min-width:0}
 .contact-circle{min-height:58px;padding:14px 20px}
 .contact-circle span{font-size:1rem}
 .contact-circle span br{display:none}
 .contact-note{font-size:.875rem;line-height:1.9}
 .footer{padding:40px 20px max(24px,env(safe-area-inset-bottom))}
 .footer .brand{max-width:100%;padding:12px}
 .footer .logo-wrap{width:min(245px,calc(100vw - 64px));height:auto;aspect-ratio:245/31}
 .footer>small{font-size:.75rem;letter-spacing:0;overflow-wrap:anywhere}
 dialog{padding:20px;width:calc(100% - 32px);max-height:calc(100dvh - 32px)}
 dialog h2{font-size:1.375rem}
 .dialog-intro{font-size:1rem}
 .dialog-close{min-width:44px}
}

/* Craft, trust and a quieter editorial rhythm. */
:root{--ink:#112036;--paper:#f6f4ef;--yellow:#d6aa61;--line:#d8d7d0;--muted:#596474;--gold:#d6aa61}
h1,h2,.promises h3,.principles h3{font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif}
.header{background:#fff}.header nav{gap:22px}.header nav>a{white-space:nowrap}.nav-contact{background:#112036}
.hero{max-height:900px}.hero-image{width:64%;object-position:43% 40%}.hero-shade{background:linear-gradient(90deg,#0c1b30 0%,#0c1b30 25%,#0c1b30e0 40%,#0c1b3020 75%),linear-gradient(0deg,#0c1b30a6,transparent 35%)}
.hero-copy{top:18%;left:8%}.hero-copy h1{font-size:clamp(54px,6.4vw,94px);font-weight:700;line-height:1.5}.hero-copy h1 em{color:var(--gold)}
.hero-top{color:#ead0a6}.hero-description{letter-spacing:.05em}.round-link{border-bottom:1px solid #ffffff80;padding-bottom:13px}.hero-index{color:#e5d1af}
.intro-bar{background:#112036;color:white;border:0;padding:27px 8%}.intro-bar>span{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:20px}.intro-bar div{font-size:13px;color:#d8e0eb}
.section-label>span:first-child:after{content:'';display:inline-block;width:36px;height:2px;margin:0 18px 4px;background:var(--gold)}
.accent-underline{box-shadow:inset 0 -.15em #d6aa6155}.field{background:#112036}.field-photo img{object-position:40% center}.field-statement{padding:75px 12%}.field-statement .eyebrow{color:var(--gold)}
.works{background:#112036;color:#fff}.works .section-label{border-color:#ffffff30}.works .section-heading>p{color:#bdc8d7}
.works-pending{position:relative;overflow:hidden;padding:56px;border:1px solid #ffffff30;background:#182a43}.works-pending:before{content:'';position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--gold),#d6aa6130)}
.pending-meta{display:flex;align-items:center;gap:24px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.16em;color:#b7c4d5}.pending-badge{border:1px solid var(--gold);padding:7px 19px;color:var(--gold);font-family:'Noto Sans JP',sans-serif;font-size:15px;letter-spacing:.08em}
.works-pending h3{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:36px;margin:28px 0 14px}.works-pending p{position:relative;z-index:1;color:#d0d8e3;font-size:17px}.pending-grid{position:absolute;right:-30px;bottom:-60px;width:260px;height:240px;transform:skewY(-20deg);opacity:.15;background:repeating-linear-gradient(0deg,transparent 0 39px,#d6aa61 40px),repeating-linear-gradient(90deg,transparent 0 39px,#d6aa61 40px)}
.message{background:var(--paper);color:var(--ink)}.message .section-label{border-color:var(--line)}.message-text p{color:#455163}.signature small{color:var(--muted)}.signature>span{color:#86652e}
.philosophy{position:relative;overflow:hidden;background:#0c192d;color:#fff;padding-top:100px;padding-bottom:110px}.philosophy:before{content:'';position:absolute;top:0;right:0;width:45%;height:800px;pointer-events:none;background:radial-gradient(ellipse at top right,#29476270,transparent 70%)}
.philosophy .section-label{position:relative;border-color:#ffffff30;margin-bottom:70px}.philosophy-opening{position:relative}.philosophy-opening>.eyebrow{color:var(--gold);font-size:14px}.philosophy h2{font-size:clamp(40px,4.8vw,72px);line-height:1.6;letter-spacing:.025em;margin:30px 0 38px}.philosophy h2 span{color:var(--gold)}
.philosophy-copy{margin-left:24%;max-width:780px}.philosophy-copy p{font-size:18px;line-height:2.2;color:#d6deea;margin-bottom:26px}.philosophy-copy .philosophy-conclusion{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:26px;font-weight:700;color:#fff;margin-top:35px}
.promises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:80px;border-top:1px solid #ffffff35;border-bottom:1px solid #ffffff35}.promises article{padding:40px 28px;border-right:1px solid #ffffff25}.promises article:first-child{padding-left:0}.promises article:last-child{border:0;padding-right:0}.promises article>span{font-family:'Barlow Condensed',sans-serif;color:var(--gold);font-size:15px;letter-spacing:.14em}.promises h3{font-size:clamp(22px,2.4vw,35px);line-height:1.8;margin:22px 0 18px;letter-spacing:0}.promises p{font-size:14px;color:#bdc9d9}
.principles{display:grid;grid-template-columns:1fr 2fr;gap:10%;margin-top:70px}.principles .eyebrow{color:var(--gold);font-size:14px}.principles h3{font-size:32px;margin-top:15px}.principle-list article{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid #ffffff25}.principle-list article:first-child{padding-top:0}.principle-list article>span{font-family:'Barlow Condensed',sans-serif;color:var(--gold);padding-top:4px}.principle-list h4{font-size:23px;margin:0 0 10px;line-height:1.7}.principle-list p{font-size:16px;line-height:2;color:#c7d2e2}
.company-table>div{grid-template-columns:120px minmax(0,1fr)}.company h2{font-size:clamp(30px,3vw,44px)}.technical-group h3{border-color:var(--gold)}.technical-grid strong{color:#8a682f}
.recruit>img{object-position:65% 35%}.recruit:after{background:linear-gradient(90deg,#0c1b30ed,#0c1b30ac 50%,#0c1b3030)}.recruit-content{max-width:960px}.recruit-content h2{font-size:clamp(35px,4vw,56px)}.recruit-button{background:var(--gold);color:#112036;justify-content:center}.recruit-word{color:#ffffff10}.news-placeholder{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;color:var(--muted)}
.contact{background:#182d49}.contact-circle{border-radius:0;width:220px;height:90px;justify-content:center;text-align:center}.contact-circle br{display:none}.contact .section-label{border-color:#ffffff30}.contact h2{font-size:32px}.contact-english{color:#ffffffee}.footer{background:#0c192d}
@media(min-width:1025px) and (max-width:1250px){.header nav{gap:13px;font-size:12px}.header .logo-wrap{width:240px}}
@media(max-width:800px){
 .hero{min-height:720px;gap:24px}.hero-image{width:100%;object-position:43% center}.hero-shade{background:linear-gradient(90deg,#0c1b30bd,#0c1b3035),linear-gradient(0deg,#0c1b30 0%,#0c1b30a6 38%,#0c1b3040 100%)}
 .hero-copy{top:auto;left:auto;padding-top:75px}.hero-copy h1{font-size:clamp(34px,10vw,54px);line-height:1.55;margin:20px 0}.hero-top{font-size:11px}.hero-top span:last-child{max-width:125px}.hero-description{font-size:16px;letter-spacing:0}.hero-index{font-size:11px}.round-link{margin-top:22px}
 .intro-bar{padding:24px 20px}.intro-bar>span{font-size:18px}.intro-bar div{font-size:13px;gap:8px}.section-label>span:first-child:after{width:25px;margin:0 10px 4px}
 .about h2{font-size:clamp(27px,7.5vw,38px)}.field-statement{padding:42px 20px}.field-photo img{object-position:35% center}.field-statement h2{font-size:36px}
 .works-pending{padding:30px 24px}.pending-meta{gap:15px;letter-spacing:.1em;font-size:14px}.pending-badge{padding:5px 12px;font-size:14px}.works-pending h3{font-size:28px;margin:25px 0 16px}.works-pending p{font-size:16px;line-height:2}.pending-grid{opacity:.09}
 .philosophy{padding:64px 20px}.philosophy .section-label{margin-bottom:42px}.philosophy-opening>.eyebrow{font-size:12px;letter-spacing:.1em}.philosophy h2{font-size:clamp(29px,7.9vw,44px);line-height:1.7;letter-spacing:0;margin:24px 0 30px}.philosophy-copy{margin-left:0}.philosophy-copy p{font-size:17px;line-height:2.1}.philosophy-copy .philosophy-conclusion{font-size:clamp(22px,5.8vw,28px);line-height:1.9;margin-top:32px}
 .promises{grid-template-columns:1fr;margin-top:45px}.promises article,.promises article:first-child,.promises article:last-child{padding:30px 0;border-right:0;border-bottom:1px solid #ffffff25}.promises article:last-child{border-bottom:0}.promises h3{font-size:clamp(27px,7.5vw,36px);line-height:1.65;margin:15px 0}.promises p{font-size:16px}.promises article>span{font-size:14px}
 .principles{grid-template-columns:1fr;gap:30px;margin-top:45px}.principles h3{font-size:30px;margin-top:10px}.principle-list article{gap:16px;padding:25px 0}.principle-list h4{font-size:21px}.principle-list p{font-size:16px}.company h2{font-size:clamp(26px,7vw,35px)}.company-table>div{grid-template-columns:90px minmax(0,1fr);gap:12px}.company-table dt,.company-table dd{font-size:14px}.recruit-content h2{font-size:clamp(25px,6.7vw,38px);line-height:1.8}.recruit-content>p:not(.eyebrow) br{display:none}.recruit:after{background:linear-gradient(90deg,#0c1b30ee,#0c1b30a6)}.contact h2{font-size:clamp(24px,6.7vw,32px)}.contact-circle{width:100%;height:62px}.header nav{gap:0}
}
@media(min-width:801px){.hero{min-height:740px}.hero-copy{top:15%}}
