/* CoHo Content Vault. Brand rules: 5 colours, League Spartan, letter-spacing 0, square corners, no borders on buttons. */
@font-face{font-family:'League Spartan';src:url('assets/fonts/LeagueSpartan-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('assets/fonts/LeagueSpartan-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('assets/fonts/LeagueSpartan-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --blue:#0033FF; --pink:#FF00BA; --lime:#CCFF33; --white:#FAF7F0; --black:#231F20;
  --gutter:20px;
  --display:50px; --body:18px; --btn:18px;
}
@media (min-width:768px){ :root{ --gutter:clamp(40px,8vw,115px); --body:20px; --btn:20px; } }
@media (min-width:1024px){ :root{ --display:60px; --body:25px; } }
@media (min-width:1100px){ :root{ --display:70px; } }
@media (min-width:1340px){ :root{ --display:93px; } }

*,*::before,*::after{box-sizing:border-box}
html{background:var(--white);-webkit-text-size-adjust:100%}
body{margin:0;font-family:'League Spartan',sans-serif;background:var(--white);color:var(--black);letter-spacing:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}
p,h1,h2,h3{margin:0}
img,video,svg{display:block}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
[hidden]{display:none !important}

.pad{padding-left:var(--gutter);padding-right:var(--gutter)}
.label{font-size:15px;font-weight:700;line-height:1}
.display{font-size:var(--display);font-weight:700;line-height:1;text-wrap:balance}
.body{font-size:var(--body);font-weight:400;line-height:1.2}
.small{font-size:15px;font-weight:400;line-height:1.2}
.us{background:linear-gradient(to top,transparent 0.05em,var(--lime) 0.05em,var(--lime) 0.42em,transparent 0.42em);padding:0 0.04em}

/* Buttons and chips: solid fill, caps, centred, padding = font size */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:1em;border:0;border-radius:0;font-family:inherit;font-size:var(--btn);font-weight:700;line-height:1;letter-spacing:0;text-decoration:none;cursor:pointer;min-height:44px;-webkit-appearance:none;appearance:none}
.btn-blue,.btn-blue:hover,.btn-blue:visited{background:var(--blue);color:var(--white)}
.btn-pink{background:var(--pink);color:var(--white)}
.btn-lime{background:var(--lime);color:var(--black)}
.chip{display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:15px;font-size:15px;font-weight:700;line-height:1}
.chip-simple{background:var(--lime);color:var(--black)}
.chip-produced{background:var(--blue);color:var(--white)}
.chip-cinematic{background:var(--pink);color:var(--white)}

/* Fund line (from ?ref=): full-bleed pink strip at the very top, off-white type (Patrick's call, 2026-09-28) */
.fund-bar{background:var(--pink);color:var(--white);padding-top:16px;padding-bottom:16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 24px}
.fund-bar .label{line-height:1.2}
.fund-perk{font-size:15px;font-weight:600;line-height:1.2}

/* 5.1 Hero */
.hero{padding-top:40px}
.hero-kicker{line-height:1.2;margin-bottom:40px}
.hero-grid{display:flex;flex-direction:column}
.hero-brand{display:flex;flex-direction:column;gap:24px;margin-bottom:40px}
/* 'by' sits on the same line as the bottom of the CoHo letters: its baseline aligns with the logo's bottom edge */
.by{display:flex;align-items:baseline;gap:10px;font-size:18px;line-height:1}
.wordmark{width:92px;height:28px;fill:var(--black)}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:40px}
.reel{margin-top:40px;width:100%;aspect-ratio:16/9;background:var(--white) url('assets/hero-poster.jpg') center/cover no-repeat}
.reel video{width:100%;height:100%;object-fit:cover}
@media (min-width:768px){
  .hero{padding-top:72px}
  .by{gap:12px;font-size:25px}
  .reel{margin-top:72px;aspect-ratio:auto;height:42.85vw;max-height:80vh}
}
@media (min-width:1024px){
  .hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;align-items:end}
  .hero-brand{gap:28px;margin-bottom:0}
}

