/* SIDE B — www.ohttne.com/bside/
   흑백 · 큰 제목 · 짧은 문장 · 넉넉한 여백. 모바일 우선, 본문 640px. */

:root{
  --bg:#ffffff; --ink:#0a0a0a; --ink-2:#6f6f6f; --ink-3:#a8a8a8; --line:#e6e6e6; --bad:#e5484d;
  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  --mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --w:640px; --pad:20px; --r:14px;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0a0a0a; --ink:#f2f2f0; --ink-2:#9a9a9a; --ink-3:#5c5c5c; --line:#262626; --bad:#ff6b6f; }
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.7;letter-spacing:-.01em;word-break:keep-all;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--bg)}
.kicker,.no,.qn,.count,.top,.foot .mark,.foot .meta,.cta i{font-family:var(--mono)}

/* ───────── 상단 ───────── */
.top{
  display:flex;justify-content:space-between;align-items:center;
  max-width:var(--w);margin:0 auto;padding:18px var(--pad) 0;font-size:12px;letter-spacing:.02em;
}
.top .mark{font-weight:500}
.top .by{color:var(--ink-2)}
.top a{transition:opacity .2s}
.top a:hover{opacity:.55}

.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad) 32px}

/* ───────── Hero ───────── */
.hero{padding:80px 0 64px}
.kicker{margin:0 0 14px;font-size:12px;color:var(--ink-2);letter-spacing:.02em}
.wordmark{
  margin:0 0 36px -.04em;font-size:clamp(84px,24vw,168px);font-weight:800;line-height:.88;letter-spacing:-.06em;
}
.wordmark .b{color:transparent;-webkit-text-stroke:.03em var(--ink)}      /* B면 = 뒤집힌 면 */
.lead{margin:0 0 22px;font-size:clamp(25px,6.6vw,34px);font-weight:700;line-height:1.3;letter-spacing:-.035em}
.sub p{margin:0 0 16px;color:var(--ink-2)}
.sub p:last-child{margin-bottom:0}
.hero .cta{margin-top:40px}

/* 버튼: [ 같이 해볼래요? ] */
.cta{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;padding:0 20px;
  border:0;border-radius:var(--r);background:var(--ink);color:var(--bg);
  font:600 17px/1 var(--sans);letter-spacing:-.01em;cursor:pointer;-webkit-appearance:none;appearance:none;
  transition:opacity .2s,transform .1s;
}
.cta i{font-style:normal;font-weight:400;font-size:16px;opacity:.45}
.cta:hover{opacity:.85}
.cta:active{transform:scale(.99)}
.cta:disabled{opacity:.5;cursor:default;transform:none}
.cta:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.cta.off,.cta.off:disabled{background:var(--line);color:var(--ink-2);opacity:1;cursor:default;transform:none}   /* 모집 마감 */
.cta.off i{opacity:.5}
.closed-note{margin:14px 0 0;font-size:14px;color:var(--ink-2)}
body.closed .sticky{display:none}

/* ───────── 섹션 ───────── */
.sec{margin-top:56px;padding-top:56px;border-top:1px solid var(--line)}
.sec h2{
  display:flex;gap:14px;align-items:baseline;margin:0 0 22px;
  font-size:22px;font-weight:700;letter-spacing:-.03em;line-height:1.3;
}
.sec h2:focus{outline:0}
.no{font-size:12px;font-weight:500;color:var(--ink-2);letter-spacing:.02em}
.sec p{margin:0 0 16px}
.sec p:last-child{margin-bottom:0}
.note{color:var(--ink-2)}

.checks{list-style:none;margin:0 0 24px;padding:0}
.checks li{position:relative;margin:0 0 12px;padding-left:32px;font-weight:500}
.checks li::before{content:"";position:absolute;left:0;top:.4em;width:18px;height:18px;border-radius:5px;background:var(--ink)}
.checks li::after{
  content:"";position:absolute;left:5px;top:calc(.4em + 4px);width:8px;height:4.5px;
  border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:rotate(-45deg);
}

