/**
 * Odin page, its own design (inc/dc-ai-odin.php). Loads after ai.css. Scoped under .bdai--odin.
 * Navy #000313 / #11193f, coral for small accents only, navy ramp #eef0f6 > #e1e5ee > #d3d8e5 with a thin navy edge.
 * Motion: the hub is a live loop (it is the demo), the case plays once then rests, the shift rises once.
 * Reduced motion: everything is static and fully visible.
 */
.bdai--odin {
    --ramp1: #eef0f6; --ramp2: #e1e5ee; --ramp3: #d3d8e5; --nedge: rgb(17 25 63 / .16);
    --card-navy: #0c1233;
}
.bdai--odin code, .bdai--odin pre { font-family: var(--mono); }

/* ------------------------------------------------------------ hero + hub */
.bdai--odin .odn-hero { padding-bottom: clamp(56px, 6.5vw, 88px); }
.bdai--odin .odn-hero__in { gap: 40px clamp(32px, 4.5vw, 72px); align-items: center; }
.bdai--odin .odn-hero__l { flex: 5 1 380px; }
.bdai--odin .odn-hub { flex: 6 1 480px; min-width: 0; max-width: 660px; margin-left: auto; width: 100%; border-radius: 16px; padding: 16px 18px 18px; background: linear-gradient(180deg, rgb(255 255 255 / .07), rgb(255 255 255 / .03)); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .12), 0 40px 80px -30px rgb(0 0 0 / .6); backdrop-filter: blur(10px); }
.bdai--odin .odn-hub__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13.5px; font-weight: 600; color: #fff; }
.bdai--odin .odn-hub__bar > span { display: inline-flex; align-items: center; gap: 9px; }
.bdai--odin .odn-hub__bar i { width: 8px; height: 8px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 4px rgb(255 82 71 / .2); }
.bdai--odin .odn-hub__bar small { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; color: var(--mut); }
.bdai--odin .odn-hub__q { display: flex; gap: 10px; align-items: baseline; margin: 14px 0 0; padding: 10px 14px; border-radius: 8px; background: rgb(255 255 255 / .06); font-size: 14px; line-height: 1.45; color: var(--on-dark2); }
.bdai--odin .odn-hub__q small { flex: none; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mut); }

.bdai--odin .odn-hub__stage { position: relative; width: 100%; aspect-ratio: 1 / .86; margin-top: 4px; }
.bdai--odin .odn-hub__lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.bdai--odin .odn-hub__lines line { stroke: rgb(255 255 255 / .16); stroke-width: 1.2; stroke-dasharray: 3 5; transition: stroke .5s, stroke-width .5s; }
.bdai--odin .odn-hub__lines line.is-seen { stroke: rgb(255 255 255 / .34); stroke-dasharray: none; }
.bdai--odin .odn-hub__lines line.is-on { stroke: var(--coral); stroke-width: 2; stroke-dasharray: none; filter: drop-shadow(0 0 5px rgb(255 82 71 / .7)); }

.bdai--odin .odn-core { position: absolute; left: 50%; top: 50%; width: clamp(78px, 17%, 104px); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: #fff; text-align: center; background: radial-gradient(circle at 50% 30%, #1d2b6b, #0a1033 75%); box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .22), 0 0 40px rgb(255 82 71 / .22); z-index: 3; }
.bdai--odin .odn-core__ic .bdai-i { width: 18px; height: 18px; color: var(--coral); }
.bdai--odin .odn-core b { font-size: 15px; letter-spacing: -.01em; }
.bdai--odin .odn-core small { font-family: var(--mono); font-size: 8.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark); padding: 0 4px; line-height: 1.2; }
.bdai--odin .odn-core__ring { position: absolute; inset: -9px; border-radius: 50%; border: 1px solid rgb(255 82 71 / .45); opacity: 0; }
.bdai--odin .odn-hub.is-live .odn-core__ring { animation: odnPulse 2.4s ease-out infinite; }
@keyframes odnPulse { 0% { transform: scale(.9); opacity: .8; } 100% { transform: scale(1.35); opacity: 0; } }