/* 5.2 Tab bar */
.tabs{position:sticky;top:0;z-index:20;margin-top:40px;background:var(--white);border-bottom:1px solid var(--black);padding:12px 0}
.tabrow{display:flex;align-items:center;gap:4px;overflow-x:auto;padding:0 var(--gutter);scrollbar-width:none}
.tabrow::-webkit-scrollbar{display:none}
.tab{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:15px;background:var(--white);color:var(--black);border:0;border-radius:0;font-family:inherit;font-size:15px;font-weight:700;line-height:1;letter-spacing:0;white-space:nowrap;cursor:pointer}
.tab:hover{color:var(--blue)}
.tab[aria-selected="true"]{background:var(--blue);color:var(--white)}
.tab:focus-visible{outline-offset:-3px}
@media (min-width:768px){ .tabs{padding:16px 0} .tabrow{gap:8px} }

/* 5.3 Category header */
.cat-head{padding-top:40px;padding-bottom:32px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.when{display:flex;flex-direction:column;gap:10px}
/* Share is a quiet text link, not a button: it must not compete with the tabs and cards */
.share{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-top:-4px}
.share-link{padding:0;background:none;border:0;border-radius:0;font-family:inherit;font-size:15px;font-weight:700;line-height:1.2;letter-spacing:0;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:24px}
.share-link:hover{color:var(--black)}
@media (min-width:768px){
  .cat-head{padding-top:64px;padding-bottom:48px;gap:32px}
  .when{gap:12px}
  .when .body{max-width:75%}
}
.steal{background:var(--lime);color:var(--black);padding:24px;display:flex;flex-direction:column;gap:10px}
.steal-line{font-size:var(--body);font-weight:600;line-height:1.2}
@media (min-width:768px){ .steal{padding:40px var(--gutter);flex-direction:row;align-items:baseline;gap:40px} .steal .label{flex-shrink:0} }

/* 5.3 / 5.4 Grid and cards */
.videos{padding-top:40px;padding-bottom:48px;display:flex;flex-direction:column;align-items:flex-start}
.grid{width:100%;display:grid;grid-template-columns:minmax(0,1fr);row-gap:64px;column-gap:40px}
@media (min-width:768px){ .grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:80px} .videos{padding-top:64px;padding-bottom:96px} }
@media (min-width:1100px){ .grid{grid-template-columns:repeat(3,minmax(0,1fr))} }