.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:0}
.tags li{
  display:inline-flex;align-items:center;height:40px;padding:0 15px;border:1px solid var(--ink);border-radius:999px;
  font-size:15px;font-weight:500;letter-spacing:-.01em;
}

/* ───────── 신청 ───────── */
.apply-intro p{margin-bottom:24px;color:var(--ink-2)}
html.js .form{animation:rise .5s cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.form-note{margin:0 0 32px;font-size:14px;color:var(--ink-2)}
.form-note b{color:var(--ink)}

.q{margin:0 0 34px;padding:0;border:0;min-width:0}
.ql{display:block;margin:0 0 12px;padding:0;font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1.45}
.qn{margin-right:10px;font-size:12px;font-weight:500;color:var(--ink-2);letter-spacing:.02em}
.req{margin-left:1px;font-weight:700}
.ql small,.opt{margin-left:8px;font-size:12px;font-weight:500;color:var(--ink-2);letter-spacing:0}
.hint{margin:-6px 0 10px;font-size:14px;color:var(--ink-2)}
.hint.after{margin:8px 0 0}

input[type=text],input[type=url],textarea{
  display:block;width:100%;min-height:52px;padding:14px 16px;
  border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);
  font:400 16px/1.5 var(--sans);letter-spacing:-.01em;-webkit-appearance:none;appearance:none;
  transition:border-color .15s;
}
textarea{min-height:128px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input:focus,textarea:focus{outline:0;border-color:var(--ink)}
.q.bad input,.q.bad textarea{border-color:var(--bad)}
.under{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.count{margin:8px 0 0 auto;font-size:12px;color:var(--ink-3);white-space:nowrap}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  position:relative;display:inline-flex;align-items:center;min-height:48px;padding:0 18px;
  border:1px solid var(--line);border-radius:999px;background:var(--bg);
  font-size:15px;font-weight:500;letter-spacing:-.01em;cursor:pointer;user-select:none;-webkit-user-select:none;
  transition:background .15s,border-color .15s,color .15s;
}
.chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
@media (hover:hover){ .chip:hover{border-color:var(--ink)} }
.chip.on,.chip:has(:checked){background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip:has(:focus-visible){outline:2px solid var(--ink);outline-offset:2px}

.err{margin:8px 0 0;font-size:13.5px;font-weight:500;color:var(--bad)}
.hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.privacy{margin:8px 0 20px;font-size:13px;line-height:1.6;color:var(--ink-2)}
.form-err{margin:12px 0 0;font-size:14px;color:var(--bad);text-align:center}

.done{outline:0}
html.js .done{animation:rise .5s cubic-bezier(.2,.7,.2,1)}
.done-title{margin:0 0 18px;font-size:28px;font-weight:700;letter-spacing:-.03em}
.done p{margin:0 0 16px}

/* ───────── 바닥 ───────── */
.foot{
  max-width:var(--w);margin:64px auto 0;padding:48px var(--pad) 120px;border-top:1px solid var(--line);
  font-size:14px;color:var(--ink-2);
}
.foot .mark{margin:0 0 12px;font-size:12px;color:var(--ink);letter-spacing:.02em}
.foot p{margin:0 0 12px}
.foot .meta{display:flex;gap:16px;margin-top:20px;font-size:12px}
.foot .meta a{transition:color .2s}
.foot .meta a:hover{color:var(--ink)}

/* 하단 고정 버튼: 첫 버튼이 지나가고, 신청 구역이 보이기 전까지만 */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  padding:16px var(--pad) calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(transparent,var(--bg) 45%);
  opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;
  transition:opacity .25s,transform .25s,visibility 0s .25s;
}
.sticky.show{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.sticky .cta{max-width:var(--w);margin:0 auto;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.sticky.show .cta{pointer-events:auto}

@media (min-width:640px){
  :root{--pad:24px}
  body{font-size:17px}
  .hero{padding-top:112px}
  .sec h2{font-size:24px}
}
@media (max-width:380px){ :root{--pad:16px} }
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}
