/* 블록체인 개발 — 옵시디언 + 바이올렛 → 시안 → 민트 · 모노 라벨 */
/* 공용 core.css 에 [hidden] 보강이 없어 .btn·.form-done 의 display 가 hidden 을 이김 → 여기서 보장 */
[hidden] { display: none !important; }

.world-chain { --bc-v: #8b6cff; --bc-c: #45d4ff; --bc-m: #5cf2c0; --bc-band: #0c0a15; --bc-band-2: #110e1d; }
.world-chain .sec { padding-block: clamp(72px, 8.4vw, 124px); }
.world-chain .topline__static span { color: #b9b4d4; }
.bc-top-short { display: none; }
@media (max-width: 860px) { .bc-top-long { display: none; } .bc-top-short { display: inline; } }
.world-chain .eyebrow { letter-spacing: .22em; }

/* ---------- 히어로 · 체인 띠 ---------- */
.bc-hero { position: relative; overflow: hidden; isolation: isolate; padding-bottom: clamp(24px, 4vw, 56px); background: radial-gradient(80% 70% at 12% 0%, rgba(139, 108, 255, .2), transparent 62%), radial-gradient(60% 55% at 100% 26%, rgba(69, 212, 255, .1), transparent 62%), var(--obsidian); }
.bc-hero .fx-layer { z-index: -1; }
.bc-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(20px, 3vw, 48px); max-width: calc(var(--maxw) + 40px); margin-inline: auto; padding-left: var(--gut-l); padding-right: var(--gut-r); }
.bc-hero__in { padding-top: clamp(40px, 5.6vw, 84px); display: grid; gap: clamp(18px, 2.2vw, 26px); justify-items: start; align-content: start; }
.bc-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 11.5px; letter-spacing: .2em; color: #c4b9ff; padding: 9px 15px; border-radius: 999px; border: 1px solid rgba(139, 108, 255, .38); background: rgba(139, 108, 255, .09); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
.bc-eyebrow__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--bc-m); animation: livePulse 1.8s infinite; }
@keyframes livePulse { 0% { box-shadow: 0 0 0 0 rgba(92, 242, 192, .55); } 70% { box-shadow: 0 0 0 9px rgba(92, 242, 192, 0); } 100% { box-shadow: 0 0 0 0 rgba(92, 242, 192, 0); } }
.bc-h1 { font: 900 clamp(46px, 6.9vw, 100px)/1.02 var(--f-body); letter-spacing: -.052em; color: #f3f2fb; }
.bc-h1 .foil-chain { padding-right: .04em; }
.bc-lead { font-size: clamp(16px, 1.35vw, 19px); line-height: 1.8; color: var(--fg-2); max-width: 30em; }
.bc-hero__facts { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 6px; padding-top: 18px; border-top: 1px solid rgba(236, 235, 245, .08); }
.bc-hero__facts li { display: grid; gap: 4px; }
.bc-hero__facts b { font-size: 20px; font-weight: 700; color: #f3f2fb; letter-spacing: .02em; }
.bc-hero__facts span { font-size: 11px; letter-spacing: .12em; color: var(--muted); }
.bc-chain { position: relative; min-height: 560px; }
.bc-chain__cv { position: absolute; inset: 0; width: 100%; height: 100%; display: block; -webkit-mask-image: linear-gradient(180deg, #000 0, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 0, #000 70%, transparent 100%); }
.bc-chain__hud { position: absolute; top: clamp(40px, 5.6vw, 84px); right: 0; display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: .12em; color: var(--muted); }
.bc-chain__k { color: var(--muted); }
.bc-chain__hud b { color: #fff; font-weight: 600; letter-spacing: .04em; font-size: 12.5px; }
.bc-chain__st { padding: 4px 8px; border-radius: 4px; border: 1px solid rgba(92, 242, 192, .4); color: var(--bc-m); transition: background .3s, color .3s, border-color .3s; }
.bc-chain__st.is-mining { color: #c4b9ff; border-color: rgba(139, 108, 255, .45); }
.bc-chain__st.is-flash { background: rgba(92, 242, 192, .16); box-shadow: 0 0 18px rgba(92, 242, 192, .35); }
@media (max-width: 900px) {
  .bc-hero__grid { grid-template-columns: minmax(0, 1fr); padding-left: 0; padding-right: 0; }
  .bc-hero__in { padding-left: var(--gut-l); padding-right: var(--gut-r); }
  .bc-chain { min-height: 0; height: clamp(190px, 50vw, 270px); margin-top: 34px; }
  .bc-chain__cv { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); }
  .bc-chain__hud { top: -10px; right: var(--gut-r); }
}
@media (max-width: 640px) { .bc-chain__hud .demo-tag { display: none; } }

/* ---------- 서비스 ---------- */
.bc-services { background: linear-gradient(180deg, var(--obsidian), var(--bc-band)); }
.svc { display: flex; flex-direction: column; gap: 0; }
.svc .card__d { flex: 1; font-size: 14.5px; }
.svc__ic { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 16px; margin-bottom: 22px; color: var(--c); background: radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--c) 26%, transparent), color-mix(in srgb, var(--c) 6%, transparent) 72%); border: 1px solid color-mix(in srgb, var(--c) 34%, transparent); box-shadow: 0 0 24px -8px color-mix(in srgb, var(--c) 60%, transparent); }
.svc__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.svc__tags span { font-size: 11px; letter-spacing: .03em; padding: 5px 9px; border-radius: 999px; color: color-mix(in srgb, var(--c) 80%, #fff); background: color-mix(in srgb, var(--c) 10%, transparent); border: 1px solid color-mix(in srgb, var(--c) 24%, transparent); }
.bi { width: 40px; height: 40px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.bi .bi-fill { fill: currentColor; stroke: none; }
.bi-token__drop { animation: biDrop 2.6s cubic-bezier(.5, 0, .3, 1) infinite; }
@keyframes biDrop { 0% { transform: translateY(-10px); opacity: 0; } 30% { opacity: 1; } 55%, 100% { transform: translateY(8px); opacity: 0; } }
.bi-spark { fill: currentColor; stroke: none; transform-box: fill-box; transform-origin: center; animation: biTwinkle 2.6s ease-in-out infinite; }
@keyframes biTwinkle { 0%, 100% { transform: scale(.4); opacity: .3; } 55% { transform: scale(1.1); opacity: 1; } }
.bi-code__l { stroke-dasharray: 14; stroke-dashoffset: 14; animation: biType 3.4s steps(7) infinite; }
.bi-code__l2 { animation-delay: .5s; } .bi-code__l3 { animation-delay: 1s; }
@keyframes biType { 0% { stroke-dashoffset: 14; } 35%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.bi-caret { animation: biBlink 1s steps(1) infinite; }
@keyframes biBlink { 50% { opacity: 0; } }
.bi-dapp__net { stroke-dasharray: 3 3; opacity: .7; }
.bi-dapp__dot { fill: #fff; stroke: none; filter: drop-shadow(0 0 3px currentColor); }
.bi-wallet__key { transform-box: fill-box; transform-origin: 30% 50%; animation: biKey 3s ease-in-out infinite alternate; }
@keyframes biKey { from { transform: rotate(-14deg); } to { transform: rotate(10deg); } }
.bi-swap__g { transform-origin: 24px 24px; animation: biSwap 3.6s cubic-bezier(.6, 0, .2, 1) infinite; }
@keyframes biSwap { 0%, 30% { transform: rotate(0); } 50%, 80% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
.bi-nft__sheen { fill: rgba(255, 255, 255, .55); stroke: none; animation: biSheen 3.2s ease-in-out infinite; }
@keyframes biSheen { 0%, 20% { transform: skewX(-18deg) translateX(0); } 70%, 100% { transform: skewX(-18deg) translateX(66px); } }
.bi-data__b { fill: color-mix(in srgb, currentColor 40%, transparent); stroke: none; transform-box: fill-box; transform-origin: 50% 100%; animation: biGrow 3.2s var(--ease) infinite; }
.bi-data__b1 { animation-delay: .15s; } .bi-data__b2 { animation-delay: .3s; } .bi-data__b3 { animation-delay: .45s; }
@keyframes biGrow { 0% { transform: scaleY(.15); } 40%, 85% { transform: scaleY(1); } 100% { transform: scaleY(.15); } }
.bi-data__b0 { transform: scaleY(.5); } .bi-data__b1 { transform: scaleY(.7); } .bi-data__b2 { transform: scaleY(.45); } .bi-data__b3 { transform: scaleY(.85); }
.bi-data__ok { stroke-dasharray: 16; stroke-dashoffset: 16; animation: biOk 3.2s var(--ease) infinite; }
@keyframes biOk { 0%, 45% { stroke-dashoffset: 16; } 65%, 90% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.bi-shield__scan { fill: currentColor; stroke: none; opacity: .35; animation: biScan 2.8s ease-in-out infinite; }
@keyframes biScan { 0% { transform: translateY(0); opacity: 0; } 15% { opacity: .45; } 85% { opacity: .45; } 100% { transform: translateY(36px); opacity: 0; } }

/* ---------- 체인 띠 ---------- */
.bc-chains { background: var(--bc-band); padding-block: clamp(48px, 6vw, 80px); border-block: 1px solid rgba(236, 235, 245, .05); display: grid; gap: 18px; overflow: hidden; }
.bc-chains__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.bc-chains__t { font-size: 15px; color: var(--fg-2); }
.bc-chains__set { display: flex; align-items: center; gap: 12px; padding-right: 12px; }
.chainchip { --h: calc(var(--i) * 26deg); display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 20px 0 16px; border-radius: 999px; font: 600 15px/1 var(--f-mark); letter-spacing: .02em; color: #ecebf5; background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02)); border: 1px solid rgba(255, 255, 255, .08); white-space: nowrap; }
.chainchip i { width: 9px; height: 9px; border-radius: 50%; background: linear-gradient(135deg, var(--bc-v), var(--bc-c)); filter: hue-rotate(var(--h)); box-shadow: 0 0 10px rgba(139, 108, 255, .6); }
.bc-chains__set--hash { gap: 34px; padding-right: 34px; }
.bc-chains__set--hash span { font: 500 12px/1 var(--f-mono); letter-spacing: .16em; color: rgba(154, 150, 178, .55); white-space: nowrap; }

/* ---------- 진행 방식 ---------- */
.bc-process { background: linear-gradient(180deg, var(--bc-band), var(--obsidian)); }
.bc-pipe .pipe__fill { background: var(--chain-grad); }
.bc-pipe .pipe__dot { border-color: var(--bc-c); }
.bc-step { padding: 24px 20px; }
.bc-step .card__t { font-size: 17.5px; }
.bc-step .card__d { font-size: 14px; line-height: 1.7; }
.bc-step__out { display: grid; gap: 7px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(236, 235, 245, .12); }
.bc-step__out li { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: #cfc8ff; }
.bc-step__out .ico { width: 15px; height: 15px; color: var(--bc-c); }
.bc-pipe .pipe__step.is-current { border-color: rgba(69, 212, 255, .45); box-shadow: var(--card-shadow), 0 18px 44px -14px rgba(69, 212, 255, .45); }
@media (min-width: 901px) and (max-width: 1180px) { .bc-pipe { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; } .bc-step { padding: 20px 14px; } .bc-step .card__t { font-size: 16px; } }

/* ---------- 보안 원칙 ---------- */
.bc-security { background: var(--obsidian); }
.bc-security__in { align-items: start; }
.bc-sec { display: grid; gap: 14px; }
.bc-sec__i { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 18px; padding: 22px; border-radius: 18px; background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012)); border: 1px solid rgba(255, 255, 255, .07); transition: border-color .3s var(--ease), transform .25s var(--ease); }
.bc-sec__i:hover { border-color: rgba(139, 108, 255, .45); transform: translateX(4px); }
.bc-sec__ic { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; color: var(--bc-c); background: rgba(69, 212, 255, .08); border: 1px solid rgba(69, 212, 255, .26); }
.bc-sec__ic .ico { width: 24px; height: 24px; }
.bc-sec__i b { display: block; font-size: 17px; color: #f1f0fa; margin-bottom: 4px; letter-spacing: -.02em; }
.bc-sec__i p { font-size: 14.5px; line-height: 1.7; color: var(--fg-2); }

/* ---------- 기술 (코드 패널) ---------- */
.bc-stack { background: linear-gradient(180deg, var(--obsidian), var(--bc-band)); }
.stackbox { margin: 0; border-radius: 18px; overflow: hidden; background: #0b0a12; border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8), 0 0 0 1px rgba(139, 108, 255, .08), 0 0 60px -20px rgba(139, 108, 255, .35); }
.stackbox__bar { display: flex; align-items: center; gap: 14px; height: 42px; padding: 0 16px; border-bottom: 1px solid rgba(255, 255, 255, .06); background: rgba(255, 255, 255, .025); font-size: 12px; color: var(--muted); }
.stackbox__dots { display: inline-flex; gap: 6px; }
.stackbox__dots i { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, .14); }
.stackbox__dots i:first-child { background: rgba(139, 108, 255, .7); }
.stackbox__body { padding: 18px 0 22px; font-size: 13.5px; line-height: 1.9; overflow-x: auto; }
.stackbox__row { display: flex; gap: 16px; padding: 0 18px; white-space: nowrap; }
.stackbox__row:hover { background: rgba(139, 108, 255, .06); }
.stackbox__ln { width: 22px; flex: none; text-align: right; color: rgba(154, 150, 178, .45); user-select: none; }
.stackbox__k { color: #b3a6ff; }
.stackbox__c { color: rgba(154, 150, 178, .8); }
.stackbox__v { white-space: normal; }
.stackbox__v b { font-weight: 500; color: #7fe8ff; }
.stackbox__v i { font-style: normal; color: rgba(154, 150, 178, .6); }
.stackbox__caret { display: inline-block; width: 8px; height: 17px; margin-top: 4px; background: var(--bc-m); animation: biBlink 1s steps(1) infinite; box-shadow: 0 0 10px rgba(92, 242, 192, .6); }

/* ---------- 맡기는 방식 · FAQ ---------- */
.bc-models { background: var(--bc-band); }
.bc-faq { background: linear-gradient(180deg, var(--bc-band), var(--obsidian)); }

/* ---------- 개발 상담 ---------- */
.bc-contact { position: relative; overflow: hidden; isolation: isolate; background: var(--obsidian); border-top: 1px solid rgba(236, 235, 245, .05); padding-bottom: clamp(80px, 9vw, 132px); }
.bc-contact .fx-layer { z-index: -1; }
.bc-contact__in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
@media (max-width: 960px) { .bc-contact__in { grid-template-columns: minmax(0, 1fr); } }
.bc-contact__list { display: grid; gap: 14px; margin-bottom: 26px; }
.bc-contact__list li { display: flex; gap: 14px; align-items: flex-start; font-size: 15px; line-height: 1.6; color: var(--fg-2); }
.bc-contact__list .ico { width: 22px; height: 22px; color: var(--bc-c); margin-top: 1px; }
.bc-contact__list b { color: #f1f0fa; margin-right: 6px; }
.bc-contact__mail { margin-top: 10px; }
.bc-contact__mail b { color: #ecebf5; }
.bc-form { background: linear-gradient(180deg, rgba(23, 20, 42, .94), rgba(14, 12, 24, .96)); border-color: rgba(139, 108, 255, .2); box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .9), 0 0 80px -40px rgba(139, 108, 255, .5); }
.bc-form .inp { background: rgba(5, 4, 10, .55); }
.bc-form .chip span { background: rgba(5, 4, 10, .4); }
.bc-form .form__nav [data-next], .bc-form .form__nav [type="submit"] { margin-left: auto; }
.bc-form .steps__i.is-on::before, .bc-form .steps__i.is-done::before { background: var(--chain-grad); }
