/* Pretendard from cdn */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css");

:root{
  --mint-50:  #eef8f7;
  --mint-100: #d8ede9;
  --mint-200: #b6ddd6;
  --mint-300: #86c6bd;
  --mint-400: #5aada4;
  --mint-500: #3b8f88;   /* logo main */
  --mint-600: #2f7772;
  --mint-700: #245d5a;
  --mint-900: #133432;

  --ink-900: #0f1b1c;
  --ink-700: #2a3a3b;
  --ink-500: #55686a;
  --ink-300: #8b9a9c;
  --ink-100: #dfe6e6;

  --paper: #f6f4ef;
  --card:  #ffffff;
  --gold:  #b58a49;
}

*{ box-sizing:border-box; }

html,body{margin:0;padding:0;background:#e5e5e0;font-family:'Pretendard', system-ui, -apple-system, sans-serif;color:var(--ink-900);}
body{ min-height:100vh; display:flex; align-items:flex-start; justify-content:center; padding:24px 12px; }

.poster{
  width:720px;
  max-width:100%;
  background:var(--paper);
  box-shadow: 0 30px 60px -20px rgba(15,27,28,.25), 0 8px 20px -8px rgba(15,27,28,.15);
  position:relative;
  overflow:hidden;
  border-radius:6px;
}

/* header band */
.band{
  position:relative;
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(255,255,255,.18), transparent 55%),
    linear-gradient(160deg, var(--mint-600) 0%, var(--mint-500) 45%, var(--mint-400) 100%);
  color:#fff;
  padding: 36px 44px 30px;
}

.logo-row{ display:flex; align-items:center; gap:14px; }
.logo-row img{ height:56px; width:auto; filter: brightness(0) invert(1); opacity:.98; }