.bdai--odin .odn-node { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 6px; width: 112px; z-index: 2; }
.bdai--odin .odn-node.is-up { flex-direction: column-reverse; }
.bdai--odin .odn-node__ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--on-dark2); background: #0d1538; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .2); transition: background .4s, color .4s, box-shadow .4s, transform .4s; }
.bdai--odin .odn-node__ic .bdai-i { width: 19px; height: 19px; }
.bdai--odin .odn-node__t { font-size: 12.5px; font-weight: 600; line-height: 1.2; text-align: center; color: var(--on-dark); transition: color .4s; text-wrap: balance; }
.bdai--odin .odn-node.is-seen .odn-node__ic { color: #fff; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .45); }
.bdai--odin .odn-node.is-on .odn-node__ic { color: #fff; background: #1a2563; box-shadow: inset 0 0 0 2px var(--coral), 0 0 24px rgb(255 82 71 / .45); transform: scale(1.1); }
.bdai--odin .odn-node.is-on .odn-node__t { color: #fff; }

.bdai--odin .odn-pk { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgb(255 82 71 / .55), 0 0 14px rgb(255 82 71 / .9); opacity: 0; z-index: 2; pointer-events: none; }
.bdai--odin .odn-pk.is-go { animation: odnPkIn 1.1s cubic-bezier(.5, 0, .3, 1) forwards; }
.bdai--odin .odn-pk.is-go.is-out { animation-name: odnPkOut; }
@keyframes odnPkIn { 0% { left: var(--x); top: var(--y); opacity: 1; } 85% { opacity: 1; } 100% { left: 50%; top: 50%; opacity: 0; } }
@keyframes odnPkOut { 0% { left: 50%; top: 50%; opacity: 1; } 85% { opacity: 1; } 100% { left: var(--x); top: var(--y); opacity: 0; } }

.bdai--odin .odn-hub__cap { display: grid; margin-top: 8px; padding: 12px 14px; border-radius: 10px; background: rgb(0 3 19 / .45); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); min-height: 92px; }
.bdai--odin .odn-cap { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 5px; opacity: 0; visibility: hidden; transition: opacity .35s; }
.bdai--odin .odn-cap.is-on { opacity: 1; visibility: visible; }
.bdai--odin .odn-cap small { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--mut); }
.bdai--odin .odn-cap code { font-size: 13px; line-height: 1.45; color: #fff; word-break: break-word; }
.bdai--odin .odn-cap b { font-size: 13px; color: var(--coral); font-weight: 600; min-height: 1em; }

/* ------------------------------------------------------------ reach */
.bdai--odin .odn-reach { background: var(--ramp1); }
.bdai--odin .odn-reach__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: stretch; }
.bdai--odin .odn-reach__l { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.bdai--odin .odn-reach__badge { margin-top: auto; display: inline-flex; align-items: center; gap: 10px; height: 38px; padding: 0 16px 0 12px; border-radius: 8px; background: var(--navy); color: #fff; font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; }
.bdai--odin .odn-reach__badge .bdai-i { color: var(--coral); width: 15px; height: 15px; }
.bdai--odin .odn-reach__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row; border-top: 1px solid var(--nedge); }
.bdai--odin .odn-reach__list li { display: grid; grid-template-columns: auto auto 1fr; gap: 14px; align-items: center; padding: 22px 16px 22px 0; border-bottom: 1px solid var(--nedge); }
.bdai--odin .odn-reach__list li:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--nedge); }
.bdai--odin .odn-reach__n { font-size: 11.5px; color: var(--ink3); width: 20px; }
.bdai--odin .odn-reach__ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; }
.bdai--odin .odn-reach__ic .bdai-i { width: 19px; height: 19px; }
.bdai--odin .odn-reach__t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bdai--odin .odn-reach__t b { font-size: 17px; line-height: 1.2; letter-spacing: -.01em; }
.bdai--odin .odn-reach__t small { font-size: 14px; color: var(--ink2); line-height: 1.35; }

