/* ===================================================================
   ABYSS Design System — 공유 스타일시트 (모든 랜딩 페이지 단일 소스)
   딥블랙 프리미엄 테크 · 실버 타이포 · 포인트컬러 0 · Pretendard+Inter
   =================================================================== */
:root{
  color-scheme: dark; /* 이 사이트는 다크 테마 — 브라우저 자동 다크모드(모바일)가 글자색을 재변환해 깨뜨리는 것 방지 */
  --color-abyss-black:#05070B; --color-soft-white:#F5F7FA; --color-silver-gray:#B8BDC6; --color-muted-steel:#8A9099;
  --surface-base:#05070B; --surface-section:#10141A; --surface-card:#161A21; --surface-card-hover:#20252E;
  --surface-light:#F3F4F6; --surface-light-card:#FFFFFF;
  --text-primary:#F5F7FA; --text-secondary:#B8BDC6; --text-muted:#8A9099; --text-disabled:#5F6670;
  --text-dark:#111318; --text-dark-secondary:#3A3F47;
  --border-soft:rgba(245,247,250,.08); --border-default:rgba(245,247,250,.12); --border-strong:rgba(245,247,250,.22); --border-light:#D9DDE3;
  --font-primary:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',system-ui,sans-serif;
  --font-number:Inter,'Pretendard Variable',Pretendard,sans-serif;
  --radius-sm:4px; --radius-md:6px; --radius-lg:8px;
  --container-max:1200px; --container-px:40px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-primary);background:var(--surface-base);color:var(--text-secondary);line-height:1.65;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;word-break:keep-all;overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:rgba(245,247,250,.16);color:#fff}
.wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-px);width:100%}
.wrap-narrow{max-width:840px}
.cap-en{font-family:var(--font-number);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}
.cap-ko{font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--text-muted)}
.num{font-family:var(--font-number);font-feature-settings:"tnum" 1}
.eyebrow{font-family:var(--font-number);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;min-width:148px;padding:0 24px;border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:14px;font-weight:500;letter-spacing:-.01em;gap:10px;cursor:pointer;border:1px solid transparent;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn svg{width:14px;height:14px;flex:none}
.btn-primary{background:var(--color-soft-white);color:var(--color-abyss-black);border-color:var(--color-soft-white)}
.btn-primary:hover{background:#fff;border-color:#fff}
.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}
.btn-secondary:hover{background:rgba(245,247,250,.06);border-color:rgba(245,247,250,.36);color:#fff}
.btn-light{background:var(--color-abyss-black);color:var(--text-primary);border-color:var(--color-abyss-black)}
.btn-light:hover{background:#000}
.btn-lg{height:52px;min-width:168px;padding:0 28px;font-size:15px}
.btn-sm{height:40px;min-width:120px;padding:0 20px;font-size:13px}
.btn-group{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* ===== Header ===== */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;height:80px;display:flex;align-items:center;transition:background .3s var(--ease),height .3s var(--ease)}
.hdr::after{content:"";position:absolute;inset:0;border-bottom:1px solid transparent;pointer-events:none;transition:border-color .3s var(--ease)}
.hdr.scrolled{height:64px;background:rgba(5,7,11,.78);backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px)}
.hdr.scrolled::after{border-bottom-color:var(--border-soft)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;width:100%}
.logo{display:inline-flex;align-items:center;gap:10px}
.logo .nm{font-size:18px;font-weight:600;letter-spacing:.04em;color:var(--text-primary)}
/* 메뉴는 전 뷰포트에서 햄버거(우측 상단) → 풀스크린 메뉴로 서브페이지 이동. 인라인 nav 는 미사용. */
.nav{display:none}
.nav a{font-size:14px;font-weight:500;letter-spacing:-.01em;color:var(--text-muted);transition:color .18s var(--ease)}
.nav a:hover,.nav a.active{color:var(--text-primary)}
.hdr-right{display:flex;align-items:center;gap:16px}
.hdr-cta{height:40px;min-width:120px;padding:0 20px;font-size:13px}
.hamb{display:flex;width:40px;height:40px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:border-color .18s var(--ease)}
.hamb:hover{border-color:var(--border-strong)}
.hamb span{width:16px;height:1.5px;background:var(--text-primary);transition:.25s var(--ease)}
.hamb.on span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamb.on span:nth-child(2){opacity:0}
.hamb.on span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
/* 풀스크린 메뉴 — 번호(01~)·한글·영문 컬럼 그리드 + 하단 상담 CTA·태그라인(원본 레이아웃, ABYSS 톤) */
.mmenu{position:fixed;inset:0;z-index:55;background:radial-gradient(120% 130% at 80% -10%,#10141a,#05070b 62%);opacity:0;visibility:hidden;overflow-y:auto;transition:opacity .4s var(--ease),visibility .4s var(--ease)}
.mmenu.open{opacity:1;visibility:visible}
.mm-inner{max-width:var(--container-max);margin:0 auto;min-height:100%;padding:120px var(--container-px) 56px;display:flex;flex-direction:column;justify-content:center}
.mm-eyebrow{margin-bottom:34px;opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease) .1s,transform .5s var(--ease) .1s}
.mmenu.open .mm-eyebrow{opacity:1;transform:none}
.mm-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.mm-list a{display:flex;flex-direction:column;gap:9px;padding:20px 0;border-top:1px solid var(--border-soft);opacity:0;transform:translateY(28px);transition:opacity .5s var(--ease),transform .55s var(--ease),border-color .2s var(--ease)}
.mmenu.open .mm-list a{opacity:1;transform:none}
.mmenu.open .mm-list a:nth-child(1){transition-delay:.16s}
.mmenu.open .mm-list a:nth-child(2){transition-delay:.20s}
.mmenu.open .mm-list a:nth-child(3){transition-delay:.24s}
.mmenu.open .mm-list a:nth-child(4){transition-delay:.28s}
.mmenu.open .mm-list a:nth-child(5){transition-delay:.32s}
.mmenu.open .mm-list a:nth-child(6){transition-delay:.36s}
.mmenu.open .mm-list a:nth-child(7){transition-delay:.40s}
.mmenu.open .mm-list a:nth-child(8){transition-delay:.44s}
.mmenu.open .mm-list a:nth-child(9){transition-delay:.48s}
.mm-list a:hover{border-top-color:var(--border-strong)}
.mm-list .mi-no{font-family:var(--font-number);font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--text-disabled)}
.mm-list .mi-tx{font-size:30px;font-weight:500;letter-spacing:-.025em;line-height:1.05;color:var(--text-secondary);transition:color .18s var(--ease)}
.mm-list a:hover .mi-tx,.mm-list a[aria-current] .mi-tx{color:var(--text-primary)}
.mm-list .mi-en{font-family:var(--font-number);font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--text-disabled)}
.mm-foot{margin-top:52px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease) .5s,transform .5s var(--ease) .5s}
.mmenu.open .mm-foot{opacity:1;transform:none}
.mm-meta{font-size:12.5px;color:var(--text-muted)}
.mm-login{font-size:13px;color:var(--text-muted);transition:color .18s var(--ease)}
.mm-login:hover{color:var(--text-primary)}
@media(max-width:900px){.mm-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){
  .mm-inner{justify-content:flex-start;padding:104px 20px 44px}
  .mm-list{grid-template-columns:1fr}
  .mm-list a{flex-direction:row;align-items:baseline;gap:14px;padding:16px 0}
  .mm-list .mi-no{order:0}.mm-list .mi-tx{font-size:26px}.mm-list .mi-en{display:none}
}

