:root{--joy:#ffc72c;--sad:#4a90d9;--anger:#e8503a;--disgust:#7fbf4d;--fear:#a177d6;--anxiety:#ff8a3d;--ennui:#6e6bb8;--bg:#0d0b22;--card:#1711389e;--card-solid:#171136;--ink:#f4f1ff;--ink-soft:#b4add8;--ink-faint:#8078b0;--line:#ffffff29;--line-soft:#ffffff17;--sage:#5fd0c4;--mustard:var(--joy);--maroon:var(--anger);--serif:"Noto Serif KR", "Pretendard Variable", Pretendard, serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@keyframes sheen{0%{transform:translate(-120%)}to{transform:translate(220%)}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;word-break:keep-all;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,sans-serif}button{font:inherit;-webkit-tap-highlight-color:transparent}:where(button,a,[tabindex]):focus-visible{outline:2.5px solid var(--sage);outline-offset:3px}#root{width:100%}.hall-scene{background-color:var(--bg);background-image:linear-gradient(#09071a94 0%,#09071ac7 46%,#070516ed 100%),url(/hall.webp);background-position:50%,50%;background-repeat:no-repeat,no-repeat;background-size:cover,cover}@media (width<=820px){.hall-scene{background-image:linear-gradient(#09071a94 0%,#09071acc 46%,#070516f0 100%),url(/hall-portrait.webp)}}.hall-scene:before{content:"";pointer-events:none;background:radial-gradient(56% 40% at 50% -6%,#ffc72c29,#0000 68%);animation:9s ease-in-out infinite alternate hall-breathe;position:absolute;inset:0}@keyframes hall-breathe{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.hall-scene:before{animation:none}}.emotion-character{border-radius:50%;flex:none;line-height:0;display:inline-block;position:relative}.emotion-character img{border-radius:50%;width:100%;height:100%;display:block}.emotion-character.is-orb{box-shadow:0 0 0 4px #ffffff12, 0 0 30px -6px var(--glow,#fff6)}.emotion-character.is-orb:after{content:"";pointer-events:none;background:radial-gradient(circle at 30% 24%, #ffffff80, transparent 42%), radial-gradient(circle at 72% 82%, var(--glow,transparent), transparent 56%);opacity:.6;border-radius:50%;position:absolute;inset:0}.memory-orbs{pointer-events:none;position:absolute;inset:0;overflow:hidden}.memory-orb{box-shadow:0 0 0 3px #ffffff0f, 0 0 26px -4px var(--glow,#fff6);border-radius:50%;animation:4s ease-in-out infinite drift;display:block;position:absolute}.memory-orb img{border-radius:50%;width:100%;height:100%;display:block}.memory-orb:after{content:"";background:radial-gradient(circle at 30% 24%, #ffffff80, transparent 40%), radial-gradient(circle at 72% 82%, var(--glow,transparent), transparent 55%);opacity:.65;border-radius:50%;position:absolute;inset:0}@keyframes drift{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-12px)rotate(4deg)}}@media (width<=600px){.memory-orb-sm-hide{display:none}.memory-orb{opacity:.72}}@media (prefers-reduced-motion:reduce){.memory-orb{animation:none}}.brand-footer{text-align:center;margin-top:28px}.brand-logos{justify-content:center;align-items:center;gap:14px;margin-bottom:12px;display:flex}.brand-logo{object-fit:cover;background:#fff;border:1px solid #fff6;border-radius:50%;width:52px;height:52px;transition:transform .25s;box-shadow:0 0 0 5px #ffffff0f,0 6px 18px -6px #000c}.brand-logo:hover{transform:scale(1.12)}.brand-cross{color:var(--ink-faint);font-size:.9em}.brand-caption{color:var(--ink-soft);letter-spacing:.01em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line-soft);background:#110d2aa8;border-radius:999px;padding:7px 18px;font-size:.84em;display:inline-block}.brand-caption strong{color:var(--ink);font-weight:600}.stress-analyzer{justify-content:center;align-items:center;min-height:100vh;padding:56px 20px;display:flex;position:relative;overflow:hidden}.stress-analyzer .container{z-index:1;width:100%;max-width:540px;position:relative}.stress-analyzer .container:has(.analyzing-state){max-width:720px}.page-header{text-align:center;margin-bottom:30px}.badge{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--joy);letter-spacing:.06em;background:#ffc72c24;border:1px solid #ffc72c57;border-radius:999px;align-items:center;gap:7px;margin-bottom:18px;padding:7px 16px;font-size:.84em;font-weight:700;display:inline-flex}.badge-dot{background:var(--joy);width:7px;height:7px;box-shadow:0 0 10px var(--joy);border-radius:50%}.page-header h1{font-family:var(--serif);color:var(--ink);letter-spacing:-.02em;margin-bottom:14px;font-size:1.95em;font-weight:600}.page-header .subtitle{color:var(--ink-soft);font-size:1em;line-height:1.7}.card{background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);text-align:center;border-radius:22px;padding:40px 36px;transition:transform .3s,box-shadow .3s;box-shadow:inset 0 1px #ffffff1a,0 24px 50px -26px #000000f2}.card:hover{transform:translateY(-2px);box-shadow:inset 0 1px #ffffff1f,0 30px 56px -26px #000000f2}.hero-emoji{justify-content:center;align-items:center;margin-bottom:24px;display:flex;position:relative}.steps{text-align:left;margin-bottom:28px;list-style:none}.steps li{border-bottom:1px solid var(--line-soft);color:var(--ink);align-items:center;gap:14px;padding:14px 4px;font-size:.96em;display:flex}.steps li:first-child{border-top:1px solid var(--line-soft)}.step-icon{flex-shrink:0;justify-content:center;width:24px;display:inline-flex}.start-button{background:linear-gradient(135deg, #ffde7a, var(--joy) 55%, #f0ae00);color:#3a2a00;letter-spacing:.02em;cursor:pointer;width:100%;transition:background .2s, transform .18s var(--ease-spring), box-shadow .25s ease;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:16px 40px;font-size:1.05em;font-weight:800;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 0 6px #ffc72c1f,0 14px 30px -14px #ffc72ccc}.start-button:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff38,#0000);width:45%;height:100%;position:absolute;top:0;left:0;transform:translate(-150%)}.start-button:hover:not(:disabled){background:linear-gradient(135deg,#ffe89c,#ffd044 55%,#f5b810);transform:translateY(-2px);box-shadow:0 0 0 8px #ffc72c24,0 20px 38px -16px #ffc72cd9}.start-button:hover:not(:disabled):after{animation:sheen .9s var(--ease-out)}.start-button:active:not(:disabled){transform:translateY(1px)scale(.99)}.start-button:disabled{opacity:.45;cursor:not-allowed}.hint{color:var(--ink-faint);margin-top:14px;font-size:.84em}.mode-switch{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:7px;margin-top:16px;padding:11px 22px;font-size:.9em;font-weight:600;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.mode-switch:hover{color:var(--ink);border-color:var(--sage);background:#5fd0c41f}.analyzing-state{padding:24px 24px 32px}.video-frame{border:1px solid var(--line);border-radius:14px;width:100%;margin-bottom:24px;display:block;position:relative;transform:scaleX(-1)}.video-feed{aspect-ratio:4/3;object-fit:cover;background:#0a0918;border-radius:14px;width:100%;height:auto;display:block}.landmark-canvas{border-radius:14px;width:100%;height:100%;position:absolute;top:0;left:0}.status-line{color:var(--ink-soft);justify-content:center;align-items:center;gap:9px;margin-bottom:22px;font-size:1.02em;display:flex}.stop-button{color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:11px 30px;font-size:.93em;font-weight:600;transition:border-color .2s,color .2s,background .2s}.stop-button:hover{color:#ff9a88;background:#e8503a1f;border-color:#e8503a80}.error-message{color:#ff9a88;background:#e8503a1f;border:1px solid #e8503a52;border-radius:12px;margin-bottom:24px;padding:14px 18px;font-size:.95em;line-height:1.65}.idle-state .error-message{margin-top:-4px}@media (width<=600px){.stress-analyzer{padding:36px 16px}.page-header h1{font-size:1.55em}.page-header .subtitle{font-size:.94em}.card{padding:28px 22px}.analyzing-state{padding:18px 14px 24px}}.page-header{animation:fade-up .55s var(--ease-out) both}.card{animation:fade-up .6s var(--ease-out) 60ms both}.idle-state .hero-emoji{animation:pop-in .6s var(--ease-spring) .16s both}.idle-state .steps li{animation:fade-up .5s var(--ease-out) both}.idle-state .steps li:first-child{animation-delay:.24s}.idle-state .steps li:nth-child(2){animation-delay:.32s}.idle-state .steps li:nth-child(3){animation-delay:.4s}.idle-state .start-button{animation:fade-up .5s var(--ease-out) .48s both}.idle-state .mode-switch{animation:fade-up .5s var(--ease-out) .56s both}.count-num{animation:count-breathe 1s var(--ease-soft) infinite}@keyframes count-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.analyzing-state .video-frame{box-shadow:0 0 0 1px var(--line), 0 20px 44px -26px #2e2b2680}.analyzing-state .video-frame:after{content:"";pointer-events:none;opacity:0;border-radius:14px;animation:3.2s ease-in-out infinite glow-pulse;position:absolute;inset:0;box-shadow:0 0 0 1px #5d8d7680,0 22px 48px -24px #5d8d7659}@keyframes glow-pulse{0%,to{opacity:0}50%{opacity:1}}.status-line{animation:.5s both fade-in}@media (prefers-reduced-motion:reduce){.page-header,.card,.idle-state .hero-emoji,.idle-state .steps li,.idle-state .start-button,.idle-state .mode-switch,.idle-state .roster,.status-line,.count-num,.count-orb-fill,.analyzing-state .video-frame:after,.lever.is-on .lever-face{animation:none}}.roster{border-top:1px solid var(--line-soft);margin-top:26px;padding-top:20px}.roster-title{letter-spacing:.14em;color:var(--ink-faint);margin-bottom:14px;font-size:.74em;font-weight:800}.roster-list{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.idle-state .roster{animation:fade-up .5s var(--ease-out) .64s both}.countdown{text-align:left;justify-content:center;align-items:center;gap:18px;margin-bottom:20px;display:flex}.count-orb{background:radial-gradient(circle at 32% 28%,#ffffff47,#ffc72c1a 62%,#ffc72c0a);border:2px solid #ffc72c73;border-radius:50%;flex:none;place-items:center;width:78px;height:78px;display:grid;position:relative;overflow:hidden;box-shadow:0 0 26px -6px #ffc72ccc}.count-orb-fill{height:var(--fill,0%);transition:height .3s var(--ease-soft);background:linear-gradient(#ffde7af2,#f0ae00eb);position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 24px #ffc72ce6}.count-num{font-family:var(--serif);color:#2a1b00;font-variant-numeric:tabular-nums;font-size:2em;font-weight:700;position:relative}.count-text{color:var(--ink);font-size:1.02em;font-weight:700;line-height:1.5}.count-text em{color:var(--ink-soft);margin-top:3px;font-size:.84em;font-style:normal;font-weight:400;display:block}.emotion-console{border:1px solid var(--line-soft);background:#0b081e80;border-radius:18px;margin-bottom:20px;padding:18px 16px 14px}.console-title{letter-spacing:.16em;color:var(--ink-faint);text-align:left;margin-bottom:14px;font-size:.72em;font-weight:800}.console-levers{justify-content:space-between;align-items:flex-end;gap:4px;height:168px;display:flex}.lever{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;height:100%;display:flex}.lever-face{filter:grayscale(.9)brightness(.72);transition:filter .35s ease, transform .35s var(--ease-spring)}.lever.is-on .lever-face{filter:none;box-shadow:0 0 0 3px #ffffff1a, 0 0 20px -3px var(--glow);border-radius:50%;transform:scale(1.24)}.lever-track{background:#ffffff14;border-radius:9px;flex:1;align-items:flex-end;width:11px;display:flex;position:relative;overflow:hidden}.lever-fill{background:var(--glow);width:100%;height:0%;box-shadow:0 0 12px -1px var(--glow);border-radius:9px;transition:height .18s linear;display:block}.lever-name{color:var(--ink-faint);white-space:nowrap;font-size:.68em;font-weight:700}.lever.is-on .lever-name{color:var(--glow)}@media (width<=600px){.console-levers{height:132px}.count-orb{width:62px;height:62px}.count-num{font-size:1.6em}}