/* ------------------------------------------------------------ shift */
.bdai--odin .odn-rhythm { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; counter-reset: s; }
.bdai--odin .odn-rhythm li { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 24px 22px 26px; border-radius: 14px; background: var(--ramp1); box-shadow: inset 0 0 0 1px var(--nedge); font-size: 15px; line-height: 1.5; color: var(--ink2); }
.bdai--odin .odn-rhythm li b { font-size: 22px; letter-spacing: -.02em; color: var(--ink); }
.bdai--odin .odn-rhythm__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.bdai--odin .odn-rhythm__ic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; }
.bdai--odin .odn-rhythm__ic .bdai-i { width: 21px; height: 21px; }
.bdai--odin .odn-rhythm__top small { font-size: 12px; color: var(--ink3); }
.bdai--odin .odn-rhythm li:not(.is-last)::after { content: ""; position: absolute; top: 48px; right: -17px; width: 18px; height: 2px; background: var(--ink); opacity: .35; z-index: 1; }
.bdai--odin .odn-rhythm li.is-last { background: var(--ink); color: var(--on-dark2); box-shadow: none; }
.bdai--odin .odn-rhythm li.is-last b { color: #fff; }
.bdai--odin .odn-rhythm li.is-last .odn-rhythm__ic { background: var(--coral); }
.bdai--odin .odn-rhythm li.is-last .odn-rhythm__top small { color: var(--mut); }
.bdai--odin .odn-gate { display: flex; align-items: center; gap: 16px 24px; flex-wrap: wrap; margin-top: 16px; padding: 22px 28px; border-radius: 14px; background: var(--ramp2); box-shadow: inset 0 0 0 1px var(--nedge); }
.bdai--odin .odn-gate__ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--coral); flex: none; }
.bdai--odin .odn-gate p { flex: 1 1 320px; font-size: 18px; font-weight: 600; line-height: 1.4; letter-spacing: -.01em; color: var(--ink); text-wrap: pretty; }
.bdai-js .bdai--odin .odn-rhythm li { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.16, 1, .3, 1), transform .7s cubic-bezier(.16, 1, .3, 1); }
.bdai-js .bdai--odin .odn-shift.is-in .odn-rhythm li { opacity: 1; transform: none; transition-delay: calc(var(--i) * .13s + .15s); }