/* ===== Section base ===== */
.sec{padding:120px 0}
.sec-sm{padding:88px 0}
.sec-head{max-width:720px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head .eyebrow{margin-bottom:18px}
.sec-head h2{font-size:40px;font-weight:500;line-height:1.25;letter-spacing:-.025em;color:var(--text-primary)}
.sec-head p{font-size:16px;color:var(--text-secondary);margin-top:20px;max-width:560px}
.sec-head.center p{margin-left:auto;margin-right:auto}

/* ===== Page hero (서브페이지 공용 — 중앙 정렬) ===== */
.page-hero{position:relative;padding:188px 0 88px;overflow:hidden;border-bottom:1px solid var(--border-soft);background:radial-gradient(980px 660px at 50% -34%,rgba(120,140,175,.12),transparent 60%)}
/* 페이지별 히어로 이미지(--ph-bg) — 좌측은 페이지색으로 덮어 텍스트 보호, 우측으로 드러남 */
.page-hero::before{content:"";position:absolute;inset:0;z-index:0;background:var(--ph-bg,none) no-repeat var(--ph-pos,center)/cover;opacity:var(--ph-op,.5);pointer-events:none}
.page-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--surface-base),rgba(11,14,20,.82) 46%,rgba(11,14,20,.46) 100%),linear-gradient(0deg,var(--surface-base),transparent 28%,transparent 72%,rgba(11,14,20,.5))}
/* 페이지 주제·종횡비에 맞춘 히어로 배경(보유 자산). branches는 자체 SVG 컨스텔레이션 사용 */
.page-hero[data-hero="about"]{--ph-bg:url("/img/ceo-studio.webp");--ph-pos:right 18%;--ph-op:.52}
.page-hero[data-hero="portfolio"]{--ph-bg:url("/img/proof-membergrowth.webp");--ph-pos:center;--ph-op:.34}
.page-hero[data-hero="solution"]{--ph-bg:url("/img/act-lecture.webp");--ph-pos:center 32%;--ph-op:.32}
.page-hero[data-hero="blog"]{--ph-bg:url("/img/act-gov-mentor.webp");--ph-pos:center 26%;--ph-op:.32}
.page-hero[data-hero="careers"]{--ph-bg:url("/img/act-hyundai.webp");--ph-pos:center 30%;--ph-op:.3}
.page-hero[data-hero="partnership"]{--ph-bg:url("/img/act-seminar.webp");--ph-pos:right 20%;--ph-op:.3}
.page-hero[data-hero="official"]{--ph-bg:url("/img/award-nipa.webp");--ph-pos:center 28%;--ph-op:.4}
.page-hero[data-hero="place"]{--ph-bg:url("/img/act-workshop.webp");--ph-pos:center 30%;--ph-op:.3}
.page-hero[data-hero="blogmkt"]{--ph-bg:url("/img/award-assembly.webp");--ph-pos:center 24%;--ph-op:.3}
.page-hero[data-hero="sns"]{--ph-bg:url("/img/hero-poster.webp");--ph-pos:center 28%;--ph-op:.34}
.page-hero[data-hero="shopping"]{--ph-bg:url("/img/proof-membergrowth.webp");--ph-pos:center;--ph-op:.3}
.page-hero .inner{position:relative;z-index:2;max-width:800px}
.page-hero.center .inner{margin:0 auto;text-align:center}
.page-hero .eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:22px}
.page-hero .eyebrow::before{content:"";width:26px;height:1px;background:var(--border-strong)}
.page-hero.center .eyebrow{justify-content:center}
.page-hero h1{font-size:58px;font-weight:500;line-height:1.14;letter-spacing:-.035em;color:var(--text-primary)}
.page-hero h1 .dim{color:var(--text-muted)}
.page-hero p{font-size:18px;line-height:1.7;color:var(--text-secondary);margin-top:24px;max-width:600px}
.page-hero.center p{margin-left:auto;margin-right:auto}
.page-hero .ph-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.page-hero.center .ph-meta{justify-content:center}
.page-hero .ph-meta span{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);padding:7px 15px;border:1px solid var(--border-soft);border-radius:999px;background:rgba(245,247,250,.02);white-space:nowrap}
.page-hero .ph-meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--text-muted);flex:none}
.page-hero .btn-group{margin-top:34px}
.page-hero .ph-meta span{transition:transform .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}
.page-hero .ph-meta span:hover{transform:translateY(-2px);border-color:var(--border-strong);background:rgba(245,247,250,.06);color:var(--text-primary)}
.info-card{transition:transform .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease)}
.info-card:hover{transform:translateY(-3px);border-color:var(--border-default);background:var(--surface-card-hover)}
.page-hero.center .btn-group{justify-content:center}

