/* ============================================================
   얼평연구소 디자인 시스템 v1 — 모바일 퍼스트, 라이트/다크 자동
   ============================================================ */
:root{
  --bg:#fff6dd; --panel:#ffffff; --panel2:#fff0c4;
  --text:#17141f; --muted:#6f6753; --border:#17141f;
  --ink:#17141f; --hard:#17141f;
  --pop:#ffe600; --pop2:#ff2e88;
  --accent:#7c3aed; --accent2:#4f46e5;
  --chip:#ffe600; --chip-text:#17141f;
  --ok:#10b981; --warn:#f59e0b; --bad:#ef4444;
  --card-shadow:5px 5px 0 var(--hard);
  --radius:16px;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#171425; --panel:#211d33; --panel2:#2b2542;
    --text:#f2f0fa; --muted:#a9a3bd; --border:#f2f0fa;
    --ink:#f2f0fa; --hard:#0a0813;
    --chip:#ffe600; --chip-text:#17141f;
    --card-shadow:5px 5px 0 var(--hard);
  }
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:16px}
body{
  font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
  background:var(--bg);
  background-image:radial-gradient(color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 1.4px);
  background-size:22px 22px;
  color:var(--text); line-height:1.6; word-break:keep-all;
  min-height:100dvh; display:flex; flex-direction:column;
}
/* 병맛 헤드라인 폰트 */
.hero h1,.svc-hero h1,.logo,.sort-tabs a,.head-cta{font-family:'Black Han Sans','Pretendard Variable',Pretendard,sans-serif}
.hero h1,.svc-hero h1{font-weight:400;letter-spacing:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}

.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 16px}
main.wrap{flex:1}

