<!-- @dsCard group="Brand" -->
/* ============================================================================
   RUSSIA · UKRAINE — THE WAR · a cinematic front for bearinga.com
   Not an explainer. A film. Near-black canvas, letterbox, film grain, a
   recurring reticle (the lens we read the war through), full-bleed frames the
   reader fills with their own images, Archivo display + Plex Sans body, hard cuts.
   Brand: black the page · oxblood the ember · cream the word.
   Motion is enhancement; the visible end-state is the no-JS / frozen base.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,400..900;1,62..125,400..900&family=IBM+Plex+Sans:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --black:#070A0A; --black-2:#0B0F0F;
  --cream:#F2F0EA; --cream-d:rgba(242,240,234,.66); --cream-f:rgba(242,240,234,.34);
  --teal:#3A3F3E; --teal-deep:#0B0F0F; --teal-line:rgba(242,240,234,.30);
  --ox:#C8484C; --ox-bright:#E0696D; --ox-deep:#8A1C20;
  --sans:"IBM Plex Sans",-apple-system,system-ui,sans-serif;
  --display:"Archivo","Söhne",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;   /* editorial claims/hooks */
  --serif:"IBM Plex Sans",-apple-system,system-ui,sans-serif; /* deprecated → body alias */
  --mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --lb:clamp(26px,4.4vh,58px);   /* letterbox bar height */
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;background:var(--black);scroll-snap-type:y mandatory;scroll-behavior:smooth;}
body{margin:0;background:var(--black);color:var(--cream);font-family:var(--serif);overflow-x:hidden;}
::selection{background:rgba(200,72,76,.32);}
img{display:block;}

/* ===================================================== FILM FURNITURE ====== */
/* letterbox bars — always present, sell the aspect ratio */
.letterbox{position:fixed;left:0;right:0;height:var(--lb);background:#000;z-index:80;pointer-events:none;}
.letterbox.t{top:0;border-bottom:1px solid rgba(242,240,234,.06);}
.letterbox.b{bottom:0;border-top:1px solid rgba(242,240,234,.06);}

/* film grain — fixed, subtle, over everything but the bars */
.grain{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");}

/* persistent reticle + timecode HUD (the lens) */
.hud{position:fixed;z-index:75;pointer-events:none;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-f);}
.hud.tl{top:calc(var(--lb) + 16px);left:clamp(16px,4vw,40px);}
.hud.tr{top:calc(var(--lb) + 16px);right:clamp(16px,4vw,40px);text-align:right;}
.hud.br{bottom:calc(var(--lb) + 16px);right:clamp(16px,4vw,40px);text-align:right;}
.hud .em{color:var(--ox);}
.reticle{position:fixed;top:50%;left:50%;width:26px;height:26px;transform:translate(-50%,-50%);z-index:75;pointer-events:none;opacity:.22;}
.reticle::before,.reticle::after{content:"";position:absolute;background:var(--cream);}
.reticle::before{left:50%;top:0;bottom:0;width:1px;transform:translateX(-.5px);}
.reticle::after{top:50%;left:0;right:0;height:1px;transform:translateY(-.5px);}
.reticle i{position:absolute;inset:8px;border:1px solid var(--ox);border-radius:50%;}

/* frame index scrubber, right edge */
.scrubber{position:fixed;right:clamp(10px,2.5vw,22px);top:50%;transform:translateY(-50%);z-index:75;display:flex;flex-direction:column;gap:10px;pointer-events:none;}
.scrubber .tick{width:18px;height:2px;background:rgba(242,240,234,.22);transition:background .4s,width .4s;}
.scrubber .tick.on{background:var(--ox);width:28px;}

/* ===================================================== FRAMES ============== */
.frame{position:relative;width:100%;height:100vh;min-height:560px;scroll-snap-align:center;overflow:hidden;display:flex;}
.frame-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  /* baked grayscale; small lift for legibility under the gradient */
  filter:grayscale(1) contrast(1.04) brightness(.86);}
/* full-bleed background video — grayscale, scaled to crop the source watermark */
.map-zoom{animation:none !important;transform:scale(1.42) !important;transform-origin:60% 34% !important;}
.frame-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  filter:grayscale(1) contrast(1.08) brightness(.97);transform:scale(1.26);transform-origin:0% 100%;}
/* neutral cinematic darkening — keep the photography true black-and-white */
.grade{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,10,10,.56) 0%,rgba(7,10,10,.05) 34%,rgba(7,10,10,.20) 62%,rgba(7,10,10,.90) 100%);}
.grade.ember{background:
    radial-gradient(86% 72% at 74% 82%,rgba(242,240,234,.06),transparent 56%),
    linear-gradient(180deg,rgba(7,10,10,.62) 0%,rgba(7,10,10,.07) 36%,rgba(7,10,10,.93) 100%);}
