/* ffbd.top — Function flow: a Functional Flow Block Diagram on a digital whiteboard */
:root{
  --canvas:#ECEEE7;--dot:#C6CCC0;--sheet:#FBFBF7;--sheet-2:#F2F3EE;--shadow:#D3D8CC;
  --ink:#14181D;--ink-2:#454E57;--rule:#14181D;--soft:#B8BEB2;
  --flow:#D2461F;--flow-ink:#AE3514;--state:#0A6863;--state-2:#DCEDE9;--note:#F4D35E;--note-2:#FBEBAF;--ref:#5A4F9C;
  --f-head:"Radio Canada Big","Anek Bangla","Noto Sans Bengali",system-ui,sans-serif;
  --f-body:"Ubuntu Sans","Noto Sans Bengali",system-ui,sans-serif;
  --f-mono:"Ubuntu Sans Mono","Noto Sans Bengali",ui-monospace,monospace;
  --lh:1.65;--w:1240px;--g:clamp(16px,3.2vw,40px);--st:1.5px;
  /* game tokens */
  --primary:var(--ink);--primary-contrast:var(--sheet);--accent:var(--note);--surface:var(--sheet);--surface-2:var(--sheet-2);
  --border:var(--soft);--muted:var(--ink-2);--heading:var(--ink);--text:var(--ink);--font-head:var(--f-head);--font-body:var(--f-body);
  color-scheme:light;
}
:lang(bn){--lh:1.8}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--canvas) radial-gradient(circle,var(--dot) 1px,transparent 1.3px) 0 0/24px 24px;color:var(--ink);font:400 17px/var(--lh) var(--f-body);text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--flow-ink);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--flow);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--f-head);color:var(--ink);text-wrap:balance;margin:0}
:lang(bn) :is(h1,h2,h3){font-weight:700}
.wrap{width:min(100% - 2*var(--g),var(--w));margin-inline:auto}
.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--ink);color:var(--sheet);padding:12px 16px;font-weight:700}
.skip:focus{top:12px}
.fn,.nn,.tn,.fqn,.ref-n,.blk-k,.blk-tag,.hp-id,.note-k,.age,.copy{font-family:var(--f-mono)}