/* ---- 헤더 ---- */
.site-head{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:2px solid var(--ink)}
.site-head .inner{max-width:1080px;margin:0 auto;padding:0 16px;height:58px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.logo{display:flex;align-items:center;gap:9px;font-weight:400;font-size:1.16em;letter-spacing:0;min-width:0;flex:1 1 auto}
.logo .brand-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.logo .mark{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--pop);border:2px solid var(--ink);display:grid;place-items:center;font-size:17px;box-shadow:2px 2px 0 var(--hard);transform:rotate(-4deg)}
.logo small{flex-shrink:0;font-family:'Pretendard Variable',Pretendard,sans-serif;font-weight:800;color:var(--chip-text);font-size:.56em;letter-spacing:.02em;margin-left:2px;background:var(--pop);border:1.5px solid var(--ink);border-radius:6px;padding:2px 7px;transform:rotate(2deg)}
.head-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ls-code{display:none}
/* 언어 전환 드롭다운 */
.lang-switch{position:relative}
.lang-switch summary{list-style:none;cursor:pointer;font-size:.8em;font-weight:800;color:var(--text);padding:7px 11px;border:2px solid var(--ink);border-radius:12px;background:var(--panel);box-shadow:2px 2px 0 var(--hard);white-space:nowrap;user-select:none}
.lang-switch summary::-webkit-details-marker{display:none}
.lang-switch[open] summary{background:var(--pop);color:#17141f}
.lang-switch .ls-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:130px;background:var(--panel);border:2px solid var(--ink);border-radius:12px;box-shadow:4px 4px 0 var(--hard);padding:5px;z-index:60;display:flex;flex-direction:column}
.lang-switch .ls-menu a{padding:8px 12px;border-radius:8px;font-size:.85em;font-weight:700;color:var(--text)}
.lang-switch .ls-menu a:hover{background:var(--pop);color:#17141f}
.lang-switch .ls-menu a.on{background:var(--ink);color:#fff;pointer-events:none}
/* 모바일 헤더 축소 — 언어 버튼은 국가 코드로, 로고는 말줄임 */
@media(max-width:760px){
  .lang-switch .ls-full{display:none}
  .ls-code{display:inline}
  .lang-switch summary{padding:7px 10px}
  .head-cta{padding:7px 11px;font-size:.8em}
  .logo{font-size:1.05em;gap:7px}
}
@media(max-width:560px){
  .logo small{display:none}
  .site-head .inner{padding:0 12px;gap:8px}
  .logo{font-size:1em}
  .logo .mark{width:30px;height:30px;font-size:15px}
  .lang-switch summary{padding:6px 9px;font-size:.74em;box-shadow:1.5px 1.5px 0 var(--hard)}
  .head-cta{padding:6px 9px;font-size:.74em;box-shadow:2px 2px 0 var(--hard)}
  .head-right{gap:6px}
  .lang-switch .ls-menu{right:-46px}
}
/* 다국어 페이지 헤딩 폰트 폴백 (Black Han Sans는 한글·기본 라틴 전용) */
body.lang-ja .hero h1,body.lang-ja .svc-hero h1,body.lang-ja .logo,body.lang-ja .sort-tabs a,body.lang-ja .head-cta{font-family:'Pretendard JP Variable','Pretendard Variable',Pretendard,sans-serif;font-weight:900;letter-spacing:-.03em}
body.lang-zh .hero h1,body.lang-zh .svc-hero h1,body.lang-zh .logo,body.lang-zh .sort-tabs a,body.lang-zh .head-cta{font-family:'Pretendard Variable',Pretendard,'PingFang SC','Microsoft YaHei',sans-serif;font-weight:900;letter-spacing:-.02em}
body.lang-zh-tw .hero h1,body.lang-zh-tw .svc-hero h1,body.lang-zh-tw .logo,body.lang-zh-tw .sort-tabs a,body.lang-zh-tw .head-cta{font-family:'Pretendard Variable',Pretendard,'PingFang TC','Microsoft JhengHei',sans-serif;font-weight:900;letter-spacing:-.02em}
body.lang-vi .hero h1,body.lang-vi .svc-hero h1,body.lang-vi .logo,body.lang-vi .sort-tabs a,body.lang-vi .head-cta{font-family:'Pretendard Variable',Pretendard,-apple-system,'Segoe UI',Roboto,sans-serif;font-weight:900;letter-spacing:-.02em}
body.lang-th .hero h1,body.lang-th .svc-hero h1,body.lang-th .logo,body.lang-th .sort-tabs a,body.lang-th .head-cta{font-family:'Pretendard Variable',Pretendard,'Noto Sans Thai','Leelawadee UI','Sarabun',sans-serif;font-weight:900;letter-spacing:0}
/* 태국어: 공백 없는 문자라 긴 문장이 박스를 뚫지 않도록 줄바꿈 허용 */
body.lang-th{word-break:break-word}
.head-cta{font-size:.86em;font-weight:400;color:var(--text);padding:8px 15px;border:2px solid var(--ink);border-radius:12px;background:var(--panel);box-shadow:3px 3px 0 var(--hard);transition:all .12s}
.head-cta:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--hard)}
.head-cta:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--hard)}

