/* ET Labs Junior — coming-soon media (preview).
   Design's motion files drop into /assets/junior/ (see docs/JUNIOR-ASSETS.md):
     junior-coming-soon-wide.webm / .mp4 / -poster.png    -> /junior/ hero
     junior-coming-soon-square.webm / .mp4 / -poster.png  -> home + products cards
   If they fail to load, the CSS placeholder below stays visible (typed "Junior" lockup
   from Design's Oct 14 logo work + a CSS "Coming soon" stamp). Light theme only. */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}

.jr-media{position:relative;overflow:hidden;background:#FBF4E4;display:grid;place-items:center;isolation:isolate}
.portfolio-media.jr-media{background:#FBF4E4}
.jr-media--wide{width:min(100%,880px);aspect-ratio:16/9;border-radius:28px;margin:0 auto;box-shadow:0 18px 46px rgba(25,24,23,.08);border:1px solid rgba(25,24,23,.08)}

/* Placeholder (always rendered underneath; video/poster covers it once loaded) */
.jr-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9em;font-size:clamp(34px,7vw,64px);padding:8%;text-align:center}
.jr-media--square .jr-placeholder{font-size:clamp(30px,8vw,46px)}
.jr-lockup{display:inline-flex;align-items:center;gap:.28em;line-height:1}
.jr-lockup img{height:1.15em;width:auto;display:block}
.jr-type{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;display:inline-flex;align-items:center;font-size:.62em;color:#0B0B0C}
.jr-type .t{display:inline-block;overflow:hidden;white-space:nowrap;width:6ch;animation:jr-type 4.8s steps(6,end) infinite}
.jr-type .c{display:inline-block;width:.14em;height:1.05em;margin-left:.06em;background:#E8896B;animation:jr-blink .8s steps(1) infinite}
.jr-media--square .jr-lockup{flex-direction:column;gap:.35em}
.jr-media--square .jr-lockup img{height:1.3em}
.jr-media--square .jr-type{font-size:.8em}
@keyframes jr-type{0%{width:0}36%{width:6ch}72%{width:6ch}90%{width:0}100%{width:0}}
@keyframes jr-blink{0%{opacity:1}50%{opacity:0}}

.jr-stamp{display:inline-block;font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:700;font-size:clamp(12px,.3em,18px);letter-spacing:.18em;text-transform:uppercase;color:#C2553A;border:3px solid currentColor;border-radius:8px;padding:.45em .9em;transform:rotate(-6deg);box-shadow:inset 0 0 0 2px #FBF4E4,inset 0 0 0 4px rgba(194,85,58,.35);opacity:.92}
.jr-media--wide .jr-stamp{font-size:clamp(13px,1.6vw,20px)}

/* Real motion / poster, hidden until it actually loads so missing files never show a broken box */
.jr-video,.jr-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity var(--dur-3,420ms) ease;z-index:1;background:#FBF4E4;pointer-events:none}
.jr-media.is-ready .jr-video,.jr-media.is-ready .jr-poster{opacity:1}
.jr-media.is-ready .jr-placeholder{visibility:hidden} /* fallback only: stays when the media fails */

@media (prefers-reduced-motion:reduce){
  .jr-type .t{animation:none;width:6ch}.jr-type .c{animation:none;opacity:1}
  .jr-video{display:none}
}

/* /junior/ teaser page */
.junior-teaser{padding:72px 0 96px;background:radial-gradient(ellipse at 50% 30%,#FBF4E4 0%,var(--bg,#faf9f6) 70%)}
.junior-teaser .container{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.junior-teaser .eyebrow{margin:40px 0 14px}
.junior-teaser h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:-.035em;line-height:1.05;margin:0 0 22px;max-width:16ch}
.junior-teaser .junior-body{max-width:60ch;font-size:1.12rem;line-height:1.65;color:var(--muted,#5b5853);margin:0 0 22px}
.junior-teaser .junior-note{max-width:60ch;font-size:.98rem;line-height:1.6;color:var(--text,#191817);background:rgba(255,255,255,.72);border:1px solid rgba(25,24,23,.10);border-radius:16px;padding:16px 20px;margin:0 0 28px}
@media(max-width:600px){.junior-teaser{padding:40px 0 64px}.jr-media--wide{border-radius:20px}}

/* Home hero pill -> /products/junior/ (keeps the work order untouched) */
.jr-pill{display:inline-flex;align-items:center;gap:.5em;margin-top:18px;min-height:44px;padding:10px 18px;border-radius:999px;background:#FBF4E4;border:1px solid rgba(194,85,58,.35);color:#191817;font-size:.95rem;font-weight:600;text-decoration:none;line-height:1.2;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.jr-pill:hover,.jr-pill:focus-visible{border-color:#C2553A;box-shadow:0 6px 18px rgba(194,85,58,.16);transform:translateY(-1px)}
.jr-pill-arrow{color:#C2553A;transition:transform .2s ease}
.jr-pill:hover .jr-pill-arrow{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){.jr-pill,.jr-pill-arrow{transition:none}.jr-pill:hover{transform:none}.jr-pill:hover .jr-pill-arrow{transform:none}}

/* Card "Coming:" list */
.jr-coming-label{margin:14px 0 6px;font-weight:600;font-size:.95rem}
.jr-coming{margin:0 0 18px;padding-left:1.2em;line-height:1.6;color:var(--muted,#5b5853)}
.jr-coming li::marker{color:#C2553A}

/* /products/junior/ feature blocks */
.jr-features{list-style:none;margin:6px 0 28px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,880px);text-align:left}
.jr-feature{padding:20px 22px;border-radius:18px;background:rgba(255,255,255,.78);border:1px solid rgba(25,24,23,.10)}
.jr-feature h2{font-size:1.1rem;margin:0 0 8px;letter-spacing:-.01em}
.jr-feature p{margin:0;line-height:1.6;color:var(--muted,#5b5853)}
@media(max-width:640px){.jr-features{grid-template-columns:1fr}}

/* iOS Safari: never let the media box or video paint black/transparent while loading (2026-10-16) */
.portfolio-media.jr-media,.jr-media,.jr-media video.jr-video,.jr-media .jr-poster{background-color:#FBF4E4}
/* Square cards (home + products): match the decoded MP4 cream so the letterbox band below the video disappears (2026-10-16) */
.portfolio-media.jr-media.jr-media--square,.jr-media--square video.jr-video,.jr-media--square .jr-poster{background-color:#F9F0E3}
/* MyHQ preview (2026-10-17): square card frame on home + products; cream fills the whole box so no band shows */
.portfolio-media.jr-media.jr-media--square{aspect-ratio:1/1;width:min(100%,410px);align-self:center}
.jr-media--square video.jr-video,.jr-media--square .jr-poster{object-fit:cover}
