@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{--navy:#071a35;--navy2:#0b2444;--ink:#11233d;--muted:#657489;--cyan:#56ddeb;--blue:#4e8de9;--bg:#f6f8fb;--line:#e1e8f0;--container:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);font:400 15px/1.9 'DM Sans','Noto Sans JP',sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #00a7ca;outline-offset:4px}.container{max-width:var(--container);margin:auto;padding:0 30px}.skip-link{position:fixed;top:-100px;left:15px;background:white;padding:10px;z-index:200}.skip-link:focus{top:10px}.site-header{height:82px;position:absolute;inset:0 0 auto;z-index:30;color:white;border-bottom:1px solid #ffffff24;transition:background .25s}.site-header.scrolled,.site-header.menu-open{background:rgba(7,26,53,.98);position:fixed;box-shadow:0 5px 30px #00102020}.header-inner{height:100%;display:flex;align-items:center;gap:40px}.brand{display:inline-flex;gap:13px;align-items:center;flex-shrink:0}.brand-icon{width:33px;height:33px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;transform:rotate(-16deg)}.brand-icon span{background:#83e6ec;border-radius:2px 8px 2px 8px}.brand-icon span:nth-child(2),.brand-icon span:nth-child(3){opacity:.53}.brand-wordmark{display:flex;flex-direction:column;line-height:1.05;letter-spacing:-.04em}.brand-wordmark strong{font-size:20px;font-weight:700}.brand-wordmark small{font-size:9px;letter-spacing:.33em;font-weight:700;margin-top:6px}.desktop-nav{display:flex;align-items:center;gap:33px;margin-left:auto}.desktop-nav a{font-size:12px;font-weight:600;white-space:nowrap;opacity:.88;transition:opacity .2s}.desktop-nav a:hover{opacity:1}.header-contact{font-size:12px;font-weight:700;border:1px solid #ffffff75;padding:11px 17px;white-space:nowrap}.header-contact span{margin-left:14px}.menu-toggle,.mobile-nav{display:none}.hero{background:radial-gradient(circle at 77% 46%,#153964 0,#071a35 53%);color:white;min-height:760px;position:relative;overflow:hidden}.hero-grid,.art-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:78px 78px;mask-image:linear-gradient(90deg,transparent,black)}.hero-glow{position:absolute;width:820px;height:820px;right:-220px;top:-30px;background:radial-gradient(circle,#1ca3bc2b,transparent 64%);pointer-events:none}.hero-inner{min-height:760px;display:grid;grid-template-columns:55% 45%;align-items:center;position:relative;padding-top:80px}.hero-copy{position:relative;z-index:2}.eyebrow{display:flex;align-items:center;gap:12px;color:#477baf;font-size:11px;letter-spacing:.19em;font-weight:700;margin:0 0 32px}.eyebrow-line{width:24px;height:1px;background:#4988bc;display:inline-block}.eyebrow-light{color:#7ddbe8}.eyebrow-light .eyebrow-line{background:#7ddbe8}.hero h1{font-weight:700;font-size:clamp(41px,4.35vw,66px);line-height:1.51;letter-spacing:-.07em;margin:0 0 27px}.gradient-text{background:linear-gradient(100deg,#fff 18%,#8fdee9 80%);color:transparent;background-clip:text}.hero-description{font-size:14px;line-height:2.15;color:#c6d4e6;letter-spacing:.013em;margin:0;max-width:650px}.hero-actions{display:flex;align-items:center;gap:37px;margin-top:40px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:60px;padding:16px 23px;font-size:12px;font-weight:700;transition:transform .2s,background .2s;min-width:188px}.button:hover{transform:translateY(-3px)}.button-light{color:#092039;background:#fff}.button-light:hover{background:#d5faff}.button span,.text-link span{font-size:16px}.text-link{font-size:12px;font-weight:600}.text-link.light{color:#d2e7f5;border-bottom:1px solid #829db3;padding-bottom:7px}.hero-visual{position:relative;width:100%;aspect-ratio:1/1;max-width:550px;justify-self:end}.orbit{position:absolute;inset:13%;border:1px solid #7adcf133;border-radius:50%;transform:rotate(-24deg) scaleX(.88)}.orbit-two{inset:22%;transform:rotate(28deg) scaleX(1.5);border-color:#68aedb55}.orbit-three{inset:2%;transform:rotate(-55deg) scaleY(.73);border-color:#75b7df20}.visual-core{position:absolute;inset:27%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#3489ac,#0a3561 47%,#081830 76%);box-shadow:inset 0 0 28px #80f9f941,0 0 65px #0fd3e52b,0 0 130px #0fd3e512;display:grid;place-items:center}.visual-core:before{content:"";position:absolute;inset:-12%;border:1px solid #2b9cbb40;border-radius:50%}.core-rings{position:absolute;inset:15%;border:1px solid #a1fcff55;border-radius:50%;box-shadow:0 0 22px #92e5f022}.core-rings:before,.core-rings:after{content:"";position:absolute;border:1px solid #a1fcff45;border-radius:50%;inset:19%;transform:scaleX(1.7)}.core-rings:after{transform:scaleY(1.7)}.core-spark{font-size:85px;color:#bafaff;text-shadow:0 0 40px #2ecbe5}.float-chip{position:absolute;background:#ffffff10;border:1px solid #afecff40;box-shadow:0 20px 50px #0002;backdrop-filter:blur(12px);padding:16px 22px;display:flex;align-items:center;gap:14px;color:#b7d2e6;letter-spacing:.14em;font-size:9px;line-height:1.8}.float-chip b{color:white;font-size:12px}.chip-ai{top:19%;right:-2%}.chip-human{left:-3%;bottom:20%}.chip-dot{width:27px;height:27px;border-radius:50%;background:#62e7dc;box-shadow:0 0 22px #62e7dc99}.chip-icon{font-size:26px;color:#91dfea}.small-star{position:absolute;color:#76e8f3}.star-one{left:17%;top:15%;font-size:22px}.star-two{right:5%;bottom:24%;font-size:17px}.star-three{left:25%;bottom:13%;font-size:11px}.visual-caption{position:absolute;bottom:0;left:22%;width:74%;font-size:9px;color:#80a1bd;letter-spacing:.12em;display:flex;justify-content:space-between}.hero-bottom{position:absolute;left:0;right:0;bottom:34px;display:flex;align-items:center;gap:16px;color:#85a8c5;font-size:9px;letter-spacing:.2em}.hero-bottom>span:last-child{margin-left:auto}.scroll-indicator{height:30px;width:1px;background:#69c8d6}.section{padding:126px 0}.intro{background:#fff}.intro-layout{display:grid;grid-template-columns:31% 69%}.section-number{font-size:11px;color:#9eaaba;margin-top:105px;letter-spacing:.12em}.section-title{font-weight:700;font-size:clamp(30px,3.1vw,46px);letter-spacing:-.065em;line-height:1.65;margin:0}.intro-title{margin:-9px 0 32px}.muted-title{color:#71849c}.body-copy{font-size:14px;line-height:2.2;color:#637184}.intro-copy{max-width:660px}.underlined-link{display:inline-flex;align-items:center;gap:44px;justify-content:space-between;font-size:12px;font-weight:700;border-bottom:1px solid #8d9caf;padding-bottom:10px;margin-top:15px}.underlined-link span{font-size:18px}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:102px}.pillars>div{border-top:1px solid var(--line);padding-top:24px}.pillar-icon{color:#3394ab;font-size:13px;font-weight:700}.pillars h3{font-size:22px;font-weight:600;letter-spacing:-.035em;margin:11px 0}.pillars p{color:#728195;font-size:12px;margin:0}.business{background:var(--bg)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:55px}.section-heading .eyebrow{margin-bottom:23px}.section-heading .body-copy{margin-bottom:4px}.business-card{display:grid;grid-template-columns:50% 50%;min-height:505px;overflow:hidden;margin-top:20px;background:white}.business-content{padding:52px 56px;position:relative}.business-index{font-size:10px;color:#94a4b5;letter-spacing:.16em;font-weight:700;display:block;margin-bottom:48px}.business-category{display:block;font-size:10px;letter-spacing:.16em;font-weight:700;color:#347f9a}.business-title{font-family:'DM Sans',sans-serif;font-size:clamp(43px,4vw,64px);line-height:1.16;letter-spacing:-.06em;margin:8px 0 0;font-weight:700}.business-title span:not(.dot-accent){font-weight:400}.business-jp{margin:6px 0 30px;color:#7a8999;font-size:11px}.business-content h4{font-size:19px;letter-spacing:-.04em;margin:0 0 12px}.business-content>p:not(.business-jp){font-size:12px;line-height:2.1;color:#718195;max-width:475px}.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:27px}.tag-row span{border:1px solid #dce4ec;color:#65788d;font-size:10px;padding:4px 10px}.business-links{display:flex;align-items:center;gap:22px;margin-top:30px}.circle-arrow{width:43px;height:43px;background:#0c2747;color:white;border-radius:50%;display:grid;place-items:center;font-size:20px;transition:transform .2s}.circle-arrow:hover{transform:rotate(45deg)}.business-links .underlined-link{margin-top:0}.business-art{position:relative;overflow:hidden;display:grid;place-items:center}.ouchi-art{background:radial-gradient(circle at 70% 20%,#e8faf9,#d2e9ee 63%,#c6e0e9)}.art-grid{background-image:linear-gradient(#ffffff46 1px,transparent 1px),linear-gradient(90deg,#ffffff46 1px,transparent 1px);background-size:46px 46px;mask-image:none}.learn-window{width:75%;max-width:370px;background:white;box-shadow:0 35px 85px #28516d33;border-radius:13px;transform:rotate(-5deg);position:relative;overflow:hidden}.window-top{height:38px;background:#f3f7f9;border-bottom:1px solid #e1ecf1;display:flex;gap:4px;align-items:center;padding:0 16px}.window-top i{width:6px;height:6px;background:#b4d6de;border-radius:50%}.window-top span{margin-left:13px;color:#7f9baa;font-size:7px;letter-spacing:.16em}.lesson-screen{display:flex;padding:25px;min-height:235px;gap:20px;align-items:center}.lesson-avatar{align-self:end;width:44%;border-radius:50% 50% 8px 8px;background:#e0f2f3;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.lesson-avatar svg{width:100%}.lesson-copy{flex:1}.lesson-copy>span{font-size:7px;color:#61a5a4;letter-spacing:.1em}.lesson-copy strong{font-size:22px;line-height:1.2;display:block;color:#0b3555;margin:12px 0 21px}.lesson-progress{height:7px;background:#e8eef2;border-radius:6px;overflow:hidden}.lesson-progress i{width:66%;height:100%;display:block;background:#65c7cf;border-radius:6px}.lesson-copy small{font-size:6px;color:#9aaeb9}.mini-tile{position:absolute;bottom:12%;right:5%;background:#123f60;color:white;padding:12px 18px;display:grid;grid-template-columns:auto auto;column-gap:36px;align-items:center;box-shadow:0 12px 32px #214a6c4a;transform:rotate(5deg)}.mini-tile span{font-size:26px;font-weight:700}.mini-tile i{font-style:normal;color:#70d7d8;font-size:25px}.mini-tile small{grid-column:1/3;font-size:7px;letter-spacing:.08em}.latver-card{margin-top:26px}.latver-card .business-art{grid-column:1;grid-row:1}.latver-card .business-content{grid-column:2;grid-row:1}.latver-art{background:radial-gradient(circle at 40% 50%,#184b77,#091a39 67%)}.latver-art .art-grid{opacity:.28}.category-cyan{color:#1688a2}.dot-accent{color:#36bfd3}.coming-soon{margin-left:12px;color:#2185a2;font-size:9px;font-weight:700;letter-spacing:.11em;border:1px solid #aed8e3;padding:4px 7px}.latver-halo{position:absolute;width:380px;height:380px;border:1px solid #4ba3bc5a;box-shadow:0 0 0 55px #317e9a12,0 0 0 105px #317e9a0d;border-radius:50%}.phone-frame{width:224px;height:404px;border:7px solid #162b4d;border-radius:34px;background:#f8fbfe;position:relative;box-shadow:20px 36px 65px #0007,0 0 0 2px #6badd855;transform:rotate(-10deg);overflow:hidden}.phone-notch{height:15px;width:72px;border-radius:0 0 12px 12px;background:#172d51;margin:0 auto}.phone-content{padding:15px 16px}.phone-brand{font-weight:800;color:#142e4d;font-size:24px;letter-spacing:-.06em}.phone-brand span{color:#29bdd4}.phone-content>small{display:block;font-size:7px;color:#7390a8;letter-spacing:.13em;margin:22px 0 14px}.phone-sentence{display:flex;flex-wrap:wrap;gap:5px}.phone-sentence span{background:#def1f7;border:1px solid #bbdae8;color:#265a7e;padding:4px 7px;border-radius:5px;font-size:11px;font-weight:700}.phone-sentence span:nth-child(2){background:#b8edf1}.phone-rules{margin:27px 0}.phone-rules div{display:flex;align-items:center;gap:12px;margin:12px 0}.phone-rules b{font-size:8px;color:#7a9baa}.phone-rules i{height:7px;width:68%;border-radius:10px;background:#dbe9f0}.phone-rules div:nth-child(2) i{width:89%;background:#9cdae7}.phone-rules div:nth-child(3) i{width:52%}.phone-action{background:#0f3159;color:white;padding:10px;text-align:center;font-size:9px;border-radius:5px}.phone-action span{float:right}.phone-float{position:absolute;top:25%;right:4%;background:#ffffffeb;color:#34667c;font-size:9px;letter-spacing:.11em;line-height:1.8;padding:12px 19px;box-shadow:0 17px 35px #0005}.phone-float b{color:#12344c;font-size:11px;letter-spacing:0}.approach{background:#071a35;color:white;overflow:hidden}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.approach-copy .section-title{font-size:clamp(30px,3.2vw,46px)}.approach-copy>p:not(.eyebrow){font-size:13px;line-height:2.2;color:#b1c3d6;max-width:440px;margin:30px 0}.button-outline{border:1px solid #90b8ce;min-width:210px}.button-outline:hover{background:#ffffff12}.approach-diagram{height:480px;position:relative}.diagram-circle{width:290px;height:290px;border-radius:50%;border:1px solid #77d6e899;position:absolute;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle,#1a42689c,#0a264566);box-shadow:inset 0 0 55px #33809b22}.diagram-circle small{color:#5bcbda;letter-spacing:.2em}.diagram-circle strong{font-size:18px;letter-spacing:.05em;margin-top:12px}.diagram-circle span{font-size:10px;color:#7fabc2}.education-circle{top:25px;left:0}.tech-circle{top:125px;right:0}.diagram-center{position:absolute;top:192px;left:48%;font-size:36px;color:#c1faff;text-shadow:0 0 40px #b4ffff}.diagram-footer{position:absolute;bottom:5px;left:10%;right:10%;border-top:1px solid #528bab7d;padding-top:22px;letter-spacing:.17em;font-size:11px;display:flex;justify-content:space-between;color:#b6d9e5}.mission{background:#f7f9fc}.mission-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14%;align-items:end}.mission h2{font-size:clamp(27px,2.8vw,40px);line-height:1.7;letter-spacing:-.06em;margin:0}.mission-wrap>div:last-child p{font-size:13px;color:#67778a;line-height:2.3;margin:0 0 16px}.contact-banner{background:linear-gradient(115deg,#123b62,#0b2341 70%);color:white;padding:75px 0}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.contact-inner .eyebrow{margin-bottom:14px}.contact-inner h2{font-size:38px;margin:0;letter-spacing:-.06em}.contact-inner p:not(.eyebrow){font-size:13px;color:#c1d3e1}.footer{background:#061528;color:#b0c0d1;padding:67px 0 20px}.footer-main{display:flex;justify-content:space-between;gap:50px;padding-bottom:75px}.footer-brand{color:white}.footer-about>p{font-size:12px;margin:25px 0;color:#92a9bb}.footer-about>small{font-size:11px;line-height:1.9;color:#7089a2}.footer-links{display:flex;gap:95px}.footer-links>div{display:flex;flex-direction:column;gap:12px}.footer-links h3{font-size:10px;letter-spacing:.17em;color:#65cad7;margin:0 0 14px}.footer-links a{font-size:12px}.footer-links a:hover{color:white}.footer-bottom{border-top:1px solid #ffffff18;padding-top:20px;display:flex;gap:24px;align-items:center;font-size:10px;color:#738aa0}.footer-bottom span:last-child{margin-left:auto;letter-spacing:.1em}#about,#business,#approach{scroll-margin-top:80px}@media(max-width:1100px){.desktop-nav{gap:17px}.header-inner{gap:18px}.business-content{padding:45px 35px}.hero h1{font-size:50px}.diagram-circle{width:245px;height:245px}.education-circle{left:-10px}.tech-circle{right:-10px}}@media(max-width:820px){.container{padding:0 24px}.site-header{height:70px}.desktop-nav,.header-contact{display:none}.header-inner{justify-content:space-between}.menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;gap:7px;align-items:center;justify-content:center;background:transparent;border:1px solid #ffffff50;cursor:pointer}.menu-toggle span{width:21px;height:1.5px;background:white;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{display:flex;position:absolute;top:70px;left:0;right:0;background:#071a35;padding:14px 24px 26px;flex-direction:column;gap:0;box-shadow:0 20px 25px #0003;visibility:hidden;opacity:0;transform:translateY(-10px);transition:all .2s}.mobile-nav.open{visibility:visible;opacity:1;transform:none}.mobile-nav a{padding:13px 0;border-bottom:1px solid #ffffff25;font-size:14px}.hero,.hero-inner{min-height:800px}.hero-inner{display:block;padding-top:155px}.hero-copy{max-width:600px}.hero h1{font-size:clamp(40px,7vw,61px);line-height:1.5}.hero-visual{position:absolute;width:430px;right:-110px;bottom:55px;opacity:.65}.hero-copy{position:relative;z-index:4}.hero-bottom>span:last-child{display:none}.section{padding:85px 0}.intro-layout{grid-template-columns:1fr}.section-number{display:none}.intro-title{margin-top:0}.pillars{gap:18px;margin-top:70px}.pillars h3{font-size:18px}.section-heading{align-items:flex-start;flex-direction:column}.business-card{grid-template-columns:1fr}.business-content{padding:43px}.business-art{min-height:370px}.latver-card .business-art,.latver-card .business-content{grid-column:1;grid-row:auto}.latver-card .business-content{grid-row:1}.approach-grid{grid-template-columns:1fr;gap:0}.approach-diagram{max-width:500px;width:100%;margin:40px auto 0}.mission-wrap{gap:40px}.footer-links{gap:38px}}@media(max-width:560px){.container{padding:0 20px}.brand-wordmark strong{font-size:18px}.hero,.hero-inner{min-height:730px}.hero-inner{padding-top:140px}.eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:24px}.hero h1{font-size:clamp(33px,8.7vw,46px);margin-bottom:22px}.desktop-break,.wide-only{display:none}.hero-description{font-size:12px;max-width:340px;line-height:2.1}.hero-actions{gap:25px;flex-wrap:wrap;margin-top:30px}.hero-actions .button{min-width:153px;gap:20px;padding:12px 15px}.text-link{font-size:11px}.hero-visual{width:340px;right:-125px;bottom:27px;opacity:.42}.float-chip{display:none}.visual-caption{display:none}.hero-bottom{bottom:15px}.section{padding:75px 0}.section-title{font-size:clamp(26px,7.4vw,35px)}.intro-title{line-height:1.7}.body-copy{font-size:13px}.pillars{grid-template-columns:1fr;gap:27px;margin-top:57px}.pillars>div{padding-top:17px}.pillars h3{margin:5px 0;font-size:20px}.section-heading{margin-bottom:32px}.business-content{padding:32px 25px}.business-index{margin-bottom:34px}.business-title{font-size:47px}.business-content h4{font-size:17px}.business-art{min-height:320px}.learn-window{width:78%}.lesson-screen{padding:18px;min-height:195px;gap:10px}.lesson-copy strong{font-size:17px}.mini-tile{right:1%;bottom:5%}.latver-halo{width:300px;height:300px}.phone-frame{transform:rotate(-9deg) scale(.8)}.phone-float{right:0;top:20%}.approach-copy .section-title{font-size:30px}.approach-diagram{height:310px}.diagram-circle{width:190px;height:190px}.education-circle{left:-8px;top:10px}.tech-circle{right:-8px;top:85px}.diagram-circle strong{font-size:12px}.diagram-circle span{font-size:8px}.diagram-center{top:126px;left:48%;font-size:23px}.diagram-footer{font-size:9px;bottom:0}.mission-wrap{grid-template-columns:1fr;gap:25px}.mission h2{font-size:28px}.contact-banner{padding:65px 0}.contact-inner{align-items:flex-start;flex-direction:column}.contact-inner h2{font-size:30px}.footer-main{flex-direction:column;gap:45px;padding-bottom:40px}.footer-links{justify-content:space-between}.footer-bottom{flex-wrap:wrap}.footer-bottom span:last-child{margin-left:0;width:100%}}@media(prefers-reduced-motion:no-preference){.orbit-one{animation:spin 35s linear infinite}.orbit-two{animation:spin-reverse 45s linear infinite}.visual-core{animation:levitate 6s ease-in-out infinite}.float-chip{animation:levitate 8s ease-in-out infinite}.chip-human{animation-delay:-3s}}@keyframes spin{to{transform:rotate(336deg) scaleX(.88)}}@keyframes spin-reverse{to{transform:rotate(-332deg) scaleX(1.5)}}@keyframes levitate{50%{translate:0 -12px}}

/* Official-service imagery in v2 (externally hosted by OUCHI INTER) */
.real-photo-art{display:block;min-height:500px;background:#dbe9ed;isolation:isolate}
.real-photo-art .main-photo{display:block;width:100%;height:100%;min-height:500px;object-fit:cover;object-position:55% 50%}
.real-photo-art:after{content:"";position:absolute;inset:55% 0 0;pointer-events:none;background:linear-gradient(transparent,rgba(4,24,45,.34));z-index:0}
.secondary-photo-frame{position:absolute;right:5%;bottom:9%;width:39%;aspect-ratio:1.25;overflow:hidden;z-index:1;border:5px solid #fff;box-shadow:0 16px 35px #08294b60}
.secondary-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}
.photo-label{position:absolute;left:6%;bottom:7%;color:#fff;font-weight:700;letter-spacing:.13em;font-size:10px;z-index:2;text-shadow:0 2px 10px #000a;display:flex;flex-direction:column;gap:4px}
.photo-label span{font-size:16px;letter-spacing:.08em}
.app-concept-label{position:absolute;bottom:12px;left:16px;color:#d5edfa;font-size:10px;letter-spacing:.04em;z-index:3;background:#102d4cba;padding:4px 10px}
@media(max-width:820px){.real-photo-art,.real-photo-art .main-photo{min-height:390px}}
@media(max-width:560px){.real-photo-art,.real-photo-art .main-photo{min-height:350px}.secondary-photo-frame{width:34%;right:4%;bottom:10%}.photo-label{font-size:8px}.photo-label span{font-size:12px}}


/* Official brand assets integration (2026-11-06) */
.site-header {background:rgba(255,255,255,.98);color:#102a50;border-bottom:1px solid #e8edf4}
.site-header.scrolled,.site-header.menu-open {background:rgba(255,255,255,.99);color:#102a50}
.brand{gap:9px;min-width:0}.corporate-mark{width:59px;height:59px;object-fit:contain;flex-shrink:0}.corporate-name{font-family:Georgia,'Times New Roman',serif;font-weight:600;font-size:18px;line-height:1.2;white-space:nowrap;color:#142b4a}
.site-header .desktop-nav a{color:#142b4a;opacity:1}.site-header .desktop-nav a:hover{color:#2775a3}.header-contact{color:#14345a;border:1px solid #8098b3}.menu-toggle{border-color:#7890a9}.menu-toggle span{background:#102a50}.mobile-nav{background:#fff;color:#102a50;border-top:1px solid #dde6ef}.mobile-nav a{border-bottom-color:#e1e8f0}
.footer .corporate-name{color:#fff}.footer .corporate-mark{background:#fff;border-radius:50%}
.ouchi-wordmark{display:block;width:min(100%,305px);height:auto;max-height:91px;object-fit:contain;object-position:left center;margin:16px 0 3px}
.latver-wordmark{display:block;width:min(100%,310px);height:auto;max-height:97px;object-fit:contain;object-position:left center;margin:15px 0 3px}
.real-latver-art{background:radial-gradient(circle at 45% 44%,#3d5875,#101b29 70%)}
.latver-product-shot{height:100%;width:100%;max-height:580px;object-fit:contain;object-position:center center;display:block}
.app-photo-label{position:absolute;left:22px;bottom:14px;color:#d7ecf6;font-size:9px;letter-spacing:.17em;background:#091829a8;padding:6px 11px}
@media(max-width:820px){.corporate-mark{width:49px;height:49px}.corporate-name{font-size:16px}.real-latver-art{height:440px}}
@media(max-width:560px){.corporate-mark{width:44px;height:44px}.corporate-name{font-size:14px}.real-latver-art{height:380px}.latver-product-shot{object-fit:contain}.ouchi-wordmark,.latver-wordmark{max-width:260px}}

/* v4 — service card proportions and media containment fix (2026-11-06)
   Media is positioned independently of its intrinsic pixel dimensions.
   This prevents tall photographs from growing the entire grid row. */
@media (min-width: 821px) {
  .business-card {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    height: 555px;
    min-height: 0;
    align-items: stretch;
  }
  .business-content {padding: 37px 43px; min-width: 0; overflow: hidden;}
  .business-index {margin-bottom: 26px;}
  .business-content > p:not(.business-jp) {line-height: 1.85;}
  .business-links {margin-top: 18px;}
  .tag-row {margin-top: 17px;}
  .business-jp {margin-bottom: 16px;}
}
.business-art {min-width:0; min-height:0; height:100%; isolation:isolate;}
.real-photo-art {display:block; min-height:0; height:100%; overflow:hidden;}
.real-photo-art .main-photo {
  position:absolute; inset:0; display:block;
  width:100%; height:100%; min-height:0;
  max-width:none; max-height:none;
  object-fit:cover; object-position:50% 50%;
}
.secondary-photo-frame {width:35%; aspect-ratio: 4 / 3;}
.secondary-photo-frame img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.real-latver-art {position:relative; height:100%; min-height:0;overflow:hidden;}
.latver-product-shot {
  position:absolute; inset:0; display:block;
  width:100%;height:100%;min-height:0;max-height:none;
  object-fit:contain;object-position:center center;
}
.ouchi-wordmark,.latver-wordmark {max-height:76px;max-width:270px;margin-top:11px;}
@media (min-width:821px) and (max-width:1100px) {
  .business-card {height:565px;}
  .business-content {padding:32px 30px;}
  .business-index {margin-bottom:24px;}
  .business-content h4 {font-size:17px;}
}
@media (max-width:820px) {
  .business-card {display:flex; flex-direction:column;height:auto;min-height:0;}
  .business-card .business-content {order:0;min-width:0;padding:35px 34px;overflow:visible;}
  .business-card .business-art {order:1;position:relative;width:100%;height:390px;min-height:0;flex:0 0 390px;}
  .real-photo-art,.real-latver-art {height:390px;min-height:0;}
  .real-photo-art .main-photo {min-height:0;}
  .latver-product-shot {max-height:none;}
  .business-index {margin-bottom:20px;}
}
@media (max-width:560px) {
  .business-card .business-content {padding:28px 24px 32px;}
  .business-card .business-art {height:330px;flex-basis:330px;}
  .real-photo-art,.real-latver-art {height:330px;min-height:0;}
  .ouchi-wordmark,.latver-wordmark {max-width:240px;max-height:68px;}
  .business-content>p:not(.business-jp){font-size:12px;}
  .photo-label {max-width:50%;}
}


/* v5 — OUCHI card uses a single photo only, aligned with LATVER presentation */
.real-ouchi-single-art{position:relative;background:linear-gradient(180deg,#f4f7fb 0%,#e7eef6 100%);height:100%;min-height:0;overflow:hidden;}
.ouchi-service-shot{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center center;}
.real-ouchi-single-art::after{content:"";position:absolute;inset:auto 0 0 0;height:28%;background:linear-gradient(180deg,rgba(9,24,41,0) 0%,rgba(9,24,41,.22) 100%);pointer-events:none;}
.single-photo-label{left:22px;bottom:14px;z-index:2;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.35);}
.single-photo-label span{font-size:14px;}
/* disable prior collage-only pieces when old cache/css remains */
.real-ouchi-single-art .secondary-photo-frame,.real-ouchi-single-art .main-photo{display:none !important;}
@media (max-width:820px){.real-ouchi-single-art{height:390px;}}
@media (max-width:560px){.real-ouchi-single-art{height:330px;}.single-photo-label{left:16px;bottom:12px;}.single-photo-label span{font-size:12px;}}


/* v7 — higher legibility and mobile-first service priority */
@media (min-width: 821px) {
  .hero-description, .body-copy, .intro-copy {font-size:17px;line-height:1.95;}
  .pillars p,.business-content>p:not(.business-jp),.approach-copy>p:not(.eyebrow),.mission-wrap>div:last-child p,.contact-inner p:not(.eyebrow) {font-size:16px;line-height:1.85;}
  .business-jp,.tag-row span {font-size:13px;}
  .business-content h4 {font-size:22px;}
  .business-card {height:645px;}
  .business-content {padding:42px 45px;overflow:visible;}
  .business-index {margin-bottom:28px;}
  .underlined-link,.text-link,.button,.footer-links a,.footer-about>p {font-size:14px;}
  .desktop-nav a {font-size:14px;}
  .footer-about>small {font-size:13px;}
}
@media (min-width:821px) and (max-width:1100px) {
  .business-card {height:675px;}
  .business-content {padding:32px;}
}
@media (max-width:820px) {
  .business .container {display:flex;flex-direction:column;}
  .business .section-heading {order:0;}
  .hero-description,.body-copy,.intro-copy,.pillars p,.business-content>p:not(.business-jp),.approach-copy>p:not(.eyebrow),.mission-wrap>div:last-child p,.contact-inner p:not(.eyebrow) {font-size:15px;line-height:1.95;}
  .business-jp,.tag-row span {font-size:12px;}
  .underlined-link,.button,.text-link {font-size:13px;}
}
.single-photo-label{font-size:13px;line-height:1.35;letter-spacing:.04em;max-width:85%;text-transform:none;}
.single-photo-label span{display:none;}


/* v9 — premium SVG sparkle system and mobile hero wrapping fix */
.hero-phrase{display:inline-block;white-space:nowrap;}
.sparkle-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;color:var(--cyan);}
.sparkle-icon svg{display:block;width:100%;height:100%;}
.sparkle-icon path{fill:currentColor;}
.core-spark{width:88px;height:88px;color:#8feef7;filter:drop-shadow(0 0 14px rgba(109,235,244,.42)) drop-shadow(0 0 36px rgba(39,197,223,.18));}
.chip-icon.sparkle-chip{width:22px;height:22px;color:#96e8f2;flex:0 0 auto;filter:drop-shadow(0 0 12px rgba(86,221,235,.28));}
.small-star{position:absolute;pointer-events:none;}
.small-star.sparkle-small{color:#7fe5f2;filter:drop-shadow(0 0 14px rgba(87,223,236,.28));}
.star-one{left:18%;top:16%;width:18px;height:18px;}
.star-two{right:7%;bottom:24%;width:14px;height:14px;}
.sparkle-diagram{width:32px;height:32px;color:#a9f6ff;filter:drop-shadow(0 0 14px rgba(86,221,235,.22));}
.diagram-center{display:flex;align-items:center;justify-content:center;}
/* soften old emoji-driven treatments */
.visual-core{box-shadow:inset 0 0 28px rgba(128,249,249,.20),0 0 55px rgba(15,211,229,.18),0 0 110px rgba(15,211,229,.08);}
@media(prefers-reduced-motion:no-preference){
  .core-spark{animation:sparklePulse 4.8s ease-in-out infinite;}
  .small-star.sparkle-small{animation:sparkleTwinkle 6.2s ease-in-out infinite;}
  .star-two{animation-delay:-2.4s;}
  .sparkle-diagram{animation:sparklePulse 5.6s ease-in-out infinite;}
  .chip-icon.sparkle-chip{animation:sparklePulse 6s ease-in-out infinite;}
}
@keyframes sparklePulse{0%,100%{transform:scale(.96);opacity:.78}50%{transform:scale(1);opacity:1}}
@keyframes sparkleTwinkle{0%,100%{transform:scale(.92);opacity:.55}50%{transform:scale(1.08);opacity:.96}}
@media(max-width:820px){
  .hero-copy{max-width:100%;}
  .hero h1{font-size:clamp(36px,6.6vw,58px);line-height:1.38;letter-spacing:-.06em;max-width:12.5em;}
  .hero-phrase{white-space:nowrap;}
  .core-spark{width:74px;height:74px;}
}
@media(max-width:560px){
  .hero h1{font-size:clamp(30px,8.1vw,41px);line-height:1.33;max-width:11.6em;}
  .hero-copy{max-width:100%;}
  .core-spark{width:62px;height:62px;}
  .chip-icon.sparkle-chip{width:18px;height:18px;}
  .star-one{width:14px;height:14px;left:20%;top:17%;}
  .star-two{width:11px;height:11px;right:9%;bottom:25%;}
  .sparkle-diagram{width:23px;height:23px;}
}


/* v10 — cool platinum-silver highlights (premium EdTech aesthetic) */
/* Gradient colors live inside each SVG so they stay crisp on high-density screens. */
.sparkle-icon path{fill:unset;}
.core-spark{color:#e4edf7;filter:drop-shadow(0 0 3px rgba(255,255,255,.62)) drop-shadow(0 0 15px rgba(214,231,249,.34)) drop-shadow(0 0 33px rgba(126,188,222,.17));}
.small-star.sparkle-small{color:#dae7f4;filter:drop-shadow(0 0 3px rgba(255,255,255,.68)) drop-shadow(0 0 10px rgba(208,227,246,.30));}
.chip-icon.sparkle-chip{color:#e7f0f8;filter:drop-shadow(0 0 3px rgba(255,255,255,.55)) drop-shadow(0 0 9px rgba(221,231,246,.25));}
.sparkle-diagram{color:#dce8f4;filter:drop-shadow(0 0 4px rgba(255,255,255,.54)) drop-shadow(0 0 17px rgba(211,227,242,.32));}
@media (prefers-reduced-motion:reduce){.core-spark,.sparkle-small,.sparkle-diagram,.sparkle-chip{animation:none!important;}}


/* v11 — luminous platinum: crisp radiant highlights without emoji/extra stars */
.sparkle-icon{position:relative;isolation:isolate;overflow:visible;}
.sparkle-icon svg{overflow:visible;position:relative;z-index:1;}
.sparkle-icon::before{content:"";position:absolute;z-index:0;inset:-30%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55) 0%,rgba(221,239,255,.26) 22%,rgba(145,214,246,.13) 44%,transparent 70%);filter:blur(7px);pointer-events:none;}
.sparkle-icon .spark-ray{filter:drop-shadow(0 0 2px rgba(255,255,255,.95));}
.sparkle-icon .spark-core-dot{filter:drop-shadow(0 0 4px white);}
.core-spark{filter:drop-shadow(0 0 5px rgba(255,255,255,.95)) drop-shadow(0 0 19px rgba(233,246,255,.70)) drop-shadow(0 0 45px rgba(134,211,251,.38));}
.core-spark::before{inset:-47%;filter:blur(11px);}
.small-star.sparkle-small{filter:drop-shadow(0 0 3px rgba(255,255,255,.95)) drop-shadow(0 0 12px rgba(218,240,255,.65));}
.sparkle-diagram{filter:drop-shadow(0 0 4px rgba(255,255,255,.9)) drop-shadow(0 0 20px rgba(222,243,255,.57));}
.chip-icon.sparkle-chip{filter:drop-shadow(0 0 3px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(235,249,255,.48));}
@media(prefers-reduced-motion:no-preference){
  .core-spark{animation:silverGleam 3.9s ease-in-out infinite;}
  .core-spark::before{animation:silverHalo 3.9s ease-in-out infinite;}
  .core-spark .spark-ray{animation:silverRays 3.9s ease-in-out infinite;transform-origin:50px 50px;}
  .sparkle-small{animation:silverTwinkle 4.6s ease-in-out infinite;}
  .sparkle-small.star-two{animation-delay:-2.1s;}
  .sparkle-diagram{animation:silverGleam 5s ease-in-out infinite;}
}
@keyframes silverGleam{0%,100%{opacity:.89;transform:scale(.96)}45%{opacity:1;transform:scale(1.11)}65%{opacity:.98;transform:scale(1.035)}}
@keyframes silverHalo{0%,100%{opacity:.36;transform:scale(.83)}45%{opacity:1;transform:scale(1.13)}70%{opacity:.64;transform:scale(1)}}
@keyframes silverRays{0%,100%{opacity:.65;transform:scale(.9)}45%{opacity:1;transform:scale(1.08)}}
@keyframes silverTwinkle{0%,100%{opacity:.54;transform:scale(.82)}42%{opacity:1;transform:scale(1.23)}60%{opacity:.84;transform:scale(1.03)}}
@media(prefers-reduced-motion:reduce){.sparkle-icon,.sparkle-icon::before,.sparkle-icon .spark-ray{animation:none!important;}}


/* v12 — user-supplied luminous silver flare (checkerboard removed as alpha) */
.visual-core .lightburst-main{display:block;position:relative;z-index:3;width:186px;height:186px;max-width:112%;max-height:112%;object-fit:contain;filter:drop-shadow(0 0 12px rgba(255,255,255,.45)) drop-shadow(0 0 28px rgba(216,238,255,.36));pointer-events:none;}
.diagram-center .lightburst-intersection{width:106px;height:106px;max-width:none;object-fit:contain;filter:drop-shadow(0 0 10px rgba(235,247,255,.3));pointer-events:none;}
/* Prior SVG-specific animation only applies to original SVG classes; animate image instead. */
@media(prefers-reduced-motion:no-preference){.visual-core .lightburst-main{animation:lightburstBreathe 5s ease-in-out infinite}.diagram-center .lightburst-intersection{animation:lightburstBreathe 6s ease-in-out infinite}}
@keyframes lightburstBreathe{0%,100%{opacity:.78;transform:scale(.96)}50%{opacity:1;transform:scale(1.045)}}
@media(max-width:820px){.visual-core .lightburst-main{width:155px;height:155px}.diagram-center .lightburst-intersection{width:86px;height:86px}}
@media(max-width:560px){.visual-core .lightburst-main{width:132px;height:132px}.diagram-center .lightburst-intersection{width:72px;height:72px}}
@media(prefers-reduced-motion:reduce){.visual-core .lightburst-main,.diagram-center .lightburst-intersection{animation:none!important}}

/* v13 — center the flare precisely in the Education × Technology overlap */
.approach-diagram .diagram-center{
  position:absolute;
  left:50%;
  top:46%;
  width:0;
  height:0;
  transform:translate(-50%,-50%);
  z-index:8;
  overflow:visible;
  filter:none;
  pointer-events:none;
}
.approach-diagram .diagram-center .lightburst-intersection{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  width:188px;
  height:188px;
  max-width:none;
  max-height:none;
  object-fit:contain;
  margin-left:-94px;
  margin-top:-94px;
  opacity:1;
  filter:drop-shadow(0 0 15px rgba(255,255,255,.50)) drop-shadow(0 0 32px rgba(210,231,255,.42));
}
@media(max-width:820px){
  .approach-diagram .diagram-center{left:50%;top:46%;}
  .approach-diagram .diagram-center .lightburst-intersection{width:156px;height:156px;margin-left:-78px;margin-top:-78px;}
}
@media(max-width:560px){
  .approach-diagram .diagram-center{left:50%;top:46%;}
  .approach-diagram .diagram-center .lightburst-intersection{width:132px;height:132px;margin-left:-66px;margin-top:-66px;}
}

/* v16 — slightly smaller hero and OUR APPROACH headlines; maintain mobile line integrity */
.hero h1 {
  font-size: clamp(37px, 3.9vw, 58px);
  line-height: 1.44;
}
.approach-copy .section-title {
  font-size: clamp(28px, 2.9vw, 41px);
  line-height: 1.6;
}
@media (min-width: 561px) and (max-width: 1100px) {
  .hero h1 { font-size: clamp(36px, 4.5vw, 48px); }
}
@media (max-width: 820px) {
  .hero h1 { font-size: clamp(31px, 5.9vw, 48px); }
  .approach-copy .section-title { font-size: clamp(27px, 4vw, 35px); }
}
@media (max-width: 560px) {
  .hero h1 { font-size: clamp(23px, 7.1vw, 35px); line-height: 1.4; max-width: none; }
  .hero-phrase { white-space: nowrap; }
  .approach-copy .section-title { font-size: clamp(22px, 6.4vw, 30px); line-height: 1.55; }
}
