/* ============================================================
   글로벌교육문화교류원 홈페이지 — 공통 스타일
   토큰: 브랜드 디자인시스템 tokens/colors.css 값 그대로
   글꼴: fonts/fonts.css 의 --font-display(KoPub 바탕) · --font-body(KoPub 돋움)
   ============================================================ */
:root{
  --teal-900:#0E2A33;--teal-800:#14424E;--teal-700:#1C5A68;--teal-500:#2C6E7D;--teal-100:#E9F1F4;--teal-50:#F3F7F8;
  --orange:#E0872B;--orange-600:#C9741A;
  --paper:#F7F6F2;--white:#fff;--ink:#1E1E1C;--slate:#5C6B72;--line:#DCE4E6;--ondark:#F5F6F8;
  --bg:var(--paper);--fg:var(--ink);--muted:var(--slate);--panel:var(--white);--hair:var(--line);
  --fd:var(--font-display,'KoPubWorld Batang','Noto Serif KR',serif);
  --fb:var(--font-body,'KoPubWorld Dotum','Noto Sans KR',system-ui,sans-serif);
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B1F26;--fg:#EEF2F3;--muted:#A7B6BC;--panel:#12303A;--hair:#22434D;--teal-100:#123540;--teal-50:#0F2A33}}
:root[data-theme=dark]{--bg:#0B1F26;--fg:#EEF2F3;--muted:#A7B6BC;--panel:#12303A;--hair:#22434D;--teal-100:#123540;--teal-50:#0F2A33}

/* 문서 간 View Transition·프리렌더는 카카오톡 내장 브라우저에서 빈 화면을 일으켜 제거(2026-09-23) */
/* 스크립트가 실행되지 않는 환경에서도 내용이 보이도록: html.js 가 없으면 리빌 요소를 그대로 표시 */
html:not(.js) .rv,html:not(.js) .up,html:not(.js) .live video,html:not(.js) .ph-frame,html:not(.js) .st-f{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:100px} /* 고정 상단 바(88px)에 앵커가 가려지지 않게 */
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--fb);font-size:16px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}
img{max-width:100%;display:block;height:auto}
picture{display:contents}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
.kicker{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--orange);font-weight:500}
.bar{width:44px;height:3px;background:var(--orange)}
/* 밝은 배경 위 영문 아이브로우는 slate(브랜드 허용색) — 오렌지는 대비 2.5:1로 AA 미달. 어두운 섹션(.st/.cta/히어로)은 오렌지 유지 */
section.s:not(.st):not(.cta) .kicker{color:var(--muted)}
h1,h2,h3{font-family:var(--fd);text-wrap:balance;margin:0;font-weight:700}
p{text-wrap:pretty}
.skip{position:absolute;left:-999px;top:0;background:var(--orange);color:#fff;padding:8px 14px;z-index:100}.skip:focus{left:8px;top:8px}

/* ── 상단 바 ─────────────────────────────────────────── */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:rgba(14,42,51,.97);backdrop-filter:blur(8px);color:var(--ondark)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:88px;position:relative}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit}
.brand img{height:48px;width:auto}
.brand b{font-family:var(--fd);font-size:24px;font-weight:700;letter-spacing:.3em;line-height:1;display:block;color:var(--ondark)}
.brand small{display:block;font-size:11.5px;letter-spacing:.18em;color:var(--orange);margin-top:7px;font-weight:500}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0;font-size:14px}
.nav a{color:inherit;text-decoration:none;opacity:.85}
.nav li a{display:inline-block;padding:14px 2px;line-height:1}
.nav a:hover,.nav a:focus-visible,.nav a[aria-current=page]{opacity:1;outline:none;border-bottom:2px solid var(--orange)}
.nav a.brand,.nav a.brand:hover,.nav a.brand:focus-visible,.nav a.brand[aria-current]{border-bottom:0!important;opacity:1}
.nav a.brand:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.nav .cta{background:var(--orange);color:var(--teal-900);padding:9px 16px;border-radius:2px;font-weight:700;opacity:1}
.nav .cta:hover,.nav .cta:focus-visible{border-bottom:0;background:#F2B978}
.nav-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.35);color:var(--ondark);width:42px;height:42px;border-radius:2px;position:relative;cursor:pointer;padding:0}
.nav-toggle::before{content:"";position:absolute;left:11px;right:11px;top:13px;height:2px;background:currentColor;box-shadow:0 6px 0 currentColor,0 12px 0 currentColor}
@media(max-width:720px){
  .brand b{font-size:18px;letter-spacing:.2em}.brand small{font-size:10px;letter-spacing:.1em}
  .nav-toggle{display:block}
  .nav ul{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--teal-900);padding:6px 20px 18px;font-size:15px;box-shadow:0 18px 30px -12px rgba(0,0,0,.4)}
  .nav ul.open{display:flex}
  .nav li{padding:12px 0;border-top:1px solid rgba(255,255,255,.1)}
  .nav li:first-child{border-top:0}
  .nav .cta{display:inline-block;margin-top:6px}
}

