:root{color-scheme:light;--ink: #202124;--muted: #62666f;--line: #e1e5ea;--paper: #ffffff;--wash: #f4f7f9;--mint: #2bb7a8;--coral: #f06449;--amber: #f3b23c;--blue: #3f6fd9;--green: #2f9d63;--shadow: 0 18px 50px rgba(32, 33, 36, .1);--shadow-strong: 0 24px 70px rgba(32, 33, 36, .16)}*{box-sizing:border-box}body{margin:0;background:var(--wash);color:var(--ink);font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,a{font:inherit}a{color:inherit;text-decoration:none}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(18px,4vw,56px);background:#f4f7f9db;border-bottom:1px solid rgba(225,229,234,.85);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}body[data-route=test] .topbar,body[data-route=logic] .topbar,body[data-route=result] .topbar{background:#ffffffe6}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;background:var(--ink);color:#fff;font-size:14px}.nav-links{display:flex;gap:8px;color:var(--muted);font-size:15px}.nav-links a{padding:9px 11px;border-radius:8px}.nav-links a:hover{background:#fff;color:var(--ink)}.nav-links a.active{background:var(--ink);color:#fff}main{width:min(1180px,calc(100% - 32px));margin:0 auto}.page:not(.active){display:none}.page.active{display:grid;animation:page-enter .36s cubic-bezier(.2,.75,.2,1) both}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:clamp(24px,5vw,72px);align-items:center;min-height:calc(100vh - 68px);padding:48px 0}.eyebrow{margin:0 0 12px;color:var(--coral);font-size:14px;font-weight:800;letter-spacing:0}h1,h2,h3,p{word-break:keep-all}h1{max-width:760px;margin:0;font-size:clamp(42px,6vw,76px);line-height:1.02;letter-spacing:0}.hero-text{max-width:640px;margin:24px 0 0;color:var(--muted);font-size:19px;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;padding:0 18px;cursor:pointer;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.62}.button.loading{box-shadow:inset 0 0 0 999px #ffffff1f}.button.primary{background:var(--ink);color:#fff}.button.ghost,.button.subtle{background:#fff;border-color:var(--line);color:var(--ink)}.button.subtle:disabled{cursor:not-allowed;opacity:.4}.hero-card,.question-panel,.score-panel,.result-section,.type-card,.logic-grid>div{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.hero-card{overflow:hidden;transform-origin:center;transition:transform .28s ease,box-shadow .28s ease}.hero-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-strong)}.hero-card img{display:block;width:100%;aspect-ratio:1 / 1;object-fit:contain;padding:clamp(14px,3vw,24px);background:radial-gradient(circle at 30% 20%,rgba(43,183,168,.18),transparent 34%),radial-gradient(circle at 72% 78%,rgba(240,100,73,.14),transparent 32%),#f8f8f6}.hero-card div{padding:20px}.hero-card h2,.result-copy h2{margin:8px 0;font-size:28px;line-height:1.25}.hero-card p,.type-card p,.logic-grid p,.result-copy p{color:var(--muted);line-height:1.7}.type-code{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:7px;background:#ecf8f6;color:#08786d;font-size:13px;font-weight:900}.test-shell,.types-section,.logic-section{padding:72px 0 16px}.section-heading{margin-bottom:22px}.section-heading h2{margin:0;font-size:clamp(30px,4vw,46px);letter-spacing:0}.test-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.animated-panel{animation:card-rise .43s cubic-bezier(.2,.75,.2,1) both}.question-panel{min-height:430px;padding:clamp(20px,4vw,34px)}.progress-row{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:14px;font-weight:800}.progress-track{flex:1;height:8px;overflow:hidden;border-radius:999px;background:#edf0f2}#progress-bar{display:block;width:0%;height:100%;background:linear-gradient(90deg,var(--mint),var(--amber),var(--coral));transition:width .2s ease}.axis-label{margin:28px 0 10px;color:var(--blue);font-weight:900}#question-text{margin:0;font-size:clamp(25px,3vw,36px);line-height:1.35}.answers{display:grid;gap:12px;margin-top:28px}.answer-button{display:block;width:100%;min-height:74px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:18px;color:var(--ink);cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}.answer-button:hover,.answer-button.selected{border-color:var(--mint);background:#fbfffe;box-shadow:0 10px 24px #2bb7a82e;transform:translateY(-1px)}.answer-button.pulse{animation:answer-pick .24s ease both}.answer-button strong{display:block;margin-bottom:6px;color:var(--coral);font-size:13px}.test-controls{display:flex;gap:10px;margin-top:24px}.score-panel{padding:22px}.score-panel h3,.stack-strip h3{margin:0 0 16px}.score-bars{display:grid;gap:16px}.score-item{display:grid;gap:7px}.score-label{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;font-weight:800}.score-meter{position:relative;height:10px;overflow:hidden;border-radius:999px;background:#edf0f2}.score-meter span{display:block;width:50%;height:100%;border-radius:inherit;background:var(--blue);transition:width .2s ease}.score-item:nth-child(1) .score-meter span{background:var(--coral)}.score-item:nth-child(2) .score-meter span{background:var(--blue)}.score-item:nth-child(3) .score-meter span{background:var(--mint)}.score-item:nth-child(4) .score-meter span{background:var(--amber)}.hidden{display:none}.result-section{margin-top:40px;padding:clamp(20px,4vw,34px)}.result-section.active{display:block;animation:page-enter .36s cubic-bezier(.2,.75,.2,1) both}.result-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:center}#result-image{width:100%;aspect-ratio:1 / 1;object-fit:contain;padding:clamp(12px,3vw,22px);border-radius:8px;background:radial-gradient(circle at 20% 25%,rgba(63,111,217,.13),transparent 34%),radial-gradient(circle at 78% 76%,rgba(243,178,60,.18),transparent 35%),#f8f8f6;box-shadow:inset 0 0 0 1px #e1e5eacc;animation:character-pop .52s cubic-bezier(.2,.75,.2,1) both}.result-summary{font-size:20px;font-weight:800;color:var(--ink)!important}.result-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.result-meta div,.stack-list article{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfd}.stack-list article{transition:transform .18s ease,box-shadow .18s ease}.stack-list article:hover{transform:translateY(-2px);box-shadow:0 14px 32px #20212417}.result-meta h3,.stack-list h4{margin:0 0 8px;font-size:15px}.result-meta p,.stack-list p{margin:0}.stack-strip{margin-top:24px}.stack-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.result-cta{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.cta-button{min-height:54px;text-align:center}.tech-list{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.tech-list span{padding:6px 9px;border-radius:7px;background:#eef2ff;color:#314895;font-size:13px;font-weight:800}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.type-card{overflow:hidden}.type-card img{display:block;width:100%;aspect-ratio:1 / 1;object-fit:contain;padding:14px;background:radial-gradient(circle at 28% 24%,rgba(43,183,168,.12),transparent 34%),#f8f8f6}.type-card-body{padding:16px}.type-card h3{margin:9px 0 8px;font-size:18px;line-height:1.35}.type-card p{margin:0;font-size:14px}.logic-section{padding-bottom:72px}.logic-section.active,.test-shell.active{display:block}.logic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.logic-grid>div{padding:20px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.logic-grid>div:hover{border-color:#2bb7a8a6;box-shadow:var(--shadow-strong);transform:translateY(-3px)}.logic-grid span{display:block;margin-bottom:10px;color:var(--coral);font-weight:900}.logic-grid strong{display:block;font-size:18px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#2021246b;opacity:0;pointer-events:none;transition:opacity .18s ease}.modal-backdrop[hidden]{display:none}.modal-backdrop.open{opacity:1;pointer-events:auto}.modal-card{position:relative;width:min(100%,430px);border:1px solid var(--line);border-radius:8px;background:#fff;padding:28px;box-shadow:var(--shadow-strong);transform:translateY(14px) scale(.97);transition:transform .2s cubic-bezier(.2,.75,.2,1)}.modal-backdrop.open .modal-card{transform:translateY(0) scale(1)}.modal-card h2{margin:0 0 10px;font-size:30px}.modal-card p:not(.eyebrow){margin:0 0 22px;color:var(--muted);line-height:1.7}.modal-close{position:absolute;top:12px;right:12px;display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);cursor:pointer;font-size:22px;line-height:1}.modal-close:hover{color:var(--ink)}@media (max-width: 980px){.hero,.test-layout,.result-layout{grid-template-columns:1fr}.hero{min-height:auto}.hero-card{width:min(100%,520px);justify-self:center}.score-panel{order:-1}.result-meta,.stack-list,.result-cta,.type-grid,.logic-grid{grid-template-columns:repeat(2,1fr)}#result-image{width:min(100%,420px);justify-self:center}}@media (max-width: 640px){main{width:min(100% - 24px,1180px)}.topbar{align-items:flex-start;flex-direction:column;padding:14px 12px}.nav-links{width:100%;overflow-x:auto;padding-bottom:2px}.hero{padding-top:32px}.hero-text{font-size:16px}.question-panel{min-height:auto}.hero-card img,#result-image{padding:10px}.result-meta,.stack-list,.result-cta,.type-grid,.logic-grid{grid-template-columns:1fr}.test-controls{flex-direction:column}}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes card-rise{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes answer-pick{0%{transform:scale(1)}50%{transform:scale(.985)}to{transform:scale(1)}}@keyframes character-pop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
