:root{--navy:#0B2447;--navy2:#102e5c;--lime:#8BC34A;--soft:#F8FAFC;--text:#0B2447;--muted:#64748b;--line:#dbe3ed;--white:#fff;--shadow:0 8px 24px rgba(11,36,71,.08)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--soft);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.container{width:min(1280px,calc(100% - 40px));margin:auto}.narrow{width:min(1000px,100%)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:999;background:#fff;padding:8px 12px}.topbar{background:var(--navy);color:#dbe5f2;font-size:12px;border-bottom:1px solid #18375f}.topbar-inner{height:38px;display:flex;justify-content:space-between;align-items:center}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lime);margin-right:8px}.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid #eef2f7;box-shadow:0 2px 8px rgba(0,0,0,.03)}.header-main{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.footer-brand{display:flex;align-items:center;gap:12px}.brand-logo{width:44px;height:44px;object-fit:contain}.brand-text,.footer-brand{display:flex;flex-direction:column}.brand-text strong{font-size:25px;letter-spacing:-.04em}.brand-text small,.footer-brand small{font-family:"Plus Jakarta Sans",sans-serif;letter-spacing:.08em;color:#5d718d;font-size:11px}.desktop-nav{display:flex;gap:2px;align-items:center}.desktop-nav a{padding:11px 13px;border-radius:7px;font-size:14px;font-weight:600;color:#52627a;position:relative}.desktop-nav a:hover,.desktop-nav a.active{color:var(--navy);background:#f8fafc}.desktop-nav a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--lime)}.header-contact{background:var(--navy);color:#fff;padding:13px 20px;border-radius:6px;font-size:13px;font-weight:800;border-bottom:2px solid var(--lime)}.menu-toggle,.mobile-nav{display:none}.page-hero{background-color:var(--navy);background-image:radial-gradient(rgba(139,195,74,.18) 1px,transparent 1px);background-size:24px 24px;color:#fff;border-bottom:4px solid var(--lime);padding:70px 0 74px}.page-hero .container{max-width:1510px}.breadcrumbs{font-size:13px;display:flex;gap:10px;margin-bottom:22px;color:#d7e1ee}.breadcrumbs strong{color:var(--lime)}.eyebrow{font-family:"Plus Jakarta Sans",sans-serif;font-size:11px;font-weight:800;letter-spacing:.18em;color:#7890ae;text-transform:uppercase;display:flex;align-items:center;gap:9px}.eyebrow i{width:7px;height:7px;background:var(--lime);display:inline-block}.eyebrow.light{color:#d7e1ee}.page-hero h1{font-size:46px;line-height:1.15;margin:12px 0 18px;font-weight:900}.page-hero p{font-size:17px;max-width:840px;color:#dbe5f2;line-height:1.8}.section{padding:78px 0}.section.white{background:#fff}.section.soft{background:var(--soft)}.section.navy{background:var(--navy);color:#fff}.section-head{margin-bottom:44px}.section-head.center{text-align:center;max-width:850px;margin-left:auto;margin-right:auto}.section-head.center .eyebrow{justify-content:center}.section-head h2{font-size:36px;line-height:1.3;margin:10px 0 9px;font-weight:900;letter-spacing:-.03em}.section-head p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}.navy .section-head h2{color:#fff}.navy .section-head p{color:#cbd7e6}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}.image-feature{position:relative;overflow:hidden;border:1px solid var(--line);background:#0a1f3d;box-shadow:var(--shadow)}.image-feature img{width:100%;height:440px;object-fit:cover;opacity:.9}.image-feature:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(11,36,71,.9))}.image-feature>div{position:absolute;z-index:2;bottom:24px;left:26px;color:#fff}.image-feature small{display:block;color:var(--lime);font-weight:800;letter-spacing:.16em;margin-bottom:5px}.image-feature strong{font-size:20px}.lead{color:#556579;line-height:1.9;font-size:15px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:22px 0}.mini-grid article{background:var(--soft);border:1px solid var(--line);padding:20px}.mini-grid h3{font-size:14px;margin:0 0 8px}.mini-grid h3:before{content:"";width:7px;height:7px;background:var(--lime);display:inline-block;margin-right:8px}.mini-grid p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 25px;border-radius:4px;font-weight:800;font-size:13px;border:1px solid transparent;cursor:pointer;transition:.2s}.btn.lime{background:var(--lime);color:#fff}.btn.lime:hover{background:#79ad3d}.btn.navy{background:var(--navy);color:#fff}.btn.navy:hover{background:var(--navy2)}.btn.outline{border-color:#51657f;color:#fff}.btn.glass{border-color:rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.04)}.btn.pale{background:#fff;border-color:var(--line);color:var(--navy)}.btn.full{width:100%}.align-right{margin-left:auto}.home-hero{min-height:650px;position:relative;color:#fff;display:flex;align-items:center;overflow:hidden;background:var(--navy)}.hero-slides,.hero-slide,.hero-overlay{position:absolute;inset:0}.hero-slide{background-size:cover;background-position:center;opacity:0;transform:scale(1);transition:opacity 1.25s ease,transform 12s cubic-bezier(.16,1,.3,1)}.hero-slide.active{opacity:.42;transform:scale(1.04)}.hero-overlay{background:linear-gradient(90deg,rgba(11,36,71,1) 0%,rgba(11,36,71,.9) 50%,rgba(11,36,71,.7) 100%)}.hero-content{position:relative;z-index:2}.hero-copy{max-width:800px}.hero-copy h1{font-size:64px;line-height:1.25;margin:28px 0 24px;font-weight:900;letter-spacing:-.04em}.hero-copy p{font-size:18px;line-height:1.9;color:#d3deeb;max-width:720px}.hero-actions{display:flex;gap:15px;margin-top:30px}.slider-controls{display:flex;gap:12px;align-items:center;margin-top:22px}.slider-controls>button{width:36px;height:36px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;border-radius:4px;font-size:22px}.dots{display:flex;gap:7px}.dot{width:9px;height:6px;padding:0;border:0;border-radius:10px;background:rgba(255,255,255,.45)}.dot.active{width:38px;background:var(--lime)}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.service-card{background:#fff;border:1px solid var(--line);box-shadow:0 2px 5px rgba(11,36,71,.03);display:flex;flex-direction:column}.service-image{height:260px;position:relative;overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover}.service-image b{position:absolute;top:14px;left:14px;background:var(--navy);color:#fff;padding:8px 13px;border-left:2px solid var(--lime)}.service-body{padding:28px;display:flex;flex-direction:column;flex:1}.service-body h3{font-size:24px;margin:0 0 14px}.service-body small{color:#4b6484;margin-bottom:12px}.service-body p{color:#52627a;line-height:1.8;font-size:14px;flex:1}.service-body>a{border:1px solid var(--line);background:var(--soft);padding:14px 18px;font-weight:800;font-size:13px;display:flex;justify-content:space-between;margin-top:18px}.service-body>a span{color:var(--lime)}.case-link{background:#fff;border:1px solid var(--line);padding:28px 34px;margin-top:38px;display:flex;justify-content:space-between;align-items:center;gap:30px}.case-link h3{margin:9px 0 6px}.case-link p{font-size:14px;color:var(--muted);margin:0}.three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.dark-card{border:1px solid #1d3b62;background:rgba(7,25,52,.55);padding:34px}.dark-title,.card-title{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:17px;margin-bottom:20px}.dark-title h3{font-size:38px;color:#fff;margin:0}.dark-title span{color:var(--lime);font-weight:800}.dark-card strong{font-size:16px}.dark-card p{font-size:13px;line-height:1.9;color:#d3deeb}.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.strength-card{border:1px solid var(--line);background:var(--soft);padding:28px}.strength-card summary{cursor:pointer;list-style:none}.strength-card summary::-webkit-details-marker{display:none}.strength-card small{color:var(--lime);font-weight:800;letter-spacing:.12em}.strength-card h3{font-size:19px;line-height:1.5;margin:16px 0}.strength-card p{font-size:13px;line-height:1.8;color:var(--muted)}.section-row{display:flex;justify-content:space-between;align-items:flex-end}.section-row .section-head{margin-bottom:24px}.news-list{background:#fff;border:1px solid var(--line)}.news-row{padding:25px 30px;border-bottom:1px solid #edf1f6;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:20px}.news-row:last-child{border-bottom:0}.news-row>div{display:flex;gap:12px;align-items:center}.news-row time{font-family:"Plus Jakarta Sans";font-size:12px;color:#71839a}.news-row span{background:#f1f5f9;padding:4px 9px;font-size:11px;font-weight:800}.news-row h2,.news-row h3{font-size:16px;margin:0}.news-row button{border:0;background:transparent;color:var(--navy);font-weight:800;cursor:pointer}.recruit-banner{background:var(--navy);color:#fff;border:1px solid #0f315b;padding:46px 54px;display:flex;align-items:center;justify-content:space-between;gap:35px;box-shadow:var(--shadow)}.recruit-banner h2{font-size:30px;margin:12px 0}.recruit-banner p{color:#d2ddeb;max-width:800px}.common-cta{background:var(--navy);padding:72px 0}.cta-box{max-width:1120px;margin:auto;border:1px solid #1a3a63;background:#081c38;padding:68px 72px;text-align:center}.cta-box .eyebrow{justify-content:center}.cta-box h2{font-size:39px;color:#fff;line-height:1.45;margin:28px 0 18px}.cta-box p{color:#d8e1ec;line-height:1.8}.cta-actions{display:flex;justify-content:center;gap:15px;margin-top:32px}.intro-business{padding-bottom:40px}.service-stack{display:flex;flex-direction:column;gap:60px}.service-detail{display:grid;grid-template-columns:1fr 1.35fr;background:#fff;border:1px solid var(--line);min-height:520px}.service-detail.reverse{grid-template-columns:1.35fr 1fr}.service-detail.reverse .detail-image{order:2}.service-detail.reverse .detail-copy{order:1}.detail-image{position:relative;overflow:hidden}.detail-image img{width:100%;height:100%;min-height:520px;object-fit:cover}.detail-image b{position:absolute;top:18px;left:18px;background:var(--navy);color:#fff;border-left:2px solid var(--lime);padding:8px 16px;font-family:"Plus Jakarta Sans";font-size:12px}.detail-copy{padding:46px 54px;display:flex;flex-direction:column}.detail-copy h2{font-size:34px;margin:9px 0 4px}.detail-copy>small{color:#526884;padding-bottom:20px;border-bottom:1px solid var(--line)}.detail-copy>p{color:#52627a;font-size:14px;line-height:1.9;margin:24px 0}.detail-copy h3{font-size:14px;margin:10px 0}.detail-copy h3:before{content:"";width:7px;height:7px;background:var(--lime);display:inline-block;margin-right:10px}.detail-copy ul{margin:0 0 15px;padding-left:22px;color:#52627a;font-size:13px;line-height:2}.tags{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:28px}.tags span{border:1px solid var(--line);background:#f8fafc;padding:7px 11px;font-size:12px;border-radius:4px}.workflow{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.workflow article{background:var(--soft);border:1px solid var(--line);padding:28px 20px;min-height:195px}.workflow small{color:var(--lime);font-weight:900}.workflow h3{font-size:15px}.workflow p{font-size:12px;color:var(--muted);line-height:1.8}.ceo-card{background:var(--navy);color:#fff;border-left:4px solid var(--lime);padding:42px;box-shadow:var(--shadow)}.ceo-card h2{font-size:28px;line-height:1.55}.ceo-name{border-top:1px solid #203e63;padding-top:24px;margin-top:30px}.ceo-name small{display:block;color:#aebed1}.ceo-name strong{display:block;font-size:24px}.ceo-name em{font-size:12px;color:#aebed1;font-weight:400;margin-left:10px}.ceo-message p{font-size:14px;color:#52627a;line-height:1.9}.signature{display:block;margin-top:24px}.light-cards article,.candidate-cards article{background:#fff;border:1px solid var(--line);padding:34px}.card-title{border-color:var(--line)}.card-title h3{font-size:34px;margin:0}.card-title span{color:var(--lime);font-weight:900}.light-cards strong{font-size:14px}.light-cards p,.candidate-cards p{font-size:12px;color:var(--muted);line-height:1.85}.company-table,.job-table{border:1px solid var(--line);background:var(--soft)}.company-table>div,.job-table>div{display:grid;grid-template-columns:32% 68%;border-bottom:1px solid var(--line);padding:24px 30px}.company-table>div:last-child,.job-table>div:last-child{border-bottom:0}.company-table dt,.job-table dt{font-weight:800}.company-table dd,.job-table dd{margin:0;font-size:14px;line-height:1.8}.company-table ul,.job-table ul{margin:0;padding-left:20px}.history{background:#fff;border:1px solid var(--line);padding:30px 40px}.history article{display:grid;grid-template-columns:150px 1fr;gap:20px;border-left:2px solid var(--lime);padding:8px 0 8px 26px;margin-bottom:28px}.history article:last-child{margin-bottom:0}.history time,.history h3{font-weight:800;font-size:14px}.history h3{margin:0}.history p{font-size:12px;color:var(--muted);margin:5px 0}.works-tools{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);margin-bottom:40px}.works-tools .section-head{margin-bottom:18px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filters button{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:4px;font-size:12px;font-weight:800;color:#52627a;cursor:pointer}.filters button.active{background:var(--navy);color:#fff}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.work-card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}.work-card.hidden{display:none}.work-image{height:255px;position:relative;overflow:hidden;background:#081a32}.work-image img{width:100%;height:100%;object-fit:cover;opacity:.92}.work-image span{position:absolute;top:15px;left:15px;background:var(--navy);color:#fff;padding:7px 12px;border-left:2px solid var(--lime);font-size:11px;font-weight:800}.work-body{padding:26px;display:flex;flex-direction:column;flex:1}.work-body h2{font-size:20px;margin:0 0 14px}.work-body p{font-size:13px;color:var(--muted);line-height:1.8;flex:1}.work-body button{border:0;border-top:1px solid #edf2f6;background:none;padding:15px 0 0;text-align:left;font-weight:800;color:var(--navy);cursor:pointer;display:flex;justify-content:space-between}.work-body button span{color:var(--lime)}.update-note{background:#fff;border:1px solid var(--line);text-align:center;padding:34px;margin-top:32px}.update-note strong{font-size:18px}.update-note p{max-width:720px;margin:12px auto 20px;color:var(--muted);font-size:13px;line-height:1.8}.recruit-intro h2{font-size:40px;line-height:1.4}.recruit-intro p{font-size:14px;line-height:1.9;color:#52627a}.experience-box{background:var(--soft);border:1px solid var(--line);padding:22px 26px;margin:24px 0}.experience-box h3{font-size:14px}.experience-box ul{padding-left:22px;font-size:12px;color:var(--muted);line-height:2}.candidate-cards b{display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;background:var(--navy);color:var(--lime);border-radius:4px}.candidate-cards h3{font-size:17px;margin-top:18px}.job-table{margin-bottom:28px}.job-table small{color:var(--muted)}.partner-box{background:#fff;border:1px solid var(--line);padding:36px}.partner-box h2{font-size:30px}.partner-box>p{font-size:14px;color:#52627a;line-height:1.9}.partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}.partner-grid article{background:var(--soft);border:1px solid var(--line);padding:22px}.partner-grid h3{font-size:14px;margin-top:0}.partner-grid ul,.partner-grid p{font-size:12px;line-height:1.9;color:#52627a}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.office-card,.exterior-card{background:#fff;border:1px solid var(--line);padding:38px}.office-card h2{font-size:28px;margin:10px 0 3px}.office-card>small{color:#8ba0ba}.office-card hr{border:0;border-top:1px solid var(--line);margin:28px 0}.office-card dl>div{display:grid;grid-template-columns:120px 1fr;margin-bottom:24px}.office-card dt{font-weight:800}.office-card dd{margin:0;line-height:1.8}.exterior-card{padding:18px}.exterior-card img,.placeholder{width:100%;height:350px;object-fit:cover;background:#f3f6f9}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.placeholder b{width:60px;height:60px;border-radius:50%;background:var(--navy);color:var(--lime);display:flex;align-items:center;justify-content:center}.placeholder small{color:#94a3b8}.exterior-card>p{text-align:center;font-size:12px;color:#52627a}.map-head{margin:50px 0 16px}.map-head h2{font-size:28px;margin:8px 0}.map-wrap{border:1px solid var(--line);background:#fff}.map-wrap iframe{width:100%;height:440px;border:0}.visitor-note{background:#fff;border:1px solid var(--line);padding:16px;margin-top:16px;color:#52627a;font-size:13px}.form-container{max-width:1040px}.contact-card,.contact-success{background:#fff;border:1px solid var(--line);padding:48px;box-shadow:0 1px 5px rgba(11,36,71,.03)}.phone-notice{background:var(--soft);border:1px solid var(--line);padding:18px 22px}.phone-notice strong,.phone-notice a{display:block}.phone-notice a{font-size:18px;font-weight:900;margin:7px 0}.phone-notice p{font-size:12px;color:var(--muted);margin:0}.form-title{border-bottom:1px solid #edf2f6;padding:28px 0}.form-title h2{font-size:30px;margin:10px 0}.form-title p{font-size:12px;color:var(--muted)}#mori-contact-form{display:flex;flex-direction:column;gap:22px;padding-top:26px}#mori-contact-form>label,.form-two label{display:flex;flex-direction:column;gap:9px;font-weight:800;font-size:13px}#mori-contact-form b{color:#e11d48}#mori-contact-form small{color:#94a3b8;font-weight:400}input,select,textarea{width:100%;border:1px solid #cdd8e5;border-radius:4px;padding:15px 16px;background:#fff;color:var(--navy);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}textarea{min-height:150px;resize:vertical}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:25px}.privacy-box{background:var(--soft);border:1px solid var(--line);padding:20px}.privacy-box p{font-size:12px;color:var(--muted)}.check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important}.check input{width:auto}.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}.submit{width:200px}.form-error{background:#fff1f2;border:1px solid #fecdd3;color:#be123c;padding:14px;margin-top:20px}.contact-success{text-align:center}.contact-success b{display:inline-flex;width:56px;height:56px;border-radius:50%;background:var(--navy);color:var(--lime);align-items:center;justify-content:center;font-size:28px}.prose h2{margin-top:30px}.prose p{line-height:1.9;color:#52627a}.site-footer{background:var(--navy);color:#d6e0ec;border-top:4px solid var(--lime);padding:58px 0 26px}.footer-grid{display:grid;grid-template-columns:5fr 4fr 3fr;gap:50px;padding-bottom:44px;border-bottom:1px solid #203957}.footer-brand strong{font-size:22px;color:#fff}.footer-brand small{color:#98abc2}.footer-company p,.footer-contact p{font-size:12px;line-height:1.9}.footer-sitemap h3,.footer-contact h3{font-size:14px;color:#fff;border-left:2px solid var(--lime);padding-left:11px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:7px}.footer-links a{font-size:12px;padding:6px 0}.footer-links a:hover{color:var(--lime)}.footer-phone{display:block;font-size:12px;font-weight:800;margin:12px 0}.instagram{height:48px;border:1px solid #3a506d;background:#172e4d;display:flex;align-items:center;gap:10px;padding:0 14px}.instagram span{font-size:10px;color:#93a4ba;margin-left:auto}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:25px;font-size:11px;color:#9fb0c4}.footer-bottom>div{display:flex;align-items:center;gap:20px}.to-top{background:#17304f;border:1px solid #274462;color:#fff;padding:10px 13px;border-radius:4px}.modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(4,15,31,.7)}.modal-box{position:relative;background:#fff;width:min(700px,100%);max-height:80vh;overflow:auto;padding:40px;border-radius:5px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.modal-close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:30px;cursor:pointer}.modal-box time,.modal-box small{color:#758aa4}.modal-box h2{margin:12px 0 18px}.modal-box p{white-space:pre-line;line-height:1.9;color:#52627a}.center-text{text-align:center}
@media(max-width:1080px){.desktop-nav,.header-contact{display:none}.menu-toggle{display:flex;width:44px;height:44px;border:0;background:#f5f7fa;flex-direction:column;justify-content:center;gap:5px;padding:11px}.menu-toggle span{height:2px;background:var(--navy);width:100%}.mobile-nav{display:none;background:#fff;border-top:1px solid #edf1f5;padding:12px 20px 20px}.mobile-nav.open{display:block}.mobile-nav a{display:flex;justify-content:space-between;padding:13px 14px;border-bottom:1px solid #eef2f6;font-size:14px}.mobile-contact{margin-top:12px;background:var(--navy)!important;color:#fff;border-bottom:2px solid var(--lime)!important;justify-content:center!important}.workflow{grid-template-columns:repeat(3,1fr)}.three-grid,.strength-grid{gap:18px}.page-hero{padding:58px 0}.hero-copy h1{font-size:54px}.footer-grid{grid-template-columns:1fr 1fr}.footer-contact{grid-column:1/-1}.service-detail,.service-detail.reverse{grid-template-columns:1fr 1fr}.detail-copy{padding:34px}.detail-image img{min-height:480px}}
@media(max-width:767px){.container{width:min(100% - 32px,1280px)}.topbar{display:none}.header-main{height:72px}.brand-text strong{font-size:19px}.brand-text small{display:none}.brand-logo{width:38px;height:38px}.page-hero{padding:45px 0 48px}.page-hero h1{font-size:34px}.page-hero p{font-size:14px}.section{padding:52px 0}.section-head{margin-bottom:28px}.section-head h2{font-size:28px}.two-col{grid-template-columns:1fr;gap:30px}.image-feature img{height:300px}.mini-grid{grid-template-columns:1fr}.home-hero{min-height:590px}.hero-copy h1{font-size:40px}.hero-copy p{font-size:14px}.hero-actions,.cta-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.service-grid{grid-template-columns:1fr}.service-image{height:210px}.case-link{flex-direction:column;align-items:stretch;padding:24px}.case-link .btn{width:100%}.three-grid{grid-template-columns:1fr}.dark-card{padding:24px}.strength-grid{grid-template-columns:1fr}.strength-card{padding:20px}.news-row{grid-template-columns:1fr;gap:10px;padding:20px}.news-row button{text-align:left}.recruit-banner{padding:28px;flex-direction:column;align-items:stretch}.recruit-banner h2{font-size:24px}.cta-box{padding:42px 24px}.cta-box h2{font-size:28px}.service-detail,.service-detail.reverse{grid-template-columns:1fr}.service-detail.reverse .detail-image,.service-detail.reverse .detail-copy{order:initial}.detail-image img{min-height:280px;height:280px}.detail-copy{padding:28px 24px}.detail-copy h2{font-size:28px}.workflow{grid-template-columns:1fr}.workflow article{min-height:0}.ceo-card{padding:28px}.company-table>div,.job-table>div{grid-template-columns:1fr;padding:20px}.company-table dt,.job-table dt{margin-bottom:8px}.history{padding:24px}.history article{grid-template-columns:1fr;gap:4px}.works-tools{align-items:flex-start;flex-direction:column}.filters{margin-bottom:16px}.works-grid{grid-template-columns:1fr}.work-image{height:220px}.recruit-intro h2{font-size:30px}.candidate-cards article{padding:25px}.partner-box{padding:25px}.partner-grid{grid-template-columns:1fr}.access-grid{grid-template-columns:1fr}.office-card{padding:28px}.office-card dl>div{grid-template-columns:1fr;gap:5px}.exterior-card{padding:12px}.exterior-card img,.placeholder{height:280px}.map-wrap iframe{height:340px}.contact-card,.contact-success{padding:24px}.form-two{grid-template-columns:1fr}.submit{width:100%}.footer-grid{grid-template-columns:1fr;gap:28px;padding-bottom:28px}.footer-sitemap,.footer-contact{border-top:1px solid #1f3a5e;padding-top:18px}.site-footer{padding-top:34px}.footer-bottom{flex-direction:column-reverse;gap:14px}.footer-bottom>div{flex-direction:column;gap:12px}.modal-box{padding:30px 22px}.section-row{align-items:stretch;flex-direction:column}.section-row .btn{width:100%}}


/* v1.1.0 visual refinements */
.top-instagram{display:inline-flex;align-items:center;gap:7px;color:#dbe5f2;font-weight:700}.top-instagram:hover{color:#fff}.instagram-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.instagram-icon .ig-dot{fill:currentColor;stroke:none}.top-instagram .instagram-icon{color:var(--lime)}
.brand-logo{width:48px;height:48px;object-fit:contain;flex:0 0 48px}.brand{min-width:max-content}.brand-text strong{white-space:nowrap}
.services-work-link{display:flex;justify-content:center;margin-top:30px}.services-work-link .btn{min-width:360px}.strength-card{min-height:220px;display:flex;flex-direction:column;justify-content:flex-start}.strength-card h3{margin:16px 0 10px}.strength-card p{margin:0;color:var(--muted);line-height:1.9}
.footer-brand{display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px!important}.footer-logo-badge{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:0;padding:0;flex:0 0 52px}.footer-logo{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(255,255,255,.18))}.footer-brand-copy{display:flex;flex-direction:column}.footer-brand-copy strong{font-size:22px;color:#fff}.footer-brand-copy small{color:#98abc2;font-family:"Plus Jakarta Sans",sans-serif;letter-spacing:.08em;font-size:11px}.footer-address{margin-top:14px;color:#b8c7d9}.instagram{transition:border-color .2s,background .2s}.instagram:hover{border-color:var(--lime);background:#1b3558}.instagram .instagram-icon{width:24px;height:24px;color:var(--lime);flex:0 0 24px}.instagram strong{color:#fff}.mobile-instagram{align-items:center!important;justify-content:flex-start!important;gap:10px!important;color:var(--navy)!important;font-weight:800}.mobile-instagram .instagram-icon{color:var(--lime)}
@media(max-width:767px){.brand-logo{width:40px;height:40px;flex-basis:40px}.services-work-link{margin-top:22px}.services-work-link .btn{width:100%;min-width:0}.strength-card{min-height:0}.footer-logo-badge{width:46px;height:46px;flex-basis:46px;background:transparent;padding:0}.footer-logo{width:44px;height:44px}.footer-brand-copy strong{font-size:20px}}

/* v1.3 footer logo fix: transparent mark directly on navy, no white badge */
.footer-brand>.footer-logo,.footer-logo-badge,.footer-logo-badge .footer-logo{background:transparent!important;background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;}
.footer-brand>.footer-logo{width:50px!important;height:50px!important;object-fit:contain!important;flex:0 0 50px!important;}
.footer-logo-badge{width:50px!important;height:50px!important;display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 50px!important;}
.footer-logo{filter:none!important;}
@media(max-width:767px){.footer-brand>.footer-logo,.footer-logo-badge{width:44px!important;height:44px!important;flex-basis:44px!important}.footer-brand>.footer-logo{width:44px!important;height:44px!important}}


/* v1.4.1: restore transparent corporate mark and lime mail icon */
.brand-logo,.footer-logo{background:transparent!important;background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;filter:none!important;}
.footer-brand{background:transparent!important;}
.mail-icon{width:16px;height:16px;display:inline-block;vertical-align:-3px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.header-contact{display:inline-flex;align-items:center;gap:8px;}
.header-contact .mail-icon{color:var(--lime)!important;}
.mobile-contact{align-items:center!important;gap:8px!important;}
.mobile-contact .mail-icon{color:var(--lime)!important;}
.btn .mail-icon{margin-right:2px;}
.btn.navy .mail-icon{color:var(--lime)!important;}
.btn.lime .mail-icon{color:#fff!important;}
.footer-contact .btn.lime .mail-icon{color:#fff!important;}

/* v1.4.4 — refined motion system
   Subtle, corporate animations only. Motion is disabled when the visitor
   requests reduced motion. Mobile keeps the existing compact header layout. */

/* Smooth desktop header compacting */
.site-header,
.header-main,
.brand-logo,
.brand-text strong,
.brand-text small{
  transition:height .46s cubic-bezier(.22,1,.36,1),padding .46s cubic-bezier(.22,1,.36,1),width .46s cubic-bezier(.22,1,.36,1),font-size .46s cubic-bezier(.22,1,.36,1),box-shadow .46s cubic-bezier(.22,1,.36,1),background-color .46s cubic-bezier(.22,1,.36,1),transform .46s cubic-bezier(.22,1,.36,1),opacity .46s cubic-bezier(.22,1,.36,1);
}
@media(min-width:1081px){
  .site-header.is-scrolled{background:rgba(255,255,255,.985);box-shadow:0 8px 24px rgba(11,36,71,.09)}
  .site-header.is-scrolled .header-main{height:68px}
  .site-header.is-scrolled .brand-logo{width:42px;height:42px;flex-basis:42px}
  .site-header.is-scrolled .brand-text strong{font-size:22px}
  .site-header.is-scrolled .brand-text small{font-size:10px}
}

/* Scroll reveal */
.mori-reveal{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:opacity .92s cubic-bezier(.16,1,.3,1),transform .92s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--mori-reveal-delay,0ms);
  will-change:opacity,transform;
}
.mori-reveal.mori-reveal-left{transform:translate3d(-18px,0,0)}
.mori-reveal.mori-reveal-right{transform:translate3d(18px,0,0)}
.mori-reveal.is-visible{opacity:1;transform:translate3d(0,0,0);will-change:auto}

/* Hero entrance — calm, not flashy */
.home-hero .hero-copy>.eyebrow,
.home-hero .hero-copy>h1,
.home-hero .hero-copy>p,
.home-hero .hero-copy>.hero-actions,
.home-hero .hero-copy>.slider-controls{
  opacity:0;
  transform:translateY(14px);
  animation:moriHeroIn 1.05s cubic-bezier(.16,1,.3,1) forwards;
}
.home-hero .hero-copy>h1{animation-delay:.14s}
.home-hero .hero-copy>p{animation-delay:.28s}
.home-hero .hero-copy>.hero-actions{animation-delay:.42s}
.home-hero .hero-copy>.slider-controls{animation-delay:.54s}
@keyframes moriHeroIn{to{opacity:1;transform:translateY(0)}}

/* Card / image interaction */
.service-card,.work-card,.strength-card,.dark-card,.mini-grid article,.candidate-cards article,.partner-grid article,.case-link,.recruit-banner,.office-card,.exterior-card{
  transition:transform .46s cubic-bezier(.22,1,.36,1),box-shadow .46s ease,border-color .46s ease,background-color .46s ease;
}
.service-image img,.work-image img,.image-feature img,.detail-image img,.exterior-card img{
  transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .46s ease,filter .46s ease;
}
@media(hover:hover) and (pointer:fine){
  .service-card:hover,.work-card:hover,.strength-card:hover,.mini-grid article:hover,.candidate-cards article:hover,.partner-grid article:hover,.case-link:hover,.office-card:hover,.exterior-card:hover{
    transform:translateY(-5px);
    border-color:#c7d5e4;
    box-shadow:0 16px 36px rgba(11,36,71,.11);
  }
  .dark-card:hover,.recruit-banner:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 38px rgba(2,12,28,.22);
  }
  .service-card:hover .service-image img,.work-card:hover .work-image img,.image-feature:hover img,.detail-image:hover img,.exterior-card:hover img{
    transform:scale(1.028);
  }
  .service-card:hover .service-image img,.work-card:hover .work-image img{filter:saturate(1.05) contrast(1.02)}
}

/* Button / link micro motion */
.btn,.header-contact,.service-body>a,.work-body button,.instagram,.desktop-nav a{
  transition:transform .34s cubic-bezier(.22,1,.36,1),background-color .34s ease,color .34s ease,border-color .34s ease,box-shadow .34s ease;
}
.btn span,.service-body>a span,.work-body button span{
  display:inline-block;
  transition:transform .34s cubic-bezier(.22,1,.36,1);
}
@media(hover:hover) and (pointer:fine){
  .btn:hover,.header-contact:hover{transform:translateY(-2px)}
  .btn:hover span,.service-body>a:hover span,.work-body button:hover span{transform:translateX(4px)}
  .header-contact:hover{box-shadow:0 8px 20px rgba(11,36,71,.18)}
}

/* Lime accent wakes up once when a section enters */
.section-head.mori-reveal .eyebrow i,
.page-hero .eyebrow i{
  transform-origin:left center;
}
.section-head.mori-reveal.is-visible .eyebrow i{
  animation:moriAccent .82s cubic-bezier(.16,1,.3,1) both;
}
@keyframes moriAccent{
  0%{transform:scaleX(.25);opacity:.35}
  100%{transform:scaleX(1);opacity:1}
}

/* v1.4.6 — slower, smoother motion on both desktop and mobile.
   The phone reveal remains full-strength, but abrupt card press jumps are removed. */
@media(max-width:767px){
  .mori-reveal{
    transform:translate3d(0,18px,0);
    transition-duration:.96s;
  }
  .mori-reveal.mori-reveal-left{transform:translate3d(-18px,0,0)}
  .mori-reveal.mori-reveal-right{transform:translate3d(18px,0,0)}
}
@media(hover:none) and (pointer:coarse){
  .btn:active,.header-contact:active,.service-body>a:active,.work-body button:active,.instagram:active{
    transform:scale(.992);
    opacity:.94;
  }
}


/* v1.4.8 — slower, softer motion for the home "主な事業内容" cards.
   No scale effect: each card simply glides a few pixels while fading in. */
.mori-service-reveal{
  opacity:0;
  transform:translate3d(0,8px,0);
  transition:
    opacity 1.45s cubic-bezier(.22,.65,.28,1),
    transform 1.45s cubic-bezier(.22,.65,.28,1),
    box-shadow .58s ease,
    border-color .58s ease,
    background-color .58s ease;
  transition-delay:var(--mori-service-delay,0ms);
  will-change:opacity,transform;
}
.mori-service-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  will-change:auto;
}
@media(max-width:767px){
  .mori-service-reveal{
    transform:translate3d(0,8px,0);
    transition-duration:1.50s,1.50s,.58s,.58s,.58s;
    transition-delay:0ms;
  }
}

/* v1.4.9 — dedicated smoother motion for the 施工実績 page. */
.mori-works-head-reveal{
  opacity:0;
  transform:translate3d(0,7px,0);
  transition:opacity 1.25s cubic-bezier(.22,.65,.28,1),transform 1.25s cubic-bezier(.22,.65,.28,1);
  will-change:opacity,transform;
}
.mori-works-head-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  will-change:auto;
}
.mori-work-reveal{
  opacity:0;
  transform:translate3d(0,7px,0);
  transition:
    opacity 1.55s cubic-bezier(.22,.65,.28,1),
    transform 1.55s cubic-bezier(.22,.65,.28,1),
    box-shadow .62s ease,
    border-color .62s ease,
    background-color .62s ease;
  transition-delay:var(--mori-work-delay,0ms);
  will-change:opacity,transform;
}
.mori-work-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  will-change:auto;
}
@media(max-width:767px){
  .mori-works-head-reveal{transition-duration:1.30s,1.30s}
  .mori-work-reveal{
    transform:translate3d(0,7px,0);
    transition-duration:1.60s,1.60s,.62s,.62s,.62s;
    transition-delay:0ms;
  }
}

/* Accessibility: no motion when requested */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .mori-reveal,.mori-reveal.mori-reveal-left,.mori-reveal.mori-reveal-right,.mori-service-reveal,.mori-works-head-reveal,.mori-work-reveal{opacity:1!important;transform:none!important}
  .home-hero .hero-copy>.eyebrow,.home-hero .hero-copy>h1,.home-hero .hero-copy>p,.home-hero .hero-copy>.hero-actions,.home-hero .hero-copy>.slider-controls{opacity:1!important;transform:none!important}
}

/* v1.5.0 — LCP / first-view performance refinements */
.hero-media{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.hero-media-deferred{background:var(--navy)}
/* Keep the largest first-view heading visible immediately for faster LCP.
   Supporting copy/actions retain the entrance motion. */
.home-hero .hero-copy>h1{
  opacity:1;
  transform:none;
  animation:none;
}

/* v1.5.1 — stronger LCP improvement + calmer hero framing */
/* Do not zoom the first-view artwork. The previous 1.04 scale made the
   photograph feel too close and also kept a large compositor animation alive. */
.hero-slide,
.hero-slide.active{
  transform:none!important;
}
.hero-slide{
  transition:opacity 1.10s ease!important;
}
.hero-media{
  object-position:center center;
  transform:none!important;
}

/* Render the first-view copy with local/system fonts immediately. */
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
}
.eyebrow,.brand-text small,.footer-brand small,.news-row time{
  font-family:"Segoe UI",Arial,sans-serif;
}

/* Below-the-fold sections do not need full layout/paint work before the visitor
   reaches them. This cuts initial rendering cost on slower phones. */
.home-hero ~ .section,
.home-hero ~ .common-cta{
  content-visibility:auto;
  contain-intrinsic-size:1px 760px;
}

/* The hero remains full and cinematic, but the image itself is no longer
   artificially enlarged. Mobile keeps enough height for the copy/buttons. */
@media(max-width:767px){
  .home-hero{min-height:570px}
  .hero-media{object-position:center center}
}



/* v1.5.3 — restore the original full-bleed hero, fixed at 1.00x */
.hero-slide,
.hero-slide.active{
  transform:scale(1)!important;
}
.hero-media{
  width:100%;
  height:100%;
  object-fit:cover!important;
  object-position:center center!important;
  transform:scale(1)!important;
  opacity:1!important;
}
.hero-overlay{
  background:linear-gradient(90deg,rgba(11,36,71,1) 0%,rgba(11,36,71,.90) 50%,rgba(11,36,71,.70) 100%)!important;
}

/* v1.5.5 — selected motion package: ⑰ startup logo, ⑭ works filtering, ⑮ works image hover. */

/* ⑰ Top-page startup logo — first view only per browser session. */
.mori-site-boot{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#061d3b 0%,#0b315f 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .48s ease,visibility .48s ease;
}
.mori-boot-seen .mori-site-boot{display:none!important}
.mori-site-boot.is-exiting{opacity:0;visibility:hidden;pointer-events:none}
.mori-site-boot-inner{display:flex;align-items:center;gap:20px;color:#fff;position:relative;padding:24px}
.mori-site-boot-mark-wrap{position:relative;flex:none}
.mori-site-boot-mark{
  width:88px;height:88px;object-fit:contain;
  opacity:0;transform:scale(.78) rotate(-4deg);filter:blur(3px);
}
.mori-site-boot-copy{overflow:hidden}
.mori-site-boot-copy strong,
.mori-site-boot-copy small{display:block;opacity:0;transform:translateY(18px)}
.mori-site-boot-copy strong{font-size:30px;letter-spacing:-.035em}
.mori-site-boot-copy small{font-size:11px;letter-spacing:.17em;color:#cbd8e7;margin-top:5px}
.mori-site-boot-current{
  position:absolute;right:-6px;bottom:4px;width:8px;height:8px;border-radius:50%;
  background:var(--lime);box-shadow:0 0 20px 7px rgba(139,195,74,.32);opacity:0;
}
.mori-site-boot.is-running:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.055) 49%,transparent 62%);
  transform:translateX(-120%);animation:moriBootSheen 1.05s ease .34s both;
}
.mori-site-boot.is-running .mori-site-boot-mark{animation:moriBootMark .86s cubic-bezier(.16,1,.3,1) forwards}
.mori-site-boot.is-running .mori-site-boot-copy strong{animation:moriBootText .66s cubic-bezier(.16,1,.3,1) .34s forwards}
.mori-site-boot.is-running .mori-site-boot-copy small{animation:moriBootText .66s cubic-bezier(.16,1,.3,1) .48s forwards}
.mori-site-boot.is-running .mori-site-boot-current{animation:moriBootCurrent .62s ease .70s forwards}
@keyframes moriBootMark{to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}
@keyframes moriBootText{to{opacity:1;transform:translateY(0)}}
@keyframes moriBootCurrent{0%{opacity:0;transform:scale(.35)}60%{opacity:1;transform:scale(1.55)}100%{opacity:1;transform:scale(1)}}
@keyframes moriBootSheen{to{transform:translateX(120%)}}

/* ⑭ Works category filtering — fade outgoing cards, then smoothly reflow remaining cards. */
.filters button{transition:background-color .28s ease,color .28s ease,border-color .28s ease,transform .28s ease,box-shadow .28s ease}
.filters button:hover{transform:translateY(-1px);border-color:#b8c8da}
.filters button.active{box-shadow:0 8px 18px rgba(11,36,71,.12)}
.work-card{
  transition:opacity .38s ease,transform .64s cubic-bezier(.16,1,.3,1),box-shadow .62s ease,border-color .62s ease,background-color .62s ease;
}
.work-card.is-filtering-out{opacity:0!important;transform:translate3d(0,10px,0) scale(.975)!important;pointer-events:none}
.work-card.is-filtering-in{opacity:0!important;transform:translate3d(0,12px,0) scale(.98)!important}
.work-card.is-filtering-in.is-filtering-entered{opacity:1!important;transform:translate3d(0,0,0) scale(1)!important}

/* ⑮ Work image hover / tap information panel. */
.work-image{cursor:pointer;isolation:isolate}
.work-image:after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(6,26,52,0) 28%,rgba(6,26,52,.90) 100%);
  opacity:.22;transition:opacity .56s ease;pointer-events:none;
}
.work-category-badge{z-index:4!important;transition:opacity .36s ease,transform .46s cubic-bezier(.16,1,.3,1)}
.work-hover-panel{
  position:absolute;z-index:3;left:0;right:0;bottom:0;padding:26px 26px 23px;color:#fff;
  transform:translateY(calc(100% - 54px));
  transition:transform .66s cubic-bezier(.16,1,.3,1),opacity .42s ease;
  pointer-events:none;
}
.work-hover-panel small{display:block;color:#b9e77d;font-size:10px;font-weight:900;letter-spacing:.14em;margin-bottom:6px}
.work-hover-panel strong{display:block;font-size:20px;line-height:1.45;margin-bottom:7px}
.work-hover-panel p{margin:0 0 13px;color:#d7e2ef;font-size:12px;line-height:1.7;opacity:0;transition:opacity .35s ease .04s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.work-hover-panel .work-hover-open{
  pointer-events:auto;border:1px solid rgba(255,255,255,.34);background:rgba(8,30,58,.58);color:#fff;
  padding:9px 12px;border-radius:3px;font-size:11px;font-weight:800;opacity:0;transform:translateY(6px);
  transition:opacity .35s ease .08s,transform .46s cubic-bezier(.16,1,.3,1),background-color .28s ease;
}
.work-hover-panel .work-hover-open:hover{background:rgba(139,195,74,.92);color:#0b2447}
.work-hover-panel .work-hover-open b{color:var(--lime);margin-left:8px}
.work-image:hover:after,.work-image:focus-within:after,.work-image.is-open:after{opacity:.92}
.work-image:hover .work-hover-panel,.work-image:focus-within .work-hover-panel,.work-image.is-open .work-hover-panel{transform:translateY(0)}
.work-image:hover .work-hover-panel p,.work-image:focus-within .work-hover-panel p,.work-image.is-open .work-hover-panel p{opacity:1}
.work-image:hover .work-hover-open,.work-image:focus-within .work-hover-open,.work-image.is-open .work-hover-open{opacity:1;transform:translateY(0)}
.work-image:hover .work-category-badge,.work-image:focus-within .work-category-badge,.work-image.is-open .work-category-badge{opacity:0;transform:translateY(-5px)}
.work-image:hover>img,.work-image:focus-within>img,.work-image.is-open>img{transform:scale(1.045);filter:saturate(.9) contrast(1.02)}

@media(max-width:767px){
  .mori-site-boot-inner{gap:13px;padding:18px}
  .mori-site-boot-mark{width:58px;height:58px}
  .mori-site-boot-copy strong{font-size:20px}
  .mori-site-boot-copy small{font-size:8px;letter-spacing:.12em}
  .work-hover-panel{padding:20px 18px 18px;transform:translateY(calc(100% - 48px))}
  .work-hover-panel strong{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
  .mori-site-boot{display:none!important}
  .work-card.is-filtering-out,.work-card.is-filtering-in,.work-card.is-filtering-in.is-filtering-entered{opacity:1!important;transform:none!important}
}

/* v1.5.6 — quieter interaction language + slower, redesigned startup logo. */

/* Static information cards must not look clickable. Only real controls/links and
   the interactive works image keep hover/tap feedback. */
@media(hover:hover) and (pointer:fine){
  .service-card:hover,
  .work-card:hover,
  .strength-card:hover,
  .mini-grid article:hover,
  .candidate-cards article:hover,
  .partner-grid article:hover,
  .case-link:hover,
  .office-card:hover,
  .exterior-card:hover,
  .dark-card:hover,
  .recruit-banner:hover{
    transform:none!important;
    border-color:var(--line)!important;
    box-shadow:none!important;
  }
  .service-card:hover{box-shadow:0 2px 5px rgba(11,36,71,.03)!important}
  .image-feature:hover img,
  .detail-image:hover img,
  .exterior-card:hover img{
    transform:none!important;
    filter:none!important;
  }
  /* Linked service cards may still give a small image cue; the frame itself stays still. */
  .service-card:hover .service-image img{transform:scale(1.018)!important}
  /* Works cards communicate through the actual image panel, not by lifting the frame. */
  .work-card:hover .work-image img{transform:none!important}
  .work-image:hover>img,.work-image:focus-within>img,.work-image.is-open>img{
    transform:scale(1.028)!important;
  }
}

/* ⑰ redesigned startup: current line -> logo wipe -> quiet typography -> slow fade. */
.mori-site-boot{
  background:#071d3a;
  transition:opacity .82s cubic-bezier(.22,.61,.36,1),visibility .82s ease;
}
.mori-site-boot-inner{
  width:min(520px,calc(100vw - 48px));
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  color:#fff;
  position:relative;
  padding:30px 28px;
  text-align:center;
}
.mori-site-boot-mark-wrap{position:relative;flex:none}
.mori-site-boot-mark-mask{
  display:block;
  overflow:hidden;
  clip-path:inset(0 100% 0 0);
}
.mori-site-boot-mark{
  width:96px;
  height:96px;
  object-fit:contain;
  opacity:1;
  transform:none;
  filter:none;
}
.mori-site-boot-line{
  display:block;
  width:min(330px,70vw);
  height:1px;
  margin:24px 0 20px;
  background:linear-gradient(90deg,transparent 0%,var(--lime) 18%,#d7f2aa 50%,var(--lime) 82%,transparent 100%);
  transform:scaleX(0);
  transform-origin:center;
  opacity:.9;
  box-shadow:0 0 14px rgba(139,195,74,.24);
}
.mori-site-boot-copy{overflow:visible}
.mori-site-boot-copy strong,
.mori-site-boot-copy small{
  display:block;
  opacity:0;
  transform:translateY(8px);
}
.mori-site-boot-copy strong{
  font-size:30px;
  letter-spacing:.075em;
  font-weight:800;
}
.mori-site-boot-copy small{
  font-size:10px;
  letter-spacing:.25em;
  color:#b9c9db;
  margin-top:8px;
}
.mori-site-boot.is-running:after{display:none!important}
.mori-site-boot-current{display:none!important}
.mori-site-boot.is-running .mori-site-boot-line{
  animation:moriBootLine156 1.00s cubic-bezier(.16,1,.3,1) .18s both;
}
.mori-site-boot.is-running .mori-site-boot-mark-mask{
  animation:moriBootWipe156 1.35s cubic-bezier(.16,1,.3,1) .58s both;
}
.mori-site-boot.is-running .mori-site-boot-mark{
  animation:none!important;
}
.mori-site-boot.is-running .mori-site-boot-copy strong{
  animation:moriBootType156 1.05s cubic-bezier(.16,1,.3,1) 1.48s both;
}
.mori-site-boot.is-running .mori-site-boot-copy small{
  animation:moriBootType156 .95s cubic-bezier(.16,1,.3,1) 1.82s both;
}
@keyframes moriBootLine156{
  0%{transform:scaleX(0);opacity:0}
  35%{opacity:1}
  100%{transform:scaleX(1);opacity:.9}
}
@keyframes moriBootWipe156{
  from{clip-path:inset(0 100% 0 0)}
  to{clip-path:inset(0 0 0 0)}
}
@keyframes moriBootType156{
  from{opacity:0;transform:translateY(8px);letter-spacing:.14em}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:767px){
  .mori-site-boot-inner{width:min(390px,calc(100vw - 34px));padding:24px 18px}
  .mori-site-boot-mark{width:78px;height:78px}
  .mori-site-boot-line{width:min(270px,72vw);margin:20px 0 17px}
  .mori-site-boot-copy strong{font-size:22px;letter-spacing:.055em}
  .mori-site-boot-copy small{font-size:8px;letter-spacing:.18em}
}



/* v1.5.7 — cache-visible refinements: deliberate philosophy interaction +
   redesigned, slower "power-on" startup sequence. */

/* TOP / 経営理念: no fake click/lift. The card stays fixed while a restrained
   electrical trace and typography response make the hover feel intentional. */
@media(hover:hover) and (pointer:fine){
  .philosophy .dark-card{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    transform:none!important;
    box-shadow:none!important;
    border-color:#1d3b62!important;
    background:rgba(7,25,52,.55);
    transition:background-color .65s ease,border-color .65s ease!important;
  }
  .philosophy .dark-card::before,
  .philosophy .dark-card::after{
    content:"";
    position:absolute;
    z-index:3;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(139,195,74,0),rgba(139,195,74,.95),#d8f5ad);
    box-shadow:0 0 11px rgba(139,195,74,.24);
  }
  .philosophy .dark-card::before{
    top:-1px;
    left:0;
    width:0;
    height:2px;
    transition:width .72s cubic-bezier(.16,1,.3,1);
  }
  .philosophy .dark-card::after{
    top:0;
    right:-1px;
    width:2px;
    height:0;
    background:linear-gradient(180deg,#d8f5ad,rgba(139,195,74,.88),rgba(139,195,74,0));
    transition:height .48s cubic-bezier(.16,1,.3,1) 0s;
  }
  .philosophy .dark-card:hover{
    transform:none!important;
    box-shadow:none!important;
    border-color:#28486f!important;
    background:rgba(9,31,61,.78)!important;
  }
  .philosophy .dark-card:hover::before{width:100%}
  .philosophy .dark-card:hover::after{
    height:100%;
    transition-delay:.28s;
  }
  .philosophy .dark-title h3{
    transition:color .55s ease,text-shadow .55s ease,letter-spacing .55s cubic-bezier(.16,1,.3,1);
  }
  .philosophy .dark-title span{
    position:relative;
    transition:color .45s ease,transform .55s cubic-bezier(.16,1,.3,1);
  }
  .philosophy .dark-title span::before{
    content:"";
    position:absolute;
    width:5px;height:5px;border-radius:50%;
    background:var(--lime);
    left:-13px;top:50%;
    transform:translateY(-50%) scale(.2);
    opacity:0;
    box-shadow:0 0 0 0 rgba(139,195,74,.34);
    transition:opacity .3s ease,transform .45s cubic-bezier(.16,1,.3,1),box-shadow .55s ease;
  }
  .philosophy .dark-card:hover .dark-title h3{
    color:#f5faef;
    text-shadow:0 0 18px rgba(139,195,74,.13);
    letter-spacing:.015em;
  }
  .philosophy .dark-card:hover .dark-title span{
    color:#b8e978;
    transform:translateX(-2px);
  }
  .philosophy .dark-card:hover .dark-title span::before{
    opacity:1;
    transform:translateY(-50%) scale(1);
    box-shadow:0 0 12px 4px rgba(139,195,74,.18);
  }
}

/* ⑰ POWER-ON logo intro.
   1) a tiny current point wakes up, 2) a ring opens around the mark,
   3) the logo reveals from the centre, 4) the bus-line energises,
   5) typography settles in, then the screen fades away. */
.mori-site-boot{
  background:
    linear-gradient(rgba(139,195,74,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(139,195,74,.025) 1px,transparent 1px),
    radial-gradient(circle at 50% 45%,#0c315d 0%,#071d3a 43%,#05162e 100%);
  background-size:38px 38px,38px 38px,auto;
  transition:opacity 1.00s cubic-bezier(.22,.61,.36,1),visibility 1.00s ease!important;
}
.mori-site-boot-inner{
  width:min(560px,calc(100vw - 48px));
  min-height:360px;
  justify-content:center;
  padding:34px 28px!important;
}
.mori-site-boot-mark-wrap{
  width:116px;
  height:116px;
  display:grid;
  place-items:center;
  position:relative!important;
}
.mori-site-boot-mark-wrap::before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:7px;height:7px;
  border-radius:50%;
  background:#b9ea7d;
  opacity:0;
  transform:translate(-50%,-50%) scale(.25);
  box-shadow:0 0 0 0 rgba(139,195,74,.0);
  z-index:5;
}
.mori-site-boot-mark-wrap::after{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid rgba(139,195,74,.0);
  border-radius:50%;
  opacity:0;
  transform:scale(.72);
  z-index:0;
}
.mori-site-boot-mark-mask{
  position:relative;
  z-index:2;
  clip-path:inset(0 50% 0 50%)!important;
  opacity:0;
  overflow:visible!important;
}
.mori-site-boot-mark{
  width:96px!important;
  height:96px!important;
  opacity:1!important;
  transform:none!important;
  filter:none!important;
}
.mori-site-boot-line{
  width:min(350px,72vw)!important;
  height:1px!important;
  margin:27px 0 22px!important;
  transform:scaleX(0)!important;
  transform-origin:center!important;
  opacity:0!important;
  background:linear-gradient(90deg,transparent 0%,rgba(139,195,74,.35) 15%,#c6ef91 50%,rgba(139,195,74,.35) 85%,transparent 100%)!important;
  box-shadow:0 0 12px rgba(139,195,74,.18)!important;
}
.mori-site-boot-copy strong,
.mori-site-boot-copy small{
  opacity:0!important;
  transform:translateY(10px)!important;
}
.mori-site-boot-copy strong{
  font-size:31px!important;
  letter-spacing:.18em!important;
}
.mori-site-boot-copy small{
  font-size:10px!important;
  letter-spacing:.32em!important;
  margin-top:9px!important;
  color:#aebfd2!important;
}
.mori-site-boot.is-running .mori-site-boot-mark-wrap::before{
  animation:moriPowerDot157 .95s ease .22s both;
}
.mori-site-boot.is-running .mori-site-boot-mark-wrap::after{
  animation:moriPowerRing157 1.35s cubic-bezier(.16,1,.3,1) .68s both;
}
.mori-site-boot.is-running .mori-site-boot-mark-mask{
  animation:moriPowerLogo157 1.45s cubic-bezier(.16,1,.3,1) .92s both!important;
}
.mori-site-boot.is-running .mori-site-boot-line{
  animation:moriPowerBus157 1.30s cubic-bezier(.16,1,.3,1) 1.72s both!important;
}
.mori-site-boot.is-running .mori-site-boot-copy strong{
  animation:moriPowerText157 1.12s cubic-bezier(.16,1,.3,1) 2.28s both!important;
}
.mori-site-boot.is-running .mori-site-boot-copy small{
  animation:moriPowerTextSmall157 1.02s cubic-bezier(.16,1,.3,1) 2.72s both!important;
}
@keyframes moriPowerDot157{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.25);box-shadow:0 0 0 0 rgba(139,195,74,0)}
  45%{opacity:1;transform:translate(-50%,-50%) scale(1.5);box-shadow:0 0 20px 7px rgba(139,195,74,.28)}
  100%{opacity:.82;transform:translate(-50%,-50%) scale(.65);box-shadow:0 0 10px 2px rgba(139,195,74,.14)}
}
@keyframes moriPowerRing157{
  0%{opacity:0;transform:scale(.72);border-color:rgba(139,195,74,0)}
  45%{opacity:.75;border-color:rgba(139,195,74,.38)}
  100%{opacity:.28;transform:scale(1);border-color:rgba(139,195,74,.16)}
}
@keyframes moriPowerLogo157{
  0%{opacity:0;clip-path:inset(0 50% 0 50%)}
  22%{opacity:1}
  100%{opacity:1;clip-path:inset(0 0 0 0)}
}
@keyframes moriPowerBus157{
  0%{opacity:0;transform:scaleX(0)}
  26%{opacity:1}
  100%{opacity:.92;transform:scaleX(1)}
}
@keyframes moriPowerText157{
  from{opacity:0;transform:translateY(10px);letter-spacing:.18em}
  to{opacity:1;transform:translateY(0);letter-spacing:.075em}
}
@keyframes moriPowerTextSmall157{
  from{opacity:0;transform:translateY(8px);letter-spacing:.32em}
  to{opacity:1;transform:translateY(0);letter-spacing:.22em}
}
@media(max-width:767px){
  .mori-site-boot-inner{min-height:300px;width:min(400px,calc(100vw - 32px))}
  .mori-site-boot-mark-wrap{width:96px;height:96px}
  .mori-site-boot-mark{width:78px!important;height:78px!important}
  .mori-site-boot-line{width:min(270px,72vw)!important;margin:23px 0 18px!important}
  .mori-site-boot-copy strong{font-size:22px!important;letter-spacing:.14em!important}
  .mori-site-boot-copy small{font-size:8px!important;letter-spacing:.25em!important}
}

/* ==============================================================
   v1.5.8 — reliable circuit-trace startup logo.
   Unique selectors intentionally isolate this from all older boot styles.
   Runs on every homepage load so it is easy to verify on PC and mobile.
   ============================================================== */
.mori-boot-v158{
  position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 47%,rgba(30,77,124,.32) 0,rgba(7,29,58,.16) 25%,transparent 52%),
    linear-gradient(135deg,#04142b 0%,#071f3e 55%,#08274d 100%);
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity 1s cubic-bezier(.22,.61,.36,1),visibility 1s linear;
}
.mori-boot-v158.is-exiting{opacity:0;visibility:hidden;pointer-events:none}
.mori-boot-v158-stage{
  width:min(560px,calc(100vw - 42px));min-height:390px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;color:#fff;text-align:center;
}
.mori-boot-v158-trace{
  position:absolute;left:50%;top:50%;width:min(440px,80vw);height:1px;
  transform:translate(-50%,-77px) scaleX(0);transform-origin:left center;
  opacity:0;background:linear-gradient(90deg,transparent 0%,rgba(139,195,74,.22) 7%,#bceb80 50%,rgba(139,195,74,.22) 93%,transparent 100%);
  box-shadow:0 0 11px rgba(139,195,74,.14);
}
.mori-boot-v158-trace i{
  position:absolute;top:50%;left:0;width:6px;height:6px;border-radius:50%;
  background:#c7f495;opacity:0;transform:translate(-50%,-50%);
  box-shadow:0 0 10px 3px rgba(139,195,74,.35),0 0 24px 8px rgba(139,195,74,.14);
}
.mori-boot-v158-logo-wrap{
  width:138px;height:138px;display:grid;place-items:center;position:relative;
}
.mori-boot-v158-logo{
  width:104px;height:104px;object-fit:contain;opacity:0;
  transform:translateY(12px) scale(.965);
  clip-path:inset(100% 0 0 0);
  filter:drop-shadow(0 0 0 rgba(139,195,74,0));
}
.mori-boot-v158-corner{
  position:absolute;width:29px;height:29px;opacity:0;
  border-color:#9ed65d;border-style:solid;
}
.mori-boot-v158-corner.c1{left:2px;top:2px;border-width:1px 0 0 1px;transform:translate(9px,9px)}
.mori-boot-v158-corner.c2{right:2px;top:2px;border-width:1px 1px 0 0;transform:translate(-9px,9px)}
.mori-boot-v158-corner.c3{right:2px;bottom:2px;border-width:0 1px 1px 0;transform:translate(-9px,-9px)}
.mori-boot-v158-corner.c4{left:2px;bottom:2px;border-width:0 0 1px 1px;transform:translate(9px,-9px)}
.mori-boot-v158-copy{margin-top:26px;overflow:visible}
.mori-boot-v158-copy strong,.mori-boot-v158-copy small{display:block;opacity:0;transform:translateY(11px)}
.mori-boot-v158-copy strong{font-size:30px;font-weight:800;letter-spacing:.20em;color:#fff}
.mori-boot-v158-copy small{font-size:10px;font-weight:650;letter-spacing:.34em;color:#aebfd2;margin-top:9px}

.mori-boot-v158.is-running .mori-boot-v158-trace{animation:mori158Trace 1.55s cubic-bezier(.16,1,.3,1) .22s both}
.mori-boot-v158.is-running .mori-boot-v158-trace i{animation:mori158Pulse 1.55s cubic-bezier(.4,0,.2,1) .22s both}
.mori-boot-v158.is-running .mori-boot-v158-corner.c1{animation:mori158Corner1 1.05s cubic-bezier(.16,1,.3,1) 1.22s both}
.mori-boot-v158.is-running .mori-boot-v158-corner.c2{animation:mori158Corner2 1.05s cubic-bezier(.16,1,.3,1) 1.34s both}
.mori-boot-v158.is-running .mori-boot-v158-corner.c3{animation:mori158Corner3 1.05s cubic-bezier(.16,1,.3,1) 1.46s both}
.mori-boot-v158.is-running .mori-boot-v158-corner.c4{animation:mori158Corner4 1.05s cubic-bezier(.16,1,.3,1) 1.58s both}
.mori-boot-v158.is-running .mori-boot-v158-logo{animation:mori158Logo 1.55s cubic-bezier(.16,1,.3,1) 1.55s both}
.mori-boot-v158.is-running .mori-boot-v158-copy strong{animation:mori158Text 1.15s cubic-bezier(.16,1,.3,1) 2.65s both}
.mori-boot-v158.is-running .mori-boot-v158-copy small{animation:mori158Small 1.05s cubic-bezier(.16,1,.3,1) 3.02s both}

@keyframes mori158Trace{
  0%{opacity:0;transform:translate(-50%,-77px) scaleX(0)}
  14%{opacity:1}
  100%{opacity:.70;transform:translate(-50%,-77px) scaleX(1)}
}
@keyframes mori158Pulse{
  0%{opacity:0;left:0}
  8%{opacity:1}
  86%{opacity:1}
  100%{opacity:0;left:100%}
}
@keyframes mori158Corner1{to{opacity:.70;transform:translate(0,0)}}
@keyframes mori158Corner2{to{opacity:.70;transform:translate(0,0)}}
@keyframes mori158Corner3{to{opacity:.70;transform:translate(0,0)}}
@keyframes mori158Corner4{to{opacity:.70;transform:translate(0,0)}}
@keyframes mori158Logo{
  0%{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(12px) scale(.965);filter:drop-shadow(0 0 0 rgba(139,195,74,0))}
  24%{opacity:1}
  100%{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0) scale(1);filter:drop-shadow(0 0 12px rgba(139,195,74,.08))}
}
@keyframes mori158Text{
  from{opacity:0;transform:translateY(11px);letter-spacing:.20em}
  to{opacity:1;transform:translateY(0);letter-spacing:.075em}
}
@keyframes mori158Small{
  from{opacity:0;transform:translateY(9px);letter-spacing:.34em}
  to{opacity:1;transform:translateY(0);letter-spacing:.22em}
}
@media(max-width:767px){
  .mori-boot-v158-stage{min-height:320px;width:min(390px,calc(100vw - 28px))}
  .mori-boot-v158-logo-wrap{width:116px;height:116px}
  .mori-boot-v158-logo{width:86px;height:86px}
  .mori-boot-v158-trace{width:min(300px,78vw);transform:translate(-50%,-67px) scaleX(0)}
  .mori-boot-v158.is-running .mori-boot-v158-trace{animation-name:mori158TraceMobile}
  .mori-boot-v158-copy{margin-top:22px}
  .mori-boot-v158-copy strong{font-size:22px;letter-spacing:.16em}
  .mori-boot-v158-copy small{font-size:8px;letter-spacing:.26em}
}
@keyframes mori158TraceMobile{
  0%{opacity:0;transform:translate(-50%,-67px) scaleX(0)}
  14%{opacity:1}
  100%{opacity:.70;transform:translate(-50%,-67px) scaleX(1)}
}
/* The intro remains visible even when OS reduced-motion is enabled. In that
   case, use a quiet fade rather than hiding the logo completely. */
@media(prefers-reduced-motion:reduce){
  .mori-boot-v158-trace,.mori-boot-v158-trace i,.mori-boot-v158-corner{animation:none!important;opacity:.32!important;transform:none!important}
  .mori-boot-v158-logo{animation:none!important;opacity:1!important;clip-path:none!important;transform:none!important}
  .mori-boot-v158-copy strong,.mori-boot-v158-copy small{animation:none!important;opacity:1!important;transform:none!important}
}


/* ==============================================================
   v1.5.10 — ⑥ MINIMAL PREMIUM startup logo (horizontal lockup).
   Quiet sequence: mark -> company name -> English name -> lime line.
   No scan, rotation, corner frame, or flashing effects.
   ============================================================== */
.mori-boot-v159{
  position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;
  background:
    radial-gradient(circle at 50% 45%,rgba(31,75,120,.18) 0,rgba(7,28,56,.08) 27%,transparent 55%),
    linear-gradient(135deg,#04142b 0%,#071f3e 55%,#08284f 100%);
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity .65s cubic-bezier(.22,.61,.36,1),visibility .65s linear;
}
.mori-boot-v159.is-exiting{opacity:0;visibility:hidden;pointer-events:none}
.mori-boot-v159-stage{
  width:min(620px,calc(100vw - 40px));min-height:380px;
  display:grid;place-items:center;text-align:center;color:#fff;
}
.mori-boot-v159-lockup{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:22px;position:relative;padding-bottom:34px}
.mori-boot-v159-logo{
  width:104px;height:104px;object-fit:contain;
  opacity:0;transform:translateY(16px) scale(.985);
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.10));
}
.mori-boot-v159-copy{margin-top:0;overflow:visible;text-align:left}
.mori-boot-v159-copy strong,
.mori-boot-v159-copy small{display:block;opacity:0;transform:translateY(12px)}
.mori-boot-v159-copy strong{
  color:#fff;font-size:30px;font-weight:800;letter-spacing:.075em;line-height:1.2;
}
.mori-boot-v159-copy small{
  color:#aebfd2;font-size:10px;font-weight:650;letter-spacing:.22em;margin-top:9px;
}
.mori-boot-v159-underline{
  display:block;position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:2px;width:0;margin-top:0;
  background:linear-gradient(90deg,rgba(139,195,74,0),#8BC34A 18%,#b8e77e 50%,#8BC34A 82%,rgba(139,195,74,0));
  box-shadow:0 0 10px rgba(139,195,74,.12);
}
.mori-boot-v159.is-running .mori-boot-v159-logo{
  animation:mori159Logo 1.55s cubic-bezier(.16,1,.3,1) .20s both;
}
.mori-boot-v159.is-running .mori-boot-v159-copy strong{
  animation:mori159Text 1.28s cubic-bezier(.16,1,.3,1) 1.08s both;
}
.mori-boot-v159.is-running .mori-boot-v159-copy small{
  animation:mori159Text 1.18s cubic-bezier(.16,1,.3,1) 1.55s both;
}
.mori-boot-v159.is-running .mori-boot-v159-underline{
  animation:mori159Line 1.45s cubic-bezier(.16,1,.3,1) 2.05s both;
}
@keyframes mori159Logo{
  from{opacity:0;transform:translateY(16px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes mori159Text{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes mori159Line{
  from{width:0;opacity:.25}
  to{width:min(310px,62vw);opacity:1}
}
@media(max-width:767px){
  .mori-boot-v159-stage{min-height:320px;width:min(390px,calc(100vw - 28px))}
  .mori-boot-v159-lockup{gap:14px;padding-bottom:28px}
  .mori-boot-v159-logo{width:72px;height:72px;flex:0 0 72px}
  .mori-boot-v159-copy{margin-top:0;text-align:left;min-width:0}
  .mori-boot-v159-copy strong{font-size:20px;letter-spacing:.045em;white-space:nowrap}
  .mori-boot-v159-copy small{font-size:7px;letter-spacing:.13em;margin-top:6px;white-space:nowrap}
  .mori-boot-v159-underline{margin-top:0}
}
@media(prefers-reduced-motion:reduce){
  .mori-boot-v159-logo,.mori-boot-v159-copy strong,.mori-boot-v159-copy small{
    animation:none!important;opacity:1!important;transform:none!important;
  }
  .mori-boot-v159-underline{animation:none!important;width:min(310px,62vw)!important;opacity:1!important}
}


/* v1.5.12 — show the startup logo only once per browser-tab session.
   Returning to the homepage via the header logo must not replay the intro. */
html.mori-boot-seen-v1512 .mori-boot-v159{display:none!important}
