/* PLANT Lab — 디코랩 연구실 홈페이지 디자인 샘플(가상 식물생리·스마트팜 연구실)
   색: 엽록 초록 · LED 보라(문의 단추에만) · 흙 · 짙은 초록 띠. 글꼴: Pretendard(본문·국문 제목) + Gabarito(영문·숫자 제목, OFL) */
:root {
  color-scheme: light;
  --leaf: #1DB954;        /* 엽록 초록 — 선·점·띠(글자색으로는 --leaf-ink) */
  --leaf-ink: #0A6E30;
  --sprout: #7BE38F;      /* 어두운 면 위 강조 글자 */
  --led: #A100FF;         /* LED 보라 — 문의·전환 단추와 재배실 빛에만 */
  --led-dark: #8300D0;
  --soil: #2B1D14;        /* 흙 — 바닥글·재배 컵 */
  --band: #0B3B22;        /* 짙은 초록 띠 — 머리글·서브 머리 */
  --chamber: #0E1F16;     /* 생육 상자 안 */
  --ink: #14201A;
  --body: #36463C;
  --muted: #56665C;
  --line: #DCE6DF;
  --line-strong: #B9C8BE;
  --mist: #F1F7F3;
  --font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  --disp: "Gabarito", var(--font);
  --hd: 72px;
  --r: 16px;
}
@media (max-width: 767px) { :root { --hd: 62px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font); font-size: 17px; line-height: 1.75; letter-spacing: -.01em;
  color: var(--ink); background: #fff;
  word-break: keep-all; overflow-wrap: anywhere; overflow-x: clip;
}
h1, h2, h3 { margin: 0; line-height: 1.3; letter-spacing: -.02em; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
a { color: inherit; }
svg { max-width: 100%; }
img { max-width: 100%; height: auto; }
button, input { font: inherit; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 16px; top: -80px; z-index: 300; padding: 10px 16px; background: var(--ink); color: #fff; border-radius: 8px; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--led); outline-offset: 2px; }
.num { font-variant-numeric: tabular-nums; }
.ph { display: inline-block; padding: 0 8px; border: 1px dashed currentColor; border-radius: 6px; font-size: .9em; opacity: .78; }
.note { display: inline-block; font-size: 13px; padding: 0 8px; border: 1px dashed currentColor; border-radius: 6px; opacity: .8; }
.fine { margin-top: 28px; font-size: 14px; color: var(--muted); }
.wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.wrap--narrow { max-width: 1000px; }
@media (max-width: 767px) { .wrap { padding: 0 16px; } }

/* 안내 띠(고정은 공통 sample-banner.css 가 한다) */
.sample-banner { background: var(--soil); color: rgba(255,255,255,.86); font-size: 13px; line-height: 1.5; }
.sample-banner p { margin: 0; }
.sample-banner__inner { display: flex; align-items: center; gap: 10px; padding-block: 8px; }
.sample-banner__tag { flex: none; padding: 2px 9px; border-radius: 99px; background: var(--sprout); color: var(--soil); font-weight: 700; font-size: 12px; }
.sample-banner__link { color: #fff; text-underline-offset: 3px; }

/* ---------- 단추 ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 24px; border-radius: 99px; border: 1.5px solid transparent;
  font-weight: 700; font-size: 16px; text-decoration: none; cursor: pointer; background: none; color: inherit;
  transition: background-color .2s, border-color .2s, color .2s; }
.btn svg { width: 16px; height: 16px; }
.btn--led { background: var(--led); color: #fff; }
.btn--led:hover { background: var(--led-dark); }
.btn--line { border-color: rgba(255,255,255,.75); color: #fff; }
.btn--line:hover { background: rgba(255,255,255,.12); }
.btn--line-dark { border-color: var(--ink); color: var(--ink); }
.btn--line-dark:hover { background: var(--ink); color: #fff; }
.more { font-weight: 700; color: var(--leaf-ink); text-decoration: none; border-bottom: 2px solid var(--leaf); padding-bottom: 2px; }
.more:hover { color: var(--ink); }

/* ---------- 머리글: 투명 → 짙은 초록 띠 ---------- */
.hd { position: fixed; top: 0; left: 0; right: 0; z-index: 50; color: #fff; transition: background-color .3s, box-shadow .3s; }
.hd.is-solid, .hd.mega-open { background: var(--band); box-shadow: 0 1px 0 rgba(255,255,255,.08), 0 8px 24px rgba(4,24,13,.18); }
.hd__in { position: relative; z-index: 2; display: flex; align-items: center; gap: 20px; height: var(--hd); max-width: 1400px; margin: 0 auto; padding: 0 32px; }
.hd__logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; flex: none; }
.mark { width: 34px; height: 34px; color: #fff; }
.hd__name { font-family: var(--disp); font-weight: 800; font-size: 23px; letter-spacing: -.01em; }
.hd__name b, .allmenu__logo b, .ft__logo b { color: var(--sprout); font-weight: 800; }
.hd__ko { font-size: 13.5px; opacity: .82; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.35); line-height: 1.3; }
.gnb { margin-left: auto; }
.gnb__list { display: flex; list-style: none; margin: 0; padding: 0; }
.gnb__item { position: relative; min-width: 118px; }
.gnb__link { position: relative; display: block; padding: 0 16px; line-height: var(--hd); font-weight: 600; font-size: 17px; text-decoration: none; }
.gnb__link::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 16px; height: 3px; border-radius: 2px; background: var(--sprout); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.gnb__link:hover::after, .gnb__link[aria-current]::after, .gnb__item:focus-within .gnb__link::after { transform: scaleX(1); }
.gnb__sub { position: absolute; top: 100%; left: 0; min-width: 100%; list-style: none; margin: 0; padding: 18px 16px 24px; display: none; }
.hd.mega-open .gnb__sub { display: block; }
.gnb__sub a { display: block; padding: 6px 0; font-size: 15.5px; color: rgba(255,255,255,.8); text-decoration: none; white-space: nowrap; }
.gnb__sub a:hover, .gnb__sub a:focus-visible { color: #fff; text-decoration: underline; text-decoration-color: var(--sprout); text-underline-offset: 5px; }
.gnb__sub a[aria-current] { color: var(--sprout); font-weight: 700; }
.mega-bg { position: absolute; left: 0; right: 0; top: 100%; height: 200px; background: var(--band); border-top: 1px solid rgba(255,255,255,.12); box-shadow: 0 18px 30px rgba(4,24,13,.25); opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; }
.hd.mega-open .mega-bg { opacity: 1; visibility: visible; }
.hd__right { display: flex; align-items: center; gap: 10px; flex: none; }
.gnb + .hd__right { margin-left: 8px; }
.hd__cta { min-height: 42px; padding: 0 18px; font-size: 15px; }
.hd__menu { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: 99px; border: 1.5px solid rgba(255,255,255,.4); background: none; color: #fff; cursor: pointer; font-weight: 600; font-size: 15px; }
.hd__menu:hover { background: rgba(255,255,255,.1); }
.hd__bars { display: grid; gap: 4px; width: 18px; }
.hd__bars i { display: block; height: 2px; border-radius: 1px; background: currentColor; }
.hd__bars i:nth-child(2) { width: 70%; }
@media (max-width: 1279px) { .hd__ko { display: none; } .gnb__item { min-width: 104px; } .gnb__link { padding: 0 12px; } .gnb__link::after { left: 12px; right: 12px; } .gnb__sub { padding-inline: 12px; } }
@media (max-width: 1099px) { .gnb { display: none; } .hd__right { margin-left: auto; } }
@media (max-width: 767px) { .hd__in { padding: 0 16px; } .hd__cta { display: none; } .hd__name { font-size: 21px; } .mark { width: 30px; height: 30px; } }

/* 전체 메뉴 */
.allmenu { position: fixed; top: var(--sample-banner-h, 0px); left: 0; right: 0; bottom: 0; z-index: 80; background: var(--band); color: #fff; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 48px; }
.allmenu__head { display: flex; align-items: center; justify-content: space-between; height: var(--hd); }
.allmenu__logo { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-family: var(--disp); font-weight: 800; font-size: 22px; }
.allmenu__close { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.4); background: none; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.allmenu__list { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 32px 28px; padding-top: 28px; padding-bottom: 32px; }
.allmenu__g ul { list-style: none; margin: 0; padding: 0; }
.allmenu__t { margin: 0 0 10px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.22); font-size: 20px; font-weight: 800; }
.allmenu__t span { margin-left: 6px; font-family: var(--disp); font-size: 14px; font-weight: 500; color: var(--sprout); }
.allmenu__g a { display: block; padding: 7px 0; font-size: 17px; color: rgba(255,255,255,.88); text-decoration: none; }
.allmenu__g a:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
.allmenu__g a[aria-current] { color: var(--sprout); font-weight: 700; }
.allmenu__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.18); }
.allmenu__foot > a:not(.btn) { color: rgba(255,255,255,.85); }
@media (max-width: 767px) { .allmenu__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; } .allmenu__t { font-size: 18px; } .allmenu__t span { display: block; margin: 0; } }
body.menu-open { overflow: hidden; }

/* ---------- 메인 히어로: 해가 뜨며 자라는 식물 ---------- */
.hero { position: relative; background: #0B1230; color: #fff; }
.hero__stage { position: relative; height: 100svh; min-height: 620px; overflow: hidden; }
html.has-motion .hero { height: 250vh; }
html.has-motion .hero__stage { position: sticky; top: 0; height: calc(100svh - var(--sample-banner-h, 0px)); }
.hero__scene { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hero__copy { position: relative; z-index: 2; padding-top: calc(var(--hd) + 9vh); }
.hero__eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0 0 18px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.88); }
.hero__eyebrow span { font-family: var(--disp); font-weight: 800; font-size: 17px; color: var(--sprout); }
.hero__title { max-width: 12.5em; font-weight: 300; font-size: clamp(36px, 1.6rem + 3vw, 68px); line-height: 1.2; letter-spacing: -.015em; }
.hero__title .ln { display: block; }
.hero__title b { font-weight: 700; color: var(--sprout); }
.hero__lead { max-width: 31em; margin: 22px 0 0; font-size: 18px; line-height: 1.7; color: rgba(255,255,255,.92); }
.hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero__day { position: absolute; z-index: 2; left: max(32px, calc((100vw - 1280px) / 2 + 32px)); bottom: 4.5vh; margin: 0; display: flex; align-items: baseline; gap: 4px; font-family: var(--disp); color: #fff; }
.hero__day span { font-size: 26px; font-weight: 700; color: var(--sprout); }
.hero__day b { font-size: clamp(52px, 2rem + 3vw, 84px); font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.hero__day small { margin-left: 10px; font-family: var(--font); font-size: 14px; color: rgba(255,255,255,.75); }
.hero__hint { position: absolute; z-index: 2; right: max(32px, calc((100vw - 1280px) / 2 + 32px)); bottom: 5vh; margin: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; color: rgba(255,255,255,.8); }
.hero__hint i { display: block; width: 1.5px; height: 34px; background: linear-gradient(rgba(255,255,255,0), #fff); }
html:not(.has-motion) .hero__hint { display: none; }
.hero .lf { transform-box: view-box; }
@media (max-width: 767px) {
  .hero__copy { padding-top: calc(var(--hd) + 28px); }
  .hero__title { font-size: 34px; }
  .hero__lead { display: none; }
  .hero__btns { margin-top: 22px; }
  .hero__btns .btn { min-height: 44px; padding: 0 18px; font-size: 15px; }
  .hero__day { left: 16px; bottom: 18px; }
  .hero__day b { font-size: 48px; }
  .hero__hint { display: none; }
}

/* ---------- 28일 타임랩스 필름 ---------- */
.lapse { background: var(--chamber); color: #fff; padding: 76px 0 70px; }
.lapse__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 16px 48px; align-items: end; margin-bottom: 28px; }
.lapse__head p { margin: 0; color: rgba(255,255,255,.82); }
.lapse__film { position: relative; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.lapse__list { list-style: none; margin: 0 auto; padding: 30px 32px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: 6px; max-width: 1440px; min-width: min-content;
  background: #070F0B;
  background-image: linear-gradient(90deg, rgba(255,255,255,.22) 0 14px, transparent 14px 28px), linear-gradient(90deg, rgba(255,255,255,.22) 0 14px, transparent 14px 28px);
  background-size: 28px 8px, 28px 8px; background-repeat: repeat-x; background-position: 8px 11px, 8px calc(100% - 11px); }
.frame { scroll-snap-align: start; background: #13261B; border-radius: 6px; padding: 12px 10px 14px; text-align: center; }
.frame__pic .psvg { display: block; width: 100%; height: auto; }
.frame__d { margin: 6px 0 0; font-family: var(--disp); color: var(--sprout); }
.frame__d span { font-size: 16px; font-weight: 700; }
.frame__d b { font-size: 30px; font-weight: 800; }
.frame__v { margin: 0; font-size: 14px; color: rgba(255,255,255,.82); }
@media (max-width: 767px) { .lapse { padding: 56px 0 48px; } .lapse__head { grid-template-columns: minmax(0, 1fr); } .lapse__list { grid-auto-columns: 136px; padding: 30px 16px; } }

/* 공통 섹션 제목 */
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--disp); font-weight: 700; font-size: 15px; letter-spacing: .12em; text-transform: uppercase; color: var(--leaf-ink); }
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--leaf); }
.sec-t { margin: 6px 0 14px; font-size: clamp(28px, 1.3rem + 1.4vw, 42px); font-weight: 700; letter-spacing: -.015em; }
.sec-t--light { color: #fff; }
.sec-t--sm { margin: 56px 0 18px; font-size: clamp(22px, 1.1rem + .6vw, 28px); }

/* ---------- 같은 상추, 다른 빛 ---------- */
.same { padding: 100px 0; }
.same__in { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.same__txt p { color: var(--body); }
.same__txt .btn { margin-top: 8px; }
.bays { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bay__box { position: relative; overflow: hidden; background: var(--chamber); border-radius: 14px; padding: 34px 10px 0; border: 6px solid #C9D3CC; }
.bay__box::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 85% 70% at 50% 0, color-mix(in srgb, var(--led) 48%, transparent), transparent 72%); }
.bay__bar { position: absolute; top: 10px; left: 16%; right: 16%; height: 7px; border-radius: 4px; background: var(--led); box-shadow: 0 0 16px 3px var(--led); }
.bay__box svg { position: relative; display: block; width: 100%; height: auto; }
.bay__t { margin-top: 14px; font-size: 19px; font-weight: 700; }
.bay__mix { margin: 2px 0 0; font-size: 14px; color: var(--muted); }
.bay__v { margin: 2px 0 8px; font-size: 15px; }
.bay__go { font-size: 15px; font-weight: 700; color: var(--leaf-ink); text-underline-offset: 4px; }
@media (max-width: 1023px) { .same__in { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 599px) {
  .same { padding: 64px 0; }
  .bays { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .bay { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 0 16px; align-items: center; }
  .bay__box { grid-row: span 4; }
  .bay__t { margin-top: 0; }
}

/* ---------- 연구: 세 단 재배 선반 ---------- */
.rack { padding: 100px 0; background: var(--mist); }
.rack__head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 24px; margin-bottom: 36px; }
.rack__head .eyebrow { flex-basis: 100%; }
.rack__head .sec-t { margin-bottom: 0; }
.rack__head .more { margin-left: auto; margin-bottom: 8px; }
.rack__frame { border-left: 12px solid #8C9A90; border-right: 12px solid #8C9A90; border-top: 12px solid #C9D3CC; background: #C9D3CC; display: grid; gap: 12px; }
.tier { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 48px 40px 36px; background: #fff; overflow: hidden; }
.tier::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 160px; background: linear-gradient(color-mix(in srgb, var(--tc) 13%, transparent), transparent); pointer-events: none; }
.tier__led { position: absolute; top: 0; left: 24px; right: 24px; height: 8px; border-radius: 0 0 6px 6px; background: var(--tc); box-shadow: 0 6px 22px color-mix(in srgb, var(--tc) 55%, transparent); }
.tier__txt { position: relative; }
.tier__en { margin: 0; font-family: var(--disp); font-weight: 700; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--ti); }
.tier__t { margin: 4px 0 14px; font-size: clamp(26px, 1.3rem + 1vw, 36px); font-weight: 800; }
.tier__q { font-size: 19px; font-weight: 600; line-height: 1.55; }
.tier__one { color: var(--body); }
.tier__meta { font-size: 15px; color: var(--muted); }
.tier__meta b { color: var(--ink); }
.tier__go { font-weight: 700; color: var(--ti); text-underline-offset: 4px; }
.tier__fig { position: relative; }
@media (max-width: 899px) {
  .rack { padding: 64px 0; }
  .rack__frame { border-width: 8px 6px 0; gap: 8px; }
  .tier { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 36px 20px 28px; }
  .rack__head .more { margin-left: 0; }
}

/* ---------- 논문 목록(공통) ---------- */
.autocheck { display: inline-block; margin: 4px 0 0; padding: 6px 14px; border-radius: 14px; background: var(--mist); font-size: 14.5px; color: var(--body); }
.autocheck .num { white-space: nowrap; }
.dot { display: inline-block; margin-right: 8px; vertical-align: 1px; width: 8px; height: 8px; border-radius: 50%; background: var(--leaf); box-shadow: 0 0 0 4px rgba(29,185,84,.18); }
.publist { list-style: none; margin: 0; padding: 0; }
.pub { display: grid; grid-template-columns: 3.2em minmax(0, 1fr) auto; gap: 6px 18px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: start; }
.pub__no { padding-top: 3px; font-family: var(--disp); font-weight: 700; font-size: 15px; color: #7F8F85; font-variant-numeric: tabular-nums; }
.pub__title { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.45; }
.pub__title a { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; text-decoration-color: rgba(29,185,84,.7); }
.pub__title a:hover { color: var(--leaf-ink); }
.pub__au { margin: 0; font-size: 15.5px; color: var(--body); }
.pub__au b { color: var(--ink); }
.pub__src { margin: 0; font-size: 15px; color: var(--muted); }
.pub__src i { font-style: italic; }
.pub__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.pub__act { display: flex; gap: 6px; align-self: end; }
.pbtn { display: inline-flex; align-items: center; gap: 5px; height: 32px; padding: 0 12px; border: 1.5px solid var(--line-strong); border-radius: 99px; background: #fff; color: var(--ink); font-family: var(--disp); font-weight: 700; font-size: 13px; text-decoration: none; cursor: pointer; }
.pbtn svg { width: 14px; height: 14px; }
.pbtn:hover { border-color: var(--ink); }
.publist--mini .pub { grid-template-columns: 2.6em minmax(0, 1fr); padding: 18px 0; }
.publist--mini .pub__title { font-size: 16.5px; }
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 1px 10px; border-radius: 99px; background: var(--mist); color: var(--body); font-size: 13px; font-weight: 600; line-height: 1.7; }
.tag i { width: 8px; height: 8px; border-radius: 50%; background: var(--tc); }
.tag--light { --tc: #FF3D2E; } .tag--root { --tc: #0091FF; } .tag--pheno { --tc: #1DB954; }
.tag--type { background: #fff; border: 1px solid var(--line-strong); }
.tag--done { background: #E3F5E8; color: var(--leaf-ink); }
.tag--wait { background: #F4EAFE; color: #6A00A8; }
@media (max-width: 767px) {
  .pub { grid-template-columns: 2.4em minmax(0, 1fr); }
  .pub__act { grid-column: 2; justify-self: start; }
  .pub__title { font-size: 17px; }
}

/* 메인 최근 논문 */
.papers { padding: 100px 0; }
.papers__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 48px; margin-top: 36px; align-items: start; }
.feat { padding: 24px; border: 1px solid var(--line); border-radius: 18px; }
.feat__fig { padding: 12px; border-radius: 12px; background: var(--mist); }
.feat__k { margin: 18px 0 4px; font-size: 14px; font-weight: 700; color: var(--leaf-ink); }
.feat__t { font-size: 21px; font-weight: 700; line-height: 1.4; }
.feat__s { margin-top: 10px; color: var(--body); }
.papers__all { margin: 36px 0 0; text-align: center; }
@media (max-width: 1023px) { .papers { padding: 64px 0; } .papers__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* 과제 목록(공통) */
.nowprj { padding: 0 0 100px; }
.nowprj__head { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 24px; margin-bottom: 24px; }
.nowprj__head .eyebrow { flex-basis: 100%; }
.nowprj__head .sec-t { margin-bottom: 0; }
.nowprj__head .more { margin-left: auto; margin-bottom: 8px; }
.prjlist { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.prj { display: grid; grid-template-columns: 2.6em minmax(0, 1fr) auto; gap: 8px 20px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: start; }
.prjlist--plain .prj { grid-template-columns: minmax(0, 1fr) auto; }
.prj__no { padding-top: 2px; font-family: var(--disp); font-weight: 700; font-size: 15px; color: #7F8F85; }
.prj__t { margin: 0 0 8px; font-size: 18px; font-weight: 700; }
.prj__meta { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 0; font-size: 15px; }
.prj__meta div { display: flex; gap: 8px; }
.prj__meta dt { color: var(--muted); }
.prj__meta dd { margin: 0; font-weight: 600; }
@media (max-width: 767px) {
  .nowprj { padding-bottom: 64px; }
  .nowprj__head .more { margin-left: 0; }
  .prj { grid-template-columns: 2em minmax(0, 1fr); }
  .prjlist--plain .prj { grid-template-columns: minmax(0, 1fr); }
  .prj__tag { grid-column: 2; }
  .prjlist--plain .prj__tag { grid-column: 1; }
}

/* 메인 소식 */
.board { padding: 92px 0; background: var(--mist); }
.board__in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: start; }
.board__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.nl { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.nl a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 16px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.nl a:hover .nl__t { color: var(--leaf-ink); text-decoration: underline; text-underline-offset: 4px; }
.nl__c { padding: 0 9px; border-radius: 99px; background: #E3F5E8; color: var(--leaf-ink); font-size: 13px; font-weight: 700; }
.nl__t { font-weight: 600; }
.nl__d { font-size: 14px; color: var(--muted); }
.ncard { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; text-decoration: none; }
.ncard__pic .thumb { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; }
.ncard__d, .ncard__t, .ncard__x { margin-left: 22px; margin-right: 22px; }
.ncard__d { margin-top: 18px; margin-bottom: 2px; font-size: 14px; color: var(--muted); }
.ncard__t { font-size: 20px; font-weight: 700; }
.ncard__x { margin-top: 8px; margin-bottom: 22px; font-size: 15.5px; color: var(--body); }
a.ncard:hover .ncard__t { color: var(--leaf-ink); }
@media (max-width: 899px) {
  .board { padding: 64px 0; }
  .board__in { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .nl a { grid-template-columns: auto 1fr; gap: 4px 10px; }
  .nl__t { grid-column: 1 / -1; order: 3; }
  .nl__d { justify-self: end; }
}

/* 메인 문의 */
.ask { position: relative; padding: 76px 0; background: var(--band); color: #fff; }
.ask::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: repeating-linear-gradient(90deg, #FF3D2E 0 22px, #2F6BFF 22px 30px, #FF3D2E 30px 52px, #8B1E3F 52px 60px); }
.ask__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px 48px; }
.ask__in p { margin: 0; color: rgba(255,255,255,.85); max-width: 36em; }
.ask__act { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- 서브 머리: 짙은 초록 띠 + LED 빛 + 모종 트레이 ---------- */
.sub { position: relative; z-index: 5; padding-top: calc(var(--hd) + 36px); background: var(--band); color: #fff; }
.sub::before { content: ""; position: absolute; z-index: 1; top: 0; left: 0; right: 0; height: 6px; background: repeating-linear-gradient(90deg, #FF3D2E 0 22px, #2F6BFF 22px 30px, #FF3D2E 30px 52px, #8B1E3F 52px 60px); }
.sub__light { position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  background: radial-gradient(ellipse 60% 75% at 72% 0, rgba(161,0,255,.30), transparent 70%), radial-gradient(ellipse 45% 60% at 22% 0, rgba(255,61,46,.16), transparent 70%); }
.sub__in { position: relative; z-index: 2; padding-bottom: 24px; }
.loc { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 15.5px; }
.loc__home { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.13); color: #fff; }
.loc__home svg { width: 18px; height: 18px; }
.loc__sep { opacity: .45; }
.loc__dd { position: relative; }
.loc__dd summary { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 99px; background: rgba(255,255,255,.13); font-weight: 600; cursor: pointer; list-style: none; }
.loc__dd summary::-webkit-details-marker { display: none; }
.loc__dd summary:hover { background: rgba(255,255,255,.22); }
.loc__dd--cur summary { background: #fff; color: var(--band); font-weight: 700; }
.loc__dd--cur summary:hover { background: #E3F5E8; }
.caret { width: 12px; height: 12px; transition: transform .2s; }
.loc__dd[open] .caret { transform: rotate(180deg); }
.loc__dd ul { position: absolute; top: calc(100% + 8px); left: 0; z-index: 30; min-width: 210px; list-style: none; margin: 0; padding: 8px; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 14px 36px rgba(4,24,13,.28); }
.loc__dd ul a { display: block; padding: 9px 12px; border-radius: 9px; text-decoration: none; font-size: 16px; white-space: nowrap; }
.loc__dd ul a:hover { background: var(--mist); }
.loc__dd ul a[aria-current] { background: #E3F5E8; color: var(--leaf-ink); font-weight: 700; }
.loc__leaf { font-weight: 600; }
.sub__en { margin: 34px 0 4px; font-family: var(--disp); font-weight: 800; font-size: clamp(46px, 1.8rem + 4.4vw, 108px); line-height: .95; letter-spacing: -.025em; color: var(--sprout); }
.sub__title { font-size: clamp(28px, 1.3rem + 1.2vw, 40px); font-weight: 700; }
.sub__desc { margin: 10px 0 0; color: rgba(255,255,255,.86); }
.sub__tray { position: relative; z-index: 1; display: block; width: 100%; height: 84px; }
.page { padding-top: 30px; padding-bottom: 100px; }
.stamp { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 22px; font-size: 14px; color: var(--muted); }
.stamp svg { width: 15px; height: 15px; }
.intro { max-width: 44em; font-size: 18px; color: var(--body); }
@media (max-width: 767px) {
  .sub { padding-top: calc(var(--hd) + 22px); }
  .sub__en { margin-top: 24px; }
  .sub__tray { height: 60px; }
  .page { padding-bottom: 72px; }
  .loc { font-size: 15px; }
  .loc__dd summary { padding: 0 13px; }
}

/* 표 */
.tablewrap { position: relative; overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: 15.5px; }
.tbl th, .tbl td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tbl thead th { background: var(--mist); border-bottom: 2px solid var(--ink); font-weight: 700; white-space: nowrap; }
.tbl tbody th { font-weight: 700; }
.tbl--kv th { width: 8em; color: var(--leaf-ink); }
.tbl--recipe th small { display: block; font-weight: 500; font-size: 13px; color: var(--muted); }
.sw { display: inline-block; width: 22px; height: 22px; margin-right: 6px; border-radius: 50%; vertical-align: -5px; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line-strong); }
@media (max-width: 767px) { .tbl { min-width: 620px; } .tbl--kv { min-width: 0; } }

/* 인사말 */
.greet { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
.greet__lead { font-size: clamp(21px, 1.1rem + .6vw, 26px); font-weight: 700; line-height: 1.5; }
.greet__txt p:not(.greet__lead) { color: var(--body); }
.greet__sign { margin-top: 24px; }
.greet__fig { margin: 0; padding: 28px 16px 14px; border-radius: 20px; background: var(--chamber); text-align: center; }
.greet__fig svg { display: block; width: 100%; height: auto; }
.greet__fig figcaption { margin-top: 8px; font-size: 13px; color: rgba(255,255,255,.72); }
.prins { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.prin { padding: 26px; border-radius: 18px; background: var(--mist); }
.prin__leaf { display: block; width: 34px; height: 34px; margin-bottom: 14px; border-radius: 0 60% 0 60%; background: var(--leaf); }
.prin__t { margin-bottom: 8px; font-size: 20px; font-weight: 800; }
.prin p { margin: 0; color: var(--body); }
.steps { list-style: none; margin: 0; padding: 0 0 0 4px; border-left: 3px solid var(--leaf); }
.steps li { position: relative; padding: 0 0 22px 28px; }
.steps li::before { content: ""; position: absolute; left: -9.5px; top: 8px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--leaf); }
.steps .num { font-family: var(--disp); font-weight: 800; font-size: 19px; color: var(--leaf-ink); }
.steps p { margin: 2px 0 0; color: var(--body); }
.steps--tight li { padding-bottom: 16px; }
@media (max-width: 899px) { .greet { grid-template-columns: minmax(0, 1fr); gap: 28px; } .greet__fig { max-width: 320px; } .prins { grid-template-columns: minmax(0, 1fr); } }

/* 교수 */
.prof { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 48px; align-items: start; }
.prof__pic { margin: 0; }
.sil { display: block; width: 100%; height: auto; border-radius: 18px; }
.prof__pic figcaption { margin-top: 8px; font-size: 13px; color: var(--muted); }
.prof__pos { margin: 0 0 4px; font-weight: 700; color: var(--leaf-ink); }
.prof__name { margin-bottom: 16px; font-size: clamp(30px, 1.4rem + 1vw, 38px); font-weight: 800; }
.prof__name span { margin-left: 8px; font-family: var(--disp); font-size: .6em; font-weight: 500; color: var(--muted); }
.prof__txt > p { color: var(--body); }
.prof__dl { margin: 18px 0 0; border-top: 2px solid var(--ink); }
.prof__dl div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.prof__dl dt { font-weight: 700; color: var(--leaf-ink); }
.prof__dl dd { margin: 0; }
.cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.dots { margin: 0; padding-left: 1.2em; color: var(--body); }
.dots li { margin-bottom: 6px; }
@media (max-width: 899px) { .prof { grid-template-columns: minmax(0, 1fr); gap: 24px; } .prof__pic { max-width: 240px; } .cols2 { grid-template-columns: minmax(0, 1fr); gap: 0; } }

/* 구성원 뒤집기 카드 (구성원 페이지에서만) */
.legend { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.pgroup__t { display: flex; align-items: baseline; gap: 10px; margin: 46px 0 18px; font-size: 24px; font-weight: 800; }
.pgroup__t small { font-size: 17px; color: var(--leaf-ink); }
.pcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.pc { position: relative; perspective: 1200px; }
.pc__in { position: relative; display: grid; min-height: 300px; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.3, .7, .2, 1); }
.pc__face { grid-area: 1 / 1; display: flex; flex-direction: column; padding: 24px; border-radius: 18px; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.pc__front { background: var(--mist); border-top: 6px solid var(--tc); }
.pc__back { background: var(--band); color: #fff; transform: rotateY(180deg); }
.pc.is-flipped .pc__in, .pc:focus-within .pc__in { transform: rotateY(180deg); }
@media (hover: hover) { .pc:hover .pc__in { transform: rotateY(180deg); } }
.pc__av { display: grid; place-items: center; width: 84px; height: 84px; margin-bottom: auto; border-radius: 50%; background: #fff; border: 3px solid var(--tc); color: var(--ti); font-size: 25px; font-weight: 800; }
.pc__pos { margin: 18px 0 2px; font-size: 14px; font-weight: 700; color: var(--ti); }
.pc__name { font-size: 22px; font-weight: 800; }
.pc__name span, .pc__bt span { display: block; font-family: var(--disp); font-size: 15px; font-weight: 500; color: var(--muted); }
.pc__bt span { color: rgba(255,255,255,.7); }
.pc__topic { margin: 10px 0 0; font-size: 15.5px; color: var(--body); }
.pc__bt { margin: 0 0 12px; font-size: 19px; font-weight: 800; line-height: 1.3; }
.pc__dl { margin: 0 0 16px; }
.pc__dl div { display: grid; grid-template-columns: 3.4em minmax(0, 1fr); gap: 8px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: 15px; }
.pc__dl dt { color: rgba(255,255,255,.65); }
.pc__dl dd { margin: 0; }
.pc__dl a { color: var(--sprout); }
.pc__back .tag { margin-top: auto; align-self: flex-start; background: rgba(255,255,255,.13); color: #fff; }
.pc__flip { position: absolute; z-index: 3; top: 14px; right: 14px; height: 32px; padding: 0 12px; border-radius: 99px; border: 1.5px solid var(--line-strong); background: #fff; color: var(--ink); font-size: 13px; font-weight: 700; cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .pc__flip { opacity: 0; } .pc__flip:focus-visible, .pc:hover .pc__flip { opacity: 1; } }

@media (max-width: 599px) { .pc__in { min-height: 220px; } .pc__av { width: 64px; height: 64px; font-size: 20px; } }

/* 연구 분야 */
.jump { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.jump a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1.5px solid var(--line-strong); border-radius: 99px; font-weight: 600; text-decoration: none; }
.jump a:hover { border-color: var(--ink); }
.jump i { width: 10px; height: 10px; border-radius: 50%; background: var(--tc); }
.topic { position: relative; margin-top: 64px; padding-top: 30px; border-top: 1px solid var(--line); scroll-margin-top: 110px; }
.topic__led { display: block; width: 120px; height: 8px; border-radius: 4px; background: var(--tc); box-shadow: 0 4px 18px color-mix(in srgb, var(--tc) 60%, transparent); }
.topic__en { margin: 16px 0 0; font-family: var(--disp); font-weight: 700; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--ti); }
.topic__t { font-size: clamp(28px, 1.3rem + 1.2vw, 38px); font-weight: 800; }
.topic__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 22px; align-items: start; }
.topic__fig { margin: 0; padding: 16px; border-radius: 16px; background: var(--mist); }
.topic__fig figcaption, .wide figcaption, .visit__map figcaption { margin-top: 6px; font-size: 13px; color: var(--muted); }
.topic__q { font-size: 20px; font-weight: 700; line-height: 1.5; }
.topic__more { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; margin-top: 30px; }
.topic__h3 { margin-bottom: 4px; font-size: 18px; font-weight: 800; }
.mem { list-style: none; margin: 0; padding: 0; }
.mem li { padding: 9px 0; border-bottom: 1px solid var(--line); }
.mem span { margin-left: 6px; font-size: 14px; color: var(--muted); }
.fig { display: block; width: 100%; height: auto; }
@media (max-width: 899px) { .topic__grid, .topic__more { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* 생장 레시피 */
.lab { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 44px; margin-top: 26px; align-items: start; }
.chamber { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 480px; padding: 60px 24px 18px; overflow: hidden; border: 10px solid #C9D3CC; border-radius: 24px; background: var(--chamber); }
.chamber__bar { position: absolute; z-index: 2; top: 14px; left: 10%; right: 10%; display: flex; justify-content: space-around; align-items: center; height: 16px; padding: 0 8px; border-radius: 8px; background: #2A332D; }
.chamber__bar i { width: 22px; height: 6px; border-radius: 3px; background: var(--led); box-shadow: 0 0 12px 3px var(--led); }
.chamber__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse 85% 75% at 50% 0, color-mix(in srgb, var(--led) 50%, transparent), transparent 72%); }
.chamber__plant { position: relative; }
.chamber__plant svg { display: block; width: min(100%, 330px); height: auto; margin: 0 auto; }
.chamber__cap { position: relative; margin: 10px 0 0; text-align: center; font-size: 14px; color: rgba(255,255,255,.75); }
.ctrl__set { margin: 0; padding: 0; border: 0; min-width: 0; }
.ctrl__set legend { padding: 0; margin-bottom: 6px; font-size: 19px; font-weight: 800; }
.ctrl__set legend .num { margin-left: 6px; font-size: 14px; font-weight: 500; color: var(--muted); }
.sl { padding: 14px 0; border-bottom: 1px solid var(--line); }
.sl__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.sl label { font-size: 17px; font-weight: 700; }
.sl__nm { margin-left: 4px; font-size: 14px; font-weight: 500; color: var(--muted); }
.sl output { font-family: var(--disp); font-size: 26px; font-weight: 800; color: var(--sc); }
.sl input[type="range"] { display: block; width: 100%; height: 30px; margin: 4px 0 0; accent-color: var(--sc); cursor: pointer; }
.sl__h { margin: 0; font-size: 13.5px; color: var(--muted); }
.presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.preset { height: 40px; padding: 0 16px; border: 1.5px solid var(--line-strong); border-radius: 99px; background: #fff; color: var(--ink); font-size: 15px; font-weight: 600; cursor: pointer; }
.preset:hover { border-color: var(--ink); }
.preset[aria-pressed="true"] { background: var(--led); border-color: var(--led); color: #fff; }
.res { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.res div { padding: 12px 14px; border-radius: 12px; background: var(--mist); }
.res dt { font-size: 13.5px; color: var(--muted); }
.res dd { margin: 0; font-size: 15px; }
.res b { margin-right: 2px; font-family: var(--disp); font-size: 28px; font-weight: 800; }
.res__ratio { margin: 14px 0 4px; font-size: 15px; color: var(--muted); }
.res__ratio b { color: var(--ink); }
.res__note { margin: 10px 0 18px; padding: 12px 16px; border-left: 4px solid var(--leaf); background: #F3FBF5; font-size: 16.5px; font-weight: 700; color: var(--leaf-ink); }
.ref { margin-top: 64px; }
.ref .sec-t--sm { margin-top: 0; }
@media (max-width: 1023px) { .lab { grid-template-columns: minmax(0, 1fr); } .chamber { min-height: 400px; } }
@media (max-width: 599px) { .res { grid-template-columns: repeat(2, minmax(0, 1fr)); } .chamber { min-height: 360px; border-width: 8px; } }

/* 재배실·장비 */
.wide { margin: 0 0 34px; padding: 24px; border-radius: 20px; background: var(--chamber); }
.wide .fig { max-height: 340px; margin: 0 auto; }
.wide figcaption { color: rgba(255,255,255,.72); text-align: center; }
.eqs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.eq { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 22px; border: 1px solid var(--line); border-top: 6px solid var(--leaf); border-radius: 16px; }
.eq__ic { width: 64px; height: 64px; color: var(--ink); }
.eq__t { margin-bottom: 8px; font-size: 19px; font-weight: 800; }
.eq__t span { display: block; font-family: var(--disp); font-size: 14px; font-weight: 500; color: var(--muted); }
.eq p { margin: 0 0 6px; color: var(--body); }
.eq__spec { font-size: 14px; color: var(--muted) !important; font-variant-numeric: tabular-nums; }
.notebox { margin-top: 40px; padding: 26px 28px; border-radius: 18px; background: var(--mist); }
.notebox .sec-t--sm { margin-top: 0; }
.notebox p { margin: 0; color: var(--body); }
@media (max-width: 767px) { .eqs { grid-template-columns: minmax(0, 1fr); } .wide { padding: 14px; } }

/* 논문 페이지 거르기 */
.ptabs { display: flex; flex-wrap: wrap; margin: 22px 0 18px; border-bottom: 1px solid var(--line); }
.ptab { margin-bottom: -1px; padding: 12px 16px; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--muted); font-size: 16.5px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.ptab .num { font-size: .85em; color: var(--leaf-ink); }
.ptab[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--leaf-ink); }
.pubtools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.chips, .yrchips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border: 1.5px solid var(--line-strong); border-radius: 99px; background: #fff; color: var(--ink); font-size: 15px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.chip:hover { border-color: var(--ink); }
.chip i { width: 9px; height: 9px; border-radius: 50%; background: var(--tc); }
.chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.search input { width: min(320px, 100%); height: 44px; padding: 0 18px; border: 1.5px solid var(--line-strong); border-radius: 99px; font-size: 16px; }
.search input:focus { border-color: var(--leaf-ink); }
.pubcount { margin: 20px 0 6px; font-weight: 700; }
.pubyears { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 40px; }
.pubyears--plain { grid-template-columns: minmax(0, 1fr); }
.yidx { position: sticky; top: 96px; align-self: start; }
.yidx__t { margin: 22px 0 6px; font-size: 14px; font-weight: 700; color: var(--muted); }
.yidx ol { list-style: none; margin: 0; padding: 0; }
.yidx a { display: flex; justify-content: space-between; gap: 8px; padding: 8px 12px; border-radius: 9px; font-family: var(--disp); font-weight: 700; text-decoration: none; }
.yidx a:hover { background: var(--mist); }
.yidx__n { font-weight: 500; color: var(--muted); }
.yidx a[aria-current] { background: var(--band); color: #fff; }
.yidx a[aria-current] .yidx__n { color: var(--sprout); }
.ygroup { scroll-margin-top: 120px; }
.ygroup__t { display: flex; align-items: baseline; gap: 10px; padding: 26px 0 8px; border-bottom: 2px solid var(--ink); font-size: 30px; font-weight: 800; }
.ygroup__t .num { font-family: var(--disp); }
.ygroup__t small { font-size: 15px; font-weight: 600; color: var(--muted); }
.pubyears__list { transition: opacity .15s; }
.pubyears__list.is-fading { opacity: .3; }
.empty { padding: 40px 0; text-align: center; color: var(--muted); }
@media (max-width: 767px) {
  .ptabs { position: relative; flex-wrap: nowrap; overflow-x: auto; }
  .chips, .yrchips { position: relative; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .search, .search input { width: 100%; }
  .pubyears { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .yidx { top: var(--hd); z-index: 6; margin: 0 -16px; padding: 8px 16px; background: #fff; border-bottom: 1px solid var(--line); }
  .yidx__t { display: none; }
  .yidx ol { position: relative; display: flex; gap: 6px; overflow-x: auto; }
  .yidx a { padding: 4px 12px; border: 1px solid var(--line); border-radius: 99px; white-space: nowrap; }
  .ygroup__t { font-size: 26px; }
}

/* 과제 페이지 */
.bigtabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 4px 0 26px; border-bottom: 1px solid var(--line); }
.bigtabs a { display: block; margin-bottom: -1px; padding: 18px 0; border-bottom: 4px solid transparent; text-align: center; font-size: clamp(20px, 1rem + 1vw, 26px); font-weight: 700; color: #7F8F85; text-decoration: none; }
.bigtabs a:hover { color: var(--ink); }
.bigtabs a[aria-current] { color: var(--ink); border-bottom-color: var(--leaf-ink); }
.bigtabs .num { font-size: .7em; color: var(--leaf-ink); }
.ygroup--prj .prjlist { border-top: 0; }

/* 오시는 길 */
.visit { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 40px; align-items: start; }
.visit__map { margin: 0; }
.map { display: block; width: 100%; height: auto; border-radius: 18px; }
.visit__info { margin: 0; border-top: 2px solid var(--ink); }
.visit__info div { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.visit__info dt { font-weight: 700; color: var(--leaf-ink); }
.visit__info dd { margin: 0; }
.mailform { scroll-margin-top: 100px; }
.mailform > p { color: var(--body); }
.mailform__tpl { margin: 0 0 14px; padding: 20px 22px; border: 1px dashed var(--line-strong); border-radius: 14px; background: var(--mist); font-family: var(--font); font-size: 15.5px; line-height: 1.8; white-space: pre-wrap; }
.mailform__act { display: flex; flex-wrap: wrap; gap: 10px; }
.qna__item { padding: 18px 0; border-bottom: 1px solid var(--line); }
.qna__q { display: flex; gap: 10px; font-size: 18px; font-weight: 700; }
.qna__q::before { content: "Q"; font-family: var(--disp); font-weight: 800; color: var(--leaf-ink); }
.qna__a { margin: 6px 0 0 1.45em; color: var(--body); }
@media (max-width: 899px) { .visit { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* 공지·세미나 */
.nrows { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--ink); }
.nrow { border-bottom: 1px solid var(--line); }
.nrow summary { display: grid; grid-template-columns: 3em auto minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 18px 6px; cursor: pointer; list-style: none; }
.nrow summary::-webkit-details-marker { display: none; }
.nrow summary:hover .nrow__t { color: var(--leaf-ink); }
.nrow__no { font-family: var(--disp); font-weight: 700; color: #7F8F85; }
.nrow__c { padding: 0 9px; border-radius: 99px; font-size: 13px; font-weight: 700; }
.nrow__c--n { background: #E3F5E8; color: var(--leaf-ink); }
.nrow__c--s { background: #F4EAFE; color: #6A00A8; }
.nrow__c--a { background: #FFF1D6; color: #8A5300; }
.nrow__t { font-size: 17px; font-weight: 600; }
.nrow details[open] .nrow__t { color: var(--leaf-ink); }
.nrow__d { font-size: 14px; color: var(--muted); }
.nrow__body { padding: 0 6px 20px calc(3em + 20px); }
.nrow__body p { margin: 0; color: var(--body); }
@media (max-width: 767px) {
  .nrow summary { grid-template-columns: auto auto 1fr; gap: 4px 10px; }
  .nrow__t { grid-column: 1 / -1; order: 3; }
  .nrow__d { justify-self: end; }
  .nrow__body { padding-left: 6px; }
}

/* 연구실 소식 */
.ncards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ncard--static .ncard__t { font-size: 20px; }
@media (max-width: 767px) { .ncards { grid-template-columns: minmax(0, 1fr); } }

/* 바닥글: 흙과 뿌리 */
.ft { background: var(--soil); color: rgba(255,255,255,.82); padding-bottom: 28px; }
.ft__roots { display: block; width: 100%; height: 60px; }
.ft__in { display: grid; grid-template-columns: 1.1fr 1.6fr 1fr; gap: 32px; padding-top: 22px; padding-bottom: 30px; }
.ft__logo { margin: 0; font-family: var(--disp); font-size: 30px; font-weight: 800; color: #fff; }
.ft__sub { margin: 6px 0 0; font-size: 14.5px; }
.ft__info { margin: 0; }
.ft__info div { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 8px; padding: 4px 0; font-size: 15px; }
.ft__info dt { color: rgba(255,255,255,.55); }
.ft__info dd { margin: 0; }
.ft__info a, .ft__links a { color: #fff; text-decoration: none; }
.ft__info a:hover, .ft__links a:hover { text-decoration: underline; }
.ft__links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; align-content: start; font-size: 15px; }
.ft__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); font-size: 13.5px; }
.ft__bottom p { margin: 0; }
.ft__credit a { display: inline-flex; align-items: center; gap: 6px; color: #fff; text-decoration: none; vertical-align: middle; }
@media (max-width: 899px) { .ft__in { grid-template-columns: minmax(0, 1fr); gap: 22px; } }

/* 알림(샘플 링크 안내·복사) */
.toast { position: fixed; z-index: 90; left: 50%; bottom: 24px; max-width: calc(100% - 32px); padding: 12px 20px; border-radius: 12px; background: var(--ink); color: #fff; font-size: 15px; box-shadow: 0 10px 30px rgba(0,0,0,.25); transform: translateX(-50%); }

/* 등장 — 스크립트가 has-motion 을 붙인 뒤에만 숨겼다 보인다 */
html.has-motion .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
html.has-motion .reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  /* 뒤집기 카드: 돌리지 않고 앞뒤를 차례로 보인다 */
  .pc__in, .pc:hover .pc__in, .pc.is-flipped .pc__in, .pc:focus-within .pc__in { transform: none !important; }
  .pc__face { grid-area: auto; backface-visibility: visible; -webkit-backface-visibility: visible; }
  .pc__back { transform: none; border-radius: 0 0 18px 18px; }
  .pc__front { border-radius: 18px 18px 0 0; }
  .pc__flip { display: none; }
  .hd, .btn, a, .chip, .preset { transition-duration: .2s !important; }
}
