/* ───────── 네이처 멘토 디자인 토큰 (수학 AI 스튜디오 풍 · 자연 테마) ───────── */
:root{
  --bg:#f2f8f3; --sidebar:#14432f; --sidebar-2:#0c2a1d; --surface:#ffffff; --sunken:#f6faf7; --hover:#e6f3ea;
  --line:#d9e9dd; --line-strong:#b9d6c2;
  --fg:#17301f; --fg-2:#44604d; --fg-3:#7a9583;
  --primary:#2e9e6b; --primary-ink:#1f7a51; --on-primary:#fff; --accent:#ffb74a; --accent-ink:#8a5a00; --accent-soft:#fff2d9;
  --mentor:#7c5cff; --mentor-soft:#efeaff; --coral:#ff6f61; --sky:#38b6ff; --pink:#ff7eb6;
  --r:22px; --r-sm:14px; --shadow:0 8px 24px rgba(23,48,31,.08); --shadow-lg:0 18px 48px rgba(23,48,31,.14);
  --font-head:"Jua","Noto Sans KR",sans-serif; --font-body:"Noto Sans KR",system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:17px;line-height:1.6;
  background-image:radial-gradient(600px 400px at 100% 0%,#e3f4ff 0%,transparent 70%),radial-gradient(500px 400px at 0% 100%,#fff3dc 0%,transparent 70%);}
button{font-family:inherit;font-size:inherit;cursor:pointer}
h1,h2,h3,.btn,.side-item,.brand,.model-btn b,.quiz-opt{font-family:var(--font-head);font-weight:400;letter-spacing:.2px}
h1{font-size:2rem;margin:0 0 .3em;color:var(--primary-ink)} h2{font-size:1.5rem;margin:0 0 .4em} h3{font-size:1.2rem;margin:0 0 .3em}
.muted{color:var(--fg-2)} .tiny{font-size:.85rem;color:var(--fg-3)}
[hidden]{display:none!important}

/* ───── 레이아웃 ───── */
.shell{display:flex;height:100vh;height:100dvh}
.sidebar{width:272px;flex:0 0 272px;background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar-2) 100%);color:#e7f5ec;display:flex;flex-direction:column;padding:16px 14px;gap:10px;position:relative;z-index:20}
.side-head{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;background:none;border:0;color:#fff;font-size:1.35rem;padding:4px}
.orb{width:26px;height:26px;border-radius:50%;background:conic-gradient(from 0deg,#2e9e6b,#ffb74a,#38b6ff,#ff7eb6,#2e9e6b);box-shadow:0 0 0 3px rgba(255,255,255,.25);animation:spin 9s linear infinite;display:inline-block}
.orb.small{width:18px;height:18px}
@keyframes spin{to{transform:rotate(360deg)}}
.side-new{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:14px;padding:11px 14px;background:rgba(255,255,255,.14);color:#fff;font-family:var(--font-head);font-size:1.05rem;transition:.15s}
.side-new:hover{background:rgba(255,255,255,.24)} .side-new.ghost{background:transparent;border:1.5px dashed rgba(255,255,255,.35)}
.side-label{font-size:.8rem;letter-spacing:.14em;color:rgba(255,255,255,.55);margin:8px 6px 0}
.side-list{display:flex;flex-direction:column;gap:4px;overflow:auto;flex:1;padding-right:2px}
.side-item{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:14px;padding:10px 12px;background:transparent;color:#dcefe2;text-align:left;font-size:1.05rem;transition:.15s;position:relative}
.side-item:hover{background:rgba(255,255,255,.12)} .side-item.active{background:#fff;color:var(--sidebar)}
.si-ico{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:1.05rem;flex:0 0 32px}
.side-item.active .si-ico{background:var(--hover)}
.si-text{flex:1;line-height:1.2} .si-sub{display:block;font-family:var(--font-body);font-size:.72rem;opacity:.7}
.si-meta{font-size:.9rem;color:var(--accent)} .side-item.active .si-meta{color:var(--primary)}
.side-foot{display:flex;flex-direction:column;gap:10px;align-items:center;padding-top:6px;border-top:1px solid rgba(255,255,255,.12)}
.mentor-mini{position:relative;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#cfe9d8);display:grid;place-items:center;font-size:2rem;animation:float 4s ease-in-out infinite;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.mentor-leaf{position:absolute;right:-6px;top:-6px;font-size:1.3rem}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.progress-pill{display:flex;align-items:center;gap:8px;width:100%;font-size:.85rem;background:rgba(0,0,0,.25);border-radius:999px;padding:6px 12px}
.progress-pill .bar{flex:1;height:8px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}
.progress-pill .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),#ffd58a);transition:width .5s}
.scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:15}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{height:60px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);backdrop-filter:blur(8px)}
.model-btn{display:flex;align-items:center;gap:8px;border:0;background:transparent;font-size:1.05rem}
.model-btn small{color:var(--fg-3);font-size:.85rem}
.spacer{flex:1}
.top-chip{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:.9rem;display:flex;align-items:center;gap:6px}
.top-chip.unset{border-color:var(--accent);background:var(--accent-soft);animation:pulse 1.6s infinite}
.top-chip.status{font-size:.78rem;color:var(--fg-3)} .top-chip.status.ok{color:var(--primary-ink)} .top-chip.status.bad{color:var(--coral)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,183,74,.5)}50%{box-shadow:0 0 0 7px rgba(255,183,74,0)}}
.icon-btn{border:0;background:transparent;font-size:1.2rem;padding:6px 8px;border-radius:10px;color:inherit} .icon-btn:hover{background:var(--hover)}
.menu-btn{display:none}
.content{flex:1;overflow:auto;padding:26px clamp(16px,4vw,48px) 60px}
.view{max-width:980px;margin:0 auto;animation:fade .3s}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ───── 카드 / 버튼 ───── */
.card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);margin-bottom:18px}
.card.soft{background:var(--sunken)} .card.mentor{background:var(--mentor-soft);border-color:#d9cdff}
.card.accent{background:linear-gradient(135deg,#fff7e8,#fffdf7);border-color:#ffe1a8}
.hero{display:flex;gap:22px;align-items:center;background:linear-gradient(135deg,#dff5e7 0%,#eaf7ff 60%,#fff3dc 100%);border:2px solid var(--line);border-radius:30px;padding:28px 30px;box-shadow:var(--shadow-lg);margin-bottom:22px;position:relative;overflow:hidden}
.hero .big-mentor{font-size:5rem;filter:drop-shadow(0 10px 16px rgba(0,0,0,.15));animation:float 4s ease-in-out infinite}
.hero h1{font-size:2.3rem} .hero p{margin:.2em 0;font-size:1.05rem}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.mission{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);padding:16px;text-align:left;display:flex;flex-direction:column;gap:6px;transition:.15s;position:relative}
.mission:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.mission .mi-ico{font-size:2rem} .mission b{font-family:var(--font-head);font-size:1.15rem;font-weight:400} .mission small{color:var(--fg-2)}
.mission.done::after{content:"✓ 완료";position:absolute;top:10px;right:12px;background:var(--primary);color:#fff;border-radius:999px;padding:2px 10px;font-size:.78rem}
.mission.lock{opacity:.55}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:11px 22px;background:linear-gradient(180deg,#3ab27a,var(--primary));color:var(--on-primary);font-size:1.1rem;box-shadow:0 4px 0 var(--primary-ink);transition:.1s}
.btn:hover{filter:brightness(1.04)} .btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--primary-ink)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.big{font-size:1.3rem;padding:14px 30px;width:100%}
.btn.gold{background:linear-gradient(180deg,#ffc966,var(--accent));color:#5a3a00;box-shadow:0 4px 0 #d49a2e}
.btn.violet{background:linear-gradient(180deg,#9b85ff,var(--mentor));box-shadow:0 4px 0 #5a3fd1}
.btn.ghost{background:var(--surface);color:var(--fg);border:2px solid var(--line-strong);box-shadow:0 4px 0 var(--line-strong)}
.btn.sm{font-size:.95rem;padding:7px 14px;box-shadow:0 3px 0 var(--primary-ink)} .btn.ghost.sm{box-shadow:0 3px 0 var(--line-strong)}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:center}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
label{display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:var(--fg-2)}
select,input[type=text],textarea{font:inherit;border:2px solid var(--line-strong);border-radius:14px;padding:10px 14px;background:#fff;color:var(--fg);min-width:120px}
textarea{width:100%;min-height:84px;resize:vertical;line-height:1.5}
input[type=text]{width:100%}
select:focus,textarea:focus,input:focus{outline:3px solid #bfe7d1;border-color:var(--primary)}
.field{margin-bottom:12px} .field .q{font-family:var(--font-head);font-size:1.15rem;margin-bottom:6px}
.field .q .n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:.9rem;margin-right:6px}
.counter{text-align:right;font-size:.8rem;color:var(--fg-3)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:2px solid var(--line-strong);background:#fff;border-radius:999px;padding:6px 14px;font-size:.95rem} .chip.sel{background:var(--primary);color:#fff;border-color:var(--primary)}
.badge{display:inline-block;background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:2px 10px;font-size:.8rem}
.badge.v{background:var(--mentor-soft);color:#4a2fbf}
.steps{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.steps span{flex:1;min-width:90px;text-align:center;border-radius:999px;padding:6px 8px;background:var(--sunken);border:2px solid var(--line);font-size:.85rem}
.steps span.on{background:var(--primary);color:#fff;border-color:var(--primary)} .steps span.ok{background:var(--hover);border-color:var(--primary)}

/* 멘토 말풍선 */
.mentor-bubble{display:flex;gap:14px;align-items:flex-start}
.mentor-avatar{width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#d9cdff);display:grid;place-items:center;font-size:1.8rem;flex:0 0 56px;box-shadow:0 6px 14px rgba(124,92,255,.3)}
.bubble{background:#fff;border:2px solid #d9cdff;border-radius:4px 20px 20px 20px;padding:14px 16px;flex:1;animation:msgIn .3s}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bubble .praise{color:#4a2fbf;font-weight:500}
.bubble .qs{margin:8px 0 0;padding-left:0;list-style:none} .bubble .qs li{padding:6px 10px;margin:4px 0;background:var(--mentor-soft);border-radius:12px}
.bubble .hint{margin-top:8px;font-size:.95rem;color:var(--fg-2)} .thinking{color:var(--fg-3);animation:shimmer 1.2s infinite} @keyframes shimmer{50%{opacity:.4}}

/* 설문 */
.likert{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.likert button{border:2px solid var(--line-strong);background:#fff;border-radius:14px;padding:10px 4px;font-size:.9rem;line-height:1.2;transition:.1s}
.likert button b{display:block;font-family:var(--font-head);font-size:1.4rem}
.likert button.sel{background:var(--primary);border-color:var(--primary);color:#fff}
.likert button:hover{background:var(--hover)} .likert button.sel:hover{background:var(--primary)}
.survey-section{margin-top:20px} .survey-section h3{display:flex;align-items:center;gap:8px}
.sticky-done{position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding:16px 0 4px}

/* 퀴즈 */
.quiz-img{font-size:5rem;text-align:center;margin:6px 0}
.quiz-opts{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}
.quiz-opt{border:2px solid var(--line-strong);background:#fff;border-radius:18px;padding:16px 10px;font-size:1.25rem;display:flex;flex-direction:column;align-items:center;gap:6px;transition:.1s}
.quiz-opt span{font-size:2.4rem} .quiz-opt:hover{background:var(--hover)}
.quiz-opt.right{background:#dff5e7;border-color:var(--primary)} .quiz-opt.wrong{background:#ffe4e1;border-color:var(--coral);animation:shake .3s}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.reveal{margin-top:12px;padding:14px;border-radius:16px;background:var(--accent-soft);border:2px solid #ffe1a8}
.ladder{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.ladder div{background:#fff;border-radius:12px;padding:8px 10px;font-size:.9rem;border:1.5px solid #ffe1a8}
.ladder b{display:block;font-family:var(--font-head);color:var(--accent-ink)}

/* 생물 카드 */
.org-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.org{border:2px solid var(--line);background:#fff;border-radius:18px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:.12s}
.org span{font-size:2.3rem} .org b{font-family:var(--font-head);font-weight:400;font-size:1rem;text-align:center;line-height:1.2} .org small{color:var(--fg-3);font-size:.78rem}
.org:hover{transform:translateY(-3px);box-shadow:var(--shadow)} .org.sel{border-color:var(--primary);background:var(--hover)}
.cand{border:2px solid var(--line);background:#fff;border-radius:18px;padding:14px;text-align:left;display:flex;gap:12px;align-items:flex-start;transition:.12s;width:100%}
.cand:hover{border-color:var(--line-strong)} .cand.sel{border-color:var(--mentor);background:var(--mentor-soft)}
.cand .ce{font-size:2.2rem} .cand b{font-family:var(--font-head);font-weight:400;font-size:1.15rem}

/* 발명 */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.compare .box{background:var(--sunken);border:2px dashed var(--line-strong);border-radius:18px;min-height:220px;display:grid;place-items:center;padding:10px;text-align:center;color:var(--fg-3)}
.compare img{max-width:100%;border-radius:14px;box-shadow:var(--shadow)}
canvas.sketch{width:100%;max-width:100%;background:#fff;border-radius:14px;border:2px solid var(--line-strong);touch-action:none;cursor:crosshair}
.palette{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}
.palette button{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px var(--line-strong)} .palette button.sel{box-shadow:0 0 0 3px var(--fg)}

/* 갤러리 */
.gallery{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.work{background:#fff;border:2px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
.work .thumb{aspect-ratio:1;background:var(--sunken);display:grid;place-items:center;font-size:3rem;overflow:hidden} .work .thumb img{width:100%;height:100%;object-fit:cover}
.work .wb{padding:12px 14px;display:flex;flex-direction:column;gap:4px;flex:1} .work .wb b{font-family:var(--font-head);font-weight:400;font-size:1.1rem}
.work .wb p{margin:0;font-size:.9rem;color:var(--fg-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.react{display:flex;gap:6px;margin-top:auto;padding-top:6px} .react button{flex:1;border:2px solid var(--line);background:#fff;border-radius:999px;padding:6px;font-size:.95rem} .react button:hover{background:var(--hover)}
.work.mine{border-color:var(--accent)}

/* 지킴이 */
.species{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.sp{border:2px solid var(--line);border-radius:20px;background:#fff;padding:14px;text-align:left;display:flex;flex-direction:column;gap:4px} .sp:hover{box-shadow:var(--shadow)} .sp.sel{border-color:var(--coral);background:#fff3f1}
.sp span{font-size:2.6rem} .sp b{font-family:var(--font-head);font-weight:400;font-size:1.15rem} .sp small{color:var(--fg-2);font-size:.85rem}
.letter{background:#fffdf5;border:2px solid #ffe1a8;border-radius:18px;padding:16px;background-image:repeating-linear-gradient(transparent 0 31px,#ffe9c2 31px 32px)}
.letter textarea{background:transparent;border:0;line-height:32px;min-height:160px;padding:0;font-size:1.05rem} .letter textarea:focus{outline:0}

/* 선생님 */
.kpi{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))} .kpi div{background:var(--sunken);border:2px solid var(--line);border-radius:16px;padding:10px 12px} .kpi b{display:block;font-size:1.6rem;font-family:var(--font-head);font-weight:400;color:var(--primary-ink)} .kpi small{color:var(--fg-2)}
.switch{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
#qr{display:grid;place-items:center;padding:10px;background:#fff;border-radius:16px;border:2px solid var(--line)}

/* 모달 / 토스트 */
.modal{position:fixed;inset:0;background:rgba(10,30,20,.55);display:grid;place-items:center;z-index:50;padding:16px}
.modal-card{background:var(--surface);border-radius:28px;padding:28px;width:min(440px,100%);box-shadow:var(--shadow-lg);animation:pop .25s} .modal-card.wide{width:min(760px,100%);max-height:90vh;overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:center}
@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--fg);color:#fff;padding:12px 20px;border-radius:999px;z-index:60;box-shadow:var(--shadow-lg);font-size:1rem;max-width:90vw}
.banner{background:#fff3f1;border:2px solid #ffc7c0;color:#8a2a20;border-radius:16px;padding:10px 14px;margin-bottom:14px;font-size:.95rem}
.banner.ok{background:#e9f8ef;border-color:#bfe7d1;color:#1f7a51}

/* ───── 반응형 ───── */
@media (max-width:900px){
  .sidebar{position:fixed;inset:0 auto 0 0;transform:translateX(-105%);transition:.25s;width:280px}
  .sidebar.open{transform:none} .scrim.show{display:block}
  .menu-btn{display:inline-block}
  .content{padding:18px 16px 60px}
  .hero{flex-direction:column;text-align:center;padding:22px} .hero h1{font-size:1.8rem}
  .compare{grid-template-columns:1fr} .quiz-opts{grid-template-columns:1fr} .likert button{font-size:.78rem} .likert button b{font-size:1.2rem}
  .ladder{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ───── 키아트 히어로 (빛의 미로 풍) ───── */
.keyart{position:relative;border-radius:30px;overflow:hidden;min-height:430px;display:flex;align-items:center;box-shadow:var(--shadow-lg);margin-bottom:22px;background:#0b2419 url(assets/hero.jpg) center/cover no-repeat;border:2px solid #1d5c40}
.keyart::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,24,16,.92) 0%,rgba(6,24,16,.78) 34%,rgba(6,24,16,.25) 58%,rgba(6,24,16,0) 80%)}
.keyart .ka-text{position:relative;z-index:1;padding:40px 44px;max-width:560px;color:#fff}
.ka-kicker{font-size:.95rem;letter-spacing:.12em;color:#ffd58a;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.ka-title{font-family:var(--font-head);font-size:clamp(3rem,7vw,5.4rem);line-height:1.02;margin:.1em 0 .15em;background:linear-gradient(90deg,#ffffff 0%,#dff7e8 35%,#ffd58a 70%,#ff9cc0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
.ka-sub{font-family:var(--font-head);font-size:1.25rem;letter-spacing:.2em;color:#9ff0c6;text-shadow:0 2px 8px rgba(0,0,0,.6);margin-bottom:12px}
.ka-desc{font-size:1.05rem;line-height:1.6;color:#eef8f1;text-shadow:0 1px 6px rgba(0,0,0,.7);margin:0 0 18px}
.ka-desc b{color:#ffd58a}
.ka-cta{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.btn.start{font-size:1.5rem;padding:14px 34px;background:linear-gradient(180deg,#ffd166,#ff9f1c);color:#3b2200;box-shadow:0 6px 0 #c76f00,0 14px 30px rgba(255,159,28,.35)}
.btn.glass{background:rgba(255,255,255,.14);backdrop-filter:blur(6px);color:#fff;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 0 rgba(0,0,0,.25)}
.btn.glass.sm{box-shadow:0 3px 0 rgba(0,0,0,.25)}
.ka-row{display:flex;gap:8px;flex-wrap:wrap}
.ka-badge{position:absolute;right:18px;top:16px;z-index:1;background:rgba(0,0,0,.45);color:#fff;border-radius:999px;padding:6px 14px;font-size:.9rem;backdrop-filter:blur(6px)}
.mentor-mini{background:url(assets/mentor.jpg) center/cover;font-size:0}
.mentor-avatar{background:url(assets/mentor.jpg) center/cover;font-size:0}
.mission-row{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x mandatory}
@media (max-width:900px){.keyart{min-height:520px;align-items:flex-end;background-position:62% center}.keyart::before{background:linear-gradient(180deg,rgba(6,24,16,0) 0%,rgba(6,24,16,.35) 35%,rgba(6,24,16,.92) 70%)}.keyart .ka-text{padding:24px 22px}.ka-title{font-size:3rem}}
@media (max-width:900px){
  .topbar{gap:6px;padding:0 10px}.topbar .top-chip{white-space:nowrap;padding:5px 9px;font-size:.82rem}
  .topbar #netChip,.topbar .top-chip[data-go="share"],.model-btn small{display:none}
  .model-btn b{font-size:.95rem;white-space:nowrap}
  .ka-badge{display:none}.ka-sub{font-size:1rem;letter-spacing:.1em}
}

/* ───── 사진 · 검색 · 구체 정보 ───── */
.org{padding:8px 8px 10px;gap:6px}
.org .oph{width:100%;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--sunken);display:grid;place-items:center}
.org .oph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.org:hover .oph img{transform:scale(1.06)}
.org .emo{font-size:2.3rem}
.org.sel{box-shadow:0 0 0 3px var(--primary)}
.org-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start;margin-bottom:16px}
.org-hero:has(.zoom){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.org-hero:has(.zoom) .org-info{grid-column:1/-1}
.org-hero .ph{margin:0;border-radius:18px;overflow:hidden;background:var(--sunken);border:2px solid var(--line);position:relative}
.org-hero .ph img.big{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.org-hero .ph .emo{display:grid;place-items:center;aspect-ratio:4/3;font-size:5rem}
.org-hero figcaption{position:absolute;left:0;right:0;bottom:0;padding:4px 10px;font-size:.72rem;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff}
.org-hero figcaption a{color:#fff}
.org-hero .ph.zoom figcaption{font-size:.8rem}
.org-info h3{margin:.1em 0 .3em;font-size:1.35rem}
.org-info p{margin:.2em 0 .6em}
.search-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.sbtn{display:inline-flex;align-items:center;gap:4px;padding:7px 12px;border-radius:999px;border:2px solid var(--line-strong);background:#fff;color:var(--fg);text-decoration:none;font-size:.9rem;font-weight:500;transition:.12s}
.sbtn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.sbtn.s-naver,.sbtn.s-naverimg{border-color:#03c75a}.sbtn.s-naver:hover,.sbtn.s-naverimg:hover{background:#e9faf0}
.sbtn.s-google,.sbtn.s-googleimg{border-color:#4285f4}.sbtn.s-google:hover,.sbtn.s-googleimg:hover{background:#eef4ff}
.sbtn.s-dict{border-color:#ffb74a}.sbtn.s-dict:hover{background:var(--accent-soft)}
.search-row.compact .sbtn{padding:4px 10px;font-size:.8rem}
.bubble .info{margin:10px 0 6px;padding:12px 14px;border-radius:14px;background:#fffaf0;border:2px solid #ffe1a8}
.bubble .info b{font-family:var(--font-head);font-weight:400;color:var(--accent-ink)}
.bubble .info p{margin:.3em 0 0;font-size:1.08rem;line-height:1.65}
.lvl{display:flex;gap:4px;margin:8px 0 2px;flex-wrap:wrap}
.lvl span{font-size:.75rem;padding:2px 9px;border-radius:999px;background:var(--sunken);border:1.5px solid var(--line);color:var(--fg-3)}
.lvl span.on{background:var(--mentor);border-color:var(--mentor);color:#fff}
.lvl span.ok{background:var(--mentor-soft);border-color:#d9cdff;color:#4a2fbf}
.cand .ce{width:64px;height:64px;border-radius:12px;overflow:hidden;flex:0 0 64px;display:grid;place-items:center;background:var(--sunken)}
.cand .ce img{width:100%;height:100%;object-fit:cover}
.work .thumb img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.org-hero,.org-hero:has(.zoom){grid-template-columns:1fr}}
