/* 루리 줍줍 공통 스타일 (2026-11-03 개편): 토큰 하나, 각진 8~12px, 그림자 최소, 헤더·푸터·플로팅 정리. 마지막에 로드한다. */
:root{--bg:#f8fafc;--card:#fff;--tx:#0f172a;--mu:#475569;--bd:#e2e8f0;--pri:#6d28d9;--pri2:#5b21b6;--pbg:#f3eefe;--brand:#6d28d9;--acc:#6d28d9;--gold:#b45309;--gbg:#fdf6e7;--red:#b91c1c;--rbg:#fdeceb;--ok:#0f766e;--okbg:#e6f4f1;--sh:none}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1116;--card:#161a21;--tx:#e6e9ee;--mu:#a5afbd;--bd:#273040;--pri:#a78bfa;--pri2:#c4b5fd;--pbg:#241c3d;--brand:#a78bfa;--acc:#a78bfa;--gold:#e0a84a;--gbg:#2a2214;--red:#f08a8a;--rbg:#3a1c1c;--ok:#5fd0c2;--okbg:#10302c;--sh:none}}
:root[data-theme=dark]{--bg:#0e1116;--card:#161a21;--tx:#e6e9ee;--mu:#a5afbd;--bd:#273040;--pri:#a78bfa;--pri2:#c4b5fd;--pbg:#241c3d;--brand:#a78bfa;--acc:#a78bfa;--sh:none}
body{background:var(--bg);color:var(--tx);font-size:16px;line-height:1.7;letter-spacing:-.1px}
h1,h2,h3{letter-spacing:-.02em;font-weight:800}
h1{font-size:28px;line-height:1.35}
h2{font-size:22px;margin:40px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--tx)}
h3{font-size:17px}
a{text-underline-offset:3px}
/* 헤더: 흰 바탕 + 얇은 선, 메뉴는 밑줄형 */
.hd{background:var(--card);backdrop-filter:none;border-bottom:1px solid var(--bd)}
.hd .w,.ft .w{max-width:1120px}
.hd-in{min-height:60px}
.logo{font-size:20px;font-weight:800;letter-spacing:-.04em;color:var(--tx)}
.logo b{color:var(--pri)}
.gn a{border-radius:0;padding:0 14px;color:var(--tx);font-weight:600;font-size:15px}
.gn a:hover{background:none;color:var(--pri)}
.gn a.on,.gn a[aria-current=page]{color:var(--pri);border-bottom-color:var(--pri)}
.gn .x{display:inline}
.gn-cur{display:inline-flex;align-items:center;padding:0 10px;font-size:14px;color:var(--mu)}
.hd-s{color:var(--tx);border-radius:10px;min-height:44px;padding:0 12px;background:var(--card)}
.hd-s:hover{border-color:var(--pri);color:var(--pri)}
.hd .cm-in,.hd .cm-acct button,.hd .lang-b{min-height:40px}
/* 카드·박스 */
.card,.cc,.g-sum,.cat-st,.bub,.say .bub,.tblw,details{border-radius:10px!important;box-shadow:none!important}
.kick{background:var(--pbg);color:var(--pri);border-radius:4px}
.cat-st,.g-sum{background:var(--pbg);border:0;border-left:4px solid var(--pri)}
button,.btn,.chip,.ch-c,[class*=btn]{border-radius:8px}
.note,.kwn{color:var(--mu)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #8b5cf6;outline-offset:2px}
/* 푸터: 밝은 바탕, 진한 글자 */
.ft{margin-top:64px;padding-bottom:40px;background:var(--card);color:var(--tx);border-top:1px solid var(--bd)}
.ft-in{max-width:1120px;padding:40px 20px 8px}
.ft-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:40px}
.ft-b{display:block;padding:0;border:0}
.ft-b b{display:block;font-size:20px;font-weight:800;color:var(--tx);letter-spacing:-.03em}
.ft-b p{margin:8px 0 0;font-size:14px;line-height:1.7;color:var(--mu)}
.ft-m a{color:var(--pri);text-decoration:none}.ft-m a:hover{text-decoration:underline}
.ft-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0}
.ft-g b{display:block;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--tx);opacity:1;letter-spacing:0}
.ft-g a{display:block;padding:6px 0;font-size:14px;color:var(--mu);text-decoration:none;min-height:32px;line-height:1.4}
.ft-g a:hover{color:var(--pri);text-decoration:underline}
.ft-c{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:28px 0 0;padding-top:20px;border-top:1px solid var(--bd)}
.ft-c span{font-size:13px;font-weight:700;color:var(--mu);margin-right:4px}
.ft-c .cl-b,.ft-c a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx);font-size:13.5px;font-weight:600;text-decoration:none;box-shadow:none}
.ft-c .cl-b:hover{border-color:var(--pri);color:var(--pri)}
.ft-n{margin:24px 0 0;padding-top:18px;border-top:1px solid var(--bd);max-width:none;font-size:13px;line-height:1.7;color:var(--mu)}
@media(max-width:820px){.ft-top{grid-template-columns:1fr;gap:24px}.ft-g{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-in{padding:32px 16px 8px}.ft-g a{min-height:44px;display:flex;align-items:center}}
/* 플로팅: 루리에게 물어보기는 작은 원형 버튼, 눌러야 펼쳐진다. 음악 버튼은 전역에서 뺐다(bgm.js 미로드). */
.rc-fab{padding:0!important;width:48px;height:48px;justify-content:center;background:var(--pri)!important;box-shadow:0 2px 10px rgba(15,23,42,.25)!important}
.rc-fab span{display:none}
.rc-fab img{width:40px;height:40px;border:0}
.rc-panel{box-shadow:0 12px 32px rgba(15,23,42,.22)}
@media(max-width:700px){.gn .x{display:none}.gn a{padding:0 12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.ft .ft-c .cl-b,.ft .ft-c a{background:var(--card)!important;color:var(--tx)!important;border:1px solid var(--bd)!important;box-shadow:none!important;min-height:44px;border-radius:8px!important;font-weight:600!important}
.ft .ft-c .cl-b:hover{border-color:var(--pri)!important;color:var(--pri)!important}
.hd .gn a,.hd .hd-s,.hd .logo{min-height:44px}
.hd .logo{display:inline-flex;align-items:center}
.hd button,.hd .cm-in{min-height:44px}.hd button{min-width:44px}
.top-ans{margin:12px 0 18px;padding:14px 16px;border:1px solid var(--bd);border-left:4px solid var(--pri);border-radius:8px;background:var(--card);font-size:15.5px;line-height:1.7;color:var(--tx)}
.top-ans b{color:var(--pri)}

/* ───── 2차 정리 (2026-11-03): 보라색은 주 행동에만, 모서리 8/12, 헤더 로그인·언어·검색은 중립, 목록은 구분선 표, 상세 버튼은 역할별 묶음 ───── */
:root{--r1:8px;--r2:12px}
.hd .cm-in,.hd .cm-acct button{background:transparent!important;color:var(--tx)!important;border:0!important;box-shadow:none!important;font-weight:600;font-size:14px;border-radius:var(--r1)!important}
.hd .cm-in:hover{text-decoration:underline}
.hd .hd-s{border:0;background:transparent;color:var(--tx);gap:6px}
.hd .hd-s:hover{background:var(--bg);color:var(--tx)}
.hd [class*=lang],.hd .lang-b{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:var(--r1)!important;color:var(--mu)}
.gn a.on,.gn a[aria-current=page]{color:var(--tx);border-bottom-color:var(--tx)}
.rc-fab{background:#334155!important}
.logo b{color:var(--tx)}
main a:not([class]){color:var(--pri)}
/* 공모전 목록: 같은 열에 제목·대상·제출물·상금·마감 */
ul.list{list-style:none;margin:0;padding:0;border-top:2px solid var(--tx)}
ul.list>li{margin:0;border-bottom:1px solid var(--bd)}
ul.list .card.cc{display:block;background:transparent;border:0;border-radius:0!important;box-shadow:none!important;padding:14px 4px}
ul.list .card.cc:hover{background:var(--card)}
ul.list .cb{display:block}
ul.list .top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
ul.list h3.t{margin:0;font-size:17.5px;line-height:1.45;font-weight:700;letter-spacing:-.015em}
ul.list dl.cm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 16px;margin:8px 0 0}
ul.list dl.cm dt{font-size:13px;color:#64748b;font-weight:500}
ul.list dl.cm dd{margin:1px 0 0;font-size:15.5px;line-height:1.4;font-weight:600;color:var(--tx)}
ul.list p.o{margin:6px 0 0;font-size:13.5px;color:var(--mu)}
ul.list .d{flex:0 0 auto;font-size:13px;font-weight:700;padding:2px 8px;border-radius:6px}
@media(min-width:1000px){
 ul.list .card.cc{display:grid;grid-template-columns:minmax(0,1fr) 560px 84px;column-gap:24px;align-items:center}
 ul.list .cb{display:contents}
 ul.list .top{display:contents}
 ul.list h3.t{grid-column:1;grid-row:1;align-self:end}
 ul.list .d{grid-column:3;grid-row:1 / span 2;justify-self:end}
 ul.list p.o{grid-column:1;grid-row:2}
 ul.list dl.cm{grid-column:2;grid-row:1 / span 2;grid-template-columns:150px 80px 150px 70px;margin:0}
}
@media(max-width:560px){ul.list dl.cm{grid-template-columns:1fr 1fr}}
.dh{border-radius:var(--r2)!important;background:var(--card)!important;border:1px solid var(--bd);box-shadow:none!important}
/* 상세: 공식 공고(주 행동) · 저장 · 공유는 한 줄, 응모 관리는 아래 줄 */
.act-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 10px;margin:14px 0 6px}
.act-row .my-acts{display:contents}
.act-row .btn{order:1;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:var(--r1);background:var(--pri);color:#fff;font-weight:700;font-size:16px;text-decoration:none;white-space:nowrap;box-shadow:none}
.act-row .ma-fav{order:2}.act-row .sh-pop{order:3;position:relative}
.act-row::after{content:'';order:4;flex:0 0 100%;height:0}
.act-row .ma-app{order:5}.act-row .ma-prep{order:6}.act-row .ma-share{order:7}
.act-row .my-acts>small{order:9;flex:0 0 100%;margin:0;font-size:13.5px;color:var(--mu)}
.act-row button,.act-row .ma-prep,.act-row .sh-pop summary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid #94a3b8;border-radius:var(--r1);background:var(--card);color:var(--tx);font:inherit;font-size:15px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;list-style:none}
.act-row .ma-prep small{font-size:12px;color:var(--mu);font-weight:500}
.act-row .sh-pop summary::-webkit-details-marker{display:none}
.act-row .ma-app,.act-row .ma-prep,.act-row .ma-share{border-color:var(--bd);color:var(--mu)}
.act-row .sh-pop[open] .shr{position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:260px;background:var(--card);border:1px solid var(--bd);border-radius:var(--r2);box-shadow:0 12px 32px rgba(15,23,42,.16);padding:12px}
@media(max-width:560px){.act-row .btn{flex:1 0 100%;justify-content:center}}
/* 상세 요약·안내 상자 모서리 */
.qs,.panel,table.info{border-radius:var(--r2)}
.src-h{margin:10px 0 0;padding:10px 14px;border-top:1px solid var(--bd);font-size:14px;color:var(--mu)}
.src-h summary{cursor:pointer;font-weight:600;color:var(--tx);min-height:32px}
.src-h p{margin:6px 0}

main.w:has(ul.list){max-width:1120px}
