/* technifyed.com — Project Vault (/projects, /project/<slug>). Sits on site.css and uses its tokens and pieces
   (.phead, .chip, .drop, .tag, .btn, .pager, .crumbs, the hand-drawn circle). --c is a stream's colour and --ct the
   same colour dark enough for text; pages without a stream fall back to ink. Mobile first; dark mode is flat. */
body[data-page="vault"]{--c:var(--ink);--ct:var(--ink);--top:64px}
@media (min-width:900px){body[data-page="vault"]{--top:74px}}
.pv .dot,.pv-kick .dot{background:var(--c)}
.pv-kick{display:flex;align-items:center;gap:7px;margin:0;font:700 12px/1.3 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ct)}
.pv-meta{display:flex;flex-wrap:wrap;gap:6px}
.pv-meta li,.pjr-f li{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:99px;background:var(--wash);font:600 12.5px/1.2 var(--ui);color:var(--ink);white-space:nowrap}
.pv-meta .i,.pjr-f .i{width:13px;height:13px;color:var(--muted)}
.pv-meta .lv,.pjr-f .lv{background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--ct)}
.pv-meta .lv .i,.pjr-f .lv .i{color:inherit}
.pv-ic{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--ct)}
.pv-ic .i{width:18px;height:18px}
.pv-ic.mix{background:linear-gradient(135deg,#16A34A33,#2563EB33 40%,#7C3AED33 70%,#E11D4833)}
.pv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}
.pv-head h2{font-size:clamp(23px,6vw,32px)}
.pv-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;font:700 15px var(--head);color:var(--ink);text-decoration:none;white-space:nowrap}
.pv-link:hover{color:var(--brand)}
.pv-sec{padding-top:44px}
.pv-end{height:24px}
.pv-narrow{max-width:980px}

/* ---- the strip under the header ---- */
.pv-nav{border-bottom:1px solid var(--line);background:var(--bg)}
.pv-nav-in{display:flex;align-items:center;gap:6px;min-height:52px}
.pv-nav-links{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;margin-left:-10px}
.pv-nav-links::-webkit-scrollbar{display:none}
.pv-nav a{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:44px;padding:0 10px;border-radius:10px;font:600 14.5px var(--ui);color:var(--muted);text-decoration:none;white-space:nowrap}
.pv-nav a:hover{color:var(--ink);background:var(--wash)}
.pv-nav a[aria-current]{color:var(--ink);box-shadow:inset 0 -2.5px 0 var(--ink);border-radius:0}
.pv-nav-btn{color:var(--ink)!important;border:1px solid var(--line)}
.pv-nav-btn .i{width:16px;height:16px}
.pv-nav-btn b{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--ink);color:var(--bg);font:700 12px var(--num)}
.pv-nav-btn.mine[aria-current]{box-shadow:none;border-radius:10px;border-color:var(--ink)}
@media (max-width:719px){.pv-nav-btn span{display:none}.pv-nav-btn{width:44px;justify-content:center;padding:0!important;position:relative}.pv-nav-btn b{position:absolute;top:2px;right:0;min-width:17px;height:17px;font-size:10.5px}}

