.m-quote{--q-bg:var(--m-blue);--q-ink:#fff;--q-muted:rgba(255,255,255,.78);--q-accent:#fff;--q-rule:rgba(255,255,255,.35);position:relative;isolation:isolate;display:flex;flex-direction:column;gap:14px;aspect-ratio:4 / 5;padding:28px 24px 22px;overflow:hidden;border-radius:var(--m-r-lg);background:var(--q-bg);color:var(--q-ink)}.m-quote__frame{position:absolute;inset:0;z-index:-1;pointer-events:none}.m-quote__type{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:3px 10px 3px 8px;border:1px solid var(--q-rule);border-radius:var(--m-r-pill);color:var(--q-accent);font-size:var(--m-fs-xs);line-height:1.5}.m-quote__type .m-icon{width:15px;height:15px}.m-quote__text{flex:1;display:flex;flex-direction:column;justify-content:center;margin:0;font:700 1.375rem/1.55 var(--m-font-head);color:var(--q-ink);text-wrap:pretty}.m-quote__text::before{content:"“";display:block;height:.45em;margin-bottom:6px;color:var(--q-accent);font:700 3.5rem/1 Georgia,serif}.m-quote--long .m-quote__text{font-size:1.1875rem;line-height:1.6}.m-quote--xlong .m-quote__text{font-size:1.0625rem;line-height:1.65}.m-quote__by{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding-top:14px;border-top:1px solid var(--q-rule)}.m-quote__by img{grid-row:span 2;width:44px;height:44px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.2)}.m-quote__by:not(:has(img)){grid-template-columns:1fr}.m-quote__name{color:var(--q-ink);font-size:var(--m-fs-sm);line-height:1.45;font-weight:600}.m-quote__role{color:var(--q-muted);font-size:var(--m-fs-xs);line-height:1.45}.m-quote__link::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit}.m-quote__link:focus-visible{outline:none}.m-quote__link:focus-visible::after{outline:3px solid var(--m-focus);outline-offset:3px}.m-quote__brand{position:absolute;right:22px;top:30px;width:70px;height:12px;fill:var(--q-accent);opacity:.7}.m-quote--politics{--q-bg:#0D2747;--q-accent:#8FC2F7;--q-rule:rgba(143,194,247,.3)}.m-quote--politics .m-quote__frame{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 124' fill='none' stroke='%238FC2F7' stroke-linecap='round' stroke-width='7' stroke-dasharray='0 14' opacity='.28'%3E%3Cpath d='M50 120a70 70 0 0 1 140 0M36 120a84 84 0 0 1 168 0M22 120a98 98 0 0 1 196 0M8 120a112 112 0 0 1 224 0'/%3E%3C/svg%3E") right -96px top 24px / 250px auto no-repeat,linear-gradient(160deg,#123462,#0B2140 70%)}.m-quote--faith{--q-bg:#0E3A35;--q-ink:#F6EEDC;--q-muted:rgba(246,238,220,.75);--q-accent:#D8B567;--q-rule:rgba(216,181,103,.38)}.m-quote--faith .m-quote__frame{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23D8B567' stroke-width='.7' opacity='.22'%3E%3Cpath d='M20 6l4 10 10 4-10 4-4 10-4-10-10-4 10-4z'/%3E%3Crect x='10' y='10' width='20' height='20' transform='rotate(45 20 20)'/%3E%3C/svg%3E") 0 0 / 40px 40px,
    linear-gradient(#0E3A35, #0A2C28);
}
.m-quote--faith .m-quote__frame::after { content: ""; position: absolute; inset: 12px; border: 1.5px solid var(--q-rule); border-radius: 50% 50% 6px 6px / 22% 22% 6px 6px; background: linear-gradient(#0E3A35 0 0) padding-box; box-shadow: inset 0 0 0 5px #0E3A35, inset 0 0 0 6px var(--q-rule); }
.m-quote--faith .m-quote__type { align-self: center; margin-top: 12%; }
.m-quote--faith .m-quote__text { text-align: center; }
.m-quote--faith .m-quote__text::before { margin-inline: auto; }
.m-quote--faith .m-quote__by { justify-items: center; text-align: center; grid-template-columns: 1fr; border-top: 0; padding-inline: 8px; }
.m-quote--faith .m-quote__by img { display: none; }
.m-quote--faith .m-quote__brand { display: none; }
.m-quote--faith { padding-inline: 34px; padding-bottom: 30px; }

/* 3 · সাহিত্য — book-plate: paper, double rule, ink-blue ornaments */
.m-quote--literature { --q-bg: #F7F1E3; --q-ink: #2D2A25; --q-muted: #6E665A; --q-accent: #1D4F91; --q-rule: #D9CCB2; }
.m-quote--literature .m-quote__frame { background: radial-gradient(120% 80% at 50% 0%, #FBF7EE, #F1E8D4); }
.m-quote--literature .m-quote__frame::before { content: ""; position: absolute; inset: 10px; border: 1px solid #CDBF9F; outline: 1px solid #CDBF9F; outline-offset: -6px; }
.m-quote--literature .m-quote__frame::after { content: ""; position: absolute; left: 50%; bottom: 12px; width: 9px; height: 9px; border: 1px solid var(--q-accent); background: #F2EAD8; transform: translateX(-50%) rotate(45deg); }
.m-quote--literature .m-quote__text { font-family: var(--m-font-head); }
.m-quote--literature { padding: 34px 30px 40px; }

/* 4 · অনুপ্রেরণা — sunrise rays */
.m-quote--inspire { --q-bg: #F4A73B; --q-ink: #2A1606; --q-muted: rgba(42,22,6,.75); --q-accent: #6B2A08; --q-rule: rgba(107,42,8,.25); }
.m-quote--inspire .m-quote__frame {
  background:
    radial-gradient(circle at 50% 108%, #FFF1C9 0 16%, transparent 16.5%),
    repeating-conic-gradient(from -90deg at 50% 108%, rgba(255,241,201,.34) 0 4deg, transparent 4deg 12deg),
    linear-gradient(180deg, #F9C55B, #EE8A3C);
}

/* 5 · ইতিহাস — archival: sepia, perforated stamp edge, year watermark */
.m-quote--history { --q-bg: transparent; --q-ink: #3B2914; --q-muted: #6F5A3C; --q-accent: #8A4B1E; --q-rule: rgba(138,75,30,.3); border-radius: 0; padding: 34px 30px 30px; }
.m-quote--history .m-quote__frame {
  padding: 8px; background: linear-gradient(#E8DAB9, #DCC9A0);
  -webkit-mask: conic-gradient(#000 0 0) content-box, radial-gradient(farthest-side, #000 96%, #0000) 0 0 / 16px 16px round;
          mask: conic-gradient(#000 0 0) content-box, radial-gradient(farthest-side, #000 96%, #0000) 0 0 / 16px 16px round;
}
.m-quote--history .m-quote__frame::before { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(138,75,30,.3); }
.m-quote--history .m-quote__frame::after { content: attr(data-year); position: absolute; right: 26px; top: 22px; color: rgba(138,75,30,.14); font: 700 4.5rem/1 var(--m-font-head); }

/* 6 · খেলা — pitch: halfway line + centre circle */
.m-quote--sports { --q-bg: #11553A; --q-accent: #F3D34A; --q-rule: rgba(255,255,255,.25); }
.m-quote--sports .m-quote__frame {
  background:
    radial-gradient(circle at 100% 50%, transparent 0 88px, rgba(255,255,255,.14) 89px 91px, transparent 92px),
    linear-gradient(90deg, transparent calc(100% - 2px), rgba(255,255,255,.14) 0) 0 0 / 100% 100% no-repeat,
    repeating-linear-gradient(90deg, #11553A 0 44px, #136040 44px 88px);
}

/* 7 · মতামত — brand blue, oversized bracket mark */
.m-quote--opinion { --q-bg: #025AB2; --q-accent: #CFE3F8; --q-rule: rgba(255,255,255,.3); }
.m-quote--opinion .m-quote__frame { background: linear-gradient(150deg, #0A69C6, #024A93); }
.m-quote--opinion .m-quote__frame::before { content: ""; position: absolute; right: -40px; top: -40px; width: 200px; height: 200px; border: 18px solid rgba(255,255,255,.08); border-left: 0; border-bottom: 0; }

/* compact variant for rails */
.m-quote-rail { --m-rail-item: 78%; }
@media (min-width: 600px) { .m-quote-rail { --m-rail-item: 300px; } }
@media (min-width: 1024px) { .m-quote-rail { --m-rail-item: calc((100% - 3 * var(--m-gap)) / 4); } }

/* archive filter chips carry a swatch of their frame */
.m-qchip::before { content: ""; width: 12px; height: 12px; border-radius: 3px; background: var(--sw, var(--m-blue)); }

/* ---------- archive (/quote/) ---------- */
.m-qhead { padding-block: var(--m-s5); border-bottom: 1px solid var(--m-line); }
.m-qhead .m-chiprow { margin-top: var(--m-s4); }
.m-qgrid { display: grid; gap: var(--m-s5); margin: 0; padding: var(--m-s5) 0 0; list-style: none; }
@media (min-width: 600px)  { .m-qgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px)  { .m-qgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .m-qgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.m-qchip--politics { --sw: #0D2747; } .m-qchip--faith { --sw: #0E3A35; } .m-qchip--literature { --sw: #E9DFC8; }
.m-qchip--inspire { --sw: #F4A73B; } .m-qchip--history { --sw: #C9B48A; } .m-qchip--sports { --sw: #11553A; } .m-qchip--opinion { --sw: #025AB2; }

/* ---------- single quote ---------- */
.m-qsingle { display: grid; gap: var(--m-s6); padding-block: var(--m-s5) var(--m-s7); }
@media (min-width: 1024px) { .m-qsingle { grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: var(--m-s7); align-items: start; } }
.m-qsingle .m-quote { padding: 40px 34px 30px; }
.m-qsingle .m-quote__text { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.375rem); }
.m-qinfo { display: grid; gap: var(--m-s5); align-content: start; }
.m-qinfo__speaker { display: grid; grid-template-columns: 64px 1fr; gap: 2px 14px; align-items: center; }
.m-qinfo__speaker img { grid-row: span 2; width: 64px; height: 64px; border-radius: 50%; }
.m-qinfo__name { color: var(--m-ink); font: 700 1.25rem/1.4 var(--m-font-head); }
.m-qinfo__role { color: var(--m-muted); font-size: var(--m-fs-sm); }
.m-qinfo__context { color: var(--m-text); font-size: 1rem; line-height: 1.75; }
.m-qinfo__context b { color: var(--m-ink); font-weight: 600; }
.m-qactions { display: flex; flex-wrap: wrap; gap: 8px; }
.m-poll { display: grid; gap: 12px; padding: var(--m-s5); border: 1px solid var(--m-line); border-radius: var(--m-r-md); }
.m-poll__q { color: var(--m-ink); font: 700 1.0625rem/1.5 var(--m-font-head); }
.m-poll__opt { display: grid; gap: 6px; font-size: var(--m-fs-sm); }
.m-poll__row { display: flex; justify-content: space-between; color: var(--m-ink); }
.m-poll__bar { height: 8px; border-radius: 4px; background: var(--m-surface-2); overflow: hidden; }
.m-poll__bar i { display: block; height: 100%; border-radius: inherit; background: var(--m-blue); }
.m-poll__opt--no .m-poll__bar i { background: var(--m-faint); }
.m-poll__note { color: var(--m-muted); font-size: var(--m-fs-xs); }
.m-qarchive { padding-bottom: var(--m-s7); }
.m-qsingle__crumbs { padding-top: var(--m-s4); }
.m-quote__h1 { margin: 0; font: inherit; }

/* =====================================================================
   WordPress integration (theme port, owner D)
   ===================================================================== */
/* archive header (same look as archive.css, scoped so quotes need no other bundle) */
.m-qhead .m-archhead__inner { display: grid; gap: 10px; }
.m-qhead .m-archhead__inner > * { min-width: 0; }
.m-qhead .m-archhead__title { font: 700 clamp(1.875rem, 1.5rem + 1.6vw, 2.75rem)/1.25 var(--m-font-head); color: var(--m-ink); }
.m-qhead .m-archhead__desc { max-width: 44rem; color: var(--m-muted); font-size: var(--m-fs-ui); line-height: 1.7; }
.m-chiprow { display: flex; gap: 8px; margin: 0 calc(-1 * var(--m-gutter)); padding: 4px var(--m-gutter); list-style: none; overflow-x: auto; scrollbar-width: none; }
.m-chiprow::-webkit-scrollbar { display: none; }
@media (min-width: 1024px) { .m-chiprow { flex-wrap: wrap; margin: 0; padding: 0; overflow: visible; } }
.m-qchip[aria-current]::before { box-shadow: 0 0 0 1px rgba(255,255,255,.6); }
.m-qarchive .m-pager { margin-top: var(--m-s5); }
.m-qgrid > li { min-width: 0; }
.m-quote__text p, .m-quote__h1 { margin: 0; }
.m-quote__by img { aspect-ratio: 1; }
.m-quote-rail > li { min-width: 0; }
.m-quote-single .m-qsingle__crumbs { padding-top: var(--m-s4); }
.m-qinfo__speaker--nophoto { grid-template-columns: 1fr; }
.m-qinfo__speaker img { object-fit: cover; }
.m-qactions .m-btn[aria-busy="true"] { cursor: progress; opacity: .8; }
.m-qactions .m-btn.is-error { background: var(--m-red); }
.m-qcomments .m-comments__title { margin-bottom: var(--m-s4); color: var(--m-ink); font: 700 1.25rem/1.4 var(--m-font-head); }

/* poll form */
.m-poll__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; padding: 0; border: 0; }
.m-poll__choice { position: relative; }
.m-poll__choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.m-poll__choice span { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--m-line-strong); border-radius: var(--m-r-pill); color: var(--m-ink); font-size: var(--m-fs-sm); text-align: center; }
.m-poll__choice input:checked + span { border-color: var(--m-blue); background: var(--m-blue-50); color: var(--m-blue); font-weight: 600; }
.m-poll__choice input:focus-visible + span { outline: 3px solid var(--m-focus); outline-offset: 2px; }
.m-poll__fields { display: grid; gap: 10px; }
@media (min-width: 600px) { .m-poll__fields { grid-template-columns: 1fr 1fr; } .m-poll__field--wide { grid-column: 1 / -1; } }
.m-poll__field { display: grid; gap: 4px; min-width: 0; color: var(--m-ink); font-size: var(--m-fs-sm); }
.m-poll__field small { color: var(--m-muted); font-size: var(--m-fs-xs); }
.m-poll__checks { display: grid; gap: 8px; }
.m-poll .m-check { display: flex; align-items: flex-start; gap: 10px; color: var(--m-text); font-size: var(--m-fs-sm); line-height: 1.6; cursor: pointer; }
.m-poll .m-check input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--m-blue); }
.m-poll > .m-btn { justify-self: start; }
.m-poll__privacy { color: var(--m-muted); font-size: var(--m-fs-xs); line-height: 1.6; }
.m-poll__msg:empty { display: none; }
.m-poll__msg { padding: 10px 12px; border-radius: var(--m-r-sm); background: var(--m-blue-50); color: var(--m-ink); font-size: var(--m-fs-sm); }
.m-poll__msg.is-error { background: var(--m-red-50); color: var(--m-red); }
.m-poll.is-voted .m-poll__choices, .m-poll.is-voted .m-poll__fields, .m-poll.is-voted .m-poll__checks, .m-poll.is-voted > .m-btn, .m-poll.is-voted .m-poll__privacy { display: none; }
.m-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* [meeha_photocards] browse */
.m-qbrowse { display: grid; gap: var(--m-s4); }
.m-qbrowse__search { display: flex; gap: 8px; }
.m-qbrowse__search .m-input { flex: 1; min-width: 0; }
.m-qbrowse .m-qgrid { padding-top: 0; }
.m-qbrowse__empty { padding-block: var(--m-s6); color: var(--m-muted); text-align: center; }
.m-qone { max-width: 420px; }