/* ===== Metrics strip ===== */
.metrics{border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--surface-section)}
.metrics-in{display:grid;grid-template-columns:repeat(4,1fr);padding:36px 0}
.metric{padding:0 32px;border-left:1px solid var(--border-soft)}
.metric:first-child{border-left:0}
.metric .mv{font-family:var(--font-number);font-size:48px;font-weight:400;line-height:1;letter-spacing:-.03em;color:var(--text-primary);margin-bottom:10px;white-space:nowrap}
.metric .mv-u{font-size:.5em;font-weight:600;letter-spacing:0;margin-left:2px;color:var(--text-secondary)}
.metric .ml{font-size:13px;color:var(--text-muted)}

/* ===== Grids ===== */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}

/* ===== Dark feature card ===== */
.fcard{position:relative;background:var(--surface-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:28px;display:flex;flex-direction:column;transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.fcard.link:hover{background:var(--surface-card-hover);border-color:rgba(245,247,250,.18);transform:translateY(-3px)}
.fcard .fnum{font-family:var(--font-number);font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--text-disabled);margin-bottom:18px}
.fcard .cic{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);margin-bottom:20px}
.fcard .cic svg{width:22px;height:22px}
.fcard h3{font-size:18px;font-weight:500;line-height:1.35;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:12px}
.fcard p{font-size:14px;line-height:1.6;color:var(--text-muted)}
.fcard .arr{position:absolute;right:22px;bottom:22px;color:var(--text-disabled);transition:color .2s var(--ease),transform .2s var(--ease)}
.fcard.link:hover .arr{color:var(--text-primary);transform:translate(2px,-2px)}
.fcard .arr svg{width:16px;height:16px}

/* ===== Light section + cards ===== */
.light{background:var(--surface-light);color:var(--text-dark)}
.light .sec-head h2,.light h2,.light h3{color:var(--text-dark)}
.light .sec-head p,.light .eyebrow{color:var(--text-dark-secondary)}
.capcard{background:var(--surface-light-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:28px;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.capcard:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(17,19,24,.06)}
.capcard .cic{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-dark);margin-bottom:20px}
.capcard .cic svg{width:22px;height:22px}
.capcard h3{font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--text-dark);margin-bottom:12px}
.capcard p{font-size:14.5px;line-height:1.6;color:var(--text-dark-secondary)}

