:root{--navy:#07375f;--navy2:#0b4e7c;--orange:#0872b5;--ink:#15354c;--muted:#486879;--paper:#f3f8fc;--line:#cbdde9}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",Arial,sans-serif;font-size:16px;line-height:1.8}button,input{font:inherit}button{cursor:pointer}img,video{max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ffa45d;outline-offset:4px}.skip-link{position:fixed;z-index:100;top:-100px;left:16px;padding:10px 18px;background:white}.skip-link:focus{top:12px}.container{width:min(100% - 8vw,1380px);margin-inline:auto}.section{padding:105px 0;scroll-margin-top:74px}.section h2,.process-intro h2,.contact h2{font-size:clamp(2.2rem,4.15vw,4.4rem);font-weight:650;line-height:1.28;letter-spacing:-.055em;margin:20px 0 28px;text-wrap:balance}.section h2 em,.contact h2 em{font-style:normal;color:var(--orange)}.section p{max-width:46em}.eyebrow{display:flex;align-items:center;gap:13px;color:#405765;font:700 .76rem/1.3 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}.eyebrow span{color:var(--orange)}.eyebrow span:after{content:"";display:inline-block;vertical-align:middle;width:27px;height:1px;margin-left:14px;background:currentColor}.eyebrow.light{color:#ccd9df}
.header{position:fixed;inset:0 0 auto;z-index:50;height:78px;padding:0 4vw;display:flex;justify-content:space-between;align-items:center;background:#091a27f3;color:white;border-bottom:1px solid #ffffff20;backdrop-filter:blur(16px)}.brand{display:inline-flex;align-items:center;gap:12px;line-height:1.15;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--orange);color:white;font:900 1.7rem Arial,sans-serif;transform:skew(-10deg)}.brand strong{display:block;font:800 1.05rem Arial,sans-serif;letter-spacing:.13em}.brand em{font-style:normal;color:var(--orange)}.brand small{display:block;margin-top:4px;color:#aebdc4;font-size:.57rem;letter-spacing:.16em}.nav{display:flex;align-items:center;gap:clamp(15px,2vw,36px)}.nav a{font-size:.75rem;font-weight:700;letter-spacing:.06em;white-space:nowrap;transition:color .2s}.nav a:hover{color:#ffa45d}.nav .nav-cta{background:var(--orange);color:white;padding:15px 20px}.nav .nav-cta:hover{color:white;background:#ff8a2a}.menu-button{display:none;width:42px;height:42px;border:0;background:transparent;position:relative}.menu-button span{position:absolute;left:7px;right:7px;height:2px;background:white;top:15px;transition:transform .2s,top .2s}.menu-button span:last-child{top:26px}.menu-button[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{top:21px;transform:rotate(-45deg)}
.hero{position:relative;min-height:760px;height:92svh;display:flex;align-items:center;background:#071420;color:white;overflow:hidden;scroll-margin-top:0}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.64}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#061521f2 0%,#061521ca 40%,#06152122 100%),linear-gradient(0deg,#061521ab,transparent 32%)}.hero-content{position:relative;z-index:1;padding:90px 0 30px}.hero h1{font-size:clamp(3.4rem,6.5vw,7.2rem);letter-spacing:-.07em;line-height:1.18;margin:25px 0 30px;text-wrap:balance}.hero h1 em{font-style:normal;color:#ff8c31}.hero-lead{font-size:clamp(1.1rem,1.6vw,1.42rem);line-height:1.95;color:#e2ecf0}.hero-actions{display:flex;gap:14px;margin-top:37px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;min-width:220px;padding:16px 20px;font-weight:700;font-size:.87rem;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button span{font-size:1.2rem}.button-orange{background:var(--orange)}.button-orange:hover{background:#ff8a2a}.button-line{border:1px solid #ffffffa0}.button-line:hover{background:#ffffff1c}.hero-credit{position:absolute;right:4vw;bottom:25px;z-index:2;font-size:.69rem;color:#d6e0e5}.scroll-cue{position:absolute;left:4vw;bottom:26px;z-index:2;display:flex;gap:30px;align-items:center;font:700 .65rem Arial,sans-serif;letter-spacing:.2em}.scroll-cue span{color:var(--orange);font-size:1.2rem}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7vw;align-items:center}.two-col>div{min-width:0}.two-col p{color:var(--muted);line-height:2}.feature-image{position:relative;margin:0;min-width:0}.feature-image>img{display:block;width:100%;max-height:570px;aspect-ratio:16/11;object-fit:cover}.feature-image figcaption{font-size:.72rem;color:#74858e;margin-top:9px}.concept{background:#fff}.movie{background:#0b2030;color:#fff}.movie .section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.movie .section-head h2{margin-bottom:0}.movie .section-head>p{margin-bottom:4px;color:#b8cbd5}.movie video{display:block;width:100%;aspect-ratio:16/9;max-height:740px;background:#000;object-fit:contain}.challenge{background:#e9eff1}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}.card-grid article{background:white;border-top:3px solid var(--orange);padding:30px}.card-grid article span{font:700 .73rem Arial,sans-serif;letter-spacing:.16em;color:var(--orange)}.card-grid article h3{font-size:1.4rem;line-height:1.35;margin:15px 0}.card-grid article p{font-size:.94rem;line-height:1.8;margin:0;color:#536773}
.process-intro{position:relative;padding:100px 0 88px;background:var(--navy);color:white;scroll-margin-top:74px;overflow:hidden}.process-intro:after{content:"";position:absolute;right:-10%;top:-120%;width:65%;aspect-ratio:1;border:1px solid #ffffff15;border-radius:50%;box-shadow:0 0 0 100px #ffffff07,0 0 0 200px #ffffff05}.process-intro .container{position:relative;z-index:1}.process-intro h2{margin-bottom:12px}.process-intro p:not(.eyebrow){color:#b8cbd5}.process-count{position:absolute;right:0;bottom:0;color:#ffffff2a;font:800 clamp(3.2rem,8vw,8rem)/1 Arial,sans-serif;letter-spacing:-.05em}.step:nth-of-type(even){background:#fff}.step.alt{background:#e9eff1}.step-copy h2{margin-bottom:18px}.step-copy p:not(.eyebrow){font-size:1.08rem;color:#536773}.step:nth-of-type(even) .step-copy{order:2}.flight-image svg{position:absolute;inset:12% 8% 17%;width:84%;height:71%;overflow:visible}.flight-image path{fill:none;stroke:var(--orange);stroke-width:.55;stroke-dasharray:1.5 1.3}.flight-image circle{fill:var(--orange)}.ortho-map{position:relative;aspect-ratio:16/9;background:#091a27;padding:10px;overflow:hidden}.ortho-map img{width:100%;height:100%;object-fit:cover}.ortho-map b{position:absolute;top:22px;left:24px;padding:7px 10px;background:#061724de;color:white;font:700 .66rem Arial,sans-serif;letter-spacing:.1em}.pin{position:absolute;display:grid;place-items:center;width:37px;height:37px;border:2px solid white;border-radius:50%;background:var(--orange);color:white;font:700 .7rem Arial,sans-serif;box-shadow:0 0 0 8px #ee720580}.pin-1{left:46%;top:26%}.pin-2{left:62%;top:55%}.pin-3{left:74%;top:76%}
.comparison{position:relative;aspect-ratio:16/11;min-height:360px;background:#102b3c;overflow:hidden}.comparison>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.comparison-before{clip-path:inset(0 50% 0 0)}.comparison-divider{position:absolute;left:50%;top:0;bottom:0;width:2px;background:white;transform:translateX(-50%);pointer-events:none}.comparison-divider b{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--orange);color:white}.comparison-label{position:absolute;top:20px;background:#071723ca;color:white;padding:5px 11px;font-weight:700;font-size:.8rem}.comparison-label.before{left:20px}.comparison-label.current{right:20px}.comparison-control{position:absolute;bottom:0;left:0;right:0;padding:28px 22px 14px;background:linear-gradient(transparent,#061724ed);color:white}.comparison-control input{display:block;width:100%;accent-color:var(--orange);cursor:ew-resize}.comparison-control small{display:block;line-height:1.5;font-size:.7rem;margin-top:8px}.report-preview{height:560px;background:linear-gradient(130deg,#1c455a,#081b28);display:grid;place-items:center;padding:35px}.report-sheet{width:min(100%,480px);background:#fafaf7;box-shadow:0 20px 60px #0007;transform:rotate(-2deg);padding:28px 32px 20px}.report-top{display:flex;justify-content:space-between;gap:8px;border-bottom:2px solid var(--orange);padding-bottom:9px;font:700 .62rem Arial,sans-serif;letter-spacing:.12em}.report-top span:first-child{color:var(--orange)}.report-sheet h3{font-size:clamp(1.5rem,2.4vw,2.3rem);margin:22px 0 0}.report-sheet p{font-size:.75rem;margin:0 0 15px}.report-sheet img{width:100%;height:170px;object-fit:cover}.report-lines{display:grid;grid-template-columns:75px 1fr;align-items:center;gap:8px;margin:15px 0;font-size:.7rem;color:#546774}.report-lines i{height:1px;background:#becbd0}.report-sheet small{font-size:.66rem;color:#677b86}
.facilities{background:var(--navy);color:#fff}.facilities .card-grid article{background:#142f40}.facilities .card-grid article p{color:#c3d1d8}.resources{background:#fff}.callout{display:grid;grid-template-columns:1.1fr .9fr;gap:6vw;align-items:center}.callout p{color:var(--muted)}.callout-visual{position:relative;min-height:360px;background:#102b3c;overflow:hidden}.callout-visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;opacity:.8}.callout-visual span{position:absolute;left:20px;bottom:20px;color:white;background:#071723cc;padding:8px 12px;font:700 .7rem Arial,sans-serif;letter-spacing:.12em}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;min-width:260px;border-bottom:1px solid #395361;padding:12px 0;font-weight:700;font-size:.9rem;margin-top:20px}.text-link span{color:var(--orange);font-size:1.3rem}.text-link:hover{color:var(--orange)}.partner{background:#e9eff1}.partner-card{background:#102b3c;color:#fff;padding:42px;border-top:4px solid var(--orange);box-shadow:0 22px 50px #0b263426}.partner-card>span{color:var(--orange);font:700 .7rem Arial,sans-serif;letter-spacing:.16em}.partner-card strong{display:block;font-size:clamp(2rem,3.3vw,3.4rem);margin:16px 0}.partner-card p{color:#c8d6dd}.partner-card a{display:inline-block;border-bottom:1px solid #ffffff7a;padding-bottom:7px;font-weight:700}.partner-card a:hover{color:var(--orange)}.use-cases{background:#fff}.start{background:#f3f6f6}.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:21px;margin-top:44px}.flow-grid article{border-top:2px solid var(--orange);padding-top:18px}.flow-grid span{font:700 .75rem Arial,sans-serif;color:var(--orange)}.flow-grid h3{font-size:1.1rem;line-height:1.4;margin:13px 0}.flow-grid p{font-size:.88rem;color:#526773;line-height:1.8;margin:0}.faq{background:#e9eff1}.faq-list{max-width:940px;margin-top:45px}.faq-list details{border-top:1px solid #becbd1;padding:21px 0}.faq-list details:last-child{border-bottom:1px solid #becbd1}.faq-list summary{display:flex;justify-content:space-between;gap:18px;list-style:none;cursor:pointer;font-weight:700}.faq-list summary::after{content:"＋";color:var(--orange)}.faq-list details[open] summary::after{content:"−"}.faq-list details p{margin:14px 0 0;color:#526773}.viewer{background:#fff}
.contact{position:relative;background:radial-gradient(circle at 80% 30%,#255461,transparent 43%),linear-gradient(135deg,#071723,#143744);color:#fff;padding:130px 0;scroll-margin-top:74px}.contact h2{font-size:clamp(2.8rem,5.5vw,6rem);margin:25px 0}.contact p:not(.eyebrow){color:#cfdee4;font-size:1.1rem}.contact-link{display:flex;justify-content:space-between;align-items:center;max-width:700px;border-bottom:2px solid var(--orange);padding:18px 0;font:700 clamp(2rem,3.7vw,4.2rem)/1.4 Arial,sans-serif;margin-top:35px}.contact-link span{color:var(--orange)}.contact small{display:block;color:#b4c7cf;margin-top:12px}.footer{background:#06131d;color:#fff;padding:80px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:7vw;padding-bottom:70px}.footer-grid p{color:#91a5af;font-size:.85rem}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:9px}.footer-grid>div>strong{color:var(--orange);font:700 .8rem Arial,sans-serif;letter-spacing:.15em;margin-bottom:9px}.footer-grid a:not(.brand){font-size:.82rem;color:#d2dce1}.footer-grid a:hover{color:var(--orange)}.footer-bottom{border-top:1px solid #ffffff2b;padding-top:19px;display:flex;justify-content:space-between;color:#8497a1;font-size:.75rem}
@media(max-width:1000px){.nav{gap:15px}.nav a{font-size:.68rem}.two-col{gap:4vw}.section{padding:85px 0}}
@media(max-width:800px){.container{width:min(100% - 40px,690px)}.menu-button{display:block}.nav{position:fixed;top:78px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;background:#091a27;padding:12px 20px 24px;border-bottom:1px solid #ffffff30}.nav.open{display:flex}.nav a{font-size:1rem;padding:12px 10px;border-bottom:1px solid #ffffff20}.nav .nav-cta{margin-top:12px;text-align:center}.two-col,.callout{grid-template-columns:1fr;gap:40px}.step:nth-of-type(even) .step-copy{order:0}.movie .section-head{display:block}.card-grid{grid-template-columns:1fr}.flow-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.hero{height:auto;min-height:720px}.hero h1{font-size:clamp(3.1rem,8vw,5.5rem)}}
@media(max-width:560px){body{font-size:15px}.container{width:calc(100% - 36px)}.header{padding:0 18px}.brand strong{font-size:.91rem}.brand-mark{width:35px;height:35px;font-size:1.5rem}.section{padding:70px 0}.section h2,.process-intro h2{font-size:clamp(2.1rem,8vw,3rem)}.hero{min-height:690px}.hero-image{object-position:58% center}.hero:after{background:linear-gradient(90deg,#061521ec,#06152182),linear-gradient(0deg,#061521c9,transparent 50%)}.hero-content{padding-top:90px}.hero h1{font-size:clamp(2.8rem,10.8vw,4.7rem)}.hero-lead{font-size:1.02rem}.hero-actions{flex-direction:column;align-items:start}.button{min-width:225px}.hero-credit{bottom:14px;right:18px;font-size:.62rem}.scroll-cue{left:18px;bottom:15px;font-size:.53rem;gap:8px}.card-grid{gap:12px}.card-grid article{padding:23px}.process-intro{padding:78px 0}.process-count{position:static;display:block;margin-top:20px}.feature-image>img{aspect-ratio:4/3}.comparison{min-height:310px}.comparison-control small{font-size:.62rem}.comparison-label{top:10px}.report-preview{height:400px;padding:20px}.report-sheet{padding:16px 19px}.report-sheet img{height:130px}.pin{width:25px;height:25px;font-size:.55rem;box-shadow:0 0 0 5px #ee720580}.ortho-map b{top:14px;left:14px;font-size:.52rem}.flow-grid{grid-template-columns:1fr;gap:20px}.contact{padding:90px 0}.contact h2{font-size:clamp(2.5rem,9vw,4rem)}.contact-link{font-size:2.3rem}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin:7px 0}}
@media(max-width:560px){.comparison{width:100%;height:310px;min-height:0;aspect-ratio:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Soramil identity: the original logo and its blue palette. */
.header{background:#06395ff5;border-bottom-color:#a4d9fa2b}
.brand-logo{display:block;width:58px;height:58px;flex:none;object-fit:contain;background:#fff;border-radius:8px;padding:2px}
.brand em,.eyebrow.light span,.scroll-cue span{color:#70d8ff}
.movie h2 em,.facilities h2 em,.contact h2 em,.movie .eyebrow span,.process-intro .eyebrow span,.facilities .eyebrow span,.contact .eyebrow span,.facilities .card-grid article span,.partner-card>span,.footer-grid>div>strong,.contact-link span{color:#78d9ff}
.nav a:hover{color:#79d9ff}
.nav .nav-cta:hover,.button-orange:hover{background:#0a8fd4}
.hero{background:#062e53}
.hero:after{background:linear-gradient(90deg,#052b51f2 0%,#073c66ce 42%,#063a6528 100%),linear-gradient(0deg,#06325ac2,transparent 34%)}
.hero h1 em{color:#85dcff}
.movie{background:#0a3c66}
.challenge,.step.alt,.partner,.faq{background:#e9f3fa}
.facilities .card-grid article{background:#0d4774}
.report-preview{background:linear-gradient(130deg,#1673a6,#07395f)}
.partner-card,.callout-visual,.comparison{background:#0b4e7c}
.start{background:#f1f8fc}
.contact{background:radial-gradient(circle at 80% 30%,#1576aa,transparent 43%),linear-gradient(135deg,#06365e,#0a5682)}
.footer{background:#052c4d}
.footer-full-logo{display:block;width:150px;height:150px;object-fit:contain;background:#fff;border-radius:10px;padding:4px}
.footer-logo-link{display:inline-block}
.footer-grid a.footer-logo-link{color:inherit}
.pin{box-shadow:0 0 0 8px #168bc477}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline-color:#57caff}
@media(max-width:800px){.nav{background:#06395f}}
@media(max-width:560px){.brand-logo{width:50px;height:50px}.hero:after{background:linear-gradient(90deg,#052b51ed,#063b668c),linear-gradient(0deg,#06325ac9,transparent 50%)}.pin{box-shadow:0 0 0 5px #168bc477}}