.card{grid-row:span 6;display:grid;grid-template-rows:subgrid;row-gap:0;color:var(--black);cursor:pointer;min-width:0}
.card:hover .card-title{color:var(--blue)}
.thumb{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--blue)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb-fallback{position:absolute;inset:0;padding:20px;display:flex;align-items:flex-end;color:var(--white);font-size:18px;font-weight:700;line-height:1.2}
.card-meta{padding-top:24px;display:flex;align-items:center;gap:14px}
.card-title{padding-top:20px;font-size:18px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.line{padding-top:18px;display:flex;flex-direction:column;gap:8px}
.line-first{margin-top:20px;border-top:1px solid var(--black)}
@media (min-width:768px){
  .thumb-fallback{padding:24px;font-size:25px}
  .card-meta{padding-top:40px;gap:16px}
  .card-title{padding-top:24px;font-size:25px}
  .line{padding-top:20px}
  .line-first{margin-top:24px}
}
.more{margin-top:56px}
@media (min-width:768px){ .more{margin-top:80px} }

/* 5.6 Tier key */
.tiers{margin-top:64px;width:100%;border-top:1px solid var(--black);padding-top:40px}
.tiers > .label{margin-bottom:24px}
.tier-cols{display:flex;flex-direction:column;gap:32px}
.tier-cols > div{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.tier-note{margin-top:32px}
@media (min-width:768px){
  .tiers{margin-top:96px;padding-top:48px}
  .tiers > .label{margin-bottom:32px}
  .tier-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px}
  .tier-cols > div{gap:20px}
  .tier-note{max-width:75%}
}

/* 5.9 Footer */
.footer{padding-top:40px;padding-bottom:40px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer a{color:var(--black)}
.footer-logo{display:inline-block;margin-bottom:8px}
@media (min-width:768px){ .footer{flex-direction:row;align-items:center;gap:40px} .footer-logo{margin-bottom:0} }

/* CONTENT DROP BOX: Patrick's design (Claude outputs/content-drop-box.html, 2026-09-28), implemented 1:1.
   Only changes: classes prefixed dbx-, local League Spartan, stacked layout extended up to 1279px
   (the side-by-side grid needs ~1280px), form states + honeypot added for the live signup. */
.dbx-band{
  --dbx-blue:#1432F5; --dbx-lime:#CCFF33; --dbx-ink:#231F20; --dbx-paper:#FAF7F0;
  --W:300px; --H:400px; --D:104px;
  --noise: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='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background:var(--dbx-lime);color:var(--dbx-ink);padding:96px 120px;display:grid;grid-template-columns:1fr 560px;gap:64px;align-items:center;overflow:hidden}
.dbx-eyebrow{font-size:15px;font-weight:700;line-height:1;margin:0 0 24px}
.dbx-band h2{font-size:40px;font-weight:700;line-height:1.1;margin:0 0 24px}
/* Two sentences stacked, same line spacing as the rest of the headline, no gap between */
.dbx-band h2 span{display:block}
.dbx-band .dbx-copy > p{font-size:18px;line-height:1.35;margin:0 0 32px;max-width:460px}
.dbx-form{display:flex;gap:0;max-width:480px;margin:0}
.dbx-form input[type=email]{flex:1;min-width:0;border:2px solid var(--dbx-ink);border-right:0;border-radius:0;background:var(--dbx-paper);padding:18px;font:400 18px 'League Spartan',sans-serif;color:var(--dbx-ink);-webkit-appearance:none;appearance:none}
.dbx-form button{border:0;border-radius:0;background:#FF00BA;color:var(--dbx-paper);padding:20px;font:700 18px 'League Spartan',sans-serif;cursor:pointer;-webkit-appearance:none;appearance:none}
.dbx-fine{font-size:14px;margin-top:14px}
.dbx-error{font-weight:700}
.dbx-done-title{font-size:25px;font-weight:700;line-height:1.2;margin:0}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.hp input{font:inherit;background:var(--white);color:var(--black);border:0}

.dbx-stage{position:relative;width:560px;height:620px;perspective:2600px;perspective-origin:50% 25%}
.dbx-scene{position:absolute;left:50%;top:60%;width:0;height:0;transform-style:preserve-3d;
  transform:rotateX(-11deg) rotateY(-27deg) scale(1.12)}
.dbx-scene > *{position:absolute;transform-style:preserve-3d}

.dbx-face{backface-visibility:visible;overflow:hidden}
.dbx-face::after{content:"";position:absolute;inset:0;background-image:var(--noise);mix-blend-mode:overlay;opacity:.35;pointer-events:none}

.dbx-front{width:var(--W);height:var(--H);left:calc(var(--W)/-2);top:calc(var(--H)/-2);
  transform:translateZ(calc(var(--D)/2));background:var(--dbx-blue);color:var(--dbx-paper);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), inset -1px 0 0 rgba(0,0,0,.25)}
.dbx-front .dbx-light{position:absolute;inset:0;pointer-events:none;
  background:
   linear-gradient(118deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 38%, rgba(255,255,255,0) 62%, rgba(0,0,20,.18) 100%),
   linear-gradient(180deg, rgba(255,255,255,0) 70%, rgba(0,0,30,.14) 100%)}
.dbx-front .dbx-sheen{position:absolute;top:-20%;left:-60%;width:60%;height:140%;transform:rotate(18deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.10),rgba(255,255,255,0));pointer-events:none}
.dbx-strip{margin-top:28px;background:var(--dbx-paper);color:var(--dbx-blue);font-size:13px;font-weight:700;line-height:1;padding:13px 22px}
.dbx-title{padding:34px 22px 0;font-size:52px;font-weight:700;line-height:.95;margin:0}
.dbx-foot{position:absolute;left:22px;right:22px;bottom:22px;display:flex;align-items:center;justify-content:space-between}
.dbx-foot img{height:30px;width:auto;display:block}
.dbx-foot span{font-size:14px;font-weight:700;background:var(--dbx-lime);color:var(--dbx-ink);padding:9px 10px 7px;line-height:1}

.dbx-right{width:var(--D);height:var(--H);left:calc(var(--D)/-2);top:calc(var(--H)/-2);
  transform:rotateY(90deg) translateZ(calc(var(--W)/2));background:#0E26C4;color:var(--dbx-paper)}
.dbx-right .dbx-light{position:absolute;inset:0;background:linear-gradient(90deg, rgba(0,0,0,.30), rgba(0,0,0,.14) 40%, rgba(0,0,0,.26));
  box-shadow:inset 1px 0 0 rgba(255,255,255,.12)}
.dbx-right .dbx-spine{position:absolute;left:50%;top:50%;white-space:nowrap;transform:translate(-50%,-50%) rotate(90deg);
  font-size:15px;font-weight:700;letter-spacing:0;color:var(--dbx-lime)}

.dbx-back{width:var(--W);height:var(--H);left:calc(var(--W)/-2);top:calc(var(--H)/-2);
  transform:translateZ(calc(var(--D)/-2));background:#DCD7CB}
.dbx-back .dbx-light{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.45) 30%)}
.dbx-left{width:var(--D);height:var(--H);left:calc(var(--D)/-2);top:calc(var(--H)/-2);
  transform:rotateY(-90deg) translateZ(calc(var(--W)/2));background:#CFC9BB}
.dbx-left .dbx-light{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.55) 35%)}

.dbx-lid{width:var(--W);height:calc(var(--D) + 6px);left:calc(var(--W)/-2);top:calc(var(--H)/-2 - var(--D) - 6px);
  transform-origin:50% 100%;transform:translateZ(calc(var(--D)/-2)) rotateX(24deg);background:#ECE8DF;
  border-radius:3px 3px 0 0}
.dbx-lid .dbx-light{position:absolute;inset:0;background:linear-gradient(180deg, rgba(255,255,255,.35), rgba(0,0,0,.10) 70%, rgba(0,0,0,.22))}
.dbx-lid .dbx-tuck{position:absolute;left:10px;right:10px;top:-22px;height:24px;background:#E3DED3;border-radius:14px 14px 0 0}
.dbx-dust{width:calc(var(--D) - 6px);height:44px;top:calc(var(--H)/-2 - 44px);left:calc((var(--D) - 6px)/-2);
  transform-origin:50% 100%;background:#E6E1D6;border-radius:18px 18px 0 0}
.dbx-dust.dbx-r{transform:rotateY(90deg) translateZ(calc(var(--W)/2 - 1px)) rotateX(-38deg)}
.dbx-dust .dbx-light{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.0),rgba(0,0,0,.18))}

.dbx-insert{width:calc(var(--W) - 22px);height:calc((var(--W) - 22px) * 628 / 890);
  left:calc((var(--W) - 22px)/-2);top:calc(var(--H)/-2 - (var(--W) - 22px) * 628 / 890 * .72);
  transform-origin:50% 100%;transform:translateZ(-8px) rotateX(9deg) rotateZ(-2.5deg);
  background:#fff url('assets/drop-box-insert.jpg') center/cover no-repeat;border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.dbx-insert .dbx-light{position:absolute;inset:0;background:
   linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,.28) 66%, rgba(0,0,0,.5) 100%)}

