:root{
  --field:#061634;          /* deep navy page */
  --field-2:#0B2B6B;        /* radial lift */
  --paper:#F2F3F1;          /* receipt stock */
  --ink:#0E1420;
  --muted:#5B6472;
  --rule:#C9CCC6;
  --brand:#0146F5;
  --sky:#4CA0FF;

  --mono:ui-monospace,"SF Mono","SFMono-Regular","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Apple SD Gothic Neo",sans-serif;

  --gutter:clamp(20px,5vw,64px);
  --maxw:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--paper);
  background:var(--field);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--sky);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}

/* ── eyebrow: the receipt vernacular, used for every label on the page ── */
.eyebrow{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--sky);
  margin:0 0 14px;
}

/* ── masthead ─────────────────────────────────────────────── */
.mast{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding-block:22px;
}
.brandmark{display:flex;align-items:center;gap:11px;text-decoration:none}
.brandmark img{width:30px;height:auto}
.brandmark b{
  font-family:var(--mono);font-size:18px;font-weight:600;
  letter-spacing:.02em;
}
.mast .domain{
  font-family:var(--mono);font-size:12px;letter-spacing:.1em;
  color:#8FA6C9;
}

/* ── hero ─────────────────────────────────────────────────── */
.hero{
  position:relative;
  padding-block:clamp(36px,7vw,86px) clamp(60px,10vw,120px);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:-30% -10% auto -10%;height:120%;
  background:radial-gradient(58% 52% at 22% 8%,var(--field-2) 0%,transparent 62%);
  opacity:.85;pointer-events:none;
}
.hero .wrap{position:relative;display:grid;gap:clamp(38px,6vw,72px);align-items:center}
@media(min-width:940px){.hero .wrap{grid-template-columns:1.05fr .95fr}}

