/* Cadets Academy — "In the news" homepage section and story reader. Data: /data/news-feed.json (written by Panel › Website › News & media). */
.cnf,.cnf-reader,.cnf-zoom{--cnf-gold:var(--gold,oklch(78% .152 62));--cnf-ink:oklch(98% .005 100);--cnf-dim:oklch(88% .02 100/.78);--cnf-line:oklch(100% 0 0/.12);}
.cnf{position:relative;overflow:hidden;color:var(--cnf-ink);font-family:var(--font-sans,"IBM Plex Sans",system-ui,sans-serif);
  background:var(--pattern-topo,none),var(--gradient-command,linear-gradient(140deg,#1d2a12,#141b22 55%,#2b3a14));padding:clamp(3.5rem,7vw,6rem) 0}
.cnf::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--gradient-tricolour,linear-gradient(90deg,#f0a43a 33.3%,#fff 33.3% 66.6%,#2f7d4f 66.6%))}
.cnf::after{content:"";position:absolute;right:-12rem;top:-10rem;width:34rem;height:34rem;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,oklch(78% .152 62/.16),transparent 65%)}
.cnf *,.cnf-reader *{box-sizing:border-box}
.cnf-wrap{position:relative;z-index:1;max-width:80rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.cnf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:clamp(1.75rem,4vw,2.75rem)}
.cnf-eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 .75rem;font:600 .72rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.18em;text-transform:uppercase;color:var(--cnf-gold)}
.cnf-eyebrow::before{content:"";width:1.75rem;height:1px;background:currentColor}
.cnf-live{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--signal,#f26a1b);box-shadow:0 0 0 0 oklch(68% .196 42/.6);animation:cnf-pulse 2s infinite}
@keyframes cnf-pulse{70%{box-shadow:0 0 0 .55rem oklch(68% .196 42/0)}100%{box-shadow:0 0 0 0 oklch(68% .196 42/0)}}
.cnf-title{margin:0;font-family:var(--font-display,"Libre Baskerville",Georgia,serif);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.15;letter-spacing:-.01em;color:var(--cnf-ink)}
.cnf-title em{font-style:normal;color:var(--cnf-gold)}
.cnf-intro{margin:.75rem 0 0;max-width:38rem;color:var(--cnf-dim);font-size:1rem;line-height:1.6}

/* featured story */
.cnf-feature{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.25rem);align-items:center}
@media (max-width:900px){.cnf-feature{grid-template-columns:1fr}}
.cnf-copy{min-width:0}
.cnf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:1rem;font-size:.82rem;color:var(--cnf-dim)}
.cnf-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .7rem;border-radius:2px;background:var(--cnf-gold);color:var(--gold-foreground,#3a2a0d);font:700 .68rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.14em;text-transform:uppercase}
.cnf-dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}
.cnf-h3{margin:0;font-family:var(--font-display,"Libre Baskerville",Georgia,serif);font-weight:700;font-size:clamp(1.45rem,2.6vw,2.05rem);line-height:1.22;color:var(--cnf-ink)}
.cnf-sub{margin:.85rem 0 0;font-size:1.05rem;line-height:1.5;color:var(--cnf-gold);font-weight:500}
.cnf-sum{margin:1rem 0 0;font-size:1rem;line-height:1.7;color:var(--cnf-dim)}
.cnf-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.cnf-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.65rem 1.2rem;border-radius:2px;border:1px solid transparent;
  font:600 .9rem/1 var(--font-sans,system-ui,sans-serif);text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}