/* ---------- header: nav as a chain of function blocks ---------- */
.hd{background:var(--sheet);border-bottom:var(--st) solid var(--rule);position:relative;z-index:20}
.hd-in{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand lsw cta" "nav nav nav";align-items:center;gap:12px 16px;padding:14px 0}
.brand{grid-area:brand;display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;min-height:44px;min-width:0}
.mk{width:46px;height:32px;flex:none;fill:var(--sheet);stroke:var(--ink);stroke-width:1.6}
.mk .mk-f{fill:none;stroke:var(--flow);stroke-width:1.8}.mk .mk-a{fill:var(--flow);stroke:none}
.brand-t{display:flex;flex-direction:column;min-width:0}
.brand-t b{font:700 26px/1 var(--f-head);letter-spacing:-.02em}
.brand-t small{font:500 13px/1.35 var(--f-body);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lsw{grid-area:lsw;display:flex;border:var(--st) solid var(--rule);background:var(--sheet)}
.lsw a{min-height:44px;min-width:48px;padding:0 12px;display:grid;place-items:center;color:var(--ink);text-decoration:none;font:600 15px/1 var(--f-body)}
.lsw a+a{border-left:var(--st) solid var(--rule)}
.lsw a[aria-current]{background:var(--ink);color:var(--sheet)}
.lsw a:not([aria-current]):hover{background:var(--note-2)}
.hd-cta{grid-area:cta}
.hd-cta,.fnav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;font:700 16px/1.2 var(--f-head);text-decoration:none;border:var(--st) solid var(--ink);cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}
.hd-cta,.btn-ink,.fnav-cta{background:var(--ink);color:var(--sheet);box-shadow:4px 4px 0 var(--flow)}
.hd-cta:hover,.btn-ink:hover,.fnav-cta:hover{color:var(--sheet);transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--flow)}
.btn-line{background:var(--sheet);color:var(--ink);box-shadow:4px 4px 0 var(--shadow)}
.btn-line:hover{color:var(--ink);background:var(--note-2)}
.btn-sm{min-height:44px;padding:8px 16px;font-size:15px}
.fnav{grid-area:nav}
.fnav ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:10px}
.fnav li{display:flex;align-items:center}
.fnav li+li::before{content:"";width:22px;height:var(--st);background:var(--flow);flex:none}
.fnav ol a{position:relative;display:flex;align-items:stretch;min-height:44px;border:var(--st) solid var(--rule);background:var(--sheet);color:var(--ink);text-decoration:none;font:500 15px/1.25 var(--f-body)}
.fnav li+li a::before{content:"";position:absolute;left:-9px;top:50%;margin-top:-5px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent var(--flow)}
.fnav .nn{display:grid;place-items:center;padding:0 8px;border-right:var(--st) solid var(--rule);font-size:13px;color:var(--ink-2);background:var(--sheet-2)}
.fnav .nl{display:flex;align-items:center;padding:6px 12px}
.fnav ol a:hover{background:var(--note-2)}
.fnav ol a[aria-current]{background:var(--ink);color:var(--sheet)}
.fnav a[aria-current] .nn{background:var(--flow);color:#fff;border-color:var(--ink)}
.fnav .fnav-cta{display:none}
.mbtn{grid-area:mbtn;display:none;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:0 14px;border:var(--st) solid var(--rule);background:var(--sheet);color:var(--ink);font:600 15px/1 var(--f-body);cursor:pointer}
.mb-i{display:grid;gap:4px;width:18px}.mb-i i{display:block;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
.hd.open .mb-i i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hd.open .mb-i i:nth-child(2){opacity:0}
.hd.open .mb-i i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.hd.open .mbtn{background:var(--ink);color:var(--sheet)}
@media (max-width:979px){
  .hd-in{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand lsw mbtn" "nav nav nav";padding:10px 0}
  .mbtn{display:inline-flex}
  .hd-cta{display:none}
  .fnav{display:none;padding:6px 0 10px}
  .hd.open .fnav{display:block}
  .fnav ol{flex-direction:column;align-items:stretch;row-gap:0}
  .fnav li{flex-direction:column;align-items:stretch}
  .fnav li+li::before{width:var(--st);height:14px;margin-left:21px}
  .fnav li+li a::before{left:17px;top:-9px;margin-top:0;border-width:8px 5px 0 5px;border-color:var(--flow) transparent transparent transparent}
  .fnav ol a{min-height:48px}
  .fnav .nn{min-width:46px}
  .fnav .fnav-cta{display:flex;margin-top:16px;width:100%}
}
@media (max-width:420px){.brand-t small{display:none}.mk{width:38px}.mb-t{display:none}.lsw a{min-width:44px;padding:0 8px}}

/* ---------- shared blocks ---------- */
.blk{background:var(--sheet);border:var(--st) solid var(--rule);box-shadow:6px 6px 0 var(--shadow);min-width:0}
.blk-h{display:flex;align-items:stretch;min-height:40px;border-bottom:var(--st) solid var(--rule);background:var(--sheet-2)}
.fn{display:inline-flex;align-items:center;padding:0 12px;background:var(--ink);color:var(--sheet);font-size:14px;font-weight:600;letter-spacing:.02em;flex:none}
:lang(bn) .fn{letter-spacing:0}
.blk-k{display:flex;align-items:center;padding:6px 12px;font-size:14px;color:var(--ink-2);min-width:0}
.blk-tag{margin-left:auto;display:flex;align-items:center;padding:6px 12px;font-size:13px;color:var(--state);border-left:var(--st) solid var(--rule);white-space:nowrap}
.blk-b{padding:clamp(18px,3vw,34px)}
.gate{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:var(--st) solid var(--rule);background:var(--sheet);font:700 12px/1 var(--f-mono);color:var(--ink);flex:none;text-align:center}
.gate span{padding:2px}

/* ---------- home hero ---------- */
.hero-home{padding:clamp(24px,4vw,56px) 0 clamp(20px,3vw,40px)}
.hh{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(320px,540px);align-items:start}
.hero-copy h1{font-size:clamp(32px,4.4vw,58px);line-height:1.04;letter-spacing:-.025em;font-weight:700}
:lang(bn) .hero-copy h1{letter-spacing:0;line-height:1.35;font-size:clamp(30px,3.8vw,50px)}
.lead{margin-top:18px;font-size:clamp(17px,1.4vw,19px);color:var(--ink-2)}
.lead p{margin:0 0 .6em}
.acts{display:flex;flex-wrap:wrap;gap:14px 16px;margin-top:24px}
.chips{list-style:none;margin:26px 0 0;padding:16px 0 0;border-top:var(--st) dashed var(--soft);display:flex;flex-wrap:wrap;gap:8px}
.chips li{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border:var(--st) solid var(--rule);background:var(--sheet);font-size:14px;line-height:1.4}
.chips li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--state);flex:none}
.chips li:first-child::before{background:var(--flow)}
.hh-link{align-self:stretch;position:relative;display:grid;place-items:center}
.hh-link::before{content:"";position:absolute;left:0;right:6px;top:120px;height:var(--st);background:var(--flow)}
.hh-link::after{content:"";position:absolute;right:0;top:115px;border-style:solid;border-width:5.5px 0 5.5px 9px;border-color:transparent transparent transparent var(--flow)}
.hh-link .gate{position:absolute;top:95px;left:50%;margin-left:-26px;background:var(--note);z-index:1}
.blk-play{position:relative}
@media (max-width:999px){
  .hh{grid-template-columns:minmax(0,1fr)}
  .hh-link{height:76px}
  .hh-link::before{left:50%;right:auto;top:0;bottom:8px;width:var(--st);height:auto}
  .hh-link::after{left:50%;right:auto;top:auto;bottom:0;margin-left:-5px;border-width:9px 5.5px 0 5.5px;border-color:var(--flow) transparent transparent transparent}
  .hh-link .gate{top:12px}
  .blk-play{max-width:600px;width:100%;justify-self:center}
}

/* ---------- inner hero ---------- */
.hero-page{padding:clamp(20px,3.5vw,44px) 0 clamp(20px,3vw,36px);border-bottom:var(--st) solid var(--rule);background:linear-gradient(var(--sheet),var(--sheet)) 0 0/100% 100%}
.hp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:40px;align-items:center}
.crumbs ol{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;font-size:15px}
.crumbs li{display:flex;align-items:center}
.crumbs li+li::before{content:"";width:20px;height:var(--st);background:var(--flow);margin:0 8px 0 6px;flex:none;box-shadow:0 0 0 0 transparent}
.crumbs a{color:var(--ink-2);display:inline-flex;align-items:center;min-height:44px;padding:0 2px}
.crumbs [aria-current]{color:var(--ink);font-weight:600}
.hp-id{display:flex;margin:0 0 14px;border:var(--st) solid var(--rule);width:max-content;max-width:100%}
.hp-id .fn{min-height:34px}
.hp-f{display:flex;align-items:center;padding:0 12px;font-size:14px;color:var(--ink-2);background:var(--sheet-2)}
.hero-page h1{font-size:clamp(30px,4vw,52px);line-height:1.07;letter-spacing:-.022em;max-width:22ch}
:lang(bn) .hero-page h1{letter-spacing:0;line-height:1.38;max-width:26ch;font-size:clamp(28px,3.4vw,44px)}
.hero-page .lead{max-width:68ch}
.hp-map{margin:0;padding:16px;border:var(--st) dashed var(--soft);background:var(--canvas) radial-gradient(circle,var(--dot) 1px,transparent 1.3px) 0 0/16px 16px}
.map{display:block;width:100%;height:auto}
.m-blk{fill:var(--sheet);stroke:var(--ink);stroke-width:1.4}.m-blk.on{fill:var(--flow);stroke:var(--ink)}
.m-tx{font:600 11px var(--f-mono);fill:var(--ink);text-anchor:middle}.m-tx.on{fill:#fff}
.m-ln{fill:none;stroke:var(--flow);stroke-width:1.4}.m-ar{fill:var(--flow)}
.m-gt{fill:var(--note);stroke:var(--ink);stroke-width:1.4}.m-g{font:700 12px var(--f-mono);fill:var(--ink);text-anchor:middle}
.m-end{fill:var(--ink)}
@media (max-width:859px){.hp{grid-template-columns:minmax(0,1fr)}.hp-map{display:none}}

/* ---------- body: TOC + flow spine ---------- */
.body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(28px,4vw,56px);padding:clamp(32px,5vw,64px) 0;align-items:start}
.side{position:sticky;top:20px;display:grid;gap:22px;min-width:0}
.ftoc{background:var(--sheet);border:var(--st) solid var(--rule);box-shadow:5px 5px 0 var(--shadow)}
.ftoc summary{display:flex;align-items:stretch;min-height:46px;list-style:none;cursor:pointer;border-bottom:var(--st) solid var(--rule);font:600 15px/1.3 var(--f-body)}
.ftoc summary::-webkit-details-marker{display:none}
.ftoc summary>span:nth-child(2){display:flex;align-items:center;padding:6px 12px;flex:1}
.ftoc:not([open]) summary{border-bottom:0}
.ftoc-i{width:46px;display:grid;place-items:center;border-left:var(--st) solid var(--rule)}
.ftoc-i::before{content:"";width:9px;height:9px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
.ftoc[open] .ftoc-i::before{transform:rotate(-135deg) translate(-2px,-2px)}
.ftoc-n{display:flex;align-items:center;padding:0 10px;background:var(--flow);color:#fff;font:600 13px var(--f-mono)}
.ftoc ol{list-style:none;margin:0;padding:12px 12px 14px;max-height:min(62vh,560px);overflow:auto;overscroll-behavior:contain}
.ftoc li{position:relative;padding-left:0}
.ftoc li+li{margin-top:6px}
.ftoc li+li::before{content:"";position:absolute;left:21px;top:-6px;height:6px;width:var(--st);background:var(--soft)}
.ftoc a{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:6px 8px 6px 0;color:var(--ink);text-decoration:none;font-size:15px;line-height:1.4}
.ftoc .tn{flex:none;min-width:44px;text-align:center;padding:3px 4px;border:var(--st) solid var(--rule);background:var(--sheet);font-size:12.5px;line-height:1.4}
.ftoc .tl{padding-top:3px}
.ftoc a:hover .tl{text-decoration:underline;text-decoration-color:var(--flow)}
.ftoc a[aria-current] .tn{background:var(--flow);color:#fff;border-color:var(--ink)}
.ftoc a[aria-current] .tl{font-weight:600}
.note{position:relative;background:var(--note);border:var(--st) solid var(--rule);padding:18px 18px 20px;box-shadow:5px 5px 0 var(--shadow)}
.note::after{content:"";position:absolute;right:-1.5px;top:-1.5px;width:22px;height:22px;background:linear-gradient(225deg,var(--canvas) 50%,var(--note-2) 50%);border-left:var(--st) solid var(--rule);border-bottom:var(--st) solid var(--rule)}
.note-k{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.note strong{display:block;font:700 19px/1.3 var(--f-head)}
.note p{margin:8px 0 14px;font-size:16px}
@media (max-width:979px){
  .body{grid-template-columns:minmax(0,1fr)}
  .side{position:static}
  .note-demo{display:none}
}

.flow{position:relative;padding-left:44px;min-width:0}
.flow::before{content:"";position:absolute;left:14px;top:0;bottom:30px;width:var(--st);background:var(--flow)}
.fb,.fq{position:relative;margin:0 0 30px}
.fb::before,.fq::before{content:"";position:absolute;left:-30px;top:20px;width:22px;height:var(--st);background:var(--flow)}
.fb::after,.fq::after{content:"";position:absolute;left:-10px;top:15.5px;border-style:solid;border-width:5.5px 0 5.5px 9px;border-color:transparent transparent transparent var(--flow)}
.fb{background:var(--sheet);border:var(--st) solid var(--rule);box-shadow:6px 6px 0 var(--shadow)}
.fb-h{display:flex;align-items:stretch;min-height:42px;border-bottom:var(--st) solid var(--rule);background:var(--sheet-2)}
.fb-h h2{display:flex;align-items:center;padding:8px 14px;font-size:clamp(20px,2vw,25px);line-height:1.22;letter-spacing:-.012em;font-weight:700;min-width:0}
:lang(bn) .fb-h h2{letter-spacing:0;line-height:1.45;font-size:clamp(19px,1.9vw,23px)}
.fb-b{padding:clamp(16px,2.6vw,28px)}
.fb-plain{background:transparent;border:0;box-shadow:none}
.fb-plain::before,.fb-plain::after{display:none}
.fb-plain .fb-b{padding:0 0 0 4px}
.prose{max-width:74ch}
.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}
.prose p,.prose ul,.prose ol{margin:0 0 1em}
.prose h3{font-size:19px;line-height:1.35;margin:1.4em 0 .5em;display:flex;align-items:center;gap:10px}
.prose h3::before{content:"";width:12px;height:12px;border:var(--st) solid var(--ink);background:var(--note);flex:none}
.prose ul{list-style:none;padding:0}
.prose ul>li{position:relative;padding-left:28px;margin:.45em 0}
.prose ul>li::before{content:"";position:absolute;left:4px;top:.72em;width:12px;height:var(--st);background:var(--flow)}
.prose ul>li::after{content:"";position:absolute;left:14px;top:calc(.72em - 3.5px);border-style:solid;border-width:4px 0 4px 6px;border-color:transparent transparent transparent var(--flow)}
.prose ol{padding:0;list-style:none;counter-reset:s}
.prose ol>li{position:relative;counter-increment:s;padding-left:44px;margin:.6em 0;min-height:30px}
.prose ol>li::before{content:counter(s);position:absolute;left:0;top:.1em;min-width:30px;height:28px;display:grid;place-items:center;border:var(--st) solid var(--ink);background:var(--sheet);font:600 13px/1 var(--f-mono)}
:lang(bn) .prose ol>li::before{content:counter(s,bengali)}
.prose strong{color:var(--ink);font-weight:700}
.prose a{font-weight:500}
.tbl{overflow-x:auto;margin:0 0 1.2em;border:var(--st) solid var(--rule);background:var(--sheet)}
.tbl table{border-collapse:collapse;width:100%;min-width:480px;font-size:15.5px;line-height:1.5}
.tbl th,.tbl td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--soft)}
.tbl th{background:var(--ink);color:var(--sheet);font-weight:600}
.tbl tr:nth-child(even) td{background:var(--sheet-2)}

/* FAQ: OR gate fan-out */
.fq-l{display:grid;gap:10px;position:relative;padding-left:36px}
.fq-l::before{content:"";position:absolute;left:14px;top:-10px;bottom:24px;width:var(--st);background:var(--soft)}
.fq>.fb-h{border:var(--st) solid var(--rule);background:var(--sheet);box-shadow:6px 6px 0 var(--shadow)}
.gate-or{width:48px;height:48px;margin:14px 0 10px -9px;background:var(--note);position:relative;z-index:1}
.fqi{position:relative;background:var(--sheet);border:var(--st) solid var(--rule)}
.fqi::before{content:"";position:absolute;left:-22px;top:23px;width:20px;height:var(--st);background:var(--soft)}
.fqi summary{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:10px 12px;cursor:pointer;list-style:none;font:600 16.5px/1.45 var(--f-body)}
.fqi summary::-webkit-details-marker{display:none}
.fqn{flex:none;width:28px;height:28px;display:grid;place-items:center;border:var(--st) solid var(--ink);font-size:13px;margin-top:1px}
.fqq{flex:1;min-width:0}
.fqx{flex:none;width:28px;height:28px;position:relative;margin-top:1px}
.fqx::before,.fqx::after{content:"";position:absolute;left:7px;top:13px;width:14px;height:2px;background:var(--ink);transition:transform .2s}
.fqx::after{transform:rotate(90deg)}
.fqi[open]{box-shadow:5px 5px 0 var(--shadow)}
.fqi[open] .fqn{background:var(--state);color:#fff;border-color:var(--ink)}
.fqi[open] .fqx::after{transform:rotate(0)}
.fqi[open]::before{background:var(--state)}
.fqa{padding:2px 16px 16px 52px}
.note-cta{margin:6px 0 30px}
.note-cta::before{content:"";position:absolute;left:-30px;top:24px;width:28px;height:var(--st);background:var(--flow)}
.note-cta p{font:600 18px/1.45 var(--f-head);max-width:60ch}
.term{position:relative;display:flex;align-items:center}
.term span{display:inline-flex;align-items:center;min-height:36px;padding:4px 16px;border-radius:999px;background:var(--ink);color:var(--sheet);font:600 13px/1.3 var(--f-mono);margin-left:-44px}
@media (max-width:599px){
  .flow{padding-left:26px}
  .flow::before{left:6px}
  .fb::before,.fq::before{left:-20px;width:12px}
  .fb::after,.fq::after{left:-9px}
  .note-cta::before{left:-20px;width:18px}
  .term span{margin-left:-26px}
  .fq-l{padding-left:22px}
  .fq-l::before{left:10px}
  .fqi::before{left:-12px;width:10px}
  .gate-or{margin-left:-12px}
  .fqa{padding:2px 14px 14px}
  .fb-h h2{padding:8px 12px}
  .fn{padding:0 9px;font-size:13px}
}
.legal .prose{max-width:70ch}

/* ---------- related: dashed reference blocks ---------- */
.refs{padding:clamp(36px,5vw,64px) 0;border-top:var(--st) solid var(--rule);background:var(--sheet-2)}
.refs-t{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.02em;margin-bottom:22px}
:lang(bn) .refs-t{letter-spacing:0;line-height:1.45}
.refs-g{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:18px;container-type:inline-size}
.ref{position:relative;display:flex;flex-direction:column;gap:8px;height:100%;min-height:150px;padding:0 18px 18px;background:var(--sheet);border:2px dashed var(--ref);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}
.ref-n{align-self:flex-start;margin:0 0 6px -18px;padding:6px 12px;background:var(--ref);color:#fff;font-size:13px}
.ref strong{font:700 19px/1.3 var(--f-head)}
.ref-d{font-size:15.5px;line-height:1.55;color:var(--ink-2)}
.ref-a{margin-top:auto;align-self:flex-end;width:34px;height:var(--st);background:var(--flow);position:relative}
.ref-a::after{content:"";position:absolute;right:-2px;top:-4.5px;border-style:solid;border-width:5.5px 0 5.5px 9px;border-color:transparent transparent transparent var(--flow)}
.ref:hover{color:var(--ink);border-style:solid;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--shadow)}

/* ---------- footer ---------- */
.ft{background:var(--ink) radial-gradient(circle,#2B333B 1px,transparent 1.3px) 0 0/24px 24px;color:#D8DDD3;padding:clamp(36px,5vw,60px) 0 28px}
.ft a{color:#EEF1EA}
.ft-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:32px 48px}
.ft .brand{color:#fff}
.ft .mk{fill:var(--ink);stroke:#E7EAE2}
.ft .brand-t small{color:#AEB6AC}
.ft-disc{font-size:15.5px;line-height:1.65;margin:18px 0 0;max-width:52ch;color:#C9CFC4;padding:14px 16px;border:1.5px dashed #56606A}
:lang(bn) .ft-disc{line-height:1.8}
.ft-col h2{font:600 14px/1.3 var(--f-mono);color:#AEB6AC;margin:0 0 12px;padding-bottom:10px;border-bottom:1.5px solid #3A434C}
.ft-col ul{list-style:none;margin:0;padding:0}
.ft-col a{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font-size:16px}
.ft-col a:hover{color:var(--note)}
.ft-col .nn{flex:none;min-width:40px;padding:2px 4px;text-align:center;border:1.5px solid #56606A;font-size:12px;color:#AEB6AC}
.ft-end{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:36px;padding-top:20px;border-top:1.5px solid #3A434C;font-size:14px;color:#AEB6AC}
.age{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--flow);color:#fff;font-weight:700;font-size:15px}
@media (max-width:859px){.ft-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ft-brand{grid-column:1/-1}}
@media (max-width:479px){.ft-grid{grid-template-columns:minmax(0,1fr)}}

.nf{padding:64px 0}.nf .blk{max-width:640px}.nf h1{font-size:clamp(28px,4vw,44px);margin-bottom:12px}

/* motion: blocks settle in (never hidden) */
@media (prefers-reduced-motion:no-preference){
  .hero-copy,.blk-play{animation:drop .5s cubic-bezier(.2,.7,.2,1) both}
  .blk-play{animation-delay:.08s}
  .hh-link .gate{animation:pulse 2.6s ease-in-out 1s 2}
  @keyframes drop{from{transform:translateY(10px)}to{transform:none}}
  @keyframes pulse{50%{box-shadow:0 0 0 8px rgba(210,70,31,.18)}}
}
@media print{.hd,.side,.refs,.hh-link{display:none}.body{display:block}body{background:#fff}}