/* ===== Steps / timeline ===== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.step{position:relative;padding:28px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-card)}
.step .sn{font-family:var(--font-number);font-size:13px;letter-spacing:.12em;color:var(--text-disabled);margin-bottom:16px}
.step h3{font-size:17px;font-weight:500;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:10px}
.step p{font-size:14px;line-height:1.6;color:var(--text-muted)}

/* ===== List rows (FAQ / 항목 나열) ===== */
.rows{border-top:1px solid var(--border-soft)}
.row{border-bottom:1px solid var(--border-soft);padding:26px 0}
.row h3{font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:10px}
.row p{font-size:15px;line-height:1.7;color:var(--text-muted)}
.row .rmeta{font-family:var(--font-number);font-size:12px;letter-spacing:.1em;color:var(--text-disabled);margin-bottom:12px}
/* 블로그 카테고리 필터 칩 (light 섹션 — 밝은 배경 톤) */
.blog-filter{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 32px}
.bf-chip{font-family:var(--font-number);font-size:12.5px;font-weight:500;letter-spacing:.02em;color:var(--text-dark-secondary);border:1px solid var(--border-light);background:var(--surface-light-card);padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}
.bf-chip:hover{border-color:var(--text-dark-secondary);color:var(--text-dark)}
.bf-chip.on{background:var(--text-dark);border-color:var(--text-dark);color:#fff}
/* 업로드 로고(서버 렌더) + SEO용 텍스트는 화면에서 숨김(sr-only) — 텍스트 플래시 0 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.logo-img{height:26px;width:auto;display:block}
.logo-img--foot{height:22px}
/* 클릭 가능한 인사이트 카드(상세글 연결) */
a.row.is-link{display:block;text-decoration:none;cursor:pointer;transition:padding-left .22s var(--ease),border-color .22s var(--ease)}
a.row.is-link:hover{padding-left:12px;border-color:var(--border-default)}
a.row.is-link h3{transition:color .2s var(--ease)}
a.row.is-link .more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:var(--text-muted);transition:color .2s var(--ease)}
a.row.is-link .more svg{width:14px;height:14px;transition:transform .2s var(--ease)}
a.row.is-link:hover .more{color:var(--text-primary)}
a.row.is-link:hover .more svg{transform:translateX(4px)}
/* 블로그(.light 섹션) 리스트 — 흰 제목이 밝은 배경에 묻히던 문제 수정: 제목 어둡게+크게+굵게, 본문·더보기도 라이트 톤 */
.light .row h3{color:var(--text-dark);font-size:21px;font-weight:600;letter-spacing:-.025em}
.light .row p{color:var(--text-dark-secondary)}
.light a.row.is-link .more{color:var(--text-dark-secondary)}
.light a.row.is-link:hover h3{color:#000}
.light a.row.is-link:hover .more{color:var(--text-dark)}
@media (max-width:767px){ .light .row h3{font-size:19px} }
/* ===== 서비스 카테고리 탭 (플레이스/블로그/SNS/쇼핑 서비스 페이지) ===== */
.svc-nav-wrap{padding-top:6px;position:sticky;top:64px;z-index:40}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){ .svc-nav-wrap{background:rgba(5,7,11,.82);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px)} }
.svc-nav{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--border-soft)}
.svc-nav a{font-family:var(--font-number);font-size:14px;font-weight:500;letter-spacing:.01em;color:var(--text-muted);padding:14px 22px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s var(--ease),border-color .2s var(--ease)}
.svc-nav a:hover{color:var(--text-secondary)}
.svc-nav a.on{color:var(--text-primary);border-bottom-color:var(--text-primary)}
@media (max-width:600px){ .svc-nav a{padding:12px 15px;font-size:12.5px} }
/* 상황별 추천 카드 — 추천 조합 강조 */
.scen-q{font-size:17px;font-weight:600;color:var(--text-primary);letter-spacing:-.015em;line-height:1.4;margin-bottom:10px}
.scen-q::before{content:"“";color:var(--text-disabled);margin-right:1px}
.scen-q::after{content:"”";color:var(--text-disabled);margin-left:1px}
.rec{margin-top:auto;padding-top:16px;border-top:1px solid var(--border-soft)}
.rec .rec-k{font-family:var(--font-number);font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--text-disabled);text-transform:uppercase;display:block;margin-bottom:7px}
.rec .rec-v{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.5}
/* 상품 상세 포인트 리스트 */
.pts{list-style:none;margin-top:15px;display:flex;flex-direction:column;gap:8px}
.pts li{position:relative;padding-left:17px;font-size:13.5px;color:var(--text-secondary);line-height:1.55}
.pts li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--text-muted)}
/* 상품 카드 — 근거/사례 라인 (카드 하단 고정) */
.fref{margin-top:auto;padding-top:16px;border-top:1px solid var(--border-soft);font-size:12.5px;color:var(--text-muted);line-height:1.55}
.fref .fref-k{font-family:var(--font-number);font-size:10px;font-weight:600;letter-spacing:.13em;color:var(--text-disabled);text-transform:uppercase;margin-right:9px}
.fref b{color:var(--text-secondary);font-weight:600}
.fref + .pts,.pts + .fref{margin-top:18px}
.sec-more{display:inline-flex;align-items:center;gap:6px;margin-top:32px;font-family:var(--font-number);font-size:13.5px;font-weight:500;letter-spacing:.01em;color:var(--text-secondary);transition:color .2s var(--ease),gap .2s var(--ease)}
.sec-more:hover{color:var(--text-primary);gap:10px}
.sec-more svg{width:15px;height:15px}