.cnf-btn svg{width:1rem;height:1rem;flex:none}
.cnf-btn-gold{background:var(--cnf-gold);color:var(--gold-foreground,#3a2a0d)}
.cnf-btn-gold:hover{background:oklch(83% .14 70);transform:translateY(-1px)}
.cnf-btn-line{border-color:oklch(100% 0 0/.35);color:var(--cnf-ink);background:transparent}
.cnf-btn-line:hover{border-color:var(--cnf-gold);color:var(--cnf-gold)}
.cnf-btn:focus-visible,.cnf-arrow:focus-visible,.cnf-thumb:focus-visible,.cnf-card:focus-visible,.cnf-x:focus-visible{outline:2px solid var(--cnf-gold);outline-offset:3px}
.cnf-quote{position:relative;margin:1.4rem 0 0;padding:.9rem 1rem .9rem 1.2rem;border-left:3px solid var(--cnf-gold);background:oklch(100% 0 0/.05);
  font-family:var(--font-display,Georgia,serif);font-size:.98rem;line-height:1.6;font-style:italic;color:var(--cnf-ink)}
.cnf-quote small{display:block;margin-top:.45rem;font:600 .75rem/1.3 var(--font-sans,system-ui);font-style:normal;color:var(--cnf-dim);letter-spacing:.04em}

/* slider */
.cnf-slider{position:relative;min-width:0}
.cnf-stage{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#0f140b;box-shadow:0 30px 70px -30px #000,0 0 0 1px var(--cnf-line);touch-action:pan-y}
.cnf-track{display:flex;height:100%;transition:transform .55s cubic-bezier(.22,.8,.2,1)}
.cnf-slide{position:relative;flex:0 0 100%;height:100%;margin:0;overflow:hidden;cursor:zoom-in}
.cnf-slide-bg{position:absolute;inset:-8%;background-size:cover;background-position:center;filter:blur(22px) saturate(1.1) brightness(.55);transform:scale(1.05)}
.cnf-slide img{position:relative;display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.cnf-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1rem .85rem;font-size:.82rem;line-height:1.45;color:#fff;
  background:linear-gradient(transparent,oklch(10% .02 120/.88))}
.cnf-arrow{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;border:0;border-radius:50%;
  background:oklch(100% 0 0/.92);color:var(--primary,#2f4314);cursor:pointer;box-shadow:0 8px 24px -8px #000;transition:transform .2s,background .2s,opacity .2s}
.cnf-arrow:hover{background:var(--cnf-gold);transform:scale(1.06)}
.cnf-arrow svg{width:1.15rem;height:1.15rem}
.cnf-prev{left:.75rem}.cnf-next{right:.75rem}
.cnf-count{position:absolute;top:.75rem;right:.75rem;z-index:2;padding:.35rem .6rem;border-radius:2px;background:oklch(10% .02 120/.72);color:#fff;font:600 .72rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.08em;backdrop-filter:blur(6px)}
.cnf-zoomhint{position:absolute;top:.75rem;left:.75rem;z-index:2;display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border-radius:2px;background:oklch(10% .02 120/.72);color:#fff;font-size:.72rem;backdrop-filter:blur(6px)}
.cnf-zoomhint svg{width:.85rem;height:.85rem}
.cnf-progress{position:absolute;left:0;bottom:0;z-index:3;height:3px;width:0;background:var(--cnf-gold)}
.cnf-progress.run{animation:cnf-prog var(--cnf-dur,6s) linear forwards}
@keyframes cnf-prog{to{width:100%}}
.cnf-thumbs{display:flex;gap:.55rem;margin-top:.8rem;overflow-x:auto;padding:.15rem .1rem .35rem;scrollbar-width:thin}
.cnf-thumb{position:relative;flex:0 0 4.6rem;height:3.4rem;padding:0;border:0;border-radius:3px;overflow:hidden;cursor:pointer;background:#0f140b;opacity:.55;transition:opacity .2s,box-shadow .2s}
.cnf-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cnf-thumb:hover{opacity:.85}
.cnf-thumb[aria-current="true"]{opacity:1;box-shadow:0 0 0 2px var(--cnf-gold)}
.cnf-single .cnf-arrow,.cnf-single .cnf-count,.cnf-single .cnf-thumbs{display:none}

/* more posts */
.cnf-more{margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:2rem;border-top:1px solid var(--cnf-line)}
.cnf-more-h{margin:0 0 1.25rem;font:600 .75rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.16em;text-transform:uppercase;color:var(--cnf-dim)}
.cnf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:1.25rem}
.cnf-card{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--cnf-line);border-radius:4px;overflow:hidden;cursor:pointer;
  background:oklch(100% 0 0/.04);color:inherit;font:inherit;transition:transform .25s,border-color .25s,background .25s}
.cnf-card:hover{transform:translateY(-3px);border-color:oklch(78% .152 62/.55);background:oklch(100% 0 0/.07)}
.cnf-card-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0f140b}
.cnf-card-img .cnf-slide-bg{inset:-10%}
.cnf-card-img img{position:relative;width:100%;height:100%;object-fit:contain;display:block}
.cnf-card-badges{position:absolute;left:.6rem;bottom:.6rem;display:flex;gap:.35rem}
.cnf-chip{padding:.28rem .5rem;border-radius:2px;background:oklch(10% .02 120/.75);color:#fff;font:600 .66rem/1 var(--font-mono,ui-monospace,monospace);letter-spacing:.08em;text-transform:uppercase}
.cnf-card-body{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.1rem 1.15rem;flex:1}
.cnf-card-meta{font-size:.75rem;color:var(--cnf-dim)}
.cnf-card-title{margin:0;font-family:var(--font-display,Georgia,serif);font-size:1.08rem;line-height:1.35;color:var(--cnf-ink)}
.cnf-card-sum{margin:0;font-size:.88rem;line-height:1.55;color:var(--cnf-dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cnf-card-cta{margin-top:auto;padding-top:.35rem;font-size:.82rem;font-weight:600;color:var(--cnf-gold)}

/* reader */
.cnf-reader{position:fixed;inset:0;z-index:9990;display:flex;align-items:flex-start;justify-content:center;padding:0 clamp(0rem,3vw,2rem);
  background:oklch(12% .02 120/.82);backdrop-filter:blur(6px);overflow-y:auto;opacity:0;transition:opacity .25s;font-family:var(--font-sans,"IBM Plex Sans",system-ui,sans-serif)}
.cnf-reader.open{opacity:1}
.cnf-paper{position:relative;width:100%;max-width:58rem;margin:clamp(0rem,3vw,2.5rem) 0;background:var(--background,#fbfaf6);color:var(--foreground,#23241f);border-radius:4px;box-shadow:0 40px 90px -30px #000;
  transform:translateY(18px);transition:transform .3s cubic-bezier(.22,.8,.2,1)}
.cnf-reader.open .cnf-paper{transform:none}
@media (max-width:640px){.cnf-paper{border-radius:0;min-height:100%;margin:0}}
.cnf-paper::before{content:"";position:absolute;inset:0 0 auto;height:4px;border-radius:4px 4px 0 0;background:var(--gradient-tricolour,linear-gradient(90deg,#f0a43a 33.3%,#fff 33.3% 66.6%,#2f7d4f 66.6%))}
.cnf-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem clamp(1rem,4vw,2.5rem);
  background:var(--background,#fbfaf6);border-bottom:1px solid var(--border,#e4e1d6)}
.cnf-bar-brand{font:600 .7rem/1.2 var(--font-mono,ui-monospace,monospace);letter-spacing:.16em;text-transform:uppercase;color:var(--olive,#4c6420)}
.cnf-bar-tools{display:flex;gap:.4rem}
.cnf-x,.cnf-share{display:inline-flex;align-items:center;gap:.4rem;height:2.4rem;padding:0 .8rem;border:1px solid var(--border,#e4e1d6);border-radius:2px;background:var(--card,#fff);
  color:var(--foreground,#23241f);font:600 .8rem/1 var(--font-sans,system-ui);cursor:pointer}
.cnf-x:hover,.cnf-share:hover{border-color:var(--primary,#3b5216);color:var(--primary,#3b5216)}
.cnf-x svg,.cnf-share svg{width:1rem;height:1rem}
.cnf-art{padding:clamp(1.25rem,4vw,2.5rem) clamp(1rem,5vw,3.25rem) clamp(2rem,5vw,3.5rem)}
.cnf-art .cnf-meta{color:var(--muted-foreground,#6b6a60)}
.cnf-art-h{margin:0;font-family:var(--font-display,"Libre Baskerville",Georgia,serif);font-weight:700;font-size:clamp(1.55rem,3.6vw,2.4rem);line-height:1.2;color:var(--primary,#2f4314)}
.cnf-art-sub{margin:.9rem 0 0;font-size:1.12rem;line-height:1.5;color:var(--olive,#4c6420);font-weight:500}
.cnf-art .cnf-slider{margin:1.75rem 0 .5rem}
.cnf-art .cnf-stage{aspect-ratio:16/11;box-shadow:0 0 0 1px var(--border,#e4e1d6)}
.cnf-art .cnf-thumb{opacity:.6}
.cnf-art .cnf-thumb[aria-current="true"]{box-shadow:0 0 0 2px var(--signal,#f26a1b);opacity:1}
.cnf-text{margin-top:1.75rem;font-size:1.04rem;line-height:1.8;color:var(--foreground,#23241f)}
.cnf-text p{margin:0 0 1.1rem}
.cnf-text>p:first-child::first-letter{float:left;margin:.3rem .55rem 0 0;font-family:var(--font-display,Georgia,serif);font-size:3.4rem;line-height:.8;color:var(--primary,#2f4314)}
.cnf-text h3{margin:2rem 0 .8rem;font-family:var(--font-display,Georgia,serif);font-size:1.25rem;line-height:1.35;color:var(--primary,#2f4314)}
.cnf-text h3::before{content:"";display:block;width:2.25rem;height:3px;margin-bottom:.7rem;background:var(--signal,#f26a1b)}
.cnf-text blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:4px solid var(--gold,#f0a43a);background:var(--secondary,#f3f1ea);
  font-family:var(--font-display,Georgia,serif);font-style:italic;font-size:1.06rem;line-height:1.7;color:var(--primary,#2f4314)}
.cnf-video{margin:1.75rem 0 0;border-radius:4px;overflow:hidden;background:#000;aspect-ratio:16/9}
.cnf-video iframe,.cnf-video video{display:block;width:100%;height:100%;border:0}
.cnf-art-foot{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border,#e4e1d6)}
.cnf-art-foot .cnf-btn-line{border-color:var(--border,#d9d5c7);color:var(--primary,#2f4314)}
.cnf-art-foot .cnf-btn-line:hover{border-color:var(--primary,#2f4314)}
.cnf-btn-primary{background:var(--primary,#2f4314);color:var(--primary-foreground,#fff)}
.cnf-btn-primary:hover{background:var(--olive,#4c6420)}
.cnf-btn-signal{background:var(--signal,#f26a1b);color:#fff}
.cnf-btn-signal:hover{filter:brightness(1.06)}

/* full-size photo viewer */
.cnf-zoom{position:fixed;inset:0;z-index:9995;display:flex;flex-direction:column;background:#0b0e08;color:#fff;opacity:0;transition:opacity .2s}
.cnf-zoom.open{opacity:1}
.cnf-zoom-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;font-size:.82rem}
.cnf-zoom-top .cnf-x{background:transparent;color:#fff;border-color:oklch(100% 0 0/.3)}
.cnf-zoom-view{position:relative;flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;cursor:zoom-in}
.cnf-zoom-view img{display:block;max-width:100%;max-height:100%;object-fit:contain;margin:auto}
.cnf-zoom.is-big .cnf-zoom-view{cursor:zoom-out;align-items:flex-start}
.cnf-zoom.is-big .cnf-zoom-view img{max-width:none;max-height:none;width:min(1400px,180vw)}
.cnf-zoom .cnf-arrow{position:fixed}
.cnf-zoom-cap{padding:.6rem 1rem 1rem;text-align:center;font-size:.85rem;color:oklch(90% .01 100/.85)}
.cnf-lock{overflow:hidden!important}
.cnf-toast{position:fixed;left:50%;bottom:1.5rem;z-index:9999;transform:translateX(-50%);padding:.65rem 1rem;border-radius:3px;background:#1d2414;color:#fff;font-size:.85rem;box-shadow:0 10px 30px -10px #000}
@media (prefers-reduced-motion:reduce){.cnf-track,.cnf-reader,.cnf-paper,.cnf-card,.cnf-btn{transition:none}.cnf-live{animation:none}}
