:root {
  color-scheme: light;
  --navy: #071b42;
  --navy-mid: #103a72;
  --blue: #0d57a5;
  --orange: #ff5424;
  --orange-soft: #fff0e9;
  --ink: #18191c;
  --muted: #666967;
  --paper: #fbf9f5;
  --line: #ddd8cf;
  --white: #ffffff;
  --green: #287a55;
  --display: "Arial Black", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  --body: Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--body); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 12px 18px; border-radius: 12px; background: var(--white); color: var(--navy); transform: translateY(-160%); font-weight: 800; }
.skip-link:focus { transform: none; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 20; color: var(--white); }
.header-inner { min-height: 92px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.2); }
.wordmark { font-family: var(--display); font-size: 1.4rem; letter-spacing: -.06em; }
.wordmark span { color: var(--orange); }
nav { display: flex; align-items: center; gap: 34px; font-size: .92rem; font-weight: 700; }
nav a { opacity: .82; transition: opacity .2s ease; }
nav a:hover, nav a:focus-visible { opacity: 1; }
.nav-pill { padding: 10px 16px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; }

.hero { position: relative; min-height: 860px; overflow: hidden; background: var(--navy); color: var(--white); }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 140px; background: linear-gradient(to top, rgba(4,18,48,.45), transparent); pointer-events: none; }
.hero-grid { position: relative; z-index: 2; min-height: 860px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 78px; padding-top: 126px; }
.hero-copy { padding: 50px 0 72px; }
.eyebrow { margin: 0 0 24px; color: #ff7851; font-size: .78rem; line-height: 1; font-weight: 900; letter-spacing: .28em; }
.eyebrow.dark { color: var(--orange); }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 730px; margin-bottom: 28px; font-family: var(--display); font-size: clamp(3.15rem, 5.35vw, 5.45rem); line-height: 1.04; letter-spacing: -.07em; word-break: keep-all; }
h1 em { color: #ff7652; font-style: normal; }
.hero-description { max-width: 590px; margin-bottom: 32px; color: rgba(255,255,255,.72); font-size: 1.09rem; line-height: 1.85; word-break: keep-all; }
.hero-actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.button { min-height: 58px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 22px; border-radius: 14px; font-size: .96rem; font-weight: 900; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-3px); }
.button-primary { min-width: 204px; background: var(--orange); box-shadow: 0 12px 28px rgba(255,84,36,.24); }
.button-primary:hover { box-shadow: 0 16px 34px rgba(255,84,36,.34); }
.launch-note { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.64); font-size: .82rem; font-weight: 700; }
.launch-note i { width: 8px; height: 8px; border-radius: 50%; background: #ff7652; box-shadow: 0 0 0 5px rgba(255,84,36,.13); }
.hero-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 52px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.16); }
.hero-facts div { display: grid; grid-template-columns: 30px 1fr; gap: 10px; }
.hero-facts dt { color: #ff7652; font-size: .68rem; font-weight: 900; }
.hero-facts dd { margin: 0; color: rgba(255,255,255,.78); font-size: .78rem; line-height: 1.55; font-weight: 700; }

.hero-visual { position: relative; height: 680px; display: flex; align-items: flex-end; justify-content: center; }
.phone-card { position: relative; z-index: 2; width: min(420px, 88%); height: 655px; overflow: hidden; border: 10px solid rgba(255,255,255,.98); border-bottom: 0; border-radius: 48px 48px 0 0; background: var(--white); box-shadow: 0 35px 90px rgba(0,0,0,.38); }
.phone-card img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.phone-shadow { position: absolute; right: 1%; bottom: -5%; width: 82%; height: 75%; border-radius: 50%; background: #0c4f94; filter: blur(1px); transform: rotate(-12deg); opacity: .58; }
.floating-tag { position: absolute; z-index: 3; display: flex; align-items: center; gap: 9px; padding: 13px 16px; border-radius: 14px; background: var(--white); color: var(--ink); box-shadow: 0 18px 45px rgba(0,0,0,.22); font-size: .82rem; font-weight: 900; }
.floating-tag span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--orange-soft); color: var(--orange); }
.tag-top { top: 115px; right: -10px; transform: rotate(3deg); }
.tag-bottom { bottom: 95px; left: -24px; transform: rotate(-3deg); }
.tag-bottom span { background: #e8f4ed; color: var(--green); }
.hero-orbit { position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.orbit-one { width: 720px; height: 720px; top: -310px; right: -150px; }
.orbit-two { width: 420px; height: 420px; bottom: -250px; left: -120px; background: rgba(22,78,137,.26); }

.manifesto { padding: 130px 0; background: var(--paper); }
.manifesto-grid { display: grid; grid-template-columns: .75fr 2fr; gap: 70px; }
.section-index { margin: 9px 0 0; color: var(--orange); font-size: .72rem; font-weight: 900; letter-spacing: .19em; }
.manifesto-copy h2, .section-heading h2, .preview-heading h2, .source-grid h2, .closing h2 { font-family: var(--display); letter-spacing: -.065em; word-break: keep-all; }
.manifesto-copy h2 { margin-bottom: 30px; font-size: clamp(2.7rem, 5.2vw, 5rem); line-height: 1.13; }
.manifesto-copy h2 span { color: var(--orange); }
.manifesto-copy > p { max-width: 690px; color: var(--muted); font-size: 1.12rem; line-height: 1.9; word-break: keep-all; }

.experience { padding: 120px 0 130px; background: #f1eee8; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 56px; }
.section-heading h2 { margin: 0; font-size: clamp(2.45rem, 4.6vw, 4.4rem); line-height: 1.08; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
.step-card { min-height: 520px; display: flex; flex-direction: column; padding: 26px; border: 1px solid var(--line); border-radius: 28px; background: var(--white); }
.step-number { color: var(--orange); font-size: .8rem; font-weight: 900; }
.step-art { position: relative; height: 230px; margin: 22px 0 28px; overflow: hidden; border-radius: 21px; background: var(--navy); }
.art-photo { display: grid; place-items: center; background: radial-gradient(circle at 70% 26%, #1d6caf, transparent 28%), linear-gradient(135deg, #071b42, #124880); }
.art-photo::before { content: ""; position: absolute; width: 180px; height: 180px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.art-photo::after { content: ""; position: absolute; width: 100px; height: 100px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.art-photo span { position: absolute; top: 20px; left: 20px; color: rgba(255,255,255,.62); font-size: .66rem; font-weight: 900; letter-spacing: .18em; }
.art-photo b { z-index: 1; color: var(--white); font-family: var(--display); font-size: 5rem; }
.art-clue { display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 26px; background: var(--orange-soft); }
.art-clue span { padding: 17px 19px; border-radius: 14px; background: var(--white); color: var(--ink); box-shadow: 0 7px 20px rgba(80,45,30,.08); font-size: .7rem; font-weight: 900; letter-spacing: .1em; }
.art-clue span:nth-child(2) { transform: translateX(22px); background: var(--orange); color: var(--white); }
.art-pin { display: grid; place-items: center; background: #e8f4ed; }
.art-pin span { width: 88px; height: 88px; border-radius: 50% 50% 50% 12px; background: var(--green); transform: rotate(-45deg); }
.art-pin span::after { content: ""; position: absolute; width: 28px; height: 28px; margin: 30px; border-radius: 50%; background: #e8f4ed; }
.art-pin b { position: absolute; bottom: 20px; color: var(--green); font-size: .7rem; letter-spacing: .14em; }
.step-card h3 { margin: 0 0 12px; font-size: 1.4rem; letter-spacing: -.04em; }
.step-card p { margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.75; word-break: keep-all; }

.preview { padding: 130px 0 145px; overflow: hidden; background: var(--navy); color: var(--white); }
.preview-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 70px; margin-bottom: 74px; }
.preview-heading h2 { margin: 0; font-size: clamp(2.7rem, 5.1vw, 4.9rem); line-height: 1.1; }
.preview-heading > p { max-width: 460px; margin-bottom: 6px; color: rgba(255,255,255,.68); font-size: 1rem; line-height: 1.8; word-break: keep-all; }
.screen-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: start; }
.screen-card { min-width: 0; margin: 0; }
.screen-card:nth-child(even) { margin-top: 52px; }
.screen-frame { overflow: hidden; border: 7px solid rgba(255,255,255,.96); border-radius: 31px; background: var(--white); box-shadow: 0 25px 70px rgba(0,0,0,.3); }
.screen-frame img { width: 100%; height: auto; object-fit: contain; }
.screen-card figcaption { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.screen-card figcaption span { color: #ff7652; font-size: .68rem; font-weight: 900; }
.screen-card figcaption strong { font-size: .93rem; }

.source-note { padding: 120px 0; background: var(--orange); color: var(--white); }
.source-grid { display: grid; grid-template-columns: .72fr 1.12fr 1fr; gap: 56px; align-items: start; }
.source-grid .section-index { color: rgba(255,255,255,.7); }
.source-grid h2 { margin: 0; font-size: clamp(2.4rem, 4.2vw, 4rem); line-height: 1.13; }
.source-copy p { color: rgba(255,255,255,.86); line-height: 1.85; word-break: keep-all; }
.source-copy p + p { margin-top: 19px; padding-top: 19px; border-top: 1px solid rgba(255,255,255,.28); }

.closing { padding: 142px 0; background: var(--ink); color: var(--white); text-align: center; }
.closing-inner { display: flex; flex-direction: column; align-items: center; }
.closing h2 { max-width: 900px; margin-bottom: 28px; font-size: clamp(2.75rem, 5.4vw, 5.4rem); line-height: 1.1; }
.closing-inner > p:not(.eyebrow) { margin-bottom: 34px; color: rgba(255,255,255,.62); font-size: 1.02rem; line-height: 1.8; }
.button-light { min-width: 220px; background: var(--white); color: var(--ink); }

footer { padding: 42px 0 48px; background: var(--ink); color: var(--white); border-top: 1px solid rgba(255,255,255,.12); }
.footer-inner { display: grid; grid-template-columns: 1fr auto auto; gap: 50px; align-items: end; }
.footer-mark { display: inline-block; margin-bottom: 8px; }
.footer-inner > div:first-child p, .copyright { margin: 0; color: rgba(255,255,255,.48); font-size: .75rem; }
.footer-links { display: flex; gap: 22px; color: rgba(255,255,255,.68); font-size: .76rem; font-weight: 700; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.steps .reveal:nth-child(2), .screen-gallery .reveal:nth-child(2) { transition-delay: .08s; }
.steps .reveal:nth-child(3), .screen-gallery .reveal:nth-child(3) { transition-delay: .16s; }
.screen-gallery .reveal:nth-child(4) { transition-delay: .24s; }

@media (max-width: 980px) {
  .hero { min-height: auto; }
  .hero-grid { min-height: auto; grid-template-columns: 1fr; gap: 10px; padding-top: 130px; }
  .hero-copy { padding-bottom: 20px; }
  .hero-visual { width: min(600px, 100%); height: 640px; margin: 0 auto; }
  .phone-card { width: 390px; height: 620px; }
  .manifesto-grid, .source-grid { grid-template-columns: 1fr; gap: 35px; }
  .steps { grid-template-columns: 1fr; }
  .step-card { min-height: auto; display: grid; grid-template-columns: 46% 1fr; grid-template-rows: auto auto 1fr; column-gap: 28px; }
  .step-number { grid-column: 2; }
  .step-art { grid-column: 1; grid-row: 1 / 4; height: 270px; margin: 0; }
  .step-card h3 { grid-column: 2; margin-top: 42px; }
  .step-card p { grid-column: 2; }
  .screen-gallery { grid-template-columns: repeat(2, 1fr); gap: 50px 28px; }
  .screen-card:nth-child(even) { margin-top: 0; }
  .source-grid { max-width: 760px; }
  .source-copy { max-width: 620px; }
}

@media (max-width: 680px) {
  .shell { width: min(100% - 32px, 1180px); }
  .header-inner { min-height: 74px; }
  nav a:not(.nav-pill) { display: none; }
  .nav-pill { padding: 8px 13px; font-size: .78rem; }
  .hero-grid { padding-top: 96px; }
  .hero-copy { padding-top: 50px; }
  h1 { font-size: clamp(2.55rem, 12vw, 4rem); line-height: 1.08; }
  .hero-description { font-size: 1rem; line-height: 1.75; }
  .hero-facts { grid-template-columns: 1fr; gap: 14px; }
  .hero-facts div { grid-template-columns: 26px 1fr; }
  .hero-visual { height: 555px; }
  .phone-card { width: min(350px, 88vw); height: 540px; border-width: 7px; border-radius: 38px 38px 0 0; }
  .floating-tag { font-size: .7rem; padding: 10px 12px; }
  .floating-tag span { width: 23px; height: 23px; }
  .tag-top { top: 82px; right: -2px; }
  .tag-bottom { bottom: 58px; left: -3px; }
  .manifesto, .experience, .preview, .source-note, .closing { padding-top: 88px; padding-bottom: 92px; }
  .manifesto-grid { gap: 26px; }
  .manifesto-copy h2 { font-size: 2.8rem; }
  .section-heading { display: block; }
  .section-heading h2 { font-size: 2.65rem; }
  .step-card { display: block; padding: 20px; }
  .step-art { height: 220px; margin: 18px 0 25px; }
  .step-card h3 { margin-top: 0; }
  .preview-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 50px; }
  .preview-heading h2 { font-size: 2.8rem; }
  .screen-gallery { gap: 34px 12px; }
  .screen-frame { border-width: 4px; border-radius: 21px; }
  .screen-card figcaption { align-items: flex-start; gap: 7px; margin-top: 13px; }
  .screen-card figcaption strong { font-size: .8rem; }
  .source-grid h2 { font-size: 2.65rem; }
  .closing h2 { font-size: 3rem; }
  .footer-inner { grid-template-columns: 1fr; gap: 28px; align-items: start; }
  .copyright { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