/* ---- search first ---- */
.pv-sf{padding:22px 0 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 7%,var(--wash)),var(--bg))}
:root[data-theme="dark"] .pv-sf{background:var(--bg)}
.pv-sf .crumbs{margin-bottom:12px}
.pv-sf h1{margin:6px 0 16px;font-size:clamp(32px,8.6vw,56px);letter-spacing:-.035em;line-height:1.02}
.pv-sf h1 .circled{font-size:.56em;--mark:var(--c);margin-left:4px;vertical-align:.12em}
.pv-sf .lede{margin:-6px 0 18px;font-size:16.5px;max-width:70ch}
.pv-big{display:flex;align-items:center;gap:8px;padding:6px;background:var(--card);border:2px solid var(--ink);border-radius:20px;box-shadow:var(--shadow-card)}
.pv-big label{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding-left:12px;min-height:52px}
.pv-big .i{width:22px;height:22px;color:var(--muted);flex:none}
.pv-big input,.pv-inline input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:600 16px var(--ui)}
.pv-big input::placeholder{font-weight:500}
.pv-big:focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 22%,transparent)}
.pv-big .btn{min-height:50px}
.pv-read{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.pv-read>span:first-child,.pv-also>span{font:600 13.5px var(--ui);color:var(--muted);margin-right:2px}
.pv-read .chip{min-height:40px;padding:6px 12px;font-size:14px}
.pv-read .chip .i{width:14px;height:14px}
.pv-read .chip.gone{opacity:.55;text-decoration:line-through}
.pv-read .chip em{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:99px;background:var(--ink);color:var(--bg);font:700 11.5px var(--num);font-style:normal;opacity:1}
.pv-adds{display:none;gap:8px}
.pv-read .drop>summary::after{display:none}
.pv-clear{min-height:40px;display:inline-flex;align-items:center;padding:0 6px;font:600 14px var(--ui);color:var(--muted)}
.pv-also{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:14px}
.pv-also a{color:var(--ink);font-weight:600;font-size:14.5px;min-height:32px;display:inline-flex;align-items:center}
@media (max-width:480px){.pv-big .btn{padding-inline:16px}.pv-also a:nth-of-type(n+3){display:none}}

/* the search box, one tap away once it has scrolled off a phone screen */
.pv-fab{position:fixed;right:var(--gutter);bottom:calc(16px + env(safe-area-inset-bottom));z-index:24;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 18px;border:0;border-radius:99px;background:var(--ink);color:var(--bg);font:700 15px var(--head);box-shadow:0 14px 30px -12px #0F102099;cursor:pointer}
.pv-fab .i{width:18px;height:18px}
body:has(.pv-tray:not([hidden])) .pv-fab{bottom:calc(78px + env(safe-area-inset-bottom))}
@media (min-width:1000px){.pv-fab{display:none!important}}

/* ---- explorer: stream → subject → projects ---- */
.pv-ex{display:grid;gap:10px;padding-top:6px;min-height:50vh}
.pv-pane{min-width:0}
.pv-pane-h{margin:8px 2px 6px;font:700 11.5px var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pv-list{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 6px}
.pv-list::-webkit-scrollbar{display:none}
.pv-list a{display:flex;align-items:center;gap:8px;flex:none;min-height:44px;padding:5px 12px 5px 6px;border:1px solid var(--line);border-radius:99px;background:var(--card);color:var(--ink);text-decoration:none;font:600 14.5px var(--ui);white-space:nowrap}
.pv-list a>span:not(.pv-ic){padding-left:6px}
.pv-list .pv-ic{width:32px;height:32px;border-radius:50%}
.pv-list a em{font:600 12.5px var(--num);font-style:normal;color:var(--muted)}
.pv-list a>.i{display:none}
.pv-list a.on{background:var(--c);border-color:var(--c);color:#fff}
.pv-list a.on em{color:inherit;opacity:.85}
.pv-list a.on .pv-ic{background:rgba(255,255,255,.2);color:#fff}
.pv-list a.all.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.pv-list a.all.on .pv-ic{color:var(--bg)}
.p1 .pv-pane-h,.p2 .pv-pane-h:first-child{display:none}
.p2 .qi{width:18px;height:18px;margin-left:8px;color:var(--muted)}
.pv-help-link{display:none}
.pv-count{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:6px 0 12px;color:var(--muted);font-size:15.5px}
.pv-count p{min-width:0}
.pv-count b{color:var(--ink);font-family:var(--num)}
.pv-sort label{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}
.pv-sort select,.pv-fld select,.pv-fld textarea{min-height:44px;padding:0 10px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--card);color:var(--ink);font:500 15px var(--ui);max-width:100%}
.pv-none{display:flex;gap:12px;margin-bottom:14px;padding:16px;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--card)}
.pv-none>.i{flex:none;width:22px;height:22px;color:var(--brand);margin-top:2px}
.pv-none b{color:var(--ink)}
.pv-none p{color:var(--muted)}
.pv-none-try{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.pv-none-try span{font:600 13.5px var(--ui)}
.pv-none-try .chip{min-height:40px}
.pv-fixed{margin-bottom:12px;color:var(--muted);font-size:15px}
.pv-fixed b{color:var(--ink)}
.pv [data-pv-busy]{opacity:.55;transition:opacity .15s ease}

/* project row */
.pv-rows{display:grid;gap:12px;padding-bottom:20px}
.pjr{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease}
.pjr-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#fff;background:linear-gradient(160deg,rgba(255,255,255,.22),rgba(255,255,255,0) 50%),var(--c);box-shadow:0 8px 16px -10px var(--c)}
.pjr-ic .i{width:23px;height:23px}
.pjr .pv-kick{padding-right:44px}
.pjr h3{margin:6px 0;padding-right:42px;font-size:18.5px;line-height:1.2}
.pjr h3 a,.pj h3 a{color:var(--ink);text-decoration:none}
.pjr h3 a::after,.pj h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.pjr h3 a:focus-visible,.pj h3 a:focus-visible{outline:none}
.pjr:focus-within,.pj:focus-within{outline:3px solid var(--brand);outline-offset:2px}
.pj-d{color:var(--muted);font-size:14.5px;line-height:1.45;margin-bottom:8px}
.pjr-why{display:flex;gap:6px;margin-bottom:8px;font:600 13.5px/1.4 var(--ui);color:var(--ok)}
.pjr-why .i{flex:none;width:15px;height:15px;margin-top:2px}
.pjr-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pj-cmp{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:3px 10px;border:1px solid var(--line-strong);border-radius:99px;background:var(--card);color:var(--muted);font:600 12.5px var(--ui);cursor:pointer}
.pj-cmp .i{width:13px;height:13px}
.pj-cmp[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.pjr .pj-cmp::before{content:"";position:absolute;inset:-7px -4px}
.pjr-f{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
.pj-save{position:absolute;z-index:1;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--muted);cursor:pointer}
.pj-save:hover{border-color:var(--c);color:var(--ct)}
.pj-save .i,[data-save] .i{width:18px;height:18px}
[data-save] .on,[data-save][aria-pressed="true"] .off{display:none}
[data-save][aria-pressed="true"] .on{display:block}
.pj-save[aria-pressed="true"]{background:var(--c);border-color:var(--c);color:#fff}

/* project card */
.pv-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.pj{position:relative;display:flex;flex-direction:column;padding:16px 16px 0;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r-lg);box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease}
.pj .pv-kick{padding-right:48px}
.pj h3{margin:9px 44px 6px 0;font-size:19px;line-height:1.18}
.pj .pv-meta{margin:4px 0 14px}
.pj-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:auto -16px 0;padding:11px 16px;border-top:1px solid var(--line);font:500 13px var(--ui);color:var(--muted)}
.pj-foot span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pj-go{display:inline-flex;align-items:center;gap:5px;font:700 14px var(--head);color:var(--ink);white-space:nowrap}
.pj-go .i{width:15px;height:15px}
.pv-shelf{padding-top:36px}
.pv-shelf .pv-head{margin-bottom:10px}
.pv-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gutter) 20px;scrollbar-width:none;max-width:1240px;margin:0 auto}
.pv-rail::-webkit-scrollbar{display:none}
.pv-rail .pj{flex:none;width:min(82vw,340px);scroll-snap-align:start;scroll-margin-left:var(--gutter)}

/* help band and collections */
.pv-eyebrow{display:flex;align-items:center;gap:6px;margin:0;font:700 12.5px var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}
.pv-eyebrow .i{width:15px;height:15px}
.pv-help{display:grid;gap:18px;padding:22px 18px;border-radius:var(--r-lg);background:var(--wash);border:1px solid var(--line)}
.pv-help h2{margin-top:8px;font-size:clamp(24px,6.2vw,32px)}
.pv-help ol{display:grid;gap:10px}
.pv-help li{display:flex;align-items:center;gap:12px;font:600 16px var(--ui)}
.pv-help li b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--bg);font:700 14px var(--num)}
.pv-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pv-col{position:relative;display:grid;gap:10px;align-content:start;padding:22px 14px 14px;background:var(--card);border:1px solid var(--line);border-radius:18px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease}
.pv-col b{font-size:28px;line-height:1}
.pv-col>span{font:600 14.5px/1.3 var(--ui)}
.pv-col>.i{position:absolute;top:12px;right:12px;width:16px;height:16px;color:var(--muted)}
.pv-colsx{display:grid;gap:12px;padding-bottom:40px}
.pv-colx{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none;box-shadow:var(--shadow-soft)}
.pv-colx b.num{font-size:26px;min-width:64px;text-align:center}
.pv-colx strong{display:block;font:700 18px/1.2 var(--head)}
.pv-colx small{display:block;margin-top:3px;color:var(--muted);font-size:14.5px;line-height:1.4}
.pv-colx>.i{color:var(--muted)}

