@font-face { font-family: "NanumSquareRound"; src: url("../fonts/NanumSquareRoundL.woff2") format("woff2"); font-style: normal; font-weight: 300; font-display: swap; }
@font-face { font-family: "NanumSquareRound"; src: url("../fonts/NanumSquareRoundR.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "NanumSquareRound"; src: url("../fonts/NanumSquareRoundB.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "NanumSquareRound"; src: url("../fonts/NanumSquareRoundEB.woff2") format("woff2"); font-style: normal; font-weight: 800; font-display: swap; }

:root {
  --ink: #171627;
  --muted: #6f7080;
  --line: #e8e6ef;
  --violet: #6757f2;
  --violet-deep: #4d3cdc;
  --pink: #f05b8f;
  --soft: #f7f6fc;
  --navy: #0d0c17;
  --card: #ffffff;
  --radius: 28px;
  --shadow: 0 24px 70px rgba(61, 45, 130, .13);
  --header-bg: rgba(255,255,255,.82);
  --nav-text: #42414d;
  --mobile-nav-bg: rgba(255,255,255,.98);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 78px; scroll-snap-type: y mandatory; }
body { margin: 0; color: var(--ink); background: #fff; font-family: "NanumSquareRound", sans-serif; font-size: 14px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 999; padding: 12px 18px; border-radius: 10px; background: var(--ink); color: #fff; transition: top .2s; }
.skip-link:focus { top: 12px; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; height: 78px; border-bottom: 1px solid transparent; background: var(--header-bg); backdrop-filter: blur(18px); transition: height .25s, border-color .25s, box-shadow .25s, background .25s; }
.site-header.scrolled { height: 70px; border-color: rgba(27,23,54,.08); box-shadow: 0 8px 35px rgba(42,34,90,.07); }
.header-inner { height: 100%; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: 21px; font-weight: 600; letter-spacing: -.04em; white-space: nowrap; }
.brand strong { font-weight: 800; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; color: var(--violet); }
.brand-mark svg { width: 100%; height: 100%; }
.main-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.main-nav a { position: relative; font-size: 14px; font-weight: 700; color: var(--nav-text); }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -9px; height: 2px; border-radius: 9px; background: var(--violet); transition: right .25s; }
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.header-actions { display: flex; gap: 8px; }
.theme-toggle { width: 70px; height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: rgba(255,255,255,.72); cursor: pointer; transition: transform .2s, border-color .2s, background .2s; }
.theme-toggle:hover { transform: translateY(-2px); border-color: #c5bff5; }
.theme-toggle span { font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.theme-icon { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.theme-icon-sun { display: none; }
[data-theme="dark"] .theme-icon-sun { display: block; }
[data-theme="dark"] .theme-icon-moon { display: none; }
.button { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 14px; font-size: 14px; font-weight: 800; transition: transform .2s, box-shadow .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 44px; padding: 0 17px; border-radius: 12px; font-size: 13px; }
.button-primary { color: #fff; background: linear-gradient(135deg, #6a5af5, #5646eb); box-shadow: 0 12px 26px rgba(96,78,235,.25); }
.button-primary:hover { box-shadow: 0 16px 34px rgba(96,78,235,.35); }
.button-ghost { border-color: #dedce8; background: rgba(255,255,255,.72); }
.menu-toggle { display: none; width: 44px; height: 44px; margin-left: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 11px; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; margin: 4px 0; border-radius: 3px; background: var(--ink); transition: .25s; }

main > section, .site-footer { min-height: 100svh; scroll-snap-align: start; scroll-snap-stop: always; }
main > section { display: flex; flex-direction: column; justify-content: center; }

.hero { position: relative; overflow: hidden; padding: 118px 0 0; background: linear-gradient(118deg, #fff9fb 0%, #fbfaff 45%, #f1f0ff 100%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 28%; background: linear-gradient(to top, rgba(116,91,245,.06), transparent); pointer-events: none; }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(10px); opacity: .55; }
.hero-glow-one { width: 360px; height: 360px; top: 80px; left: -180px; background: radial-gradient(circle, #ffdce8, transparent 68%); }
.hero-glow-two { width: 460px; height: 460px; right: -180px; top: 20px; background: radial-gradient(circle, #cbd0ff, transparent 68%); }
.hero-grid { position: relative; z-index: 2; min-height: min(560px, calc(100svh - 230px)); display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: 44px; }
.hero-copy { padding-bottom: 60px; }
.eyebrow, .section-kicker { margin: 0 0 22px; color: var(--violet); font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid #ddd9f5; border-radius: 999px; background: rgba(255,255,255,.66); }
.eyebrow span { width: 7px; height: 7px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 5px rgba(240,91,143,.1); }
.hero h1 { margin: 0; font-size: clamp(48px, 4.6vw, 70px); line-height: 1.13; letter-spacing: -.065em; }
.hero h1 em { display: inline-block; color: var(--violet); font-style: normal; white-space: nowrap; }
.hero-lead { max-width: 590px; margin: 28px 0 0; color: var(--muted); font-size: 17px; line-height: 1.85; word-break: keep-all; }
.hero-lead strong { color: var(--violet-deep); font-weight: 800; }
.compatibility-badge { width: fit-content; margin-top: 22px; padding: 10px 14px 10px 10px; display: flex; align-items: center; gap: 11px; border: 1px solid #dcd7fb; border-radius: 16px; color: var(--ink); background: rgba(255,255,255,.78); box-shadow: 0 12px 30px rgba(74,57,157,.09); }
.compatibility-badge > span { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #7869fa, #5140df); font-size: 14px; font-weight: 800; }
.compatibility-badge strong, .compatibility-badge small { display: block; }
.compatibility-badge strong { font-size: 14px; font-weight: 800; }
.compatibility-badge small { margin-top: 1px; color: var(--muted); font-size: 12px; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.platform-list { display: flex; flex-wrap: wrap; gap: 18px; margin: 28px 0 0; padding: 0; list-style: none; color: #777585; font-size: 12px; font-weight: 700; }
.platform-list li { display: flex; align-items: center; gap: 7px; }
.platform-list i { color: var(--violet); font-size: 14px; }
.hero-visual { position: relative; align-self: center; width: 100%; min-width: 0; aspect-ratio: 1672 / 941; }
.hero-visual img { width: 112%; height: auto; max-width: none; aspect-ratio: 1672 / 941; margin-left: -3%; border-radius: 32px; object-fit: contain; filter: drop-shadow(0 30px 40px rgba(66,48,149,.13)); }
.floating-card { position: absolute; display: flex; align-items: center; gap: 12px; min-width: 205px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.85); border-radius: 16px; background: rgba(255,255,255,.82); box-shadow: 0 18px 45px rgba(60,42,125,.13); backdrop-filter: blur(16px); }
.floating-card-top { top: 12%; left: 2%; }
.floating-card-bottom { right: -1%; bottom: 17%; }
.floating-card strong, .floating-card small { display: block; }
.floating-card strong { font-size: 12px; }
.floating-card small { margin-top: 2px; color: #8a8998; font-size: 9px; }
.floating-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; color: #fff; background: linear-gradient(135deg, #7768ff, #5140e4); }
.floating-icon.pink { background: linear-gradient(135deg, #ff83a8, #ef477d); }
.value-strip { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid #ebe8f3; border-radius: 24px 24px 0 0; background: rgba(255,255,255,.94); box-shadow: 0 -12px 35px rgba(77,58,154,.05); overflow: hidden; }
.value-strip article { min-height: 112px; padding: 24px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #ebe8f3; }
.value-strip article:last-child { border-right: 0; }
.value-strip span { color: var(--violet); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.value-strip strong { margin-top: 7px; font-size: 15px; }

.section { padding: 98px 0 70px; }
.section-white { background: #fff; }
.section-soft { background: var(--soft); }
#about { padding-top: 78px; padding-bottom: 26px; }
#about .section-heading { margin-bottom: 32px; }
.section-heading { max-width: 760px; margin-bottom: 54px; }
.section-heading.centered { margin-left: auto; margin-right: auto; text-align: center; }
.section-heading h2, .experience-copy h2, .app-copy h2, .contact-card h2 { margin: 0; font-size: clamp(34px, 4vw, 54px); line-height: 1.28; letter-spacing: -.055em; word-break: keep-all; }
.section-heading > p:last-child { max-width: 650px; margin: 22px auto 0; color: var(--muted); font-size: 16px; word-break: keep-all; }
.about-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 18px; }
.about-card { position: relative; min-height: 450px; padding: 36px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; cursor: pointer; transition: color .25s, border-color .25s, background .25s, transform .25s, box-shadow .25s; }
.about-card:not(.about-card-main) { padding-bottom: 165px; }
.about-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.about-card:focus-visible { outline: 3px solid rgba(53,126,246,.3); outline-offset: 4px; }
.about-card.is-selected { color: #fff; border-color: transparent; background: linear-gradient(150deg, #4288ff 0%, #1956d2 100%); box-shadow: 0 24px 70px rgba(36,99,213,.22); }
.about-card.is-selected::after { content: ""; position: absolute; width: 330px; height: 330px; right: -140px; bottom: -160px; border: 46px solid rgba(255,255,255,.1); border-radius: 50%; pointer-events: none; }
.card-number { position: absolute; top: 28px; right: 30px; color: rgba(90,87,110,.35); font-size: 12px; font-weight: 800; }
.about-card.is-selected .card-number { color: rgba(255,255,255,.55); }
.about-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; color: var(--violet); background: #f0edff; font-size: 21px; font-weight: 800; }
.about-card.is-selected .about-icon { color: #fff; background: rgba(255,255,255,.17); }
.about-icon.soft { color: #4791df; background: #eaf5ff; }
.about-icon.coral { color: #e87178; background: #fff0f0; }
.card-label { margin: 66px 0 12px; color: var(--violet); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.about-card-main .card-label { margin-top: 42px; }
.about-card.is-selected .card-label { color: #d9e7ff; }
.about-card:not(.about-card-main) .card-label { margin-top: 28px; }
.about-card h3 { margin: 0; font-size: 27px; line-height: 1.42; letter-spacing: -.04em; }
.about-card > p:last-of-type { margin-top: 18px; color: var(--muted); font-size: 14px; word-break: keep-all; }
.about-card-main > p:last-of-type { max-width: 380px; }
.about-card.is-selected > p:last-of-type { color: rgba(255,255,255,.84); }
.mini-video-grid { position: absolute; left: 36px; right: 36px; bottom: -44px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; transform: rotate(-2deg); }
.mini-video-grid i { aspect-ratio: 1.2; border-radius: 12px; background: linear-gradient(135deg, #1e1b3e, #fc75a2); box-shadow: 0 10px 25px rgba(26,16,73,.25); }
.mini-video-grid i:nth-child(2) { background: linear-gradient(135deg, #161a3c, #65c7f7); }
.mini-video-grid i:nth-child(3) { background: linear-gradient(135deg, #2b154e, #c06cfa); }
.mini-video-grid i:nth-child(4) { background: linear-gradient(135deg, #19285d, #9cecfb); }
.community-preview, .operation-preview { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 24px; }
.community-preview { display: grid; gap: 8px; }
.comment-chip { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 9px; min-width: 0; padding: 9px 10px; border: 1px solid #ebe9f2; border-radius: 12px; background: #fafafe; box-shadow: 0 8px 20px rgba(52,45,88,.06); }
.comment-chip > i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: linear-gradient(135deg,#5c9cf2,#7563ee); font-size: 10px; font-style: normal; font-weight: 800; }
.comment-chip > i.avatar-pink { background: linear-gradient(135deg,#ff86a9,#ed5d8d); }
.comment-chip span { min-width: 0; }
.comment-chip b, .comment-chip small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comment-chip b { color: var(--ink); font-size: 9px; }
.comment-chip small { margin-top: 2px; color: var(--muted); font-size: 7px; }
.comment-chip em { color: #a9a6b2; font-size: 7px; font-style: normal; }
.reaction-row { display: flex; justify-content: space-between; padding: 4px 8px 0; color: #8b8798; font-size: 8px; font-weight: 700; }
.operation-preview { padding: 10px; border: 1px solid #ebe9f2; border-radius: 16px; background: #fafafe; box-shadow: 0 8px 20px rgba(52,45,88,.06); }
.metric-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.metric-row span { padding: 6px 7px; border-radius: 9px; background: #fff; }
.metric-row small, .metric-row b { display: block; }
.metric-row small { color: #aaa7b3; font-size: 7px; }
.metric-row b { margin-top: 2px; color: var(--ink); font-size: 12px; }
.chart-bars { height: 38px; margin-top: 7px; display: flex; align-items: flex-end; gap: 5px; padding: 0 3px 5px; border-bottom: 1px solid #e5e2ec; }
.chart-bars i { flex: 1; min-height: 12px; border-radius: 4px 4px 1px 1px; background: linear-gradient(to top,#5b49e3,#9387ff); opacity: .82; }
.chart-bars i:nth-child(1) { height: 28%; }.chart-bars i:nth-child(2) { height: 42%; }.chart-bars i:nth-child(3) { height: 36%; }.chart-bars i:nth-child(4) { height: 67%; }.chart-bars i:nth-child(5) { height: 53%; }.chart-bars i:nth-child(6) { height: 81%; }.chart-bars i:nth-child(7) { height: 66%; }.chart-bars i:nth-child(8) { height: 94%; }
.status-line { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; color: #777382; font-size: 8px; font-weight: 700; }
.status-line span { display: flex; align-items: center; gap: 5px; }.status-line span i { width: 6px; height: 6px; border-radius: 50%; background: #24c995; box-shadow: 0 0 0 4px rgba(36,201,149,.1); }
.status-line strong { color: #21aa80; font-size: 7px; letter-spacing: .08em; }

#features { padding-top: 62px; padding-bottom: 36px; }
#features .section-heading { margin-bottom: 26px; }
#features .section-heading .section-kicker { margin-bottom: 12px; }
#features .section-heading h2 { font-size: clamp(32px, 3vw, 44px); line-height: 1.2; }
#features .section-heading > p:last-child { margin-top: 12px; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.feature-card { min-height: 250px; padding: 22px 24px; border: 1px solid #ebe9f2; border-radius: 22px; background: #fff; box-shadow: 0 10px 28px rgba(46,39,83,.04); transition: transform .25s, box-shadow .25s; }
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.feature-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; font-size: 19px; font-weight: 800; }
.feature-icon.violet { color: #6253ee; background: #eeebff; }.feature-icon.blue { color: #3b8edb; background: #e9f5ff; }.feature-icon.coral { color: #e16979; background: #ffebef; }.feature-icon.mint { color: #1e9d86; background: #e2faf4; }.feature-icon.amber { color: #c48625; background: #fff4da; }.feature-icon.pink { color: #e2518a; background: #ffebf4; }
.feature-card > p { margin: 16px 0 5px; color: var(--violet); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.feature-card h3 { margin: 0; font-size: 20px; letter-spacing: -.04em; }
.feature-card > div { margin-top: 9px; color: var(--muted); font-size: 14px; line-height: 1.55; word-break: keep-all; }
.feature-card ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.feature-card li { padding: 5px 9px; border-radius: 999px; color: #625f70; background: #f6f5f9; font-size: 10px; font-weight: 700; }

.experience-section { color: #fff; background: var(--navy); overflow: hidden; }
.experience-grid { display: grid; grid-template-columns: .65fr 1.35fr; align-items: center; gap: 48px; }
.section-kicker.light { color: #aaa2ff; }
.experience-copy > p:not(.section-kicker), .app-copy > p:not(.section-kicker) { margin: 22px 0 0; color: #a7a4b3; font-size: 15px; word-break: keep-all; }
.check-list { display: grid; gap: 13px; margin: 30px 0; color: #d7d5e0; font-size: 14px; }
.check-list span { display: flex; align-items: center; gap: 11px; }
.check-list i { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 8px; color: #b6afff; background: rgba(117,100,247,.18); font-style: normal; }
.text-link { display: inline-flex; align-items: center; gap: 9px; color: #b9b2ff; font-size: 14px; font-weight: 800; }
.text-link i { transition: transform .2s; }.text-link:hover i { transform: translate(3px,-3px); }
.admin-sample { position: relative; margin: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 26px; outline: 0; background: #12192d; box-shadow: 0 30px 80px rgba(0,0,0,.35); overflow: hidden; }
.admin-sample:focus-visible { box-shadow: 0 0 0 3px rgba(133,119,255,.55), 0 30px 80px rgba(0,0,0,.35); }
.admin-gallery-stage { position: relative; aspect-ratio: 16 / 9; background: #12192d; overflow: hidden; }
.admin-gallery-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.012); transition: opacity .35s ease, transform .55s ease; pointer-events: none; }
.admin-gallery-stage img.is-active { opacity: 1; transform: scale(1); }
.admin-gallery-controls { position: absolute; top: 16px; right: 16px; z-index: 2; display: flex; align-items: center; gap: 8px; padding: 7px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(8,12,23,.82); box-shadow: 0 10px 26px rgba(0,0,0,.28); backdrop-filter: blur(14px); }
.admin-gallery-button { width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgba(255,255,255,.08); cursor: pointer; transition: background .2s, transform .2s; }
.admin-gallery-button:hover { background: var(--violet); transform: translateY(-1px); }
.admin-gallery-dots { display: flex; align-items: center; gap: 6px; }
.admin-gallery-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: #77798a; cursor: pointer; transition: width .2s, background .2s; }
.admin-gallery-dots button.is-active { width: 22px; background: #8d7fff; }
.admin-sample figcaption { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; color: #fff; background: rgba(10,14,25,.86); box-shadow: 0 12px 30px rgba(0,0,0,.25); backdrop-filter: blur(14px); }
.admin-sample figcaption > i { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #d9d4ff; background: rgba(111,91,247,.22); }
.admin-sample figcaption strong, .admin-sample figcaption small { display: block; }
.admin-sample figcaption strong { font-size: 14px; }
.admin-sample figcaption small { margin-top: 2px; color: #aaa9b6; font-size: 12px; }
.admin-sample figcaption b { margin-left: auto; color: #b9b2ff; font-size: 12px; white-space: nowrap; }
.browser-mockup { border: 1px solid #312f3e; border-radius: 24px; background: #07070c; box-shadow: 0 35px 80px rgba(0,0,0,.35); overflow: hidden; transform: perspective(1200px) rotateY(-3deg); }
.browser-top { height: 43px; display: flex; align-items: center; gap: 6px; padding: 0 14px; border-bottom: 1px solid #24222e; background: #15141c; }
.browser-top > span { width: 8px; height: 8px; border-radius: 50%; background: #f36c76; }.browser-top > span:nth-child(2) { background: #f0c15e; }.browser-top > span:nth-child(3) { background: #6bc68a; }
.browser-top div { width: 46%; margin: 0 auto; padding: 4px 12px; border-radius: 6px; color: #6e6b7a; background: #0d0c12; font-size: 8px; text-align: center; }
.portal-preview { aspect-ratio: 1.62; display: grid; grid-template-columns: 64px 1fr; }
.portal-preview aside { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 15px 7px; border-right: 1px solid #24222d; }
.portal-preview aside b { margin-bottom: 3px; color: #fff; }.portal-preview aside i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: #95919f; font-style: normal; font-size: 12px; }.portal-preview aside i.active { color: #fff; background: #ef1760; box-shadow: 0 8px 18px rgba(239,23,96,.28); }
.preview-main { padding: 16px; overflow: hidden; }
.preview-head { height: 30px; display: flex; align-items: center; gap: 14px; }
.preview-head strong { font-size: 14px; }.preview-head em { flex: 1; height: 20px; border-radius: 6px; background: #1b1a22; }.preview-head button { border: 0; border-radius: 6px; color: #fff; background: #282638; font-size: 7px; height: 20px; }
.preview-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; }
.scene { position: relative; aspect-ratio: 1.3; border-radius: 10px; overflow: hidden; }
.scene::after { content: ""; position: absolute; inset: 60% 0 0; background: linear-gradient(transparent,#07070c); }
.scene.city { background: linear-gradient(145deg,#80b6e6,#35496d 55%,#d39a6c); }.scene.cloud { background: linear-gradient(160deg,#197bd3,#7acaf3 45%,#fff); }.scene.flower { background: radial-gradient(circle at 40% 44%,#b4a7ff 0 11%,#f3d94f 12% 16%,transparent 17%),linear-gradient(135deg,#204b27,#6db36b); }.scene.forest { background: linear-gradient(150deg,#1b2521,#506d5c,#191817); }.scene.night { background: linear-gradient(135deg,#0b1538,#643778,#ed6679); }.scene.river { background: linear-gradient(155deg,#d1edff,#87b9d3 49%,#2d815b 50%,#183f31); }

.app-section { color: #fff; background: radial-gradient(circle at 12% 32%, #28214f 0, #11101f 32%, #090910 72%); overflow: hidden; }
.app-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 70px; }
.app-visual { position: relative; align-self: center; width: 100%; min-width: 0; aspect-ratio: 3 / 2; }
.app-visual::before { content: ""; position: absolute; inset: 12% 10%; border-radius: 50%; background: #765cf7; filter: blur(110px); opacity: .28; }
.app-visual img { position: relative; width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 30px; object-fit: contain; box-shadow: 0 38px 80px rgba(0,0,0,.45); }
.app-points { display: grid; grid-template-columns: repeat(2,1fr); gap: 13px; margin: 32px 0; }
.app-points div { padding: 16px; border: 1px solid #2e2b40; border-radius: 15px; background: rgba(255,255,255,.035); }
.app-points dt { color: #fff; font-size: 13px; font-weight: 800; }.app-points dt span { margin-right: 7px; color: #a99fff; }.app-points dd { margin: 5px 0 0; color: #777483; font-size: 10px; }
.support-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 25px; }.support-tags span { padding: 7px 11px; border: 1px solid #343044; border-radius: 999px; color: #a8a4b2; font-size: 10px; font-weight: 700; }
.light-link { color: #fff; }

.workflow-list { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 0; margin-top: 58px; padding: 0; list-style: none; counter-reset: workflow; }
.workflow-list::before { content: ""; position: absolute; z-index: 1; left: 8%; right: 8%; top: 93px; height: 2px; background: linear-gradient(90deg,#6957ee,#9c8fff,#ef78aa); opacity: .18; }
.workflow-list li { position: relative; min-height: 330px; padding: 28px 27px 24px; display: flex; flex-direction: column; border: 1px solid var(--line); border-right: 0; background: #fff; }
.workflow-list li:first-child { border-radius: 24px 0 0 24px; }.workflow-list li:last-child { border-right: 1px solid var(--line); border-radius: 0 24px 24px 0; }
.workflow-list li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 50%; right: -16px; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--violet); background: #fff; }
.workflow-list > li > b { color: var(--violet); font-size: 11px; letter-spacing: .1em; }
.workflow-list .workflow-icon { position: relative; z-index: 2; width: 54px; height: 54px; display: grid; place-items: center; margin: 22px 0; border: 1px solid #e0dcff; border-radius: 17px; color: var(--violet); background: linear-gradient(145deg,#f2f0ff,#e7e3ff); box-shadow: 0 10px 22px rgba(91,73,224,.11); }
.workflow-icon i { font-size: 23px; }
.workflow-list h3 { margin: 0; font-size: 18px; }.workflow-list p { margin: 12px 0 0; color: var(--muted); font-size: 13px; word-break: keep-all; }
.workflow-result { margin-top: auto; padding-top: 18px; border-top: 1px dashed #ddd9e8; }
.workflow-result small, .workflow-result strong, .workflow-result em { display: block; }
.workflow-result small { color: #aaa6b6; font-size: 7px; font-weight: 800; letter-spacing: .12em; }
.workflow-result strong { margin-top: 6px; color: var(--ink); font-size: 11px; }
.workflow-result strong i { width: 16px; height: 16px; display: inline-grid; place-items: center; margin-right: 5px; border-radius: 50%; color: #fff; background: var(--violet); font-size: 8px; font-style: normal; }
.workflow-result em { margin-top: 5px; color: var(--muted); font-size: 8px; font-style: normal; }

.contact-section { padding-top: 0; background: #fff; }
.contact-card { min-height: 380px; padding: 68px 72px; display: flex; align-items: center; justify-content: space-between; gap: 50px; border-radius: 34px; color: #fff; background: linear-gradient(130deg,#5643e4 0%,#725df5 48%,#d65ad1 120%); box-shadow: 0 35px 80px rgba(94,72,220,.25); overflow: hidden; }
.contact-card > div:first-child { position: relative; z-index: 2; }
.contact-card > div:first-child::after { content: ""; position: absolute; width: 360px; height: 360px; left: -200px; top: -200px; border: 50px solid rgba(255,255,255,.08); border-radius: 50%; z-index: -1; }
.contact-card p:last-child { color: rgba(255,255,255,.72); }
.contact-actions { display: flex; flex-direction: column; gap: 10px; flex: 0 0 190px; }
.button-white { color: var(--violet); background: #fff; }.button-outline-white { color: #fff; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.06); }

.site-footer { padding: 98px 0 30px; color: #d5d2dd; background: #0a090f; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3,1fr); gap: 70px; }
.footer-brand { color: #fff; }.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }.footer-grid > div:first-child p { color: #aaa6b4; }.footer-grid strong { color: #fff; font-size: 14px; }.footer-grid a:not(.brand), .footer-grid p { margin: 0; color: #bbb7c5; font-size: 14px; }
.footer-grid a:not(.brand) { transition: color .2s, transform .2s; }
.footer-grid a:not(.brand):hover { color: #fff; transform: translateX(3px); }
.footer-bottom { margin-top: 55px; padding-top: 22px; display: flex; justify-content: space-between; border-top: 1px solid #34313d; color: #9d99a7; font-size: 13px; }
.back-to-top { position: fixed; right: 24px; bottom: 24px; z-index: 40; width: 46px; height: 46px; border: 1px solid #e1deeb; border-radius: 15px; color: var(--ink); background: rgba(255,255,255,.9); box-shadow: 0 12px 30px rgba(30,25,52,.1); opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s; cursor: pointer; }.back-to-top.visible { opacity: 1; visibility: visible; transform: none; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; transition-delay: var(--delay,0ms); }
.reveal.in-view { opacity: 1; transform: none; }

/* 모든 화면 문자의 최소 크기를 12px로 유지합니다. */
.theme-toggle span,
.button-small,
.eyebrow,
.section-kicker,
.platform-list,
.floating-card strong,
.floating-card small,
.compatibility-badge small,
.value-strip span,
.card-number,
.card-label,
.comment-chip > i,
.comment-chip b,
.comment-chip small,
.comment-chip em,
.reaction-row,
.metric-row small,
.metric-row b,
.status-line,
.status-line strong,
.feature-card > p,
.feature-card li,
.browser-top div,
.portal-preview aside i,
.preview-head button,
.app-points dt,
.app-points dd,
.support-tags span,
.workflow-list > li > b,
.workflow-list p,
.workflow-result small,
.workflow-result strong,
.workflow-result strong i,
.workflow-result em,
.footer-grid strong { font-size: 14px; }
.footer-grid a:not(.brand),
.footer-grid p { font-size: 14px; }
.footer-bottom { font-size: 13px; }

[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f5f3fb;
  --muted: #aaa6b7;
  --line: #302d3c;
  --soft: #121119;
  --card: #181721;
  --shadow: 0 24px 70px rgba(0,0,0,.34);
  --header-bg: rgba(11,10,16,.86);
  --nav-text: #d8d5e1;
  --mobile-nav-bg: rgba(13,12,19,.98);
}
[data-theme="dark"] body { background: #0d0c12; }
[data-theme="dark"] .button-ghost, [data-theme="dark"] .theme-toggle, [data-theme="dark"] .menu-toggle { border-color: #34313f; color: #f5f3fb; background: rgba(26,24,35,.84); }
[data-theme="dark"] .compatibility-badge { border-color: #3d395b; background: rgba(24,22,39,.88); }
[data-theme="dark"] .hero-lead strong { color: #a99eff; }
[data-theme="dark"] .hero { background: radial-gradient(circle at 77% 28%, #2b2750 0, transparent 34%), linear-gradient(118deg, #111018 0%, #151321 48%, #0d0c13 100%); }
[data-theme="dark"] .eyebrow { border-color: #3c3756; background: rgba(30,27,43,.72); }
[data-theme="dark"] .hero-visual img { filter: brightness(.8) saturate(.92) drop-shadow(0 30px 40px rgba(0,0,0,.32)); }
[data-theme="dark"] .floating-card { border-color: rgba(255,255,255,.08); background: rgba(25,23,34,.86); box-shadow: 0 18px 45px rgba(0,0,0,.28); }
[data-theme="dark"] .value-strip { border-color: #302d3c; background: rgba(24,23,33,.96); box-shadow: 0 -12px 35px rgba(0,0,0,.16); }
[data-theme="dark"] .value-strip article { border-color: #302d3c; }
[data-theme="dark"] .section-white, [data-theme="dark"] .contact-section { background: #0d0c12; }
[data-theme="dark"] .section-soft { background: #121119; }
[data-theme="dark"] .about-card, [data-theme="dark"] .feature-card, [data-theme="dark"] .workflow-list li { border-color: #302d3c; background: #181721; }
[data-theme="dark"] .about-card.is-selected { border-color: transparent; background: linear-gradient(150deg, #397fe8 0%, #1748ae 100%); }
[data-theme="dark"] .feature-card li { color: #c2becd; background: #24222d; }
[data-theme="dark"] .comment-chip, [data-theme="dark"] .operation-preview { border-color: #34313f; background: #211f2a; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
[data-theme="dark"] .metric-row span { background: #292631; }
[data-theme="dark"] .chart-bars { border-bottom-color: #3b3745; }
[data-theme="dark"] .workflow-list li:not(:last-child)::after { border-color: #3a3746; background: #181721; }
[data-theme="dark"] .workflow-list .workflow-icon { border-color: #3c3758; background: linear-gradient(145deg,#2e2947,#252139); }
[data-theme="dark"] .workflow-result { border-top-color: #3a3744; }
[data-theme="dark"] .contact-card { background: linear-gradient(130deg,#4532ce 0%,#6852eb 48%,#b747b4 120%); }

@media (max-width: 1080px) {
  .main-nav { gap: 18px; }.main-nav a { font-size: 14px; }.header-actions .button-ghost { display: none; }
  .hero-grid { grid-template-columns: .9fr 1.1fr; }.hero-visual img { width: 108%; }
  .about-grid { grid-template-columns: 1.15fr 1fr; }.about-card:last-child { grid-column: 1 / -1; min-height: 300px; }
  .experience-grid, .app-grid { gap: 40px; }
}

@media (max-width: 860px) {
  .container { width: min(100% - 36px, 720px); }
  .site-header, .site-header.scrolled { height: 68px; }
  .menu-toggle { display: block; margin-left: 0; }
  .header-actions { display: none; }
  .main-nav { position: fixed; inset: 68px 0 auto; display: grid; gap: 0; margin: 0; padding: 12px 18px 22px; border-bottom: 1px solid var(--line); background: var(--mobile-nav-bg); box-shadow: 0 24px 40px rgba(37,28,78,.12); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: .25s; }
  .main-nav.open { opacity: 1; visibility: visible; transform: none; }
  .main-nav a { padding: 14px 8px; border-bottom: 1px solid #f0eef4; font-size: 14px; }.main-nav a::after { display: none; }
  .menu-toggle.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.menu-toggle.active span:nth-child(2) { opacity: 0; }.menu-toggle.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .hero { padding-top: 118px; }.hero-grid { grid-template-columns: 1fr; gap: 28px; }.hero-copy { padding-bottom: 10px; text-align: center; }.hero-lead { margin-left: auto; margin-right: auto; }.hero-buttons, .platform-list { justify-content: center; }.hero-visual { min-height: 0; }.hero-visual img { width: 106%; margin-left: -3%; }.floating-card-top { left: 3%; }.floating-card-bottom { right: 1%; }
  .value-strip { grid-template-columns: repeat(2,1fr); border-radius: 22px 22px 0 0; }.value-strip article:nth-child(2) { border-right: 0; }.value-strip article:nth-child(-n+2) { border-bottom: 1px solid #ebe8f3; }
  main > section, .site-footer { min-height: 100svh; }
  .section { padding: 88px 0 54px; }.about-grid, .feature-grid { grid-template-columns: repeat(2,1fr); }.about-card:last-child { grid-column: auto; min-height: 400px; }
  .experience-grid, .app-grid { grid-template-columns: 1fr; }.experience-copy, .app-copy { text-align: center; }.check-list { justify-content: center; text-align: left; }.browser-mockup { transform: none; }.app-visual { order: 2; }.app-copy { order: 1; }.app-points { text-align: left; }.support-tags { justify-content: center; }
  .workflow-list { grid-template-columns: repeat(2,1fr); gap: 14px; }.workflow-list li, .workflow-list li:first-child, .workflow-list li:last-child { border: 1px solid var(--line); border-radius: 20px; }.workflow-list li::after { display: none !important; }
  .contact-card { padding: 54px 44px; flex-direction: column; align-items: flex-start; }.contact-actions { width: 100%; flex: auto; flex-direction: row; }.contact-actions .button { flex: 1; }
  .footer-grid { grid-template-columns: 2fr 1fr 1fr; gap: 40px; }.footer-grid > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 560px) {
  html { scroll-snap-type: y proximity; }
  .container { width: calc(100% - 28px); }
  .brand { font-size: 18px; }.brand-mark { width: 34px; height: 34px; }
  .hero { padding-top: 108px; }.hero h1 { font-size: clamp(36px, 10.5vw, 43px); }.hero-lead { font-size: 14px; }.eyebrow { font-size: 14px; }.hero-buttons { display: grid; }.hero-buttons .button { width: 100%; }.platform-list { gap: 10px 14px; }.hero-visual { min-height: 0; }.hero-visual img { width: 112%; margin-left: -6%; border-radius: 20px; }.floating-card { min-width: 0; padding: 9px 10px; }.floating-card strong { font-size: 14px; }.floating-card small { display: none; }.floating-card-top { top: 9%; left: 0; }.floating-card-bottom { right: 0; bottom: 13%; }
  .value-strip article { min-height: 98px; padding: 17px; }.value-strip strong { font-size: 14px; }.value-strip span { font-size: 14px; }
  .section { padding: 74px 0; }.section-heading { margin-bottom: 38px; }.section-heading h2, .experience-copy h2, .app-copy h2, .contact-card h2 { font-size: 32px; }.section-heading > p:last-child { font-size: 14px; }
  .about-grid, .feature-grid { grid-template-columns: 1fr; }.about-card, .about-card:last-child { min-height: 410px; padding: 28px; }.card-label { margin-top: 40px; }.feature-card { min-height: auto; padding: 27px; }
  .community-preview, .operation-preview { left: 24px; right: 24px; bottom: 22px; }
  .portal-preview { grid-template-columns: 44px 1fr; }.portal-preview aside { padding: 10px 4px; gap: 6px; }.portal-preview aside i { width: 34px; height: 34px; }.preview-main { padding: 10px; }.preview-grid { grid-template-columns: repeat(2,1fr); gap: 7px; }.preview-grid i:last-child, .preview-grid i:nth-last-child(2) { display: none; }
  .app-visual img { border-radius: 18px; }.app-points { grid-template-columns: 1fr; }
  .workflow-list { grid-template-columns: 1fr; }.workflow-list li { min-height: 220px; }.workflow-list span { margin: 20px 0; }
  .contact-card { min-height: 0; padding: 42px 28px; border-radius: 25px; }.contact-actions { flex-direction: column; }
  .footer-grid { grid-template-columns: repeat(2,1fr); gap: 34px 25px; }.footer-grid > div:first-child { grid-column: 1 / -1; }.footer-grid > div:last-child { grid-column: auto; }.footer-bottom { gap: 8px; flex-direction: column; }
  .back-to-top { right: 14px; bottom: 14px; }
  .admin-gallery-controls { top: 10px; right: 10px; gap: 5px; padding: 5px; }
  .admin-gallery-button { width: 28px; height: 28px; }
  .admin-gallery-dots { gap: 4px; }
  .admin-gallery-dots button { width: 5px; height: 5px; }
  .admin-gallery-dots button.is-active { width: 15px; }
  .admin-sample figcaption { left: 10px; right: 10px; bottom: 10px; padding: 9px 10px; }
  .admin-sample figcaption > i { width: 30px; height: 30px; }
  .admin-sample figcaption small { display: none; }
}

@media (max-height: 760px) and (min-width: 861px) {
  .section { padding-top: 84px; padding-bottom: 34px; }
  .section-heading { margin-bottom: 30px; }
  .section-heading h2, .experience-copy h2, .app-copy h2 { font-size: 38px; }
  #features { padding-top: 42px; padding-bottom: 20px; }
  #features .section-heading { margin-bottom: 14px; }
  #features .section-heading h2 { font-size: 34px; }
  .feature-grid { gap: 10px; }
  .feature-card { min-height: 0; padding: 14px 18px; }
  .feature-icon { width: 36px; height: 36px; border-radius: 12px; font-size: 16px; }
  .feature-card > p { margin-top: 8px; margin-bottom: 3px; }
  .feature-card h3 { font-size: 18px; }
  .feature-card > div { margin-top: 6px; font-size: 13px; line-height: 1.4; }
  .feature-card ul { margin-top: 8px; }
  .feature-card li { padding: 3px 8px; }
  .about-card { min-height: 400px; }
  .about-card:not(.about-card-main) { min-height: 440px; }
  .workflow-list { margin-top: 30px; }
  .workflow-list li { min-height: 290px; padding: 20px; }
  .workflow-list .workflow-icon { margin: 15px 0; }
}

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