/* ── 히어로 ──────────────────────────────────────────── */
.hero{min-height:calc(100vh - 88px);min-height:calc(100svh - 88px);position:relative;background:var(--teal-900);color:var(--ondark);overflow:hidden;display:flex;align-items:center;padding-block:clamp(56px,9vw,110px) clamp(96px,12vw,140px)}
.hero .ph{position:absolute;inset:-12% 0;will-change:transform;background:url(../img/hero_bg.jpg) center/cover;background-image:image-set(url(../img/hero_bg.webp) type("image/webp"),url(../img/hero_bg.jpg) type("image/jpeg"));opacity:.55;transform:scale(1.06);animation:drift 22s ease-in-out infinite alternate}
.hero .ph video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity 1.2s ease}
.hero .ph video.on{opacity:1}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,42,51,.94) 0%,rgba(14,42,51,.62) 52%,rgba(14,42,51,.22) 100%)}
.hero .mk{position:absolute;right:-6%;bottom:-18%;width:46%;opacity:.06;pointer-events:none}
.hero .wrap{position:relative;z-index:1;max-width:760px;margin-left:max(20px,(100% - 1120px)/2)}
.hero h1{font-size:clamp(34px,6vw,64px);line-height:1.18;letter-spacing:-.01em;margin-top:22px}
.hero h1 em{font-style:normal;color:var(--orange)}
.words span{display:inline-block;clip-path:inset(0 0 100% 0);animation:wd .8s cubic-bezier(.22,.61,.36,1) forwards}
.words span:nth-child(2){animation-delay:.08s}.words span:nth-child(4){animation-delay:.22s}.words span:nth-child(5){animation-delay:.3s}.words span:nth-child(6){animation-delay:.38s}.words span:nth-child(7){animation-delay:.46s}
@keyframes wd{to{clip-path:inset(0 0 -20% 0)}}
#globe{position:absolute;right:2%;top:50%;transform:translateY(-50%);width:min(50vw,600px);height:min(50vw,600px);z-index:0;pointer-events:none;opacity:.95}
@media(max-width:720px){#globe{right:-30%;width:120vw;height:120vw;opacity:.35}}
.hero p{font-size:clamp(15px,1.6vw,19px);max-width:34em;margin:22px 0 34px;color:#D6DFE2}
.hero .btns{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:14px 26px;border-radius:2px;font-weight:700;text-decoration:none;font-size:15px}
.btn-o{background:var(--orange);color:var(--teal-900);position:relative;overflow:hidden}
.btn-o::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s ease}
.btn-o:hover::after{transform:translateX(120%)}
.btn-g{border:1px solid rgba(255,255,255,.5);color:var(--ondark)}
.up{opacity:0;transform:translateY(22px);animation:up .9s cubic-bezier(.22,.61,.36,1) forwards}
.up:nth-child(2){animation-delay:.12s}.up:nth-child(3){animation-delay:.24s}.up:nth-child(4){animation-delay:.36s}.up:nth-child(5){animation-delay:.5s}
@keyframes up{to{opacity:1;transform:none}}
@keyframes drift{to{transform:scale(1.12) translate(-2%,-2%)}}

/* SCROLL 표시(항상 고정) · 상단 진행 바 */
.cue{cursor:pointer;position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);z-index:30;transition:opacity .25s linear;font-size:11px;letter-spacing:.3em;color:var(--orange);font-weight:700;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--teal-900);border:0;font-family:inherit;padding:6px 11px 8px 14px;border-radius:2px}
.cue i{display:block;width:1px;height:24px;background:linear-gradient(var(--orange),transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.cue.off{opacity:0;pointer-events:none}
.prog{position:fixed;left:0;top:env(safe-area-inset-top,0px);height:3px;width:0;background:var(--orange);z-index:20}

/* ── 마퀴 · 실적 ─────────────────────────────────────── */
.mq{background:var(--teal-900);border-top:1px solid rgba(255,255,255,.08);overflow:hidden;padding-block:14px;color:#9FB3BA;font-size:13px;letter-spacing:.06em;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-t{display:flex;gap:56px;width:max-content;animation:mq 46s linear infinite;white-space:nowrap}
.mq-t span::before{content:"◆";color:var(--orange);font-size:8px;margin-right:14px;vertical-align:middle}
@keyframes mq{to{transform:translateX(-50%)}}
.stats{background:var(--teal-800);color:var(--ondark)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-block:8px}
.stat{padding:30px 8px;border-left:1px solid rgba(255,255,255,.14)}.stat:first-child{border:0}
.stat b{display:block;font-family:var(--fd);font-size:clamp(30px,4vw,46px);line-height:1;font-variant-numeric:tabular-nums}
.stat b small{font-size:.5em;margin-left:2px}
.stat span{font-size:13px;color:#BFCDD2;display:block;margin-top:8px}
@media(max-width:720px){.stats .wrap{grid-template-columns:1fr 1fr}.stat:nth-child(3){border-left:0}}

/* ── 섹션 공통 · 리빌 ────────────────────────────────── */
section.s{padding-block:clamp(64px,9vw,110px)}
.head{display:flex;flex-direction:column;gap:14px;max-width:620px}
.head h2{font-size:clamp(26px,3.6vw,40px);color:var(--fg)}
.head p{color:var(--muted);margin:0}
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)}
.rv.in{opacity:1;transform:none}.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}

/* 사진 밴드(시네마틱 리빌) */
.band{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:14px;margin-top:44px}
.band figure{margin:0;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--teal-100)}
.band figure:first-child{aspect-ratio:16/10;grid-row:span 2}
.band img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform 1.6s cubic-bezier(.22,.61,.36,1)}
.band .in img{transform:scale(1)}
.band figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;font-size:13px;color:#fff;background:linear-gradient(transparent,rgba(14,42,51,.85))}
@media(max-width:720px){.band{grid-template-columns:1fr 1fr}.band figure:first-child{grid-column:span 2;grid-row:auto}}

