/* ============================================================
   얼평연구소 디자인 시스템 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: 평가 성적표 ---------- */
body.layout-report{background:#f4efe3}
@media (prefers-color-scheme: dark){body.layout-report{background:#181510}}
.layout-report .panel,.layout-report .guide li{background:#fffdf6;border-color:#e5dcc3}
@media (prefers-color-scheme: dark){.layout-report .panel,.layout-report .guide li{background:#221e15;border-color:#3a3323}}
.rc-report{background:#fdfaf1;color:#2a2417;border:2px solid #c9b98a;border-radius:8px;position:relative;font-feature-settings:'tnum'}
.rc-report .rp-head{border-bottom:2px solid #c9b98a;padding:16px 18px 12px;text-align:center;position:relative}
.rc-report .rp-head .rp-title{font-size:1.25em;font-weight:900;letter-spacing:.35em;text-indent:.35em}
.rc-report .rp-head .rp-no{position:absolute;left:14px;top:14px;font-size:.66em;color:#8d7f5a;font-weight:700}
.rc-report .rp-body{padding:18px;position:relative}
.rc-report .rp-row{display:flex;gap:16px;align-items:flex-start}
.rc-report .rp-info{flex:1;font-size:.85em}
.rc-report .rp-info .rp-line{display:flex;border-bottom:1px solid #e7dfc8;padding:7px 2px}
.rc-report .rp-line b{width:86px;color:#8d7f5a;font-size:.9em;flex-shrink:0}
.rc-report .rp-photo{width:96px;height:122px;object-fit:cover;border:1px solid #c9b98a;padding:3px;background:#fff}
.rc-report table.rp-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:.84em}
.rc-report .rp-table th,.rc-report .rp-table td{border:1px solid #d8cba4;padding:8px 10px;text-align:left}
.rc-report .rp-table th{background:#f3ecd8;font-weight:800;font-size:.92em}
.rc-report .rp-table .num{text-align:right;font-weight:800;white-space:nowrap}
.rc-report .rp-bar{height:7px;background:#eee5cc;border-radius:2px;overflow:hidden;margin-top:5px}
.rc-report .rp-bar i{display:block;height:100%;background:linear-gradient(90deg,#b91c1c,#dc2626);width:0;transition:width .8s}
.rc-report .rp-photo-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0}
.rc-report .rp-stamp{margin:-24px 0 0;width:86px;height:86px;border:3.5px solid #dc2626;border-radius:50%;display:grid;place-items:center;color:#dc2626;font-weight:900;transform:rotate(-12deg);opacity:.92;background:rgba(255,255,255,.6)}
.rc-report .rp-stamp .st-n{font-size:1.7em;line-height:1}
.rc-report .rp-stamp .st-l{font-size:.6em;letter-spacing:.1em}
.rc-report .rp-sec{margin-top:14px;border:1px solid #d8cba4;padding:12px 14px;font-size:.86em;line-height:1.7;background:#fffef9}
.rc-report .rp-sec .rp-sec-t{font-weight:900;font-size:.82em;color:#8d7f5a;margin-bottom:6px;letter-spacing:.14em}
.rc-report .rp-sign{margin-top:16px;text-align:right;font-size:.82em;color:#6b5f42;font-weight:700}
.rc-report .rp-sign .sign-stamp{display:inline-grid;place-items:center;width:34px;height:34px;border:2px solid #dc2626;border-radius:50%;color:#dc2626;font-size:.72em;font-weight:900;margin-left:6px;transform:rotate(8deg);vertical-align:middle}

/* ---------- NEON: 게임 티어 랭크 ---------- */
body.layout-neon{background:#0a0c16}
body.layout-neon .site-head{background:rgba(10,12,22,.85)}
.layout-neon,.layout-neon .hero p,.layout-neon .svc-hero .sub{color:#dfe3f5}
.layout-neon .panel,.layout-neon .guide li{background:#131627;border-color:#252a45;color:#dfe3f5}
.layout-neon .guide li{color:#9aa1c4}.layout-neon .guide li b{color:#fff}
.layout-neon .svc-hero h1{color:#fff}
.layout-neon .warn-box{background:#1c1f36;color:#8f96c4}
.rc-neon{background:linear-gradient(160deg,#0d1020,#171b33);color:#e8ebfa;border:1px solid #303757;border-radius:20px;position:relative;overflow:hidden}
.rc-neon::before{content:'';position:absolute;inset:0;background:radial-gradient(600px 220px at 50% -60px,color-mix(in srgb,var(--c1) 32%,transparent),transparent)}
.rc-neon .nn-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #262c4a;position:relative}
.rc-neon .nn-brand{font-weight:900;font-size:.84em;letter-spacing:.12em;color:#aab2e0}
.rc-neon .nn-season{font-size:.68em;color:#6a7099;font-weight:700}
.rc-neon .nn-body{padding:22px 20px;text-align:center;position:relative}
.rc-neon .nn-photo{width:118px;height:118px;border-radius:50%;object-fit:cover;border:3px solid var(--c1);box-shadow:0 0 24px color-mix(in srgb,var(--c1) 60%,transparent),0 0 60px color-mix(in srgb,var(--c1) 28%,transparent);margin:6px auto 14px}
.rc-neon .nn-tier{display:inline-block;font-size:1.5em;font-weight:900;letter-spacing:.06em;background:linear-gradient(90deg,var(--c1),var(--c2),var(--c1));-webkit-background-clip:text;background-clip:text;color:transparent;text-transform:uppercase}
.rc-neon .nn-rank{font-size:1.05em;font-weight:800;margin-top:6px;color:#fff}
.rc-neon .nn-score{margin-top:12px;font-size:.8em;color:#8f96c4;font-weight:700}
.rc-neon .nn-score b{font-size:2em;color:#fff;font-weight:900;letter-spacing:-.02em;display:block;line-height:1.1;text-shadow:0 0 18px color-mix(in srgb,var(--c1) 70%,transparent)}
.rc-neon .nn-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc-neon .nn-mood span{font-size:.72em;font-weight:700;padding:4px 12px;border-radius:4px;background:#1d2240;color:#aab2e0;border:1px solid #303757}
.rc-neon .nn-lanes{margin-top:18px;text-align:left;display:flex;flex-direction:column;gap:11px}
.rc-neon .nn-lane .ln-top{display:flex;justify-content:space-between;font-size:.76em;font-weight:700;color:#aab2e0;margin-bottom:5px}
.rc-neon .nn-lane .ln-top .ln-val{color:#fff}
.rc-neon .nn-lane .ln-track{height:7px;background:#1a1e38;border-radius:2px;overflow:hidden}
.rc-neon .nn-lane .ln-fill{height:100%;background:linear-gradient(90deg,var(--c1),var(--c2));box-shadow:0 0 12px var(--c1);width:0;transition:width .9s}
.rc-neon .nn-texts{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-neon .nn-text{background:#141830;border:1px solid #262c4a;border-radius:10px;padding:12px 14px}
.rc-neon .nn-text .tx-label{font-size:.7em;font-weight:800;color:var(--c1);margin-bottom:4px;letter-spacing:.08em}
.rc-neon .nn-text .tx-body{font-size:.84em;line-height:1.65;color:#c9cee8}
.rc-neon .nn-foot{padding:10px;text-align:center;font-size:.66em;color:#5a6089;border-top:1px solid #262c4a;letter-spacing:.14em;position:relative}

/* ---------- LOVE: 핑크 감성 ---------- */
body.layout-love{background:#fdf2f6}
@media (prefers-color-scheme: dark){body.layout-love{background:#1c1016}}
.layout-love .panel,.layout-love .guide li{background:#fff;border-color:#fbdce8}
@media (prefers-color-scheme: dark){.layout-love .panel,.layout-love .guide li{background:#261720;border-color:#472736}}
.rc-love{background:linear-gradient(170deg,#fff5f9,#ffe9f2);color:#4a2436;border:1px solid #fbd0e2;border-radius:26px;position:relative;overflow:hidden}
.rc-love::before{content:'♥ ♥ ♥';position:absolute;top:8px;right:14px;color:rgba(236,72,153,.14);font-size:22px;letter-spacing:4px}
.rc-love .lv-head{padding:16px 20px 0;display:flex;justify-content:space-between;align-items:center}
.rc-love .lv-brand{font-weight:900;font-size:.84em;color:#db2777}
.rc-love .lv-svc{font-size:.7em;font-weight:700;color:#e18ab1}
.rc-love .lv-body{padding:18px 20px;text-align:center}
.rc-love .lv-photo-ring{width:132px;height:132px;margin:4px auto 12px;border-radius:50%;padding:5px;background:conic-gradient(from 0deg,var(--c1),var(--c2),var(--c1));position:relative}
.rc-love .lv-photo-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid #fff}
.rc-love .lv-photo-ring::after{content:'💘';position:absolute;bottom:-2px;right:-2px;font-size:30px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}
.rc-love .lv-hearts{margin-top:8px;position:relative;display:inline-block;font-size:27px;letter-spacing:3px;line-height:1}
.rc-love .lv-hearts .h-bg{color:#f3cfdd}
.rc-love .lv-hearts .h-fill{position:absolute;left:0;top:0;white-space:nowrap;overflow:hidden;color:#e11d48;width:0;transition:width .9s}
.rc-love .lv-score{margin-top:6px;font-weight:900;font-size:1.9em;color:#db2777;letter-spacing:-.02em}
.rc-love .lv-score small{font-size:.42em;font-weight:700;color:#c0688f;display:block}
.rc-love .lv-rank{font-size:1.22em;font-weight:900;margin-top:8px;color:#701a3f}
.rc-love .lv-verdict{display:inline-block;margin-top:8px;padding:5px 16px;border-radius:99px;background:linear-gradient(90deg,var(--c1),var(--c2));color:#fff;font-size:.78em;font-weight:800}
.rc-love .lv-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc-love .lv-mood span{font-size:.73em;font-weight:700;padding:4px 12px;border-radius:99px;background:#fff;color:#db2777;border:1px solid #f7c6da}
.rc-love .lv-lanes{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:10px}
.rc-love .lv-lane .ln-top{display:flex;justify-content:space-between;font-size:.77em;font-weight:800;color:#9d5674;margin-bottom:4px}
.rc-love .lv-lane .ln-track{height:9px;background:#fbe3ee;border-radius:99px;overflow:hidden}
.rc-love .lv-lane .ln-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#f472b6,#e11d48);width:0;transition:width .8s}
.rc-love .lv-texts{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-love .lv-text{background:#fff;border:1px solid #fbd9e7;border-radius:16px;padding:12px 15px}
.rc-love .lv-text .tx-label{font-size:.71em;font-weight:900;color:#db2777;margin-bottom:4px}
.rc-love .lv-text .tx-body{font-size:.85em;line-height:1.68;color:#5d3346}
.rc-love .lv-foot{padding:11px;text-align:center;font-size:.68em;color:#d193ae;border-top:1px dashed #f7c6da;font-weight:700}
/* love-chat 변형: 카톡 말풍선 */
.rc-love .lv-chat{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px;background:#bacee0;border-radius:16px;padding:14px 12px}
.rc-love .lv-chat .bub{max-width:88%;padding:9px 13px;border-radius:14px;font-size:.84em;line-height:1.6;position:relative}
.rc-love .lv-chat .bub .b-label{font-size:.72em;font-weight:800;opacity:.6;margin-bottom:3px}
.rc-love .lv-chat .bub.left{background:#fff;color:#333;align-self:flex-start;border-top-left-radius:4px}
.rc-love .lv-chat .bub.right{background:#fee500;color:#3a2929;align-self:flex-end;border-top-right-radius:4px}

/* ---------- DANGER: 경고 테이프 ---------- */
body.layout-danger{background:#16090b}
body.layout-danger .site-head{background:rgba(22,9,11,.85)}
.layout-danger,.layout-danger .svc-hero .sub{color:#f3dfe2}
.layout-danger .svc-hero h1{color:#fff}
.layout-danger .panel,.layout-danger .guide li{background:#211015;border-color:#43222b;color:#f3dfe2}
.layout-danger .guide li{color:#c99ba6}.layout-danger .guide li b{color:#fff}
.layout-danger .warn-box{background:#2c1218;color:#e58ba0}
.rc-danger{background:#180c10;color:#f5e6ea;border-radius:14px;border:1px solid #3d1e27;overflow:hidden;position:relative}
.rc-danger .dg-tape{height:22px;background:repeating-linear-gradient(-45deg,#facc15 0 16px,#111 16px 32px);opacity:.92}
.rc-danger .dg-head{display:flex;justify-content:space-between;padding:13px 18px;font-size:.78em;font-weight:900;letter-spacing:.16em;color:#fca5a5}
.rc-danger .dg-head .blink{animation:dgblink 1.1s steps(2) infinite}
@keyframes dgblink{50%{opacity:.25}}
.rc-danger .dg-body{padding:6px 20px 20px;text-align:center}
.rc-danger .dg-photo-wrap{display:inline-block;position:relative;margin-bottom:10px}
.rc-danger .dg-photo{width:128px;height:150px;object-fit:cover;border:3px solid #7f1d1d;border-radius:6px;filter:contrast(1.06)}
.rc-danger .dg-photo-tag{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%) rotate(-3deg);background:#dc2626;color:#fff;font-size:.62em;font-weight:900;letter-spacing:.22em;padding:3px 12px;border-radius:3px}
.rc-danger .dg-rank{font-size:1.3em;font-weight:900;margin-top:14px;color:#fff}
.rc-danger .dg-verdict{display:inline-block;margin-top:10px;padding:6px 18px;border:2.5px solid #ef4444;border-radius:6px;color:#ef4444;font-weight:900;font-size:.92em;letter-spacing:.16em;transform:rotate(-4deg);text-transform:uppercase}
.rc-danger .dg-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:14px}
.rc-danger .dg-mood span{font-size:.71em;font-weight:800;padding:4px 11px;background:#2a1219;color:#f9a8b8;border:1px solid #59202d;border-radius:4px}
.rc-danger .dg-texts{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-danger .dg-text{background:#221019;border-left:4px solid #ef4444;border-radius:8px;padding:11px 14px}
.rc-danger .dg-text .tx-label{font-size:.7em;font-weight:900;color:#f87171;letter-spacing:.1em;margin-bottom:4px}
.rc-danger .dg-text .tx-body{font-size:.84em;line-height:1.66;color:#e8ccd3}
.rc-danger .dg-meter-zone{color:#fca5a5}
.rc-danger .dg-lanes{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:10px}
.rc-danger .dg-lane .ln-top{display:flex;justify-content:space-between;font-size:.76em;font-weight:900;color:#f9a8b8;letter-spacing:.06em;margin-bottom:4px}
.rc-danger .dg-lane .ln-top .ln-val{color:#facc15}
.rc-danger .dg-lane .ln-track{height:9px;background:#2a1219;border:1px solid #59202d;border-radius:3px;overflow:hidden}
.rc-danger .dg-lane .ln-fill{height:100%;background:repeating-linear-gradient(-45deg,#ef4444 0 10px,#b91c1c 10px 20px);width:0;transition:width .8s cubic-bezier(.2,.8,.2,1)}

/* ---------- SCAN: 연구소 HUD ---------- */
.rc-scan{background:#fff;color:#17203a;border:1px solid #dfe4f2;border-radius:18px;overflow:hidden}
@media (prefers-color-scheme: dark){.rc-scan{background:#fff}}
.rc-scan .sc-head{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;background:#0f1730;color:#c6d3f7;font-size:.76em;font-weight:800;letter-spacing:.12em}
.rc-scan .sc-head .dot{color:#4ade80}
.rc-scan .sc-body{padding:20px;text-align:center}
.rc-scan .sc-photo-wrap{position:relative;display:inline-block;padding:9px}
.rc-scan .sc-photo{width:128px;height:128px;object-fit:cover;border-radius:10px}
.rc-scan .sc-photo-wrap::before,.rc-scan .sc-photo-wrap::after{content:'';position:absolute;width:26px;height:26px;border:3px solid var(--c1)}
.rc-scan .sc-photo-wrap::before{left:0;top:0;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
.rc-scan .sc-photo-wrap::after{right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 6px 0}
.rc-scan .sc-score{margin-top:10px;font-size:.78em;color:#8b93ad;font-weight:700}
.rc-scan .sc-score b{display:block;font-size:2.6em;font-weight:900;color:var(--c1);letter-spacing:-.03em;line-height:1.15;font-feature-settings:'tnum'}
.rc-scan .sc-rank{font-size:1.24em;font-weight:900;margin-top:6px}
.rc-scan .sc-verdict{display:inline-block;margin-top:8px;padding:4px 14px;border-radius:6px;background:color-mix(in srgb,var(--c1) 12%,#fff);color:var(--c1);border:1px solid color-mix(in srgb,var(--c1) 35%,#fff);font-size:.78em;font-weight:800}
.rc-scan .sc-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc-scan .sc-mood span{font-size:.72em;font-weight:700;padding:4px 11px;border-radius:6px;background:#eef1fa;color:#3c4666}
.rc-scan .sc-lanes{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:10px}
.rc-scan .sc-lane .ln-top{display:flex;justify-content:space-between;font-size:.76em;font-weight:800;color:#4c5877;margin-bottom:4px}
.rc-scan .sc-lane .ln-track{display:flex;gap:3px;height:9px}
.rc-scan .sc-lane .ln-seg{flex:1;background:#e8ecf7;border-radius:2px}
.rc-scan .sc-lane .ln-seg.on{background:linear-gradient(180deg,var(--c1),var(--c2))}
.rc-scan .sc-texts{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-scan .sc-text{border:1px solid #e4e8f4;border-left:4px solid var(--c1);border-radius:8px;padding:11px 14px;background:#fafbfe}
.rc-scan .sc-text .tx-label{font-size:.7em;font-weight:900;color:var(--c1);letter-spacing:.06em;margin-bottom:4px}
.rc-scan .sc-text .tx-body{font-size:.85em;line-height:1.66;color:#333c56}
.rc-scan .sc-foot{padding:10px;background:#0f1730;color:#5e6b96;font-size:.64em;letter-spacing:.22em;text-align:center;font-weight:800}

/* ---------- DEX: 도감 카드 ---------- */
body.layout-dex{background:#f2f6ee}
@media (prefers-color-scheme: dark){body.layout-dex{background:#12160f}}
.rc-dex{border-radius:22px;overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--c1) 88%,#fff),color-mix(in srgb,var(--c2) 88%,#000));padding:10px;color:#243018}
.rc-dex .dx-inner{background:#fffdf4;border-radius:15px;overflow:hidden}
.rc-dex .dx-photo-zone{position:relative;aspect-ratio:4/3;overflow:hidden}
.rc-dex .dx-photo{width:100%;height:100%;object-fit:cover}
.rc-dex .dx-photo-grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(12,18,6,.82))}
.rc-dex .dx-no{position:absolute;top:10px;left:12px;background:rgba(0,0,0,.55);color:#ffe9a8;font-size:.7em;font-weight:900;padding:4px 10px;border-radius:99px;letter-spacing:.1em}
.rc-dex .dx-brand{position:absolute;top:10px;right:12px;background:rgba(0,0,0,.55);color:#fff;font-size:.66em;font-weight:800;padding:4px 10px;border-radius:99px}
.rc-dex .dx-name{position:absolute;left:16px;right:16px;bottom:12px;color:#fff;text-align:left}
.rc-dex .dx-name .dx-rank{font-size:1.42em;font-weight:900;text-shadow:0 2px 10px rgba(0,0,0,.5);line-height:1.3}
.rc-dex .dx-name .dx-sync{font-size:.78em;font-weight:800;color:#ffe9a8;margin-top:2px}
.rc-dex .dx-body{padding:16px 18px;text-align:center}
.rc-dex .dx-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.rc-dex .dx-mood span{font-size:.73em;font-weight:800;padding:5px 13px;border-radius:99px;background:color-mix(in srgb,var(--c1) 16%,#fff);color:color-mix(in srgb,var(--c1) 70%,#000);border:1px solid color-mix(in srgb,var(--c1) 34%,#fff)}
.rc-dex .dx-lanes{margin-top:14px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-dex .dx-lane .ln-top{display:flex;justify-content:space-between;font-size:.76em;font-weight:800;color:#5d6b48;margin-bottom:4px}
.rc-dex .dx-lane .ln-track{height:11px;background:#edf0e2;border-radius:99px;overflow:hidden;border:1px solid #dde3cb}
.rc-dex .dx-lane .ln-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--c1),var(--c2));width:0;transition:width .8s}
.rc-dex .dx-texts{margin-top:14px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-dex .dx-text{background:#f7f9ee;border:1px solid #e2e8d0;border-radius:12px;padding:12px 14px}
.rc-dex .dx-text .tx-label{font-size:.7em;font-weight:900;color:color-mix(in srgb,var(--c1) 72%,#000);margin-bottom:4px}
.rc-dex .dx-text .tx-body{font-size:.85em;line-height:1.66;color:#3d4a2c}
.rc-dex .dx-foot{padding:10px;text-align:center;font-size:.66em;color:#8a9573;font-weight:800;letter-spacing:.12em;background:#f4f7ea;border-top:1px solid #e2e8d0}
/* 국기 (face-nation 등) — 국가명 앞 인라인 SVG */
.ep-flag{display:inline-block;width:1.3em;height:auto;vertical-align:-.16em;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.14);margin-right:.4em}
.rc-dex .dx-name .dx-rank .dx-flag{width:1.1em;vertical-align:-.1em;box-shadow:0 0 0 1px rgba(255,255,255,.55),0 1px 5px rgba(0,0,0,.45);margin-right:.44em}
.rc-dex .dx-text .tx-body .ep-flag{width:1.25em}

/* ---------- MEDICAL: 진단서 ---------- */
body.layout-medical{background:#eef5f8}
@media (prefers-color-scheme: dark){body.layout-medical{background:#0f1619}}
.layout-medical .panel,.layout-medical .guide li{background:#fff;border-color:#d7e6ee}
@media (prefers-color-scheme: dark){.layout-medical .panel,.layout-medical .guide li{background:#16242b;border-color:#28414d}}
.rc-med{background:#fff;color:#20313a;border:1px solid #cfe0ea;border-radius:12px;overflow:hidden}
.rc-med .md-head{background:linear-gradient(90deg,var(--c1),var(--c2));padding:13px 18px;color:#fff;display:flex;align-items:center;justify-content:space-between}
.rc-med .md-head .md-title{font-weight:900;font-size:.95em;letter-spacing:.06em}
.rc-med .md-head .md-cross{font-size:1.1em}
.rc-med .md-body{padding:18px}
.rc-med .md-patient{display:flex;gap:14px;border:1px solid #dce8f0;border-radius:10px;padding:12px;background:#f8fbfd}
.rc-med .md-photo{width:84px;height:104px;object-fit:cover;border-radius:6px;border:1px solid #c3d7e3}
.rc-med .md-pinfo{flex:1;font-size:.82em;display:flex;flex-direction:column;justify-content:center;gap:5px;text-align:left}
.rc-med .md-pinfo .pi-line b{color:#65808f;font-weight:800;font-size:.88em;margin-right:8px}
.rc-med .md-widget{margin:18px auto 4px;text-align:center}
.rc-med .md-rank{text-align:center;font-size:1.2em;font-weight:900;margin-top:10px}
.rc-med .md-verdict{display:block;text-align:center;margin-top:8px}
.rc-med .md-verdict span{display:inline-block;padding:5px 16px;border-radius:8px;background:color-mix(in srgb,var(--c1) 10%,#fff);border:1.5px dashed var(--c1);color:var(--c1);font-weight:900;font-size:.82em}
.rc-med .md-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc-med .md-mood span{font-size:.72em;font-weight:700;padding:4px 11px;border-radius:99px;background:#eff6fa;color:#33718e;border:1px solid #d3e5ee}
.rc-med .md-lanes{margin-top:16px;border:1px solid #dce8f0;border-radius:10px;overflow:hidden}
.rc-med .md-lane{display:flex;align-items:center;gap:10px;padding:9px 13px;font-size:.8em;border-bottom:1px solid #e8f1f6}
.rc-med .md-lane:last-child{border-bottom:0}
.rc-med .md-lane .ml-label{width:104px;font-weight:800;color:#40606f;flex-shrink:0;text-align:left}
.rc-med .md-lane .ln-track{flex:1;height:8px;background:#e5eff5;border-radius:99px;overflow:hidden}
.rc-med .md-lane .ln-fill{height:100%;background:linear-gradient(90deg,var(--c1),var(--c2));border-radius:99px;width:0;transition:width .8s}
.rc-med .md-lane .ml-val{width:44px;text-align:right;font-weight:900;color:var(--c1);font-feature-settings:'tnum'}
.rc-med .md-texts{margin-top:14px;display:flex;flex-direction:column;gap:9px;text-align:left}
.rc-med .md-text{border:1px solid #dce8f0;border-radius:10px;padding:12px 14px;background:#fbfdfe}
.rc-med .md-text .tx-label{font-size:.7em;font-weight:900;color:var(--c1);margin-bottom:4px}
.rc-med .md-text .tx-body{font-size:.85em;line-height:1.68;color:#31485a}
.rc-med .md-foot{padding:12px;text-align:center;border-top:2px solid var(--c1);font-size:.74em;color:#65808f;font-weight:700}
.rc-med .md-foot .f-stamp{display:inline-grid;place-items:center;width:30px;height:30px;border:2px solid #dc2626;color:#dc2626;border-radius:50%;font-size:.7em;font-weight:900;transform:rotate(9deg);margin-left:6px;vertical-align:middle}
/* medical 특수 위젯 */
.w-traffic{display:inline-flex;gap:12px;background:#26313a;border-radius:99px;padding:10px 16px}
.w-traffic .tl{width:42px;height:42px;border-radius:50%;background:#3c4a55;display:grid;place-items:center;font-size:17px;opacity:.32;transition:all .4s}
.w-traffic .tl.on{opacity:1;box-shadow:0 0 18px currentColor}
.w-traffic .tl.g{background:#16a34a;color:#16a34a}.w-traffic .tl.y{background:#eab308;color:#eab308}.w-traffic .tl.r{background:#dc2626;color:#dc2626}
.w-battery{display:inline-block;position:relative}
.w-battery .b-shell{width:190px;height:74px;border:4px solid #35505f;border-radius:12px;padding:5px;position:relative;background:#f2f8fb}
.w-battery .b-shell::after{content:'';position:absolute;right:-14px;top:50%;transform:translateY(-50%);width:10px;height:28px;background:#35505f;border-radius:0 4px 4px 0}
.w-battery .b-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--c1),var(--c2));width:0;transition:width 1s}
.w-battery .b-num{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:1.35em;color:#12242e;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.w-storage{width:min(320px,100%);margin:0 auto;text-align:left}
.w-storage .s-top{display:flex;justify-content:space-between;font-size:.78em;font-weight:800;color:#40606f;margin-bottom:6px}
.w-storage .s-track{height:22px;border-radius:7px;background:#e5eff5;overflow:hidden;border:1px solid #cfe0ea}
.w-storage .s-fill{height:100%;background:repeating-linear-gradient(-45deg,var(--c1) 0 10px,color-mix(in srgb,var(--c1) 72%,#fff) 10px 20px);width:0;transition:width 1s}
.w-storage .s-note{margin-top:6px;font-size:.72em;color:#7b93a1;font-weight:600}
.w-expiry{display:inline-block;border:3px dashed #dc2626;color:#dc2626;border-radius:10px;padding:12px 22px;transform:rotate(-3deg);background:rgba(220,38,38,.04)}
.w-expiry .e-label{font-size:.72em;font-weight:900;letter-spacing:.18em}
.w-expiry .e-date{font-size:1.7em;font-weight:900;font-feature-settings:'tnum';margin-top:2px}

/* ---------- CLINIC: 얼굴 공사 중지위원회 ---------- */
body.layout-clinic{background:#fff4cc}
@media (prefers-color-scheme: dark){body.layout-clinic{background:#16140e}}
.layout-clinic .panel,.layout-clinic .guide li{background:#fffdf4;border-color:#17141f}
@media (prefers-color-scheme: dark){.layout-clinic .panel,.layout-clinic .guide li{background:#242016;border-color:#e8dfc4}}
.rc-clinic{background:#fffdf4;color:#17141f;border:2px solid #17141f;border-radius:12px;overflow:hidden;box-shadow:7px 7px 0 #17141f}
.rc-clinic .cl-tape{overflow:hidden;white-space:nowrap;background:repeating-linear-gradient(-45deg,#ffe600 0 15px,#17141f 15px 30px);color:#17141f;text-shadow:1px 1px 0 #ffe600,-1px -1px 0 #ffe600;padding:8px 14px;font-size:.66em;font-weight:950;letter-spacing:.1em;border-bottom:2px solid #17141f}
.rc-clinic .cl-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;background:#fff6be;border-bottom:2px solid #17141f}
.rc-clinic .cl-head div{display:flex;flex-direction:column;text-align:left}
.rc-clinic .cl-head div span{font-size:.62em;font-weight:850;color:#766c48;letter-spacing:.12em}
.rc-clinic .cl-head div strong{font-size:1.02em;font-weight:950;letter-spacing:-.03em}
.rc-clinic .cl-seal{display:grid;place-items:center;width:48px;height:48px;border:3px double #e11d48;border-radius:50%;color:#e11d48;font-size:.64em;font-weight:950;line-height:1.1;transform:rotate(9deg)}
.rc-clinic .cl-body{padding:18px}
.rc-clinic .cl-profile{display:flex;gap:15px;align-items:stretch}
.rc-clinic .cl-photo-wrap{width:130px;flex:0 0 130px;border:2px solid #17141f;background:#fff;padding:5px;position:relative;transform:rotate(-1.5deg);box-shadow:3px 3px 0 #d8cd99}
.rc-clinic .cl-photo{width:100%;height:142px;object-fit:cover;filter:saturate(.9)}
.rc-clinic .cl-photo-wrap span{display:block;padding:5px 2px 0;text-align:center;font-size:.61em;font-weight:900;letter-spacing:.16em}
.rc-clinic .cl-summary{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;text-align:left}
.rc-clinic .cl-rank{font-size:1.26em;font-weight:950;line-height:1.25;letter-spacing:-.04em;color:#e11d48}
.rc-clinic .cl-verdict{font-size:.78em;font-weight:750;line-height:1.55;margin-top:6px;color:#554e39}
.rc-clinic .cl-score{display:flex;align-items:baseline;gap:7px;margin-top:10px;padding-top:8px;border-top:2px dashed #d8cd99}
.rc-clinic .cl-score b{font-size:2.25em;line-height:1;font-weight:950;color:#17141f}
.rc-clinic .cl-score span{font-size:.69em;font-weight:900;color:#766c48}
.rc-clinic .cl-grand-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;padding:13px 14px;border:2px solid #17141f;border-radius:9px;background:#ffe600;box-shadow:3px 3px 0 #17141f;text-align:left;transform:rotate(-.35deg)}
.rc-clinic .cl-grand-total>div{display:flex;flex-direction:column}
.rc-clinic .cl-grand-total span{font-size:.77em;font-weight:950}
.rc-clinic .cl-grand-total small{font-size:.58em;font-weight:750;opacity:.65;margin-top:2px}
.rc-clinic .cl-grand-total>strong{font-size:1.42em;font-weight:950;white-space:nowrap;color:#e11d48}
.rc-clinic .cl-consultations{display:flex;flex-direction:column;gap:13px;margin-top:17px}
.rc-clinic .cl-consult{--doctor:#e11d48;border:2px solid #17141f;border-radius:10px;background:#fff;overflow:hidden;box-shadow:3px 3px 0 #d8cd99;text-align:left}
.rc-clinic .cl-consult-eyes_nose{--doctor:#7c3aed}
.rc-clinic .cl-consult-petit_skin{--doctor:#0f9f91}
.rc-clinic .cl-doctor-head{display:flex;align-items:center;gap:9px;padding:10px 11px;border-bottom:2px solid #17141f;background:color-mix(in srgb,var(--doctor) 14%,#fff)}
.rc-clinic .cl-avatar{flex:0 0 39px;width:39px;height:39px;display:grid;place-items:center;border:1.5px solid #17141f;border-radius:9px;background:#fff;font-size:20px;box-shadow:1.5px 1.5px 0 #17141f}
.rc-clinic .cl-doctor-head>div{display:flex;flex:1;min-width:0;flex-direction:column;line-height:1.08}
.rc-clinic .cl-doctor-head small{font-size:.6em;font-weight:900;color:var(--doctor);letter-spacing:.05em}
.rc-clinic .cl-doctor-head b{font-size:.85em;font-weight:950;margin-top:3px}
.rc-clinic .cl-doctor-head em{font-size:.54em;font-style:normal;font-weight:750;color:#766c48;margin-top:3px}
.rc-clinic .cl-doctor-head>strong{font-size:.87em;font-weight:950;color:var(--doctor);white-space:nowrap}
.rc-clinic .cl-opinion{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px dashed #cfc5a3}
.rc-clinic .cl-opinion>div{padding:10px 11px}
.rc-clinic .cl-opinion>div+div{border-left:1px dashed #cfc5a3}
.rc-clinic .cl-opinion b{display:block;font-size:.61em;font-weight:950;color:var(--doctor);margin-bottom:3px}
.rc-clinic .cl-opinion p{font-size:.73em;line-height:1.55;color:#403a2d}
.rc-clinic .cl-quote-table{margin:9px;border:1.5px solid #17141f;border-radius:7px;overflow:hidden}
.rc-clinic .cl-quote-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 9px;border-bottom:1px solid #ded6ba;background:#fffdf6}
.rc-clinic .cl-quote-row>span{display:flex;min-width:0;flex-direction:column}
.rc-clinic .cl-quote-row b{font-size:.72em;font-weight:900}
.rc-clinic .cl-quote-row small{font-size:.59em;line-height:1.45;color:#766c48;margin-top:2px}
.rc-clinic .cl-quote-row>strong{font-size:.72em;font-weight:950;color:var(--doctor);white-space:nowrap}
.rc-clinic .cl-quote-th{background:#17141f;color:#fff;font-size:.6em;font-weight:900;letter-spacing:.04em}
.rc-clinic .cl-quote-th span:last-child{text-align:right}
.rc-clinic .cl-no-work{background:#eefbf4}
.rc-clinic .cl-no-work>strong{color:#059669}
.rc-clinic .cl-subtotal{display:flex;align-items:center;justify-content:space-between;padding:8px 9px;background:color-mix(in srgb,var(--doctor) 9%,#fff)}
.rc-clinic .cl-subtotal span{font-size:.65em;font-weight:900}
.rc-clinic .cl-subtotal b{font-size:.78em;color:var(--doctor)}
.rc-clinic .cl-quote{display:flex;flex-direction:column;text-align:left;margin-top:17px;border:2px solid #17141f;padding:12px 14px;background:#fff;border-radius:8px;position:relative}
.rc-clinic .cl-quote::after{content:'견적';position:absolute;right:12px;top:10px;border:2px solid #e11d48;color:#e11d48;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:.65em;font-weight:950;transform:rotate(-9deg)}
.rc-clinic .cl-quote span{font-size:.68em;font-weight:850;color:#766c48}
.rc-clinic .cl-quote strong{font-size:1.42em;font-weight:950;margin-top:2px;padding-right:50px;color:#17141f}
.rc-clinic .cl-quote small{font-size:.61em;color:#8a8060;margin-top:3px}
.rc-clinic .cl-mood{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}
.rc-clinic .cl-mood span{font-size:.69em;font-weight:850;padding:4px 10px;border:1.5px solid #17141f;border-radius:99px;background:#ffe600;color:#17141f}
.rc-clinic .cl-lanes{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.rc-clinic .cl-lane{padding:9px 10px;border:1.5px solid #d8cd99;border-radius:8px;background:#fffaf0}
.rc-clinic .cl-lane>div:first-child{display:flex;justify-content:space-between;font-size:.68em;font-weight:850;margin-bottom:5px}
.rc-clinic .cl-lane>div:first-child b{color:#e11d48}
.rc-clinic .cl-lane .ln-track{height:7px;background:#eee5c3;border-radius:99px;overflow:hidden}
.rc-clinic .cl-lane .ln-fill{height:100%;width:0;background:repeating-linear-gradient(90deg,#17141f 0 7px,#ffe600 7px 12px);transition:width .8s;border-radius:99px}
.rc-clinic .cl-texts{display:flex;flex-direction:column;gap:9px;margin-top:15px;text-align:left}
.rc-clinic .cl-text{border-left:5px solid #17141f;background:#fff6c8;padding:11px 13px;border-radius:0 8px 8px 0}
.rc-clinic .cl-text:nth-child(even){border-left-color:#e11d48;background:#fff0f3}
.rc-clinic .cl-text .tx-label{font-size:.68em;font-weight:950;color:#e11d48;margin-bottom:4px;letter-spacing:.04em}
.rc-clinic .cl-text .tx-body{font-size:.83em;line-height:1.67;color:#403a2d}
.rc-clinic .cl-disclaimer{margin-top:14px;padding:9px 11px;border:1px dashed #a39978;border-radius:7px;font-size:.62em;line-height:1.55;color:#766c48;text-align:left}
.rc-clinic .cl-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:2px solid #17141f;background:#17141f;color:#fff;font-size:.66em;font-weight:800}
.rc-clinic .cl-foot b{color:#ffe600;letter-spacing:.08em}
@media(max-width:400px){
  .rc-clinic .cl-photo-wrap{width:108px;flex-basis:108px}.rc-clinic .cl-photo{height:124px}
  .rc-clinic .cl-rank{font-size:1.08em}.rc-clinic .cl-lanes{grid-template-columns:1fr}
  .rc-clinic .cl-grand-total{align-items:flex-start;flex-direction:column}.rc-clinic .cl-grand-total>strong{font-size:1.25em}
  .rc-clinic .cl-opinion{grid-template-columns:1fr}.rc-clinic .cl-opinion>div+div{border-left:0;border-top:1px dashed #cfc5a3}
}

/* ---------- PAPER: 생활기록부 ---------- */
body.layout-paper{background:#eef3ec}
@media (prefers-color-scheme: dark){body.layout-paper{background:#131711}}
.rc-paper{background:#fbfdf6;color:#273222;border:2px solid #9db38f;border-radius:6px;overflow:hidden}
.rc-paper .pp-head{text-align:center;padding:16px;border-bottom:2px solid #9db38f;position:relative}
.rc-paper .pp-head .pp-title{font-size:1.2em;font-weight:900;letter-spacing:.4em;text-indent:.4em}
.rc-paper .pp-head .pp-year{font-size:.68em;color:#7b8f6d;font-weight:700;margin-top:3px}
.rc-paper .pp-body{padding:18px}
.rc-paper .pp-row{display:flex;gap:14px}
.rc-paper .pp-photo{width:92px;height:118px;object-fit:cover;border:1px solid #9db38f;padding:3px;background:#fff}
.rc-paper .pp-info{flex:1;font-size:.84em;text-align:left}
.rc-paper .pp-info .pl{display:flex;border-bottom:1px dashed #cdd9c4;padding:7px 2px}
.rc-paper .pp-info .pl b{width:92px;color:#7b8f6d;flex-shrink:0;font-size:.9em}
.rc-paper .pp-sec{margin-top:13px;border:1px solid #b9c9ad;background:#f4f8ee;border-radius:4px;padding:12px 14px;text-align:left}
.rc-paper .pp-sec .tx-label{font-weight:900;font-size:.76em;color:#5d7350;letter-spacing:.12em;margin-bottom:5px}
.rc-paper .pp-sec .tx-body{font-size:.85em;line-height:1.7;color:#33422a}
.rc-paper .pp-lanes{margin-top:13px;border:1px solid #b9c9ad;border-radius:4px;overflow:hidden}
.rc-paper .pp-lane{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:.8em;border-bottom:1px solid #dde7d4;background:#fff}
.rc-paper .pp-lane:last-child{border-bottom:0}
.rc-paper .pp-lane .ml-label{width:100px;font-weight:800;color:#5d7350;text-align:left;flex-shrink:0}
.rc-paper .pp-lane .ln-track{flex:1;height:8px;background:#e9efe2;border-radius:2px;overflow:hidden}
.rc-paper .pp-lane .ln-fill{height:100%;background:#6a8f57;width:0;transition:width .8s}
.rc-paper .pp-lane .ml-val{width:42px;text-align:right;font-weight:900;color:#426033}
.rc-paper .pp-stamp{position:absolute;right:14px;top:12px;width:58px;height:58px;border:3px solid #b91c1c;border-radius:50%;display:grid;place-items:center;color:#b91c1c;font-size:.62em;font-weight:900;transform:rotate(-10deg);line-height:1.2;text-align:center;opacity:.85}
.rc-paper .pp-foot{padding:11px;text-align:center;font-size:.7em;color:#7b8f6d;border-top:1px solid #b9c9ad;font-weight:700;letter-spacing:.1em}

/* ---------- RETRO: VHS ---------- */
body.layout-retro{background:#0d0d11}
body.layout-retro .site-head{background:rgba(13,13,17,.85)}
.layout-retro,.layout-retro .svc-hero .sub{color:#e8e6ef}
.layout-retro .svc-hero h1{color:#fff}
.layout-retro .panel,.layout-retro .guide li{background:#17171e;border-color:#2c2c38;color:#e8e6ef}
.layout-retro .guide li{color:#a7a4b8}.layout-retro .guide li b{color:#fff}
.layout-retro .warn-box{background:#1d1d26;color:#8f8ca3}
.rc-retro{background:#101014;color:#eae8f2;border-radius:10px;border:1px solid #2e2e3a;overflow:hidden;position:relative}
.rc-retro::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 2px,transparent 2px 4px)}
.rc-retro .rt-head{display:flex;justify-content:space-between;padding:13px 16px;font-size:.74em;font-weight:900;letter-spacing:.14em;color:#9d9ab5}
.rc-retro .rt-head .rec{color:#ef4444;animation:dgblink 1s steps(2) infinite}
.rc-retro .rt-body{padding:8px 20px 20px;text-align:center;position:relative;z-index:1}
.rc-retro .rt-polaroid{display:inline-block;background:#f5f2e9;padding:10px 10px 30px;transform:rotate(-2.5deg);box-shadow:0 10px 26px rgba(0,0,0,.5);position:relative}
.rc-retro .rt-polaroid img{width:150px;height:150px;object-fit:cover;display:block;filter:sepia(.28) contrast(1.05)}
.rc-retro .rt-polaroid .tape{position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(2deg);width:74px;height:20px;background:rgba(250,240,190,.75)}
.rc-retro .rt-title{margin-top:16px;font-size:1.3em;font-weight:900;color:#fff;text-shadow:2px 0 #ef4444,-2px 0 #3b82f6}
.rc-retro .rt-score{margin-top:8px;font-size:.78em;color:#8f8ca3;font-weight:700}
.rc-retro .rt-score b{font-size:1.9em;color:#facc15;display:block;font-weight:900}
.rc-retro .rt-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.rc-retro .rt-mood span{font-size:.71em;font-weight:800;padding:4px 11px;background:#1b1b24;color:#c3c0d6;border:1px solid #32323f;border-radius:3px}
.rc-retro .rt-lanes{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:10px}
.rc-retro .rt-lane .ln-top{display:flex;justify-content:space-between;font-size:.75em;font-weight:800;color:#a7a4b8;margin-bottom:4px}
.rc-retro .rt-lane .ln-track{height:8px;background:#1d1d26;overflow:hidden}
.rc-retro .rt-lane .ln-fill{height:100%;background:repeating-linear-gradient(90deg,#facc15 0 8px,#eab308 8px 16px);width:0;transition:width .8s}
.rc-retro .rt-texts{margin-top:16px;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-retro .rt-text{background:rgba(0,0,0,.5);border-radius:6px;padding:11px 14px;border:1px solid #26262f}
.rc-retro .rt-text .tx-label{font-size:.7em;font-weight:900;color:#facc15;letter-spacing:.12em;margin-bottom:4px}
.rc-retro .rt-text .tx-body{font-size:.84em;line-height:1.68;color:#d6d3e4}
.rc-retro .rt-foot{padding:10px;text-align:center;font-size:.66em;color:#5f5c73;letter-spacing:.2em;font-weight:800}

/* ---------- WEATHER: 기상예보 앱 (w-sunny/cloudy/rain/storm/fog/rainbow 하늘 전환) ---------- */
.rc-weather{background:#f4f7fb;color:#1c2b46;border:1px solid #dbe4f0;border-radius:20px;overflow:hidden}
.rc-weather .wt-sky{position:relative;padding:18px 18px 22px;color:#fff;overflow:hidden}
.w-sunny .wt-sky{background:linear-gradient(165deg,#2f8fe8 0%,#5fb5f6 45%,#a8dcfd 100%)}
.w-cloudy .wt-sky{background:linear-gradient(165deg,#576b85 0%,#8296ad 55%,#aebccb 100%)}
.w-rain .wt-sky{background:linear-gradient(165deg,#27374f 0%,#3d5473 55%,#5a7392 100%)}
.w-storm .wt-sky{background:linear-gradient(165deg,#141826 0%,#2b3049 55%,#42476b 100%)}
.w-fog .wt-sky{background:linear-gradient(165deg,#97a1ae 0%,#b3bcc7 55%,#d3d9e0 100%);color:#273240}
.w-rainbow .wt-sky{background:linear-gradient(165deg,#3f9eec 0%,#7ec3f5 55%,#c8e8ff 100%)}
.rc-weather .wt-fx{position:absolute;inset:-14px;pointer-events:none}
.w-sunny .wt-fx{background:radial-gradient(circle at 80% 6%,rgba(255,243,178,.95) 0 30px,rgba(255,226,120,.5) 58px,transparent 130px);animation:wtsun 3.2s ease-in-out infinite}
@keyframes wtsun{0%,100%{opacity:.8}50%{opacity:1}}
.w-cloudy .wt-fx::before,.w-cloudy .wt-fx::after,.w-fog .wt-fx::before,.w-fog .wt-fx::after{content:'';position:absolute;background:rgba(255,255,255,.32);border-radius:99px;filter:blur(7px)}
.w-cloudy .wt-fx::before{width:160px;height:46px;top:30px;left:-34px;animation:wtdrift 9s ease-in-out infinite alternate}
.w-cloudy .wt-fx::after{width:120px;height:36px;top:88px;right:-26px;animation:wtdrift 12s ease-in-out infinite alternate-reverse}
@keyframes wtdrift{from{transform:translateX(0)}to{transform:translateX(44px)}}
.w-rain .wt-fx,.w-storm .wt-fx{background:repeating-linear-gradient(75deg,transparent 0 10px,rgba(255,255,255,.22) 10px 11.5px);animation:wtrain .6s linear infinite}
@keyframes wtrain{from{background-position:0 0}to{background-position:-13px 48px}}
.w-storm .wt-sky::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.9);opacity:0;animation:wtflash 5.2s infinite;pointer-events:none}
@keyframes wtflash{0%,93%,100%{opacity:0}94%{opacity:.5}95%{opacity:0}96.5%{opacity:.28}97%{opacity:0}}
.w-fog .wt-fx::before{width:220px;height:54px;top:44px;left:-40px;background:rgba(255,255,255,.55);animation:wtdrift 8s ease-in-out infinite alternate}
.w-fog .wt-fx::after{width:180px;height:44px;top:110px;right:-36px;background:rgba(255,255,255,.45);animation:wtdrift 11s ease-in-out infinite alternate-reverse}
.w-rainbow .wt-fx::before{content:'';position:absolute;left:50%;bottom:-150px;transform:translateX(-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(closest-side,transparent 52%,rgba(239,68,68,.5) 53% 57%,rgba(249,115,22,.5) 57% 61%,rgba(250,204,21,.5) 61% 65%,rgba(34,197,94,.5) 65% 69%,rgba(59,130,246,.5) 69% 73%,rgba(139,92,246,.5) 73% 77%,transparent 78%)}
.rc-weather .wt-topbar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.78em;font-weight:800;text-shadow:0 1px 3px rgba(0,0,0,.16)}
.w-fog .wt-topbar,.w-fog .wt-title,.w-fog .wt-cond,.w-fog .wt-temp,.w-fog .wt-sub{text-shadow:0 1px 2px rgba(255,255,255,.5)}
.rc-weather .wt-loc{max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-weather .wt-date{opacity:.92;font-weight:700;white-space:nowrap}
.rc-weather .wt-hero{position:relative;display:flex;align-items:center;gap:14px;margin-top:18px}
.rc-weather .wt-icon{font-size:62px;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}
.rc-weather .wt-temp-col{min-width:0}
.rc-weather .wt-temp{font-size:3.3em;font-weight:900;letter-spacing:-.04em;line-height:1;font-feature-settings:'tnum';text-shadow:0 2px 8px rgba(0,0,0,.2)}
.rc-weather .wt-temp sup{font-size:.46em;font-weight:800;vertical-align:top}
.rc-weather .wt-cond{margin-top:5px;font-weight:900;font-size:.98em;text-shadow:0 1px 4px rgba(0,0,0,.2)}
.rc-weather .wt-temp-label{font-size:.68em;font-weight:700;opacity:.88;margin-top:2px}
.rc-weather .wt-cam{margin-left:auto;position:relative;flex:0 0 auto}
.rc-weather .wt-cam img{width:84px;height:84px;object-fit:cover;border-radius:14px;border:2.5px solid rgba(255,255,255,.85);box-shadow:0 6px 16px rgba(0,0,0,.28);display:block}
.rc-weather .wt-cam span{position:absolute;left:50%;transform:translateX(-50%);bottom:-9px;background:#e11d48;color:#fff;font-size:.56em;font-weight:900;letter-spacing:.08em;padding:2px 8px;border-radius:99px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.rc-weather .wt-title{position:relative;margin-top:22px;font-size:1.32em;font-weight:900;letter-spacing:-.02em;text-shadow:0 2px 6px rgba(0,0,0,.22)}
.rc-weather .wt-sub{position:relative;margin-top:4px;font-size:.84em;font-weight:700;opacity:.93;text-shadow:0 1px 4px rgba(0,0,0,.18)}
.rc-weather .wt-alert{display:flex;align-items:center;gap:8px;padding:11px 16px;background:repeating-linear-gradient(-45deg,#ffd51c 0 12px,#ffc400 12px 24px);color:#171004;font-weight:900;font-size:.82em;border-top:2px solid #17141f;border-bottom:2px solid #17141f}
.rc-weather .wt-body{padding:16px 16px 6px}
.rc-weather .wt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rc-weather .wt-tile{background:#fff;border:1px solid #e1e8f2;border-radius:14px;padding:12px 13px;box-shadow:0 1px 4px rgba(28,43,70,.05)}
.rc-weather .wt-tile-top{font-size:.7em;font-weight:800;color:#5a6d8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-weather .wt-tile-val{font-size:1.5em;font-weight:900;margin:4px 0 7px;color:#1c2b46;font-feature-settings:'tnum'}
.rc-weather .wt-tile .ln-track{height:6px;background:#e8eef6;border-radius:99px;overflow:hidden}
.rc-weather .wt-tile .ln-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--c1),var(--c2));transition:width .8s}
.rc-weather .wt-mood{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.rc-weather .wt-mood span{font-size:.72em;font-weight:700;padding:4px 11px;border-radius:99px;background:#e3edf9;color:#33507a}
.rc-weather .wt-texts{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.rc-weather .wt-text{background:#fff;border:1px solid #e1e8f2;border-left:4px solid var(--c1);border-radius:12px;padding:12px 14px}
.rc-weather .wt-text .tx-label{font-size:.7em;font-weight:900;color:var(--c1);margin-bottom:4px}
.rc-weather .wt-text .tx-label::before{content:'🎙️ '}
.rc-weather .wt-text .tx-body{font-size:.85em;line-height:1.68;color:#31435f}
.rc-weather .wt-foot{padding:12px;text-align:center;font-size:.64em;font-weight:800;letter-spacing:.14em;color:#7c8ca6}
@media(max-width:430px){
  .rc-weather .wt-icon{font-size:46px}
  .rc-weather .wt-temp{font-size:2.7em}
  .rc-weather .wt-cam img{width:68px;height:68px}
}

/* ---------- JUDGMENT: 저승 판결문 (jd-gwiin 금색 / jd-sinner 적색) ---------- */
.rc-judgment{position:relative;background:#12101a;color:#e8e4da;border-radius:14px;border:1px solid #2c2838;overflow:hidden;--jd:#c0392b;--jd-soft:rgba(192,57,43,.14)}
.rc-judgment.jd-gwiin{--jd:#f1c40f;--jd-soft:rgba(241,196,15,.13)}
.rc-judgment::before{content:'';position:absolute;inset:10px;border:1px solid rgba(255,255,255,.07);border-radius:10px;pointer-events:none}
.rc-judgment .jd-badge{position:absolute;top:16px;left:16px;padding:4px 9px;border:1.5px solid var(--jd);color:var(--jd);font-size:.62em;font-weight:900;letter-spacing:.3em;border-radius:4px;opacity:.9}
.rc-judgment .jd-head{padding:52px 20px 6px;text-align:center;position:relative}
.rc-judgment .jd-prefix{color:var(--jd);font-weight:900;font-size:.9em}
.rc-judgment .jd-title{font-size:1.5em;font-weight:900;letter-spacing:-.02em;margin-top:6px;line-height:1.3}
.rc-judgment .jd-date{margin-top:7px;font-size:.66em;font-weight:800;letter-spacing:.22em;color:#847e97}
.rc-judgment .jd-stamp{position:absolute;top:14px;right:14px;width:74px;height:74px;border:3px double var(--jd);border-radius:8px;display:grid;place-items:center;transform:rotate(8deg);color:var(--jd);font-weight:900;font-size:1.05em;letter-spacing:.1em;background:var(--jd-soft);text-align:center;line-height:1.2}
.rc-judgment .jd-profile{display:flex;gap:14px;align-items:center;padding:16px 22px 4px}
.rc-judgment .jd-photo{flex:0 0 auto;padding:4px;border:2px solid var(--jd);border-radius:10px;background:#0c0a12}
.rc-judgment .jd-photo img{width:96px;height:96px;object-fit:cover;border-radius:7px;display:block;filter:contrast(1.08) saturate(.92)}
.rc-judgment .jd-pinfo{flex:1;min-width:0;font-size:.82em}
.rc-judgment .jd-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed #35304a}
.rc-judgment .jd-row span:first-child{color:#8d87a3;font-weight:700}
.rc-judgment .jd-row span:last-child{font-weight:800}
.rc-judgment .jd-note{margin-top:8px;color:var(--jd);font-weight:800;font-size:.9em}
.rc-judgment .jd-trials{margin:16px 16px 0;text-align:left}
.rc-judgment .jd-trials-head{color:var(--jd);font-weight:900;font-size:.86em;letter-spacing:.04em;padding-bottom:8px;border-bottom:1px solid #35304a;margin-bottom:9px}
.rc-judgment .jd-trial{background:rgba(255,255,255,.035);border:1px solid #2c2838;border-radius:9px;padding:10px 13px;margin-bottom:8px}
.rc-judgment .jd-trial-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rc-judgment .jd-trial-top b{font-size:.88em;font-weight:900}
.rc-judgment .jd-trial-top i{font-style:normal;font-size:.72em;color:#8d87a3;margin-left:5px}
.rc-judgment .jd-status{flex:0 0 auto;font-weight:900;font-size:.8em;white-space:nowrap}
.rc-judgment .jd-status.pass{color:#2ecc71}
.rc-judgment .jd-status.guilty{color:var(--jd)}
.rc-judgment.jd-gwiin .jd-status.guilty{color:#e0685a}
.rc-judgment .jd-comment{margin-top:6px;padding-left:10px;border-left:2px solid #4a4462;font-size:.8em;line-height:1.6;color:#c9c4d8}
.rc-judgment .jd-texts{margin:16px 16px 0;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-judgment .jd-text{background:rgba(255,255,255,.035);border:1px solid #2c2838;border-left:4px solid var(--jd);border-radius:9px;padding:11px 14px}
.rc-judgment .jd-text .tx-label{font-size:.7em;font-weight:900;color:var(--jd);margin-bottom:4px}
.rc-judgment .jd-text .tx-body{font-size:.84em;line-height:1.66;color:#d5d1e0}
.rc-judgment .jd-verdict{margin:14px 16px 0;border:1px solid #35304a;border-radius:10px;padding:14px 16px;background:rgba(0,0,0,.32);text-align:center}
.rc-judgment .jd-verdict-l{font-size:.7em;font-weight:800;color:#8d87a3;letter-spacing:.12em}
.rc-judgment .jd-verdict-t{margin-top:6px;color:var(--jd);font-weight:900;font-size:.98em;line-height:1.55}
.rc-judgment .jd-punish{margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.09);font-weight:800;font-size:.86em}
.rc-judgment .jd-punish span{display:inline-block;background:var(--jd);color:#12101a;padding:2px 8px;border-radius:4px;font-size:.78em;font-weight:900;margin-right:7px}
.rc-judgment .jd-mood{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:14px 16px 0}
.rc-judgment .jd-mood span{font-size:.71em;font-weight:800;padding:4px 11px;border-radius:5px;background:#221e30;color:#b6b0c9;border:1px solid #35304a}
.rc-judgment .jd-lanes{margin:14px 16px 0;text-align:left;display:flex;flex-direction:column;gap:9px}
.rc-judgment .jd-lane .ln-top{display:flex;justify-content:space-between;font-size:.75em;font-weight:800;color:#a49ebb;margin-bottom:4px}
.rc-judgment .jd-lane .ln-track{height:8px;background:#221e30;border-radius:99px;overflow:hidden}
.rc-judgment .jd-lane .ln-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--jd),color-mix(in srgb,var(--jd) 55%,#fff));transition:width .8s}
.rc-judgment .jd-foot{padding:13px;margin-top:16px;text-align:center;font-size:.64em;font-weight:800;letter-spacing:.26em;color:#6c6684;border-top:1px solid #2c2838}
@media(max-width:430px){
  .rc-judgment .jd-stamp{width:60px;height:60px;font-size:.9em}
  .rc-judgment .jd-photo img{width:80px;height:80px}
}

/* 리스트 카드 커버 이미지 — 기존 16:10 배너 크기, 호버 시 살짝 줌 */
.card .cover{width:calc(100% + 32px);max-width:none;margin:-18px -16px 6px;aspect-ratio:16/10;object-fit:cover;border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;background:var(--panel2);transition:transform .4s ease}
.card:hover .cover{transform:scale(1.05)}
/* 커버 없는 카드 — 이모지를 같은 16:10 그라디언트 타일로 만들어 그리드 통일 */
.card .emoji:not(.overlap){
  width:calc(100% + 32px);height:auto;aspect-ratio:16/10;margin:-18px -16px 6px;
  position:relative;border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;border:none;font-size:clamp(36px,5vw,48px);
  background:
    radial-gradient(rgba(23,20,31,.10) 1.3px,transparent 1.5px),
    radial-gradient(circle at 28% 24%,color-mix(in srgb,var(--c1,#7c3aed) 30%,transparent),transparent 62%),
    radial-gradient(circle at 76% 82%,color-mix(in srgb,var(--c2,#4f46e5) 34%,transparent),transparent 58%),
    linear-gradient(150deg,color-mix(in srgb,var(--c1,#7c3aed) 10%,var(--panel2)),color-mix(in srgb,var(--c2,#4f46e5) 14%,var(--panel2)));
  background-size:11px 11px,auto,auto,auto;
  transition:transform .4s ease;
}
.card:hover .emoji:not(.overlap){transform:scale(1.05)}
.card .emoji:not(.overlap)::after{content:'';position:absolute;inset:0;margin:auto;height:66%;aspect-ratio:1/1;width:auto;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--c1,#7c3aed) 34%,transparent);pointer-events:none}
.card .cover,.card .emoji:not(.overlap){border-bottom:2px solid var(--ink)}
.card .emoji.overlap{margin-top:-30px;position:relative;z-index:2;background:var(--panel);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--hard);transform:rotate(-3deg)}
.card .badge{z-index:3;box-shadow:2px 2px 0 rgba(0,0,0,.28)}

/* 카테고리 탐색 — 비공인 연구동 안내판 */
.category-lab{margin:17px 0 13px;border:2px solid var(--ink);border-radius:15px;background:var(--panel);box-shadow:5px 5px 0 var(--hard);overflow:hidden;position:relative}
.category-lab-head{min-height:54px;padding:9px 13px 9px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:repeating-linear-gradient(-45deg,var(--pop) 0 14px,#ffd51c 14px 28px);border-bottom:2px solid #17141f;color:#17141f}
.category-lab-head>div{display:flex;flex-direction:column;text-align:left;line-height:1.1}
.category-lab-head>div span{font-size:.59em;font-weight:950;letter-spacing:.13em}
.category-lab-head strong{font-family:'Black Han Sans','Pretendard Variable',Pretendard,sans-serif;font-size:1.03em;font-weight:400;letter-spacing:.03em;margin-top:5px}
.category-drag-hint{margin-left:auto;padding:5px 9px;border:1.5px solid #17141f;border-radius:7px;background:rgba(255,255,255,.72);box-shadow:1.5px 1.5px 0 #17141f;font-size:.63em;font-weight:950;letter-spacing:-.02em;transform:rotate(-2deg);white-space:nowrap}
.category-lab-head i{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border:3px double #e11d48;border-radius:50%;font-style:normal;font-size:.6em;font-weight:950;line-height:1.05;color:#e11d48;background:rgba(255,255,255,.6);transform:rotate(9deg)}
.category-nav{display:flex;gap:9px;overflow-x:auto;padding:18px 14px 15px;margin:0;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;background:radial-gradient(rgba(23,20,31,.09) 1px,transparent 1.3px),var(--panel);background-size:14px 14px;cursor:grab;user-select:none;-webkit-user-select:none}
.category-nav .category-chip{cursor:grab}
.category-nav.dragging{cursor:grabbing;scroll-snap-type:none}
.category-nav.dragging .category-chip{cursor:grabbing}
.category-nav::-webkit-scrollbar{display:none}
.category-chip{--cat-bg:#ffe600;flex:0 0 auto;min-width:148px;max-width:216px;min-height:62px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 9px 9px 10px;border-radius:10px;background:var(--cat-bg);color:#17141f;border:2px solid #17141f;box-shadow:3px 3px 0 #17141f;font-size:.78em;white-space:nowrap;scroll-snap-align:start;position:relative;transition:transform .14s,box-shadow .14s,filter .14s}
.category-chip:nth-child(2){--cat-bg:#ff90bd;transform:rotate(-1.2deg)}
.category-chip:nth-child(3){--cat-bg:#d7b6ff;transform:rotate(.9deg)}
.category-chip:nth-child(4){--cat-bg:#bda2ff;transform:rotate(-.7deg)}
.category-chip:nth-child(5){--cat-bg:#7de8e3;transform:rotate(1.1deg)}
.category-chip:nth-child(6){--cat-bg:#ff9a93;transform:rotate(-1deg)}
.category-chip:nth-child(7){--cat-bg:#8fc5ff;transform:rotate(.7deg)}
.category-chip:nth-child(8){--cat-bg:#a7e86f;transform:rotate(-.8deg)}
.category-chip .cat-icon{width:38px;height:38px;display:grid;place-items:center;border:1.5px solid #17141f;border-radius:8px;background:rgba(255,255,255,.55);font-size:20px;box-shadow:1.5px 1.5px 0 #17141f}
.category-chip .cat-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;line-height:1.05}
.category-chip .cat-copy small{font-size:.55em;font-weight:950;letter-spacing:.1em;opacity:.58}
.category-chip .cat-copy b{font-size:.94em;font-weight:950;margin-top:5px;letter-spacing:-.03em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-chip .cat-copy small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-chip em{align-self:start;display:grid;place-items:center;min-width:24px;height:20px;padding:0 5px;border-radius:99px;background:#17141f;color:#fff;font-size:.64em;font-style:normal;font-weight:950}
.category-chip:hover{filter:saturate(1.12);transform:translate(-1px,-3px) rotate(-1deg);box-shadow:5px 6px 0 #17141f}
.category-chip:active{transform:translate(2px,2px);box-shadow:none}
.category-chip.on{outline:3px solid var(--pop2);outline-offset:2px;box-shadow:4px 4px 0 #17141f;z-index:2}
.category-chip.on::after{content:'입장중';position:absolute;right:7px;bottom:-8px;padding:2px 7px;border:1.5px solid #17141f;border-radius:4px;background:#fff;color:#e11d48;font-size:.55em;font-weight:950;transform:rotate(-5deg)}
.list-tools{display:flex;gap:10px;align-items:center;padding:2px 0 8px;min-height:48px}
.sort-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1}
.sort-tabs::-webkit-scrollbar{display:none}
.sort-tabs a{flex:0 0 auto;font-size:.84em;font-weight:400;padding:8px 15px;border-radius:12px;background:var(--panel);border:2px solid var(--ink);color:var(--text);box-shadow:2px 2px 0 var(--hard);transition:all .12s;white-space:nowrap}
.sort-tabs a:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--hard)}
.sort-tabs a.on{background:var(--pop);color:#17141f;transform:rotate(-1.5deg)}
.search-box{position:relative;flex:0 0 42px;width:42px;height:42px;display:flex;align-items:center;justify-content:flex-end;border:2px solid var(--ink);border-radius:14px;background:var(--panel);box-shadow:2px 2px 0 var(--hard);overflow:hidden;transition:flex-basis .22s ease,width .22s ease}
.search-box.open{flex:1 1 300px;width:auto;max-width:440px}
.search-toggle{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;position:relative;z-index:2}
.search-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.search-box input{width:0;min-width:0;opacity:0;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:.86em;font-weight:650;outline:none;padding:9px 0;transition:opacity .15s;width .2s}
.search-box.open input{width:100%;opacity:1;padding-right:34px}
.search-close{position:absolute;right:5px;width:30px;height:30px;border-radius:9px;font-size:1.3em;line-height:1;color:var(--muted);opacity:0;pointer-events:none;transition:opacity .14s;background:color-mix(in srgb,var(--ink) 6%,transparent)}
.search-box.open .search-toggle{display:none}
.search-box.open .search-close{opacity:1;pointer-events:auto}
.search-box input:focus{background:color-mix(in srgb,var(--pop) 18%,var(--panel))}
@media(max-width:560px){
  .category-lab{margin-left:-1px;margin-right:-1px}
  .category-lab-head strong{font-size:.94em}
  .category-drag-hint{display:none}
  .category-nav{padding-right:12px}
  .category-chip{flex-basis:140px}
  .list-tools{align-items:flex-start}
  .search-box.open{position:absolute;left:12px;right:12px;z-index:8;max-width:none;width:auto}
  .list-tools:has(.search-box.open) .sort-tabs{visibility:hidden}
  .sort-tabs a{font-size:.78em;padding:8px 11px}
}

/* 다국어: 카테고리 '입장중' 스티커 현지화 */
body.lang-en .category-chip.on::after{content:'OPEN'}
body.lang-ja .category-chip.on::after{content:'入場中'}
body.lang-es .category-chip.on::after{content:'DENTRO'}
body.lang-de .category-chip.on::after{content:'DRIN'}
body.lang-zh .category-chip.on::after{content:'入场中'}
body.lang-vi .category-chip.on::after{content:'ĐANG VÀO'}
body.lang-th .category-chip.on::after{content:'กำลังเข้า'}
body.lang-id .category-chip.on::after{content:'MASUK'}
body.lang-pt .category-chip.on::after{content:'DENTRO'}
body.lang-fr .category-chip.on::after{content:'DEDANS'}
body.lang-tr .category-chip.on::after{content:'İÇERİDE'}
body.lang-tl .category-chip.on::after{content:'PASOK'}
body.lang-zh-tw .category-chip.on::after{content:'入場中'}
.lang-switch summary::marker{content:'';font-size:0}