.band h1{
  font-family:'Gowun Batang', 'Pretendard', serif;
  font-weight:700;
  font-size:44px;
  letter-spacing:-.02em;
  line-height:1.18;
  margin:26px 0 10px;
}
.band .sub{
  font-size:15px;
  color:rgba(255,255,255,.92);
  letter-spacing:.02em;
}
.band .weekpill{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:22px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.32);
  padding:8px 14px; border-radius:999px;
  font-size:13.5px; letter-spacing:.02em;
  backdrop-filter: blur(6px);
}
.weekpill .dot{ width:6px; height:6px; border-radius:50%; background:#ffd98a; box-shadow:0 0 0 4px rgba(255,217,138,.18); }

/* content */
.content{ padding: 30px 44px 44px; }

.section{ margin-top: 26px; }
.section:first-child{ margin-top:0; }

.sec-head{
  display:flex; align-items:baseline; gap:12px;
  margin-bottom:14px;
}
.sec-num{
  font-family:'Gowun Batang', serif;
  font-weight:700;
  color:var(--mint-500);
  font-size:22px;
  letter-spacing:0;
  min-width: 28px;
}
.sec-title{
  font-size:19px; font-weight:700; color:var(--ink-900);
  letter-spacing:-.01em;
  margin:0;
}
.sec-title .accent{
  display:inline-block; height:8px; width:8px; border-radius:2px;
  background:var(--mint-400); transform: translateY(-3px); margin-left:2px;
}

.card{
  background:var(--card);
  border:1px solid var(--ink-100);
  border-radius:10px;
  padding:18px 20px;
  box-shadow: 0 1px 0 rgba(15,27,28,.02);
}

.body{
  font-size:15px; line-height:1.7; color:var(--ink-700);
  letter-spacing:-.005em;
  word-break: keep-all;
  text-wrap: pretty;
}
.body strong{ color:var(--mint-700); font-weight:700; }
.muted{ color:var(--ink-500); font-size:14px; }

/* highlight (vacation) */
.vacation{
  background:linear-gradient(180deg, #ffffff 0%, #fbf7ef 100%);
  border:1px solid #e9dfc6;
  border-radius:12px;
  padding:20px 22px;
  display:flex; gap:18px; align-items:center;
  position:relative; overflow:hidden;
  flex-wrap: wrap;
}
.vacation::before{
  content:""; position:absolute; right:-30px; top:-30px; width:140px; height:140px;
  background: radial-gradient(circle, rgba(181,138,73,.10), transparent 70%);
}
.vacation .big{
  font-family:'Gowun Batang', serif; font-weight:700;
  color:var(--gold);
  font-size:34px; line-height:1; letter-spacing:-.01em;
  white-space:nowrap;
}
.vacation .big small{ display:block; font-size:12px; letter-spacing:.28em; color:#b09a6e; font-family:'Pretendard', sans-serif; font-weight:500; margin-bottom:6px; }
.vacation .txt{ font-size:15px; color:var(--ink-700); line-height:1.55; word-break: keep-all; }
.vacation .txt b{ color:var(--ink-900); }

/* Table */
table.tt{
  width:100%; border-collapse:separate; border-spacing:0;
  background:#fff; border:1px solid var(--ink-100); border-radius:10px;
  overflow:hidden;
  font-size:14.5px;
}
table.tt thead th{
  background: var(--mint-50);
  color: var(--mint-700);
  font-weight:700; text-align:left;
  padding:10px 14px;
  font-size:13px; letter-spacing:.04em;
  border-bottom:1px solid var(--mint-100);
}
table.tt tbody td{
  padding:11px 14px;
  border-bottom:1px solid #f0eee9;
  vertical-align:middle;
}
table.tt tbody tr:last-child td{ border-bottom:none; }
table.tt .no{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:50%;
  background:var(--mint-500); color:#fff; font-weight:700; font-size:12.5px;
  margin-right:10px;
}
table.tt .day{ font-weight:700; color:var(--ink-900); letter-spacing:-.01em; }
table.tt .day .dow{ color:var(--mint-600); margin-left:2px; font-weight:600; }
table.tt .time{ color:var(--ink-700); font-variant-numeric: tabular-nums; letter-spacing:.02em; font-weight:500; }
table.tt tr.groupstart td{ border-top:1px solid var(--mint-100); }
table.tt .daycell{ background:#fbfdfc; }

.tt-note{ margin-top:10px; font-size:13px; color:var(--ink-500); }
.tt-note b{ color:var(--mint-700); }

/* buttons / link */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 20px;
  background:var(--mint-500);
  color:#fff !important;
  text-decoration:none;
  border-radius:10px;
  font-weight:600; font-size:15px;
  letter-spacing:-.01em;
  box-shadow:0 8px 18px -8px rgba(59,143,136,.55);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 12px 22px -10px rgba(59,143,136,.6); }
.btn .arrow{ transition: transform .2s ease; }
.btn:hover .arrow{ transform: translateX(3px); }
.btn.ghost{ background:#fff; color:var(--mint-700) !important; border:1px solid var(--mint-200); box-shadow:none; }

/* free class boxes */
.free-wrap{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:14px; }
.free{
  background:#fff; border:1px solid var(--ink-100); border-radius:10px;
  padding:16px 16px 14px; position:relative;
}
.free .tag{
  display:inline-block; font-size:11.5px; letter-spacing:.14em; font-weight:700;
  padding:4px 8px; border-radius:4px; background:var(--mint-50); color:var(--mint-700);
  margin-bottom:10px;
}
.free .when{ font-family:'Gowun Batang', serif; font-weight:700; font-size:22px; letter-spacing:-.01em; color:var(--ink-900); line-height:1.2; }
.free .when small{ display:block; font-size:12.5px; color:var(--ink-500); font-family:'Pretendard'; font-weight:500; letter-spacing:.02em; margin-top:2px; }
.free .where{ margin-top:10px; font-size:13.5px; color:var(--ink-700); line-height:1.5; word-break: keep-all; }
.free .where b{ color:var(--mint-700); }

.free-meta{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;
}
.chip{
  display:inline-flex; align-items:center; gap:6px;
  background:#fff; border:1px solid var(--ink-100); color:var(--ink-700);
  padding:6px 10px; border-radius:999px; font-size:12.5px; letter-spacing:-.01em;
}
.chip b{ color:var(--mint-700); font-weight:700; }

/* footer */
.foot{
  margin-top:36px;
  padding: 22px 44px 34px;
  background:var(--mint-900);
  color:#cfe6e2;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-size:12.5px; letter-spacing:.02em;
  flex-wrap: wrap;
}
.foot .brand{ font-family:'Gowun Batang', serif; font-weight:700; color:#fff; letter-spacing:.02em; font-size:15px; }
.foot .brand small{ display:block; letter-spacing:.28em; font-family:'Pretendard'; font-weight:500; font-size:10.5px; color:#9dc0bb; margin-top:3px; }
.foot .sig{ text-align:right; line-height:1.5; }
.foot .sig b{ color:#fff; font-weight:600; }

/* soft corner mark */
.corner{
  position:absolute; top:20px; right:24px;
  font-family:'Gowun Batang', serif; color:rgba(255,255,255,.75);
  font-size:12px; letter-spacing:.32em;
}

/* highlight bullet */
ul.marks{ list-style:none; padding:0; margin:10px 0 0; }
ul.marks li{
  position:relative; padding-left:18px; font-size:14.5px; color:var(--ink-700);
  line-height:1.7;
}
ul.marks li::before{
  content:""; position:absolute; left:0; top:.75em;
  width:6px; height:6px; border-radius:50%; background:var(--mint-400);
}

@media (max-width: 760px){
  .band{ padding: 24px 20px 22px; }
  .content{ padding: 24px 20px 34px; }
  .foot{ padding: 20px 20px 28px; }
  .band h1{ font-size: 36px; }
  .free-wrap{ grid-template-columns: 1fr; }
}

@media print {
  body{ background:#fff; padding:0; }
  .poster{ box-shadow:none; }
}
