:root{--bg:#f7f6f0;--ink:#243d37;--muted:#65796f;--green:#236750;--line:#dce2d8;--white:#fffef9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans KR',sans-serif;font-size:15px;line-height:1.7}header{max-width:1160px;margin:auto;padding:26px 28px;display:flex;justify-content:space-between;align-items:center}.brand{color:var(--ink);font-size:25px;font-weight:700;text-decoration:none;letter-spacing:-1px}.brand span{display:block;font-size:11px;letter-spacing:2px;font-weight:400}main{max-width:1100px;margin:auto;padding:18px 28px 70px}h1{font-size:clamp(30px,4vw,45px);line-height:1.4;letter-spacing:-2px;margin:16px 0}h2{font-size:25px;letter-spacing:-1px}h3{margin:0 0 10px;font-size:18px}p{margin:10px 0 20px}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);padding:10px 18px;cursor:pointer;transition:background .15s}button:hover{background:#e5ece2}button:disabled{opacity:.5;cursor:wait}button.primary,button.selected{background:var(--green);color:white;border-color:var(--green)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d2ad57;outline-offset:3px}input,select,textarea{width:100%;padding:10px 12px;background:var(--white);border:1px solid var(--line);border-radius:10px;color:var(--ink)}label{display:block;font-size:13px;color:var(--muted)}textarea{min-height:85px;resize:vertical}form{display:grid;gap:16px}.login{max-width:600px;margin:55px auto}.login form{max-width:400px;margin:35px 0}.eyebrow{color:var(--green);font-size:11px;font-weight:600;letter-spacing:3px}.toolbar,.row{display:flex;gap:16px;align-items:center;justify-content:space-between}.toolbar label{min-width:220px}nav{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0 30px}nav button{background:transparent;border:none}nav button.selected{border-radius:30px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:26px;padding:30px;background:#edf0e4;border-radius:24px;margin-bottom:24px}.cast{width:100%;border-radius:18px;mix-blend-mode:multiply}.period{grid-template-columns:repeat(4,1fr);align-items:end;margin:22px 0}.card{padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--white);margin:15px 0}.grid,.personaGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.personaGrid{grid-template-columns:repeat(4,1fr)}.personaGrid button{text-align:left;min-height:90px}.personaGrid small{display:block;font-size:11px;margin-top:8px}.muted,small{color:var(--muted);font-size:12px}.pillars{display:flex;gap:12px;margin:16px 0}.pillars span{flex:1;text-align:center;padding:12px;background:#e9eee5;border-radius:10px}.pillars b{display:block;font-size:24px}.badge{display:inline-block;font-size:11px;padding:3px 9px;border-radius:20px;background:#edf0e4}.messages{height:380px;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:20px;margin:20px 0;background:#eeeee6}.bubble{max-width:85%;padding:16px 20px;border-radius:16px;margin:12px 0;background:white;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:#dce8d9;margin-left:auto}.bubble small{display:block;white-space:normal;margin-top:10px}.profileForm{grid-template-columns:1fr 1fr}.memoryText{white-space:pre-wrap;overflow-wrap:anywhere}.danger{color:#a33c34}.costNumber{font-size:27px;font-weight:600}.costEntry{border-top:1px solid var(--line);padding:10px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#alert{position:sticky;top:0;z-index:5;padding:12px 24px;background:#f5e2b6;color:#5e4720;text-align:center}footer{max-width:1050px;margin:auto;border-top:1px solid var(--line);padding:24px;color:var(--muted);font-size:11px}[hidden]{display:none!important}@media(max-width:650px){main,header{padding:18px}.hero{grid-template-columns:1fr;padding:24px}.cast{max-height:170px;object-fit:cover;object-position:50% 35%}.period,.profileForm{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr 1fr}.personaGrid{grid-template-columns:1fr 1fr}.toolbar{gap:10px}.toolbar label{min-width:0;flex:1}.bubble{max-width:95%}.card{padding:18px}nav{gap:0}nav button{padding:9px 12px;font-size:13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
