:root{--navy:#172554;--navy-soft:#1e3a8a;--blue:#2563eb;--blue-pale:#eff6ff;--gold:#f59e0b;--ink:#182033;--muted:#5d6678;--line:#dbe3ef;--paper:#fff;--surface:#f5f7fb;--good:#047857;--danger:#b91c1c;--radius:22px;--shadow:0 18px 45px #1725541a}*{box-sizing:border-box}html{background:var(--surface)}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 0,#f59e0b1f,#0000 28rem),linear-gradient(#f8fafc 0%,#eef3fb 100%);margin:0;font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.shell{width:min(1120px,100% - 32px);margin:0 auto;padding:44px 0 72px}.landing{align-content:center;gap:28px;min-height:100vh;display:grid}.hero{color:#fff;background:linear-gradient(135deg, var(--navy), var(--navy-soft));box-shadow:var(--shadow);border-radius:30px;padding:clamp(28px,6vw,58px)}.hero h1{margin:8px 0 14px;font-size:clamp(2rem,5vw,4rem);line-height:1.1}.hero p{max-width:780px;margin:0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.75}.eyebrow{color:#fde68a;letter-spacing:.03em;font-weight:800}.entry-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.entry-card,.panel,.room-card,.student-panel{border-radius:var(--radius);box-shadow:var(--shadow);background:#fffffff0;border:1px solid #dbe3eff2}.entry-card{padding:28px}.entry-card h2{margin:12px 0 8px}.entry-card p{min-height:52px;color:var(--muted);line-height:1.6}.entry-icon{font-size:2.2rem}.primary-link,.secondary-link,.button{cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:11px 18px;font-weight:800;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.primary-link,.button.primary{color:#fff;background:var(--blue)}.secondary-link,.button.secondary{color:var(--navy);background:var(--blue-pale)}.button.ghost{color:var(--navy);border:1px solid var(--line);background:#fff}.button.danger{color:#fff;background:var(--danger)}.button:disabled{cursor:not-allowed;opacity:.5}.button:not(:disabled):hover,.primary-link:hover,.secondary-link:hover{transform:translateY(-1px)}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.topbar h1{margin:5px 0;font-size:clamp(1.8rem,4vw,3rem)}.topbar p{color:var(--muted)}.back-link{color:var(--navy-soft);font-weight:800}.mode-banner,.notice,.intervention{border-radius:15px;padding:14px 16px;line-height:1.55}.mode-banner{color:#713f12;background:#fef3c7;border:1px solid #fde68a;margin-bottom:20px}.notice{color:var(--navy);background:var(--blue-pale);border:1px solid #bfdbfe}.notice.error{color:var(--danger);background:#fef2f2;border-color:#fecaca}.intervention{color:#713f12;border:2px solid var(--gold);background:#fffbeb;margin:16px 0}.panel{margin-bottom:20px;padding:clamp(20px,4vw,32px)}.panel h2,.panel h3{margin-top:0}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.code{letter-spacing:.16em;color:var(--navy);font-size:clamp(2rem,8vw,4.5rem);font-weight:900}.session-head{grid-template-columns:1fr auto;align-items:center;gap:24px;display:grid}.qr{border:1px solid var(--line);background:#fff;border-radius:14px;justify-items:center;gap:10px;padding:10px;display:grid}.qr-modal-backdrop{z-index:1000;background:#0f172ac7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.qr-modal{text-align:center;background:#fff;border-radius:24px;width:min(680px,100%);max-height:calc(100vh - 40px);padding:clamp(22px,4vw,36px);position:relative;overflow:auto}.qr-modal h2{padding:0 72px}.qr-modal-close{position:absolute;top:16px;right:16px}.qr-large{place-items:center;margin:18px auto;display:grid}.qr-large svg{width:min(360px,72vw);height:auto}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0;display:grid}.stat{background:var(--surface);border-radius:15px;padding:14px}.stat strong{margin-top:4px;font-size:1.4rem;display:block}.rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.room-card{padding:22px}.room-card header{justify-content:space-between;align-items:center;gap:12px;display:flex}.badge{color:var(--navy);background:var(--blue-pale);border-radius:999px;padding:5px 10px;font-size:.85rem;font-weight:800;display:inline-flex}.player-list{gap:8px;margin:16px 0;padding:0;list-style:none;display:grid}.player-row{background:var(--surface);border-radius:12px;grid-template-columns:minmax(72px,.8fr) 1.2fr auto;align-items:center;gap:8px;padding:10px;display:grid}.player-row small{color:var(--muted)}.lobby-players{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:16px;display:grid}.lobby-player-card{border:2px solid var(--line);text-align:left;min-height:110px;color:var(--ink);background:var(--surface);cursor:pointer;border-radius:16px;gap:7px;padding:16px;display:grid}.lobby-player-card:hover,.lobby-player-card:focus-visible{border-color:var(--blue);background:var(--blue-pale)}.lobby-player-card strong{font-size:1.2rem}.lobby-player-card small{color:var(--muted)}.form{gap:14px;display:grid}.label{gap:7px;font-weight:800;display:grid}.input,.textarea{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #c7d2e3;border-radius:13px;padding:12px 14px}.textarea{resize:vertical;min-height:100px}.choice-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.choice{border:2px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;min-height:54px;padding:12px}.choice.selected{border-color:var(--blue);background:var(--blue-pale)}.student-panel{max-width:720px;margin:0 auto;padding:clamp(22px,5vw,38px)}.role-card{background:#fff7ed;border:1px solid #fed7aa;border-radius:18px;margin:16px 0;padding:20px}.role-card h3{margin-top:0}.progress{background:#dbe3ef;border-radius:99px;height:10px;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--blue), #60a5fa);height:100%;display:block}.deleted{color:var(--good);font-weight:800}@media (max-width:760px){.shell{width:min(100% - 20px,720px);padding-top:24px}.entry-grid,.rooms,.stats,.choice-grid{grid-template-columns:1fr}.entry-card p{min-height:auto}.topbar,.session-head{grid-template-columns:1fr;display:grid}.qr{width:fit-content}.qr-modal h2{padding:48px 0 0}.player-row{grid-template-columns:.8fr 1.2fr}.player-row .button{grid-column:1/-1}}