/* ------------------------------------------------------------ case (dark panel) */
.bdai--odin .odn-case__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(20px, 3vw, 40px); align-items: stretch; }
.bdai--odin .odn-tl { display: flex; flex-direction: column; border-radius: 14px; padding: 8px; background: rgb(255 255 255 / .03); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); }
.bdai--odin .odn-tl__li { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; border-radius: 10px; transition: background .3s; }
.bdai--odin .odn-tl__li + .odn-tl__li::after { content: ""; position: absolute; left: 14px; right: 14px; top: 0; height: 1px; background: rgb(255 255 255 / .07); }
.bdai--odin .odn-tl__li.is-on { background: rgb(255 255 255 / .07); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .12); }
.bdai--odin .odn-tl__li.is-on::after, .bdai--odin .odn-tl__li.is-on + .odn-tl__li::after { opacity: 0; }
.bdai--odin .odn-tl__btn { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: 48px 20px minmax(0, 1fr) 16px; gap: 10px; align-items: center; min-height: 52px; padding: 8px 14px 8px 12px; color: #fff; }
.bdai--odin .odn-tl__btn:focus-visible { outline: 2px solid var(--coral); outline-offset: -2px; border-radius: 10px; }
.bdai--odin .odn-tl__time { font-size: 12px; color: var(--mut); }
.bdai--odin .odn-tl__dot { position: relative; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .3); transition: box-shadow .3s, background .3s; }
.bdai--odin .odn-tl__dot i { width: 6px; height: 6px; border-radius: 50%; background: transparent; transition: background .3s; }
.bdai--odin .odn-tl__li.is-seen .odn-tl__dot { box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / .7); }
.bdai--odin .odn-tl__li.is-seen .odn-tl__dot i { background: #fff; }
.bdai--odin .odn-tl__li.is-on .odn-tl__dot { box-shadow: inset 0 0 0 2px var(--coral); }
.bdai--odin .odn-tl__li.is-on .odn-tl__dot i { background: var(--coral); }
.bdai--odin .odn-tl__head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bdai--odin .odn-tl__head b { font-size: 15.5px; font-weight: 600; line-height: 1.25; color: var(--on-dark2); min-width: 0; }
.bdai--odin .odn-tl__li.is-on .odn-tl__head b { color: #fff; }
.bdai--odin .odn-tl__type { flex: none; display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: 8px; background: rgb(255 255 255 / .09); font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark2); }
.bdai--odin .odn-tl__li.is-on .odn-tl__type { background: var(--coral); color: #fff; }
.bdai--odin .odn-tl__chev { width: 8px; height: 8px; border-right: 1.5px solid var(--mut); border-bottom: 1.5px solid var(--mut); transform: rotate(45deg) translateY(-2px); transition: transform .3s; }
.bdai--odin .odn-tl__li.is-on .odn-tl__chev { transform: rotate(225deg); }
.bdai--odin .odn-tl__more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.bdai--odin .odn-tl__li.is-on .odn-tl__more { grid-template-rows: 1fr; }
.bdai--odin .odn-tl__moreIn { overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 0 14px 0 90px; min-height: 0; }
.bdai--odin .odn-tl__li.is-on .odn-tl__moreIn { padding-bottom: 14px; }
.bdai--odin .odn-tl__moreIn code { font-size: 12px; line-height: 1.5; color: var(--on-dark2); word-break: break-word; }
.bdai--odin .odn-tl__small { display: none; }

.bdai--odin .odn-res { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 11px; border-radius: 8px; background: rgb(255 255 255 / .1); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .12); font-size: 12.5px; font-weight: 600; color: #fff; }
.bdai--odin .odn-res.is-wait { background: var(--coral); box-shadow: none; }

.bdai--odin .odn-console { display: flex; flex-direction: column; border-radius: 16px; padding: 22px clamp(20px, 2.4vw, 32px) 22px; background: linear-gradient(180deg, #131c4a 0%, #0c1233 100%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .14), 0 30px 60px -28px rgb(0 0 0 / .7); }
.bdai--odin .odn-console__bar { display: flex; align-items: center; gap: 12px; }
.bdai--odin .odn-console__dots { display: inline-flex; gap: 6px; }
.bdai--odin .odn-console__dots i { width: 9px; height: 9px; border-radius: 50%; background: rgb(255 255 255 / .2); }
.bdai--odin .odn-console__t { flex: 1 1 auto; font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--on-dark); }
.bdai--odin .odn-console__bar small { font-size: 12.5px; color: var(--on-dark); }
.bdai--odin .odn-console__bar small b { color: #fff; }
.bdai--odin .odn-console__bar2 { display: block; height: 3px; margin: 16px 0 22px; border-radius: 3px; background: rgb(255 255 255 / .1); overflow: hidden; }
.bdai--odin .odn-console__bar2 i { display: block; height: 100%; background: var(--coral); border-radius: 3px; transition: width .5s ease; }
.bdai--odin .odn-console__stack { display: grid; flex: 1 1 auto; }
.bdai--odin .odn-pane { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 14px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .35s, transform .35s, visibility 0s .35s; }
.bdai--odin .odn-pane.is-on { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.bdai--odin .odn-pane__meta { display: flex; align-items: center; gap: 12px; }
.bdai--odin .odn-pane__meta small { font-size: 12.5px; color: var(--mut); }
.bdai--odin .odn-pane .odn-tl__type { background: var(--coral); color: #fff; }
.bdai--odin .odn-pane__h { margin: 0; font-size: clamp(26px, 2.6vw, 34px); font-weight: 500; line-height: 1.1; letter-spacing: -.03em; color: #fff; }
.bdai--odin .odn-pane__note { font-size: 16.5px; line-height: 1.55; color: var(--on-dark2); max-width: 36em; }
.bdai--odin .odn-field { display: flex; flex-direction: column; gap: 7px; padding: 14px 16px; border-radius: 10px; background: rgb(0 3 19 / .5); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); }
.bdai--odin .odn-field small { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--mut); }
.bdai--odin .odn-field code { font-size: 13.5px; line-height: 1.5; color: #fff; word-break: break-word; }
.bdai--odin .odn-out { display: flex; flex-direction: column; gap: 4px; font-family: var(--mono); font-size: 13px; line-height: 1.5; color: var(--on-dark2); }
.bdai--odin .odn-out span { display: block; word-break: break-word; }
.bdai--odin .odn-out span:first-child { color: #fff; }
.bdai--odin .odn-pane__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-top: auto; padding-top: 4px; }
.bdai--odin .odn-src { display: inline-flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.35; color: var(--on-dark2); min-width: 0; }
.bdai--odin .odn-src > .bdai-i { margin-top: 2px; width: 14px; height: 14px; color: var(--coral); }
.bdai--odin .odn-src small { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mut); margin-bottom: 2px; }
.bdai--odin .odn-console__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgb(255 255 255 / .1); }
.bdai--odin .odn-console__nav .bdai-round { background: rgb(255 255 255 / .1); color: #fff; box-shadow: none; }
.bdai--odin .odn-console__nav .bdai-round--ink { background: #fff; color: var(--ink); }
.bdai--odin .odn-replay { all: unset; cursor: pointer; box-sizing: border-box; height: 40px; padding: 0 18px; border-radius: 8px; font-size: 14px; font-weight: 600; color: #fff; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .22); }
.bdai--odin .odn-replay:hover { background: rgb(255 255 255 / .1); }
.bdai--odin .odn-replay:focus-visible { outline: 2px solid var(--coral); outline-offset: 2px; }
.bdai--odin .odn-console__note { margin-left: auto; font-size: 12.5px; color: var(--mut); }

/* ------------------------------------------------------------ report */
.bdai--odin .odn-rep { background: var(--ramp2); }
.bdai--odin .odn-rep__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); align-items: stretch; }
.bdai--odin .odn-rep__l { display: flex; flex-direction: column; gap: 28px; }
.bdai--odin .odn-one { margin-top: auto; display: flex; flex-direction: column; gap: 16px; padding: 22px 24px; border-radius: 12px; background: var(--ink); color: #fff; }
.bdai--odin .odn-one__l { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark); }
.bdai--odin .odn-one__vis { display: grid; grid-template-columns: auto 34px 1fr; gap: 0 10px; align-items: center; }
.bdai--odin .odn-one__src { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: 8px; background: rgb(255 255 255 / .08); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .16); }
.bdai--odin .odn-one__src .bdai-i { color: var(--coral); }
.bdai--odin .odn-one__src b { font-family: var(--mono); font-size: 12px; font-weight: 500; word-break: break-all; }
.bdai--odin .odn-one__src small { font-size: 11.5px; color: var(--on-dark); }
.bdai--odin .odn-one__fan { display: flex; flex-direction: column; gap: 14px; }
.bdai--odin .odn-one__fan i { display: block; height: 2px; background: var(--coral); transform-origin: left; }
.bdai--odin .odn-one__outs { display: flex; flex-direction: column; gap: 8px; }
.bdai--odin .odn-one__outs span { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px; border-radius: 6px; background: rgb(255 255 255 / .1); font-size: 14px; font-weight: 600; }
.bdai--odin .odn-one__outs .bdai-i { width: 14px; height: 14px; color: var(--on-dark); }
.bdai--odin .odn-one__list { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 1px solid rgb(255 255 255 / .12); }
.bdai--odin .odn-one__list li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--on-dark2); }
.bdai--odin .odn-one__list .bdai-i { width: 14px; height: 14px; color: var(--coral); }
.bdai-js .bdai--odin .odn-one__fan i, .bdai-js .bdai--odin .odn-one__outs span { opacity: 0; }
.bdai-js .bdai--odin .odn-rep.is-in .odn-one__fan i { animation: odnFan .6s ease forwards; }
.bdai-js .bdai--odin .odn-rep.is-in .odn-one__outs span { animation: odnPop .5s ease forwards; }
.bdai-js .bdai--odin .odn-rep.is-in .odn-one__fan i:nth-child(1), .bdai-js .bdai--odin .odn-rep.is-in .odn-one__outs span:nth-child(1) { animation-delay: .5s; }
.bdai-js .bdai--odin .odn-rep.is-in .odn-one__fan i:nth-child(2), .bdai-js .bdai--odin .odn-rep.is-in .odn-one__outs span:nth-child(2) { animation-delay: .7s; }
.bdai-js .bdai--odin .odn-rep.is-in .odn-one__fan i:nth-child(3), .bdai-js .bdai--odin .odn-rep.is-in .odn-one__outs span:nth-child(3) { animation-delay: .9s; }
@keyframes odnFan { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: none; } }
@keyframes odnPop { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
.bdai--odin .odn-rep__txt { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.bdai--odin .odn-tabs { display: flex; flex-direction: column; gap: 10px; }
.bdai--odin .odn-tab { all: unset; cursor: pointer; box-sizing: border-box; display: grid; grid-template-columns: 28px 1fr auto; gap: 14px; align-items: center; padding: 16px 20px; border-radius: 10px; background: var(--ramp1); box-shadow: inset 0 0 0 1px var(--nedge); color: var(--ink); transition: background .25s, color .25s, box-shadow .25s; }
.bdai--odin .odn-tab:hover { background: #f3f4f9; }
.bdai--odin .odn-tab:focus-visible { outline: 2px solid var(--coral); outline-offset: 2px; }
.bdai--odin .odn-tab .bdai-num { font-size: 12px; color: var(--ink3); }
.bdai--odin .odn-tab b { display: block; font-size: 17px; }
.bdai--odin .odn-tab small { display: block; margin-top: 2px; font-size: 14px; color: var(--ink2); }
.bdai--odin .odn-tab i { font-style: normal; color: var(--ink3); }
.bdai--odin .odn-tab.is-on { background: var(--ink); box-shadow: none; color: #fff; }
.bdai--odin .odn-tab.is-on .bdai-num, .bdai--odin .odn-tab.is-on small, .bdai--odin .odn-tab.is-on i { color: var(--on-dark); }
.bdai--odin .odn-tab.is-on i { color: var(--coral); }

.bdai--odin .odn-frame { display: flex; flex-direction: column; min-width: 0; padding: 14px; border-radius: 18px; background: linear-gradient(180deg, #17215a 0%, #0c1233 100%); box-shadow: 0 40px 70px -34px rgb(0 3 19 / .6); }
.bdai--odin .odn-frame__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 12px 14px; font-size: 13px; font-weight: 600; color: #fff; }
.bdai--odin .odn-frame__bar span { display: inline-flex; align-items: center; gap: 9px; }
.bdai--odin .odn-frame__bar i { width: 8px; height: 8px; border-radius: 50%; background: var(--coral); }
.bdai--odin .odn-frame__bar small { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; color: var(--mut); }
.bdai--odin .odn-frame__stack { display: grid; flex: 1 1 auto; }
.bdai--odin .odn-doc { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 2.6vw, 36px); border-radius: 12px; background: var(--ramp1); box-shadow: inset 0 0 0 1px rgb(17 25 63 / .3); color: var(--ink); opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
.bdai--odin .odn-doc.is-on { opacity: 1; visibility: visible; transition-delay: 0s; }
.bdai--odin .odn-doc__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding-bottom: 14px; border-bottom: 1px solid var(--nedge); }
.bdai--odin .odn-doc__top > b { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.bdai--odin .odn-doc__top > b i { width: 8px; height: 8px; background: var(--coral); }
.bdai--odin .odn-doc__top > span { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.bdai--odin .odn-doc__top > span span { height: 24px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 8px; background: var(--ramp3); font-family: var(--mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.bdai--odin .odn-doc__title { font-size: clamp(21px, 2vw, 27px); line-height: 1.15; letter-spacing: -.02em; }
.bdai--odin .odn-doc__h { margin-top: 4px; font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ink3); }
.bdai--odin .odn-doc__p { font-size: 15.5px; line-height: 1.55; color: var(--ink2); }
.bdai--odin .odn-doc__ul { display: flex; flex-direction: column; flex: 1 1 auto; }
.bdai--odin .odn-doc__ul li { display: flex; gap: 12px; align-items: center; flex: 1 1 auto; min-height: 40px; padding: 8px 0; border-top: 1px solid var(--nedge); font-size: 15.5px; line-height: 1.45; }
.bdai--odin .odn-doc__ul li:first-child { border-top: 0; }
.bdai--odin .odn-doc__ul i { flex: none; width: 6px; height: 6px; background: var(--coral); }
.bdai--odin .odn-doc__kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bdai--odin .odn-doc__kv div { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border-radius: 8px; background: var(--ramp2); }
.bdai--odin .odn-doc__kv span { font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink3); }
.bdai--odin .odn-doc__kv b { font-size: 14.5px; line-height: 1.3; }
.bdai--odin .odn-doc__code { margin: 0; padding: 14px 16px; border-radius: 8px; background: var(--ink); color: #dfe5ff; font-size: 13px; line-height: 1.6; overflow-x: auto; }
.bdai--odin .odn-doc__s { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--nedge); flex: 1 1 auto; }
.bdai--odin .odn-doc__s.is-ev { flex: 0 0 auto; }
.bdai--odin .odn-doc__s:first-of-type { border-top: 0; padding-top: 0; }
.bdai--odin .odn-doc__ev { display: flex; flex-direction: column; gap: 8px; }
.bdai--odin .odn-doc__ev small { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink3); }
.bdai--odin .odn-doc__ev > span { display: flex; flex-wrap: wrap; gap: 6px; }
.bdai--odin .odn-doc__ev em { font-style: normal; padding: 4px 10px; border-radius: 8px; background: var(--ramp3); font-size: 12.5px; color: var(--ink); }
.bdai--odin .odn-doc__note { font-size: 12.5px; color: var(--ink3); }
.bdai--odin .odn-doc__note { margin-top: 0; }

/* ------------------------------------------------------------ comparison */
.bdai--odin .odn-cmp { background: #fff; }

/* ------------------------------------------------------------ playbooks */
.bdai--odin .odn-pb { background: linear-gradient(180deg, var(--ramp3) 0%, var(--ramp2) 100%); box-shadow: inset 0 0 0 1px var(--nedge); }
.bdai--odin .odn-pb__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bdai--odin .odn-card { display: flex; flex-direction: column; gap: 12px; padding: 24px 24px 22px; border-radius: 14px; background: var(--ramp1); box-shadow: inset 0 0 0 1px var(--nedge); }
.bdai--odin .odn-card__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bdai--odin .odn-card__top small { font-size: 12px; color: var(--ink3); }
.bdai--odin .odn-card__trig { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px 0 8px; border-radius: 8px; background: var(--ink); color: #fff; font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.bdai--odin .odn-card__trig .bdai-i { width: 12px; height: 12px; color: var(--coral); }
.bdai--odin .odn-card__t { font-size: 22px; line-height: 1.15; letter-spacing: -.02em; }
.bdai--odin .odn-card__when { font-size: 15px; line-height: 1.4; color: var(--ink2); }
.bdai--odin .odn-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.bdai--odin .odn-chain span { height: 26px; display: inline-flex; align-items: center; padding: 0 11px; border-radius: 8px; background: var(--ramp3); font-family: var(--mono); font-size: 11.5px; color: var(--ink); }
.bdai--odin .odn-chain i { font-style: normal; font-size: 12px; color: var(--ink3); }
.bdai--odin .odn-card__out { display: flex; flex-direction: column; gap: 3px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--nedge); }
.bdai--odin .odn-card__out small { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink3); }
.bdai--odin .odn-card__out b { font-size: 15.5px; }

/* ------------------------------------------------------------ other ways in */
.bdai--odin .odn-more { padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(24px, 3vw, 40px); }
.bdai--odin .odn-more__box { display: flex; flex-wrap: wrap; gap: 20px 40px; align-items: center; justify-content: space-between; padding: 24px 28px; border-radius: 14px; background: var(--ramp1); box-shadow: inset 0 0 0 1px var(--nedge); }
.bdai--odin .odn-more__l { flex: 1 1 320px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.bdai--odin .odn-more__l b { font-size: 19px; line-height: 1.35; letter-spacing: -.01em; font-weight: 600; max-width: 28em; }
.bdai--odin .odn-more__links { flex: 1 1 360px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.bdai--odin .odn-more__links a { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 18px 0 14px; border-radius: 8px; background: #f6f7fb; box-shadow: inset 0 0 0 1px var(--nedge); font-size: 14.5px; font-weight: 600; color: var(--ink); transition: background .2s, color .2s; }
.bdai--odin .odn-more__links a:hover { background: var(--ink); color: #fff; }
.bdai--odin .odn-more__links .bdai-i { width: 15px; height: 15px; }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1099px) {
    .bdai--odin .odn-rhythm { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bdai--odin .odn-rhythm li:nth-child(3)::after { display: none; }
    .bdai--odin .odn-pb__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
    .bdai--odin .odn-hub { margin-left: 0; max-width: none; }
    .bdai--odin .odn-reach__grid, .bdai--odin .odn-rep__grid { grid-template-columns: 1fr; }
    .bdai--odin .odn-reach__badge { margin-top: 8px; }
    .bdai--odin .odn-case__grid { grid-template-columns: 1fr; }
    .bdai--odin .odn-console { display: none; }
    .bdai--odin .odn-tl__moreIn { padding-left: 22px; }
    .bdai--odin .odn-tl__small { display: flex; flex-direction: column; gap: 8px; }
    .bdai--odin .odn-tl__small .odn-out { font-size: 12px; padding: 8px 10px; border-radius: 6px; background: rgb(0 3 19 / .45); }
    .bdai--odin .odn-tl__small .odn-src { font-size: 13px; }
    .bdai--odin .odn-tl__small .odn-src small { display: none; }
    .bdai--odin .odn-tl__li { flex: 0 0 auto; }
    .bdai--odin .odn-rep__l { gap: 24px; }
    .bdai--odin .odn-one { margin-top: 0; }
}
@media (max-width: 699px) {
    .bdai--odin .odn-one__vis { grid-template-columns: 1fr; gap: 10px; }
    .bdai--odin .odn-one__fan { display: none; }
    .bdai--odin .odn-one__src b { word-break: normal; overflow-wrap: anywhere; }
    .bdai--odin .odn-doc__ul li { flex: 0 0 auto; }
    .bdai--odin .odn-doc__s { flex: 0 0 auto; }
    .bdai--odin .odn-reach__list { grid-template-columns: 1fr; }
    .bdai--odin .odn-reach__list li:nth-child(even) { padding-left: 0; border-left: 0; }
    .bdai--odin .odn-rhythm { grid-template-columns: 1fr; }
    .bdai--odin .odn-rhythm li::after { display: none; }
    .bdai--odin .odn-pb__grid { grid-template-columns: 1fr; }
    .bdai--odin .odn-doc__kv { grid-template-columns: 1fr; }
    .bdai--odin .odn-more__links { justify-content: flex-start; }
    .bdai--odin .odn-more__box { padding: 20px; }
    .bdai--odin .odn-gate { padding: 18px 20px; }
}
@media (max-width: 599px) {
    .bdai--odin .odn-hub { padding: 14px 12px 14px; border-radius: 12px; }
    .bdai--odin .odn-hub__stage { aspect-ratio: 1 / .92; }
    .bdai--odin .odn-node { width: 52px; gap: 0; }
    .bdai--odin .odn-node__ic { width: 38px; height: 38px; }
    .bdai--odin .odn-node__t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .bdai--odin .odn-core { width: 74px; }
    .bdai--odin .odn-core b { font-size: 13px; }
    .bdai--odin .odn-core small { display: none; }
    .bdai--odin .odn-hub__cap { min-height: 112px; }
    .bdai--odin .odn-tl__btn { grid-template-columns: 40px 18px minmax(0, 1fr) 14px; gap: 8px; padding-left: 8px; }
    .bdai--odin .odn-tl__head { flex-wrap: wrap; gap: 4px 8px; }
    .bdai--odin .odn-tab { padding: 14px 16px; }
}

/* ------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
    .bdai--odin .odn-pk { display: none; }
    .bdai-js .bdai--odin .odn-one__fan i, .bdai-js .bdai--odin .odn-one__outs span { opacity: 1 !important; animation: none !important; transform: none !important; }
    .bdai--odin .odn-core__ring { display: none; }
    .bdai-js .bdai--odin .odn-rhythm li { opacity: 1 !important; transform: none !important; }
    .bdai--odin .odn-tl__more, .bdai--odin .odn-pane, .bdai--odin .odn-doc, .bdai--odin .odn-cap { transition: none !important; }
}
