/* Rule Lab, tools hub, cost to first payout, consistency calculator.
   v2.0 Glass + Engineering drawing rebuild (lane V4). v2 tokens and bp-* kit classes; page-only pieces below. */

html:not(.js) .rl-needs-js { display: none !important; }
.num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* plan colours for the 2D charts, scoreboard and cards */
:root, [data-theme="dark"] { --pc0: #8A85FF; --pc1: #FFB547; --pc2: #57B8FF; --pc3: #2ED3C6; --rl-eq: #F2F3FA; --rl-eq-glow: rgba(138, 133, 255, 0.6); }
[data-theme="light"] { --pc0: #3C35E0; --pc1: #A06A00; --pc2: #1F6FC5; --pc3: #0E8F86; --rl-eq: #0B1033; --rl-eq-glow: rgba(60, 53, 224, 0.3); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { --pc0: #3C35E0; --pc1: #A06A00; --pc2: #1F6FC5; --pc3: #0E8F86; --rl-eq: #0B1033; --rl-eq-glow: rgba(60, 53, 224, 0.3); } }
.rl-c0 { --pc: var(--pc0); } .rl-c1 { --pc: var(--pc1); } .rl-c2 { --pc: var(--pc2); } .rl-c3 { --pc: var(--pc3); }

/* ---------- chart primitives (rule-engine chartSVG, rule-lab-view heroSVG) ---------- */
.rl-chart, .rl-hero__svg { display: block; width: 100%; height: auto; overflow: visible; }
.rl-grid { stroke: var(--draft-2); stroke-width: 1; opacity: 0.6; }
.rl-grid--zero { stroke: var(--draft); opacity: 1; stroke-dasharray: 4 3; }
.rl-day { stroke: var(--draft-2); stroke-width: 1; stroke-dasharray: 2 4; }
.rl-tick { fill: var(--ink-3); font-family: var(--font-mono); font-size: 10px; font-variant-numeric: tabular-nums; }
.rl-tick--day { fill: var(--ink-2); }
.rl-label { font-family: var(--font-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.02em; }
.rl-label--floor { fill: var(--amber); }
.rl-label--target { fill: var(--profit); }
.rl-label--dll { fill: var(--caution); }
.rl-equity { fill: none; stroke: var(--rl-eq); stroke-width: 1.75; stroke-linejoin: round; stroke-linecap: round; }
.rl-floor { fill: none; stroke: var(--indigo); stroke-width: 1.75; stroke-linejoin: round; }
.rl-floor-fill { fill: url(#bp-hatch); stroke: none; opacity: 0.9; }
.rl-dll { fill: var(--caution); opacity: 0.07; }
.rl-dll-line { stroke: var(--caution); stroke-width: 1.25; stroke-dasharray: 5 4; fill: none; }
.rl-target { stroke: var(--profit); stroke-width: 1.25; stroke-dasharray: 2 4; fill: none; opacity: 0.85; }
.rl-head { fill: var(--rl-eq); stroke: var(--ground); stroke-width: 2; }
.rl-mark circle { stroke: var(--ground); stroke-width: 2; }
.rl-mark--breach circle { fill: var(--amber); }
.rl-mark--pass circle { fill: var(--profit); }
.rl-mark--dll circle { fill: var(--caution); }
.rl-mark--target circle { fill: none; stroke: var(--profit); stroke-width: 2; }
.rl-mark--lock circle { fill: var(--ground); stroke: var(--indigo); stroke-width: 1.5; }
.rl-pulse { transform-box: fill-box; transform-origin: center; animation: rl-pulse 1.6s var(--ease-out) infinite; stroke: none !important; }
.rl-mark--breach .rl-pulse { fill: var(--amber) !important; }
.rl-mark--pass .rl-pulse { fill: var(--profit) !important; }
@keyframes rl-pulse { 0% { transform: scale(1); opacity: 0.55; } 100% { transform: scale(3.4); opacity: 0; } }
.rl-heq { fill: none; stroke: var(--rl-eq); stroke-width: 2.25; stroke-linejoin: round; stroke-linecap: round; }
.rl-heq-glow { fill: none; stroke: var(--rl-eq-glow); stroke-width: 8; stroke-linejoin: round; stroke-linecap: round; opacity: 0.5; filter: blur(4px); }
.rl-hfloor { fill: none; stroke: var(--pc); stroke-width: 2; stroke-linejoin: miter; }
.rl-hfloor--dead { stroke: var(--draft-2); stroke-width: 1.5; stroke-dasharray: 4 5; }
.rl-head--hero { fill: var(--rl-eq); stroke: var(--ground); stroke-width: 2.5; }
.rl-callout line { stroke: var(--pc); stroke-width: 1; }
.rl-callout rect { fill: var(--glass-solid); stroke: var(--pc); stroke-width: 1; }
.rl-callout--breach rect { stroke: var(--amber); }
.rl-callout--pass rect { stroke: var(--profit); }
.rl-callout--dll rect, .rl-callout--target rect { stroke: var(--caution); stroke-dasharray: 3 3; }
.rl-callout__sw { fill: var(--pc); }
.rl-callout text { fill: var(--ink); font-family: var(--font-sans); font-size: 12.5px; font-weight: 550; }
.rl-chartbox .rl-mark--target circle { fill: var(--caution); stroke: var(--ground); }
@media (prefers-reduced-motion: reduce) { .rl-pulse { animation: none; opacity: 0.25; transform: scale(1.8); } }

/* ---------- shared layout bits ---------- */
.tl-two, .rl-two { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1000px) { .tl-two, .rl-two { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; } }
.tl-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 18px; }
.rl-p { margin: 0 0 16px; max-width: 72ch; font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.rl-h3 { margin: 28px 0 10px; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.tc-ref { font-family: var(--font-mono); fill: var(--indigo-ink); letter-spacing: 0.08em; }

/* =============================== Rule Lab =============================== */
.rl { --rl-bg: #03040a; }
/* Hero: a dark glass stage in both themes (the floor is lit glass), copy left, scene right */
.rl-hero { position: relative; isolation: auto; display: flex; min-height: max(660px, min(calc(100svh - var(--header-h)), 900px)); background: var(--rl-bg); color: #F2F3FA; overflow: hidden; }
.rl-hero__stage { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.rl-hero__stage::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: radial-gradient(120% 90% at 68% 45%, rgba(3, 4, 10, 0) 45%, rgba(3, 4, 10, 0.7) 100%), linear-gradient(90deg, rgba(3, 4, 10, 0.94) 0%, rgba(3, 4, 10, 0.7) 28%, rgba(3, 4, 10, 0) 50%); }
.rl[data-mode="poster"] .rl-hero__stage { background: radial-gradient(60% 70% at 72% 40%, rgba(79, 72, 255, 0.22), transparent 70%), linear-gradient(rgba(124, 118, 255, 0.06) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, rgba(124, 118, 255, 0.06) 1px, transparent 1px) 0 0 / 40px 40px; }
.rl-hero__grain { position: absolute; inset: -50%; z-index: 3; pointer-events: none; opacity: 0.06; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.rl-hero__stage .lfm { z-index: 1; }
.rl-hero__in { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0, 520px) 1fr; gap: 24px 48px; padding-block: 20px 36px; pointer-events: none; }
.rl-hero__in > * { pointer-events: auto; }
.rl-hero__copy { display: grid; gap: 20px; align-content: start; justify-items: start; }
.rl-hero .breadcrumb, .rl-hero .breadcrumb a { color: rgba(220, 226, 255, 0.7); }
.rl-hero .bp-eyebrow { color: rgba(200, 206, 240, 0.75); margin-top: 18px; }
.rl-hero__title { color: #F3F4FF; max-width: 12ch; font-size: clamp(40px, 1.6rem + 3vw, 72px); }
.rl-hero__lede { color: rgba(214, 219, 245, 0.86); max-width: 40ch; }
.rl-hero__ctl { display: grid; gap: 12px; margin-top: 6px; }
.rl-scs { display: flex; flex-wrap: wrap; gap: 8px; }
.rl-sc { height: 38px; padding: 0 14px; border-radius: 4px; border: 1px solid rgba(200, 208, 255, 0.24); background: rgba(10, 12, 26, 0.55); color: rgba(230, 233, 255, 0.85); font-size: 13.5px; font-weight: 500; backdrop-filter: blur(6px); transition: border-color 0.2s, box-shadow 0.2s, color 0.2s; }
.rl-sc:hover { border-color: #7C76FF; color: #fff; }
.rl-sc[aria-pressed="true"] { border-color: transparent; color: #fff; box-shadow: 0 0 0 1px rgba(124, 118, 255, 0.85), 0 0 26px -6px rgba(79, 72, 255, 0.8); background: rgba(40, 36, 120, 0.45); }
.rl-sc:focus-visible { outline: 2px solid #8A85FF; outline-offset: 2px; }
.rl-hero__blurb { margin: 0; max-width: 46ch; font-size: 14px; color: rgba(200, 206, 240, 0.78); }
.rl-hero__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.rl-hero .bp-btn--ghost { color: #F2F3FA; border-color: rgba(255, 255, 255, 0.4); }
.rl-hero .bp-link { color: #A9A5FF; }
.rl-hero__cap { margin: 0; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.02em; color: rgba(190, 198, 235, 0.72); max-width: 54ch; }
.rl-hero__cap .illustrative { margin-left: 4px; }
/* outcomes: visible list over the poster; screen-reader only when the live scene runs on wide screens */
.rl-outs { list-style: none; margin: 0; padding: 0; align-self: end; justify-self: end; display: grid; gap: 8px; width: min(360px, 100%); }
.rl[data-mode="live"] .rl-outs { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rl-out { display: grid; gap: 2px; padding: 9px 12px; background: rgba(3, 4, 10, 0.72); backdrop-filter: blur(6px); border-left: 2px solid rgba(124, 118, 255, 0.8); font-size: 13px; color: rgba(214, 219, 245, 0.86); }
.rl-out__n { color: #F3F4FF; font-weight: 600; }
.rl-out__k { font-family: var(--font-mono); font-size: 10px; font-weight: 400; border: 1px solid rgba(124, 118, 255, 0.75); color: #cfcbff; padding: 0 4px; margin-right: 6px; }
.rl-out__p { font-weight: 400; color: rgba(214, 219, 245, 0.8); }
.rl-out__r { font-family: var(--font-mono); font-size: 11px; color: rgba(190, 198, 235, 0.7); }
.rl-out.is-breach { border-left-color: #FFB547; } .rl-out.is-breach .rl-out__s { color: #FFB547; } .rl-out.is-breach .rl-out__k { border-color: #FFB547; color: #FFB547; }
.rl-out.is-pass .rl-out__s { color: #2EE59D; }
.rl-out.is-open .rl-out__s { color: #b7b3ff; }

/* Workbench */
.rl-lab { padding-bottom: clamp(48px, 6vw, 80px); }
.rl-setup { display: grid; gap: 16px; padding: 18px 20px; margin-bottom: 18px; }
.rl-slots { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rl-slot .label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); font-weight: 400; }
.rl-slot .select { width: 100%; text-overflow: ellipsis; }
.rl-assume { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; padding-top: 14px; border-top: 1px solid var(--draft-2); }
.rl-assume__note { font-size: 12.5px; color: var(--ink-3); }
.rl-dll-field .select { min-width: 0; max-width: 100%; }
.rl-stage { display: grid; gap: 12px; min-width: 0; }
.rl-board { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.rl-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 6px; background: var(--glass); border: 1px solid var(--glass-edge); min-width: 0; animation: rl-flip 0.5s var(--ease-out); }
.rl-chip__sw { width: 3px; align-self: stretch; border-radius: 2px; background: var(--pc); }
.rl-chip__txt { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.rl-chip__name { font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.rl-chip__state { font-size: 13.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.rl-chip--run .rl-chip__state { color: var(--ink-3); font-weight: 500; }
.rl-chip--run .rl-chip__state::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--ink-3); vertical-align: 1px; animation: rl-blink 1.2s infinite; }
.rl-chip--breach { border-color: color-mix(in srgb, var(--amber) 55%, transparent); } .rl-chip--breach .rl-chip__state { color: var(--amber); }
.rl-chip--profit { border-color: color-mix(in srgb, var(--profit) 50%, transparent); } .rl-chip--profit .rl-chip__state { color: var(--profit); }
.rl-chip--caution { border-color: color-mix(in srgb, var(--caution) 50%, transparent); } .rl-chip--caution .rl-chip__state { color: var(--caution); }
.rl-chip--info .rl-chip__state { color: var(--indigo-ink); }
@keyframes rl-flip { from { transform: rotateX(70deg); opacity: 0.3; } to { transform: none; opacity: 1; } }
@keyframes rl-blink { 50% { opacity: 0.25; } }
.rl-chip .bp-tile, .rl-panel .bp-tile { flex: none; }
.rl-chip .mono-tile, .rl-lg .mono-tile { --size: 20px; font-size: 8.5px; border-radius: 4px; }

.rl-chartbox { margin: 0; padding: 18px 18px 12px; min-width: 0; }
.rl-chartbox__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; padding-bottom: 12px; margin-bottom: 8px; border-bottom: 1px solid var(--draft-2); }
.rl-chartbox__cap { display: grid; gap: 4px; }
.rl-chartbox__k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--indigo-ink); }
.rl-chartbox__t { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.rl-chartbox__s { font-size: 13px; color: var(--ink-3); }
.rl-hero__legend { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.rl-lg { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px 3px 6px; border-radius: 4px; border: 1px solid var(--draft-2); font-size: 12px; color: var(--ink-2); }
.rl-lg > i { width: 14px; height: 2px; background: var(--pc); }
.rl-lg--eq > i { background: var(--rl-eq); box-shadow: 0 0 6px var(--rl-eq-glow); }
.rl-hero__chart { min-height: 240px; }
.rl-chartbox .rl-tick { font-size: 11px; }
.rl-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--draft-2); }
.rl-transport { display: flex; flex-wrap: wrap; gap: 8px; }
.rl-transport .icon { width: 14px; height: 14px; }
.rl-scrub { display: flex; align-items: center; gap: 12px; flex: 1 1 220px; min-width: 0; }
.rl-scrub .range { flex: 1; min-width: 80px; }
.rl-scrub__out { font-size: 12px; color: var(--ink-3); white-space: nowrap; min-width: 92px; text-align: right; }
.rl-share { display: flex; gap: 8px; margin-left: auto; }

.rl-cards-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin: 32px 0 12px; }
.rl-cards-head .rl-h3 { margin: 0; }
.rl-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; align-items: center; font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-3); }
.rl-legend span { display: inline-flex; align-items: center; gap: 6px; }
.rl-key { display: inline-block; width: 16px; height: 0; border-top: 2px solid; }
.rl-key--equity { border-color: var(--rl-eq); }
.rl-key--floor { border-color: var(--indigo); }
.rl-key--dll { border-top: 2px dashed var(--caution); }
.rl-key--target { border-top: 2px dotted var(--profit); }
.rl-key--breach, .rl-key--pass { width: 9px; height: 9px; border: 0; border-radius: 50%; background: var(--amber); }
.rl-key--pass { background: var(--profit); }

.rl-panels { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 14px; }
.rl-panels[data-count="2"] { --cols: 2; } .rl-panels[data-count="3"] { --cols: 3; }
.rl-panel { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 10px; padding: 14px 16px 16px; min-width: 0; border-radius: 12px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: inset 1px 1px 0 var(--glass-hi); }
.rl-panel::before { content: ""; position: absolute; left: 16px; right: 16px; top: -1px; height: 2px; background: var(--pc); border-radius: 2px; }
.rl-panel[data-status="breached"] { border-color: color-mix(in srgb, var(--amber) 40%, transparent); }
.rl-panel__head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rl-panel__id { flex: 1; min-width: 0; }
.rl-panel__name { margin: 0; font-size: 15px; font-weight: 600; letter-spacing: -0.012em; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rl-panel__name a { color: var(--ink); }
.rl-panel__name a:hover { color: var(--indigo-ink); }
.rl-panel__plan { margin: 0; font-size: 12px; color: var(--ink-3); }
.rl-panel .mono-tile { --size: 28px; font-size: 11px; }
.rl-status { flex: none; white-space: nowrap; font-size: 11px; }
.rl-verdict__head { margin: 0; font-weight: 600; color: var(--ink); font-size: 15px; line-height: 1.3; }
.rl-verdict--breach .rl-verdict__head { color: var(--amber); }
.rl-verdict--profit .rl-verdict__head { color: var(--profit); }
.rl-verdict--caution .rl-verdict__head { color: var(--caution); }
.rl-verdict--info .rl-verdict__head { color: var(--ink-2); font-size: 14px; font-weight: 500; }
.rl-verdict__text { font-size: 12.5px; color: var(--ink-2); line-height: 1.55; margin: 0; }
.rl-chart-wrap { margin: 0 -6px; }
.rl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 8px 0 0; }
.rl-stats dt { font-size: 9.5px; color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.12em; font-family: var(--font-mono); }
.rl-stats dd { margin: 2px 0 0; font-family: var(--font-mono); color: var(--ink); font-size: 12.5px; }
.rl-stats small { color: var(--ink-3); font-size: 0.85em; display: block; }
.rl-rules-wrap > summary { cursor: pointer; font-size: 12px; color: var(--ink-3); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.rl-rules-wrap > summary::-webkit-details-marker { display: none; }
.rl-rules-wrap > summary::before { content: "+"; font-family: var(--font-mono); }
.rl-rules-wrap[open] > summary::before { content: "\2212"; }
.rl-rules-wrap > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.rl-rules { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 8px 0 0; }
.rl-rules li { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: 4px; border: 1px solid var(--draft-2); font-size: 11px; color: var(--ink-3); }
.rl-rules b { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-mono); font-weight: 500; color: var(--ink); }
.rl-rules .illustrative { height: 16px; font-size: 9px; padding: 0 4px; }
.rl-mode { font-family: var(--font-sans); color: var(--ink-3); font-weight: 400; }

.rl-editor { margin-top: 18px; padding: 0; }
.rl-editor > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 16px 20px; cursor: pointer; list-style: none; border-radius: 14px; }
.rl-editor > summary::-webkit-details-marker { display: none; }
.rl-editor > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.rl-editor__title { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); }
.rl-editor__title .icon { color: var(--indigo-ink); }
.rl-editor__sum { font-family: var(--font-mono); font-size: 12px; color: var(--ink-3); }
.rl-editor__hint { margin: 0; padding: 0 20px; max-width: 80ch; font-size: 13.5px; color: var(--ink-3); }
.rl-trade-wrap { margin: 12px 20px 0; max-height: 420px; }
.rl-trades td, .rl-trades th { padding: 6px 10px; }
.rl-in { width: 110px; text-align: right; font-family: var(--font-mono); }
.rl-in--day { width: 72px; text-align: left; }
.rl-editor__actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px 20px; }
.rl-notes { display: grid; gap: 8px; margin-top: 16px; font-size: 13px; color: var(--ink-3); }
.rl-notes p { margin: 0; max-width: 100ch; }

.rl-wtable { margin: 8px 0 18px; }
.rl-cell--breach { color: var(--amber) !important; }
.rl-cell--breach .tag { margin-left: 6px; }
.rl-wlist { margin: 0 0 16px; padding-left: 18px; display: grid; gap: 8px; max-width: 80ch; font-size: 15px; line-height: 1.55; color: var(--ink-2); }
.rl-method { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1000px) { .rl-method { grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; } .rl-labels-box { position: sticky; top: calc(var(--header-h) + 24px); } }
.rl-defs { display: grid; margin: 0 0 8px; border-top: 1px solid var(--draft-2); }
.rl-defs > div { display: grid; grid-template-columns: minmax(130px, 0.35fr) 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--draft-2); }
.rl-defs dt { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.rl-defs dd { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
.rl-labels-box { display: grid; gap: 14px; padding: 20px; }
.rl-labels-box__t { margin: 0; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--indigo-ink); }
.rl-labels { display: grid; gap: 12px; margin: 0; }
.rl-labels div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: start; }
.rl-labels dd { margin: 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.5; }

/* =============================== Tools hub =============================== */
.tl-hub-hero { padding: 18px 0 clamp(36px, 5vw, 64px); }
.tl-hub-hero__grid { display: grid; gap: 28px; align-items: end; margin-top: clamp(24px, 4vw, 52px); }
@media (min-width: 1000px) { .tl-hub-hero__grid { grid-template-columns: minmax(0, 1fr) auto; } }
.tl-hub-hero__copy { display: grid; gap: 22px; justify-items: start; }
.tl-hub-hero__title { max-width: 14ch; }
.tl-cards--hub { grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); }
.tl-fig { padding: 18px; }
.tl-fig__foot { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; padding-top: 12px; margin-top: 8px; border-top: 1px solid var(--draft-2); }
.tl-more-list { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--draft-2); }
.tl-more-link { display: grid; grid-template-columns: 48px minmax(0, 1fr) 16px; align-items: center; gap: 18px; padding: 16px 4px; border-bottom: 1px solid var(--draft-2); color: inherit; text-decoration: none; transition: background-color 0.2s; }
.tl-more-link:hover { background: color-mix(in srgb, var(--indigo) 7%, transparent); }
.tl-more-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tl-more-link > span { display: grid; gap: 2px; }
.tl-more-link__n { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.12em; color: var(--indigo-ink); }
.tl-more-link b { font-size: 17px; font-weight: 600; color: var(--ink); letter-spacing: -0.015em; }
.tl-more-link span span:last-child { font-size: 14px; color: var(--ink-3); }
.tl-more-link .bp-arrow { color: var(--indigo-ink); transition: transform 0.25s; }
.tl-more-link:hover .bp-arrow { transform: translateX(3px); }

/* =============================== Calculators (shared) =============================== */
.tc-hero { padding: 18px 0 clamp(24px, 3vw, 40px); }
.tc-hero__grid { display: grid; gap: 22px; align-items: end; margin-top: clamp(20px, 3vw, 40px); }
@media (min-width: 1000px) { .tc-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; } }
.tc-hero__grid > div { display: grid; gap: 20px; justify-items: start; }
.tc-title { max-width: 15ch; }
.tc-calc { padding-bottom: clamp(48px, 6vw, 80px); }
.tc-ctl { display: grid; grid-template-columns: minmax(0, 1.4fr) auto auto; gap: 16px 28px; align-items: end; padding: 18px 20px; margin-bottom: 18px; }
.tc-ctl .label, .cc-ctl .label { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); font-weight: 400; }
.tc-ctl .select { width: 100%; height: 48px; font-size: 15px; }
.tc-att { border: 0; margin: 0; padding: 0; min-width: 0; }
.tc-att legend { margin-bottom: 6px; }
.tc-att__row { display: flex; gap: 4px; }
.tc-att__row input { position: absolute; opacity: 0; pointer-events: none; }
.tc-att__row label, .cc-lim { display: grid; place-items: center; min-width: 46px; height: 48px; padding: 0 10px; border: 1px solid var(--draft-2); border-radius: 4px; font-family: var(--font-mono); font-size: 16px; color: var(--ink-2); background: transparent; cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s, color 0.2s; }
.tc-att__row label:hover, .cc-lim:hover { border-color: var(--indigo); color: var(--ink); }
.tc-att__row input:checked + label, .cc-lim[aria-pressed="true"] { border-color: transparent; color: #fff; background: var(--indigo-deep); box-shadow: 0 0 0 1px var(--indigo), 0 10px 24px -12px rgba(79, 72, 255, 0.9); }
.tc-att__row input:focus-visible + label, .cc-lim:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tc-adjust { align-self: center; }
.tc-adjust > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 14px; border: 1px dashed var(--draft); border-radius: 4px; font-size: 14px; color: var(--ink-2); white-space: nowrap; }
.tc-adjust > summary::-webkit-details-marker { display: none; }
.tc-adjust > summary::before { content: "+"; font-family: var(--font-mono); color: var(--indigo-ink); }
.tc-adjust[open] > summary::before { content: "\2212"; }
.tc-adjust > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tc-adjust[open] { grid-column: 1 / -1; }
.tc-adjust__body { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.tc-adjust__body .input, .tc-adjust__body .select { width: 100%; }
.tc-prefix { position: absolute; left: 12px; color: var(--ink-3); font-family: var(--font-mono); pointer-events: none; font-size: 14px; }
.tc-money { padding-left: 26px !important; font-family: var(--font-mono); }
.input-group { position: relative; display: flex; align-items: center; }

.tc-fig { margin: 0; padding: clamp(18px, 2vw, 28px); min-width: 0; }
.tc-fig__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; padding-bottom: 14px; margin-bottom: 22px; border-bottom: 1px solid var(--draft-2); }
.tc-fig__k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--indigo-ink); }
.tc-fig__plan { font-size: 15px; color: var(--ink-2); }
.tc-fig__draw { min-width: 0; }
.tc-fig__foot { display: grid; gap: 10px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--draft-2); }
.tc-note { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink-3); max-width: 90ch; }
.tc-read { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 18px 40px; align-items: start; margin-top: 20px; }
.tc-read__s { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--ink-2); max-width: 60ch; }
.tc-read .bp-measure__v { font-size: clamp(28px, 2vw + 14px, 44px); }

/* the cost drawing */
.tc-svg { display: block; max-width: 100%; height: auto; overflow: visible; }
.tc-k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; fill: var(--ink-2); }
.tc-blk rect { fill: color-mix(in srgb, var(--indigo-deep) 34%, transparent); stroke: var(--indigo); stroke-width: 1; }
.tc-blk:first-child rect { fill: color-mix(in srgb, var(--indigo-deep) 62%, transparent); }
.tc-blk--act rect { fill: color-mix(in srgb, var(--amber) 16%, transparent); stroke: var(--amber); }
.tc-blk--other rect { fill: url(#bp-hatch); stroke: var(--draft); }
.tc-blk__k { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; fill: color-mix(in srgb, var(--ink) 80%, transparent); }
.tc-blk__v { font-family: var(--font-mono); font-size: 17px; fill: var(--ink); }
.tc-dimt { font-family: var(--font-mono); font-size: 13px; fill: var(--ink); letter-spacing: 0.02em; }
.tc-need__you { fill: color-mix(in srgb, var(--profit) 22%, transparent); stroke: var(--profit); stroke-width: 1; }
.tc-need__firm { fill: url(#bp-hatch); stroke: var(--draft); stroke-width: 1; }
.tc-need__min { fill: none; stroke: var(--amber); stroke-width: 1; stroke-dasharray: 4 3; }
.tc-need__lab { fill: var(--ink); }
.tc-need__firmlab { fill: var(--ink-3); }
.tc-nv { fill: none; stroke: var(--draft); stroke-dasharray: 4 4; }
.tc-nvt { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em; fill: var(--ink-3); }
.tc-tie { stroke: var(--draft); }
.bp-armed .tc-blk, .bp-armed .tc-need { opacity: 0; transform: translateY(8px); transition: opacity 0.5s ease var(--d, 0s), transform 0.6s var(--ease-draw) var(--d, 0s); }
.bp-armed.bp-in .tc-blk, .bp-armed.bp-in .tc-need { opacity: 1; transform: none; }
.bp-armed.bp-in .tc-need { transition-delay: 0.7s; }
.bp-armed.bp-drawn .tc-blk, .bp-armed.bp-drawn .tc-need { transition: none; }

/* ranked list on one scale */
.tc-rank-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-bottom: 14px; }
.tc-disc { margin-left: auto; }
.tc-legend { display: flex; gap: 16px; margin: 0; font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-3); }
.tc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.tc-key { width: 12px; height: 8px; border-radius: 1px; }
.tc-key--eval { background: color-mix(in srgb, var(--indigo-deep) 62%, transparent); box-shadow: inset 0 0 0 1px var(--indigo); }
.tc-key--act { background: color-mix(in srgb, var(--amber) 22%, transparent); box-shadow: inset 0 0 0 1px var(--amber); }
.tc-rank { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--draft-2); }
.tc-row { display: grid; grid-template-columns: 26px minmax(220px, 0.9fr) minmax(160px, 2fr) 128px 52px; align-items: center; gap: 14px; padding: 10px 4px; border-bottom: 1px solid var(--draft-2); }
.tc-row.is-sel { background: color-mix(in srgb, var(--indigo) 9%, transparent); box-shadow: inset 2px 0 0 var(--indigo); }
.js [data-collapsed] .tc-row.is-more { display: none; }
.tc-row__n { font-size: 11px; color: var(--ink-3); }
.tc-row__id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tc-row__id > span:last-child { display: grid; min-width: 0; }
.tc-row__id a { color: var(--ink); font-weight: 600; font-size: 14.5px; }
.tc-row__plan { font-size: 12px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-row__bar { display: flex; gap: 2px; height: 12px; }
.tc-row__bar i { display: block; height: 100%; border-radius: 1px; }
.tc-row__eval { background: color-mix(in srgb, var(--indigo-deep) 55%, transparent); box-shadow: inset 0 0 0 1px var(--indigo); }
.tc-row__act { background: color-mix(in srgb, var(--amber) 20%, transparent); box-shadow: inset 0 0 0 1px var(--amber); }
.tc-row__v { text-align: right; font-size: 15px; color: var(--ink); white-space: nowrap; }
.tc-min { font-family: var(--font-sans); font-size: 11px; color: var(--caution); }
.tc-row__use { height: 28px; padding: 0 8px; border: 1px solid var(--draft-2); border-radius: 4px; background: transparent; color: var(--indigo-ink); font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.tc-row__use:hover { border-color: var(--indigo); }
.tc-row__use:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.tc-code { font-family: var(--font-mono); font-size: 10.5px; padding: 0 4px; border: 1px solid var(--draft-2); border-radius: 3px; color: var(--ink-2); }
.tc-code--recheck { border-color: var(--caution); color: var(--caution); }
.tc-code--expired { color: var(--ink-3); }
.tc-more-btn { margin: 14px 0 10px; }
.tc-empty { padding: 20px 0; color: var(--ink-3); }

/* =============================== Consistency =============================== */
.cc-grid { display: grid; gap: 18px; align-items: start; }
@media (min-width: 1000px) { .cc-grid { grid-template-columns: 340px minmax(0, 1fr); } .cc-ctl { position: sticky; top: calc(var(--header-h) + 16px); } }
.cc-ctl { display: grid; gap: 18px; padding: 20px; }
.cc-limits { margin: 6px 0 10px; }
.cc-lim { flex: 1; min-width: 0; height: 42px; font-size: 14px; }
.cc-ctl .range { width: 100%; }
.cc-ctl .select { width: 100%; }
.cc-days { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cc-day { display: grid; grid-template-columns: 30px minmax(0, 1fr) 28px; align-items: center; gap: 6px; }
.cc-day__k { font-family: var(--font-mono); font-size: 11px; color: var(--ink-3); }
.cc-in { width: 100%; height: 38px; text-align: right; font-family: var(--font-mono); padding: 0 8px; }
.cc-day__x { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 4px; background: transparent; color: var(--ink-3); cursor: pointer; }
.cc-day__x:hover { color: var(--ink); background: color-mix(in srgb, var(--indigo) 12%, transparent); }
.cc-day__x:focus-visible { outline: 2px solid var(--focus); }
.cc-day__x .icon { width: 14px; height: 14px; }
.cc-ctl__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-result { display: grid; gap: 8px; margin-bottom: 22px; }
.cc-verdict { display: flex; align-items: center; gap: 12px; margin: 0; }
.cc-verdict__tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 3px 8px; border: 1px solid currentColor; border-radius: 3px; }
.cc-verdict--breach .cc-verdict__tag { color: var(--amber); } .cc-verdict--profit .cc-verdict__tag { color: var(--profit); } .cc-verdict--caution .cc-verdict__tag { color: var(--caution); }
.cc-verdict__at { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.cc-head { margin: 0; font-size: clamp(26px, 1.6vw + 14px, 40px); font-weight: 650; letter-spacing: -0.035em; line-height: 1.08; color: var(--ink); }
.cc-text { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--ink-2); max-width: 70ch; }
.cc-kv { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 6px 0 0; border: 1px solid var(--draft-2); border-radius: 2px; }
.cc-kv > div { padding: 8px 12px; border-right: 1px solid var(--draft-2); min-width: 0; }
.cc-kv > div:last-child { border-right: 0; }
.cc-kv dt { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.cc-kv dd { margin: 3px 0 0; font-size: 16px; color: var(--ink); }
.cc-svg { display: block; max-width: 100%; height: auto; overflow: visible; }
.cc-gl { stroke: var(--draft-2); stroke-width: 1; opacity: 0.6; }
.cc-gl--zero { stroke: var(--draft); opacity: 1; }
.cc-tick { fill: var(--ink-3); font-family: var(--font-mono); font-size: 10px; }
.cc-tick--s { font-size: 9px; }
.cc-k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; fill: var(--ink-2); }
.cc-bar rect { fill: color-mix(in srgb, var(--indigo-deep) 30%, transparent); stroke: color-mix(in srgb, var(--indigo) 70%, transparent); stroke-width: 1; }
.cc-bar.is-loss rect { fill: url(#bp-hatch); stroke: var(--draft); }
.cc-bar.is-best rect { fill: color-mix(in srgb, var(--profit) 30%, transparent); stroke: var(--profit); }
.cc-bar.is-over rect { fill: color-mix(in srgb, var(--amber) 32%, transparent); stroke: var(--amber); }
.cc-allow { stroke: var(--amber); stroke-width: 1.25; stroke-dasharray: 6 4; fill: none; }
.cc-allow__t { font-family: var(--font-mono); font-size: 10.5px; fill: var(--amber); }
.cc-dimt { font-family: var(--font-mono); font-size: 13px; fill: var(--ink); }
.cc-dimt--s { font-size: 10.5px; fill: var(--ink-3); }
.cc-sep { stroke: var(--draft-2); stroke-dasharray: 3 4; }
.cc-tot rect { fill: color-mix(in srgb, var(--indigo-deep) 45%, transparent); stroke: var(--indigo); }
.cc-tot.is-need rect { fill: none; stroke: var(--amber); stroke-dasharray: 4 3; }
.cc-tot.is-loss rect { fill: url(#bp-hatch); stroke: var(--draft); }
.cc-tot__v { font-family: var(--font-mono); font-size: 12px; fill: var(--ink); }
.cc-gap { font-family: var(--font-mono); font-size: 12px; fill: var(--amber); }
.bp-armed .cc-bar, .bp-armed .cc-tot { opacity: 0; transition: opacity 0.5s ease var(--d, 0s); }
.bp-armed.bp-in .cc-bar, .bp-armed.bp-in .cc-tot { opacity: 1; }
.cc-table-wrap { margin-top: 4px; }
.cc-firm { display: flex; align-items: center; gap: 10px; }
.cc-firm a { color: var(--ink); font-weight: 600; }
.cc-names { font-size: 12px; color: var(--ink-3); max-width: 46ch; white-space: normal; font-weight: 400; }
.cc-none { color: var(--ink-3); }
.cc-tag { display: inline-block; margin-left: 6px; padding: 1px 6px; border: 1px solid var(--draft-2); border-radius: 3px; font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-3); }
.cc-tag--ok { color: var(--profit); border-color: color-mix(in srgb, var(--profit) 50%, transparent); }
.cc-tag--need { color: var(--amber); border-color: color-mix(in srgb, var(--amber) 50%, transparent); }
.cc-lab-link { margin-top: 8px; }

/* =============================== responsive =============================== */
@media (max-width: 1240px) { .rl-panels { --cols: 2; } .rl-panels[data-count="3"] { --cols: 3; } }
@media (max-width: 1100px) {
  .rl-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-ctl { grid-template-columns: minmax(0, 1fr) auto; }
  .tc-adjust { grid-column: 1 / -1; }
  .tc-adjust__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-read { grid-template-columns: auto auto; }
  .tc-read__s { grid-column: 1 / -1; }
}
@media (max-width: 899px) {
  .rl-hero { flex-direction: column; min-height: 0; }
  .rl-hero__in { display: contents; }
  .rl-hero__copy { order: 1; padding: 16px var(--gutter) 8px; position: relative; z-index: 4; }
  .rl-hero__stage { order: 2; position: relative; inset: auto; height: min(56svh, 440px); }
  .rl[data-mode="poster"] .rl-hero__stage { height: 24px; }
  .rl-hero__stage::after { background: linear-gradient(180deg, rgba(3, 4, 10, 1) 0%, rgba(3, 4, 10, 0) 16%, rgba(3, 4, 10, 0) 84%, rgba(3, 4, 10, 1) 100%); }
  .rl-outs { order: 3; width: auto; padding: 0 var(--gutter) 28px; justify-self: stretch; position: relative; z-index: 4; }
  .rl[data-mode="live"] .rl-outs { position: relative; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
}
@media (max-width: 640px) {
  /* phones: the text list under the stage names every floor, so the scene keeps only numbers and dimensions */
  .rl-hero .lfm-fl, .rl-hero .lfm__svg .i, .rl-hero .lfm__svg .dot { display: none !important; }
}
@media (max-width: 760px) {
  .rl-panels, .rl-panels[data-count="3"] { --cols: 1; }
  .rl-slots { grid-template-columns: minmax(0, 1fr); }
  .rl-chartbox { padding: 14px 10px 10px; }
  .rl-chartbox__s { display: none; }
  .rl-callout text { font-size: 11.5px; }
  .rl-transport [data-act="end"] { display: none; }
  .rl-share { margin-left: 0; }
  .rl-scrub { flex-basis: 100%; order: 3; }
  .rl-defs > div { grid-template-columns: 1fr; gap: 4px; }
  .tc-ctl { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  .tc-att__row label { flex: 1; min-width: 0; }
  .tc-adjust > summary { width: 100%; }
  .tc-row { grid-template-columns: 22px minmax(0, 1fr) auto; gap: 4px 10px; }
  .tc-row__bar { grid-column: 2 / 4; grid-row: 2; }
  .tc-row__use { display: none; }
  .tc-disc { margin-left: 0; }
  .cc-kv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-kv > div:nth-child(2) { border-right: 0; }
  .cc-kv > div:nth-child(-n+2) { border-bottom: 1px solid var(--draft-2); }
}
@media (max-width: 480px) {
  .rl-stats { gap: 6px; }
  .rl-in { width: 88px; }
  .rl-in--day { width: 56px; }
  .rl-trade-wrap { margin-inline: 12px; }
  .rl-editor__hint { padding: 0 14px; }
  .rl-labels div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .rl-share__txt { display: none; }
  .tc-adjust__body { grid-template-columns: minmax(0, 1fr); }
  .tc-read { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .rl-chip, .rl-chip--run .rl-chip__state::before { animation: none; }
  .bp-armed .tc-blk, .bp-armed .tc-need, .bp-armed .cc-bar, .bp-armed .cc-tot { opacity: 1; transform: none; }
}
.rl-hero .breadcrumb, .rl-hero .breadcrumb a, .rl-hero .breadcrumb [aria-current] { color: rgba(220, 226, 255, 0.78); }
.rl-hero .breadcrumb a:hover { color: #fff; }
/* the hero stage is always dark: pin the dark v2 tokens inside it so light theme text stays legible */
.rl-hero { --ink: #F2F3FA; --ink-2: #B9BDD3; --ink-3: #8F94AE; --indigo: #7C76FF; --indigo-ink: #A9A5FF; --indigo-deep: #4F48FF; --draft: rgba(255, 255, 255, 0.5); --draft-2: rgba(255, 255, 255, 0.2); --focus: #8A85FF; }
.rl-hero .illustrative { color: #8FC2FF; background: rgba(87, 184, 255, 0.12); border-color: rgba(87, 184, 255, 0.3); }

/* v2.0 motion pass (lane MO): Rule Lab clip (stepped glass floors and a line) beside the hub headline */
.tl-hub-hero { min-height: clamp(380px, 34vw, 480px); --cine-w: 60%; --cine-pos: 56% 72%; --cine-o: 0.95; --cine-l0: 42%; --cine-l1: 62%; --cine-t1: 8%; --cine-b0: 78%; }
.tl-hub-hero .bp-cine__marks { display: none; }
@media (max-width: 899px) {
  .tl-hub-hero { min-height: 0; --cine-w: 100%; --cine-pos: 74% 40%; --cine-o: 0.5; --cine-ol: 0.28; --cine-l1: 30%; --cine-t1: 25%; --cine-b0: 60%; }
}
