/* Base page styles */
@font-face{font-family:Pretendard;src:url('../PretendardVariable.woff2') format('woff2');font-display:swap}
    :root{--ink:var(--text-primary);--muted:var(--text-secondary);--line:var(--border-default);--bg:var(--bg-page);--blue:var(--brand);--sky:var(--brand-weak);--mint:var(--success-weak);--amber:var(--caution-weak);--danger:var(--danger);--card:var(--bg-surface)}
    *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Pretendard,system-ui,sans-serif;font-weight:430;letter-spacing:-.012em;line-height:1.68}.wrap{max-width:1040px;margin:auto;padding:24px 18px 56px}.hero{overflow:hidden;position:relative;background:linear-gradient(128deg,#10233f,#253f66);color:#fff;border-radius:24px;padding:28px}.hero:after{content:"";position:absolute;width:340px;height:340px;border:1px solid #ffffff2e;border-radius:50%;right:-130px;top:-220px;box-shadow:0 0 0 38px #ffffff10,0 0 0 76px #ffffff08}.eyebrow{font-size:12px;letter-spacing:.08em;font-weight:650;color:#cfe0ff}.hero h1{position:relative;z-index:1;margin:8px 0 10px;font-size:clamp(27px,5vw,40px);line-height:1.2;letter-spacing:-.045em;font-weight:680}.hero p{position:relative;z-index:1;margin:0;max-width:640px;color:#d8e7fb;font-size:15px}.hero-note{position:relative;z-index:1;margin-top:16px;display:inline-flex;gap:8px;align-items:center;padding:7px 10px;border-radius:99px;background:#ffffff17;border:1px solid #ffffff28;font-size:12px}.overview{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin:18px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px}.card h2,.card h3{margin:0;color:var(--ink);letter-spacing:-.035em}.card h2{font-size:19px;font-weight:660}.card h3{font-size:15px;font-weight:630}.muted{color:var(--muted);font-size:13px}.progress-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:11px 0 9px}.progress-number{font-size:14px;font-weight:620}.progress-track{height:10px;border-radius:99px;background:var(--line);overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#6c4ac6,#315FC4);border-radius:inherit;transition:width .25s ease}.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.badge{border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--sky);color:var(--muted);font-size:12px}.badge.on{background:var(--mint);border-color:var(--success,#a9ddc5);color:var(--success,#315FC4);font-weight:600}.notice{background:var(--amber);border-left:4px solid var(--caution,#6D5BD0);color:var(--caution,#315FC4);font-size:13px;padding:12px 14px;border-radius:12px}.journey{display:grid;grid-template-columns:280px 1fr;gap:14px;margin-top:14px}.daylist{display:grid;gap:8px;align-content:start}.daybtn{appearance:none;text-align:left;width:100%;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:11px 12px;cursor:pointer;display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;color:var(--ink);font:inherit;transition:.16s}.daybtn:hover{border-color:var(--blue);background:var(--sky)}.daybtn.on{background:var(--sky);border-color:#91b4ee}.daynum{width:26px;height:26px;border-radius:8px;background:var(--sky);display:grid;place-items:center;font-size:12px;font-weight:650;color:var(--muted)}.daybtn.on .daynum{background:var(--brand-action);color:#fff}.daytitle{font-size:13px;font-weight:590;line-height:1.35}.daytime{font-size:11px;color:var(--muted)}.check{color:var(--success,#315FC4);font-size:14px}.lesson{min-height:510px}.lesson-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.lesson-head h2{font-size:23px}.lesson-head p{margin:5px 0 0}.lesson-chip{white-space:nowrap;padding:5px 9px;border-radius:99px;background:var(--sky);color:var(--blue);font-size:12px}.concept{margin-top:16px;display:grid;grid-template-columns:1fr .9fr;gap:13px}.definition{background:var(--sky);border:1px solid var(--line);border-radius:15px;padding:15px}.definition b{display:block;font-size:15px;margin-bottom:5px;font-weight:640}.definition p{margin:0;font-size:13px;color:var(--muted)}.visual{overflow:hidden;border:1px solid var(--line);border-radius:15px;min-height:192px;background:var(--card);padding:10px}.visual svg{width:100%;height:180px;display:block}.misconception{margin-top:13px;padding:12px 14px;border-left:4px solid var(--caution,#315FC4);background:var(--amber);border-radius:11px;color:var(--caution,#315FC4);font-size:13px}.practice{margin-top:14px;border:1px solid var(--line);border-radius:16px;padding:15px}.practice h3{margin-bottom:4px}.choices{display:grid;gap:8px;margin-top:12px}.choice{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:11px 12px;text-align:left;color:var(--ink);cursor:pointer;font:inherit;font-size:13px;line-height:1.55}.choice:hover{border-color:var(--blue);background:var(--sky)}.choice.good{background:var(--mint);border-color:var(--success,#9dd7bc);color:var(--success,#315FC4)}.choice.warn{background:var(--danger-weak,#fff4f1);border-color:var(--danger);color:var(--danger)}.feedback{display:none;margin-top:12px;border-radius:12px;padding:12px 14px;background:var(--sky);color:var(--muted);font-size:13px}.feedback.on{display:block}.reason{margin-top:12px}.reason label{display:flex;gap:8px;align-items:flex-start;margin:7px 0;font-size:13px;color:var(--muted)}.reason input{margin-top:5px;accent-color:var(--blue)}.complete-row{margin-top:16px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:14px}.button{border:0;border-radius:11px;padding:10px 13px;background:var(--blue);color:#fff;font:inherit;font-size:13px;font-weight:590;cursor:pointer}.button:hover{background:#5636ae}.button.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line)}.button:disabled{cursor:not-allowed;opacity:.56}.reflection{font-size:12px;color:var(--muted);max-width:390px}.footer{margin-top:18px;font-size:12px;color:var(--muted);text-align:center}.form-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.form-status{font-size:12px;color:var(--muted);margin-top:9px}
/* GB-05 adaptive home cue: one question, one primary action, one explanation */
.home-cue-actions{position:relative;z-index:1;margin-top:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.home-cue-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:11px;background:#fff;color:#5636ae;font-size:13px;font-weight:650;text-decoration:none;border:0;cursor:pointer;font:inherit;touch-action:manipulation}
.home-cue-primary:hover{filter:brightness(1.03)}
.home-cue-primary:focus-visible{outline:3px solid var(--focus-ring,#315FC4);outline-offset:2px}
.home-cue-secondary{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px;color:#e4dcfa;font-size:12.5px;font-weight:560;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.wrap{padding:14px 12px 40px}.hero{padding:24px 18px;border-radius:18px}.overview,.journey,.concept{grid-template-columns:1fr}.journey{gap:12px}.daylist{grid-template-columns:repeat(2,minmax(0,1fr))}.daybtn{grid-template-columns:24px 1fr}.daytime{display:none}.lesson{min-height:0}.lesson-head h2{font-size:21px}.complete-row{align-items:flex-start;flex-direction:column}.visual{min-height:170px}.home-cue-primary{width:100%}}@media(max-width:410px){.daylist{grid-template-columns:1fr}.card{padding:15px}}

/* P1-030 layout + stamp UI */
.badge{pointer-events:none;user-select:none}
.badge:not(.on){opacity:.72}
.daytitle{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.daybtn{min-height:48px}
.choice{min-height:44px;touch-action:manipulation}
.button{min-height:44px;touch-action:manipulation}
.complete-row{flex-wrap:wrap}
.complete-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-secondary)}
.complete-row .button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){
  .daylist{grid-template-columns:1fr!important;gap:8px}
  .daybtn{grid-template-columns:28px 1fr auto!important}
  .daytime{display:inline!important;font-size:11px;color:var(--muted)}
  .complete-row{flex-direction:column;align-items:stretch}
  .complete-row .button{width:100%}
  .lesson-head{flex-direction:column;align-items:flex-start}
  .reflection{font-size:12px;line-height:1.5}
}
@media(max-width:430px){
  .wrap{padding:12px 10px 36px}
  .daytitle{font-size:12px}
  .hero h1{font-size:clamp(24px,7vw,34px)}
  .overview{gap:10px}
  .badge{font-size:11px;padding:5px 8px}
  .form-row .button{flex:1 1 140px;min-width:0}
}
/* B-1 return hub */
.home-return-hub{margin:14px 0;display:grid;gap:12px}
.home-return-hub .hub-card{padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.home-return-hub .hub-card h2{margin:0 0 6px;font-size:17px}
.home-return-hub .hub-card p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.55}
.home-return-hub .hub-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:11px;background:var(--blue);color:#fff;font:650 13px Pretendard,system-ui,sans-serif;text-decoration:none}
.home-first-only[hidden],.home-return-only[hidden]{display:none!important}
#kuHomeSection .ku-list{margin-top:8px}
@media(max-width:360px){
  .hero{padding:20px 14px}
  .card{padding:14px}
  .lesson-head h2{font-size:18px}
  .choice{font-size:12.5px}
}
/* GB-11: reusable first expedition — progress map, one task, optional pace, concept handoff */
.expedition-label{display:inline-flex;align-items:center;gap:6px;margin:0 0 8px;padding:4px 9px;border-radius:999px;background:var(--sky);color:var(--brand-text);font-size:11px;font-weight:700}
.trail-map-wrap{margin-top:10px}
.trail-map{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.trail-step{appearance:none;border:1px solid var(--line);border-radius:12px;background:#fff;min-height:52px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font:inherit;color:var(--ink);touch-action:manipulation}
.trail-step .n{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#eef3fa;font-size:11px;font-weight:700;color:#48617f}
.trail-step .lbl{font-size:10px;color:var(--muted);line-height:1.2;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trail-step.is-done{background:var(--mint);border-color:#a9ddc5}
.trail-step.is-done .n{background:var(--brand-action);color:#fff}
.trail-step.is-active{background:var(--sky);border-color:#91b4ee;box-shadow:0 0 0 2px #6c4ac633}
.trail-step.is-active .n{background:var(--brand-action);color:#fff}
.trail-step:focus-visible{outline:3px solid var(--focus-ring,#315FC4);outline-offset:2px}
.pace-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}
.pace-row .pace-label{font-size:12px;color:var(--muted);font-weight:620;margin-right:2px}
.pace-chip{min-height:40px;padding:7px 11px;border-radius:999px;border:1px solid #d0deef;background:#fff;color:#456079;font:650 12px Pretendard,system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.pace-chip[aria-pressed="true"]{background:#10233f;border-color:#10233f;color:#fff}
.task-focus{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#f3f8ff;border:1px solid #d5e4f8;color:#2c4f7c;font-size:12.5px;line-height:1.55}
.task-focus b{color:#1a3358}
.handoff-card{margin-top:14px;padding:16px 18px;border:1px solid var(--border-default);border-radius:16px;background:var(--bg-surface)}
.handoff-card h2{margin:0 0 6px;font-size:17px}
.handoff-card p{margin:0 0 12px;color:var(--text-secondary);font-size:13px;line-height:1.6}
.handoff-actions{display:flex;flex-wrap:wrap;gap:8px}
.handoff-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 13px;border-radius:11px;font:650 12.5px Pretendard,system-ui,sans-serif;text-decoration:none}
.handoff-actions .primary{background:var(--brand-action);color:#fff}
.handoff-actions .secondary{background:var(--bg-surface);color:var(--brand-text);border:1px solid var(--border-default)}
.journey{grid-template-columns:1fr}
.journey .trail-side{margin-bottom:10px}
.journey .daylist{display:none}
.journey.pace-browse .daylist{display:grid}
.journey.pace-browse{grid-template-columns:280px 1fr}
@media(max-width:760px){
  .trail-map{grid-template-columns:repeat(4,minmax(0,1fr))}
  .journey.pace-browse{grid-template-columns:1fr}
  .handoff-actions a{width:100%}
}
@media(max-width:430px){
  .trail-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .trail-step{min-height:48px}
  .pace-chip{flex:1 1 calc(50% - 6px)}
}