/* ---- 히어로 ---- */
.hero{padding:38px 0 20px;text-align:center;position:relative}
.hero h1{font-size:clamp(1.7rem,5.4vw,2.6rem);line-height:1.28}
.hero h1 em{font-style:normal;background:linear-gradient(transparent 58%,var(--pop) 58%,var(--pop) 94%,transparent 94%);padding:0 4px}
.hero .hero-sticker{position:absolute;top:22px;right:max(8px,calc(50% - 300px));background:var(--pop2);color:#fff;font-weight:900;font-size:.78em;padding:7px 13px;border:2px solid var(--ink);border-radius:999px;transform:rotate(9deg);box-shadow:3px 3px 0 var(--hard);animation:wiggle 2.4s ease-in-out infinite}
@keyframes wiggle{0%,100%{transform:rotate(9deg)}50%{transform:rotate(3deg) scale(1.06)}}
.hero p{margin-top:10px;color:var(--muted);font-size:clamp(.88rem,2.6vw,1rem);font-weight:600}
.hero-stats{display:flex;justify-content:center;gap:8px;margin-top:16px;flex-wrap:wrap}
.hero-stats .stat{font-size:.78em;font-weight:800;background:var(--panel);border:2px solid var(--ink);color:var(--text);padding:6px 13px;border-radius:999px;box-shadow:2px 2px 0 var(--hard)}
.hero-stats .stat b{color:var(--pop2)}
.hero-stats .stat:nth-child(2){transform:rotate(-1.5deg)}
.hero-stats .stat:nth-child(3){transform:rotate(1.5deg)}
/* 클릭 가능한 히어로 통계칩 */
.hero-chip{cursor:pointer;font-family:inherit;transition:background .14s,color .14s,box-shadow .14s}
.hero-chip:hover{background:var(--pop);color:#17141f;box-shadow:3px 3px 0 var(--hard)}
.hero-chip:hover b{color:#17141f}
.hero-chip.on{background:var(--ink);color:#fff;box-shadow:2px 2px 0 var(--pop2)}
.hero-chip.on b{color:var(--pop)}
.hero-chip:active{transform:translate(1px,1px)}
.hero-stats .stat:nth-child(2).hero-chip:active{transform:rotate(-1.5deg) translate(1px,1px)}
.hero-stats .stat:nth-child(3).hero-chip:active{transform:rotate(1.5deg) translate(1px,1px)}
/* 연구 분야 칩 → 카테고리 선택 영역 강조 */
@keyframes labPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}25%,75%{box-shadow:0 0 0 5px var(--pop)}}
.category-lab.pulse{animation:labPulse 1.1s ease-in-out 2;border-radius:18px}

/* ---- 연구소 공지 벽보 ---- */
.notice-chip{cursor:pointer;font-family:inherit}
.notice-chip b{color:var(--pop2)}
.notice-chip.on,.notice-chip:hover{background:var(--pop);color:#17141f}
.notice-chip.on b{color:#17141f}
.notice-board{max-width:640px;margin:0 auto}
.notice-note{position:relative;margin:22px auto 0;max-width:640px;text-align:left;background:var(--panel);border:2px solid var(--ink);border-radius:14px;box-shadow:4px 4px 0 var(--hard);transform:rotate(-.5deg)}
.notice-note:nth-child(even){transform:rotate(.5deg)}
.notice-note::before,.notice-note::after{content:'';position:absolute;top:-11px;width:74px;height:22px;background:rgba(255,230,0,.75);border:1px solid rgba(23,20,31,.25);pointer-events:none}
.notice-note::before{left:14%;transform:rotate(-7deg)}
.notice-note::after{right:14%;transform:rotate(6deg)}
.notice-note summary{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer;list-style:none;user-select:none}
.notice-note summary::-webkit-details-marker{display:none}
.ntc-stamp{flex:none;font-size:.7em;font-weight:900;color:var(--pop2);border:2px solid var(--pop2);border-radius:8px;padding:4px 8px;transform:rotate(-6deg);letter-spacing:.02em}
.ntc-copy{flex:1;min-width:0}
.ntc-copy small{display:block;font-size:.68em;font-weight:800;color:var(--muted);letter-spacing:.06em}
.ntc-copy b{display:block;font-size:.92em;font-weight:900;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notice-note[open] .ntc-copy b{white-space:normal}
.ntc-arrow{flex:none;font-size:.85em;font-weight:900;color:var(--muted);transition:transform .2s}
.notice-note[open] .ntc-arrow{transform:rotate(180deg)}
.ntc-body{border-top:2px dashed var(--ink);padding:15px 18px 16px;font-size:.86em;font-weight:600;line-height:1.75;color:var(--text)}
.ntc-date{margin-top:12px;font-size:.86em;font-weight:800;color:var(--muted);text-align:right}
@media(max-width:520px){.notice-note{transform:none}.notice-note::before{left:8%}.notice-note::after{right:8%}}

/* ---- 병맛 띠지(티커) ---- */
.ticker{overflow:hidden;border:2px solid var(--ink);background:var(--pop);border-radius:12px;margin:16px 0 4px;box-shadow:3px 3px 0 var(--hard)}
.ticker .tk-track{display:flex;width:max-content;animation:tk 26s linear infinite}
.ticker span{white-space:nowrap;padding:7px 0 7px 26px;font-size:.78em;font-weight:800;color:#17141f;letter-spacing:.01em}
@keyframes tk{to{transform:translateX(-50%)}}

/* ---- 서비스 카드 그리드 ---- */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:8px 0 40px}
@media(min-width:640px){.grid{grid-template-columns:repeat(3,1fr);gap:14px}}
@media(min-width:920px){.grid{grid-template-columns:repeat(4,1fr)}}
.card{
  position:relative;background:var(--panel);border:2px solid var(--ink);border-radius:var(--radius);
  padding:18px 16px 16px;display:flex;flex-direction:column;gap:8px;overflow:hidden;
  box-shadow:3px 3px 0 var(--hard);
  transition:transform .16s ease, box-shadow .16s ease;
}
.card:hover{transform:translate(-3px,-3px) rotate(-.6deg);box-shadow:7px 7px 0 var(--hard)}
.card:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--hard)}
.card .emoji{
  width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:24px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--c1,#7c3aed) 16%,var(--panel)),color-mix(in srgb,var(--c2,#4f46e5) 20%,var(--panel)));
  border:1px solid color-mix(in srgb,var(--c1,#7c3aed) 26%,var(--border));
}
.card h3{font-size:.95em;font-weight:800;letter-spacing:-.02em;line-height:1.35}
.card p{font-size:.78em;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{margin-top:auto;display:flex;align-items:center;gap:6px;font-size:.72em;color:var(--muted);font-weight:600}
.card .badge{position:absolute;top:10px;right:10px;font-size:.66em;font-weight:900;padding:3px 10px;border-radius:999px;background:var(--pop);color:#17141f;border:1.5px solid #17141f;letter-spacing:.02em;transform:rotate(6deg)}

/* ---- 서비스 페이지 ---- */
.svc-hero{padding:30px 0 6px;text-align:center}
.svc-hero .emoji-big{
  width:76px;height:76px;margin:0 auto 14px;border-radius:24px;display:grid;place-items:center;font-size:40px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--c1) 18%,var(--panel)),color-mix(in srgb,var(--c2) 24%,var(--panel)));
  border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--hard);
  transform:rotate(-3deg);
}
.svc-hero h1{font-size:clamp(1.5rem,4.8vw,2.2rem);font-weight:400;letter-spacing:.02em;line-height:1.42;word-spacing:.08em}
.svc-hero .sub{margin-top:10px;color:var(--muted);font-size:clamp(.86rem,2.5vw,.98rem);max-width:560px;margin-left:auto;margin-right:auto}
.svc-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:14px}
.svc-tags span{font-size:.75em;font-weight:800;padding:4px 12px;border-radius:999px;background:var(--chip);color:var(--chip-text);border:1.5px solid #17141f;box-shadow:2px 2px 0 rgba(0,0,0,.25)}
.svc-tags span:nth-child(odd){transform:rotate(-1.6deg)}
.svc-tags span:nth-child(even){transform:rotate(1.4deg)}
.svc-share-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:9px 14px;border:1.5px solid var(--ink);border-radius:999px;background:var(--panel);box-shadow:2px 2px 0 var(--hard);font-size:.76em;font-weight:850;transition:transform .12s,box-shadow .12s}
.svc-share-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.svc-share-btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--hard)}
.svc-share-btn:active{transform:translate(2px,2px);box-shadow:none}

