/* v5.1 layer: calm and spacious, one accent, system fonts, a menu on phones, poster-first cards whose previews play
   from a Blob while in view. Linked after v5.css on every page. */
:root{--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--acc51:#5b8cff;--acc51-fill:#2f5fd0;--on-acc51:#fff}
[data-theme="light"]{--acc51:#2f5fd0}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){--acc51:#2f5fd0}}
body{font-family:var(--font)}
.v5{--acc:var(--acc51)}
.v5 a{text-underline-offset:3px}
/* header: brand, Menu (phones), theme; six nav items */
.menu-btn{display:none;align-items:center;gap:8px;margin-left:auto;margin-right:8px;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}
.menu-i,.menu-i::before,.menu-i::after{display:block;width:16px;height:2px;background:currentColor;border-radius:2px;position:relative}
.menu-i::before,.menu-i::after{content:"";position:absolute;left:0}
.menu-i::before{top:-5px}.menu-i::after{top:5px}
.site-nav .nav-row ul{flex-wrap:wrap;overflow:visible}
@media (max-width:760px){
 .js .menu-btn{display:inline-flex}
 .js .site-nav{display:none}
 .js body.menu-open .site-nav{display:block}
 .js body.menu-open .site-nav .nav-row ul{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0;padding:8px 0 12px;-webkit-mask-image:none;mask-image:none}
 .js body.menu-open .site-nav a{display:flex;align-items:center;min-height:48px;padding:0 14px;border:1px solid var(--border);border-radius:12px;box-shadow:none;font-size:1rem}
 .js body.menu-open .site-nav a[aria-current="page"]{border-color:var(--acc51);color:var(--ink)}
}
/* page heads: one line, "More" toggle */
.v5 .sec-head{padding:18px 0 10px;max-width:70ch}
.v5 .sec-head h1{margin:.1em 0 .25em}
.intro-more{margin:4px 0 0;font-size:.92rem;color:var(--mut)}
.intro-more>summary{cursor:pointer;display:inline-flex;align-items:center;min-height:36px;color:var(--acc51);font-weight:600}
.intro-more p{margin:.4em 0}
.prompt-text{white-space:pre-wrap;font-size:.9rem;line-height:1.5;max-height:22em;overflow:auto;padding:10px 12px;border-radius:10px;background:var(--soft)}
.h-prompt{font-size:1rem;margin:14px 0 4px}
/* cards */
.v5 .rcs{gap:18px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.v5 .rcs>li+li,.v5 .rcs-row>li+li{margin-top:0}  /* legacy li+li spacing pushed every card but the first down 4px */
.v5 .rc{border:0;background:transparent;border-radius:0;overflow:visible}
.v5 .rc-m{border-radius:14px;overflow:hidden;background:#101318;box-shadow:0 1px 0 rgba(255,255,255,.04),0 10px 24px -18px rgba(0,0,0,.8)}
.v5 .rc-m>video{opacity:0;transition:opacity .3s}
.v5 .rc-m.playing>video{opacity:1}
.v5 .rc-m img[src$=".svg"]{object-fit:contain;background:#fff}
.v5 .rc-b{padding:10px 2px 0;gap:2px}
.v5 .rc-p{margin:0;font-size:.78rem;color:var(--mut);text-transform:none;letter-spacing:0}
.v5 .rc-t{font-size:1rem;font-weight:650}
.v5 .rc-t a{color:inherit;text-decoration:none}
.v5 .rc-t a:hover{text-decoration:underline}
.v5 .rc-h{margin:0;font-size:.85rem;color:var(--mut)}
.rc-n{margin:4px 0 0;font-size:.85rem;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.rc-n a{color:var(--acc51);font-weight:600;text-decoration:none}
.rc-n span{color:var(--mut)}
.rc-s{margin:4px 0 0;font-size:.8rem;line-height:1.35}
.rc-s-bad{color:var(--c-dnf)}
.rc-s-warn{color:var(--c-cfg)}
.rc-s-info{color:var(--mut)}
.v5 .rc-tag{background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
.more-row{text-align:center;margin:22px 0 8px}
.btn-more{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--border);background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}
.btn-more:hover{border-color:var(--acc51)}
/* front page */
.home .home-head{padding:26px 0 18px;max-width:46rem}
.home .home-head h1{font-size:clamp(1.6rem,6vw,2.8rem);line-height:1.08;letter-spacing:-.02em}
.home .home-head .lead{font-size:1rem;line-height:1.5}
.hero{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:900px){.hero{grid-template-columns:2fr 1fr;grid-template-rows:auto auto}.hero-i:first-child{grid-row:span 2}}
.hero .rc-m{aspect-ratio:16/9}
.hero-c{margin:8px 2px 0;font-size:.9rem}
.hero-c a{color:inherit;text-decoration:none}
.hero-c b{display:block;font-size:1rem}
.hero-c span{color:var(--mut)}
.home .hrow{margin:8px 0 34px}
.home .hrow-h h2{font-size:1.2rem}
.hrow-sub{margin:-2px 0 10px;color:var(--mut);font-size:.9rem}
.v5 .rcs-row>.rc{flex:0 0 min(72vw,300px)}
.statline{color:var(--mut);font-size:.88rem;margin:10px 0 4px}
.fine{color:var(--mut);font-size:.78rem;max-width:70ch;margin:4px 0 20px}
.fine a{color:inherit}
/* footer: short */
.site-foot .foot-links{display:flex;flex-wrap:wrap;gap:4px 16px}
/* full-screen demo viewer (phones): one compact title line, the scene gets the rest */
.player-bar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-height:48px;padding:4px 8px}
.player-title{flex:1 1 auto;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;cursor:pointer}
.player-title.open{white-space:normal;overflow:visible}
@media (max-width:760px){.player-cap,.player-hint{display:none}}
/* result page: the preview plays in the poster area; long videos behind a tap; health note */
.viewer-pv{position:absolute;inset:0}
.viewer-pv>img,.viewer-pv>video,.viewer-pv .plate-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.viewer-pv>video{opacity:0;transition:opacity .3s}.viewer-pv.playing>video{opacity:1}
.viewer.live iframe,.viewer.live .play-big{z-index:3}
.tapvid{position:relative;display:grid;place-items:center;background:#101318;overflow:hidden}
.tapvid>img,.tapvid .plate-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.55}
.tapvid .tap-btn{position:relative;z-index:2;max-width:90%;white-space:normal}
.tapvid>video{position:absolute;inset:0;width:100%;height:100%;z-index:3;background:#000}
.health{font-weight:600}
.health-model_code_error,.health-files_not_published,.health-blank{color:var(--c-cfg)}
/* filter bars: labels always visible */
.v5 .fbar{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin:6px 0 18px}
.v5 .fb-f{display:flex;flex-direction:column;gap:3px;font-size:.78rem;color:var(--mut);min-width:0;flex:1 1 140px;max-width:220px}
.v5 .fb-f>span{font-weight:600}
.v5 .fb-f select,.v5 .fb-f input{min-height:40px;font:inherit;font-size:.9rem;color:var(--ink);background:transparent;border:1px solid var(--border);border-radius:10px;padding:0 10px;width:100%}
.v5 .fb-q{flex:2 1 220px;max-width:360px}
.v5 .fb-n{flex:1 0 100%;margin:0;font-size:.82rem;color:var(--mut)}
.v5 .fbar{position:static;flex-wrap:wrap;overflow:visible;background:none;padding:0;border:0;align-items:flex-end}
.v5 .fb-f{flex:1 1 140px;flex-direction:column;align-items:stretch;border:0;border-radius:0;padding:0;text-align:left}
.v5 .fb-f select{max-width:none;padding:0 10px;border:1px solid var(--border)}
@media (max-width:760px){.v5 .fb-f{flex:1 1 calc(50% - 6px);max-width:none}.v5 .fb-q{flex-basis:100%;max-width:none}}

/* v5.1 folded tables and test lists */
.tbl-fold { margin: .75rem 0 1.25rem; }
.tbl-fold > summary { cursor: pointer; color: var(--acc51); font-weight: 600; padding: .6rem 0; min-height: 44px; }
.tbl-fold[open] > summary { margin-bottom: .5rem; }
.test-links { columns: 2 16rem; column-gap: 2rem; padding-left: 1.1rem; margin: .75rem 0; }
.test-links li { break-inside: avoid; margin: .2rem 0; }
.collection-links a { white-space: nowrap; }
.sec-fold { border-top: 1px solid var(--line, rgba(127,127,127,.25)); padding: .25rem 0; }
.sec-fold > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .5rem; min-height: 44px; }
.sec-fold > summary::-webkit-details-marker { display: none; }
.sec-fold > summary::before { content: "+"; color: var(--acc51); font-weight: 700; width: 1rem; flex: none; }
.sec-fold[open] > summary::before { content: "\2212"; }
.sec-fold > summary h2 { margin: .5rem 0; font-size: 1.15rem; }
/* v5.1.2: visible tap-to-play when autoplay is refused or the Blob fetch failed; saved stills of a snapshot slideshow */
.rc-m,.viewer-pv{position:relative}
.tap-fallback{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;padding:.5em 1em;border:0;border-radius:999px;background:var(--acc51-fill,#2f5fd0);color:var(--on-acc51,#fff);font:inherit;font-weight:600;cursor:pointer}
.tapvid .tap-fallback{transform:none;left:auto;top:auto}
.snap-strip{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0 0;padding:0}
.snap-strip li{margin:0;flex:0 0 auto}
.snap-strip img{display:block;width:96px;height:auto;border-radius:4px}
.snaps .viewer img{width:100%;height:100%;object-fit:contain}