/* ===== 인용 가능한 정의/핵심 블록 (GEO) ===== */
.keypoint{margin-top:36px;padding:26px 30px;border:1px solid var(--border-soft);border-left:2px solid var(--text-primary);border-radius:var(--radius-md);background:var(--surface-card)}
.keypoint p{font-size:18px;line-height:1.62;color:var(--text-primary);font-weight:500;letter-spacing:-.012em}
.keypoint .kp-src{display:block;margin-top:13px;font-family:var(--font-number);font-size:11px;letter-spacing:.1em;color:var(--text-disabled);text-transform:uppercase}
@media (max-width:600px){ .keypoint{padding:22px 22px} .keypoint p{font-size:15.5px} }

/* ===== 프로세스 플로우 (논리적 설득 구조) ===== */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;position:relative}
.flow .fstep{position:relative;background:var(--surface-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:26px 24px;display:flex;flex-direction:column}
.flow .fstep .st-no{font-family:var(--font-number);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--text-disabled);margin-bottom:18px}
.flow .fstep h3{font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;margin-bottom:5px}
.flow .fstep .st-en{font-family:var(--font-number);font-size:10.5px;letter-spacing:.13em;color:var(--text-muted);text-transform:uppercase;margin-bottom:14px}
.flow .fstep p{font-size:13.5px;line-height:1.62;color:var(--text-secondary)}
.flow .fstep::after{content:"";position:absolute;top:40px;right:-9px;width:18px;height:1px;background:var(--border-default);z-index:1}
.flow .fstep:last-child::after{display:none}
@media (max-width:860px){ .flow{grid-template-columns:repeat(2,1fr)} .flow .fstep:nth-child(2)::after{display:none} }
@media (max-width:520px){ .flow{grid-template-columns:1fr} .flow .fstep::after{display:none} }

/* ===== 캐러셀 ===== */
.carousel{position:relative}
.c-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 4px;margin:0 -2px;cursor:grab}
.c-track::-webkit-scrollbar{display:none}
.c-track.drag{cursor:grabbing;scroll-snap-type:none}
.c-track>*{scroll-snap-align:start;flex:0 0 calc((100% - 24px)/3)}
@media (max-width:900px){ .c-track>*{flex-basis:calc((100% - 12px)/2)} }
@media (max-width:600px){ .c-track>*{flex-basis:85%} }
.c-foot{display:flex;align-items:center;justify-content:space-between;margin-top:24px;gap:16px}
.c-dots{display:flex;gap:7px}
.c-dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong);border:0;padding:0;cursor:pointer;transition:background .2s var(--ease),transform .2s var(--ease)}
.c-dot.on{background:var(--text-primary);transform:scale(1.28)}
.c-arrows{display:flex;gap:8px}
.c-arrows button{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--border-default);border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s var(--ease),border-color .2s var(--ease),opacity .2s var(--ease)}
.c-arrows button:hover{color:var(--text-primary);border-color:var(--text-primary)}
.c-arrows button:disabled{opacity:.3;cursor:default}
.c-arrows svg{width:18px;height:18px}

/* ===== 증거 스트립 (count-up) ===== */
.proofbar{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.proofbar .pf{background:var(--surface-card);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:28px 26px}
.proofbar .pf .pf-v{font-family:var(--font-number);font-weight:600;letter-spacing:-.02em;color:var(--text-primary);line-height:1;font-size:38px;display:flex;align-items:baseline;gap:2px}
.proofbar .pf .pf-v .ar{color:var(--text-muted);font-size:22px;margin-right:2px}
.proofbar .pf .pf-v .u{font-size:17px;font-weight:500;color:var(--text-muted);margin-left:3px}
.proofbar .pf .pf-k{margin-top:13px;font-size:13.5px;color:var(--text-secondary);line-height:1.5}
@media (max-width:600px){ .proofbar{grid-template-columns:1fr;gap:10px} .proofbar .pf{display:flex;align-items:baseline;gap:16px;padding:20px 22px} .proofbar .pf .pf-v{font-size:30px} .proofbar .pf .pf-k{margin-top:0} }

/* ===== FAQ 아코디언 (GEO/SEO) ===== */
.faq{border-top:1px solid var(--border-soft)}
.faq-item{border-bottom:1px solid var(--border-soft)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 4px;background:0;border:0;text-align:left;cursor:pointer;color:var(--text-primary);font-size:17px;font-weight:500;letter-spacing:-.01em;line-height:1.45;font-family:inherit}
.faq-ic{flex:0 0 auto;width:20px;height:20px;position:relative;transition:transform .32s var(--ease)}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:var(--text-muted)}
.faq-ic::before{top:9px;left:2px;right:2px;height:1.5px}
.faq-ic::after{left:9px;top:2px;bottom:2px;width:1.5px}
.faq-item.open .faq-ic{transform:rotate(135deg)}
.faq-a-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--ease)}
.faq-item.open .faq-a-wrap{grid-template-rows:1fr}
.faq-a{overflow:hidden}
.faq-a p{font-size:15px;line-height:1.72;color:var(--text-secondary);padding:0 4px 26px;max-width:780px}
@media (max-width:600px){ .faq-q{font-size:14.5px;padding:20px 2px;gap:14px} .faq-a p{font-size:14px} }

