:root {
  --navy: #081a3a;
  --ink: #10213f;
  --blue: #155eef;
  --blue-deep: #0846c7;
  --blue-pale: #eaf2ff;
  --sky: #f5f8fe;
  --paper: #ffffff;
  --line: #dfe7f2;
  --line-dark: rgba(255,255,255,.18);
  --text: #263c60;
  --muted: #657796;
  --mono: "DM Mono", monospace;
  --sans: "Manrope", "Noto Sans KR", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.shell { width: min(100% - 64px, 1240px); margin: 0 auto; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:fixed; left:16px; top:-70px; z-index:99; padding:12px 16px; background:var(--blue); color:#fff; font-weight:800; }.skip-link:focus { top:16px; }

.site-header { position:absolute; z-index:20; top:0; left:0; right:0; border-bottom:1px solid rgba(17,55,111,.12); background:rgba(255,255,255,.92); backdrop-filter: blur(12px); }
.header-shell { height:80px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:10px; color:var(--navy); font-size:15px; letter-spacing:-.065em; font-weight:800; white-space:nowrap; }.brand > span:last-child > span { color:var(--blue); }
.brand-mark { display:flex; align-items:flex-end; gap:2px; width:21px; height:16px; }.brand-mark i { display:block; width:5px; background:var(--navy); transform:skewX(-21deg); }.brand-mark i:nth-child(1) { height:7px; }.brand-mark i:nth-child(2) { height:12px; }.brand-mark i:nth-child(3) { height:16px; background:var(--blue); }
.main-nav { display:flex; align-items:center; gap:30px; color:#536682; font:11px var(--mono); }.main-nav > a:not(.nav-cta) { transition:color .2s ease; }.main-nav > a:not(.nav-cta):hover { color:var(--blue); }.nav-cta { padding:11px 15px; color:#fff; background:var(--blue); font-size:10px; font-weight:500; transition:background .2s ease, transform .2s ease; }.nav-cta:hover { background:var(--blue-deep); transform:translateY(-1px); }
.menu-toggle { display:none; border:1px solid var(--line); background:#fff; padding:8px 9px; width:38px; height:34px; cursor:pointer; }.menu-toggle span:not(.sr-only) { display:block; width:100%; height:1px; margin:4px 0; background:var(--navy); }

.section-grid { background-image:linear-gradient(90deg, transparent calc(50% - 1px), rgba(21,94,239,.06) 50%, transparent calc(50% + 1px)); }
.hero { position:relative; min-height:780px; overflow:hidden; padding-top:80px; background:linear-gradient(120deg, #fff 0%, #fff 51%, #f5f9ff 100%); }.hero:before { content:""; position:absolute; inset:80px 0 0; opacity:.7; background-image:linear-gradient(rgba(21,94,239,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(21,94,239,.08) 1px, transparent 1px); background-size:70px 70px; mask-image:linear-gradient(110deg, black, transparent 76%); }.hero:after { content:""; position:absolute; width:640px; height:640px; right:-200px; bottom:-355px; border:1px solid rgba(21,94,239,.2); border-radius:50%; }
.hero-shell { position:relative; z-index:1; min-height:640px; display:flex; align-items:center; }.hero-copy { width:59%; max-width:710px; }.eyebrow { margin:0 0 19px; display:flex; align-items:center; gap:8px; color:#587099; font:10px var(--mono); letter-spacing:.08em; }.eyebrow span { width:7px; height:7px; background:var(--blue); border-radius:50%; box-shadow:0 0 0 4px rgba(21,94,239,.09); }
.hero h1 { margin:0; max-width:680px; color:var(--navy); font-size:clamp(54px, 6.5vw, 90px); line-height:.99; letter-spacing:-.078em; font-weight:800; }.hero h1 em, h2 em, h3 em { color:var(--blue); font-style:normal; }.hero-description { margin:28px 0 33px; max-width:560px; color:var(--text); font-size:16px; line-height:1.95; word-break:keep-all; }.hero-actions { display:flex; flex-wrap:wrap; gap:20px; align-items:center; }.button { display:inline-flex; align-items:center; gap:28px; padding:15px 19px; font-size:12px; font-weight:800; }.button-primary { color:#fff; background:var(--blue); transition:background .2s ease, transform .2s ease; }.button-primary:hover { background:var(--blue-deep); transform:translateY(-2px); }.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--ink); border-bottom:1px solid #8091aa; padding-bottom:5px; font-size:12px; font-weight:700; transition:color .2s ease; }.text-link:hover { color:var(--blue); }
.hero-visual { position:absolute; right:-20px; top:125px; width:min(50vw,600px); height:500px; }.hero-visual:before { content:""; position:absolute; inset:45px 0 0 35px; border:1px solid #cedaf0; background:rgba(255,255,255,.62); box-shadow:0 24px 65px rgba(23,63,123,.12); }.orb { display:none; }.data-sphere { position:absolute; z-index:1; width:330px; height:330px; top:106px; left:105px; border:1px solid #80a8f7; border-radius:50%; background:radial-gradient(circle at 40% 35%, #edf4ff 0%, #dceaff 40%, #c6dcff 100%); box-shadow:inset 0 0 50px rgba(21,94,239,.15); animation:float 7s ease-in-out infinite; }.data-sphere:after { content:""; position:absolute; inset:60px; border-radius:50%; background:radial-gradient(circle, #3f80f9 0%, #155eef 23%, transparent 25%); opacity:.8; }.sphere-ring { position:absolute; top:50%; left:50%; border:1px solid rgba(21,94,239,.68); border-radius:50%; }.ring-a { height:42%; width:118%; transform:translate(-50%,-50%) rotate(27deg); }.ring-b { height:52%; width:112%; transform:translate(-50%,-50%) rotate(-55deg); }.ring-c { width:77%; height:115%; transform:translate(-50%,-50%) rotate(21deg); border-color:rgba(21,94,239,.34); }.sphere-core { position:absolute; z-index:2; top:calc(50% - 8px); left:calc(50% - 8px); width:16px; height:16px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 9px rgba(21,94,239,.12); }.node { position:absolute; z-index:3; width:7px; height:7px; border-radius:50%; background:#3c7cff; box-shadow:0 0 9px #76a2ff; }.node-a { top:17%; left:27%; }.node-b { top:29%; right:4%; }.node-c { bottom:15%; left:21%; }.node-d { bottom:22%; right:14%; }
.system-card { position:absolute; z-index:3; min-width:150px; padding:13px 15px; border:1px solid #b9cdf0; background:#fff; box-shadow:0 10px 24px rgba(28,65,119,.09); font-family:var(--mono); }.system-card span { display:block; color:#7184a2; font-size:8px; letter-spacing:.08em; }.system-card strong { display:block; margin:7px 0 2px; color:var(--blue); font-size:16px; font-weight:500; }.system-card small { color:#8495ae; font-size:8px; }.card-signal { top:37px; left:0; }.card-architecture { right:0; bottom:28px; }.card-architecture strong { font-size:12px; color:#15876a; }.axis-label { position:absolute; z-index:2; color:#7c90af; font:9px var(--mono); letter-spacing:.1em; }.label-x { left:45px; bottom:3px; }.label-y { right:17px; top:46px; writing-mode:vertical-rl; }
.hero-footer { position:relative; z-index:1; height:60px; display:flex; align-items:center; gap:12px; border-top:1px solid var(--line); color:#7183a0; font:9px var(--mono); letter-spacing:.09em; }.hero-footer > span { width:70px; border-top:1px solid #a9b9cf; }.hero-footer p:last-child { margin-left:auto; }.hero-footer b { margin-left:8px; color:var(--blue); font-weight:500; }

.statement { padding:132px 0; background:#f5f8fd; }.statement-shell { display:grid; grid-template-columns:28% 1fr; }.section-label { display:flex; align-items:center; gap:13px; color:#7183a0; font:10px var(--mono); letter-spacing:.09em; }.section-label p { margin:0; }.section-label span { color:var(--blue); }.statement-content { display:grid; grid-template-columns:1.45fr .65fr; gap:68px; }.statement-lead { margin:-10px 0 0; color:var(--navy); font-size:clamp(29px,3.3vw,50px); line-height:1.4; letter-spacing:-.065em; word-break:keep-all; }.statement-lead strong { color:var(--blue); }.statement-detail { padding-top:16px; }.statement-detail p { margin:0 0 28px; color:var(--text); font-size:14px; line-height:1.9; word-break:keep-all; }

.solutions { padding:132px 0; background:#fff; }.section-heading { display:grid; grid-template-columns:28% 1fr .58fr; gap:24px; align-items:start; margin-bottom:72px; }.section-heading h2, .approach h2, .location h2, .contact h2 { margin:-11px 0 0; color:var(--navy); font-size:clamp(44px,5vw,72px); line-height:1.04; letter-spacing:-.075em; }.section-heading > p { margin:0; padding-top:9px; color:var(--text); font-size:13px; line-height:1.85; word-break:keep-all; }.solution-list { border-top:1px solid var(--line); }.solution-card { position:relative; min-height:248px; display:grid; grid-template-columns:10% 50% 1fr; gap:24px; padding:29px 70px 29px 0; border-bottom:1px solid var(--line); transition:background .25s ease, padding-left .25s ease; }.solution-card:hover { padding-left:18px; background:#f7faff; }.solution-index { padding-top:5px; color:var(--blue); font:10px var(--mono); }.tag { margin:0 0 14px; color:#7285a2; font:9px var(--mono); letter-spacing:.08em; }.solution-card h3 { margin:0; color:var(--navy); font-size:clamp(28px,3vw,43px); line-height:1.06; letter-spacing:-.065em; }.solution-main > p:not(.tag) { max-width:540px; margin:19px 0 0; color:var(--text); font-size:13px; line-height:1.82; word-break:keep-all; }.card-meta { display:flex; flex-direction:column; gap:9px; padding-top:28px; color:#657898; font:10px var(--mono); }.card-meta span:before { content:"•"; margin-right:9px; color:var(--blue); }.card-arrow { position:absolute; right:0; top:29px; display:grid; place-items:center; width:39px; height:39px; border:1px solid #afc1dc; border-radius:50%; color:var(--blue); transition:all .25s ease; }.solution-card:hover .card-arrow { color:#fff; background:var(--blue); border-color:var(--blue); }.featured { min-height:390px; background:linear-gradient(118deg, #09275c 0%, #0d3478 56%, #0b2a62 100%); border-color:#153e84; }.featured:hover { padding-left:18px; background:linear-gradient(118deg, #09275c 0%, #0d3478 56%, #0b2a62 100%); }.featured .solution-index, .featured .tag { color:#aac7ff; }.featured h3 { color:#fff; }.featured h3 em { color:#8eb6ff; }.featured .solution-main > p:not(.tag) { color:#d4e1f6; }.featured .card-arrow { border-color:#96b8f7; color:#fff; }.feature-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }.feature-chips span { padding:7px 9px; border:1px solid rgba(191,215,255,.6); color:#dfebff; font:9px var(--mono); }.satbyul-diagram { position:relative; height:185px; align-self:center; margin-top:43px; padding-left:40px; border-left:1px solid rgba(255,255,255,.18); }.diagram-node { position:absolute; min-width:87px; padding:11px; background:rgba(4,22,56,.54); border:1px solid rgba(183,210,255,.48); color:#fff; font-family:var(--mono); }.diagram-node small { display:block; color:#aac3ec; font-size:7px; }.diagram-node b { display:block; margin-top:5px; font-size:10px; line-height:1.3; font-weight:500; }.diagram-node.input { top:18px; left:36px; }.diagram-node.core { top:78px; left:151px; border-color:#9fc3ff; background:#0d3c8a; }.diagram-node.output { right:0; bottom:8px; }.diagram-line { position:absolute; height:1px; background:#94b9ff; transform-origin:left center; }.line-one { top:61px; left:117px; width:74px; transform:rotate(34deg); }.line-two { top:118px; left:241px; width:73px; transform:rotate(37deg); }

.approach { padding:132px 0; background:#f6f9fd; }.approach-shell { display:grid; grid-template-columns:1fr 1fr; gap:90px; }.approach h2 { margin-top:42px; }.approach-list { list-style:none; margin:51px 0 0; padding:0; border-top:1px solid var(--line); }.approach-list li { display:grid; grid-template-columns:60px 1fr; gap:16px; padding:25px 0; border-bottom:1px solid var(--line); }.approach-list li > span { color:#7f91ab; font:10px var(--mono); }.approach-list h3 { margin:0 0 7px; color:var(--navy); font-size:23px; letter-spacing:-.055em; }.approach-list p { margin:0; color:var(--text); font-size:13px; line-height:1.75; word-break:keep-all; }

.location { padding:132px 0; background:#fff; }.location-shell { display:grid; grid-template-columns:28% 1fr; gap:20px; }.location h2 { margin-top:42px; }.location-panel { display:grid; grid-template-columns:1.08fr .92fr; min-height:400px; overflow:hidden; border:1px solid var(--line); box-shadow:0 14px 42px rgba(21,58,110,.08); }.map-frame { min-height:400px; background:#dfe9f8; }.map-frame iframe { display:block; width:100%; height:100%; min-height:400px; border:0; }.location-info { display:flex; flex-direction:column; justify-content:center; padding:48px; background:#f8fbff; }.location-info .eyebrow { margin-bottom:22px; }.location-info address { color:var(--navy); font-size:clamp(25px,2.5vw,36px); font-style:normal; font-weight:700; line-height:1.34; letter-spacing:-.065em; word-break:keep-all; }.location-en { margin:18px 0 29px; color:#7284a0; font:10px/1.75 var(--mono); }.location-info .button { align-self:flex-start; }

.contact { position:relative; overflow:hidden; color:#fff; background:var(--navy); }.contact:after { content:""; position:absolute; width:640px; height:640px; right:-230px; bottom:-385px; border:1px solid rgba(153,190,255,.22); border-radius:50%; box-shadow:0 0 0 75px rgba(60,122,243,.06), 0 0 0 150px rgba(60,122,243,.04); }.contact-shell { position:relative; z-index:1; min-height:525px; display:flex; flex-direction:column; padding:125px 0 47px; }.contact .eyebrow { color:#bdcce5; }.contact .eyebrow span { background:#78a4ff; }.contact h2 { color:#fff; font-size:clamp(53px,6.8vw,96px); }.contact h2 em { color:#9fc0ff; }.contact-bottom { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-top:auto; padding-top:48px; border-top:1px solid var(--line-dark); }.contact-bottom > p { max-width:430px; margin:0; color:#becce2; font-size:14px; line-height:1.85; word-break:keep-all; }.contact-email { padding-bottom:8px; color:#b7d1ff; border-bottom:1px solid #9cc0ff; font-size:clamp(20px,2.4vw,33px); font-weight:700; letter-spacing:-.055em; transition:color .2s ease; }.contact-email:hover { color:#fff; }.contact-email span { margin-left:12px; font-size:.7em; }
.site-footer { color:#a9bad3; background:#06142d; font:10px var(--mono); }.footer-shell { min-height:108px; display:grid; grid-template-columns:1fr 1.4fr auto; align-items:center; gap:24px; }.site-footer .brand { color:#fff; }.site-footer .brand-mark i { background:#fff; }.site-footer .brand-mark i:nth-child(3) { background:#8eb6ff; }.site-footer div p { margin:4px 0; }.site-footer > p { text-align:right; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }.reveal.is-visible { opacity:1; transform:none; }
@keyframes float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-12px); } }

@media (max-width: 960px) { .shell { width:min(100% - 44px, 1240px); }.hero { min-height:720px; }.hero-shell { min-height:600px; }.hero-copy { width:67%; }.hero-visual { right:-165px; opacity:.83; }.statement-shell,.section-heading { grid-template-columns:23% 1fr; }.statement-content { grid-column:2; grid-template-columns:1fr; gap:22px; }.section-heading > p { grid-column:2; max-width:460px; }.solution-card { grid-template-columns:9% 55% 1fr; }.satbyul-diagram { margin-left:-10px; transform:scale(.84); transform-origin:top left; }.approach-shell { gap:55px; }.location-shell { grid-template-columns:23% 1fr; }.location-panel { grid-column:2; }.footer-shell { grid-template-columns:1fr 1.25fr; padding:25px 0; }.footer-shell > p { grid-column:2; margin:0; text-align:left; } }
@media (max-width: 720px) { .shell { width:calc(100% - 40px); }.header-shell { height:66px; }.main-nav { position:absolute; top:66px; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px 20px 22px; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 15px 25px rgba(25,58,102,.09); }.main-nav.is-open { display:flex; }.main-nav > a { padding:14px 0; }.nav-cta { margin-top:8px; padding:13px; text-align:center; }.menu-toggle { display:block; }.menu-toggle.is-open span:nth-of-type(2) { transform:translateY(5px) rotate(45deg); }.menu-toggle.is-open span:nth-of-type(3) { transform:rotate(-45deg); }.hero { min-height:735px; padding-top:66px; }.hero:before { inset:66px 0 0; }.hero-shell { min-height:612px; align-items:flex-start; padding-top:80px; }.hero-copy { width:100%; }.hero h1 { font-size:clamp(48px,14vw,68px); }.hero-description { max-width:420px; margin:22px 0 27px; font-size:14px; }.hero-actions { gap:18px; }.hero-visual { width:430px; height:390px; top:auto; right:-208px; bottom:-5px; opacity:.56; }.data-sphere { transform:scale(.7); transform-origin:top left; }.system-card { display:none; }.label-x { bottom:25px; }.hero-footer { height:57px; }.hero-footer p:first-child,.hero-footer > span { display:none; }.hero-footer p:last-child { margin-left:0; }.statement { padding:82px 0; }.statement-shell,.section-heading,.approach-shell { grid-template-columns:1fr; gap:27px; }.statement-content { grid-column:auto; }.statement-lead { font-size:31px; }.solutions { padding:82px 0; }.section-heading { margin-bottom:44px; }.section-heading h2 { font-size:46px; }.section-heading > p { grid-column:auto; padding-top:0; }.solution-card { grid-template-columns:32px 1fr; min-height:0; padding:25px 43px 25px 0; }.solution-card:hover { padding-left:0; }.solution-main { grid-column:2; }.card-meta { grid-column:2; flex-direction:row; flex-wrap:wrap; padding-top:18px; }.featured { min-height:490px; }.satbyul-diagram { grid-column:2; width:390px; margin-top:10px; transform:scale(.77); transform-origin:top left; }.approach { padding:82px 0; }.approach h2 { margin-top:8px; font-size:48px; }.approach-list { margin-top:12px; }.location { padding:82px 0; }.location-shell { grid-template-columns:1fr; gap:24px; }.location h2 { margin-top:9px; font-size:48px; }.location-panel { grid-column:auto; grid-template-columns:1fr; }.map-frame,.map-frame iframe { min-height:270px; }.location-info { padding:34px 28px; }.location-info address { font-size:28px; }.contact-shell { min-height:470px; padding-top:84px; }.contact h2 { font-size:56px; }.contact-bottom { flex-direction:column; align-items:flex-start; gap:26px; padding-top:38px; }.contact-email { font-size:22px; }.footer-shell { display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:27px 0; }.footer-shell > p { text-align:left; }.site-footer div p { line-height:1.6; }.reveal { transform:translateY(14px); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; }.reveal { opacity:1; transform:none; transition:none; }.data-sphere { animation:none; } }