/* ---- filter sheet ---- */
.pv-sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:88dvh;padding:0;border:0;border-radius:22px 22px 0 0;background:var(--bg);color:var(--ink);box-shadow:var(--shadow-lg)}
.pv-sheet::backdrop{background:#0F102066}
.pv-sheet form{display:flex;flex-direction:column;max-height:88dvh}
.pv-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.pv-sheet-head h2{font-size:22px}
.pv-sheet-body{display:grid;gap:14px;padding:16px;overflow-y:auto;overscroll-behavior:contain}
.pv-sheet-foot{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg)}
.pv-fld{display:grid;gap:6px}
.pv-fld>span{font:600 13.5px var(--ui);color:var(--muted)}
.pv-fld select{width:100%;min-height:48px}
.pv-fld textarea{width:100%;padding:10px;line-height:1.45;resize:vertical}
.pv-chk{display:flex;align-items:center;gap:10px;min-height:44px;font:500 15px var(--ui);cursor:pointer}
.pv-chk input{width:20px;height:20px;flex:none;accent-color:var(--ink)}
@media (prefers-reduced-motion:no-preference){.pv-sheet[open]{animation:pv-up .22s cubic-bezier(.2,.8,.2,1)}}
@keyframes pv-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}

/* ---- compare tray and table ---- */
.pv-tray{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--navy);color:#fff;box-shadow:0 -10px 30px -16px #0008}
.pv-tray-in{display:flex;align-items:center;gap:10px}
.pv-tray p{flex:none;font:600 14.5px var(--ui)}
.pv-tray-list{display:flex;gap:6px;flex:1;min-width:0;overflow:hidden}
.pv-tray-list span{flex:0 1 auto;min-width:0;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.14);font:500 13px var(--ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-tray .btn{background:#fff;color:#0F1020;flex:none}
.pv-tray .icon-btn{background:transparent;border-color:rgba(255,255,255,.3);color:#fff}
body:has(.pv-tray:not([hidden])) .foot{padding-bottom:80px}
.pv-cmp-note{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:var(--muted);font-size:14.5px}
.pv-cmp-note .i{width:16px;height:16px}
.pv-cmp-wrap{overflow-x:auto;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter) 40px}
.pv-cmp{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.pv-cmp.n3{min-width:760px}
.pv-cmp th,.pv-cmp td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.45}
.pv-cmp tbody th{width:130px;font:600 13.5px var(--ui);color:var(--muted)}
.pv-cmp thead th{position:relative;padding:16px 44px 16px 14px;border-top:4px solid var(--c);font:700 17px/1.2 var(--head)}
.pv-cmp thead a{color:var(--ink);text-decoration:none}
.pv-cmp thead .pv-kick{margin-bottom:6px}
.pv-cmp .pv-x{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--muted)}
.pv-cmp .pv-x .i{width:16px;height:16px}
.pv-cmp tr.diff td{background:color-mix(in srgb,var(--hl) 22%,var(--card))}
.pv-cmp tr:last-child th,.pv-cmp tr:last-child td{border-bottom:0}
:root[data-theme="dark"] .pv-cmp tr.diff td{background:var(--wash-2)}
.pv-empty{display:grid;justify-items:center;gap:12px;margin:24px 0 40px;padding:34px 20px;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;color:var(--muted)}
.pv-empty>.i{width:28px;height:28px;color:var(--brand)}
.pv-empty b{color:var(--ink)}

/* ---- slim page head, finder, My Projects, streams ---- */
.pv-slim{padding-bottom:22px}
.pv-slim h1{font-size:clamp(30px,7.6vw,46px)}
.pv-slim h1 .circled{font-size:.5em;margin-left:6px;--mark:var(--brand)}
.pv-slim .lede{margin-bottom:0}
.pv-find{display:grid;gap:28px;padding-top:8px;padding-bottom:40px}
.pv-finder{display:grid;gap:14px}
.pv-q{padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft)}
.pv-q legend{display:flex;align-items:center;gap:10px;float:left;width:100%;margin-bottom:12px;font:700 17.5px/1.25 var(--head)}
.pv-q legend b{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);font:700 13.5px var(--num)}
.pv-q>*:not(legend){clear:both}
.pv-q-hint{margin:-6px 0 10px;color:var(--muted);font-size:14px}
.pv-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pv-picks{display:flex;flex-wrap:wrap;gap:8px}
.pv-pick{position:relative}
.pv-pick input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.pv-pick span{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1.5px solid var(--line-strong);border-radius:99px;background:var(--card);font:600 14.5px var(--ui)}
.pv-pick input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.pv-pick input:focus-visible+span{outline:3px solid var(--brand);outline-offset:2px}
.pv-find-go{min-height:54px;font-size:16.5px}
.pv-found-how{margin:-6px 0 14px;color:var(--muted);font-size:14.5px}
.pv-mine{padding-top:6px;padding-bottom:40px}
.pv-mine-bar{display:grid;gap:10px;margin-bottom:14px}
.pv-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-block:2px}
.pv-tabs::-webkit-scrollbar{display:none}
.pv-tabs .chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.pv-mine-io{display:flex;gap:8px}
.pv-mine-io .btn{cursor:pointer}
.pv-mine-list{display:grid;gap:12px}
.pv-mi{position:relative;display:grid;gap:10px;padding:16px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:var(--r-lg);box-shadow:var(--shadow-soft)}
.pv-mi h3{font-size:18.5px;line-height:1.2;margin:4px 0}
.pv-mi h3 a{color:var(--ink);text-decoration:none}
.pv-mi-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pv-mi-row select{min-height:44px;padding:0 10px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--card);color:var(--ink);font:600 14.5px var(--ui)}
.pv-mi-row .pv-bar{flex:1;min-width:120px}
.pv-mi-row b{font:700 14.5px var(--num)}
.pv-mi-note{color:var(--muted);font-size:14px;line-height:1.45;white-space:pre-wrap}
.pv-mi-x{position:absolute;top:8px;right:8px;width:40px;height:40px}
.pv-mine-note{display:flex;gap:8px;margin-top:18px;color:var(--muted);font-size:14px}
.pv-mine-note .i{flex:none;width:16px;height:16px;margin-top:3px}
.pv-streams-grid{display:grid;gap:14px}
.pv-stream{padding:18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r-lg);box-shadow:var(--shadow-soft)}
.pv-stream-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pv-stream-h h2{flex:1;font-size:22px}
.pv-stream-h h2 a{color:var(--ink);text-decoration:none}
.pv-stream-h em{font:600 13.5px var(--num);font-style:normal;color:var(--muted);white-space:nowrap}
.pv-stream>p{color:var(--muted);font-size:14.5px;line-height:1.5;margin-bottom:12px}
.pv-stream-subs{display:grid;gap:2px}
.pv-stream-subs a{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;padding:4px 10px;margin:0 -10px;border-radius:10px;color:var(--ink);text-decoration:none;font:600 15px var(--ui)}
.pv-stream-subs a:hover{background:var(--wash)}
.pv-stream-subs em{font:600 13px var(--num);font-style:normal;color:var(--muted)}
.pv-pairs{display:flex;flex-wrap:wrap;gap:8px}

