:root{--bg: #f7ecd9;--card: #fffaf0;--ink: #4a2f18;--sub: #9a6a3e;--accent: #e05a7a;--good: #3f9f5f;--bad: #c9743a;--line: #e8d5b8}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Pretendard,Malgun Gothic,Apple SD Gothic Neo,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}#app{max-width:980px;margin:0 auto;padding:16px 16px 80px}.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:12px 18px;margin-bottom:14px}.topbar .brand{font-size:20px;font-weight:800}.badge{background:var(--accent);color:#fff;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700}.stat{font-size:15px;font-weight:600;display:flex;gap:4px;align-items:center}.trendchip{background:#fff2cf;border:1px solid #e8c96a;border-radius:999px;padding:3px 12px;font-size:13px}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}nav button{flex:1;min-width:96px}button{font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:10px 16px;transition:transform .06s,box-shadow .06s}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 0 var(--line)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.good{background:var(--good);border-color:var(--good);color:#fff}button.small{padding:6px 10px;font-size:13px;border-radius:9px}button.ghost{background:transparent}.card{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px}.card h3{margin-bottom:8px;font-size:17px}.card .desc{color:var(--sub);font-size:14px;margin-bottom:10px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.emoji-big{font-size:44px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.stepchip{background:#fff2cf;border-radius:8px;padding:3px 9px;font-size:13px;font-weight:600}.stepchip.locked{background:#eee;color:#999}.freshbar{width:90px;height:8px;background:var(--line);border-radius:4px;overflow:hidden;display:inline-block;vertical-align:middle}.freshbar>div{height:100%;background:var(--good)}.log{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.log-item{font-size:14px;padding:8px 10px;background:#fff4e2;border-radius:10px;border-left:4px solid var(--line)}.log-item.good{border-left-color:var(--good)}.log-item.bad{border-left-color:var(--bad)}.log-item.mission{border-left-color:#7a5af0}.log-item.upload{border-left-color:#c73a3a}.log-day{color:var(--sub);font-size:12px;margin-right:6px}.meter{width:100%;height:12px;background:var(--line);border-radius:6px;overflow:hidden;margin:6px 0}.meter>div{height:100%;background:linear-gradient(90deg,#e05a7a,#f0a05a)}.grade-badge{font-size:40px;font-weight:900;width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.breakdown{display:flex;flex-direction:column;gap:4px;font-size:14px}.breakdown .row{justify-content:space-between}.modal-backdrop{position:fixed;inset:0;background:#3c28148c;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--card);border-radius:20px;padding:26px;max-width:520px;width:100%;max-height:86vh;overflow-y:auto}.modal h2{margin-bottom:12px}.modal ul{margin:10px 0 10px 20px;line-height:1.9;font-size:14px}#game-overlay{position:fixed;inset:0;background:#3c2814a6;display:flex;align-items:center;justify-content:center;z-index:40;padding:12px;flex-direction:column;gap:10px}#game-overlay.hidden{display:none}#game-panel{background:#fff;border-radius:18px;padding:10px;box-shadow:0 10px 40px #0000004d}#game-step-label{color:#fff;font-weight:700;font-size:17px;text-shadow:0 1px 4px rgba(0,0,0,.4)}#game-root{width:min(760px,94vw);aspect-ratio:760/560}#game-root canvas{border-radius:12px;display:block;width:100%!important;height:100%!important}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#3a2412;color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;z-index:60;box-shadow:0 6px 20px #0000004d;max-width:90vw}.comment{background:#f2f6ff;border-radius:10px;padding:8px 12px;font-size:14px;margin-bottom:8px}.comment .who{font-weight:700;margin-right:6px}input[type=text],input[type=password]{font-family:inherit;font-size:15px;padding:10px 12px;border:2px solid var(--line);border-radius:10px;width:100%;margin:6px 0}.hint{color:var(--sub);font-size:13px}.fx-banner{background:#fff2cf;border:1px dashed #e8c96a;padding:8px 14px;border-radius:10px;font-size:14px;margin-bottom:12px}.tag{display:inline-block;background:#eee;border-radius:6px;padding:2px 8px;font-size:12px;margin:2px}
