/* Descent: 페이지가 수면(발견)에서 깊은 곳(발전)으로 내려간다. 섹션마다 수심 색을 하나씩 맡는다. */
:root{
  --mist:#f2f7f7; --shallow:#dcecef; --teal:#1fa58f; --cyan:#1b86b0; --blue:#2353c4; --navy:#0f2a72;
  --mid:#0c3560; --deep:#0a2148; --abyss:#06122c;
  --ink:#0b1a3a; --ink-soft:#4b5b78; --foam:#eaf3ff; --foam-soft:#9fb3d6; --line:#c9dbe1; --line-deep:rgba(234,243,255,.14);
  --f-q:"Gowun Batang","Noto Serif KR",serif;
  --f-sans:"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --gut:max(20px,env(safe-area-inset-left,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--mist);color:var(--ink);font-family:var(--f-sans);font-size:17px;line-height:1.75;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance;line-height:1.25;letter-spacing:-.02em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.wrap{max-width:1160px;margin:0 auto;padding-left:var(--gut);padding-right:max(20px,env(safe-area-inset-right,0px))}
.q{font-family:var(--f-q);font-weight:700}
.kicker{font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--teal)}
.deepzone .kicker{color:#5fd3bf}

/* nav */
.nav{position:sticky;top:0;z-index:30;background:rgba(242,247,247,.86);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid rgba(11,26,58,.06);padding-top:env(safe-area-inset-top,0px)}
.nav .wrap{display:flex;align-items:center;gap:20px;height:62px}
.nav .logo img{height:30px;width:auto}
.nav .links{margin-left:auto;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.nav .links a{font-size:15px;padding:7px 12px;border-radius:8px;text-decoration:none;color:var(--ink-soft);white-space:nowrap}
.nav .links a:hover{color:var(--ink);background:rgba(11,26,58,.05)}
.nav .links a.cta{background:var(--ink);color:#fff}
@media (max-width:720px){.nav .links a:not(.cta){display:none}.nav .logo img{height:24px}}

/* hero */
.hero{background:linear-gradient(180deg,var(--mist) 0%,var(--mist) 60%,var(--shallow) 100%);padding-block:clamp(72px,12vw,150px) clamp(64px,9vw,120px);position:relative;overflow:hidden}
.hero .logo-big{height:clamp(44px,6.4vw,71px);width:auto}
.hero h1{font-size:clamp(34px,5.4vw,68px);font-weight:800;margin-top:28px;max-width:13em}
.hero .lede{font-size:clamp(17px,1.6vw,20px);color:var(--ink-soft);margin-top:26px;max-width:32em}
.hero .meta{margin-top:44px;display:flex;flex-wrap:wrap;gap:12px 36px;font-size:15px;color:var(--ink-soft)}
.hero .meta b{display:block;font-size:30px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1.2}
.ripple{position:absolute;right:-8vw;top:50%;width:min(56vw,640px);aspect-ratio:1;transform:translateY(-50%);pointer-events:none;opacity:.55}
.ripple i{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--teal);opacity:0;animation:ripple 9s linear infinite}
.ripple i:nth-child(2){animation-delay:3s;border-color:var(--cyan)}
.ripple i:nth-child(3){animation-delay:6s;border-color:var(--blue)}
@keyframes ripple{0%{transform:scale(.15);opacity:.9}100%{transform:scale(1);opacity:0}}
@media (max-width:820px){.ripple{display:none}}

/* problem */
.problem{background:linear-gradient(180deg,var(--shallow),#b9d7e0);padding-block:clamp(80px,10vw,130px)}
.problem h2{font-size:clamp(28px,3.8vw,46px);max-width:16em}
.findings{margin-top:56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.findings div{border-top:2px solid var(--ink);padding-top:18px}
.findings b{display:block;font-size:clamp(40px,4.6vw,58px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.findings b small{font-size:.42em;font-weight:600;color:var(--ink-soft)}
.findings span{display:block;font-size:13px;color:var(--ink-soft);margin-top:4px}
.findings p{margin-top:14px;font-size:16px;color:var(--ink-soft)}
@media (max-width:820px){.findings{grid-template-columns:1fr;gap:32px}}

/* descent (model) */
.descent{background:linear-gradient(180deg,#b9d7e0 0,#2c6e96 90px,var(--mid) 200px,var(--deep) 900px,var(--deep) 100%);color:var(--foam);padding-block:clamp(150px,14vw,200px) 40px}
.descent .intro h2{font-size:clamp(28px,3.8vw,46px);max-width:15em}
.descent .intro p{color:var(--foam-soft);margin-top:18px;max-width:34em}
.scrolly{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;margin-top:40px}
.pin{position:sticky;top:110px;height:calc(100vh - 160px);display:flex;flex-direction:column;justify-content:center}
.pin .letter{font-size:clamp(104px,13vw,180px);font-weight:900;line-height:.8;letter-spacing:-.06em;color:var(--c,#5fd3bf);transition:color .6s;text-shadow:0 30px 80px rgba(0,0,0,.35)}
.pin .name{margin-top:18px;font-size:clamp(20px,2.2vw,28px);font-weight:700}
.pin .name small{display:block;font-size:13px;letter-spacing:.2em;color:var(--foam-soft);font-weight:600}
.pin .depth{margin-top:26px;display:flex;gap:8px}
.pin .depth i{flex:1;height:4px;border-radius:2px;background:var(--line-deep);transition:background .5s}
.pin .depth i.on{background:var(--c,#5fd3bf)}
.stage{min-height:78vh;display:flex;flex-direction:column;justify-content:center;gap:22px;padding-block:40px}
.stage .ask{font-family:var(--f-q);font-weight:700;font-size:clamp(26px,3.2vw,40px);line-height:1.4;color:#fff}
.stage .ask small{display:block;font-family:var(--f-sans);font-weight:600;font-size:14px;color:var(--foam-soft);letter-spacing:.04em;margin-bottom:10px}
.stage .what{color:var(--foam-soft);font-size:17px;max-width:30em}
.stage .who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;font-size:15px}
.stage .who h4{margin:0 0 6px;font-size:13px;letter-spacing:.08em;color:#5fd3bf}
.stage .who ul{margin:0;padding-left:18px;color:var(--foam)}
.loopline{border-top:1px solid var(--line-deep);margin-top:40px;padding-block:36px 0;color:var(--foam-soft);font-size:16px;display:flex;gap:14px;align-items:center}
@media (max-width:820px){
  .scrolly{grid-template-columns:1fr;gap:0}
  .pin{top:62px;height:auto;flex-direction:row;align-items:center;gap:16px;padding-block:14px;background:linear-gradient(var(--deep) 75%,transparent);z-index:2}
  .pin .letter{font-size:56px}.pin .name{margin:0;font-size:18px}.pin .depth{display:none}
  .stage{min-height:auto;padding-block:48px}.stage .who{grid-template-columns:1fr}
}

/* themes */
.themes{background:var(--deep);color:var(--foam);padding-block:clamp(70px,9vw,120px)}
.themes h2{font-size:clamp(26px,3.4vw,40px)}
.tri{margin-top:44px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.tri article{border-top:1px solid var(--line-deep);padding-top:22px;display:flex;flex-direction:column;gap:12px}
.tri .n{font-size:13px;color:var(--foam-soft);letter-spacing:.1em}
.tri h3{font-size:24px}
.tri .how{font-size:15px;color:#5fd3bf;font-weight:600}
.tri p{color:var(--foam-soft);font-size:15px}
.tri ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:8px;font-size:15px}
.tri li{font-family:var(--f-q);color:var(--foam)}
.tri li span{font-family:var(--f-sans);font-size:12px;color:var(--foam-soft);margin-right:8px}
@media (max-width:900px){.tri{grid-template-columns:1fr}}

/* cases */
.cases{background:linear-gradient(180deg,var(--deep),#081a3c);color:var(--foam);padding-block:clamp(70px,9vw,120px)}
.cases .head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.cases h2{font-size:clamp(26px,3.4vw,40px)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line-deep);background:transparent;color:var(--foam);border-radius:999px;padding:6px 16px;font-size:14px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--foam);color:var(--deep)}
.reel{margin-top:36px;display:grid;grid-auto-flow:column;grid-auto-columns:min(360px,82vw);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px max(20px,calc((100vw - 1160px)/2 + 20px)) 24px;scroll-padding-inline:max(20px,calc((100vw - 1160px)/2 + 20px));scrollbar-width:thin;scrollbar-color:rgba(234,243,255,.3) transparent}
.case{scroll-snap-align:start;background:rgba(234,243,255,.05);border:1px solid var(--line-deep);border-radius:18px;overflow:hidden;cursor:pointer;text-align:left;padding:0;color:var(--foam);display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s}
.case:hover{transform:translateY(-6px);background:rgba(234,243,255,.09)}
.case .shot{aspect-ratio:4/3;max-width:100%;background:#0d2a5a;position:relative;overflow:hidden}
.case .shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.case:hover .shot img{transform:scale(1.04)}
.case .shot .none{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-q);font-size:64px;color:rgba(234,243,255,.18)}
.case .shot .g{position:absolute;left:14px;top:14px;background:rgba(6,18,44,.72);backdrop-filter:blur(6px);font-size:13px;font-weight:700;border-radius:999px;padding:4px 12px}
.case .bd{padding:20px 20px 22px;display:flex;flex-direction:column;gap:16px;flex:1}
.case .cq{font-family:var(--f-q);font-weight:700;font-size:19px;line-height:1.5}
.case .path{margin-top:auto;display:flex;gap:6px}
.case .path i{flex:1;height:3px;border-radius:2px}
.case .path i:nth-child(1){background:var(--teal)}.case .path i:nth-child(2){background:var(--cyan)}.case .path i:nth-child(3){background:var(--blue)}.case .path i:nth-child(4){background:#7c9cff}
.case .tag{font-size:13px;color:var(--foam-soft)}

/* deeping */
.deeping{background:linear-gradient(180deg,#081a3c,var(--abyss));color:var(--foam);padding-block:clamp(80px,10vw,130px)}
.deeping .top{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:56px;align-items:center}
.deeping .top img{border-radius:28px;max-width:320px;width:100%;box-shadow:0 40px 100px -30px rgba(95,211,191,.35)}
.deeping h2{font-size:clamp(28px,3.8vw,46px)}
.deeping .top p{color:var(--foam-soft);margin-top:18px;max-width:32em}
.deeping .rule{margin-top:28px;font-family:var(--f-q);font-size:clamp(19px,2vw,24px);color:#fff;border-left:3px solid var(--teal);padding-left:18px}
.screens{margin-top:64px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.screens figure{margin:0}
.screens img{border-radius:14px;border:1px solid var(--line-deep)}
.screens figcaption{margin-top:12px;font-size:14px;color:var(--foam-soft)}
.screens figcaption b{color:var(--foam);display:block;font-size:15px}
@media (max-width:900px){.deeping .top{grid-template-columns:1fr}.screens{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* showcase band */
.band{background:var(--abyss);color:var(--foam);padding-block:clamp(70px,9vw,110px);border-top:1px solid var(--line-deep)}
.band .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;align-items:center}
.band h2{font-size:clamp(28px,3.8vw,46px)}
.band p{color:var(--foam-soft);margin-top:16px;max-width:30em}
.band .btn{justify-self:start}
@media (max-width:820px){.band .wrap{grid-template-columns:1fr}}

/* library (다시 수면 위로) */
.library{background:linear-gradient(180deg,var(--abyss) 0,#2a6f93 120px,var(--shallow) 250px,var(--mist) 100%);padding-block:290px clamp(70px,8vw,110px)}
.library h2{font-size:clamp(26px,3.4vw,40px)}
.library .sub{color:var(--ink-soft);margin-top:12px}
.shelf{margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.shelf h3{font-size:14px;letter-spacing:.1em;color:var(--ink-soft);font-weight:600;margin-bottom:10px}
.shelf ul{list-style:none;margin:0;padding:0}
.shelf li a,.shelf li span.soon{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}
.shelf li a:hover b{color:var(--blue)}
.shelf b{font-weight:700;font-size:16px;transition:color .2s}
.shelf small{display:block;color:var(--ink-soft);font-size:13px;font-weight:400}
.shelf em{font-style:normal;font-size:12px;color:var(--ink-soft);font-weight:600;letter-spacing:.06em}
.shelf .soon{opacity:.55}
@media (max-width:900px){.shelf{grid-template-columns:1fr}}

footer{background:var(--mist);border-top:1px solid var(--line);padding-block:36px calc(36px + env(safe-area-inset-bottom,0px));font-size:14px;color:var(--ink-soft)}
footer .wrap{display:flex;gap:16px 32px;flex-wrap:wrap;align-items:center;justify-content:space-between}
footer img{height:22px;width:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;padding:14px 26px;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;background:var(--foam);color:var(--deep);transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(95,211,191,.7)}
.btn.dark{background:var(--ink);color:#fff}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* modal */
dialog{border:0;padding:0;border-radius:22px;width:min(980px,calc(100vw - 24px));max-height:calc(100dvh - 32px);background:var(--mist);color:var(--ink);box-shadow:0 40px 120px -20px rgba(0,0,0,.6)}
dialog::backdrop{background:rgba(6,18,44,.7);backdrop-filter:blur(4px)}
.sheet{padding:clamp(22px,4vw,40px);display:grid;gap:28px}
.sheet header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.sheet h3{font-family:var(--f-q);font-size:clamp(22px,3vw,30px);line-height:1.4;margin-top:6px}
.x{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:20px}
.descend{display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.descend .s{--c:var(--teal);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:20px;padding:0 0 26px 24px;position:relative}
.descend .s::before{content:"";position:absolute;left:-8px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--c)}
.descend .s:nth-child(2){--c:var(--cyan)}.descend .s:nth-child(3){--c:var(--blue)}.descend .s:nth-child(4){--c:var(--navy)}
.descend .s:nth-child(2){padding-left:44px}.descend .s:nth-child(3){padding-left:64px}.descend .s:nth-child(4){padding-left:84px}
.descend .s:nth-child(n)::before{left:-8px}
.descend em{font-style:normal;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--c)}
.descend .q{font-size:19px;line-height:1.5;margin-top:4px}
.descend .goal{font-size:14px;color:var(--ink-soft);margin-top:4px}
.descend img{border-radius:12px;aspect-ratio:4/3;object-fit:cover;width:100%}
.descend figcaption{font-size:12px;color:var(--ink-soft);margin-top:6px}
.descend figure{margin:0}
@media (max-width:700px){.descend .s{grid-template-columns:1fr;padding-left:24px!important}}
.voices{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.voices div{background:#fff;border-radius:16px;padding:20px;display:grid;gap:10px;align-content:start;font-size:15px}
.voices h4{margin:0;font-size:13px;color:var(--ink-soft);letter-spacing:.06em}
.voices .nq{font-family:var(--f-q);font-weight:700;font-size:17px;color:var(--navy)}
@media (max-width:700px){.voices{grid-template-columns:1fr}}

/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{opacity:1;transform:none}.ripple{display:none}*{transition:none!important;animation:none!important}}

/* ---------- showcase ---------- */
.sc-head{background:linear-gradient(180deg,var(--mist),var(--shallow));padding-block:clamp(56px,8vw,100px) 48px}
.sc-head h1{font-size:clamp(32px,4.8vw,58px);font-weight:800;margin-top:18px}
.sc-head p{color:var(--ink-soft);margin-top:18px;max-width:36em}
.sc-head .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.sc-body{background:var(--shallow);padding-block:24px 90px;min-height:50vh}
.sc-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.sc-body .chip{border-color:var(--line);color:var(--ink);background:#fff}
.sc-body .chip[aria-pressed="true"]{background:var(--ink);color:#fff}
.notice{background:#fff;border-radius:14px;padding:14px 18px;font-size:15px;color:var(--ink-soft);margin-bottom:20px}
.talks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.talk{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:16px;text-align:left;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.talk:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(11,26,58,.45)}
.talk.sample{border-style:dashed;background:rgba(255,255,255,.6)}
.talk .who{font-size:14px;color:var(--ink-soft)}.talk .who b{color:var(--ink)}
.talk .dive{display:grid;gap:6px}
.talk .dive .q{font-size:17px;line-height:1.5}
.talk .dive .from{color:var(--teal)}.talk .dive .to{color:var(--navy)}
.talk .dive small{font-size:12px;color:var(--ink-soft);letter-spacing:.06em}
.talk .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.talk .tags span{font-size:12px;background:var(--mist);border-radius:6px;padding:2px 8px;color:var(--ink-soft)}
.talk .tags .cnt{margin-left:auto;background:none;white-space:pre;font-size:13px}.talk .tags .cnt.on{color:#e0446a}
.thumb{position:relative;margin:-22px -22px 0;aspect-ratio:16/9;border-radius:18px 18px 0 0;overflow:hidden;background:var(--navy)}
.thumb img,.thumb video{width:100%;height:100%;object-fit:cover;display:block}
.thumb .play{position:absolute;inset:0;margin:auto;width:56px;height:56px;border-radius:50%;background:rgba(11,26,58,.72);color:#fff;display:grid;place-items:center;font-size:20px;padding-left:4px;box-sizing:border-box}
.thumb.big{margin:0;border-radius:14px;border:0;padding:0;width:100%;aspect-ratio:16/9;cursor:pointer}.thumb.big .play{width:72px;height:72px;font-size:26px}
.likebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--ink-soft)}
.like{font:inherit;font-size:16px;font-weight:600;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:10px 20px;cursor:pointer;transition:transform .15s}
.like:active{transform:scale(.94)}.like.on{border-color:#e0446a;color:#e0446a;background:#fff0f4}.like:disabled{opacity:.6}
@media (max-width:960px){.talks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.talks{grid-template-columns:1fr}}
.journal{display:grid;gap:12px}
.jrow{--c:var(--teal);display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;background:#fff;border-radius:14px;padding:18px}
.jrow:nth-child(2){--c:var(--cyan)}.jrow:nth-child(3){--c:var(--blue)}.jrow:nth-child(4){--c:var(--navy)}
.jrow .L{font-size:34px;font-weight:900;color:var(--c);line-height:1}
.jrow .L small{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:4px}
.jrow h5{margin:0;font-size:12px;color:var(--ink-soft);letter-spacing:.06em}
.jrow p{margin-bottom:8px}
.jrow p.q{font-size:18px}
.media{display:grid;gap:10px}
.media video,.media img{width:100%;border-radius:14px;background:#000}
.notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.notes h4{margin:0 0 8px;font-size:14px}
.notes ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.notes li{background:#fff;border-radius:12px;padding:10px 14px;font-size:15px;display:flex;justify-content:space-between;gap:10px}
.notes li small{display:block;font-size:12px;color:var(--ink-soft)}
@media (max-width:620px){.notes{grid-template-columns:1fr}}
.nform{display:grid;grid-template-columns:auto minmax(0,1fr) 9em auto;gap:8px}
@media (max-width:700px){.nform{grid-template-columns:1fr}}
.field{display:grid;gap:6px}
.field label,.field .lab{font-size:15px;font-weight:700}
.field .hint{font-size:13px;color:var(--ink-soft);font-weight:400}
input[type=text],input[type=url],input[type=password],select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 14px;font-size:16px}
textarea{min-height:84px;resize:vertical}
.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:700px){.fgrid{grid-template-columns:1fr}}
fieldset{border:0;margin:0;padding:0 0 0 18px;min-width:0;display:grid;gap:14px;border-left:4px solid var(--c,var(--teal))}
fieldset legend{font-weight:800;font-size:17px;padding:0;margin-bottom:6px}
.checks{display:flex;gap:8px;flex-wrap:wrap}
.checks label{display:flex;gap:6px;align-items:center;font-size:15px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 14px;cursor:pointer}
.err{color:#b4235a;font-size:15px;min-height:1.3em;font-weight:600}
.mini{font-size:14px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer}
.mini.warn{color:#b4235a;border-color:#e6b3c6}
.pending{display:grid;gap:12px}
.pending article{background:#fff;border-radius:14px;padding:16px;display:grid;gap:8px}
.pending .acts{display:flex;gap:8px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 22px;border-radius:999px;font-size:15px;z-index:99;max-width:calc(100vw - 32px)}


/* ---------- archive layer: 1년 동안 쌓인 기록을 둘러보는 장치 ---------- */
:root{--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
.code{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;font-weight:500}
.stamp{display:inline-flex;gap:10px;align-items:center;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;color:var(--teal);margin-bottom:26px}
.stamp i{display:block;width:28px;height:1px;background:currentColor}

/* 수업 아카이브 카드 번호 */
.case .shot .no{position:absolute;right:14px;top:14px;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;background:rgba(6,18,44,.72);backdrop-filter:blur(6px);border-radius:999px;padding:4px 10px}
.cases .count{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--foam-soft);margin-top:10px}

/* 사례 모달 */
.sheet .meta-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.sheet .meta-line span{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:3px 12px;color:var(--ink-soft);background:#fff}
.sheet .meta-line span.std{font-family:var(--f-mono);font-size:12px;border-radius:6px}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;font-size:16px}
.story p{color:var(--ink-soft)}
.story .idea{font-family:var(--f-q);font-size:17px;color:var(--ink);border-left:3px solid var(--teal);padding-left:16px}
.story small{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft);margin-bottom:6px}
@media (max-width:700px){.story{grid-template-columns:1fr}}
.descend ul{margin:10px 0 0;padding-left:1.1em;font-size:14.5px;color:var(--ink-soft)}
.descend .act{display:inline-block;margin-top:10px;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--ink-soft);background:#fff}
.descend img{cursor:zoom-in}
.dnav{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:20px}
.dnav .btn{padding:10px 18px;font-size:14px;background:#fff;border:1px solid var(--line)}

/* 아이들이 새로 만든 질문 벽 */
.wall{background:linear-gradient(180deg,#081a3c,#071737);color:var(--foam);padding-block:clamp(70px,9vw,120px);border-top:1px solid var(--line-deep)}
.wall h2{font-size:clamp(26px,3.4vw,40px);max-width:16em}
.wall .lede{color:var(--foam-soft);margin-top:16px;max-width:36em}
.qwall{margin-top:44px;columns:3;column-gap:20px}
.qwall article{break-inside:avoid;margin-bottom:20px;border:1px solid var(--line-deep);border-radius:16px;padding:20px 20px 18px;background:rgba(234,243,255,.04);cursor:pointer;transition:background .3s,transform .3s}
.qwall article:hover{background:rgba(234,243,255,.08);transform:translateY(-3px)}
.qwall .from{font-size:14px;color:var(--foam-soft)}
.qwall .from em{font-style:normal;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:#5fd3bf;margin-right:8px}
.qwall .arrow{display:block;width:1px;height:22px;background:linear-gradient(var(--line-deep),#7c9cff);margin:10px 0 10px 4px}
.qwall .to{font-family:var(--f-q);font-weight:700;font-size:18px;line-height:1.5;color:#fff}
.qwall .who{margin-top:14px;font-size:12.5px;color:var(--foam-soft)}
@media (max-width:960px){.qwall{columns:2}}
@media (max-width:620px){.qwall{columns:1}}

/* 걸어온 길: 사진 연혁 */
.journey{background:linear-gradient(180deg,var(--abyss),#050f26);color:var(--foam);padding-block:clamp(80px,10vw,130px);border-top:1px solid var(--line-deep)}
.journey h2{font-size:clamp(28px,3.8vw,46px);max-width:15em}
.journey .lede{color:var(--foam-soft);margin-top:16px;max-width:36em}
.tally{margin-top:48px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.tally div{border-top:1px solid rgba(234,243,255,.45);padding-top:14px}
.tally b{display:block;font-size:clamp(34px,4vw,48px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.tally span{font-size:14px;color:var(--foam-soft)}
@media (max-width:820px){.tally{grid-template-columns:1fr 1fr}}
.years{margin-top:72px;display:grid;gap:0;border-left:1px solid var(--line-deep);margin-left:6px}
.mile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:32px;padding:0 0 56px 34px;position:relative}
.mile::before{content:"";position:absolute;left:-6px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--c,#5fd3bf);box-shadow:0 0 0 6px color-mix(in srgb,var(--c,#5fd3bf) 18%,transparent)}
.mile .when{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--c,#5fd3bf)}
.mile h3{font-size:clamp(20px,2.2vw,26px);margin-top:6px}
.mile p{color:var(--foam-soft);margin-top:10px;max-width:34em;font-size:16px}
.mile figure{margin:0}
.mile img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;border-radius:12px;border:1px solid var(--line-deep);cursor:zoom-in}
.mile figcaption{font-size:12.5px;color:var(--foam-soft);margin-top:8px}
@media (max-width:760px){.mile{grid-template-columns:1fr;gap:18px;padding-left:24px}}
.plates{margin-top:24px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.plates figure{margin:0}
.plates img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line-deep);cursor:zoom-in}
.plates figcaption{font-size:12.5px;color:var(--foam-soft);margin-top:8px}
@media (max-width:900px){.plates{grid-template-columns:repeat(2,minmax(0,1fr))}}
.journey h3.sub{font-size:18px;margin-top:24px}

/* 디핑 교사 화면 */
.tscreens{margin-top:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tscreens figure{margin:0}
.tscreens img{border-radius:12px;border:1px solid var(--line-deep);cursor:zoom-in}
.tscreens figcaption{margin-top:10px;font-size:14px;color:var(--foam-soft)}
.screens img{cursor:zoom-in}
@media (max-width:900px){.tscreens{grid-template-columns:1fr}}

/* 사진 크게 보기 */
#lb{background:transparent;box-shadow:none;width:auto;max-width:min(1100px,94vw)}
#lb img{max-height:84vh;width:auto;margin:0 auto;border-radius:12px}
#lb p{color:#fff;text-align:center;font-size:14px;margin-top:12px}
#lb .x{position:fixed;top:16px;right:16px}

/* 히어로 오른쪽: 겹쳐 놓은 수업 기록 카드 */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;align-items:center}
.hero .ripple{right:-14vw}
.deck{position:relative;height:min(470px,42vw);z-index:1}
.deck .card{position:absolute;left:8%;top:6%;width:74%;background:#fff;border-radius:16px;padding:10px 10px 16px;box-shadow:0 30px 60px -28px rgba(11,26,58,.45),0 2px 6px rgba(11,26,58,.06);text-align:left;border:0;cursor:pointer;color:var(--ink);transition:transform 1s cubic-bezier(.2,.8,.2,1),opacity 1s,z-index 0s .5s}
.deck .card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:var(--shallow)}
.deck .card .code{display:block;margin:12px 4px 4px;color:var(--teal);font-size:11px}
.deck .card .q{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 4px;font-size:16px;line-height:1.5}
.deck .card.p0{z-index:3;transform:rotate(-2deg)}
.deck .card.p1{z-index:2;transform:translate(16%,9%) rotate(4deg)}
.deck .card.p2{z-index:1;transform:translate(-8%,15%) rotate(-7deg);opacity:.9}
.deck .card.out{z-index:4;transform:translate(-30%,-4%) rotate(-12deg);opacity:0}
.deck .hint{position:absolute;right:4%;bottom:0;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-soft)}
@media (max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}.deck{display:none}}
@media (prefers-reduced-motion:reduce){.deck .card{transition:none}}

/* 큰 글자 옆 '교실에서는' 카드 */
.pin-row{display:flex;align-items:center;gap:clamp(20px,3vw,44px)}
.live{--c:#5fd3bf;flex:1;max-width:280px;text-align:left;background:rgba(234,243,255,.06);border:1px solid var(--line-deep);border-radius:16px;padding:10px 10px 14px;color:var(--foam);cursor:pointer;display:grid;gap:6px;transition:border-color .5s,background .3s}
.live:hover{background:rgba(234,243,255,.1)}
.live img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border-bottom:3px solid var(--c);transition:border-color .5s}
.live .lab{font-size:12px;color:var(--c);font-weight:600;margin:6px 4px 0;transition:color .5s}
.live .lq{font-family:var(--f-q);font-weight:700;font-size:16px;line-height:1.5;margin:0 4px}
.live .la{font-size:12.5px;color:var(--foam-soft);margin:0 4px}
@media (max-width:820px){.live{display:none}}
