/* qldt2.info — "Diều sáo" : a kite workshop on the Red River dike at dusk.
   Dó-paper grounds, bamboo spars with lashed joints, taut strings, kite-tail knots. */
:root{
 --paper:#F4EFE6;--paper-2:#EAE2D3;--card:#FBF8F2;
 --ink:#1C2328;--ink-2:#4A5158;--line:rgba(28,35,40,.14);--line-2:rgba(28,35,40,.3);
 --bamboo:#B38D48;--bamboo-l:#DCC596;--bamboo-d:#7A5A22;
 --sail:#C9471F;--sail-d:#A83A17;--sail-l:#F2A07A;
 --dusk:#161C34;--dusk-2:#232B52;--dusk-3:#3C3F6E;--haze:#E7A274;
 --link:#2B3A7C;--focus:#2B3A7C;
 --fd:"Phudu","Arial Narrow",system-ui,sans-serif;--fb:"Alegreya Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
 --font-head:var(--fd);--font-body:var(--fb);
 --primary:var(--sail);--primary-contrast:#fff;--accent:var(--haze);--surface:var(--card);--surface-2:var(--paper-2);--border:var(--line);--text:var(--ink);--heading:var(--ink);--muted:var(--ink-2);
 --wrap:1280px;--gut:clamp(16px,4vw,40px);
 --pole:linear-gradient(180deg,#E3CD9B 0,#C19C57 38%,#A27A36 70%,#80602A 100%);
 --nodes:repeating-linear-gradient(90deg,transparent 0 172px,rgba(84,56,18,.55) 172px 174px,rgba(255,240,205,.5) 174px 175px,transparent 175px 180px)
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;min-width:320px;overflow-x:hidden;color:var(--ink);font:400 17.5px/1.65 var(--fb);
 background:var(--paper);
 background-image:radial-gradient(circle at 30% 40%,rgba(179,141,72,.09) 0 .8px,transparent 1.4px),radial-gradient(circle at 60% 70%,rgba(28,35,40,.05) 0 .7px,transparent 1.3px);
 background-size:23px 29px,31px 37px}
@media (min-width:720px){body{font-size:18px}}
img,svg{max-width:100%}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--sail-d)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:12px;top:-120px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;font-weight:700}
.skip:focus{top:10px;color:var(--paper)}
h1,h2,h3{font-family:var(--fd);color:var(--ink);text-wrap:balance}

/* ---------- kite svg ---------- */
.kite-svg .k-l{fill:var(--sail)}.kite-svg .k-r{fill:var(--sail-d)}
.kite-svg .k-sp{fill:none;stroke:var(--bamboo-l);stroke-width:3.2;stroke-linecap:round}

/* ---------- header: brand bar + bamboo pole with hanging tags ---------- */
.hd{position:sticky;top:0;z-index:40;background:var(--paper)}
.hd-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:66px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-height:44px}
.brand:hover{color:var(--ink)}
.brand-mark{width:30px;height:37px;flex:none;display:block}
.brand-mark svg{display:block;width:100%;height:100%}
.brand-txt{display:flex;flex-direction:column;line-height:1}
.brand-txt b{font:800 25px/1 var(--fd);letter-spacing:.02em}
.brand-txt small{font:600 11.5px/1.2 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--bamboo-d);margin-top:4px}
.hd-tools{display:flex;align-items:center;gap:8px}
.lang{display:flex;gap:4px}
.lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;font:700 15px/1 var(--fd);letter-spacing:.06em;color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1px var(--line-2)}
.lang a[aria-current]{background:var(--ink);color:var(--paper);box-shadow:none}
.lang a:hover{box-shadow:inset 0 0 0 1.5px var(--sail)}
.hd-cta{display:none}
.menu-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:0 12px 0 10px;border:0;background:var(--dusk);color:var(--paper);font:700 15px/1 var(--fd);letter-spacing:.04em;cursor:pointer;
 clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);padding-right:18px}