/* ===== 블로그 상세글 본문 ===== */
.article-body{max-width:768px;margin:0 auto}
.article-body .lead{font-size:19px;line-height:1.8;color:var(--text-primary);margin:0 0 30px}
.article-body h2{font-size:25px;font-weight:600;letter-spacing:-.02em;line-height:1.32;color:var(--text-primary);margin:48px 0 16px}
.article-body h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:30px 0 10px}
.article-body p{font-size:16.5px;line-height:1.85;color:var(--text-secondary);margin:0 0 18px}
.article-body strong{color:var(--text-primary);font-weight:600}
.article-body ol{counter-reset:n;list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:22px}
.article-body ol>li{position:relative;padding-left:46px;min-height:30px}
.article-body ol>li::before{counter-increment:n;content:counter(n);position:absolute;left:0;top:-2px;width:30px;height:30px;display:grid;place-items:center;font-family:var(--font-number);font-size:14px;color:var(--text-primary);border:1px solid var(--border-default);border-radius:50%}
.article-body ol>li h3{margin:2px 0 6px;font-size:17.5px}
.article-body ol>li p{margin:0;font-size:15.5px;color:var(--text-muted)}
.article-body ul{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:11px}
.article-body ul>li{position:relative;padding-left:20px;font-size:16px;line-height:1.7;color:var(--text-secondary)}
.article-body ul>li::before{content:"";position:absolute;left:4px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--text-muted)}
.article-body blockquote{margin:30px 0;padding:20px 24px;border-left:2px solid var(--border-strong);background:rgba(245,247,250,.03);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-primary);font-size:17px;line-height:1.72}
.article-cta{max-width:768px;margin:52px auto 0;padding:36px 32px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-card);text-align:center}
.article-cta h3{font-size:21px;font-weight:600;color:var(--text-primary);margin-bottom:8px}
.article-cta p{font-size:14.5px;line-height:1.6;color:var(--text-muted);margin-bottom:22px}
.article-back{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--text-muted);text-decoration:none;transition:color .2s var(--ease)}
.article-back svg{width:15px;height:15px}
.article-back:hover{color:var(--text-primary)}
/* 핵심 요약(TL;DR) — 사이트 카드(.fcard/.info-card) 동일 스타일: 균일 1px 보더 + surface-card, 액센트 바 없음 */
.article-tldr{max-width:768px;margin:0 auto 34px;padding:26px 28px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-card)}
.article-tldr .lbl{font-family:var(--font-number);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;display:block}
.article-tldr ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.article-tldr li{position:relative;padding-left:18px;font-size:15px;line-height:1.62;color:var(--text-secondary)}
.article-tldr li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--text-muted)}
.article-tldr strong{color:var(--text-primary);font-weight:600}
/* 본문 표 */
.article-body table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px}
.article-body thead th{font-size:13px;color:var(--text-muted);font-weight:600;background:var(--surface-section)}
.article-body th,.article-body td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border-soft);color:var(--text-secondary);vertical-align:top}
.article-body td strong{color:var(--text-primary)}
/* FAQ — 검색 스니펫·AI 인용 대비 */
.article-faq{max-width:768px;margin:0 auto}
.article-faq .qa{border-bottom:1px solid var(--border-soft);padding:20px 0}
.article-faq .qa:first-child{border-top:1px solid var(--border-soft)}
.article-faq .q{font-size:16.5px;font-weight:600;color:var(--text-primary);margin-bottom:9px;display:flex;gap:10px}
.article-faq .q::before{content:"Q.";font-family:var(--font-number);color:var(--text-muted);flex:none}
.article-faq .a{font-size:15.5px;line-height:1.8;color:var(--text-secondary);padding-left:25px}
.article-faq .a strong{color:var(--text-primary)}
@media(max-width:767px){.article-body h2{font-size:22px}.article-body .lead{font-size:17px}.article-tldr,.article-body table{font-size:14.5px}}

/* ===== Prose (약관·블로그 본문) ===== */
.prose{max-width:760px;color:var(--text-secondary);font-size:15.5px;line-height:1.85}
.prose h2{font-size:24px;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;margin:40px 0 14px}
.prose h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:28px 0 10px}
.prose p{margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 16px;padding-left:20px}
.prose li{margin:0 0 8px}
.prose a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}
.prose strong{color:var(--text-primary);font-weight:500}
.prose .muted{color:var(--text-muted);font-size:13.5px}

/* ===== Company info cards (.info-card — site.js 가 .k 라벨로 .v 채움) ===== */
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.info-card{border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:24px 26px;background:var(--surface-card)}
.info-card .k{font-family:var(--font-number);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}
.info-card .v{font-size:15px;font-weight:500;color:var(--text-secondary);line-height:1.6}
.info-card .v.ph{color:var(--text-disabled)}

