:root {
  color-scheme: light;
  --ink: #121d38;
  --muted: #4e5b74;
  --blue: #2449eb;
  --blue-dark: #1b38bb;
  --pale: #edf2ff;
  --line: #e1e7f2;
  --white: #fff;
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif;
  background: #f9fbff;
  color: var(--ink);
}
*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, p, figure, ul, ol { margin: 0; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid #3359f5; outline-offset: 5px; }
.shell { width: min(1200px, calc(100% - 96px)); margin-inline: auto; }
.skip { position: absolute; top: .5rem; left: .5rem; z-index: 5; padding: .75rem; background: white; transform: translateY(-200%); }
.skip:focus { transform: none; }
.site-header { min-height: 86px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 8px; font: 800 21px/1 system-ui, sans-serif; letter-spacing: -.055em; }
.brand span { margin-left: -7px; color: var(--blue); }
.brand img { display: block; }
.site-header nav, .site-footer nav { display: flex; align-items: center; gap: clamp(15px, 3vw, 35px); font-weight: 650; font-size: .9rem; }
nav a:hover, nav a[aria-current] { color: var(--blue); }
.nav-action { padding: 11px 15px; border-radius: 9px; background: var(--pale); color: #1b3bbd; white-space: nowrap; }
.nav-action span { margin-left: .24rem; }

.hero { display: grid; grid-template-columns: .98fr 1fr; align-items: center; gap: clamp(32px, 5vw, 74px); padding-block: clamp(42px, 7vw, 100px) clamp(64px, 8vw, 118px); }
.hero-copy { min-width: 0; }
.eyebrow { display: flex; align-items: center; gap: 9px; color: #2945be; font-size: .77rem; font-weight: 800; letter-spacing: .075em; }
.eyebrow > span { display: inline-block; width: 8px; height: 8px; border-radius: 2px; background: #3d60ff; transform: rotate(-12deg); }
h1, h2, h3 { word-break: keep-all; overflow-wrap: anywhere; }
h1 { margin-top: 19px; font-size: clamp(3rem, 5.7vw, 5rem); line-height: 1.12; font-weight: 850; letter-spacing: -.077em; }
h1 em { font-style: normal; color: var(--blue); }
.lede { max-width: 29rem; margin-top: 24px; color: var(--muted); line-height: 1.8; font-size: clamp(1rem, 1.4vw, 1.13rem); word-break: keep-all; overflow-wrap: anywhere; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 33px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 16px; padding: .92rem 1.17rem; min-height: 48px; border: 1px solid transparent; border-radius: 11px; font-size: .91rem; font-weight: 760; white-space: nowrap; }
.button span { font: 700 1rem/1 system-ui, sans-serif; }
.primary { background: var(--blue); color: white; }
.primary:hover { background: var(--blue-dark); }
.secondary { border-color: #d9e2f4; background: white; }
.secondary:hover { border-color: #8ba3ee; }
.light { color: #182b7d; background: white; }
.light:hover { background: #e4ebff; }

.hero-visual { min-height: 510px; position: relative; display: grid; place-items: end center; overflow: hidden; isolation: isolate; border-radius: 25px; border: 1px solid #d9e3fc; background: radial-gradient(ellipse at 57% 68%, #abc3ff, transparent 58%), linear-gradient(145deg, #eef4ff 8%, #dce9ff 62%, #d8e5ff); }
.visual-label { position: absolute; top: 23px; left: 23px; font-weight: 770; font-size: .67rem; letter-spacing: .075em; color: #374f8b; }
.visual-label span { color: #4567db; margin: 0 .35rem; }
.orbit { position: absolute; z-index: -1; inset: 20% -29% auto; height: 67%; border: 1px solid #f4f7ff; border-radius: 50%; transform: rotate(-29deg); }
.orbit-two { inset: 31% -22% auto; }
.phone { position: relative; display: grid; align-content: start; gap: 10px; margin: 56px 9% 0 0; width: min(278px, 72%); padding: 12px 13px 13px; border: 7px solid #172648; border-bottom-width: 6px; border-radius: 31px 31px 0 0; background: #f2f6fd; box-shadow: 0 24px 60px #17367563; color: #152647; }
.phone-top { display: flex; justify-content: space-between; padding-inline: 3px; font: 750 .65rem/1.2 system-ui, sans-serif; }
.phone-title { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
.phone-title div { display: grid; gap: 4px; }
.phone-title small, .shift small, .float-card small { color: #455b81; font-size: .66rem; font-weight: 650; }
.phone-title strong { font-size: 1.42rem; letter-spacing: -.06em; }
.plus { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: white; font: 650 1.2rem/1 system-ui, sans-serif; }
.week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.week span { display: grid; justify-items: center; gap: 3px; padding: 6px 0; border-radius: 8px; color: #475b7e; background: white; font-size: .56rem; }
.week b { color: #183052; font: 750 .7rem/1.1 system-ui, sans-serif; }
.week .selected { background: var(--blue); color: white; }
.week .selected b { color: white; }
.shift { display: grid; gap: 6px; padding: 13px; border-radius: 14px; background: linear-gradient(130deg, #e5efff, #c0d9ff); border: 1px solid #c6dafa; font-size: .73rem; }
.shift b { font: 780 clamp(1.35rem, 3vw, 1.9rem)/1.16 system-ui, sans-serif; letter-spacing: -.055em; white-space: nowrap; }
.shift b span { color: #385fae; }
.shift-action { margin-top: 5px; padding: 8px; border-radius: 8px; color: white; background: var(--blue); text-align: center; font-weight: 700; }
.prepare { display: grid; gap: 5px; padding: 10px 11px; border-radius: 12px; background: white; font-size: .67rem; color: #465a7e; }
.prepare b { font-size: .74rem; color: #1c2d4f; }
.phone-tabs { display: flex; justify-content: space-around; gap: 3px; padding: 8px 4px; border-radius: 8px; background: white; color: #455575; font-size: .52rem; }
.phone-tabs strong { color: var(--blue); }
.float-card { position: absolute; right: 5%; bottom: 15%; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 12px; border: 1px solid white; background: #fbfdff; box-shadow: 0 14px 32px #25468b38; }
.float-card > div { display: grid; gap: 3px; }
.float-card strong { font: 770 1.18rem/1.1 system-ui, sans-serif; white-space: nowrap; letter-spacing: -.045em; }
.float-card strong span { font-size: .77rem; }
.float-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: #e9efff; color: #2945be; font-weight: 770; }

.features { padding-block: clamp(44px, 7vw, 93px); border-top: 1px solid var(--line); scroll-margin-top: 10px; }
.section-head h2, .business-band h2, .closing h2 { margin-top: .75rem; font-size: clamp(1.85rem, 4vw, 3.15rem); line-height: 1.2; letter-spacing: -.065em; }
.section-head > p:last-child { margin-top: .85rem; color: var(--muted); line-height: 1.7; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 34px; }
.feature-grid article { padding: clamp(18px, 3vw, 34px); border: 1px solid var(--line); border-radius: 15px; background: white; }
.number, .workflow li > span { color: #2a48c7; font: 740 .8rem/1.4 system-ui, sans-serif; letter-spacing: .02em; }
.feature-grid h3 { margin-top: 1.7rem; font-size: 1.22rem; letter-spacing: -.04em; }
.feature-grid p, .workflow p { margin-top: .6rem; color: var(--muted); line-height: 1.72; font-size: .94rem; }
.business-band { display: grid; grid-template-columns: 1fr .7fr; gap: 34px; align-items: center; padding: clamp(25px, 6vw, 66px); border-radius: 23px; color: white; background: #172854; }
.business-band .eyebrow { color: #b9ceff; }
.business-band p:not(.eyebrow) { max-width: 28rem; margin-top: .9rem; color: #d5dffa; line-height: 1.68; }
.business-band .button { margin-top: 24px; }
.band-flow, .workflow, .board-list { list-style: none; padding: 0; }
.band-flow li { padding: 15px 0; border-bottom: 1px solid #405282; font-weight: 690; }
.band-flow li:last-child { border-bottom: 0; }
.band-flow span { display: inline-block; width: 33px; color: #b9ceff; font: 750 .76rem/1 system-ui, sans-serif; }
.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 22px; margin-top: 65px; padding-block: 25px 35px; border-top: 1px solid var(--line); }
.site-footer .brand { font-size: 1.1rem; }
.site-footer p { margin-top: 9px; font-size: .68rem; font-weight: 780; color: var(--muted); letter-spacing: .08em; }
.operator-info { max-width: 620px; margin-top: 12px; }
.site-footer .operator-info p { font-weight: 450; letter-spacing: 0; line-height: 1.65; overflow-wrap: anywhere; }

.board-visual { place-items: center; }
.board { margin-block: 58px 32px; width: 87%; border-radius: 17px; padding: clamp(12px, 2.4vw, 25px); background: #fbfdff; box-shadow: 0 24px 55px #17367537; border: 1px solid white; }
.board-head, .board-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.board-head > div, .board-list li > div { display: grid; gap: 5px; }
.board-head small, .board-list small { color: var(--muted); font-size: .68rem; font-weight: 650; }
.board-head b { font-size: clamp(1rem, 2vw, 1.35rem); letter-spacing: -.06em; }
.status-chip { white-space: nowrap; border-radius: 6px; padding: 6px 7px; color: #263ca5; background: #eaf0ff; font-size: .63rem; font-weight: 770; }
.status-chip.wait { color: #3c4589; background: #edeefe; }
.status-chip.quiet { color: #47556a; background: #edf0f7; }
.board-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-block: 17px; }
.board-stats div { display: grid; gap: 7px; padding: 10px 7px; border-radius: 8px; background: #eff3ff; }
.board-stats span { color: #46567a; font-size: .62rem; white-space: nowrap; }
.board-stats b { color: #2545cb; font: 770 1.12rem/1 system-ui, sans-serif; }
.board-stats small { margin-left: 2px; font-size: .64rem; }
.board-list li { padding: 10px 0; border-top: 1px solid var(--line); }
.board-list li div { margin-right: auto; }
.board-list li b { font-size: .79rem; }
.day { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 7px; color: #2545cb; background: #eef2ff; font: 750 .72rem/1 system-ui, sans-serif; }
.workflow { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 28px; column-gap: 30px; }
.workflow li { display: grid; grid-template-columns: 35px 1fr; gap: 13px; padding: 20px 0; border-top: 1px solid var(--line); }
.workflow h3 { font-size: 1.17rem; letter-spacing: -.03em; }
.closing { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 22px; padding: 26px; border-radius: 17px; background: var(--pale); }
.closing h2 { font-size: clamp(1.4rem, 3vw, 2.1rem); }
.access { padding-block: clamp(64px, 12vw, 140px); }
.access .button { margin-top: 30px; }

@media (max-width: 900px) {
  .shell { width: min(1200px, calc(100% - 56px)); }
  .hero { gap: 24px; }
  .hero-visual { min-height: 450px; }
  .phone { margin-right: 0; }
  .float-card { right: 4%; bottom: 11%; }
}
@media (max-width: 700px) {
  .shell { width: calc(100% - 36px); }
  .site-header { min-height: 69px; gap: 9px; }
  .brand { font-size: 1.1rem; gap: 6px; }
  .brand img { width: 28px; height: 28px; }
  .brand span { margin-left: -5px; }
  .site-header nav, .site-footer nav { gap: 12px; font-size: .76rem; }
  .nav-action { padding: 9px 6px; }
  .nav-action span { display: none; }
  .hero { grid-template-columns: 1fr; gap: 34px; padding-block: 45px 52px; }
  h1 { font-size: clamp(2.65rem, 9.3vw, 4rem); }
  .lede { margin-top: 17px; }
  .actions { margin-top: 22px; }
  .hero-visual { min-height: 408px; }
  .board-visual { min-height: 350px; }
  .feature-grid, .business-band, .workflow { grid-template-columns: 1fr; }
  .feature-grid h3 { margin-top: .85rem; }
  .business-band { gap: 17px; }
  .site-footer { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 360px) {
  .shell { width: calc(100% - 24px); }
  .site-header nav { gap: 8px; }
  .button { padding-inline: .75rem; gap: 8px; font-size: .82rem; }
  .float-card { right: 2%; }
}

.login-form { display: grid; gap: 14px; max-width: 420px; margin-top: 24px; }
.login-form[hidden] { display: none; }
.login-form label { display: grid; gap: 6px; font-weight: 650; }
.login-form input:not([type="checkbox"]) { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #aab8d4; border-radius: 8px; font: inherit; }
.login-form input:focus-visible { outline: 3px solid #3359f5; outline-offset: 2px; }
.login-form label.login-consent { grid-template-columns: auto 1fr; align-items: start; }
.login-consent a { color: var(--blue-dark); text-decoration: underline; }
.login-form .button { justify-self: start; margin-top: 0; cursor: pointer; }
.login-form .button:disabled { cursor: default; opacity: .65; }
.login-status { margin-top: 1rem; color: var(--muted); line-height: 1.6; }