.menu-ic{position:relative;width:18px;height:14px;display:block}
.menu-ic i{position:absolute;left:0;right:0;height:2px;background:currentColor;transition:transform .2s}
.menu-ic i:first-child{top:3px}.menu-ic i:last-child{bottom:3px}
.menu-btn[aria-expanded=true] .menu-ic i:first-child{transform:translateY(3px) rotate(45deg)}
.menu-btn[aria-expanded=true] .menu-ic i:last-child{transform:translateY(-3px) rotate(-45deg)}
@media (max-width:399px){.brand-txt small{display:none}.menu-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.menu-btn{padding:0 18px 0 13px}}

.spar{position:relative}
.spar::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--nodes),var(--pole);box-shadow:0 2px 0 rgba(28,35,40,.08)}
.spar ul{list-style:none;margin:0;padding:0}
@media (max-width:979.98px){
 .spar{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper-2);box-shadow:0 18px 40px -18px rgba(22,28,52,.45);max-height:calc(100vh - 66px);overflow:auto}
 .hd.is-open .spar{display:block}
 .hd::after{content:"";position:absolute;left:0;right:0;top:100%;height:6px;background:var(--nodes),var(--pole);pointer-events:none;z-index:1}
 .spar ul{padding:18px 0 22px;display:grid;gap:2px}
 .spar li{position:relative;padding-left:26px}
 .spar li::before{content:"";position:absolute;left:8px;top:0;bottom:0;border-left:1.5px solid var(--line-2)}
 .spar li::after{content:"";position:absolute;left:3px;top:50%;width:12px;height:15px;margin-top:-8px;background:var(--bamboo);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
 .spar a{display:flex;align-items:center;min-height:50px;padding:6px 10px;color:var(--ink);text-decoration:none;font:600 21px/1.2 var(--fd);border-bottom:1px solid var(--line)}
 .spar a[aria-current]{color:var(--sail-d)}
 .spar li:has(a[aria-current])::after{background:var(--sail)}
}
@media (min-width:980px){
 .hd{position:relative}
 .hd-bar{min-height:78px}
 .brand-mark{width:36px;height:45px}.brand-txt b{font-size:29px}
 .menu-btn{display:none}
 .hd-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 26px 0 16px;background:var(--sail);color:#fff;text-decoration:none;font:700 16px/1 var(--fd);letter-spacing:.02em;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}
 .hd-cta:hover{background:var(--sail-d);color:#fff}
 .spar{padding-bottom:16px}
 .spar ul{display:flex;flex-wrap:wrap;gap:10px 12px;padding-top:18px}
 .spar li{position:relative}
 .spar li::before{content:"";position:absolute;left:50%;top:-18px;height:18px;border-left:1.5px solid var(--ink);opacity:.55}
 .spar li::after{content:"";position:absolute;left:calc(50% - 4px);top:-19px;width:9px;height:6px;background:repeating-linear-gradient(90deg,#6B4B1A 0 1.5px,#E3CD9B 1.5px 3px)}
 .spar a{display:block;padding:10px 16px 15px;background:var(--paper-2);color:var(--ink);text-decoration:none;font:600 17px/1.2 var(--fd);letter-spacing:.01em;
  clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 7px),0 100%);transform-origin:50% -18px;transition:transform .25s,background .2s}
 .spar li:nth-child(odd) a{transform:rotate(-.8deg)}.spar li:nth-child(even) a{transform:rotate(.7deg)}
 .spar a:hover{background:var(--bamboo-l);transform:none;color:var(--ink)}
 .spar a[aria-current]{background:var(--dusk);color:var(--paper)}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:10px 34px 10px 22px;font:700 18px/1.15 var(--fd);letter-spacing:.02em;text-decoration:none;text-align:center;border:0;cursor:pointer}
.btn-sail{background:var(--sail);color:#fff;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%)}
.btn-sail:hover{background:var(--sail-d);color:#fff}
.btn-line{color:var(--paper);box-shadow:inset 0 0 0 1.5px rgba(244,239,230,.55);padding-right:22px}
.btn-line:hover{color:var(--paper);box-shadow:inset 0 0 0 2px var(--haze)}
.btn-sm{min-height:46px;font-size:16px;padding:8px 30px 8px 16px}

/* ---------- home: dusk sky over the dike ---------- */
.sky{--focus:#F6C09E;position:relative;overflow:hidden;color:#EDE7EE;
 background:
  radial-gradient(1.2px 1.2px at 8% 12%,rgba(255,255,255,.8),transparent),radial-gradient(1px 1px at 22% 6%,rgba(255,255,255,.6),transparent),
  radial-gradient(1.4px 1.4px at 41% 15%,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 63% 5%,rgba(255,255,255,.6),transparent),
  radial-gradient(1.2px 1.2px at 88% 20%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 76% 10%,rgba(255,255,255,.7),transparent),
  radial-gradient(120% 60% at 20% 100%,rgba(231,162,116,.55),transparent 60%),
  linear-gradient(180deg,#121832 0,#1C2448 26%,#2E3160 50%,#5B4A74 72%,#9C6479 86%,#D38B6F 100%)}
.sky-grid{position:relative;z-index:1;display:grid;gap:34px;padding-top:clamp(26px,5vw,56px);padding-bottom:34px}
.sky-copy{max-width:640px;min-width:0}
.badge{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:7px 12px 7px 10px;font:600 14.5px/1.3 var(--fb);letter-spacing:.03em;color:#F4E6D2;box-shadow:inset 0 0 0 1px rgba(244,230,210,.35)}
.badge::before{content:"";width:10px;height:13px;flex:none;background:var(--haze);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.sky h1{color:#FBF5EC;font-weight:800;font-size:clamp(35px,5.4vw,62px);line-height:1.1;letter-spacing:-.005em;margin:0 0 18px}
.sky .lead p{margin:0 0 12px;font-size:18px;line-height:1.65;color:#DCD5E2}
.sky .lead p:first-child{font-size:19.5px;color:#EEE8F0}
.sky .lead strong{color:#fff}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 22px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:7px 12px;font-size:15px;line-height:1.35;color:#EFE6DA;background:rgba(18,22,44,.35);border-left:3px solid var(--bamboo)}
.dike{position:relative;height:58px;margin-top:-6px;background:linear-gradient(180deg,#2A2140 0,#1D1A30 100%);clip-path:polygon(0 46%,12% 38%,27% 44%,43% 30%,58% 40%,74% 26%,88% 36%,100% 28%,100% 100%,0 100%)}
.dike::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:repeating-linear-gradient(180deg,rgba(231,162,116,.28) 0 1px,transparent 1px 6px);opacity:.7}

/* the game hangs in a lashed bamboo frame; a kite flies from its top edge */
.field{position:relative;min-width:0;padding:9px;background:var(--nodes),linear-gradient(135deg,#D8BC7D,#A98140 48%,#CDAA66);
 box-shadow:0 40px 70px -30px rgba(8,10,28,.75)}
.field::after{content:"";position:absolute;inset:-4px;pointer-events:none;
 background:repeating-linear-gradient(45deg,#5E4217 0 2px,#E4CE9C 2px 4px) 0 0/20px 20px no-repeat,repeating-linear-gradient(-45deg,#5E4217 0 2px,#E4CE9C 2px 4px) 100% 0/20px 20px no-repeat,
  repeating-linear-gradient(-45deg,#5E4217 0 2px,#E4CE9C 2px 4px) 0 100%/20px 20px no-repeat,repeating-linear-gradient(45deg,#5E4217 0 2px,#E4CE9C 2px 4px) 100% 100%/20px 20px no-repeat}
.field-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#10152B;color:var(--bamboo-l);font:600 14px/1.2 var(--fd);letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid rgba(220,197,150,.18)}
.fh-b{display:inline-flex;align-items:center;justify-content:center;width:34px;height:40px;background:var(--sail);color:#fff;font:700 12px/1 var(--fd);letter-spacing:0;clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%);padding-top:2px}
.field-body{background:#141A31;container:field/inline-size}
.fly{display:none}
@media (min-width:720px){
 .sky-grid{padding-bottom:40px}
}
@media (min-width:1100px){
 .sky-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start;padding-top:64px}
 .sky-copy{padding-top:12px;position:sticky;top:24px}
 .field{margin-top:150px}
 .fly{display:block;position:absolute;right:36px;bottom:100%;width:118px;height:162px;pointer-events:none;transform-origin:92% 100%}
 .fly svg{display:block;width:100%;height:100%;overflow:visible}
}
.fly .str{fill:none;stroke:rgba(244,239,230,.6);stroke-width:1.2}
.fly .tl{fill:none;stroke:var(--haze);stroke-width:1.6}
.fly .bw{fill:var(--haze)}
@media (prefers-reduced-motion:no-preference){
 .fly{animation:sway 6s ease-in-out infinite alternate}
 @keyframes sway{from{transform:rotate(-2.2deg)}to{transform:rotate(2deg)}}
 .fly .tl{animation:flick 2.4s ease-in-out infinite alternate}
 @keyframes flick{from{transform:translateX(-1.5px)}to{transform:translateX(2px)}}
}

/* ---------- inner page head ---------- */
.head{position:relative;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--line)}
.head .wrap{position:relative;z-index:1;padding-top:clamp(22px,4vw,44px);padding-bottom:clamp(30px,5vw,56px)}
.head-frame{position:absolute;right:-30px;top:50%;height:150%;width:auto;transform:translateY(-50%) rotate(-10deg);fill:none;stroke:var(--bamboo);stroke-width:1.6;opacity:.55;display:none}
.head-frame path{vector-effect:non-scaling-stroke}
@media (min-width:1100px){.head-frame{display:block;right:5%;height:125%}}
.crumbs ol{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;font-size:15.5px;color:var(--ink-2)}
.crumbs li{display:inline-flex;align-items:center;gap:12px}
.crumbs li+li::before{content:"";width:7px;height:9px;background:var(--bamboo);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--link)}
.crumbs span{display:inline-flex;align-items:center;min-height:44px}
.head h1{font-weight:800;font-size:clamp(33px,4.6vw,58px);line-height:1.1;letter-spacing:-.005em;margin:0 0 18px;max-width:22ch}
.head .lead{max-width:64ch}
.head .lead p{margin:0 0 12px;font-size:19px;line-height:1.65;color:#343B41}
.nf .head{min-height:52vh}

/* ---------- body: kite tail article + reel aside ---------- */
.body-grid{display:grid;gap:28px;padding-top:36px;padding-bottom:64px}
.reel{display:contents}
.toc{order:-1}
.tag-card{order:2}
@media (min-width:1100px){
 .body-grid{grid-template-columns:minmax(0,1fr) 300px;gap:56px;padding-top:56px;padding-bottom:88px}
 .reel{display:flex;flex-direction:column;gap:22px;position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow:auto;padding:4px}
}
.tail{position:relative;min-width:0;max-width:74ch;padding-left:32px;counter-reset:k}
.tail::before{content:"";position:absolute;left:10px;top:8px;bottom:0;border-left:1.5px solid var(--line-2)}
.tail::after{content:"";position:absolute;left:4px;bottom:-4px;width:13px;height:9px;background:var(--bamboo);clip-path:polygon(0 0,50% 40%,100% 0,100% 100%,50% 60%,0 100%)}
@media (min-width:720px){.tail{padding-left:58px}.tail::before{left:18px}.tail::after{left:11px}}
.tail>:first-child{margin-top:0}
.knot{position:relative;counter-increment:k}
.knot::before{content:counter(k,decimal-leading-zero);position:absolute;left:-35px;top:.1em;width:26px;height:32px;display:flex;align-items:center;justify-content:center;padding-bottom:3px;
 background:var(--sail);color:#fff;font:700 10.5px/1 var(--fd);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
@media (min-width:720px){.knot::before{left:-55px;width:32px;height:40px;font-size:12px}}
.tail h2{font-weight:700;font-size:clamp(26px,2.9vw,36px);line-height:1.18;margin:52px 0 14px;scroll-margin-top:90px}
.knot>h2{margin-top:0}
.sec{margin-top:52px}
.tail h3{font-weight:600;font-size:22px;line-height:1.25;margin:28px 0 8px}
.tail p{margin:0 0 16px}
.tail strong{font-weight:700;color:#12181C}
.tail ul{list-style:none;margin:0 0 18px;padding:0}
.tail ul>li{position:relative;padding-left:24px;margin-bottom:9px}
.tail ul>li::before{content:"";position:absolute;left:3px;top:.52em;width:9px;height:11px;background:var(--bamboo);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.tail ol{margin:0 0 18px;padding-left:28px}
.tail ol>li{margin-bottom:9px;padding-left:4px}
.tail ol>li::marker{font:700 17px var(--fd);color:var(--sail-d)}
.intro-rest p{font-size:1.05em}
.tail table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse;margin:8px 0 22px;font-size:16px;line-height:1.45;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.tail th{background:var(--dusk);color:#F1ECE3;font:600 15px/1.3 var(--fd);letter-spacing:.02em;text-align:left;padding:12px 14px;white-space:nowrap}
.tail td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:top;min-width:130px}
@media (min-width:720px){.tail table{display:table;width:100%}}
.tail tr:nth-child(even) td{background:rgba(234,226,211,.45)}
.tail blockquote{margin:0 0 18px;padding:12px 18px;border-left:3px solid var(--bamboo);background:var(--card)}

/* faq */
.faq{margin-top:56px}
.faq-list{border-top:1.5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line-2)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:12px 2px;cursor:pointer;list-style:none;font:700 18.5px/1.4 var(--fb);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--sail-d)}
.fq{flex:none;width:18px;height:22px;position:relative}
.fq::before,.fq::after{content:"";position:absolute;inset:0;background:var(--ink);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.fq::after{inset:3px 3px 4px;background:var(--paper)}
.faq details[open] .fq::before{background:var(--sail)}.faq details[open] .fq::after{display:none}
@media (prefers-reduced-motion:no-preference){.fq{transition:transform .25s}.faq details[open] .fq{transform:rotate(180deg)}}
.fa{padding:0 2px 14px;color:#2B3237}
.fa p:last-child{margin-bottom:6px}

/* launch cta */
.launch{--focus:#F6C09E;position:relative;margin-top:56px;padding:28px 26px 26px;background:linear-gradient(160deg,var(--dusk) 0,var(--dusk-2) 60%,#4A3F66 100%);color:#EEE8F0;overflow:hidden}
.launch::before{content:"";position:absolute;right:-40px;top:-30px;width:190px;height:150px;border-top:1.2px solid rgba(244,239,230,.4);border-radius:50%;transform:rotate(-18deg)}
.launch::after{content:"";position:absolute;right:26px;top:18px;width:26px;height:32px;background:var(--sail);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.launch p{position:relative;margin:0 0 18px;padding-right:44px;font:600 21px/1.4 var(--fd);color:#FBF5EC;max-width:40ch}

/* reel: toc + demo tag */
.toc{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);position:relative}
.toc::before{content:"";display:block;height:6px;background:var(--nodes),var(--pole)}
.toc summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:54px;padding:6px 16px;cursor:pointer;list-style:none;font:700 15px/1.2 var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--bamboo-d)}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"";width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px)}
.toc[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.toc ol{list-style:none;margin:0;padding:0 10px 12px}
.toc a{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:9px 6px;color:var(--ink-2);text-decoration:none;font-size:15.5px;line-height:1.35;border-top:1px dashed var(--line)}
.toc li:first-child a{border-top:0}
.toc a:hover{color:var(--ink)}
.tk{flex:none;width:22px;height:27px;display:inline-flex;align-items:center;justify-content:center;padding-bottom:2px;font:700 10px/1 var(--fd);color:var(--bamboo-d);box-shadow:none;background:var(--paper-2);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%);margin-top:-3px}
.toc a[aria-current]{color:var(--ink);font-weight:700}
.toc a[aria-current] .tk{background:var(--sail);color:#fff}
@media (min-width:1100px){.toc summary::after{display:none}.toc summary{cursor:default}}
.tag-card{position:relative;padding:34px 20px 22px;background:var(--dusk);color:#DCD5E2;clip-path:polygon(16px 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%,0 16px)}
.tag-hole{position:absolute;left:50%;top:10px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 3px var(--bamboo)}
.tag-card strong{display:block;font:700 21px/1.2 var(--fd);color:#FBF5EC;margin-bottom:6px}
.tag-card p{margin:0 0 16px;font-size:15.5px;line-height:1.55}
.tag-card{--focus:#F6C09E}

/* ---------- related: a flock of kites ---------- */
.flock{position:relative;background:var(--paper-2);padding:58px 0 64px}
.flock::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--nodes),var(--pole)}
.flock-t{font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.15;margin:0 0 26px}
.flock-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.kite-card{position:relative;display:flex;flex-direction:column;gap:8px;height:100%;min-height:196px;padding:22px 20px 56px;background:var(--card);color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:transform .25s,box-shadow .25s}
.kite-card::before{content:"";position:absolute;right:18px;top:16px;width:22px;height:28px;background:var(--sail);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%);transition:transform .3s}
.kite-card::after{content:"";position:absolute;right:28px;top:43px;width:30px;height:34px;border-left:1.2px solid var(--line-2);border-bottom:1.2px solid var(--line-2);border-bottom-left-radius:28px}
.kite-card:hover{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--bamboo),0 18px 30px -22px rgba(22,28,52,.5)}
.kc-n{font:700 14px/1 var(--fd);color:var(--bamboo-d);letter-spacing:.06em}
.kite-card strong{font:700 21px/1.22 var(--fd);padding-right:44px}
.kc-d{font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.kc-a{position:absolute;left:20px;bottom:22px;width:44px;height:2px;background:var(--sail);transition:width .25s}
.kc-a::after{content:"";position:absolute;right:0;top:-4px;width:9px;height:9px;border-top:2px solid var(--sail);border-right:2px solid var(--sail);transform:rotate(45deg)}
@media (prefers-reduced-motion:no-preference){.kite-card:hover{transform:translateY(-3px)}.kite-card:hover::before{transform:translateY(-4px) rotate(-8deg)}.kite-card:hover .kc-a{width:64px}}

/* ---------- footer: night over the dike ---------- */
.ft{--focus:#F6C09E;position:relative;color:#CFCAD8;background:linear-gradient(var(--dusk),var(--dusk)) 0 40px/100% calc(100% - 40px) no-repeat}
body:has(.flock) .ft{background-color:var(--paper-2)}
.ft-dike{height:41px;background:var(--dusk);clip-path:polygon(0 58%,11% 44%,26% 52%,41% 30%,57% 46%,72% 26%,86% 40%,100% 24%,100% 100%,0 100%)}
.ft .wrap{padding-top:28px;padding-bottom:28px}
.ft-grid{display:grid;gap:30px}
@media (min-width:760px){.ft-grid{grid-template-columns:1.5fr 1fr 1fr;gap:40px}}
.ft .brand{color:#FBF5EC}
.ft .brand-txt small{color:var(--bamboo-l)}
.ft-disc{margin:14px 0 0;font-size:15.5px;line-height:1.6;max-width:52ch}
.ft h2{margin:0 0 8px;font:700 14px/1.2 var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--bamboo-l)}
.ft ul{list-style:none;margin:0;padding:0}
.ft ul a{display:inline-flex;align-items:center;min-height:44px;color:#EDE7EE;text-decoration:none;font-size:16.5px}
.ft ul a:hover{color:var(--sail-l);text-decoration:underline}
.ft-base{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:26px;padding-top:18px;border-top:1px solid rgba(220,197,150,.2);font-size:15px}
.age{display:inline-flex;align-items:center;justify-content:center;width:40px;height:48px;padding-bottom:4px;background:var(--sail);color:#fff;font:700 14px/1 var(--fd);clip-path:polygon(50% 0,100% 36%,50% 100%,0 36%)}
.ft-lang{margin-left:auto}
.ft .lang a{color:#EDE7EE;box-shadow:inset 0 0 0 1px rgba(237,231,238,.35)}
.ft .lang a[aria-current]{background:#EDE7EE;color:var(--dusk)}

@media print{.hd,.ft,.reel,.flock,.field{display:none}}
