.news-card-open{overflow:hidden}
.news-card-dialog{--nc-maroon:#8f1a00;--nc-vh:100vh;box-sizing:border-box;position:fixed;inset:auto 0 auto 0;top:50%;margin:0 auto;width:min(500px,calc(100vw - 24px));max-height:calc(var(--nc-vh) - 24px);border:0;border-radius:18px;padding:0;background:#fff;color:#252b33;font-family:Shurjo,serif;box-shadow:0 30px 80px #0006,0 0 0 1px #ffffff1a;overflow:hidden}
.news-card-dialog[open]{display:flex;flex-direction:column}
.news-card-dialog>header,.news-card-dialog>footer,.news-card-dialog::before{flex-shrink:0}
.news-card-dialog::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--nc-maroon),#d2452a 50%,var(--nc-maroon));z-index:2}
.news-card-dialog[open]{animation:nc-pop .28s cubic-bezier(.2,.9,.3,1.2)}
.news-card-dialog::backdrop{background:#10131acc;backdrop-filter:blur(5px)}
.news-card-dialog header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px 10px 18px;border-bottom:1px solid #f0f1f4}
.news-card-dialog h2{display:flex;align-items:center;gap:9px;margin:0;font-size:17px;font-weight:700;color:#2f3640}
.news-card-dialog h2 svg{width:22px;height:22px;flex-shrink:0;color:var(--nc-maroon)}
.news-card-dialog [data-close]{display:grid;place-items:center;border:0;width:34px;height:34px;padding:0;background:none;color:#9aa1ac;cursor:pointer;border-radius:50%;transition:background .15s,color .15s,transform .2s}
.news-card-dialog [data-close] svg{width:20px;height:20px}
.news-card-dialog [data-close]:hover{background:#f3f4f7;color:#3b424d;transform:rotate(90deg)}
.news-card-dialog [data-close]:focus{outline:none}.news-card-dialog [data-close]:focus-visible{box-shadow:inset 0 0 0 2px #c5cad3}
.news-card-body{flex:1 1 auto;min-height:0;overflow:auto;padding:16px 18px 14px}
.news-card-stage{display:flex;justify-content:center;align-items:center;min-height:200px}
.news-card-stage:empty{min-height:0;height:min(420px,calc(var(--nc-vh) - 220px));border-radius:6px;background:linear-gradient(100deg,#eef0f3 30%,#f8f9fb 50%,#eef0f3 70%) 0 0/250% 100%;animation:nc-skeleton 1.2s linear infinite}
.news-card-frame{position:relative;max-width:100%;overflow:hidden;border:2px solid #2f3337;border-radius:4px;line-height:0;box-shadow:0 10px 24px #0000001f;animation:nc-reveal .35s ease-out}
.news-card-frame canvas{display:block;width:auto;height:auto;max-width:100%;max-height:min(460px,calc(var(--nc-vh) - 190px))}
/* Light sweep across the card: once on reveal, then every few seconds. */
.news-card-frame::after{content:'';position:absolute;inset:-10% auto -10% 0;width:45%;background:linear-gradient(100deg,transparent,#ffffff14 30%,#ffffff8c 50%,#ffffff14 70%,transparent);transform:translateX(-160%) skewX(-12deg);pointer-events:none;animation:nc-sweep 5s ease-in-out .35s infinite}
.news-card-dialog [role=status]{font-size:14px;color:#6b7280;margin:10px 0 0;text-align:center}
.news-card-dialog [role=status]:empty{display:none}
.news-card-dialog footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 14px;padding:0 18px 16px}
.news-card-size{display:flex;align-items:center;gap:10px;flex:1 1 100%;margin:0;padding:8px 12px;border:1px solid #eceef2;border-radius:10px;background:#fafbfc;color:#5b616c;font-size:14px;cursor:pointer}
.nc-size-label{white-space:nowrap;margin-right:2px}
.nc-size-a{font-size:13px;line-height:1;color:#8a909b}.nc-size-big{font-size:21px;color:#3f444c}
.news-card-size input{flex:1;min-width:0;height:22px;margin:0;accent-color:var(--nc-maroon);cursor:pointer}
.news-card-size input:disabled{cursor:wait;opacity:.5}
.news-card-dialog [data-download]{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;border:0;border-radius:10px;padding:8px 22px;background:#3f3f42;color:#fff;font:700 16px Shurjo,serif;cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:background .2s,transform .15s}
.news-card-dialog [data-download] svg{width:19px;height:19px}
.news-card-dialog [data-download]::after{content:'';position:absolute;inset:0 auto 0 0;width:40%;background:linear-gradient(100deg,transparent,#ffffff59,transparent);transform:translateX(-180%) skewX(-15deg)}
.news-card-dialog [data-download]:not(:disabled)::after{animation:nc-btn-sweep 5s ease-in-out .9s infinite}
.news-card-dialog [data-download]:hover:not(:disabled){background:var(--nc-maroon);transform:translateY(-1px)}
.news-card-dialog [data-download]:active:not(:disabled){transform:translateY(0)}
.news-card-dialog button:disabled{opacity:.45;cursor:wait}
.news-card-previews{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px}.news-card-previews[hidden]{display:none}
.news-card-previews button{min-width:0;min-height:72px;display:grid;place-items:center;padding:4px;background:#f6f7f9;border:2px solid transparent;border-radius:7px;cursor:pointer;font:13px Shurjo,serif;color:#555}
.news-card-previews button[aria-pressed=true]{border-color:var(--nc-maroon);background:#fff4f0}.news-card-previews canvas{display:block;width:100%;height:auto;max-height:100px;object-fit:contain}
.news-card-previews button:focus-visible{outline:2px solid var(--nc-maroon);outline-offset:2px}
@keyframes nc-pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes nc-reveal{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes nc-skeleton{to{background-position:-250% 0}}
@keyframes nc-sweep{0%{transform:translateX(-160%) skewX(-12deg)}22%,100%{transform:translateX(330%) skewX(-12deg)}}
@keyframes nc-btn-sweep{0%{transform:translateX(-180%) skewX(-15deg)}18%,100%{transform:translateX(320%) skewX(-15deg)}}
@media(max-width:600px){.news-card-dialog{border-radius:16px}.news-card-body{padding:12px}.news-card-dialog footer{padding:0 12px 12px}.news-card-dialog [data-download]{width:100%;min-height:46px}.news-card-previews{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.news-card-dialog[open],.news-card-frame,.news-card-stage:empty,.news-card-frame::after,.news-card-dialog [data-download]::after{animation:none!important}.news-card-frame::after,.news-card-dialog [data-download]::after{display:none}}