/* 업로드 패널 */
.panel{background:var(--panel);border:2px solid var(--ink);border-radius:20px;padding:22px 18px;margin:18px auto;max-width:560px;box-shadow:5px 5px 0 var(--hard)}
.dropzone{
  border:2px dashed color-mix(in srgb,var(--c1,#7c3aed) 45%,var(--border));border-radius:18px;
  padding:34px 16px;text-align:center;cursor:pointer;transition:all .18s;background:color-mix(in srgb,var(--c1,#7c3aed) 4%,var(--panel));
}
.dropzone.drag{background:color-mix(in srgb,var(--c1,#7c3aed) 12%,var(--panel));transform:scale(1.01)}
.dropzone .dz-ico{font-size:38px;margin-bottom:10px}
.dropzone .dz-t1{font-weight:800;font-size:1em}
.dropzone .dz-t2{font-size:.8em;color:var(--muted);margin-top:6px}
.preview-box{display:none;text-align:center}
.preview-box img{width:180px;height:180px;object-fit:cover;border-radius:20px;margin:0 auto 14px;border:3px solid color-mix(in srgb,var(--c1) 40%,var(--border));box-shadow:0 10px 26px color-mix(in srgb,var(--c1) 18%,transparent)}
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;border-radius:14px;
  font-size:1.02em;font-weight:800;letter-spacing:-.01em;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--hard);
  transition:transform .12s, box-shadow .12s;
}
.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--hard)}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--hard)}
.btn-primary{background:linear-gradient(135deg,var(--c1,#7c3aed),var(--c2,#4f46e5));color:#fff}
.btn-ghost{background:var(--panel);color:var(--text);margin-top:12px}
.btn+.btn{margin-top:10px}
.privacy-note{margin-top:14px;font-size:.74em;color:var(--muted);text-align:center;line-height:1.55}

/* 가이드 */
.guide{max-width:560px;margin:0 auto 40px;padding:0 2px}
.guide h2{font-size:.95em;font-weight:800;margin:22px 0 10px;display:flex;align-items:center;gap:7px}
.guide ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.guide li{display:flex;gap:10px;font-size:.85em;color:var(--muted);background:var(--panel);border:2px solid var(--ink);border-radius:14px;padding:12px 14px;line-height:1.55;box-shadow:3px 3px 0 var(--hard)}
.guide li .gi{flex-shrink:0}
.guide li b{color:var(--text)}
.warn-box{margin-top:14px;font-size:.78em;text-align:center;background:var(--chip);color:var(--chip-text);border-radius:12px;padding:10px 14px;font-weight:600}

/* ---- 분석중 오버레이 ---- */
.analyzing{display:none;position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.analyzing.on{display:flex}
.scan-ring{position:relative;width:130px;height:130px;margin-bottom:22px}
.scan-ring img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:3px solid color-mix(in srgb,var(--c1,#7c3aed) 50%,var(--border))}
.scan-ring::after{content:'';position:absolute;inset:-9px;border-radius:50%;border:3px solid transparent;border-top-color:var(--c1,#7c3aed);border-right-color:var(--c2,#4f46e5);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.analyzing .a-t1{font-weight:800;font-size:1.08em}
.analyzing .a-t2{margin-top:8px;color:var(--muted);font-size:.85em;min-height:1.5em}
.progress-track{width:min(300px,70vw);height:6px;border-radius:99px;background:var(--panel2);margin-top:18px;overflow:hidden}
.progress-bar{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,var(--c1,#7c3aed),var(--c2,#4f46e5));transition:width .5s ease}

/* ---- 결과 ---- */
.result-wrap{display:none;max-width:560px;margin:6px auto 40px}
.result-wrap.on{display:block}

.rcard{
  background:#fff;color:#1d1930;border-radius:24px;overflow:hidden;
  border:1px solid #eae7f4;box-shadow:var(--card-shadow);
}
.rcard .rc-head{
  display:flex;align-items:center;justify-content:space-between;padding:14px 18px;
  background:linear-gradient(135deg,var(--c1,#7c3aed),var(--c2,#4f46e5));color:#fff;
}
.rcard .rc-head .rc-brand{font-weight:900;font-size:.86em;letter-spacing:.02em;display:flex;align-items:center;gap:7px}
.rcard .rc-head .rc-svc{font-size:.72em;font-weight:700;opacity:.92}
.rc-body{padding:22px 20px 18px;text-align:center}
.rc-photo{width:112px;height:112px;border-radius:50%;object-fit:cover;margin:0 auto 4px;border:4px solid #fff;box-shadow:0 6px 20px rgba(50,20,120,.22);position:relative;z-index:2}
.rc-score-zone{margin:-58px auto 0;width:168px;height:168px;position:relative;z-index:1}
.rc-score-zone svg{width:100%;height:100%;transform:rotate(-90deg)}
.rc-score-num{position:absolute;left:0;right:0;bottom:20px;text-align:center;font-size:2.1em;font-weight:900;letter-spacing:-.04em;color:var(--c1,#7c3aed)}
.rc-score-num small{display:block;font-size:.34em;font-weight:700;color:#8a86a0;letter-spacing:0}
.rc-rank{font-size:1.28em;font-weight:900;letter-spacing:-.02em;line-height:1.35;margin-top:8px}
.rc-verdict{display:inline-block;margin-top:9px;font-size:.8em;font-weight:800;padding:5px 15px;border-radius:999px;background:linear-gradient(90deg,var(--c1,#7c3aed),var(--c2,#4f46e5));color:#fff}
.rc-mood{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:13px}
.rc-mood span{font-size:.74em;font-weight:700;padding:4px 11px;border-radius:999px;background:#f3efff;color:#6d28d9}
.rc-lanes{margin-top:18px;display:flex;flex-direction:column;gap:10px;text-align:left}
.rc-lane .ln-top{display:flex;justify-content:space-between;font-size:.78em;font-weight:700;margin-bottom:4px}
.rc-lane .ln-top .ln-val{color:var(--c1,#7c3aed)}
.rc-lane .ln-track{height:8px;border-radius:99px;background:#efedf7;overflow:hidden}
.rc-lane .ln-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--c1,#7c3aed),var(--c2,#4f46e5));width:0%;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.rc-texts{margin-top:18px;display:flex;flex-direction:column;gap:10px;text-align:left}
.rc-text{background:#faf9fe;border:1px solid #eeebf7;border-radius:14px;padding:13px 15px}
.rc-text .tx-label{font-size:.72em;font-weight:800;color:var(--c1,#7c3aed);margin-bottom:5px;letter-spacing:.01em}
.rc-text .tx-body{font-size:.86em;line-height:1.66;color:#3a3550}
.rc-foot{padding:11px;text-align:center;font-size:.7em;color:#a49fbb;border-top:1px dashed #e8e5f2;font-weight:600;letter-spacing:.04em}

.result-actions{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.result-actions .btn{padding:14px;font-size:.92em}
.result-actions .full{grid-column:1/-1}

/* iOS 저장 오버레이 */
.ios-save{display:none;position:fixed;inset:0;z-index:300;background:rgba(10,8,18,.92);flex-direction:column;align-items:center;justify-content:center;padding:22px;text-align:center}
.ios-save.on{display:flex}
.ios-save img{max-width:78vw;max-height:56vh;border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.ios-save .tip{color:#fff;font-weight:700;margin-top:16px;font-size:.95em}
.ios-save .tip small{display:block;color:#b9b3d9;font-weight:500;margin-top:5px;font-size:.82em}
.ios-save .isv-btns{display:flex;gap:10px;margin-top:18px}
.ios-save .isv-btns button{padding:13px 22px;border-radius:12px;font-weight:800;font-size:.92em}
.ios-save .isv-share{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff}
.ios-save .isv-close{background:rgba(255,255,255,.14);color:#fff}

/* 토스트 */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--pop);color:#17141f;border:2px solid #17141f;box-shadow:3px 3px 0 rgba(0,0,0,.35);padding:11px 22px;border-radius:14px;font-size:.85em;font-weight:800;opacity:0;transition:all .25s;z-index:400;pointer-events:none;white-space:nowrap}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* 다른 테스트 추천 */
.more-tests{max-width:560px;margin:0 auto 46px}
.more-tests h2{font-size:.95em;font-weight:800;margin-bottom:12px}
.more-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}

/* ---- 푸터 ---- */
.site-foot{border-top:2px solid var(--ink);padding:0 16px 34px;text-align:center;color:var(--muted);font-size:.76em;line-height:1.7;position:relative}
.site-foot::before{content:'';display:block;height:10px;margin:0 -16px 24px;background:repeating-linear-gradient(-45deg,var(--pop) 0 14px,#17141f 14px 28px);border-bottom:2px solid var(--ink)}
.site-foot b{color:var(--text)}
.site-foot .f-links{margin-top:6px;display:flex;justify-content:center;gap:14px}
.site-foot a{text-decoration:underline;text-underline-offset:3px}

/* 모바일 미세조정 — 화면 최대 사용 */
@media(max-width:480px){
  .wrap{padding:0 12px}
  .panel{border-radius:18px;padding:18px 14px;margin:14px auto}
  .rc-body{padding:18px 14px 16px}
  .hero{padding:28px 0 18px}
  .grid{gap:10px}
}

/* ============================================================
   테마 엔진 v2 — 레이아웃별 결과 카드 + 페이지 스킨
   ============================================================ */

/* ---------- 공통 위젯 ---------- */
.rc-photo-sq{width:110px;height:138px;object-fit:cover;border-radius:8px;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.w-meter{position:relative;width:210px;height:118px;margin:6px auto 0}
.w-meter svg{width:100%;height:100%}
.w-meter .m-num{position:absolute;left:0;right:0;bottom:0;font-size:1.9em;font-weight:900;letter-spacing:-.03em}
.w-meter .m-num small{display:block;font-size:.36em;font-weight:700;opacity:.6}

/* ---------- REPORT: 평가 성적표 ---------- */

/* ============================================================
   QuizzyMind — 퀴즈 플레이 엔진 스타일
   ============================================================ */

/* 커버 이미지 (인트로) */
.qz-cover{max-width:560px;margin:16px auto 0;border:2px solid var(--ink);border-radius:20px;overflow:hidden;box-shadow:5px 5px 0 var(--hard)}
.qz-cover img{width:100%;display:block}

/* 플레이 스테이지 */
.qz-stage{display:none;max-width:560px;margin:14px auto 40px}
.qz-stage.on{display:block}
.qz-progress{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.qz-progress .qp-num{font-size:.8em;font-weight:900;white-space:nowrap;background:var(--pop);border:2px solid var(--ink);border-radius:999px;padding:4px 12px;box-shadow:2px 2px 0 var(--hard)}
.qz-progress .qp-track{flex:1;height:10px;border-radius:99px;background:var(--panel);border:2px solid var(--ink);overflow:hidden}
.qz-progress .qp-fill{height:100%;background:linear-gradient(90deg,var(--c1),var(--c2));width:0%;transition:width .35s cubic-bezier(.2,.8,.2,1)}

.qz-qcard{background:var(--panel);border:2px solid var(--ink);border-radius:20px;padding:22px 18px;box-shadow:5px 5px 0 var(--hard);animation:qslide .3s ease}
@keyframes qslide{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.qz-qcard.back{animation:qslideb .3s ease}
@keyframes qslideb{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
.qz-qtitle{font-size:1.06em;font-weight:800;line-height:1.5;letter-spacing:-.01em;text-align:center;white-space:pre-line}
.qz-qimg{margin:14px auto 2px;max-width:340px;border-radius:14px;overflow:hidden;border:2px solid var(--ink)}
.qz-qimg img{width:100%;display:block}
.qz-choices{margin-top:18px;display:flex;flex-direction:column;gap:10px}
.qz-choice{
  width:100%;text-align:left;padding:14px 16px;border:2px solid var(--ink);border-radius:14px;
  background:var(--bg);font-size:.95em;font-weight:700;line-height:1.45;color:var(--text);
  box-shadow:3px 3px 0 var(--hard);transition:transform .1s, box-shadow .1s, background .1s;
  display:flex;align-items:center;gap:11px;
}
.qz-choice .ci{flex-shrink:0;width:26px;height:26px;border-radius:8px;border:2px solid var(--ink);background:var(--panel);display:grid;place-items:center;font-size:.78em;font-weight:900}
.qz-choice:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--hard);background:var(--panel)}
.qz-choice:active,.qz-choice.picked{transform:translate(2px,2px);box-shadow:0 0 0 var(--hard);background:var(--pop);color:#17141f}
.qz-choice.picked .ci{background:#17141f;color:var(--pop)}
.qz-back{margin-top:14px;font-size:.8em;font-weight:800;color:var(--muted);text-decoration:underline;text-underline-offset:3px}

/* 채점 오버레이 재사용(.analyzing) + 결과 카드 */
.qz-result-card{background:#fff;color:#1d1930;border-radius:24px;overflow:hidden;border:2px solid var(--ink);box-shadow:var(--card-shadow)}
.qz-result-card .rc-head{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.qz-result-card .rc-brand{font-weight:900;font-size:.85em;display:flex;align-items:center;gap:7px}
.qz-result-card .rc-svc{font-size:.7em;font-weight:700;opacity:.92;max-width:55%;text-align:right;line-height:1.3}
.qz-rbody{padding:22px 20px 20px;text-align:center}
.qz-rbadge{display:inline-block;font-size:.72em;font-weight:900;letter-spacing:.06em;color:var(--c1);border:1.5px solid var(--c1);border-radius:999px;padding:4px 14px;margin-bottom:12px}
.qz-rimg{max-width:300px;margin:0 auto 14px;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(50,20,120,.18)}
.qz-rimg img{width:100%;display:block}
.qz-rtitle{font-size:1.3em;font-weight:900;letter-spacing:-.02em;line-height:1.4;white-space:pre-line}
.qz-rscore{margin:14px auto 4px;display:inline-flex;align-items:baseline;gap:6px;background:#f6f3ff;border-radius:999px;padding:8px 22px}
.qz-rscore b{font-size:1.7em;font-weight:900;color:var(--c1);letter-spacing:-.03em}
.qz-rscore span{font-size:.78em;font-weight:700;color:#8a86a0}
.qz-gauge{margin:14px auto 0;max-width:320px}
.qz-gauge .g-track{height:14px;border-radius:99px;background:#efedf7;overflow:hidden}
.qz-gauge .g-fill{height:100%;border-radius:99px;width:0%;transition:width .9s cubic-bezier(.2,.8,.2,1);background:linear-gradient(90deg,var(--c1),var(--c2))}
.qz-gauge.g-green .g-fill{background:linear-gradient(90deg,#10b981,#84cc16)}
.qz-gauge.g-avg .g-fill{background:linear-gradient(90deg,#38bdf8,#6366f1)}
.qz-gauge.g-warning .g-fill{background:linear-gradient(90deg,#f59e0b,#f97316)}
.qz-gauge.g-red .g-fill{background:linear-gradient(90deg,#ef4444,#b91c1c)}
.qz-gauge .g-pct{margin-top:6px;font-size:.78em;font-weight:800;color:#8a86a0;text-align:right}
.qz-rtext{margin-top:16px;text-align:left;background:#faf9fe;border:1px solid #eeebf7;border-radius:14px;padding:15px 17px;font-size:.9em;line-height:1.72;color:#3a3550;white-space:pre-line}
.qz-rfoot{padding:11px;text-align:center;font-size:.68em;color:#a49fbb;border-top:1px dashed #e8e5f2;font-weight:600;letter-spacing:.03em}
.qz-disclaimer{margin-top:12px;font-size:.74em;color:var(--muted);text-align:center;line-height:1.6}

/* 인트로 메타 칩 */
.qz-meta{display:flex;justify-content:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.qz-meta span{font-size:.76em;font-weight:800;background:var(--panel);border:2px solid var(--ink);border-radius:999px;padding:5px 13px;box-shadow:2px 2px 0 var(--hard)}

/* 카드 커버 썸네일 (리스트) */
.card .thumb{margin:-18px -16px 4px;border-bottom:2px solid var(--ink);aspect-ratio:16/9;overflow:hidden;background:var(--panel2)}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.card:hover .thumb img{transform:scale(1.05)}

/* 카테고리 탭 */
.cat-tabs{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 14px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cat-tabs::-webkit-scrollbar{display:none}
.cat-tabs a{flex-shrink:0;font-size:.84em;font-weight:800;padding:8px 16px;border:2px solid var(--ink);border-radius:999px;background:var(--panel);box-shadow:2px 2px 0 var(--hard);white-space:nowrap;transition:transform .1s}
.cat-tabs a:hover{transform:translate(-1px,-1px)}
.cat-tabs a.on{background:var(--ink);color:var(--bg);pointer-events:none}