.vignette{position:absolute;inset:0;z-index:3;pointer-events:none;
  box-shadow:inset 0 0 220px 60px rgba(7,10,10,.9);background:radial-gradient(100% 100% at 50% 50%,transparent 52%,rgba(7,10,10,.6));}

/* ken burns — slow push; disabled when motion is frozen/reduced */
@media(prefers-reduced-motion:no-preference){
  html.motion:not(.no-anim) .frame-img{animation:kb 22s ease-out both;}
}
@keyframes kb{from{transform:scale(1.0) translate3d(0,0,0);}to{transform:scale(1.11) translate3d(-1.5%,-2%,0);}}
.frame.kb-r .frame-img{animation-direction:alternate;}
@keyframes kbR{from{transform:scale(1.08) translate(2%,1%);}to{transform:scale(1.0);}}

/* caption */
.cap{position:absolute;z-index:6;left:clamp(22px,6vw,104px);right:clamp(22px,6vw,104px);bottom:calc(var(--lb) + clamp(40px,9vh,96px));max-width:22ch;}
.cap.mid{top:50%;bottom:auto;transform:translateY(-50%);left:0;right:0;text-align:center;max-width:none;padding:0 8vw;}
.cap .k{font-family:var(--mono);font-size:clamp(10px,1vw,12px);letter-spacing:.32em;text-transform:uppercase;color:var(--ox);margin-bottom:18px;display:flex;gap:14px;align-items:center;}
.cap.mid .k{justify-content:center;}
.cap .k::before,.cap .k::after{content:"";height:1px;width:34px;background:var(--ox);opacity:.6;}
.cap.mid .k::before,.cap.mid .k::after{display:block;}
.cap .k:not(.deco)::before,.cap .k:not(.deco)::after{display:none;}
.num{font-family:var(--display);font-weight:600;font-size:clamp(96px,18vw,300px);line-height:.82;letter-spacing:-.035em;color:var(--cream);text-shadow:0 2px 60px rgba(7,10,10,.7);}
.num .u{font-family:var(--mono);font-weight:400;font-size:.20em;letter-spacing:.04em;color:var(--cream-d);text-transform:uppercase;}
.t{font-family:var(--display);font-weight:500;font-size:clamp(36px,5.6vw,84px);line-height:1.02;letter-spacing:-.02em;color:var(--cream);text-wrap:balance;text-shadow:0 2px 50px rgba(7,10,10,.6);}
.t em{font-style:italic;color:var(--ox-bright);font-weight:500;}
.t .br{display:block;}
.s{font-family:var(--mono);font-size:clamp(10px,1.05vw,12.5px);letter-spacing:.14em;text-transform:uppercase;color:var(--cream-d);margin-top:22px;line-height:1.7;}
.cap .lead{font-family:var(--serif);font-size:clamp(16px,1.5vw,20px);line-height:1.5;color:var(--cream-d);margin-top:18px;max-width:34ch;font-style:italic;}

/* ===================================================== COLD OPEN =========== */
.open{background:var(--black);}
/* heavier scrim over the cold-open footage so the title reads */
.open-grade{position:absolute;inset:0;z-index:2;pointer-events:none;background:
    radial-gradient(52% 44% at 50% 52%,rgba(7,10,10,.46),rgba(7,10,10,.10) 70%,transparent),
    linear-gradient(180deg,rgba(7,10,10,.80) 0%,rgba(7,10,10,.22) 16%,rgba(7,10,10,.06) 42%,rgba(7,10,10,.34) 70%,rgba(7,10,10,.90) 100%);}
.open .mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;width:clamp(64px,9vw,120px);height:clamp(64px,9vw,120px);opacity:.5;}
.open .hairline{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:1px;width:min(64vw,720px);background:linear-gradient(90deg,transparent,var(--teal-line),transparent);z-index:4;}
.open .cap{z-index:6;}
.open .wm{font-family:var(--display);font-weight:400;font-size:clamp(13px,1.4vw,16px);letter-spacing:.04em;color:var(--cream-d);}
.open .wm em{font-style:italic;color:var(--ox);}
.open .title{font-family:var(--display);font-weight:600;font-size:clamp(52px,9.6vw,176px);line-height:.9;letter-spacing:-.035em;color:var(--cream);margin:20px 0 0;}
.open .title .dot{color:var(--ox);}
.open .sub{font-family:var(--mono);font-size:clamp(10px,1.1vw,13px);letter-spacing:.34em;text-transform:uppercase;color:var(--cream-f);margin-top:26px;}
/* opt-in fullscreen affordance — cold open only · hidden until JS confirms support */
.fs-invite{display:none;margin:30px auto 0;background:none;border:0;cursor:pointer;align-items:center;gap:9px;
  font-family:var(--mono);font-size:clamp(9.5px,1vw,11px);letter-spacing:.26em;text-transform:uppercase;
  color:var(--cream-f);transition:color .25s ease,opacity .5s ease;}