/* ===== Split (인물·대표 소개 등 좌우 분할) ===== */
.split{display:grid;grid-template-columns:360px 1fr;gap:clamp(36px,5vw,72px);align-items:start}
.portrait{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-soft);background:linear-gradient(160deg,#161A21,#0b0e14);aspect-ratio:4/5;position:sticky;top:96px}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 16%;display:block}
/* 미디어 갤러리 — 대표 활동·현장 사진(캡션). about 등 공용 */
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.media-card{border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-card);transition:transform .25s var(--ease),border-color .25s var(--ease)}
.media-card:hover{transform:translateY(-4px);border-color:var(--border-default)}
.media-card .mc-img{aspect-ratio:3/4;overflow:hidden;background:var(--surface-section)}
.media-card .mc-img img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.media-card .mc-body{padding:15px 17px}
.media-card .mc-body h4{font-size:15px;font-weight:500;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:6px}
.media-card .mc-body p{font-size:13px;line-height:1.55;color:var(--text-muted)}
/* 증빙 스크린샷 프레임 — 그래프 등 UI 캡처(잘림 없이 contain) */
.proof-shot{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-soft);background:var(--surface-section);display:grid;place-items:center;padding:20px}
.proof-shot img{width:100%;max-width:330px;height:auto;display:block;border-radius:var(--radius-sm)}
/* 가로형(강연·현장) 변형 — 풍경 사진 잘림 최소화 */
.media-grid.wide .mc-img{aspect-ratio:4/3}
.media-grid.wide .mc-img img{object-position:center}
@media(max-width:900px){.media-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.media-grid{grid-template-columns:1fr}}
.split .copy h2{font-size:clamp(26px,3.4vw,40px);font-weight:500;letter-spacing:-.025em;line-height:1.15;color:var(--text-primary)}
.signature{font-size:16px;font-weight:500;color:var(--text-secondary);letter-spacing:-.02em;margin:10px 0 16px;line-height:1.45}
.htags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.htag{font-family:var(--font-number);font-size:11.5px;font-weight:500;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border-default);padding:5px 11px;border-radius:var(--radius-sm)}
.quote{border-left:2px solid var(--border-strong);padding:4px 0 4px 18px;margin:22px 0;font-size:17px;font-weight:500;color:var(--text-primary);line-height:1.6;letter-spacing:-.02em}
.quote span{display:block;margin-top:10px;font-size:13px;font-weight:500;color:var(--text-muted)}
.copy p.body{font-size:15px;color:var(--text-secondary);font-weight:400;line-height:1.8;margin-top:16px}
.biolist{list-style:none;display:flex;flex-direction:column;gap:11px;margin-top:24px}
.biolist li{display:flex;gap:11px;font-size:14.5px;font-weight:400;color:var(--text-secondary)}
.biolist .dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted);margin-top:9px;flex:none}
@media(max-width:820px){.split{grid-template-columns:1fr}.portrait{max-width:360px;position:static}}
@media(max-width:680px){.info-grid{grid-template-columns:1fr}}

/* ===== Footer CTA ===== */
.fcta{border-top:1px solid var(--border-soft);background:var(--surface-section)}
.fcta-in{padding:96px 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.fcta .lbl{margin-bottom:14px}
.fcta h2{font-size:40px;font-weight:500;line-height:1.25;letter-spacing:-.025em;color:var(--text-primary);margin-bottom:32px;max-width:680px}

/* ===== Forms ===== */
.contact{padding:120px 0}
.contact-grid{display:grid;grid-template-columns:minmax(360px,1fr) minmax(420px,1fr);gap:64px;align-items:start}
.contact-copy h2{font-size:40px;font-weight:500;line-height:1.25;letter-spacing:-.025em;color:var(--text-primary);margin-bottom:20px}
.contact-copy p{font-size:16px;color:var(--text-secondary);margin-bottom:14px;max-width:460px}
.contact-copy .small{font-size:13px;color:var(--text-muted)}
.contact-points{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.contact-points li{display:flex;align-items:center;gap:12px;font-size:14.5px;color:var(--text-secondary);list-style:none}
.contact-points .dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted);flex:none}
.form{position:relative;background:var(--surface-card);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:32px}
.form h3{font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:6px}
.form .sub{font-size:13.5px;color:var(--text-muted);margin-bottom:24px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:500;letter-spacing:.01em;color:var(--text-muted);margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 14px;height:46px;color:var(--text-primary);font-family:var(--font-primary);font-size:14.5px;letter-spacing:-.01em;transition:border-color .18s var(--ease),background .18s var(--ease)}
.field textarea{height:auto;min-height:90px;padding:12px 14px;resize:vertical;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--text-disabled)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--border-strong);background:#0b0e14}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent{display:flex;align-items:flex-start;gap:10px;margin:6px 0 20px;cursor:pointer}
.consent input{margin-top:3px;width:15px;height:15px;accent-color:#F5F7FA;flex:none}
.consent span{font-size:12.5px;line-height:1.5;color:var(--text-muted)}
.form .btn{width:100%}
.msg{margin-top:14px;font-size:13px;min-height:18px}
.msg.err{color:#e8a0a0}
.form .done{display:none;text-align:center;padding:24px 8px}
.form.sent .form-body{display:none}
.form.sent .done{display:block}
.form .done .ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;border:1px solid var(--border-strong);color:var(--text-primary)}
.form .done h3{font-size:19px;margin-bottom:10px}
.form .done p{font-size:14px;color:var(--text-muted);line-height:1.6}

/* ===== Footer ===== */
.foot{border-top:1px solid var(--border-soft);padding:56px 0 40px;background:var(--surface-base)}
.foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--border-soft)}
.fm-logo{font-size:18px;font-weight:600;letter-spacing:.06em;color:var(--text-primary);display:inline-block;margin-bottom:14px}
.fm-biz{display:block;font-size:12.5px;line-height:1.7;color:var(--text-muted);max-width:520px}
.fm-biz.ph{color:var(--text-disabled)}
.foot-links{display:flex;flex-wrap:wrap;gap:10px 22px;align-content:flex-start}
.foot-links a{font-size:13px;color:var(--text-muted);transition:color .18s var(--ease)}
.foot-links a:hover{color:var(--text-primary)}
.foot-bot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;flex-wrap:wrap}
.foot-bot .fm-cr{font-size:12px;color:var(--text-disabled);font-family:var(--font-number);letter-spacing:.02em}
.foot-bot .fm-tag{font-size:12px;color:var(--text-disabled)}