.dbx-floor{width:calc(var(--W) * 2.1);height:calc(var(--D) * 3.2);left:calc(var(--W) * -.8);top:calc(var(--D) * -1.3);
  transform:translateY(calc(var(--H)/2)) rotateX(90deg);
  background:radial-gradient(closest-side, rgba(55,70,0,.42), rgba(55,70,0,.18) 55%, rgba(55,70,0,0));filter:blur(10px)}
.dbx-contact{width:calc(var(--W) + 10px);height:calc(var(--D) + 10px);left:calc((var(--W) + 10px)/-2);top:calc((var(--D) + 10px)/-2);
  transform:translateY(calc(var(--H)/2 - 1px)) rotateX(90deg);background:rgba(30,40,0,.55);filter:blur(5px)}

/* Your mobile layout, applied up to 1279px (below that the text column beside the 560px box gets too narrow) */
@media (max-width:1279px){
  .dbx-band{grid-template-columns:1fr;padding:32px 20px 56px;gap:0}
  .dbx-stage-wrap{order:-1;height:470px;position:relative;overflow:visible}
  .dbx-stage{position:absolute;left:50%;top:30px;margin-left:-280px;transform:scale(.68);transform-origin:50% 0}
}
@media (max-width:760px){
  .dbx-band h2{font-size:28px}
  .dbx-band h2 span{text-wrap:balance} /* no single word left alone on a line */
  .dbx-band .dbx-copy > p{font-size:16px}
  .dbx-form button{padding:18px 14px;font-size:16px}
}
@media (min-width:761px) and (max-width:1279px){ .dbx-band{padding:48px 40px 72px} }