.fs-invite.on{display:inline-flex;}
.fs-invite .g{font-size:1.25em;letter-spacing:0;line-height:1;}
.fs-invite:hover{color:var(--cream);}
.fs-invite.hidden{opacity:0;pointer-events:none;}
.scroll-cue{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--lb) + 26px);z-index:6;font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-f);display:flex;flex-direction:column;align-items:center;gap:10px;}
.scroll-cue .ln{width:1px;height:34px;background:linear-gradient(180deg,var(--ox),transparent);}
@media(prefers-reduced-motion:no-preference){ html.motion:not(.no-anim) .scroll-cue .ln{animation:cue 2.4s ease-in-out infinite;transform-origin:top;} }
@keyframes cue{0%,100%{transform:scaleY(.4);opacity:.5;}50%{transform:scaleY(1);opacity:1;}}

/* ===================================================== BRIDGE ============= */
/* half-beat between the last frame and the canon — methodology, not marketing */
.bridge{position:relative;width:100%;min-height:52vh;display:flex;align-items:center;justify-content:center;
  scroll-snap-align:center;background:var(--black);padding:0 clamp(24px,8vw,120px);}
.bridge-in{display:flex;flex-direction:column;align-items:center;gap:26px;max-width:760px;text-align:center;}
.bridge-rule{width:1px;height:clamp(34px,7vh,64px);background:linear-gradient(180deg,transparent,rgba(242,240,234,.32),transparent);}
.bridge-line{font-family:var(--mono);font-size:clamp(11px,1.25vw,14px);letter-spacing:.13em;line-height:1.95;
  text-transform:uppercase;color:var(--cream-d);margin:0;text-wrap:balance;}
.bridge-line .dot{color:var(--ox);padding:0 .35em;}

/* ===================================================== CLOSE / CANON ======= */
.close{background:radial-gradient(120% 80% at 50% 40%,rgba(242,240,234,.045),transparent 60%),var(--black);flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 8vw;height:auto;min-height:100vh;scroll-snap-align:start;}
.close .inner{position:relative;z-index:6;max-width:860px;padding:calc(var(--lb) + 8vh) 0;}
.close .k{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ox);margin-bottom:24px;}
.close h2{font-family:var(--display);font-weight:600;font-size:clamp(40px,6.2vw,92px);line-height:1.0;letter-spacing:-.025em;color:var(--cream);margin:0 0 16px;}
.close h2 em{font-style:italic;color:var(--ox-bright);}
.close .lead{font-family:var(--serif);font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--cream-d);max-width:50ch;margin:0 auto 46px;}
.vols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(242,240,234,.12);border:1px solid rgba(242,240,234,.12);margin-bottom:42px;}
.vol{background:var(--black-2);padding:22px 18px;text-decoration:none;text-align:left;transition:background .25s;display:flex;flex-direction:column;gap:7px;min-height:118px;}
.vol:hover{background:#101616;}
.vol .vk{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ox);}
.vol .vt{font-family:var(--display);font-weight:500;font-size:18px;line-height:1.16;color:var(--cream);}
.vol .vt em{font-style:italic;color:var(--ox-bright);}
.vol .vd{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-f);margin-top:auto;}
.close-cta{display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center;}
.btn{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.03em;padding:14px 26px;border-radius:3px;text-decoration:none;display:inline-flex;align-items:center;gap:10px;transition:background .2s,border-color .2s,color .2s;}
.btn-p{background:var(--cream);color:var(--black);} .btn-p:hover{background:#fff;}
.btn-p .a{color:var(--ox);}
.btn-g{border:1px solid rgba(242,240,234,.3);color:var(--cream);} .btn-g:hover{border-color:var(--cream);background:rgba(242,240,234,.06);}
.close .foot{margin-top:54px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-f);}
.close .foot em{font-style:italic;color:var(--ox);font-family:var(--serif);text-transform:none;letter-spacing:0;}
@media(max-width:680px){ .vols{grid-template-columns:1fr;} }

