*{margin:0;padding:0;box-sizing:border-box}:root{--pink: #ff8fb8;--pink-deep: #ff6fa5;--pink-soft: #ffd9e8;--pink-line: #ffb7d5;--sky: #7cc4f5;--sky-deep: #5aa9e8;--sky-soft: #dff1ff;--ink: #4a4a5a;--ink-soft: #8a8a9c;--card: rgba(255, 255, 255, .9);--shadow: 0 10px 28px rgba(190, 140, 200, .28);--shadow-soft: 0 6px 18px rgba(190, 140, 200, .18);--radius: 22px}html,body{height:100%}body{font-family:Pretendard Variable,Pretendard,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:var(--ink);background:linear-gradient(165deg,#ffd6ec,#f5e3ff 42%,#cfeaff);background-attachment:fixed;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(42% 26% at 12% 16%,rgba(255,255,255,.55),transparent 70%),radial-gradient(36% 22% at 85% 10%,rgba(255,255,255,.5),transparent 70%),radial-gradient(50% 30% at 70% 78%,rgba(255,255,255,.4),transparent 70%),radial-gradient(30% 20% at 25% 85%,rgba(255,255,255,.45),transparent 70%);animation:cloud-drift 26s ease-in-out infinite alternate;z-index:0}@keyframes cloud-drift{0%{transform:translate(-14px)}to{transform:translate(14px)}}#app{position:relative;z-index:1;min-height:100vh}.fx{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.fx span{position:absolute;color:#fff;text-shadow:0 0 10px rgba(255,173,210,.9);animation:fx-float 9s ease-in-out infinite alternate,fx-twinkle 3.2s ease-in-out infinite;opacity:.8}.fx span:nth-child(1){left:7%;top:18%;font-size:22px;animation-delay:0s,.4s}.fx span:nth-child(2){left:16%;top:66%;font-size:15px;animation-delay:1.2s,1.1s}.fx span:nth-child(3){left:30%;top:10%;font-size:17px;animation-delay:2.1s,.2s}.fx span:nth-child(4){left:58%;top:82%;font-size:14px;animation-delay:.7s,1.7s}.fx span:nth-child(5){left:75%;top:22%;font-size:20px;animation-delay:1.6s,.9s}.fx span:nth-child(6){left:88%;top:58%;font-size:15px;animation-delay:2.6s,0s}.fx span:nth-child(7){left:45%;top:40%;font-size:13px;animation-delay:3.2s,1.4s}.fx span:nth-child(8){left:93%;top:88%;font-size:18px;animation-delay:1.9s,.6s}.fx-soft span{opacity:.35}@keyframes fx-float{0%{transform:translateY(0) rotate(-6deg)}to{transform:translateY(-26px) rotate(8deg)}}@keyframes fx-twinkle{0%,to{opacity:.25}50%{opacity:.9}}@media(prefers-reduced-motion:reduce){body:before,.fx span,.title-spark,.bubble-next,.gauge-heart,.live-dot{animation:none!important}}.play>*:not(.fx),.map>*:not(.fx),.entry>*:not(.fx):not(.admin-link){position:relative;z-index:1}.play,#app{min-height:100vh}.play{max-width:880px;margin:0 auto;padding:18px 16px 24px;display:flex;flex-direction:column;gap:14px}.fallback-notice{background:#fff6d9;border:1px solid #f5df9a;color:#8a6d1a;border-radius:14px;padding:8px 14px;font-size:13px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stage-chip{background:var(--card);border:2px solid #ffe3f0;border-radius:999px;box-shadow:var(--shadow-soft);padding:10px 18px;font-weight:800;font-size:15px}.chip-heart{display:inline-block;animation:heart-pulse 1.6s ease-in-out infinite}.stage-sep{color:var(--pink);margin:0 6px}.status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ep-chip{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;font-weight:900;font-size:12px;letter-spacing:.12em;padding:8px 14px;border-radius:999px;box-shadow:0 4px 12px #ff6fa566}.gauge{display:flex;align-items:center;gap:8px;background:var(--card);border:2px solid #ffe3f0;border-radius:999px;box-shadow:var(--shadow-soft);padding:8px 14px}.gauge-heart{font-size:16px;animation:heart-pulse 1.6s ease-in-out infinite}@keyframes heart-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.22)}}.gauge-track{position:relative;width:170px;height:16px;background:#f4eef8;border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 4px #a078aa26}.gauge-fill{height:100%;border-radius:999px;transition:width .6s ease,background .6s ease;background-size:200% 100%}.gauge-track:after{content:"";position:absolute;top:2px;right:2px;bottom:55%;left:2px;border-radius:999px;background:#fff6;pointer-events:none}.gauge-fill.g-happy{background:linear-gradient(90deg,#ff8fb8,#ff6fa5)}.gauge-fill.g-normal{background:linear-gradient(90deg,#7cc4f5,#9edcff)}.gauge-fill.g-worry{background:linear-gradient(90deg,#ffb066,#ffd166)}.gauge-fill.g-angry{background:linear-gradient(90deg,#ff7a7a,#ff9d9d)}.gauge-goal{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--pink-deep);opacity:.85}.gauge-num{font-weight:900;font-size:15px;min-width:2.2em;text-align:right;font-variant-numeric:tabular-nums}.timer{background:var(--card);border:2px solid #dff1ff;border-radius:999px;box-shadow:var(--shadow-soft);padding:10px 16px;font-weight:900;font-size:15px;font-variant-numeric:tabular-nums}.timer:before{content:"⏱ ";font-size:13px}.timer-warn{color:#e4566a;border-color:#ffc9c9;animation:blink 1s infinite}@keyframes blink{50%{opacity:.45}}.scene{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:16px;background:linear-gradient(180deg,#e8f5ff,#f8fcff 60%,#f4e5d4 60%,#ecd9c4);border:3px solid rgba(255,255,255,.9);border-radius:26px;box-shadow:var(--shadow);padding:30px 20px 24px;min-height:460px;overflow:hidden}.scene:before,.scene:after{content:"";position:absolute;top:30px;width:130px;height:96px;background:linear-gradient(180deg,#ffffffa6,#d2ebff80);border:4px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:inset 0 0 0 2px #a0c8f040}.scene:before{left:5%}.scene:after{right:5%}.char-area{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}.char-glow{position:absolute;top:18%;left:50%;transform:translate(-50%);width:300px;height:240px;background:radial-gradient(50% 50% at 50% 50%,rgba(255,170,205,.45),transparent 70%);pointer-events:none}.char-box{position:relative;width:220px;height:250px;border-radius:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow);border:4px solid rgba(255,255,255,.95);transition:background .6s ease,transform .4s ease;animation:char-bob 4.5s ease-in-out infinite}@keyframes char-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.char-box.emotion-happy{background:linear-gradient(160deg,#fff3b8,#ffd9e8)}.char-box.emotion-normal{background:linear-gradient(160deg,#e3f2ff,#f2f9ff)}.char-box.emotion-worry{background:linear-gradient(160deg,#efe6ff,#dfe4f3)}.char-box.emotion-angry{background:linear-gradient(160deg,#ffd9d4,#ffc0c0)}.char-face{font-size:88px;line-height:1;transition:transform .3s ease}.char-emotion-label{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--ink-soft)}.char-name{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;font-weight:900;font-size:14px;padding:7px 22px;border-radius:999px;box-shadow:0 4px 14px #ff8fb880;letter-spacing:.04em}.bubble{position:relative;width:100%;max-width:660px;background:var(--card);border:3px solid var(--pink-line);border-radius:24px;box-shadow:var(--shadow);padding:22px 46px 20px 24px;min-height:84px}.bubble:before{content:"";position:absolute;top:-12px;left:50%;width:20px;height:20px;transform:translate(-50%) rotate(45deg);background:#fff;border-left:3px solid var(--pink-line);border-top:3px solid var(--pink-line);border-radius:4px 0 0}.bubble-name{position:absolute;top:-16px;left:20px;background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;font-size:12px;font-weight:900;letter-spacing:.06em;padding:5px 16px;border-radius:999px;box-shadow:0 3px 10px #ff6fa573}.bubble-text{font-size:16px;line-height:1.7;word-break:keep-all}.bubble-next{position:absolute;right:16px;bottom:10px;font-size:13px;color:var(--pink-deep);animation:next-bounce 1.2s ease-in-out infinite}@keyframes next-bounce{0%,to{transform:translateY(0);opacity:.9}50%{transform:translateY(4px);opacity:.45}}.bubble-appear{animation:fadeUp .35s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bubble-text.thinking{color:var(--ink-soft)}.bubble-text.thinking:after{content:"";animation:dots 1.2s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"·"}50%{content:"··"}75%{content:"···"}}.error-toast{position:absolute;bottom:12px;left:50%;transform:translate(-50%) translateY(8px);background:#ffe3e3;border:1px solid #f5b0b0;color:#b03a3a;font-size:13px;padding:8px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;z-index:2;max-width:90%}.error-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.input-area{display:flex;flex-direction:column;gap:8px}.input-row{display:flex;gap:10px}.chat-input{flex:1;border:3px solid #ffe3f0;background:var(--card);border-radius:999px;box-shadow:var(--shadow-soft);padding:14px 22px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s ease}.chat-input:focus{border-color:var(--pink)}.chat-input:disabled{opacity:.6}.send-btn{position:relative;border:none;background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;font-weight:900;font-size:14px;font-family:inherit;letter-spacing:.06em;padding:0 26px;border-radius:999px;cursor:pointer;box-shadow:0 6px 16px #ff6fa573;transition:transform .15s ease,box-shadow .15s ease}.send-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.05);box-shadow:0 8px 22px #ff6fa58c}.send-btn:disabled{opacity:.65;cursor:default}.send-btn .spinner{display:none;font-size:18px;line-height:1}.send-btn .spinner:after{content:"💗";display:inline-block;animation:heart-pulse .7s ease-in-out infinite}.send-btn.loading .send-label{display:none}.send-btn.loading .spinner{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.input-meta{display:flex;align-items:center;justify-content:space-between;padding:0 8px}.msg-count{font-size:13px;font-weight:800;color:var(--ink-soft);font-variant-numeric:tabular-nums}.end-btn{border:2px solid var(--sky);background:#fffc;color:#3d87c4;font-weight:800;font-size:13px;font-family:inherit;padding:8px 18px;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .15s ease}.end-btn:hover:not(:disabled){background:var(--sky-soft);transform:scale(1.04)}.end-btn:disabled{opacity:.5;cursor:default}.result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#78508c59;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:10}.result-overlay.show{display:flex}.result-card{position:relative;background:linear-gradient(165deg,#fffdfd,#fff4f9);border:3px solid var(--pink-line);border-radius:30px;box-shadow:0 18px 52px #78508c66;padding:40px 54px;text-align:center;display:flex;flex-direction:column;gap:12px;animation:result-pop .45s cubic-bezier(.34,1.56,.64,1);max-width:90vw}@keyframes result-pop{0%{opacity:0;transform:scale(.82) translateY(14px)}to{opacity:1;transform:none}}.result-sparkles{position:absolute;top:-26px;right:-26px;bottom:-26px;left:-26px;pointer-events:none}.result-sparkles span{position:absolute;font-size:20px;animation:sparkle-pop 1.6s ease-in-out infinite}.result-sparkles span:nth-child(1){left:4%;top:8%;animation-delay:0s}.result-sparkles span:nth-child(2){right:6%;top:4%;animation-delay:.3s}.result-sparkles span:nth-child(3){left:-2%;top:55%;animation-delay:.6s}.result-sparkles span:nth-child(4){right:-2%;top:48%;animation-delay:.9s}.result-sparkles span:nth-child(5){left:18%;bottom:2%;animation-delay:1.2s}.result-sparkles span:nth-child(6){right:16%;bottom:-2%;animation-delay:.45s}@keyframes sparkle-pop{0%,to{transform:scale(.6) rotate(-10deg);opacity:.3}50%{transform:scale(1.25) rotate(10deg);opacity:1}}.result-stage{font-size:14px;font-weight:900;letter-spacing:.16em;color:var(--ink-soft)}.result-score{font-size:22px}.result-score strong{font-size:52px;background:linear-gradient(120deg,var(--pink-deep),var(--sky-deep));-webkit-background-clip:text;background-clip:text;color:transparent;margin-left:6px}.result-badge{font-weight:900;font-size:16px;border-radius:999px;padding:9px 22px;margin:0 auto}.result-badge.ok{background:linear-gradient(135deg,#ffe3f0,#e2f8ec);color:#1f9d61}.result-badge.ng{background:#f2f0f7;color:var(--ink-soft)}.result-reason{font-size:13px;color:var(--ink-soft)}.save-status{min-height:18px;font-size:13px;font-weight:700;color:var(--ink-soft)}.retry-btn{margin-top:8px;border:none;background:linear-gradient(135deg,var(--sky),var(--sky-deep));color:#fff;font-weight:900;font-size:15px;font-family:inherit;padding:13px 34px;border-radius:999px;cursor:pointer;box-shadow:0 6px 16px #5aa9e873;transition:transform .15s ease}.retry-btn:hover:not(:disabled){transform:scale(1.06)}.retry-btn:disabled{opacity:.6;cursor:default}.entry{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.entry-card{width:100%;max-width:420px;background:var(--card);border:3px solid rgba(255,255,255,.95);border-radius:32px;box-shadow:var(--shadow);padding:42px 38px 36px;text-align:center;animation:fadeUp .4s ease}.entry-deco{font-size:46px;margin-bottom:8px;display:inline-block;animation:char-bob 3.5s ease-in-out infinite}.entry-title{font-size:40px;font-weight:900;letter-spacing:.03em;background:linear-gradient(120deg,#ff6fa5 20%,#b98af0,#5aa9e8 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:title-shimmer 4s ease-in-out infinite alternate;filter:drop-shadow(0 3px 8px rgba(255,150,195,.35));word-break:keep-all}@keyframes title-shimmer{0%{background-position:0% 50%}to{background-position:100% 50%}}.title-spark{font-size:22px;vertical-align:middle;display:inline-block;animation:sparkle-pop 2s ease-in-out infinite}.entry-subtitle{font-size:13px;color:var(--ink-soft);margin:10px 0 28px}.entry-form{display:flex;flex-direction:column;gap:14px;text-align:left}.entry-label{font-size:13px;font-weight:800;color:var(--ink-soft);display:flex;flex-direction:column;gap:6px}.entry-input{border:3px solid #f6e3ee;background:#fff;border-radius:16px;padding:12px 16px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s ease,transform .2s ease}.entry-input:focus{border-color:var(--pink);transform:scale(1.01)}.code-input{letter-spacing:.28em;font-weight:900;text-transform:uppercase}.entry-btn{position:relative;margin-top:10px;border:none;background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;font-weight:900;font-size:16px;font-family:inherit;letter-spacing:.08em;padding:15px;border-radius:999px;cursor:pointer;box-shadow:0 8px 20px #ff6fa580;transition:transform .18s ease,box-shadow .18s ease;display:flex;align-items:center;justify-content:center}.entry-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.04);box-shadow:0 10px 26px #ff6fa599}.entry-btn:disabled{opacity:.65;cursor:default}.entry-btn .spinner{display:none;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.entry-btn.loading .entry-btn-label{display:none}.entry-btn.loading .spinner{display:inline-block}.entry-error{min-height:20px;font-size:13px;font-weight:800;color:#e4566a;text-align:center}.admin-link{position:fixed;right:20px;top:18px;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;color:var(--ink-soft);text-decoration:none;background:#ffffffd1;box-shadow:0 2px 10px #785a8c29;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;z-index:5}.admin-link:hover,.admin-link:focus-visible{color:#7c3aed;background:#fff;box-shadow:0 4px 16px #785a8c42;transform:translateY(-1px)}@media(max-width:420px){.admin-link{right:12px;top:12px;padding:8px 10px;font-size:0;gap:0}.admin-link span{font-size:17px}}.map{max-width:880px;margin:0 auto;padding:20px 16px 32px;display:flex;flex-direction:column;gap:16px;min-height:100vh}.map-loading,.map-error{margin:auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 44px;text-align:center;font-weight:700;color:var(--ink-soft);display:flex;flex-direction:column;gap:14px;line-height:1.7}.map-loading .dots:after{content:"";animation:dots 1.2s steps(4,end) infinite}.map-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.map-title{font-size:26px;font-weight:900;letter-spacing:.04em;background:linear-gradient(120deg,#ff6fa5 20%,#b98af0,#5aa9e8 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:title-shimmer 4s ease-in-out infinite alternate}.map-track{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:0;vertical-align:middle;background:#ffffffd9;-webkit-background-clip:border-box;background-clip:border-box;animation:none}.map-track.track-work{color:#1d4ed8;box-shadow:0 0 0 1px #1d4ed840}.map-track.track-life{color:#be1a63;box-shadow:0 0 0 1px #be1a6340}.map-player{display:flex;align-items:center;gap:10px}.map-player-info{background:var(--card);border:2px solid #ffe3f0;border-radius:999px;box-shadow:var(--shadow-soft);padding:8px 16px;font-size:13px;font-weight:800}.logout-btn{border:2px solid #e8dcee;background:#fffc;color:var(--ink-soft);font-weight:800;font-size:12px;font-family:inherit;padding:7px 14px;border-radius:999px;cursor:pointer;transition:background .15s ease}.logout-btn:hover{background:#f6eef7}.map-summary{background:var(--card);border:2px solid rgba(255,255,255,.9);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.total-score{font-size:14px;font-weight:800;color:var(--ink-soft);white-space:nowrap}.total-score strong{font-size:24px;background:linear-gradient(120deg,var(--pink-deep),var(--sky-deep));-webkit-background-clip:text;background-clip:text;color:transparent;margin-left:4px}.ep-strip{display:flex;align-items:center;gap:4px;flex:1;min-width:280px;overflow-x:auto;padding:6px 0}.ep-node{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:62px;height:56px;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);font-size:10px;font-weight:900;flex-shrink:0;transition:transform .2s ease}.ep-node:hover{transform:scale(1.08)}.ep-node .ep-mark{font-size:14px;line-height:1.2}.ep-done{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff}.ep-open{background:linear-gradient(135deg,#ffe9f3,#ffd9e8);color:var(--pink-deep);outline:2px dashed var(--pink-line);outline-offset:-4px}.ep-locked,.ep-preparing{background:#efecf4;color:#b8b4c6}.ep-line{flex:1;min-width:8px;height:3px;background:var(--pink-soft);border-radius:2px}.all-done-banner{background:linear-gradient(120deg,#fff0f6,#e8f7ff);border:2px solid #ffd3e5;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 22px;font-weight:800;font-size:15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.all-done-banner strong{color:var(--pink-deep)}.report-btn{margin-left:auto;border:none;background:#e9e5f2;color:var(--ink-soft);font-weight:800;font-size:13px;font-family:inherit;padding:10px 20px;border-radius:999px;cursor:not-allowed}.stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:14px}.stage-card{text-align:left;border:3px solid rgba(255,255,255,.95);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:18px 20px;font-family:inherit;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stage-card:hover:not([disabled]){transform:translateY(-5px) scale(1.015);border-color:var(--pink-line);box-shadow:var(--shadow)}.stage-card[disabled]{cursor:default}.card-ep{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--pink-deep)}.card-title{font-size:16px;font-weight:800;line-height:1.4;word-break:keep-all}.card-char{font-size:13px;color:var(--ink-soft)}.card-state{margin-top:4px;font-size:13px;font-weight:800;border-radius:999px;padding:7px 14px;align-self:flex-start}.state-open .card-state{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;box-shadow:0 4px 10px #ff6fa566}.state-done .card-state{background:linear-gradient(135deg,#fff0d9,#ffe3f0);color:#c77b2e}.state-locked,.state-preparing{opacity:.55;filter:grayscale(.4)}.state-locked .card-state,.state-preparing .card-state{background:#f2f0f7;color:#a5a1b5}.report-btn.ready{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;cursor:pointer;box-shadow:0 5px 14px #ff6fa573;transition:transform .15s ease}.report-btn.ready:hover{transform:scale(1.05)}.report{max-width:720px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:14px;min-height:100vh}.report>*:not(.fx){position:relative;z-index:1}.report-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.report-loading,.report-error{margin:auto;background:var(--card);border:3px solid rgba(255,255,255,.95);border-radius:28px;box-shadow:var(--shadow);padding:44px 52px;text-align:center;display:flex;flex-direction:column;gap:12px;line-height:1.7}.report-loading-heart{font-size:46px;animation:heart-pulse .9s ease-in-out infinite}.report-loading-text{font-weight:800;font-size:16px}.report-loading-text .dots:after{content:"";animation:dots 1.2s steps(4,end) infinite}.report-loading-sub{font-size:12px;color:var(--ink-soft)}.report-hero{position:relative;background:linear-gradient(165deg,#fffdfd,#fff0f7);border:3px solid var(--pink-line);border-radius:30px;box-shadow:var(--shadow);padding:34px 24px 26px;text-align:center;display:flex;flex-direction:column;gap:10px;animation:result-pop .45s cubic-bezier(.34,1.56,.64,1)}.report-grade{font-size:76px;font-weight:900;line-height:1;background:linear-gradient(120deg,var(--pink-deep),#b98af0,var(--sky-deep));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 10px rgba(255,150,195,.4))}.report-avg{font-size:16px;font-weight:700;color:var(--ink-soft)}.report-avg strong{font-size:26px;color:var(--ink)}.report-avg-note{font-size:12px}.report-stage-scores{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px}.report-card{background:var(--card);border:2px solid rgba(255,255,255,.95);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:20px 24px;display:flex;flex-direction:column;gap:12px}.report-card-title{font-size:15px;font-weight:900;letter-spacing:.02em}.report-text{font-size:14px;line-height:1.8;word-break:keep-all}.report-item{display:flex;flex-direction:column;gap:6px;padding-bottom:12px;border-bottom:1px dashed #f0e2ec}.report-item:last-child{padding-bottom:0;border-bottom:none}.report-point{font-size:14px;font-weight:800}.report-quote{margin:2px 0;background:linear-gradient(120deg,#fff0f7,#f0f8ff);border-left:4px solid var(--pink);border-radius:0 14px 14px 0;padding:10px 16px;font-size:14px;line-height:1.7;color:#7a4a63;font-weight:600;word-break:keep-all}.report-quote.weak{border-left-color:#ffb066;color:#7a5a3a;background:linear-gradient(120deg,#fff7ec,#fdf3ff)}.report-detail{font-size:13px;line-height:1.7;color:var(--ink-soft);word-break:keep-all}.report-recs{list-style:none;display:flex;flex-direction:column;gap:10px}.report-recs li{font-size:14px;line-height:1.7;padding-left:26px;position:relative;word-break:keep-all}.report-recs li:before{content:"🎯";position:absolute;left:0;font-size:14px}.report-card.closing{background:linear-gradient(120deg,#fff0f6,#e8f7ff);border:2px solid #ffd3e5;text-align:center}.report-closing{font-size:15px;font-weight:800;line-height:1.7;word-break:keep-all}.report-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:6px}.report-cached-note{text-align:center;font-size:12px;color:var(--ink-soft)}@media(max-width:560px){.gauge-track{width:100px}.scene:before,.scene:after{display:none}.scene{min-height:400px}.char-box{width:170px;height:195px}.char-face{font-size:62px}.entry-title{font-size:32px}.result-card{padding:32px 30px}}.track-wrap{width:100%;max-width:720px;text-align:center}.track-heading{font-size:25px;font-weight:900;letter-spacing:.02em;margin-bottom:8px}.track-sub{font-size:13px;color:var(--ink-soft);margin-bottom:22px}.track-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px;align-items:start}.track-slot{display:flex;flex-direction:column;gap:8px}.track-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 18px 24px;border:2px solid transparent;border-radius:22px;background:var(--card);box-shadow:0 6px 22px #785a8c24;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.track-card:hover,.track-card:focus-visible{transform:translateY(-4px);box-shadow:0 12px 30px #785a8c3d}.track-card-work:hover,.track-card-work:focus-visible{border-color:#7aa7ff}.track-card-life:hover,.track-card-life:focus-visible{border-color:#ff9ec8}.track-card-emoji{font-size:42px;line-height:1}.track-card-title{font-size:17px;font-weight:800}.track-card-desc{font-size:13px;color:var(--ink-soft)}.track-card-progress{margin-top:8px;padding:3px 12px;border-radius:999px;font-size:11px;font-weight:700;color:var(--ink-soft);background:#0000000b}.track-card.is-done{background:linear-gradient(180deg,#fbf7ff 0%,var(--card) 100%);border-color:#7c3aed38}.track-card.is-done .track-card-progress{color:#6d28d9;background:#7c3aed1a}.track-report-btn{padding:9px 14px;border-radius:14px;border:1px solid rgba(124,58,237,.3);background:#ffffffe6;font-size:13px;font-weight:800;color:#6d28d9;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.track-report-btn:hover{background:#fff;border-color:#a78bfa;transform:translateY(-1px)}.track-footer{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:8px}.track-footer .finish-game{width:100%;max-width:280px}.track-footer-note{font-size:12px;color:var(--ink-soft)}@media(max-width:560px){.track-cards{grid-template-columns:1fr}}.ending-card{text-align:center}.ending-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:22px}.ending-actions .entry-btn{width:100%;max-width:280px}