.hero h1{
  margin:0 0 20px;
  font-size:clamp(38px,6.2vw,66px);
  line-height:1.03;
  letter-spacing:-.035em;
  font-weight:750;
  text-wrap:balance;
}
.hero h1 em{font-style:normal;color:var(--sky)}
.lede{
  margin:0 0 32px;max-width:46ch;
  font-size:clamp(16px,1.9vw,19px);
  color:#C2D0E6;
}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:14px;letter-spacing:.04em;
  padding:14px 22px;border-radius:6px;text-decoration:none;
  border:1px solid transparent;transition:transform .15s ease,background .15s ease;
}
.btn-go{background:var(--brand);color:#fff;font-weight:600}
.btn-go:hover{background:#0B57FF;transform:translateY(-1px)}
.btn-quiet{border-color:#2A3E68;color:#C2D0E6}
.btn-quiet:hover{border-color:var(--sky);color:#fff}

/* ── the signature: a receipt that prints itself ──────────── */
/* The slot does the print reveal; the paper itself carries the torn edge.
   Keeping clip-path and mask on separate elements avoids them fighting. */
.receipt-slot{width:min(100%,392px);margin-inline:auto}
.receipt{
  --tear:9px;
  position:relative;
  background:var(--paper);color:var(--ink);
  padding:calc(var(--tear) + 24px) 26px calc(var(--tear) + 22px);
  font-family:var(--mono);font-size:13px;
  filter:drop-shadow(0 30px 42px rgba(0,0,0,.55));
  /* Two scallop layers intersected — union would cancel the notches out. */
  -webkit-mask-image:
    radial-gradient(circle var(--tear) at 50% var(--tear),#0000 98%,#000),
    radial-gradient(circle var(--tear) at 50% calc(100% - var(--tear)),#0000 98%,#000);
          mask-image:
    radial-gradient(circle var(--tear) at 50% var(--tear),#0000 98%,#000),
    radial-gradient(circle var(--tear) at 50% calc(100% - var(--tear)),#0000 98%,#000);
  -webkit-mask-size:20px 100%;mask-size:20px 100%;
  -webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;
  -webkit-mask-composite:source-in;mask-composite:intersect;
}
.r-head{text-align:center;margin-bottom:18px}
.r-head strong{display:block;font-size:17px;letter-spacing:.34em;font-weight:600}
.r-head span{display:block;margin-top:5px;font-size:10.5px;letter-spacing:.15em;color:var(--muted)}
.r-rule{border:0;border-top:1px dashed var(--rule);margin:14px 0}
.r-rule.solid{border-top:2px solid var(--ink);opacity:.85}
.r-line{display:flex;justify-content:space-between;gap:14px;padding:4px 0;color:var(--muted)}
.r-line b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.r-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:10px 0 4px}
/* Direct child only — a bare `span` here also caught the figure inside <strong>. */
.r-total>span{font-size:10.5px;letter-spacing:.15em;color:var(--muted)}
.r-total strong{font-size:clamp(26px,4.6vw,33px);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.r-foot{margin-top:12px;text-align:center;font-size:10px;letter-spacing:.12em;color:var(--muted)}
.barcode{width:100%;height:52px;margin-top:4px}
.barcode rect{fill:var(--ink)}

/* print-on-load choreography */
@media(prefers-reduced-motion:no-preference){
  .receipt-slot{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.2,.8,.2,1)}
  .is-printed .receipt-slot{clip-path:inset(0 0 0 0)}
  .receipt>*{opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease;transition-delay:calc(var(--i,0)*90ms + 240ms)}
  .is-printed .receipt>*{opacity:1;transform:none}
}

/* ── perforation divider ──────────────────────────────────── */
.perf{
  height:22px;
  background:
    radial-gradient(6px at 50% 50%,var(--paper) 98%,#0000) center/22px 22px repeat-x;
  opacity:.22;
}

/* ── paper sections ───────────────────────────────────────── */
.sheet{background:var(--paper);color:var(--ink)}
.sheet-alt{border-top:1px solid var(--rule)}
.sheet .eyebrow{color:var(--brand)}
.sheet-inner{padding-block:clamp(48px,6.5vw,78px)}
.sheet h2{
  margin:0 0 30px;
  font-size:clamp(26px,3.6vw,38px);
  letter-spacing:-.025em;line-height:1.14;font-weight:720;
}

/* steps — a real sequence, so the numbers carry meaning */
.steps{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{background:var(--paper);padding:26px 24px 30px}
.step .n{
  font-family:var(--mono);font-size:12px;letter-spacing:.18em;
  color:var(--brand);display:block;margin-bottom:16px;
}
.step h3{margin:0 0 9px;font-size:19px;letter-spacing:-.015em;font-weight:680}
.step p{margin:0;color:var(--muted);font-size:15px}

/* denial list — what you do NOT need */
.nots{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(min-width:700px){.nots{grid-template-columns:1fr 1fr}}
.nots li{
  background:var(--paper);padding:17px 22px;
  font-family:var(--mono);font-size:14px;letter-spacing:.01em;color:var(--ink);
}
.nots li s{color:var(--muted);text-decoration-color:var(--brand);text-decoration-thickness:2px}

/* coins */
.coins{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.coin{
  font-family:var(--mono);font-size:13px;letter-spacing:.09em;
  border:1px solid var(--rule);border-radius:999px;padding:8px 16px;color:var(--ink);
}
.coin.is-own{border-color:var(--brand);color:var(--brand);font-weight:600}

/* ── closing band ─────────────────────────────────────────── */
.close-band{padding-block:clamp(60px,9vw,110px);text-align:center}
.close-band h2{
  margin:0 auto 14px;max-width:18ch;
  font-size:clamp(28px,4.4vw,46px);letter-spacing:-.03em;line-height:1.08;font-weight:740;
}
.close-band p{margin:0 auto 30px;max-width:44ch;color:#C2D0E6}

/* ── footer ───────────────────────────────────────────────── */
footer{border-top:1px solid #172A4C;padding-block:30px 42px}
.foot-row{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.foot-row p{margin:0;font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;color:#8FA6C9}
.foot-row a{color:#8FA6C9;text-decoration:none;border-bottom:1px solid #24365C;padding-bottom:1px}
.foot-row a:hover{color:#fff;border-color:var(--sky)}

/* ══ 문서 페이지 (약관 · 개인정보처리방침) ═══════════════════════════ */
.doc{background:var(--paper);color:var(--ink)}
.doc-head{padding-block:clamp(38px,6vw,64px) clamp(26px,4vw,38px);border-bottom:1px solid var(--rule)}
.doc-head h1{
  margin:0 0 10px;font-size:clamp(30px,4.6vw,44px);
  letter-spacing:-.03em;line-height:1.08;font-weight:740;
}
.doc-head .eyebrow{color:var(--brand)}
.doc-meta{
  margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted);
}
.doc-body{padding-block:clamp(34px,5vw,54px) clamp(56px,8vw,92px);max-width:74ch}
.doc-body h2{
  margin:44px 0 12px;font-size:20px;letter-spacing:-.015em;font-weight:700;
  padding-top:20px;border-top:1px solid var(--rule);
}
.doc-body h2:first-of-type{margin-top:0;border-top:0;padding-top:0}
.doc-body h2 .n{
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;
  color:var(--brand);display:block;margin-bottom:7px;font-weight:400;
}
.doc-body h3{margin:26px 0 8px;font-size:16px;font-weight:650}
.doc-body p{margin:0 0 14px;color:#2C3440}
.doc-body ul,.doc-body ol{margin:0 0 16px;padding-left:20px;color:#2C3440}
.doc-body li{margin-bottom:7px}
.doc-body a{color:var(--brand);text-underline-offset:3px}
.doc-body strong{font-weight:650;color:var(--ink)}
.doc-body table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:14.5px}
.doc-body th,.doc-body td{
  border:1px solid var(--rule);padding:10px 13px;text-align:left;vertical-align:top;
}
.doc-body th{background:#E9EAE7;font-weight:650;font-size:13px}
.doc-body code{
  font-family:var(--mono);font-size:.9em;background:#E9EAE7;
  padding:1px 5px;border-radius:3px;
}
/* 사업자 정보처럼 확인이 필요한 자리 */
.doc-note{
  border-left:3px solid var(--brand);background:#E9EEFA;
  padding:14px 18px;margin:0 0 22px;font-size:14.5px;
}
.doc-note p{margin:0 0 8px;color:#1B2A4A}
.doc-note p:last-child{margin:0}
/* 문서 페이지의 머리글은 어두운 띠 하나만 */
.doc-mast{background:var(--field)}
.doc-toc{
  list-style:none;margin:0 0 8px;padding:0;
  display:grid;gap:6px 26px;font-family:var(--mono);font-size:13px;
}
@media(min-width:680px){.doc-toc{grid-template-columns:1fr 1fr}}
.doc-toc a{color:var(--muted);text-decoration:none}
.doc-toc a:hover{color:var(--brand)}