/* ===================================================== DATA INTERLUDES ==== */
/* instrument readouts intercut with the footage — the lens measuring the war */
.frame.data{background:radial-gradient(120% 80% at 50% 42%,rgba(242,240,234,.04),transparent 60%),var(--black);align-items:center;justify-content:center;}
.data-wrap{position:relative;z-index:6;width:100%;max-width:900px;padding:0 clamp(24px,7vw,90px);}
.data-wrap.wide{max-width:1060px;}
.d-k{font-family:var(--mono);font-size:clamp(10px,1.05vw,12px);letter-spacing:.3em;text-transform:uppercase;color:var(--ox);margin-bottom:26px;display:flex;align-items:center;gap:14px;}
.d-k::before{content:"";width:30px;height:1px;background:var(--ox);opacity:.6;}
.d-h{font-family:var(--display);font-weight:500;font-size:clamp(32px,4.8vw,68px);line-height:1.0;letter-spacing:-.02em;color:var(--cream);margin:0 0 30px;}
.d-h em{font-style:italic;color:var(--ox-bright);}
.counter{font-family:var(--sans);font-weight:600;font-size:clamp(54px,11vw,154px);line-height:.84;letter-spacing:-.045em;color:var(--cream);font-variant-numeric:tabular-nums;text-shadow:0 2px 60px rgba(7,10,10,.6);}
.d-sub{font-family:var(--mono);font-size:clamp(10px,1.05vw,12.5px);letter-spacing:.14em;text-transform:uppercase;color:var(--cream-d);margin-top:24px;line-height:1.7;}
.d-sub b{color:var(--ox-bright);font-weight:500;}
.measures{margin-top:42px;display:flex;flex-direction:column;gap:15px;}
.m{display:grid;grid-template-columns:minmax(0,210px) 1fr auto;gap:20px;align-items:center;}
.m .ml{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-d);text-align:right;line-height:1.4;}
.m .track{height:9px;background:rgba(242,240,234,.07);position:relative;overflow:hidden;}
.m .track .bar{position:absolute;inset:0 auto 0 0;width:var(--w);background:linear-gradient(90deg,rgba(242,240,234,.42),rgba(242,240,234,.8));}
.m .track .bar.ox{background:linear-gradient(90deg,rgba(200,72,76,.65),var(--ox-bright));}
.m .mv{font-family:var(--sans);font-weight:600;font-size:16px;color:var(--cream);font-variant-numeric:tabular-nums;white-space:nowrap;}
/* the steepening curve */
.curve{width:100%;height:clamp(230px,40vh,400px);display:block;overflow:visible;}
.curve .c-grid{stroke:rgba(242,240,234,.07);stroke-width:1;}
.curve .c-area{fill:url(#cArea);opacity:.9;}
.curve .c-line{fill:none;stroke:var(--ox-bright);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;}
.curve .c-dot{fill:var(--cream);}
.curve-x{display:flex;justify-content:space-between;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-f);}
.curve-anno{margin-top:22px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;}
.curve-anno .counter{font-size:clamp(34px,5vw,66px);color:var(--ox-bright);line-height:.9;}
.curve-anno .lbl{font-family:var(--mono);font-size:clamp(10px,1.05vw,12px);letter-spacing:.13em;text-transform:uppercase;color:var(--cream-d);line-height:1.6;max-width:34ch;}
/* the cost inversion */
.asym{display:flex;flex-direction:column;gap:4px;}
.a-row{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;}
.a-row .av{font-family:var(--display);font-weight:700;letter-spacing:-.04em;color:var(--cream);line-height:.86;}
.a-row.big .av{font-size:clamp(80px,16vw,248px);}
.a-row.sm .av{font-size:clamp(24px,3.2vw,52px);font-weight:600;}
.a-row .av.ox{color:var(--ox-bright);}
.a-row .al{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-d);}
.a-gap{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.8vw,22px);color:var(--cream-f);padding:6px 0;}
@media(max-width:600px){ .m{grid-template-columns:1fr;gap:6px;} .m .ml{text-align:left;} }

/* ===================================================== MOTION GATES ======== */
html.motion .rise{opacity:0;transform:translateY(26px);}
html.motion .rise.in{opacity:1;transform:none;transition:opacity 1.1s cubic-bezier(.16,.7,.2,1),transform 1.1s cubic-bezier(.16,.7,.2,1);}
html.motion .rise.d1.in{transition-delay:.12s;} html.motion .rise.d2.in{transition-delay:.26s;} html.motion .rise.d3.in{transition-delay:.4s;}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} html.motion .rise{opacity:1!important;transform:none!important;} }
/* frozen-clock fallback: show all end-states, kill timed motion */
html.no-anim *,html.no-anim *::before,html.no-anim *::after{animation:none!important;transition:none!important;}
html.no-anim .rise{opacity:1!important;transform:none!important;}

/* image-slot empty state — keep it filmic, not a bright box */
image-slot{--is-bg:#0c100f;}
.frame-img:not([data-filled]){background:
  repeating-linear-gradient(135deg,rgba(242,240,234,.015) 0 14px,transparent 14px 28px),
  radial-gradient(80% 80% at 50% 40%,#121817,#070a0a);}

@media(max-width:640px){
  .cap{max-width:none;}
  .scrubber{display:none;}
  .hud.tr{display:none;}
}
