:root{font-family:Pretendard-Regular,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#000;background:#f2f2f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--content-width:500px;--page-padding:24px;--glass-bg:rgba(255,255,255,0.34);--glass-border:rgba(255,255,255,0.48);--glass-soft-bg:rgba(255,255,255,0.42);--glass-strong-bg:rgba(255,255,255,0.68);--glass-radius:32px;--shadow-sm:0 12px 28px rgba(17,24,39,0.08);--shadow-md:0 22px 48px rgba(17,24,39,0.12);--accent:#34c759;--text-secondary:#4b5563;--text-muted:#9ca3af}@font-face{font-family:Pretendard-Black;src:url(/fonts/Pretendard-Black.otf) format("opentype");font-display:block}@font-face{font-family:Pretendard-Bold;src:url(/fonts/Pretendard-Bold.otf) format("opentype");font-display:block}@font-face{font-family:Pretendard-Medium;src:url(/fonts/Pretendard-Medium.otf) format("opentype");font-display:block}@font-face{font-family:Pretendard-Regular;src:url(/fonts/Pretendard-Regular.otf) format("opentype");font-display:block}*{box-sizing:border-box}#root,body,html{margin:0;min-height:100%}body{min-height:100vh}a,button,input{font:inherit}button{border:0;background:none;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}.page-root{position:relative;min-height:100vh;overflow-x:clip}.page-gradient{position:fixed;inset:0;background:radial-gradient(circle at 12% 14%,rgba(116,192,252,.34),transparent 34%),radial-gradient(circle at 84% 18%,rgba(165,216,255,.28),transparent 30%),radial-gradient(circle at 28% 78%,rgba(255,216,168,.32),transparent 30%),radial-gradient(circle at 82% 82%,rgba(255,146,43,.2),transparent 26%),radial-gradient(circle at 58% 96%,rgba(177,151,252,.22),transparent 28%),linear-gradient(158deg,#74c0fc,#a5d8ff 22%,#ffd8a8 54%,#ff922b 82%,#b197fc);filter:saturate(.96) brightness(1.02);z-index:0}.page-content-wrap{position:relative;z-index:1;display:flex;justify-content:center}.page-content{width:min(100%,var(--content-width));padding:48px var(--page-padding) 56px}.glass-card{margin-top:8px;padding:24px;border-radius:var(--glass-radius);background:var(--glass-bg);border:1.5px solid var(--glass-border);box-shadow:var(--shadow-sm);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}.top-header{margin-bottom:24px}.back-row,.top-header{display:flex;justify-content:space-between;align-items:center}.back-row{margin-bottom:33px}.back-button,.header-circle-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 16px;border-radius:22px;background:var(--glass-soft-bg);border:1px solid rgba(255,255,255,.52);box-shadow:0 8px 20px rgba(17,24,39,.08)}.header-circle-button{width:44px}.back-button,.header-circle-button{min-width:44px;padding:0}.back-button svg,.header-circle-button svg,.hero-quest-icon svg,.profile-icon svg,.profile-icon-mini svg,.stage-icon-circle svg,.stage-subicon svg{display:block;position:relative;z-index:1}.header-circle-button svg{width:23px;height:23px}.back-button svg{width:19px;height:19px}.profile-pill{display:inline-flex;align-items:center;height:44px;border-radius:22px;background:#fff;box-shadow:0 12px 26px rgba(17,24,39,.12);overflow:hidden;transition:width .26s ease,padding-right .26s ease}.profile-pill-closed{width:44px}.profile-pill-open{width:256px}.profile-icon,.profile-icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0}.profile-icon{color:#1c1c1e}.profile-icon svg{width:25px;height:25px}.profile-pill-body{display:flex;align-items:center;gap:4px;flex:1 1;opacity:0;pointer-events:none;transition:opacity .18s ease;padding-right:6px}.profile-pill-body.is-open{opacity:1;pointer-events:auto}.profile-tag{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;font-size:11px;font-family:Pretendard-Medium}.profile-tag-dark{color:#fff;background:#1c1c1e}.profile-tag-green{color:#fff;background:#34c759}.profile-tag-gray{color:#8e8e93;background:#f2f2f7}.profile-divider{width:1px;height:16px;background:#e5e5ea}.profile-actions{flex:1 1;height:44px;overflow:hidden}.profile-slide{transition:transform .28s ease}.profile-slide.show-email{transform:translateY(-44px)}.profile-row{height:44px;display:flex;align-items:center;gap:8px}.profile-email-row{font-size:11px;font-family:Pretendard-Medium;color:#3c3c43}.profile-icon-mini{min-width:30px;height:30px;color:#3c3c43;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;transition:background-color .16s ease,color .16s ease}.profile-icon-mini:hover{background:rgba(0,0,0,.04)}.profile-icon-mini.danger{color:#ff3b30}.loading-card{min-height:40vh;display:grid;place-items:center;grid-gap:12px;gap:12px;text-align:center;color:#8e8e93}.spinner{width:32px;height:32px;border-radius:50%;border:3px solid rgba(0,122,255,.18);border-top-color:#007aff;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.progress-card{margin-top:0}.progress-top-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:10px}.progress-title{margin:0 0 4px;font-family:Pretendard-Bold;font-size:18px}.progress-subtitle{margin:0;color:var(--text-secondary);font-size:12px}.progress-count-circle{width:74px;height:74px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 6px 16px rgba(17,24,39,.06)}.progress-count-inline{display:flex;align-items:baseline}.progress-count-main{font-family:Pretendard-Black;font-size:28px;letter-spacing:-.5px;line-height:1}.progress-count-total{color:rgba(0,0,0,.3);font-family:Pretendard-Bold;font-size:14px;letter-spacing:-.5px}.progress-meter-wrap{margin-top:8px}.progress-meter-label{margin-bottom:10px;font-size:24px;font-family:Pretendard-Bold;letter-spacing:-.5px;line-height:1}.progress-meter-label span{color:var(--accent);font-size:14px;vertical-align:baseline}.progress-meter-track{width:100%;aspect-ratio:5/1;min-height:20px;overflow:hidden;border-radius:28px;background-color:transparent}.progress-meter-svg{display:block;width:100%;height:100%}.hero-wrapper{position:relative;overflow:visible;margin-top:8px}.hero-character{position:absolute;right:4px;top:-7px;width:138px;height:190px;object-fit:contain;object-position:top;pointer-events:none;z-index:0}.hero-card{position:relative;padding-top:22px;margin-top:0}.hero-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#000;color:#fff;font-size:10px}.hero-tag,.hero-title{font-family:Pretendard-Bold}.hero-title{width:calc(100% - 136px);margin:12px 0 8px;font-size:24px;letter-spacing:-.6px;line-height:1.1}.hero-description{width:calc(100% - 136px);margin:0 0 20px;font-size:14px;line-height:22px;color:#374151}.hero-quest-list{display:flex;flex-direction:column;gap:4px;z-index:10!important}.hero-quest-pill,.hero-quest-pill:visited{display:flex;align-items:center;gap:14px;padding:4px;margin:0 -8px;border-radius:999px;background:rgba(255,255,255,.39);border:1px solid rgba(255,255,255,.46);color:#000}.hero-quest-icon,.stage-icon-circle,.stage-subicon{width:44px;height:44px;flex-shrink:0;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-family:Pretendard-Bold;position:relative}.hero-quest-icon svg{width:18px;height:18px}.stage-subicon svg{width:15px;height:15px}.stage-icon-circle svg{width:24px;height:24px}.hero-quest-icon.is-done:after,.stage-icon-circle.is-done:after,.stage-subicon.is-done:after{content:"";position:absolute;inset:0;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cdefs%3E%3Cpattern id='h' patternUnits='userSpaceOnUse' width='3' height='3'%3E%3Cpath d='M-0.5 0.5 L0.5 -0.5 M0 3 L3 0 M2.5 3.5 L3.5 2.5' stroke='rgba(0,0,0,0.34)' stroke-width='0.8' fill='none'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='24' height='24' fill='url(%23h)'/%3E%3C/svg%3E");background-size:24px 24px;background-repeat:repeat;opacity:.98;pointer-events:none}.hero-quest-copy{display:flex;flex-direction:column;min-width:0}.hero-quest-title,.stage-subtitle{font-family:Pretendard-Bold;font-size:13px;line-height:16px;letter-spacing:-.4px;color:#000}.hero-quest-subtitle,.stage-subdesc{margin-top:1px;font-size:11px;line-height:14px;color:#000}.stage-subdesc{color:#000;opacity:.82}.stage-list-card{padding:8px 10px;margin-top:12px}.stage-row-wrap.with-border{border-bottom:1px solid rgba(0,0,0,.03)}.stage-row{width:100%;display:flex;align-items:center;padding:16px 14px;text-align:left;border-radius:24px;color:#000}.stage-icon-circle{width:40px;height:40px;margin-right:16px;background:rgba(255,255,255,.52);border:1.5px solid rgba(255,255,255,.72)}.stage-row-content{flex:1 1;min-width:0;display:flex;flex-direction:column}.stage-row-title{font-family:Pretendard-Bold;font-size:16px;letter-spacing:-.5px;color:#000}.stage-row-sub{margin-top:2px;font-size:12px;color:#000}.stage-row-status{margin-left:auto;margin-right:8px;color:#9ca3af;font-size:12px}.stage-row-status strong{color:#000;font-family:Pretendard-Black}.stage-sublist{display:grid;grid-gap:4px;gap:4px;max-height:0;overflow:hidden;padding:0 14px;opacity:0;transition:max-height .3s ease,opacity .22s ease,padding-bottom .3s ease}.stage-sublist.is-open{max-height:420px;opacity:1;padding-bottom:15px}.stage-subrow{display:flex;align-items:center;gap:14px;padding:4px;border-radius:999px;background:var(--glass-strong-bg);border:1px solid rgba(0,0,0,.03)}.stage-subcontent{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:center}.home-carousel{display:flex;gap:16px;margin:8px calc(var(--page-padding) * -1) 0;padding:0 var(--page-padding);overflow-x:auto;scrollbar-width:none}.home-carousel::-webkit-scrollbar{display:none}.glossary-carousel-card{width:min(75vw,375px);min-height:160px;flex-shrink:0;text-align:left}.carousel-tag{color:var(--accent);font-size:10px;font-family:Pretendard-Bold;margin-bottom:8px}.carousel-title{display:block;margin-bottom:6px;font-size:18px;font-family:Pretendard-Bold;color:#000}.carousel-copy{color:var(--text-secondary);font-size:13px;line-height:18px}.page-title{margin:0 0 8px;font-size:32px;line-height:1.1;letter-spacing:-.8px;font-family:Pretendard-Bold}.page-subtitle{margin:0 0 32px;font-size:15px;line-height:22px;color:var(--text-secondary)}.glossary-section{margin-bottom:16px}.glossary-section-header{display:flex;align-items:center;gap:10px;padding-left:4px;margin-bottom:14px}.glossary-section-header h2{margin:0;font-family:Pretendard-Bold;font-size:14px}.glossary-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:2px 8px;border-radius:8px;background:rgba(52,199,89,.15);color:var(--accent);font-size:10px;font-family:Pretendard-Bold}.glossary-group{padding:0}.glossary-item{padding:20px}.glossary-item.with-border{border-bottom:1px solid rgba(0,0,0,.03)}.glossary-item h3{margin:0 0 6px;font-size:16px;font-family:Pretendard-Bold}.glossary-item p{margin:0;font-size:13px;line-height:20px;color:var(--text-secondary)}.login-page{min-height:calc(100vh - 104px);display:grid;place-items:center}.login-intro{margin-bottom:28px;text-align:center}.login-intro-title{margin:0 0 8px;font-family:Pretendard-Bold;font-size:22px;letter-spacing:-.5px;color:#000}.login-intro-desc{margin:0;font-size:14px;line-height:22px;color:#6c6c70}.login-form-card{width:min(100%,420px);display:grid;grid-gap:12px;gap:12px}.login-input{width:100%;height:52px;border-radius:12px;border:1px solid #e5e5ea;padding:0 16px;background:#fff;color:#1c1c1e;font-family:Pretendard-Medium;font-size:16px}.login-input::placeholder{color:#c7c7cc}.login-input-code{text-align:center;font-family:Pretendard-Bold;font-size:16px;letter-spacing:4px}.login-sent-box{background:#fff;border-radius:16px;border:1px solid #e5e5ea;padding:20px;text-align:center}.login-sent-box h2{margin:0 0 6px;font-size:16px;font-family:Pretendard-Bold}.login-sent-box p{margin:0;font-size:13px;line-height:20px;color:#6c6c70}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;padding:0 18px;transition:opacity .16s ease,transform .16s ease}.button:disabled{opacity:.45;cursor:default}.button-dark{background:#1c1c1e;color:#fff;font-family:Pretendard-Bold}.button-light{background:#f2f2f7;color:#1c1c1e;border:1px solid #e5e5ea;font-family:Pretendard-Medium}.button-full{width:100%}.text-button{font-size:14px;text-align:center}.text-button.muted{color:#8e8e93}.text-button.accent{color:#007aff}.modal-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:rgba(28,28,30,.32);animation:overlayFadeIn .2s ease forwards}.modal-overlay.is-closing{animation:overlayFadeOut .22s ease forwards}.modal-card{width:min(100%,360px);border-radius:20px;background:#fff;padding:24px;box-shadow:var(--shadow-md);animation:cardSlideUp .25s cubic-bezier(.34,1.56,.64,1) forwards}.modal-card.is-closing{animation:cardSlideDown .22s ease forwards}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes cardSlideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes cardSlideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(24px);opacity:0}}.modal-title{margin:0 0 16px;text-align:center;font-size:18px;font-family:Pretendard-Bold}.modal-copy{margin:0;text-align:center;color:#6c6c70;font-size:14px;line-height:22px}.modal-actions{display:flex;gap:10px;margin-top:18px}.term-modal-card{text-align:left}.term-modal-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.04);font-size:12px;font-family:Pretendard-Bold}.term-modal-title{margin:14px 0 12px;font-size:24px;font-family:Pretendard-Bold}.term-modal-definition{margin:0 0 20px;font-size:15px;line-height:24px;color:var(--text-secondary)}.quest-hero-wrap{position:relative;margin-bottom:8px}.quest-hero-wrap .back-row{margin-bottom:0}.quest-hero-image{position:absolute;right:-8px;top:15px;width:60%;max-width:272px;height:calc(100% + 80px);object-fit:contain;object-position:top;pointer-events:none;z-index:0}.quest-hero{height:230px;padding-right:54%;margin-bottom:0;overflow:visible}.quest-hero-copy{padding-top:27px;padding-left:4px;position:relative;z-index:1;min-height:200px}.quest-hero-tag{margin-bottom:6px;font-size:10px;font-family:Pretendard-Bold}.quest-hero-copy h1{margin:0 0 6px;font-size:30px;line-height:34px;letter-spacing:-1.1px;font-family:Pretendard-Bold}.quest-hero-copy p{margin:0 0 20px;font-size:13px;line-height:20px;color:var(--text-secondary)}.quest-done-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#fff;color:var(--accent);font-size:12px;font-family:Pretendard-Bold;margin-bottom:8px}.quest-count-row{margin-left:4px;font-size:11px;color:rgba(0,0,0,.3)}.quest-card-stack{display:grid;grid-gap:8px;gap:8px;position:relative;z-index:1;margin-top:20px}.quest-section-card{padding:0}.quest-section-header{padding:30px 20px 16px}.quest-section-header h3{margin:0;font-size:15px;font-family:Pretendard-Bold}.quest-section-body{padding:0 20px 20px}.action-copy,.bullet-copy,.quest-body-copy,.quote-copy{margin:0;font-size:15px;line-height:26px;color:#000}.quote-stack{display:grid;grid-gap:10px;gap:10px}.quote-card{border-radius:16px;background:rgba(255,255,255,.74);border:1.5px solid rgba(255,255,255,.68);padding:12px}.bullet-list{display:grid;grid-gap:12px;gap:12px}.bullet-item{display:flex;gap:10px;align-items:flex-start}.bullet-dot{width:8px;height:8px;margin-top:9px;flex-shrink:0;border-radius:50%;background:#52b96a}.action-row{width:100%;display:flex;align-items:center;gap:14px;margin-bottom:10px;padding:16px;text-align:left;border-radius:16px;background:rgba(0,0,0,.02)}.action-checkbox{width:24px;height:24px;flex-shrink:0;border-radius:50%;border:2px solid #000;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.action-checkbox.is-checked,.quest-complete-button{color:#fff;background:#000}.quest-complete-button{margin-top:8px;min-height:60px;border-radius:24px;font-size:16px;font-family:Pretendard-Bold}.quest-complete-button.is-disabled{opacity:.2}.quest-complete-button.is-reset{background:rgba(0,0,0,.05);color:var(--text-secondary)}.term-inline-button{display:inline;color:#000;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px}.completion-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:var(--accent);animation:completionFadeIn .3s ease forwards}.completion-overlay-content{display:flex;flex-direction:column;align-items:center;gap:20px;padding:40px;text-align:center}.completion-check-circle{width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:40px;color:#fff;animation:completionCheckPop .4s cubic-bezier(.34,1.56,.64,1) .2s both}.completion-quest-title{margin:0;font-family:Pretendard-Bold;font-size:20px;color:rgba(255,255,255,.9);animation:completionTitleFly .8s ease .6s both}.completion-know-text{margin:0;font-family:Pretendard-Black;font-size:36px;color:#fff}.completion-count-box{background:rgba(0,0,0,.2);border-radius:20px;padding:24px 32px;display:flex;align-items:center;gap:20px;animation:completionCountAppear .4s cubic-bezier(.34,1.56,.64,1) 1s both}.completion-count-item{display:flex;flex-direction:column;align-items:center;gap:4px}.completion-count-label{font-family:Pretendard-Medium;font-size:12px;color:rgba(255,255,255,.7)}.completion-count-value{font-family:Pretendard-Black;font-size:36px;color:#fff}.completion-count-arrow{font-size:20px;color:rgba(255,255,255,.6)}@keyframes completionFadeIn{0%{opacity:0}to{opacity:1}}@keyframes completionCheckPop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes completionTitleFly{0%{transform:translateY(0);opacity:1}to{transform:translateY(-60px);opacity:0}}@keyframes completionCountAppear{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width:640px){:root{--page-padding:20px}.page-content{padding-top:32px}.quest-hero{min-height:180px}.quest-hero-copy h1{font-size:26px;line-height:30px}}