/*
Theme Name: NCC Corporate
Description: NCCコーポレートサイト。ライム・墨黒のリニューアルデザイン。
Version: 1.0.0
Author: National Creators Conference
Text Domain: ncc-corporate
*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--paper:#f6f6f0;--ink:#20231f;--lime:#d5f24c;--line:#cecec5;--muted:#61655c}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--lime);color:var(--ink)}a:focus-visible,button:focus-visible{outline:3px solid #638600;outline-offset:5px}.skip{position:absolute;left:10px;top:-100px;background:var(--lime);padding:12px;z-index:10}.skip:focus{top:10px}header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 4.8%;border-bottom:1px solid var(--line);position:relative;z-index:5;background:var(--paper)}.brand{display:flex;align-items:center;gap:22px}.brandmark{font-size:57px;font-weight:700;letter-spacing:-6px;line-height:1;position:relative;padding-right:15px}.brandmark>span{font-size:12px;position:absolute;top:8px;right:0;letter-spacing:0}.brandname{font-size:11px;line-height:1.45;font-weight:500}nav{display:flex;align-items:center;gap:34px;font-size:12px;font-weight:600}nav a:hover{color:#667f06}.nav-contact{padding:14px 20px;background:var(--ink);color:white!important;display:flex;gap:28px}.nav-contact:hover{background:#424a36}.menu{display:none}.hero{padding:35px 4.8% 0}.hero-top,.hero-bottom{display:flex;align-items:center;justify-content:space-between}.eyebrow,.micro,.section-label,.product-kicker,.hero-bottom,.art-label,.art-bottom,.graph-note,.art-note{font-family:'Space Grotesk','Noto Sans JP',sans-serif;font-size:10px;font-weight:500;letter-spacing:.09em}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow i{display:inline-block;width:7px;height:7px;background:var(--ink)}.micro{color:var(--muted);letter-spacing:.035em}.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:4%;align-items:center;min-height:605px;padding:45px 0 58px}h1,h2,h3,h4,p{margin:0}h1{font-size:clamp(36px,4.55vw,72px);line-height:1.5;font-weight:800;letter-spacing:-.065em;white-space:nowrap}.highlight{position:relative;z-index:1}.highlight:after{content:'';height:22%;bottom:6%;left:0;right:0;background:var(--lime);position:absolute;z-index:-1}.hero-copy>p{font-size:13px;line-height:2.15;letter-spacing:.025em;margin:26px 0 31px}.textlink{display:inline-flex;align-items:center;gap:38px;font-size:12px;font-weight:600}.circle{width:44px;height:44px;border:1px solid var(--ink);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:23px;transition:background .2s,transform .2s;flex-shrink:0}.textlink:hover .circle,a.circle:hover{background:var(--lime);transform:rotate(12deg)}.hero-art{position:relative;background:#eaece3;min-height:420px;padding:22px;overflow:hidden}.art-label,.art-bottom{display:flex;justify-content:space-between;font-size:9px}.pixel-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:72%;margin:35px auto;transform:rotate(-12deg);position:relative}.pixel-grid i{display:block;aspect-ratio:1;background:var(--ink);border-radius:2px}.pixel-grid i:nth-child(5n+1){background:#3a3f36}.pixel-grid i:nth-child(4),.pixel-grid i:nth-child(10),.pixel-grid i:nth-child(23){background:#c7ccbc}.pixel-grid i:nth-child(13){background:var(--lime);transform:translate(15px,-14px);box-shadow:9px 10px 0 #b1c344;animation:piece 6s ease-in-out infinite}.art-bottom{align-items:end;line-height:1.5}.art-cross{font-size:30px}.hero-bottom{padding:19px 0;border-top:1px solid var(--line);font-size:9px;letter-spacing:.05em}.hero-bottom>span:nth-child(2){color:var(--muted)}.section{padding:90px 4.8%}.section-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.07em}.section-label>span:last-child{color:var(--muted)}.philosophy{background:var(--ink);color:var(--paper);padding-top:38px;padding-bottom:82px}.philosophy .section-label>span:last-child{color:#a6aa9f}.philosophy-content{margin:55px 0 0 21%}.philosophy h2{font-size:clamp(28px,3.5vw,51px);line-height:1.6;letter-spacing:-.045em}.lime-dot{color:var(--lime)}.philosophy-bottom{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;margin-top:45px}.large-en{font-size:20px;line-height:1.25;letter-spacing:-.04em}.large-en em{font-style:normal;color:var(--lime)}.philosophy-bottom>p:last-child{font-size:12px;line-height:2.2;color:#d8dbd1}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:45px 0 64px}.section-heading h2,.creative h2,.about h2{font-size:37px;line-height:1.65;letter-spacing:-.05em}.section-heading p{font-size:12px;line-height:2;color:var(--muted)}.category-title{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ink);padding:22px 0 26px;margin-top:68px}.category-title h3{font-size:21px;font-weight:500;letter-spacing:-.04em}.category-title h3>span{font-size:10px;margin-right:20px;vertical-align:middle}.category-title p{font-size:11px;color:var(--muted)}.saas-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.product-art{display:block;height:340px;position:relative;overflow:hidden;padding:22px}.job-art{background:#dce6e1}.product-kicker{font-size:9px}.job-window{width:77%;background:white;margin:25px auto 0;transform:rotate(-5deg);border:1px solid #b4c2b9;box-shadow:15px 20px 0 #becfc4}.window-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd;padding:10px;font-size:8px}.window-top>span:first-child{color:#ccc;letter-spacing:2px;font-size:5px}.job-screen{padding:20px 23px 28px}.job-screen strong{font-size:22px;line-height:1.4}.search-visual{margin-top:15px;background:#f2f4ef;border:1px solid #dbe1d7;font-size:7px;padding:9px;display:flex;justify-content:space-between}.job-tags{display:flex;gap:8px;margin-top:9px;font-size:6px}.job-tags span{background:#eef1e8;padding:4px 12px}.job-bars{display:flex;gap:7px;margin-top:17px}.job-bars i{height:23px;flex:1;background:#e3e9dc}.art-note{position:absolute;bottom:12px;left:22px;font-size:7px;opacity:.65}.ba-art{background:#e9dcd0}.ba-display{display:flex;position:relative;width:78%;margin:28px auto 0;border:5px solid #f8f7f2;box-shadow:12px 12px 0 #cbbeb0;transform:rotate(4deg)}.ba-display>div{width:50%;height:140px;position:relative;overflow:hidden}.ba-before{background:#c6c1b5}.ba-after{background:#e9e6d2;border-left:2px solid white}.ba-display>div>span{font-size:7px;position:absolute;top:9px;left:10px;z-index:1}.room{position:absolute;inset:0;background:linear-gradient(0deg,#9d9683 25%,transparent 25%)}.room:before{content:'';position:absolute;width:35%;height:50%;background:#e6dfc9;top:15%;left:15%;border:4px solid #b1a997}.room i{position:absolute;width:67%;height:28%;background:#99978a;bottom:12%;right:-4%;box-shadow:0 5px 0 #6f7067}.room b{position:absolute;width:12%;height:20%;background:#787d63;bottom:20%;left:10%;border-radius:80% 0}.ba-after .room{background:linear-gradient(0deg,#c6bca3 25%,transparent 25%)}.ba-after .room i{background:#637455;box-shadow:0 5px 0 #45513b}.ba-after .room:before{background:#f9f5e8;border-color:#c5b797}.ba-after .room b{background:#4b6542;height:35%;width:18%}.ba-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;width:30px;height:30px;background:white;text-align:center;line-height:30px}.ba-logo{font-size:40px;display:block;margin:24px auto 0;width:78%;letter-spacing:-3px}.ba-logo span{font-size:13px;letter-spacing:0}.product-info{display:flex;justify-content:space-between;align-items:center;margin:22px 0 14px}.product-info .micro{font-size:10px}.product-info h4{font-size:28px;margin-top:7px;font-weight:500;letter-spacing:-.04em}.product>p{font-size:12px;line-height:2;color:var(--muted)}.lab{padding:43px;background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1.1fr 1fr;gap:50px}.lab .eyebrow{font-size:8px;letter-spacing:.06em;color:var(--lime)}.lab .eyebrow i{background:var(--lime)}.lab h3{font-size:31px;line-height:1.65;margin:23px 0 18px;letter-spacing:-.04em}.lab p{font-size:11px;line-height:2.1;color:#c3c7ba}.lab .textlink{font-size:10px;gap:15px;margin-top:25px;line-height:1.8}.lab .textlink:hover{color:var(--lime)}.lab-visual{padding-top:4px}.lab-visual-top{font-size:8px;letter-spacing:.1em;display:flex;align-items:center;justify-content:space-between;color:#c7cbbf}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--lime)}.lab svg{width:100%;margin-top:27px}.graph-note{font-size:6px;color:#a4aa98}.lab-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin-top:25px}.lab-links a{display:flex;justify-content:space-between;padding:13px 0;font-size:10px;border-bottom:1px solid #626759}.lab-links a:hover{color:var(--lime)}.everyday-row{display:flex;align-items:center;gap:35px;padding:25px 0;border-bottom:1px solid var(--line)}.mini-art{width:170px;height:128px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.rlr{background:#e7e1ef;gap:6px;padding:15px}.rlr span{border:1px solid var(--ink);background:var(--paper);padding:20px 5px;font-size:14px;transform:rotate(-8deg);box-shadow:3px 3px 0 var(--ink)}.rlr span:last-child{background:#c2b2e8;transform:rotate(8deg)}.everyday-body{flex:1}.everyday-body h4{font-size:26px;font-weight:500;margin:8px 0 11px;letter-spacing:-.035em}.everyday-body p{font-size:11px;line-height:1.9;color:var(--muted)}.calendar{background:#dfebd6}.calendar>div{background:var(--paper);border:1px solid #515d48;padding:9px 15px;transform:rotate(-6deg);box-shadow:5px 5px 0 #b2c99c}.calendar b{font-size:8px;display:block;border-bottom:1px solid #aaa;padding-bottom:5px;margin-bottom:5px}.calendar span{display:block;font-size:16px;letter-spacing:4px}.calendar em{font-style:normal;background:var(--lime)}.spot-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.spot-grid>a{padding:8px 27px 25px;border-right:1px solid var(--line);transition:background .2s}.spot-grid>a:first-child{padding-left:0}.spot-grid>a:last-child{border:0}.spot-grid>a:hover{background:#ebeedf}.spot-icon{font-size:38px;display:block;margin-bottom:25px}.spot-grid h4{font-size:33px;line-height:1.05;font-weight:500;letter-spacing:-.06em}.spot-grid p{font-size:11px;line-height:1.9;color:var(--muted);margin:20px 0 30px}.spot-bottom{display:flex;justify-content:space-between;align-items:center;font-size:10px}.spot-bottom b{font-size:19px;font-weight:400}.creative{background:#e9ecdf;padding-top:35px}.creative-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:55px}.creative-grid p,.about p{font-size:12px;line-height:2.2}.creative-tags{display:flex;gap:9px;margin:25px 0}.creative-tags span{border:1px solid #b7beab;padding:7px 10px;font-size:8px}.creative .textlink{margin-top:7px}.about{padding-top:35px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:55px}.about p{color:var(--muted);margin-top:23px}dl{margin:0}dl>div{display:grid;grid-template-columns:90px 1fr;border-bottom:1px solid var(--line);padding:17px 0;font-size:11px;line-height:1.9}dl>div:first-child{padding-top:0}dt{color:var(--muted)}dd{margin:0}.contact{display:flex;justify-content:space-between;align-items:center;padding:65px 4.8%;background:var(--lime)}.contact h2{font-size:36px;line-height:1.6;margin-top:17px;letter-spacing:-.05em}.contact>a{display:flex;flex-direction:column;align-items:end;gap:10px;font-size:11px}.contact-arrow{font-size:100px;line-height:1}.contact>a:hover .contact-arrow{transform:translate(5px,-5px)}footer{padding:38px 4.8%;display:flex;align-items:center;gap:40px}footer p{font-size:9px;margin-bottom:7px}footer div>span{font-size:8px;color:var(--muted)}footer>a:last-child{margin-left:auto;font-size:9px}.reveal{opacity:0;transform:translateY(15px);transition:opacity .65s,transform .65s}.reveal.visible{opacity:1;transform:none}@keyframes piece{0%,100%{transform:translate(15px,-14px)}50%{transform:translate(15px,-23px)}}@media(min-width:1500px){header,.hero,.section,.contact,footer{padding-left:max(4.8%,calc((100% - 1400px)/2));padding-right:max(4.8%,calc((100% - 1400px)/2))}}@media(max-width:1000px){nav{gap:20px}.brandname{display:none}.hero-grid{min-height:520px}.hero-art{min-height:340px}.pixel-grid{margin:28px auto}.hero-copy>p{font-size:11px}h1{font-size:4.5vw}.lab{gap:25px;padding:30px}.lab h3{font-size:26px}.philosophy-content{margin-left:10%}.section-heading h2,.creative h2,.about h2{font-size:31px}.product-art{height:300px}.job-screen{padding:15px}.ba-display>div{height:115px}.ba-logo{font-size:33px}.lab .textlink{font-size:8px}.spot-grid h4{font-size:28px}}
@media(max-width:700px){html{scroll-padding-top:20px}header{height:82px;padding:0 6%}.brandmark{font-size:48px}.brandname{display:block;font-size:9px}.menu{display:flex;align-items:center;gap:13px;border:0;background:none;font-size:10px;padding:10px 0}.menu span{font-size:21px}nav{display:none;position:absolute;top:81px;left:0;right:0;padding:25px 6%;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav>a{padding:17px 0}nav .nav-contact{padding:15px;margin-top:10px;justify-content:space-between}.hero{padding:24px 6% 0}.hero-top>.micro{display:none}.hero-grid{display:flex;flex-direction:column;align-items:stretch;gap:35px;padding:34px 0 30px;min-height:0}h1{font-size:clamp(31px,7.9vw,55px);line-height:1.55}.hero-copy>p{font-size:11px;margin:23px 0}.textlink{font-size:11px;gap:25px}.circle{width:40px;height:40px}.hero-art{width:100%;min-height:0;height:340px;padding:19px}.pixel-grid{width:210px;gap:5px;margin:25px auto}.art-bottom{position:absolute;bottom:15px;left:19px;right:19px}.hero-bottom{font-size:7px}.hero-bottom>span:nth-child(2){display:none}.section{padding:55px 6%}.section-label{font-size:8px}.section-label>span:last-child{font-size:8px}.philosophy{padding-top:26px}.philosophy-content{margin:32px 0 0}.philosophy h2{font-size:clamp(24px,5.4vw,34px);line-height:1.7}.philosophy-bottom{grid-template-columns:1fr;margin-top:30px;gap:28px}.large-en{font-size:19px}.philosophy-bottom>p:last-child{font-size:11px}.section-heading{display:block;margin:30px 0 38px}.section-heading h2,.creative h2,.about h2{font-size:28px}.section-heading p{font-size:11px;margin-top:22px}.category-title{margin-top:45px;display:block;padding:18px 0 22px}.category-title h3{font-size:20px}.category-title p{font-size:10px;margin-top:9px;margin-left:32px}.saas-grid{grid-template-columns:1fr;gap:35px}.product-art{height:310px}.job-window{width:75%;max-width:290px;margin-top:22px}.job-screen{padding:18px}.ba-display{max-width:280px}.ba-display>div{height:130px}.ba-logo{max-width:280px;font-size:37px}.product-info{margin-top:18px}.product-info h4{font-size:26px}.product>p{font-size:11px}.lab{grid-template-columns:1fr;padding:28px 23px;gap:35px}.lab h3{font-size:28px}.lab .eyebrow{font-size:6.5px}.lab .textlink{font-size:9px;gap:10px}.lab-links a{font-size:9px}.everyday-row{gap:17px;align-items:flex-start;position:relative;padding:22px 0}.mini-art{width:85px;height:92px}.rlr{padding:5px;gap:2px}.rlr span{font-size:9px;padding:14px 1px}.calendar>div{padding:6px}.calendar b{font-size:5px}.calendar span{font-size:11px;letter-spacing:1px}.everyday-body{padding-bottom:38px}.everyday-body .micro{font-size:8px}.everyday-body h4{font-size:22px}.everyday-body p{font-size:10px}.everyday-row>.circle{position:absolute;bottom:20px;right:0;width:30px;height:30px;font-size:18px}.spot-grid{grid-template-columns:1fr}.spot-grid>a,.spot-grid>a:first-child{padding:23px 0;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;gap:12px 20px}.spot-grid>a:last-child{border-bottom:0}.spot-icon{display:none}.spot-grid h4{font-size:29px;grid-row:span 2}.spot-grid p{margin:0;font-size:10px}.spot-bottom{font-size:9px}.creative-grid,.about-grid{grid-template-columns:1fr;gap:27px;margin-top:34px}.creative-grid p,.about p{font-size:11px}.creative-tags{flex-wrap:wrap;gap:5px}.creative-tags span{font-size:7px}.about-grid{gap:35px}.desktop-break{display:none}dl>div{font-size:10px;grid-template-columns:70px 1fr}.contact{padding:40px 6%;align-items:end}.contact .eyebrow{font-size:8px}.contact h2{font-size:24px}.contact>a>span:first-child{font-size:8px;writing-mode:vertical-rl}.contact-arrow{font-size:58px}footer{padding:30px 6%;gap:20px;flex-wrap:wrap}footer .brandmark{font-size:45px}footer p{font-size:7px}footer div>span{font-size:7px}footer>a:last-child{width:100%;text-align:right;font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Official NCC identity and consolidated philosophy. */
.official-logo{display:block;width:120px;height:auto;object-fit:contain}.philosophy-content{margin-top:35px}.philosophy-bottom{margin-top:0}h1{font-size:clamp(36px,4.1vw,65px);line-height:1.45}.hero-grid{padding-top:35px}.hero-copy>p{margin-top:22px}@media(max-width:700px){.official-logo{width:100px}.brand{gap:17px}h1{font-size:clamp(32px,8vw,55px);line-height:1.5}.philosophy-content{margin-top:28px}.hero-grid{padding-top:30px}.footer-logo .official-logo{width:95px}}
/* News and contact share the corporate typography and quiet rules. */
.news{padding-top:58px;padding-bottom:60px;border-bottom:1px solid var(--line)}.news-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.news-heading h2{font-size:28px;letter-spacing:-.04em;margin-top:10px}.news-heading .eyebrow{font-size:9px}.news-heading .textlink{font-size:10px;gap:20px}.news-heading .circle{width:34px;height:34px;font-size:19px}.news-row{display:grid;grid-template-columns:105px 85px 1fr 20px;gap:20px;align-items:baseline;border-top:1px solid var(--line);padding:23px 0;transition:color .2s}.news-row:last-child{border-bottom:1px solid var(--line)}.news-row:hover .news-title{color:#667f06;text-decoration:underline;text-underline-offset:4px}.news-row time{font-size:11px;color:var(--muted)}.news-type{font-size:9px;border:1px solid var(--line);padding:4px 10px;justify-self:start;white-space:nowrap}.news-title{font-size:12px;line-height:1.9}.news-row>span:last-child{font-size:20px}.contact-page,.news-page{padding:0 4.8% 90px}.breadcrumbs{display:flex;gap:14px;align-items:center;padding-top:30px;font-size:9px;color:var(--muted)}.breadcrumbs a:hover{text-decoration:underline}.subpage-intro{padding:65px 0 55px;border-bottom:1px solid var(--ink)}.subpage-intro h1{font-size:clamp(32px,3.6vw,55px);line-height:1.6;margin:25px 0 20px;white-space:normal}.subpage-intro p{font-size:12px;line-height:2.1;color:var(--muted)}.contact-layout{display:grid;grid-template-columns:.8fr 1.3fr;gap:10%;padding-top:55px}.contact-aside h2{font-size:23px;letter-spacing:-.04em;line-height:1.7;margin:20px 0}.contact-aside>p{font-size:11px;color:var(--muted);line-height:2}.form-steps{display:flex;gap:15px;align-items:center;margin-top:35px;font-size:10px;color:var(--muted)}.form-steps .active{color:var(--ink);border-bottom:3px solid var(--lime);padding-bottom:5px}.contact-aside .preview-notice{border-top:1px solid var(--line);padding-top:20px;margin-top:35px;font-size:10px}.preview-notice strong{color:var(--ink);font-weight:600}.contact-aside .textlink{margin-top:20px;font-size:10px;line-height:1.8}.required-note{font-size:10px;color:var(--muted);margin-bottom:25px}.required-note>span,.required{color:var(--ink);background:var(--lime);padding:3px 7px;font-size:8px;display:inline-block}.optional{color:var(--muted);border:1px solid var(--line);font-size:8px;padding:2px 6px;display:inline-block}.form-field{margin-bottom:26px}.form-field label{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:600;margin-bottom:12px}input,select,textarea{font-family:inherit;font-size:13px;color:var(--ink);border:1px solid #bfc3b7;border-radius:0;background:#fff;width:100%;padding:15px 16px;line-height:1.6;box-shadow:none}select{padding-right:30px}textarea{resize:vertical;min-height:160px}input::placeholder,textarea::placeholder{color:#8a8f80}input:focus,select:focus,textarea:focus{outline:2px solid #7a960f;outline-offset:2px;border-color:transparent}.form-field small{display:block;font-size:9px;margin-top:8px;color:var(--muted)}.form-submit{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:28px;font-size:12px;cursor:pointer;width:100%}.form-submit>span{font-size:23px;line-height:1}.form-submit:hover{background:#424a36}.form-submit:disabled{background:#e0e3d8;color:#696f60;border-color:#c9cebf;cursor:not-allowed}.contact-form-panel{min-width:0}#confirmation h2{font-size:27px;margin-top:17px;letter-spacing:-.04em}.confirmation-note{font-size:11px;color:var(--muted);line-height:2;margin:18px 0 27px}#confirmation-data>div{grid-template-columns:125px 1fr;font-size:11px}#confirmation-data dd{white-space:pre-wrap;overflow-wrap:anywhere}.confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:30px;align-items:center}#edit-form{background:none;border:1px solid var(--ink);padding:19px 12px;font:inherit;font-size:11px;cursor:pointer;min-height:65px}#edit-form:hover{background:var(--lime)}.confirmation-actions .form-submit{font-size:10px;padding:20px 15px;gap:8px}.real-contact{display:block;font-size:10px;line-height:1.8;text-decoration:underline;text-underline-offset:4px;margin-top:24px}.archive-list{margin-top:40px}.archive-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:35px}.archive-bottom>span{font-size:10px;color:var(--muted)}.contact-page+footer,.news-page+footer{border-top:1px solid var(--line)}[hidden]{display:none!important}
@media(max-width:1000px){nav{gap:18px;font-size:11px}.brand{gap:14px}.nav-contact{padding:13px 15px;gap:20px}.contact-layout{gap:6%}}
@media(max-width:700px){.news{padding:40px 6%}.news-heading{margin-bottom:23px}.news-heading h2{font-size:24px}.news-heading .textlink{font-size:9px;gap:10px}.news-heading .circle{width:30px;height:30px}.news-row{grid-template-columns:80px 1fr 20px;gap:8px 10px;padding:18px 0}.news-row time{font-size:10px}.news-type{font-size:8px;padding:2px 8px}.news-title{grid-column:1/3;grid-row:2;font-size:11px}.news-row>span:last-child{grid-column:3;grid-row:1/3;align-self:center}.contact-page,.news-page{padding:0 6% 55px}.breadcrumbs{font-size:8px;padding-top:24px}.subpage-intro{padding:38px 0 35px}.subpage-intro h1{font-size:clamp(27px,6.7vw,38px);margin:20px 0 17px;line-height:1.65}.subpage-intro p{font-size:11px}.contact-layout{display:flex;flex-direction:column;gap:35px;padding-top:35px}.contact-aside h2{font-size:22px;margin:15px 0}.contact-aside>p{font-size:10px}.form-steps{margin-top:22px}.contact-aside .preview-notice{margin-top:22px;padding-top:16px}.contact-aside .textlink{margin-top:12px}.contact-form-panel{width:100%}.required-note{margin-bottom:24px}.form-field{margin-bottom:24px}.form-field label{font-size:11px}input,select,textarea{font-size:16px;padding:13px 12px}.form-field small{font-size:9px}.form-submit{padding:19px 18px;font-size:12px}.confirmation-actions{grid-template-columns:1fr;gap:12px}#confirmation-data>div{grid-template-columns:1fr;gap:7px;font-size:11px}.confirmation-actions .form-submit{font-size:12px}.archive-list{margin-top:25px}.archive-bottom .textlink{font-size:10px;gap:16px}nav{font-size:12px}}

/* WordPress integration */
body.admin-bar{padding-top:0}.entry-body{font-family:'Noto Sans JP',sans-serif;font-size:14px;line-height:2.2;overflow-wrap:anywhere;max-width:850px}.entry-body p{margin:0 0 1.8em}.entry-body a{text-decoration:underline;text-underline-offset:3px}.entry-body ul,.entry-body ol{padding-left:1.5em}.entry-body h2{font-size:25px;margin:1.7em 0 .7em}.entry-body h3{font-size:20px;margin:1.5em 0 .6em}.entry-body img{max-width:100%;height:auto}.entry-body table{border-collapse:collapse;width:100%;font-size:12px}.entry-body td,.entry-body th{border:1px solid var(--line);padding:10px}.article-heading{max-width:1000px}.article-heading h1{font-size:clamp(26px,3vw,43px)}.article-date{font-size:11px;color:var(--muted);display:block;margin-top:25px}.article-body{padding:45px 0}.pagination{margin-top:30px;display:flex;gap:12px}.page-numbers{padding:10px 16px;border:1px solid var(--line);font-size:12px}.page-numbers.current{background:var(--ink);color:var(--paper)}.form-banner{border-left:4px solid #859d1e;padding:20px 24px;background:#eaf0d8;margin-bottom:25px;font-size:12px;line-height:2}.form-banner.error{border-color:#9f342c;background:#f7e6e0}.form-banner ul{margin:10px 0 0;padding-left:20px}.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-policy{font-size:10px;line-height:1.9;color:var(--muted);margin:22px 0}.form-policy a{text-decoration:underline}.success-panel{padding:35px;background:#eaefdb}.success-panel h2{font-size:27px;line-height:1.6;margin-bottom:20px}.success-panel p{font-size:12px;line-height:2}.success-panel a{margin-top:25px}#confirmation:focus{outline:none}.error404 .subpage-intro{border:0}.empty-news{font-size:12px;padding:28px 0;color:var(--muted)}

/* Put the data lab first and give its destination the service-name hierarchy. */
.lab-main-link{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;font-size:clamp(18px,1.55vw,24px);font-weight:500;line-height:1.65;letter-spacing:-.035em}.lab-main-link .circle{border-color:var(--paper);color:var(--paper)}.lab-main-link:hover{color:var(--lime)}.lab-main-link:hover .circle{background:var(--lime);border-color:var(--lime);color:var(--ink)}.lab-data-graph{width:100%;height:auto;display:block;margin-top:27px}@media(max-width:700px){.lab-main-link{font-size:19px;gap:12px}.lab-main-link .circle{width:38px;height:38px}.lab-main-link>span:first-child{min-width:0}}
/* Center the complete news article column, including heading and navigation. */
.single-news .news-page{width:100%;max-width:1040px;margin-inline:auto;padding:0 40px 90px}
.single-news .article-heading,.single-news .entry-body{max-width:none}
@media(max-width:700px){.single-news .news-page{padding:0 6% 55px}}

/* Keep the lab destination on one line on desktop. */
@media(min-width:701px){.lab-main-link>span:first-child{white-space:nowrap}.lab-main-link br{display:none}.lab-main-link{gap:16px}.lab{grid-template-columns:minmax(max-content,1.1fr) minmax(0,1fr)}}
@media(min-width:701px) and (max-width:1100px){.lab{grid-template-columns:1fr;gap:35px}}

/* Creative copy retained from the existing corporate site. */
.creative-grid>div>p+p{margin-top:16px}.creative-grid .textlink{margin-top:24px}.creative-details{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:52px}.creative-detail{border-top:1px solid #b7beab;padding-top:26px}.creative-detail .eyebrow{font-size:9px}.creative-detail h3{font-size:25px;letter-spacing:-.04em;font-weight:600;margin:15px 0 20px}.creative-detail p{font-size:12px;line-height:2.2}.creative-detail p+p{margin-top:16px}.creative-detail .creative-tags{flex-wrap:wrap;margin:22px 0 0}.creative-detail .creative-tags span{font-size:9px}@media(max-width:700px){.creative-details{grid-template-columns:1fr;gap:32px;margin-top:36px}.creative-detail{padding-top:22px}.creative-detail h3{font-size:23px;margin:14px 0 17px}.creative-detail p{font-size:11px}.creative-detail .creative-tags span{font-size:8px}}

/* Keep the desktop lab link icon directly beside its label. */
@media(min-width:701px){.lab-main-link{justify-content:flex-start;gap:14px}}

/* Reveal the header when scrolling back up, matching Toda Road. */
body>header{position:sticky;top:var(--ncc-admin-offset,0px);z-index:1000;transition:transform .28s ease;will-change:transform}
body>header.ncc-header-hidden{transform:translateY(calc(-100% - var(--ncc-admin-offset,0px) - 1px))}
html{scroll-padding-top:calc(var(--ncc-header-height,104px) + var(--ncc-admin-offset,0px) + 16px)}

/* Original 12-second motion study: one niche piece changes the whole. */
.hero-art-motion .hero-motion{position:relative;width:100%;aspect-ratio:1;max-height:430px;margin:4px auto 6px}.hero-motion-video{display:block;width:100%;height:100%;object-fit:cover}.hero-art-motion .art-bottom{position:relative;inset:auto;align-items:center}.motion-toggle{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:4px 0 4px 12px;border:0;background:transparent;color:var(--ink);cursor:pointer}.motion-symbol{display:flex;align-items:center;justify-content:center;font-family:Arial,sans-serif;font-size:17px;width:28px;height:28px;border:1px solid #aab19e;border-radius:50%}.motion-toggle-label{font-family:'Space Grotesk',sans-serif;font-size:8px;letter-spacing:.1em}.motion-toggle:hover .motion-symbol{background:var(--lime);border-color:var(--ink)}@media(max-width:700px){.hero-art-motion .hero-motion{height:248px;max-height:none;aspect-ratio:auto;margin:0 auto}.hero-art.hero-art-motion{height:340px}.hero-art-motion .art-bottom{position:absolute;bottom:10px;left:19px;right:19px}.motion-toggle{min-height:38px}.motion-toggle-label{font-size:7px}}

/* Keep the Japanese legal company name on one line. */
.about .company-name{white-space:nowrap;letter-spacing:-.03em}
@media(min-width:701px){.about-grid{grid-template-columns:minmax(0,1fr) minmax(max-content,1fr)}}
@media(max-width:700px){.about dl>div:first-child{grid-template-columns:45px minmax(0,1fr)}.about .company-name{font-size:clamp(8px,2.35vw,10px);letter-spacing:-.04em}}

/* Keep the wordmark beside the logo on a single line. */
.brandname{white-space:nowrap}
@media(max-width:700px){.brand{gap:12px}.brandname{font-size:8px}}

@media(max-width:360px){header .brand{gap:8px}}

/* Full-bleed cinematic hero: the animation lives across the whole first view. */
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:max(720px,calc(100svh - var(--ncc-header-height,104px) - var(--ncc-admin-offset,0px)))}
.hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(246,246,240,.91) 0%,rgba(246,246,240,.97) 31%,rgba(246,246,240,.78) 43%,rgba(246,246,240,.13) 63%,transparent 75%),linear-gradient(0deg,rgba(246,246,240,.98) 0%,transparent 17%),linear-gradient(180deg,rgba(246,246,240,.75) 0%,transparent 15%)}
.hero .hero-top,.hero .hero-bottom{position:relative;z-index:2;flex-shrink:0}
.hero .hero-grid{display:flex;align-items:center;flex:1;min-height:0;gap:0;padding:55px 0 70px}
.hero .hero-copy{position:relative;z-index:2;width:100%;max-width:680px}
.hero .hero-art-motion{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:0;margin:0;padding:0;background:var(--paper);overflow:hidden}
.hero .hero-art-motion .hero-motion{position:absolute;inset:0;width:100%;height:100%;max-height:none;margin:0;aspect-ratio:auto}
.hero .hero-motion-video{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero .hero-art-motion .art-label,.hero .hero-art-motion .art-bottom>span{display:none}
.hero .hero-art-motion .art-bottom{position:absolute;inset:auto;right:max(4.8%,calc((100% - 1400px)/2));bottom:83px;z-index:2;display:block;width:auto}
.hero .motion-toggle{background:rgba(246,246,240,.9);border:1px solid #c6ceba;border-radius:30px;padding:5px 12px;gap:8px}
.hero .hero-bottom{margin-top:auto}
@media(max-width:700px){.hero{min-height:max(860px,calc(100svh - var(--ncc-header-height,82px)));padding-top:24px}.hero .hero-grid{padding:36px 0 340px;align-items:flex-start;min-height:0}.hero .hero-copy{max-width:none}.hero::after{background:linear-gradient(180deg,rgba(246,246,240,.98) 0%,rgba(246,246,240,.96) 36%,rgba(246,246,240,.25) 62%,transparent 78%),linear-gradient(0deg,rgba(246,246,240,.96) 0%,transparent 13%)}.hero .hero-art-motion .hero-motion{top:200px;bottom:0;height:calc(100% - 200px)}.hero .hero-motion-video{object-position:70% 50%}.hero .hero-art-motion .art-bottom{right:6%;bottom:70px}.hero .hero-bottom{font-size:7px}}

/* Keep playback controls above the readability overlay. */
.hero .hero-art-motion{z-index:auto}.hero .hero-art-motion .hero-motion{z-index:0}

/* Readable body typography across the corporate site. */
.hero-copy>p,.philosophy-bottom>p:last-child,.section-heading p,.product>p,.lab p,.everyday-body p,.spot-grid p,.creative-grid p,.creative-detail p,.about p{font-size:16px;line-height:2}
.category-title p{font-size:13px}
.about dl>div{font-size:14px;line-height:1.9}
.news-title{font-size:16px;line-height:1.8}.news-row time,.article-date{font-size:12px}
.entry-body{font-size:16px;line-height:2}.entry-body table{font-size:14px}
.subpage-intro p,.contact-aside>p,.success-panel p{font-size:16px;line-height:2}
.form-field label,.required-note,.form-policy,.confirmation-note,.form-banner,#confirmation-data>div{font-size:14px;line-height:1.9}
input,select,textarea{font-size:16px}.form-field small{font-size:12px;line-height:1.8}
.form-submit,.confirmation-actions .form-submit,#edit-form{font-size:14px}
.creative-detail .creative-tags span{font-size:12px}
@media(max-width:700px){
.hero-copy>p,.philosophy-bottom>p:last-child,.section-heading p,.product>p,.lab p,.everyday-body p,.spot-grid p,.creative-grid p,.creative-detail p,.about p,.subpage-intro p,.contact-aside>p,.success-panel p{font-size:15px;line-height:1.95}
.about dl>div{font-size:13px}.news-title{font-size:15px}.category-title p{font-size:12px}
.creative-detail .creative-tags span{font-size:11px}
}

/* Footer company name and copyright remain legible on every screen. */
footer p{font-size:15px;line-height:1.8;margin-bottom:8px}
footer div>span{font-size:13px;line-height:1.8}
@media(max-width:700px){footer p{font-size:14px;line-height:1.9}footer div>span{font-size:12px;line-height:1.8}}

/* Icon-only back-to-top control with an accessible name. */
footer>a.back-to-top{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border:1px solid var(--ink);border-radius:50%;margin-left:auto;padding:0;transition:background .2s,transform .2s}
footer>a.back-to-top:hover{background:var(--lime);transform:translateY(-3px)}
footer>a.back-to-top svg{display:block;width:24px;height:24px}
@media(prefers-reduced-motion:reduce){footer>a.back-to-top{transition:none}footer>a.back-to-top:hover{transform:none}}

/* Center the news archive with the same reading width as news details. */
.news-page{width:100%;max-width:1040px;margin-inline:auto;padding:0 40px 90px}
@media(max-width:700px){.news-page{padding:0 6% 55px}}

/* Keep contact content centered and the form comfortable to read. */
.contact-page{width:100%;max-width:1200px;margin-inline:auto;padding:0 40px 90px}
.contact-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:8%}
@media(max-width:700px){.contact-page{padding:0 6% 55px}.contact-layout{gap:35px}}

/* Scroll choreography modeled on coten.co.jp (assets/app.js). */
:root{--ncc-ease-out:cubic-bezier(.165,.84,.44,1);--ncc-ease-rise:cubic-bezier(.62,.05,.01,.99)}
/* Pinned hero; the philosophy band and every following section slide over it.
   :where() keeps specificity at zero so sections with their own background keep it. */
main{overflow-x:clip}
.ncc-hero-stage{position:relative}
.ncc-hero-stage .hero{position:sticky;top:var(--ncc-hero-stick,0px);z-index:0}
:where(.ncc-hero-stage>:not(.hero)){position:relative;z-index:1;background-color:var(--paper)}
.ncc-hero-stage .philosophy{box-shadow:0 -30px 60px rgba(32,35,31,.18)}
/* Hero foot strip moved out of the pinned hero; the hero gives up the same height so the first view is unchanged. */
.ncc-hero-foot{padding:0 4.8%;box-shadow:0 -30px 60px rgba(32,35,31,.12)}
.ncc-hero-stage .hero{min-height:calc(max(720px,calc(100svh - var(--ncc-header-height,104px) - var(--ncc-admin-offset,0px))) - var(--ncc-hero-foot,0px))}
@media(min-width:1500px){.ncc-hero-foot{padding:0 max(4.8%,calc((100% - 1400px)/2))}}
@media(max-width:700px){.ncc-hero-foot{padding:0 6%}.ncc-hero-stage .hero{min-height:calc(max(860px,calc(100svh - var(--ncc-header-height,82px))) - var(--ncc-hero-foot,0px))}}
.hero .hero-copy,.hero .hero-art-motion{will-change:translate,opacity}
/* Per-character heading reveal. */
.ncc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ncc-split{display:block}
.ncc-line{display:block;clip-path:inset(-.25em -.2em -.2em -.2em)}
.ncc-char{display:inline-block;translate:0 105%;opacity:0;transition:translate .8s var(--ncc-ease-rise),opacity .5s ease;transition-delay:calc(var(--base,0s) + var(--i,0) * 35ms)}
.is-in .ncc-char{translate:0 0;opacity:1}
/* Block entrances. */
/* Doubled class raises specificity above component transitions such as `.spot-grid>a{transition:background .2s}`; hover colour fades are kept. */
.ncc-in.ncc-in{opacity:0;transition:opacity 1.2s var(--ncc-ease-out) var(--d,0s),translate 1.2s var(--ncc-ease-out) var(--d,0s),clip-path 1.4s var(--ncc-ease-out) var(--d,0s),background-color .2s,color .2s,border-color .2s}
.ncc-in-up{translate:0 56px}
.ncc-in-left{translate:-70px 0}
.ncc-in-right{translate:70px 0}
.ncc-in-line{clip-path:inset(0 100% 0 0)}
.ncc-in-wipe{clip-path:inset(40% 0 0 0);translate:0 90px}
.ncc-in.ncc-in.is-in{opacity:1;translate:0 0;clip-path:inset(0 0 0 0)}
.ncc-in-line.ncc-in.ncc-in,.ncc-in-wipe.ncc-in.ncc-in{opacity:1}
.ncc-resetting,.ncc-resetting *{transition:none!important}
.saas-grid .product.ncc-in .ba-display,.saas-grid .product.ncc-in .job-window{scale:1.18;transition:scale 1.6s var(--ncc-ease-out);transition-delay:calc(var(--d,0s) + .15s)}
.saas-grid .product.ncc-in.is-in .ba-display,.saas-grid .product.ncc-in.is-in .job-window{scale:1}
.everyday-row.ncc-in .mini-art{scale:.6;transition:scale 1.2s var(--ncc-ease-out);transition-delay:calc(var(--d,0s) + .2s)}
.everyday-row.ncc-in.is-in .mini-art{scale:1}
.spot-grid.reveal,.creative-grid.reveal,.about-grid.reveal{opacity:1;transform:none}
@media(max-width:700px){.ncc-in-left{translate:-36px 0}.ncc-in-right{translate:36px 0}.ncc-in-up{translate:0 36px}.ncc-in-wipe{translate:0 50px}}
@media(prefers-reduced-motion:reduce){.ncc-char,.ncc-in{translate:none!important;opacity:1!important;clip-path:none!important;transition:none!important}.saas-grid .product .ba-display,.saas-grid .product .job-window,.everyday-row .mini-art{scale:none!important}.hero .hero-copy,.hero .hero-art-motion{translate:none!important;scale:none!important;opacity:1!important}}

/* Cube motif from the top-page hero, laid out as a fixed page backdrop (cube-backdrop.php) on the news article and contact pages.
   Two strips hug the screen edges so the pieces stay visible at any aspect ratio. */
.cube-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.cube-backdrop svg{position:absolute;top:0;height:100%;width:clamp(150px,24vw,400px)}
.cube-backdrop-left{left:0}
.cube-backdrop-right{right:0}
.cube-backdrop .bd-ink{opacity:.14}
.cube-backdrop .bd-gray{opacity:.5}
.cube-backdrop .cube-hero{opacity:.95}
.has-cube-backdrop main,.has-cube-backdrop footer{position:relative;z-index:1}
.has-cube-backdrop footer{background:var(--paper)}
.cube-float{transform-box:fill-box;transform-origin:center;animation:ncc-cube-float 7s ease-in-out infinite}
.cube-float-1{animation-duration:9s;animation-delay:-3s}
.cube-float-2{animation-duration:6.5s;animation-delay:-5s}
.cube-float-3{animation-duration:10s;animation-delay:-1s}
.cube-hero{transform-box:fill-box;transform-origin:50% 60%;animation:ncc-cube-hero 8s ease-in-out infinite}
@keyframes ncc-cube-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ncc-cube-hero{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(-6deg)}}
.cube-backdrop-sm{display:none}
@media(max-width:700px){.cube-backdrop-lg{display:none}.cube-backdrop-sm{display:block}.cube-backdrop svg{width:30vw}.cube-backdrop .bd-ink{opacity:.1}.cube-backdrop .bd-gray{opacity:.4}}
@media(prefers-reduced-motion:reduce){.cube-float,.cube-hero{animation:none}}

/* Red key colour (body.accent-red, see ncc_accent() in functions.php). Overrides only; switching back to lime restores the original rules untouched.
   #e0261b general accent / #d42a1f fills carrying white text / #ff5f52 accent text on the dark ink background. */
.accent-red{--lime:#e0261b}
.accent-red ::selection{background:#d42a1f;color:#fff}
.accent-red .skip,.accent-red .contact,.accent-red .required-note>span,.accent-red .required,.accent-red #edit-form:hover,.accent-red .calendar em{background:#d42a1f;color:#fff}
.accent-red .textlink:hover .circle,.accent-red a.circle:hover,.accent-red .lab-main-link:hover .circle,.accent-red .motion-toggle:hover .motion-symbol,.accent-red footer>a.back-to-top:hover{color:#fff}
.accent-red .large-en em,.accent-red .philosophy .lime-dot,.accent-red .lab .eyebrow,.accent-red .lab .textlink:hover,.accent-red .lab-links a:hover,.accent-red .lab-main-link:hover{color:#ff5f52}
.accent-red .lab .eyebrow i,.accent-red .status-dot{background:#ff5f52}
.accent-red a:focus-visible,.accent-red button:focus-visible{outline-color:#b3261e}
.accent-red nav a:hover,.accent-red .news-row:hover .news-title{color:#c42a20}
.accent-red .nav-contact:hover,.accent-red .form-submit:hover{background:#4d2420}
.accent-red .pixel-grid i:nth-child(13){box-shadow:9px 10px 0 #a80b00}
.accent-red .spot-grid>a:hover{background:#f6e6e2}
.accent-red .creative{background:#f0e6e2}
.accent-red .form-banner{border-left-color:#c42a20;background:#f8e4df}
.accent-red .success-panel{background:#f8e4df}
.accent-red .cube-hero polygon:nth-of-type(1){fill:#e11d0f}
.accent-red .cube-hero polygon:nth-of-type(2){fill:#a80b00}
.accent-red .cube-hero polygon:nth-of-type(3){fill:#c50d00}
.accent-red .contact .eyebrow i{background:#fff}

/* News type: badge column wide enough for longer labels (e.g. プレスリリース), archive filter, article meta. */
.news-row{grid-template-columns:105px 112px 1fr 20px}
.news-filter{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.news-filter a{font-size:12px;padding:9px 18px;border:1px solid var(--line);border-radius:999px;transition:background .2s,border-color .2s}
.news-filter a:hover{border-color:var(--ink)}
.news-filter a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.news-filter+.archive-list{margin-top:28px}
.article-meta{display:flex;align-items:center;gap:14px;margin-top:25px}
.article-meta .article-date{margin-top:0}
@media(max-width:700px){.news-row{grid-template-columns:80px 1fr 20px}.news-filter{margin-top:28px;gap:8px}.news-filter a{font-size:11px;padding:7px 14px}.article-meta{margin-top:18px}}