/* 살아 있는 사진 밴드: 큰 칸(무대 영상, 수채화→실사 디졸브) + 작은 칸 2개(시네마그래프) */
.band2{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:14px;margin-top:44px}
.live{margin:0;position:relative;overflow:hidden;background:var(--teal-100);cursor:zoom-in;aspect-ratio:16/9}
.live.big{grid-row:span 2;aspect-ratio:auto;min-height:320px}
.live img,.live video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.live video{opacity:0;transition:opacity 1s ease}
.live video.on{opacity:1}
.live .wc{z-index:2;transition:opacity 1.6s cubic-bezier(.22,.61,.36,1)}
.live.in .wc{opacity:0}
.live figcaption{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:14px 16px;font-size:13px;color:#fff;background:linear-gradient(transparent,rgba(14,42,51,.85))}
.live figcaption small{display:block;font-size:12px;color:#D6DFE2;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .5s ease,margin .5s ease}
.live:hover figcaption small,.live:focus-within figcaption small{max-height:3em;opacity:1;margin-top:4px}
.live .zoom{position:absolute;right:12px;top:12px;z-index:3;width:34px;height:34px;border:1px solid rgba(255,255,255,.55);background:rgba(14,42,51,.55);color:#fff;font-size:18px;line-height:1;display:grid;place-items:center;border-radius:2px}
@supports (animation-timeline: view()){
  .live.big .wc{transition:none;animation:wc-out linear both;animation-timeline:view();animation-range:entry 35% cover 45%}
}
@keyframes wc-out{from{opacity:1}to{opacity:0}}
@media(max-width:720px){.band2{grid-template-columns:1fr;grid-template-rows:auto}.live.big{grid-row:auto;aspect-ratio:16/10;min-height:0}}
/* 라이트박스 */
.lb{border:0;padding:0;background:transparent;max-width:min(96vw,1200px);width:100%}
.lb::backdrop{background:rgba(14,42,51,.92);backdrop-filter:blur(4px)}
.lb .box{position:relative;background:#000;aspect-ratio:16/9;width:100%}
.lb video,.lb img{width:100%;height:100%;object-fit:contain;display:block}
.lb [hidden]{display:none!important}
.lb p{color:#D6DFE2;font-size:14px;margin:12px 4px 0;font-family:var(--fb)}
.lb .x{position:absolute;right:8px;top:8px;width:40px;height:40px;border:0;background:rgba(14,42,51,.7);color:#fff;font-size:22px;cursor:pointer;border-radius:2px;z-index:2}

/* 스크롤 연동 애니메이션(지원 브라우저): 리빌·사진 줌을 스크롤 위치에 정확히 맞춤.
   미지원 브라우저는 위의 .rv.in(JS IntersectionObserver) 방식으로 동작. 카드는 3D 틸트와 충돌하므로 제외. */
@supports (animation-timeline: view()){
  .rv:not(.card):not(.qr-show){opacity:1;transform:none;transition:none;animation:rv-in linear both;animation-timeline:view();animation-range:entry 0% entry 42%}
  .rv.d1:not(.card){animation-range:entry 8% entry 50%}
  .rv.d2:not(.card){animation-range:entry 16% entry 58%}
  .band img{transform:none;transition:none;animation:band-zoom linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
}
@keyframes rv-in{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes band-zoom{from{transform:scale(1.15)}to{transform:scale(1)}}

/* ── STEAM 시그니처 스크롤 ───────────────────────────── */
.st{background:var(--teal-900);color:var(--ondark)}.st .head h2{color:var(--ondark)}.st .head p{color:#BFCDD2}
.st-g{display:grid;grid-template-columns:200px 1fr;gap:56px;margin-top:56px;align-items:start}
.st-l{position:sticky;top:calc(50vh - 230px);top:calc(50svh - 230px);display:flex;flex-direction:column;gap:4px;font-family:var(--fd);line-height:1}
.st-l b{font-size:84px;font-weight:700;color:rgba(255,255,255,.12);transition:color .5s ease,transform .5s cubic-bezier(.22,.61,.36,1);transform-origin:left center;font-variant-numeric:tabular-nums}
.st-l b.on{color:var(--orange);transform:scale(1.18) translateX(6px)}
.st-i{min-height:52vh;min-height:52svh;display:flex;flex-direction:row;align-items:center;gap:40px;padding:34px 0;border-top:1px solid rgba(255,255,255,.12);opacity:.28;transition:opacity .5s ease}
.st-i.on{opacity:1}.st-i:last-child{border-bottom:1px solid rgba(255,255,255,.12)}
.st-i small{display:block;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange)}
.st-i h3{font-size:22px;margin:10px 0 10px}
.st-i p{margin:0;color:#C9D6DA;font-size:15px;max-width:40em}
.st-t{flex:1 1 0}
.st-f{margin:0;flex:0 0 300px;aspect-ratio:1;position:relative;transform:translateY(28px) rotate(-3deg) scale(.92);opacity:0;transition:transform 1.1s cubic-bezier(.22,.61,.36,1),opacity .9s ease}
.st-f::before{content:"";position:absolute;inset:-14%;background:radial-gradient(circle,rgba(224,135,43,.28),transparent 62%);filter:blur(10px);z-index:0}
.st-f img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 38%,rgba(0,0,0,.6) 52%,transparent 70%);mask-image:radial-gradient(circle at 50% 50%,#000 38%,rgba(0,0,0,.6) 52%,transparent 70%);animation:float 7s ease-in-out infinite}
.st-i.on .st-f{transform:none;opacity:1}
@keyframes float{50%{transform:translateY(-8px)}}
.st-b{display:none}
@media(max-width:820px){
  .st-g{grid-template-columns:1fr;gap:0}.st-l{display:none}
  .st-i{flex-direction:column;align-items:flex-start;gap:16px;min-height:0;opacity:1}
  .st-f{flex:none;width:min(70vw,300px);opacity:1;transform:none}
  .st-b{display:inline-block;font-family:var(--fd);font-size:34px;color:var(--orange);margin-right:14px;vertical-align:middle;line-height:1}
  .st-i small{display:inline-block}
}

/* ── 테마 기획 카드 ──────────────────────────────────── */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.card{transform-style:preserve-3d;transition:transform .35s ease,box-shadow .35s ease;background:var(--panel);border-top:4px solid var(--teal-800);padding:28px 26px 30px;box-shadow:0 2px 24px rgba(20,66,78,.06)}
.card .m{width:10px;height:10px;background:var(--orange);margin-bottom:18px}
.card h3{font-size:20px;margin-bottom:10px}.card p{margin:0;color:var(--muted);font-size:14.5px}
.card.hi{background:var(--teal-800);color:var(--ondark);border-top-color:var(--orange)}.card.hi p{color:#C9D6DA}
@media(max-width:820px){.svc{grid-template-columns:1fr}}

/* ── 묻기 전에 먼저 준비 ─────────────────────────────── */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px;border-top:1px solid var(--hair)}
.step{padding:26px 22px 26px 0;border-right:1px solid var(--hair)}.step:last-child{border:0}
.step small{font-family:var(--fd);font-size:22px;font-weight:700;letter-spacing:.06em;color:var(--orange-600);display:block;line-height:1}
.step h3{font-size:17px;margin:12px 0 8px}.step p{margin:0;font-size:14px;color:var(--muted)}
@media(max-width:820px){.proc{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:0}}
@media(max-width:480px){.proc{grid-template-columns:1fr}.step{border-right:0;padding-right:0}}

/* QR 시연: 명찰 → 화살표 → 휴대폰(iframe) */
.qr-show{display:flex;align-items:center;justify-content:center;gap:28px;margin:48px 0 8px;flex-wrap:wrap}
.qr-show figure{margin:0;text-align:center}
.qr-show figcaption{font-size:12.5px;color:var(--muted);margin-top:12px;letter-spacing:.02em}
.qr-tag img{width:min(300px,80vw);box-shadow:0 24px 50px -20px rgba(14,42,51,.45);transform:rotate(-4deg);transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.qr-show.in .qr-tag img{transform:rotate(-2deg)}
.qr-back .qcard{width:min(220px,60vw);background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal-800);padding:16px 14px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 24px 50px -20px rgba(14,42,51,.45);transform:rotate(2deg)}
.qr-back .qcard img{width:100%;height:auto;image-rendering:pixelated}
.qr-back .qcard b{font-family:var(--fd);font-size:15px;color:var(--teal-900)}
.qr-back .qcard span{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.4}
.qr-arrow{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;letter-spacing:.3em;color:var(--muted);font-weight:700}
.ph-frame{width:min(250px,64vw);aspect-ratio:9/16.5;border-radius:34px;background:#0E2A33;padding:10px;box-shadow:0 30px 60px -22px rgba(14,42,51,.6),inset 0 0 0 2px rgba(255,255,255,.08);transform:rotate(3deg) translateY(30px);opacity:0;transition:transform 1.1s cubic-bezier(.22,.61,.36,1),opacity .8s ease;overflow:hidden}
.qr-show.in .ph-frame{transform:rotate(3deg);opacity:1}
.ph-frame .scr{width:100%;height:100%;border-radius:26px;overflow:hidden;background:#F7F6F2;position:relative;--k:.59}
.ph-frame iframe{position:absolute;left:0;top:0;width:390px;height:calc(100% / var(--k));transform:scale(var(--k));transform-origin:0 0;border:0;display:block;background:#F7F6F2}
.qr-phone figcaption b{color:var(--teal-800)}
@media(max-width:720px){.qr-arrow svg{transform:rotate(90deg);height:60px}.qr-show{gap:12px}}

/* ── CTA · 푸터 ──────────────────────────────────────── */
.cta{background:var(--teal-900);color:var(--ondark);position:relative;overflow:hidden}
.cta .mk{position:absolute;left:-4%;top:-30%;width:34%;opacity:.06}
.cta .wrap{position:relative;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.cta h2{font-size:clamp(24px,3.4vw,38px)}.cta p{color:#C9D6DA;margin:10px 0 0}
.cta .logo{height:56px;width:auto;margin-bottom:18px}
footer{padding-block:34px;font-size:13px;color:var(--muted);border-top:1px solid var(--hair)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer .wm{font-family:var(--fd);letter-spacing:.25em;color:var(--fg)}
footer .fine{width:100%;font-size:12px;color:var(--muted)}
footer a{color:inherit;display:inline-block;padding:6px 0}

/* 터치 기기(휴대폰·태블릿): 스크롤 리빌 페이드를 생략하고 내용을 바로 보여준다 — 짧은 화면에서 잦은 페이드는 읽기를 방해하고 배터리를 쓴다 */
@media(hover:none){.rv,.rv.in{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}.band img{transform:none;animation:none}.ph-frame,.qr-tag img{opacity:1;transform:rotate(3deg);transition:none}.qr-tag img{transform:rotate(-2deg)}}

/* ── 모션 축소 설정: 모든 애니메이션 정지 ─────────────── */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .st-f{opacity:1;transform:none}.st-f img{animation:none}.cue i{animation:none}.st-l b{transition:none}.mq-t{animation:none}
  .words span{clip-path:none;animation:none}
  .up,.rv{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .hero .ph{animation:none}.hero .ph video{display:none}.band img{transform:none;animation:none}.btn-o::after{display:none}
  .ph-frame,.qr-tag img{opacity:1;transform:none;transition:none}
  .live video{display:none}.live .wc{animation:none;transition:none;opacity:0}
}
