:root{--ink:#171a26;--muted:#697286;--line:#e5e8f0;--purple:#5c50e6;--blue:#2e6fe7;--bg:#f5f6fa}*{box-sizing:border-box}body{margin:0;font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.portal{min-height:100vh;max-width:1180px;margin:auto;padding:0 34px 54px}.portal-nav{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.portal-brand{display:flex;align-items:center;gap:11px}.portal-brand>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#6556e8,#326fe8);color:#fff;font-weight:900}.portal-brand strong{font-size:15px}.nav-links{display:flex;gap:8px}.nav-links a{font-size:12px;font-weight:800;padding:9px 12px;border-radius:9px}.nav-links a:hover{background:#fff}.portal-hero{padding:78px 0 55px;max-width:800px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--purple);margin-bottom:18px}.portal-hero h1{font-size:52px;line-height:1.12;letter-spacing:-.045em;margin:0}.portal-hero h1 em{font-style:normal;color:var(--purple)}.portal-hero p{max-width:650px;color:var(--muted);font-size:15px;line-height:1.8;margin:23px 0 29px}.hero-actions{display:flex;gap:10px}.hero-actions a{padding:13px 17px;border-radius:11px;font-size:13px;font-weight:800}.hero-actions .primary{background:#201f2f;color:#fff}.hero-actions .secondary{background:#fff;border:1px solid var(--line)}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mode-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px 27px 22px;min-height:310px;transition:.2s;overflow:hidden}.mode-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(28,34,58,.09)}.mode-card:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-70px;top:-85px;opacity:.10}.mode-card.study:after{background:#5c50e6}.mode-card.practice:after{background:#168769}.card-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:900;font-size:18px;margin-bottom:28px}.study .card-icon{background:#efedff;color:#5547d7}.practice .card-icon{background:#e8f7f1;color:#147556}.card-label{font-size:10px;font-weight:900;letter-spacing:.15em;color:#929bad}.mode-card h2{font-size:25px;margin:7px 0 10px}.mode-card p{font-size:13px;color:var(--muted);line-height:1.75;max-width:480px;margin:0}.card-footer{position:absolute;left:27px;right:27px;bottom:22px;border-top:1px solid var(--line);padding-top:15px;display:flex;align-items:baseline;gap:5px}.card-footer strong{font-size:22px}.card-footer span{font-size:11px;color:var(--muted)}.card-footer b{margin-left:auto;font-size:12px}.course-strip{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.course-strip>div{background:#eceef4;border-radius:14px;padding:15px 18px}.course-strip span{font-size:10px;font-weight:900;color:#7e8799}.course-strip p{margin:5px 0 0;font-size:12px;color:#41495b;font-weight:700}@media(max-width:760px){.portal{padding:0 18px 38px}.portal-hero{padding:55px 0 38px}.portal-hero h1{font-size:38px}.mode-grid,.course-strip{grid-template-columns:1fr}.mode-card{min-height:290px}.nav-links{display:none}}
/* Review mode + account */
.mode-grid{grid-template-columns:repeat(3,1fr)}
.mode-card.review:after{background:#c44168}.review .card-icon{background:#fff0f4;color:#b43b5a}
.mode-card.review{min-height:310px}
.mode-card.exam:after{background:#e2912c}.exam .card-icon{background:#fff2df;color:#a85b0b}.exam-action{border-color:#efc889!important;background:#fff8ea!important;color:#87500f}
.nav-links{align-items:center}
@media(max-width:980px){.mode-grid{grid-template-columns:1fr 1fr}.mode-card.review{grid-column:auto}}
@media(max-width:760px){.mode-grid{grid-template-columns:1fr}.mode-card.review{grid-column:auto}}


/* ===== Deployment QA hardening (2026-08-18) ===== */
html,body{max-width:100%;overflow-x:hidden}
.portal,.portal-hero,.mode-card,.card-footer,.course-strip>div{min-width:0}
.portal-hero h1,.portal-hero p,.mode-card h2,.mode-card p,.course-strip p{overflow-wrap:anywhere;word-break:break-word}
.hero-actions{flex-wrap:wrap}
@media(max-width:760px){
  .portal{padding-left:18px;padding-right:18px;padding-bottom:max(38px,env(safe-area-inset-bottom))}
  .portal-nav{height:76px}
  .portal-hero{padding:48px 0 34px}
  .portal-hero h1{font-size:37px;line-height:1.16}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:9px}
  .hero-actions a{display:flex;align-items:center;justify-content:center;min-height:46px;text-align:center;padding:11px 14px}
  .mode-card{display:flex;flex-direction:column;min-height:0;padding:24px 23px 21px}
  .card-icon{margin-bottom:23px}
  .card-footer{position:static;margin-top:24px;left:auto;right:auto;bottom:auto}
}