/* ---- one project ---- */
.pv-ph{padding:20px 0 22px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 10%,var(--bg)),var(--bg))}
:root[data-theme="dark"] .pv-ph{background:var(--bg)}
.pv-ph .crumbs{margin-bottom:14px}
.pv-ph h1{margin:8px 0 10px;font-size:clamp(29px,7.4vw,48px);letter-spacing:-.03em;line-height:1.05;max-width:22ch}
.pv-ph .lede{max-width:66ch}
.pv-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:18px 0 12px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.pv-facts li{display:grid;grid-template-columns:auto 1fr;gap:1px 10px;align-items:center;padding:12px 14px;background:var(--card)}
.pv-facts .i{grid-row:1/3;width:20px;height:20px;color:var(--ct)}
.pv-facts span{font:600 12px var(--ui);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pv-facts b{font:700 15.5px/1.25 var(--head)}
.pv-pre{font-size:15px;color:var(--muted)}
.pv-pre b{color:var(--ink)}
.pv-labels{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.pv-s .pv-labels{margin:0 0 8px}
.pv-labels a.tag{text-decoration:none}
.tag.prov{background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--ct)}
.pv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.pv-actions .btn{min-height:48px}
.pv-actions .btn .i{width:17px;height:17px}
.pv-start{background:var(--c);color:#fff}
.pv-proj[style*="#F59E0B"] .pv-start,.pv-proj[style*="#06B6D4"] .pv-start{color:#1A1203}
[data-save][aria-pressed="true"].btn-ghost{border-color:var(--c);color:var(--ct)}
.pv-toc{position:sticky;top:var(--top);z-index:20;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-block:1px solid var(--line)}
.pv-toc-in{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.pv-toc-in::-webkit-scrollbar{display:none}
.pv-toc a{flex:none;display:inline-flex;align-items:center;min-height:46px;padding:0 12px;font:600 14.5px var(--ui);color:var(--muted);text-decoration:none;white-space:nowrap}
.pv-toc a:first-child{padding-left:0}
.pv-toc a:hover,.pv-toc a.on{color:var(--ink)}
.pv-toc a.on{box-shadow:inset 0 -2.5px 0 var(--c)}
.pv-body{display:grid;gap:24px;padding-top:8px}
.pv-main{min-width:0}
.pv-s{padding:26px 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--top) + 60px)}
.pv-s>h2{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:clamp(23px,5.6vw,28px)}
.pv-s>h2 .i{width:22px;height:22px;color:var(--ct)}
.pv-s h3{margin:20px 0 8px;font-size:17.5px}
.pv-s h4{margin:0 0 6px;font:700 15px var(--head)}
.pv-s p{line-height:1.6;max-width:72ch}
.pv-s-sub{margin:-6px 0 14px;color:var(--muted);font-size:14.5px}
.pv-note{display:flex;gap:10px;margin-top:20px;padding:14px 16px;border-radius:14px;background:var(--wash);font-size:14.5px;line-height:1.5}
.pv-note .i{flex:none;width:18px;height:18px;margin-top:2px;color:var(--brand)}
.pv-safe{margin-top:22px;padding:18px;border:1.5px solid color-mix(in srgb,var(--bad) 35%,var(--line));border-radius:var(--r-lg);background:var(--bad-wash)}
.pv-safe>h2{color:var(--ink);font-size:20px}
.pv-safe>h2 .i{color:var(--bad)}
.pv-ul{display:grid;gap:8px;padding-left:0}
.pv-ul li{position:relative;padding-left:22px;line-height:1.5;max-width:72ch}
.pv-ul li::before{content:"";position:absolute;left:4px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--c)}
.pv-ul.ticks li::before{left:1px;top:.42em;width:11px;height:6px;border-radius:0;background:transparent;border-left:2.5px solid var(--c);border-bottom:2.5px solid var(--c);transform:rotate(-45deg)}
.pv-ul.boxes li::before{left:0;top:.28em;width:14px;height:14px;border-radius:4px;background:transparent;border:2px solid var(--line-strong)}
.pv-ul.cols{grid-template-columns:1fr 1fr}
.pv-ol{display:grid;gap:7px;padding-left:1.4em;list-style:decimal;line-height:1.5}
.pv-ol li::marker{font:700 14px var(--num);color:var(--ct)}
.pv-tags{display:flex;flex-wrap:wrap;gap:6px}
.pv-tags a.tag{text-decoration:none}
.pv-tags a.tag:hover{color:var(--ink)}
.pv-ct{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.pv-ct div{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.pv-ct span{display:block;font:600 12px var(--ui);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pv-ct b{display:block;margin:4px 0 2px;font:800 21px/1.15 var(--head)}
.pv-ct small{color:var(--muted);font-size:13px;line-height:1.35;display:block}
.pv-tip{display:flex;gap:10px;margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--ok-wash);font-size:14.5px}
.pv-tip .i{flex:none;width:17px;height:17px;margin-top:3px;color:var(--ok)}
/* roadmap: a vertical line of stages */
.pv-road{position:relative;display:grid;gap:0}
.pv-stage{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 12px;padding-bottom:16px}
.pv-stage::before{content:"";position:absolute;left:21px;top:40px;bottom:0;width:2px;background:repeating-linear-gradient(var(--line-strong) 0 5px,transparent 5px 10px)}
.pv-stage:last-child::before{display:none}
.pv-stage-n b{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--card);border:2px solid var(--c);color:var(--ct);font:700 16px var(--num)}
.pv-stage-n .i{width:18px;height:18px}
.pv-stage:first-child .pv-stage-n b,.pv-stage.done .pv-stage-n b{background:var(--c);color:#fff}
.pv-stage-b{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card);min-width:0}
.pv-stage-b h3{margin:0 0 4px;font:700 12.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ct)}
.pv-stage-b p,.pv-stage-b li{font-size:15px;line-height:1.5}
.pv-stage-b a{color:var(--ink);font-weight:600}
.pv-stage.big .pv-stage-b{border:1.5px solid var(--ink);box-shadow:4px 4px 0 color-mix(in srgb,var(--c) 45%,transparent)}
.pv-steps{display:grid;gap:10px;margin-top:6px;counter-reset:st}
.pv-steps li{position:relative;padding-left:34px;counter-increment:st;font-size:15.5px!important}
.pv-steps li::before{content:counter(st);position:absolute;left:0;top:0;display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--ct);font:700 12.5px var(--num)}
.pv-vars{display:grid;gap:10px}
.pv-var{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.pv-var h3{margin:0 0 4px;font-size:16px}
.pv-var p{font-size:15px;color:var(--muted);line-height:1.5}
.pv-ladder{display:grid;gap:0}
.pv-ladder li{position:relative;display:grid;gap:2px;padding:0 0 16px 30px}
.pv-ladder li::before{content:"";position:absolute;left:5px;top:6px;width:12px;height:12px;border-radius:50%;border:2.5px solid var(--c);background:var(--card)}
.pv-ladder li::after{content:"";position:absolute;left:10.5px;top:22px;bottom:0;width:2px;background:var(--line-strong)}
.pv-ladder li:last-child::after{display:none}
.pv-ladder li.here::before{background:var(--c)}
.pv-ladder b{font:700 12.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ct)}
.pv-ladder span{line-height:1.5;font-size:15px}
.pv-ladder li.here span{font-weight:700}
.pv-tabsbar{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:16px;padding:4px;border-radius:14px;background:var(--wash)}
.pv-tabsbar::-webkit-scrollbar{display:none}
.pv-tabsbar button{flex:1 0 auto;min-height:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:700 14.5px var(--head);cursor:pointer;white-space:nowrap}
.pv-tabsbar button[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:var(--shadow-soft)}
.pv-dl{display:grid;gap:8px;margin:0 0 12px}
.pv-fd{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.pv-fd dt{font:700 12.5px var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ct)}
.pv-fd dd{margin:0;line-height:1.5;font-size:15px}
.pv-fd.ask{border-style:dashed;background:transparent}
.pv-fd.ask dd,.pv-askp{color:var(--muted)}
.pv-ask{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:6px;background:var(--hl);color:var(--hl-ink);font:700 11.5px var(--ui);vertical-align:1px}
.pv-links{color:var(--muted);font-size:14.5px}
.pv-links a,.pv-s p a{color:var(--ink);font-weight:600}
.pv-tbl{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.pv-tbl table{width:100%;min-width:420px;border-collapse:collapse;background:var(--card)}
.pv-tbl th{padding:10px 12px;text-align:left;font:700 13px var(--ui);background:var(--wash);border-bottom:1px solid var(--line)}
.pv-tbl td{height:38px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.pv-hks{display:grid;gap:10px}
.pv-hk{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.pv-hk li{font-size:14.5px}
.pv-two-col{display:grid;gap:8px 28px}
.pv-two-col h3:first-child{margin-top:0}
.pv-qa{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:8px}
.pv-qa summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 14px;font:600 15.5px/1.35 var(--ui);cursor:pointer;list-style:none}
.pv-qa summary::-webkit-details-marker{display:none}
.pv-qa summary .i{flex:none;transition:transform .2s ease}
.pv-qa[open] summary .i{transform:rotate(180deg)}
.pv-qa p{padding:0 14px 14px;color:var(--muted)}
.pv-reslist{display:grid;gap:8px}
.pv-res{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-height:60px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);text-decoration:none}
.pv-res:hover{border-color:var(--line-strong)}
.pv-res img,.pv-res-ic{width:32px;height:32px;border-radius:8px;object-fit:contain}
.pv-res-ic{display:grid;place-items:center;background:var(--wash);color:var(--muted)}
.pv-res b{display:block;font:600 15px/1.3 var(--ui)}
.pv-res small{display:block;color:var(--muted);font-size:13px}
.pv-res>.i{color:var(--muted);width:16px;height:16px}
/* tracker */
.pv-side{min-width:0}
.pv-trk{display:grid;gap:14px;padding:18px;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.pv-trk-top{display:flex;justify-content:space-between;align-items:baseline}
.pv-trk-top h2{font-size:20px}
.pv-trk-top b{font-size:22px;color:var(--ct)}
.pv-bar{position:relative;height:10px;border-radius:99px;background:var(--wash-2);overflow:hidden}
.pv-bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--c);border-radius:99px;transition:width .3s ease}
.pv-bar span{position:absolute;top:0;bottom:0;width:2px;background:var(--card)}
.pv-bar span:nth-of-type(1){left:25%}.pv-bar span:nth-of-type(2){left:50%}.pv-bar span:nth-of-type(3){left:75%}
.pv-checks{display:grid}
.pv-checks .pv-chk input{accent-color:var(--c)}
.pv-checks .pv-chk:has(input:checked) span{color:var(--muted);text-decoration:line-through}
.pv-trk-all{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:700 14.5px var(--head);color:var(--ink);text-decoration:none}
.pv-trk-all .i{width:16px;height:16px}
.pv-rel{padding-top:36px;padding-bottom:20px}
.pv-rel>h2{font-size:clamp(25px,6.4vw,34px)}
.pv-relg>h3{margin:22px 0 12px;font:700 13px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pv-mbar{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;gap:10px;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.pv-mbar .btn{flex:1;min-height:48px}
.pv-mbar .icon-btn{width:48px;height:48px}
.pv-mbar .icon-btn[aria-pressed="true"]{background:var(--c);border-color:var(--c);color:#fff}
body:has(.pv-mbar) .foot{padding-bottom:76px}
body:has(.pv-mbar) .pv-tray{bottom:69px}

@media (max-width:699px){
  .pv-relg .pv-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 16px;scrollbar-width:none}
  .pv-relg .pv-grid::-webkit-scrollbar{display:none}
  .pv-relg .pj{flex:none;width:min(80vw,320px);scroll-snap-align:start;scroll-margin-left:var(--gutter)}
}
@media (hover:hover){
  .pj:hover,.pjr:hover,.pv-col:hover{transform:translateY(-2px);box-shadow:0 1px 2px #0F10200D,0 22px 38px -22px color-mix(in srgb,var(--c,var(--mark)) 55%,#0F102040)}
}
@media (prefers-reduced-motion:reduce){.pj,.pjr,.pv-col,.pv-bar i,.pv-qa summary .i{transition:none}.pj:hover,.pjr:hover,.pv-col:hover{transform:none}}
:root[data-theme="dark"] .pj,:root[data-theme="dark"] .pjr,:root[data-theme="dark"] .pv-trk{box-shadow:none}
:root[data-theme="dark"] .pv-kick,:root[data-theme="dark"] .pv-meta .lv,:root[data-theme="dark"] .pjr-f .lv,:root[data-theme="dark"] .pv-ic,:root[data-theme="dark"] .pv-facts .i,:root[data-theme="dark"] .pv-stage-b h3,
:root[data-theme="dark"] .pv-stage-n b,:root[data-theme="dark"] .pv-fd dt,:root[data-theme="dark"] .pv-ladder b,:root[data-theme="dark"] .tag.prov,:root[data-theme="dark"] .pv-trk-top b,:root[data-theme="dark"] .pv-steps li::before,
:root[data-theme="dark"] .pv-s>h2 .i,:root[data-theme="dark"] .pv-ol li::marker{color:color-mix(in srgb,var(--c) 55%,#fff)}
:root[data-theme="dark"] .pv-stage:first-child .pv-stage-n b{color:#fff}
:root[data-theme="dark"] .pv-safe{background:var(--bad-wash)}
:root[data-theme="dark"] .pv-tray{background:#222326;border-top:1px solid var(--line-strong)}

@media (min-width:700px){
  .pv-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .pv-cols{grid-template-columns:repeat(4,1fr);gap:14px}
  .pv-col{padding:26px 18px 18px}.pv-col b{font-size:34px}
  .pv-help{grid-template-columns:1.2fr 1fr auto;align-items:center;padding:28px}
  .pjr{grid-template-columns:auto minmax(0,1fr) 178px;padding:18px}
  .pjr h3,.pjr .pv-kick{padding-right:0}
  .pjr-f{grid-column:auto;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;margin:0;padding:0 46px 0 16px;border-top:0;border-left:1px solid var(--line)}
  .pjr-f li{background:transparent!important;border-radius:0;padding:8px 0;border-bottom:1px solid var(--line)}
  .pjr-f li:last-child{border:0}
  .pv-adds{display:contents}
  .pv-facts{grid-template-columns:repeat(3,1fr)}
  .pv-vars,.pv-hks{grid-template-columns:1fr 1fr}
  .pv-two-col{grid-template-columns:1fr 1fr}
  .pv-streams-grid{grid-template-columns:1fr 1fr}
  .pv-colsx{grid-template-columns:1fr 1fr}
  .pv-mine-bar{grid-template-columns:1fr auto;align-items:center}
  .pv-sheet{inset:0;margin:auto;width:min(560px,92vw);height:fit-content;border-radius:22px}
  .pv-sheet-body{grid-template-columns:1fr 1fr}
  .pv-sheet-body .pv-chk{grid-column:1/-1}
  .pv-tray-in{gap:14px}
}
@media (min-width:1000px){
  .pv-sf{padding:34px 0 24px}
  .pv-ex{grid-template-columns:232px 250px minmax(0,1fr);gap:18px;align-items:start;padding-top:10px}
  .pv-pane.p1,.pv-pane.p2{position:sticky;top:calc(var(--top) + 14px);max-height:calc(100dvh - var(--top) - 28px);overflow-y:auto;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);scrollbar-width:thin}
  .p1 .pv-pane-h,.p2 .pv-pane-h:first-child{display:block}
  .pv-pane-h{margin:8px 10px 6px}
  .pv-list{display:grid;gap:2px;overflow:visible;margin:0;padding:0}
  .pv-list a{min-height:46px;padding:6px 10px;border:0;border-radius:12px;background:transparent;white-space:normal}
  .pv-list a>span:not(.pv-ic){flex:1;min-width:0;padding-left:0}
  .pv-list .pv-ic{width:34px;height:34px;border-radius:11px}
  .pv-list a>.i{display:block;width:15px;height:15px;color:var(--muted)}
  .pv-list a:hover{background:var(--wash)}
  .pv-list a.on,.pv-list a.all.on{background:color-mix(in srgb,var(--c) 12%,var(--card));color:var(--ink);box-shadow:inset 3px 0 0 var(--c);font-weight:700}
  .pv-list a.on em{color:var(--muted);opacity:1}
  .pv-list a.on .pv-ic{background:color-mix(in srgb,var(--c) 14%,var(--card));color:var(--ct)}
  .pv-list a.all.on .pv-ic{color:var(--ink)}
  .pv-list a.sub{min-height:40px;font-size:14.5px}
  .p2 .qi{margin:0 2px 0 4px}
  .pv-help-link{display:flex;align-items:center;gap:10px;margin:10px 2px 2px;padding:12px;border-radius:14px;background:var(--wash);color:var(--ink);text-decoration:none}
  .pv-help-link>.i:first-child{width:20px;height:20px;color:var(--brand)}
  .pv-help-link span{flex:1}
  .pv-help-link b{display:block;font:700 14.5px/1.25 var(--head)}
  .pv-help-link small{color:var(--muted);font-size:13px}
  .pv-help-link>.i:last-child{width:15px;height:15px}
  .pv-pane.p3{padding-top:2px}
  .pv-ex .pjr{grid-template-columns:auto minmax(0,1fr) 168px}
  .pv-more-f{margin-left:auto}
  .pv-sec{padding-top:60px}
  .pv-shelf{padding-top:52px}
  .pv-rail .pj{width:340px}
  .pv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pv-find.has-results{grid-template-columns:400px minmax(0,1fr);align-items:start}
  .pv-find:not(.has-results) .pv-finder{max-width:720px}
  .pv-found{position:sticky;top:calc(var(--top) + 14px)}
  .pv-found .pjr{grid-template-columns:auto minmax(0,1fr)}
  .pv-found .pjr-f{grid-column:1/-1;flex-direction:row;border-left:0;border-top:1px solid var(--line);margin-top:10px;padding:12px 0 0;gap:6px}
  .pv-found .pjr-f li{background:var(--wash)!important;border-radius:99px;padding:5px 10px;border:0}
  .pv-ph{padding:30px 0 30px}
  .pv-facts{grid-template-columns:repeat(6,1fr)}
  .pv-facts li{grid-template-columns:1fr;gap:3px;padding:14px 16px}
  .pv-facts .i{grid-row:auto;margin-bottom:4px}
  .pv-body{grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
  .pv-side{position:sticky;top:calc(var(--top) + 62px);grid-column:2;grid-row:1}
  .pv-mbar{display:none}
  body:has(.pv-mbar) .foot{padding-bottom:0}
  body:has(.pv-mbar) .pv-tray{bottom:0}
  .pv-streams-grid{grid-template-columns:repeat(3,1fr)}
}