/* ===== Reveal ===== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.stagger.in>*{opacity:1;transform:none}
.stagger.in>*:nth-child(2){transition-delay:.06s}
.stagger.in>*:nth-child(3){transition-delay:.12s}
.stagger.in>*:nth-child(4){transition-delay:.18s}
.stagger.in>*:nth-child(5){transition-delay:.24s}
.stagger.in>*:nth-child(6){transition-delay:.3s}
.stagger.in>*:nth-child(7){transition-delay:.36s}
.stagger.in>*:nth-child(8){transition-delay:.42s}
@media(prefers-reduced-motion:reduce){.reveal,.stagger>*{transition:none;opacity:1;transform:none}}

/* ===== Responsive ===== */
@media(max-width:1100px){
  .contact-grid{grid-template-columns:1fr;gap:40px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1023px){:root{--container-px:32px}}
@media(max-width:767px){
  :root{--container-px:20px}
  .nav,.hdr-right .hdr-cta{display:none}
  .hamb{display:flex}
  .page-hero{padding:124px 0 56px}
  /* 모바일 — 텍스트가 전폭이라 좌-다크 베일 대신 균일하게 어둡게 + 이미지 더 낮춤 */
  .page-hero::before{opacity:.26}
  .page-hero::after{background:linear-gradient(0deg,var(--surface-base) 6%,rgba(11,14,20,.5) 60%,rgba(11,14,20,.66))}
  .page-hero h1{font-size:33px;line-height:1.26}
  .page-hero p{font-size:15px;margin-top:18px}
  .page-hero .eyebrow{margin-bottom:16px}
  .page-hero .ph-meta{gap:8px;margin-top:22px}
  .page-hero .ph-meta span{font-size:12px;padding:6px 12px}
  .metrics-in{grid-template-columns:repeat(2,1fr);gap:28px 0;padding:32px 0}
  .metric{padding:0 20px}
  .metric:nth-child(odd){border-left:0}
  .metric:nth-child(3),.metric:nth-child(4){border-top:1px solid var(--border-soft);padding-top:28px}
  .metric .mv{font-size:38px}
  .sec{padding:80px 0}
  .sec-sm{padding:64px 0}
  .sec-head{margin-bottom:40px}
  .sec-head h2,.fcta h2,.contact-copy h2{font-size:30px;line-height:1.28}
  .grid-2,.grid-3,.grid-4,.steps{grid-template-columns:1fr}
  .fcta-in{padding:72px 0}
  .frow{grid-template-columns:1fr}
  .form{padding:24px}
  .foot-top{flex-direction:column;gap:28px}
  .prose h2{font-size:21px}
}

/* ===== 커서 인터랙션 — 데스크톱(fine pointer) 전용, reduced-motion·터치 시 자동 비활성 =====
   1) 앰비언트 글로우: 포인터를 따라 딥블랙 보이드에 은은한 실버 빛(콘텐츠 뒤 z-index:-1, 불투명 면 뒤로 자연 은폐)
   2) 마그네틱: 주요 CTA가 커서 쪽으로 미세하게 끌려옴
   3) 시언: 카드 위에서 커서를 따라 빛이 스윕(다크/라이트 면 각각) */
.cursor-glow{position:fixed;left:0;top:0;width:540px;height:540px;margin:-270px 0 0 -270px;border-radius:50%;pointer-events:none;z-index:-1;opacity:0;transform:translate3d(var(--gx,50vw),var(--gy,50vh),0);background:radial-gradient(circle,rgba(150,170,205,.11),rgba(120,140,175,.045) 42%,transparent 70%);transition:opacity .6s var(--ease);will-change:transform}
body.cursor-on .cursor-glow{opacity:1}
[data-mag]{will-change:transform}
.sheen-fx{position:relative}
.sheen-fx::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s var(--ease);background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(245,247,250,.07),transparent 58%)}
.sheen-fx.is-light::after{background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(17,19,24,.05),transparent 58%)}
.sheen-fx:hover::after{opacity:1}
@media(hover:none),(pointer:coarse){.cursor-glow{display:none}.sheen-fx::after{display:none}}
@media(prefers-reduced-motion:reduce){.cursor-glow{display:none}.sheen-fx::after{display:none}[data-mag]{transform:none!important}}