/* 5.5 Lightbox */
.lb{position:fixed;inset:0;z-index:100;background:var(--white);color:var(--black);overflow:hidden}
.lb-inner{height:100%;display:flex;flex-direction:column;padding:20px 20px 24px}
.lb-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.lb-meta{display:flex;flex-direction:column;gap:8px}
.lb-player{flex-shrink:0;margin:24px -20px 0;aspect-ratio:16/9;background:var(--white)}
.lb-player iframe{width:100%;height:100%;border:0;display:block}
/* End-of-video offer: appears at 75% watched, then stays for the rest of the visit */
.lb-offer{flex-shrink:0;margin-top:16px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.lb-offer-title{font-size:18px;font-weight:700;line-height:1;width:100%}
.lb-offer.is-new{animation:lbOfferIn .35s ease-out}
@keyframes lbOfferIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .lb-offer.is-new{animation:none} }
.lb-scroll{margin-top:24px;flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:18px}
.lb-titlewrap{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.lb-title{font-size:18px;font-weight:700;line-height:1.2}
.lb-lines{border-top:1px solid var(--black);padding-top:16px;display:flex;flex-direction:column;gap:16px}
.lb-lines > div{display:flex;flex-direction:column;gap:8px}
.lb-nav{margin-top:20px;flex-shrink:0;display:flex;gap:12px}
@media (min-width:1024px){
  .lb{overflow-y:auto}
  .lb-inner{height:auto;min-height:100%;max-width:1440px;margin:0 auto;padding:40px clamp(40px,13.9vw,200px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"top top" "player player" "offer offer" "head nav" "lines lines";align-content:start}
  .lb-offer{grid-area:offer;margin-top:24px;flex-wrap:nowrap;gap:24px}
  .lb-offer-title{width:auto;font-size:25px}
  .lb-top{grid-area:top}
  .lb-meta{flex-direction:row;gap:40px}
  .lb-player{grid-area:player;margin:40px auto 0;width:min(100%, calc((100vh - 380px) * 16 / 9));min-width:min(100%,640px)}
  .lb-scroll{display:contents}
  .lb-titlewrap{grid-area:head;margin-top:40px;gap:24px}
  .lb-title{font-size:25px}
  .lb-nav{grid-area:nav;margin-top:40px;align-self:end;gap:16px}
  .lb-lines{grid-area:lines;margin-top:40px;padding-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px}
  .lb-lines > div{gap:10px}
}
html.lb-open,html.lb-open body{overflow:hidden}
