:root{--ink:#222;--muted:#555;--gold:#b08a2e;--gold-d:#7d5f14;--bg:#fbf8f1;--card:#fff;--line:#d8cfb8;--ok:#1c6b3a;--err:#a11d1d;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:19px/1.6 "Noto Sans KR","Malgun Gothic",system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
button,input,textarea{font:inherit;color:inherit}
.hid{display:none}
.boot{padding:40px;text-align:center}
:focus-visible{outline:4px solid #1a56db;outline-offset:2px}

/* 버튼 */
.btn{min-height:56px;padding:12px 18px;border-radius:var(--r);border:2px solid var(--gold-d);background:#fff;font-weight:700;font-size:1.05rem;cursor:pointer;line-height:1.3}
.btn.primary{background:var(--gold-d);color:#fff}
.btn.gold{background:linear-gradient(#d9b44c,#b08a2e);color:#2b1f00;border-color:#7d5f14}
.btn.ghost{background:#fff}
.btn.alt{background:#fff8e6}
.btn.danger{border-color:var(--err);color:var(--err)}
.btn.small{min-height:44px;padding:6px 12px;font-size:.95rem}
.btn.big{width:100%;min-height:76px;font-size:1.3rem}
.btn.big.sel{background:var(--gold-d);color:#fff}
.btn.big.sel::before{content:"✓ "}
.btn.wide{width:100%}
a.btn{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}
.btn.kakao{background:#fee500;border-color:#3a1d1d;color:#3a1d1d}
.btn.call{background:#e8f5ec;border-color:var(--ok);color:#12522b}
.ov-card .stack{margin:12px 0 0}
.stack{display:grid;gap:14px;margin:18px 0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(max-width:380px){.row2{grid-template-columns:1fr}}

/* 단계 화면 */
.step{max-width:640px;margin:0 auto;padding:16px 16px 110px}
.prog-t{margin:0 0 6px;font-weight:700;color:var(--gold-d)}
.bar{height:10px;background:#e9e0c8;border-radius:6px;overflow:hidden;margin-bottom:16px}
.bar i{display:block;height:100%;background:var(--gold-d)}
.q{font-size:1.25rem;line-height:1.45;margin:0 0 10px;font-weight:700;padding:0}
.lead{font-size:1.1rem}
.hint{color:var(--muted);font-size:.9rem;margin:6px 0}
.hint.strong{font-weight:700;color:var(--ink);min-height:1.4em}
.note{background:#fff8e6;border-left:5px solid var(--gold);padding:10px 12px;border-radius:8px;font-size:.92rem}
.basis{background:#eef3ff;border-left:5px solid #2a4bbd;padding:8px 10px;border-radius:8px;font-size:.88rem;margin:6px 0 10px}
.qbox{border:0;margin:0 0 22px;padding:0;min-width:0}
.sep{height:1px;background:var(--line);margin:12px 0}
.plain{margin:10px 0;padding-left:1.2em}.plain li{margin:4px 0}.plain.sm{font-size:.92rem}
.err{background:#fdeaea;border:2px solid var(--err);color:var(--err);padding:10px 12px;border-radius:10px;font-weight:700;margin:0 0 12px}
.err[hidden]{display:none}
.nav{position:sticky;bottom:0;display:flex;gap:10px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 25%);margin-top:20px}
.nav .btn{flex:1}
.nav .btn.primary{flex:2}
body.kb-open .step .nav{position:static}

/* 선택지 */
.opt{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;margin:8px 0;border:2px solid var(--line);border-radius:var(--r);background:var(--card);cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt .mark{flex:none;width:28px;height:28px;border:3px solid var(--gold-d);border-radius:6px;background:#fff;display:grid;place-items:center;font-weight:900;color:#fff}
input[type=radio]+.mark{border-radius:50%}
.opt.sel{border-color:var(--gold-d);background:#fff3cf;border-width:3px}
.opt.sel .mark{background:var(--gold-d)}
.opt.sel .mark::after{content:"✓"}
.opt:focus-within{outline:4px solid #1a56db;outline-offset:2px}
.opt.tri{justify-content:center;padding:8px;min-height:60px;margin:6px 0}
.opt.tri .lbl{font-weight:700}
.opt.big{margin-top:16px}
input[type=text],input[type=tel],textarea{width:100%;padding:12px 14px;border:2px solid #8b8368;border-radius:var(--r);background:#fff;font-size:1.05rem}
textarea{resize:vertical}
.sub{margin:4px 0 10px}
.subwrap{margin:0 0 8px 18px;padding-left:10px;border-left:4px solid var(--gold)}
.sublab{display:block;font-size:.92rem;font-weight:700;margin:10px 0 4px}
.amt{display:flex;align-items:center;gap:10px}.amt input{flex:1;font-size:1.4rem;font-weight:700}.amt span{font-weight:700;white-space:nowrap}

/* 파일 */
.files{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.file{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff}
.file img,.file .pdf{flex:none;width:56px;height:56px;object-fit:cover;border-radius:8px;background:#eee;display:grid;place-items:center;font-weight:900}
.file .fn{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.9rem}.file small{display:block;color:var(--muted)}
.none{color:var(--muted);font-size:.9rem}
.fmsg{color:var(--err);font-size:.9rem;min-height:1.2em;margin:4px 0}

/* 요약·동의 */
.sum{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:14px 0;background:#fff}
.sum h3{margin:0 0 6px;font-size:1.1rem;color:var(--gold-d)}
.srow{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;border-top:1px dashed var(--line);padding:8px 0}
.srow p{margin:2px 0;overflow-wrap:anywhere;font-size:.95rem}
.consent-text{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;background:#fff;border:2px solid var(--line);border-radius:var(--r);padding:12px;font:inherit;font-size:.95rem;max-height:46vh;overflow:auto}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:16px;z-index:50}
.ov-card{background:#fff;border-radius:var(--r);padding:20px;max-width:480px;width:100%;max-height:90dvh;overflow:auto}
.ov-card h2{font-size:1.3rem;margin-top:0}.ov-files{padding-left:1.1em;font-size:.95rem}
.okbox{background:#e8f5ec;border:2px solid var(--ok);border-radius:var(--r);padding:12px 16px;margin-bottom:16px}
.okbox h2{margin:0;color:var(--ok);font-size:1.3rem}.rno{font-size:1.3rem;letter-spacing:.03em}
#toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#222;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:90vw}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* 슬라이더 */
.slider{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0}
.slider-view{flex:1;min-height:0;overflow:hidden;touch-action:pan-y;position:relative}
.slider-track{display:flex;height:100%;will-change:transform}
.slide{flex:0 0 100%;height:100%;position:relative}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.slider-ctl{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 0;flex:none}
.slider-ctl button{min-width:44px;min-height:44px;border:2px solid var(--gold-d);background:#fff;border-radius:50%;font-size:1.2rem;font-weight:900;cursor:pointer;padding:0}
.s-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.s-dots{flex-wrap:nowrap}
.s-dot{min-width:34px!important;min-height:44px!important;border:0!important;background:transparent!important;position:relative}
.s-dot::after{content:"";position:absolute;inset:0;margin:auto;width:12px;height:12px;border-radius:50%;border:2px solid var(--gold-d);background:#fff}
.s-dot.on::after{width:18px;height:18px;background:var(--gold-d)}
.slider-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:var(--r);margin:8px;padding:16px}

/* 첫 화면 */
body[data-screen=home]{background:#fff}
.intro{height:100vh;height:100dvh;min-height:420px;display:flex;flex-direction:column;padding:0 max(1px,env(safe-area-inset-left)) 0 max(1px,env(safe-area-inset-right));background:#fff}
.intro-slider{flex:1;min-height:0}
.intro-btn{margin:8px 10px calc(10px + env(safe-area-inset-bottom));flex:none}
.profile{padding:20px 16px 40px;text-align:center}
.marble{background:radial-gradient(circle at 20% 10%,#fff 0,#f4f1ea 40%,#e9e4d8 100%),repeating-linear-gradient(115deg,rgba(150,140,120,.06) 0 2px,transparent 2px 24px);border-top:6px double var(--gold);position:relative}
.marble::before,.marble::after{content:"";position:absolute;left:10px;right:10px;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.marble::before{top:6px}.marble::after{bottom:10px}
.logos{display:flex;gap:12px;justify-content:center;align-items:center;margin-bottom:10px}
.logo{flex:1;display:grid;place-items:center;min-height:84px}
.logo:first-child{flex:1.5}
.logo img{max-width:100%;max-height:96px;object-fit:contain}
.logo:first-child img{max-height:130px}
.logo-missing{border:2px dashed var(--line);padding:10px;border-radius:10px;font-size:.85rem;color:var(--muted)}
.badges{display:flex;gap:10px;justify-content:center;align-items:center;margin:4px 0 12px}
.badges img{height:auto;object-fit:contain;border-radius:8px}
.badges img:first-child{width:58%;max-width:300px}
.badges img:last-child{width:34%;max-width:180px}
.eyebrow{margin:6px 0 0;font-size:1.15rem;letter-spacing:.2em;color:var(--gold-d);font-weight:700}
.pname{margin:0;font-size:2.6rem;line-height:1.2;color:#1c1500;font-family:"Noto Serif KR",serif}
.cred{font-weight:700;margin:6px 0}
.thesis{margin:8px 0;font-size:.98rem}
.msg{margin:14px 0 26px;padding:12px;font-size:1.3rem;font-weight:800;color:var(--gold-d);border-top:2px solid var(--gold);border-bottom:2px solid var(--gold)}
.books h2{font-size:1.05rem;margin:0 0 4px;color:var(--gold-d)}
.books ul{list-style:none;padding:0;margin:0 0 10px;font-weight:700}
.field{font-size:.95rem}
.more{text-align:left;background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;margin:14px 0}
.more summary{font-weight:700;min-height:44px;display:flex;align-items:center;cursor:pointer}
.more h3{margin:10px 0 2px;color:var(--gold-d);font-size:1rem}
.nav-home{position:static;background:none}
.recruit-slider{height:min(72dvh,640px);min-height:320px;padding:0 1px}
.done .nav{position:static}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
