/* ColorShare: page reset (safe areas for iPhone) */
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{min-height:100%;background:#0E0E12}
body{margin:0;min-height:100vh;min-height:100dvh}
img{max-width:100%}
[hidden]{display:none!important}

/* Layout: fixed header (section title left, logo right), fixed dock at the bottom
   (search bar above the 5-slot nav), content scrolls between. Theme colours come
   from a palette (default: the ColorShare logo). */
:root{color-scheme:dark;--bg:#0E0E12;--s1:#16161C;--s2:#1E1E26;--s3:#2A2A35;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.16);--fg:#F3F3F6;--fg2:#A9A9B6;--muted:#6E6E7B;--acc:#8CABFF;--c1:#8CABFF;--c2:#78B9B5;--c3:#B48CFF;--c4:#FFCC00;--n1:#8CABFF;--n2:#78B9B5;--n3:#B48CFF;--n4:#FFCC00;--edge:rgba(140,171,255,.28);--glow:rgba(140,171,255,.35);--ink:#0E0E12;--danger:#FF8A80;--fav:#FF6B8B;--disp:"Bricolage Grotesque",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--ui:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace;--hh:54px;--nh:58px;--sh:52px;--db:max(6px,calc(env(safe-area-inset-bottom,0px) - 16px))}
html,body{background:var(--bg);color:var(--fg)}
body{font-family:var(--ui);font-size:15px;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}

.hdr{position:fixed;top:0;left:0;right:0;z-index:20;padding-top:env(safe-area-inset-top,0px);background:rgba(14,14,18,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--edge)}
.hdr-in{height:var(--hh);max-width:520px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:10px}
.htitle{font-family:var(--disp);font-weight:700;font-size:24px;letter-spacing:-.02em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hlogo{display:flex;flex-direction:column;align-items:center;gap:1px}
.hlogo small{font-size:9.5px;color:var(--muted);letter-spacing:.02em}

.dock{position:fixed;bottom:0;left:0;right:0;z-index:20;padding-bottom:var(--db);background:rgba(14,14,18,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--edge)}
.search{height:var(--sh);max-width:520px;margin:0 auto;padding:8px 16px 0;display:flex;align-items:center}
.sbox{position:relative;flex:1;display:flex;align-items:center}
.sbox svg.mag{position:absolute;left:12px;width:17px;height:17px;color:var(--muted);pointer-events:none}
.sbox input{padding-left:36px!important;padding-right:84px!important;height:40px!important;border-radius:20px!important}
.sbox .sact{position:absolute;right:4px;display:flex;gap:4px}
.sbox .sact .btn{height:32px;border-radius:16px}
.nav-in{height:var(--nh);max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);align-items:center}
.nb{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:#fff;padding:4px 0}
.nb span{opacity:.78}.nb.on span{opacity:1;font-weight:600}
.nb svg{width:23px;height:23px;color:var(--tc);opacity:.72;transition:opacity .15s}
.nb.on svg{opacity:1}
.scanbtn{justify-self:center;width:50px;height:50px;border-radius:50%;background:var(--s2);border:2.5px solid var(--n3);display:flex;align-items:center;justify-content:center;color:var(--n3);box-shadow:0 0 16px -5px var(--n3)}
.scanbtn svg{width:26px;height:26px}
.scanbtn:active{transform:scale(.94)}
.results{position:fixed;left:0;right:0;z-index:19;bottom:calc(var(--nh) + var(--sh) + var(--db));max-height:62vh;overflow-y:auto;background:var(--s1);border-top:1px solid var(--edge);border-radius:20px 20px 0 0;padding:12px 16px 8px;box-shadow:0 -12px 30px rgba(0,0,0,.5)}
.results-in{max-width:520px;margin:0 auto}
.rrow{display:flex;align-items:center;gap:12px;width:100%;padding:9px 4px;border-bottom:1px solid var(--line);text-align:left}
.rrow .rmini{display:flex;width:72px;height:36px;border-radius:8px;overflow:hidden;flex-shrink:0}
.rrow .rmini div{flex:1}

main{max-width:520px;margin:0 auto;padding:calc(var(--hh) + 14px) 16px calc(var(--nh) + var(--sh) + 30px);min-height:100vh;min-height:var(--minh,100dvh)}
.h1{font-family:var(--disp);font-weight:700;font-size:26px;letter-spacing:-.02em;line-height:1.1;margin:0}
.h2{font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.01em;margin:0}
.lbl{font-size:12.5px;color:var(--fg2)}
.tiny{font-size:11px;color:var(--fg2);line-height:1.3;margin-top:4px}
.mono{font-family:var(--mono);font-size:11px;color:var(--fg2)}
.row{display:flex;gap:8px;align-items:center}
.wrap{flex-wrap:wrap}
.center{justify-content:center}
.sp{flex:1}
.srcl{font-size:12px;font-weight:600;letter-spacing:.04em;color:#A9A9B6}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 14px;border-radius:12px;background:var(--s2);border:1px solid var(--line2);font-size:14px;font-weight:500;white-space:nowrap}
.btn.sm{height:34px;padding:0 12px;font-size:13px;border-radius:10px}
.btn.big{height:50px;border-radius:14px;font-size:16px;padding:0 18px}
.btn.pri{background:var(--prifill,var(--acc));color:var(--priink,var(--ink));border:1.5px solid var(--acc);font-family:var(--disp);font-weight:700}
.btn.ghost{background:none;border-color:transparent;color:var(--fg2)}
.btn.out{background:none;border-color:var(--acc);color:var(--fg);font-weight:600}
.btn.warn{color:var(--danger);border-color:rgba(255,138,128,.45)}
.btn.icon{width:40px;padding:0}
.btn.sm.icon{width:34px}
.btn:active{transform:scale(.97)}
.btn svg{width:17px;height:17px;flex-shrink:0}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--ink);color:#fff;font-size:12px;font-weight:700;font-family:var(--ui)}
.card{background:var(--s1);border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:12px}
.card.ed{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.sw{aspect-ratio:1;max-width:100%;width:100%;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.sw.sel{outline:2px solid var(--fg);outline-offset:2px}
.ck{width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;pointer-events:none}
.ck svg{width:15px;height:15px}
.pal{display:flex;height:72px;border-radius:12px;overflow:hidden}
.pal>div{flex:1;cursor:pointer}
.hexrow{display:flex;justify-content:space-between;gap:2px;margin:7px 2px 12px;overflow:hidden}
.strip{display:flex;gap:3px;height:56px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.chip{flex:1;border-radius:9px;transition:transform .12s;cursor:grab;min-width:0}
.chip.sel{outline:2.5px solid #fff;outline-offset:2px;transform:translateY(-3px)}
.empty{flex:1;border:1px dashed var(--line2);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted)}
/* 16px text in every field stops iPhone from zooming the page */
input[type=text],input[type=search],textarea{font:inherit;font-size:16px;height:40px;padding:0 12px;border-radius:12px;border:1px solid var(--line2);background:var(--s2);color:var(--fg);width:100%;outline:none;min-width:0;-webkit-appearance:none;appearance:none}
input[type=text]:focus,input[type=search]:focus,textarea:focus{border-color:var(--acc)}
input::placeholder,textarea::placeholder{color:var(--muted)}
input.name{height:38px;font-weight:600}
.sticky{position:sticky;top:calc(var(--hh) + env(safe-area-inset-top,0px));z-index:10;margin:-14px -16px 14px;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--edge);max-height:calc(100vh - var(--hh) - var(--nh) - var(--sh) - 24px);overflow-y:auto;overscroll-behavior:contain}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nh) + var(--sh) + var(--db) + 14px);background:var(--s3);color:var(--fg);padding:10px 16px;border-radius:12px;font-size:14px;z-index:120;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90vw;text-align:center;border:1px solid var(--line2)}
.toast.show{opacity:1}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:520px;max-height:96%;overflow-y:auto;background:var(--s1);border-radius:22px 22px 0 0;padding:6px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--edge)}
.handle{width:42px;height:5px;border-radius:3px;background:var(--line2);margin:2px auto 8px}
.vp{position:relative;width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;touch-action:none;background:#000;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.vpw{position:relative;width:min(100%,44vh);margin:0 auto}
.vpw.short{width:min(100%,27vh)}
.vp canvas{display:block;width:100%;height:100%}
.vphint{position:absolute;left:10px;right:10px;bottom:10px;text-align:center;font-size:12.5px;color:#fff;background:rgba(0,0,0,.55);padding:7px 10px;border-radius:10px;pointer-events:none;transition:opacity .4s}
.loupe{position:absolute;width:118px;height:118px;border-radius:50%;border:3px solid #fff;pointer-events:none;overflow:hidden;display:none;z-index:5}
.loupe canvas{width:100%;height:100%;display:block}
.loupetag{position:absolute;font-family:var(--mono);font-size:11px;background:rgba(0,0,0,.75);color:#fff;padding:3px 7px;border-radius:6px;display:none;z-index:5;pointer-events:none}
.stchip{flex:1;min-width:0;height:54px;border-radius:9px;position:relative;cursor:pointer}
.stchip.off{opacity:.22}
.stchip.tgt{outline:2.5px solid #fff;outline-offset:2px}
.stchip .dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.45)}
.ph{position:relative;border-radius:12px;overflow:hidden;margin-top:10px;background:#000}
.ph canvas{display:block;width:100%;height:170px}
.pastebox{border:1px dashed var(--line2);border-radius:14px;padding:14px;text-align:center;color:var(--fg2);font-size:16px;outline:none;margin:16px 0;-webkit-user-select:text;user-select:text}
.pastebox:focus{border-color:var(--acc);color:var(--fg)}
.sect{margin-bottom:24px}
.menu{margin-top:8px;border:1px solid var(--line2);border-radius:14px;overflow:hidden;background:var(--s2)}
.menu button{display:block;width:100%;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
.menu button:last-child{border-bottom:0}
.menu .t{font-size:14.5px;font-weight:600}
.menu .d{font-size:12px;color:var(--fg2);margin-top:2px}
.menu .soon{opacity:.55}
.grp{display:flex;align-items:center;gap:8px;width:100%;padding:10px 2px;margin:4px 0 8px;border-bottom:1px solid var(--line)}
.grp .chev{display:inline-flex;transition:transform .15s}
.grp .chev svg{width:18px;height:18px}

/* slide bars: one look for every slider (touch anywhere, slide immediately) */
.pad{position:relative;height:46px;border-radius:14px;background:var(--s2);border:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-weight:600;font-size:14px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;margin-bottom:7px;cursor:ew-resize;overflow:hidden}
.pad>span{position:relative;z-index:2;pointer-events:none}
.pad .pmid{position:absolute;left:50%;top:12px;bottom:12px;width:2px;background:var(--line2);border-radius:1px;z-index:1}
.pad .knob{position:absolute;top:50%;width:6px;height:28px;border-radius:3px;background:var(--acc);transform:translate(-50%,-50%);left:50%;z-index:1;pointer-events:none;opacity:.9}
.pad.rel .knob{opacity:0;transition:opacity .15s}
.pad.act{border-color:var(--acc)}.pad.rel.act .knob{opacity:1}
.pad .pnum{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--disp);font-size:24px;font-weight:700;z-index:2}
.pad .pfill{position:absolute;top:0;bottom:0;left:0;background:var(--glow);z-index:0;pointer-events:none}

.choice{display:flex;align-items:center;gap:14px;width:100%;padding:18px;border-radius:16px;background:var(--s2);border:1px solid var(--line2);margin-bottom:10px;text-align:left}
.choice svg{width:28px;height:28px;color:var(--acc);flex-shrink:0}
.mini{display:flex;height:22px;border-radius:6px;overflow:hidden;margin-top:6px}
.mini div{flex:1}
.theme{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--s1);margin-bottom:8px;text-align:left}
.theme.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.theme .dots4{display:flex;gap:4px}.theme .dots4 i{width:16px;height:16px;border-radius:5px;display:block}
.tagc{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 12px;border-radius:15px;background:var(--s2);border:1px solid var(--line2);font-size:13px;color:var(--fg);white-space:nowrap}
.tagc.on{background:var(--prifill,var(--acc));color:var(--priink,var(--ink));border-color:var(--acc);font-weight:600}
.tagc .x{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;margin-right:-4px;color:var(--fg2)}
.tagc .x svg{width:12px;height:12px}
.tagrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tagscroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 16px 4px;margin:0 -16px}
.tagscroll::-webkit-scrollbar{display:none}
.taginput{height:32px!important;border-radius:16px!important;width:130px!important;padding:0 12px!important}
.lgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lcard{text-align:left;background:var(--s1);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:block;width:100%}
.lcard .img{aspect-ratio:1;width:100%;display:flex;background:#000}
.lcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.lcard .img div{flex:1}
.lcard .meta{padding:8px 10px 10px}
.lcard .nm{font-weight:700;color:#fff;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.heart{display:inline-flex;align-items:center;justify-content:center;width:30px;height:24px;color:var(--muted)}
.heart svg{width:19px;height:19px}
.heart.on{color:var(--fav)}
.fs{position:fixed;inset:0;z-index:45;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.fs-top{height:54px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--edge);flex-shrink:0}
.fs-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px 12px;max-width:560px;width:100%;margin:0 auto}
.fs-ph{border-radius:18px;overflow:hidden;background:#000;margin-bottom:14px;cursor:pointer}
.fs-ph canvas{display:block;width:100%;height:min(calc(100vw - 32px),524px,calc(100vh - 54px - 64px - 262px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));min-height:150px}
.fs-bot{display:flex;gap:10px;padding:8px 16px;border-top:1px solid var(--line);flex-shrink:0;max-width:560px;width:100%;margin:0 auto}
.seg{display:flex;background:var(--s2);border:1px solid var(--line2);border-radius:12px;padding:3px;gap:3px}
.seg button{flex:1;height:32px;border-radius:9px;font-size:13px;color:var(--fg2);padding:0 10px}
.seg button.on{background:var(--s3);color:var(--fg);font-weight:600}
.navprev{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:var(--bg);border:1px solid var(--line2);border-radius:14px;padding:8px 0;margin-bottom:10px}
.navprev .nb svg{opacity:1}
.start{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;border-radius:16px;font-size:18px}
.hgrid{display:grid;gap:10px}
.htile{text-align:left;border-radius:14px;overflow:hidden;background:var(--s1);border:1px solid var(--line);display:block;width:100%}
.htile .img{aspect-ratio:1;display:flex;background:#000}
.htile .img img{width:100%;height:100%;object-fit:cover}
.htile .img div{flex:1}
.htile .meta{padding:6px 8px 8px}
.htile .nm{font-weight:600;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.htile .src{font-size:10.5px;color:var(--fg2);letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
button.htitle{text-align:left;padding:0}
.nmbtn{flex:1;min-width:0;text-align:left;font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 0}
.btn.round{border-radius:50%}
.tagc.hue i{width:10px;height:10px;border-radius:50%;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.lcard{cursor:pointer}
.adj{margin-top:10px;padding:10px 10px 2px;border-radius:14px;background:var(--s2);border:1px solid var(--line)}
.adj .pad{background:var(--s1)}
.mbar{height:48px;border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 7px 0 8px;border:1px solid var(--line2);transition:height .2s}
.mbar.big{height:180px;align-items:flex-end;padding-bottom:8px}
.mfrom{width:32px;height:32px;border-radius:9px;border:2px solid rgba(255,255,255,.85);flex-shrink:0}
.mchev{width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.42);color:#fff;display:flex;align-items:center;justify-content:center}
.mchev svg{width:18px;height:18px}
.picks::-webkit-scrollbar{display:none}
body.kb .dock{bottom:var(--kb)}
body.kb .dock nav{display:none}
body.kb .results{bottom:calc(var(--sh) + var(--kb) + var(--db))}
/* Discover: slim slide bars, dropdown buttons and the create panel */
.pad.slim{height:38px;font-size:12.5px;padding:0 11px;border-radius:12px}
.row>.pad{flex:1;min-width:0;margin-bottom:0}
.bigsave{flex:1;min-width:0;height:46px;font-size:16px;border-radius:14px}
.btn.ddc{padding:0 8px;gap:3px}
.btn.open{border-color:var(--acc)}
.dch{display:inline-flex;transition:transform .15s}.dch svg{width:15px;height:15px}
.hd{width:12px;height:12px;border-radius:50%;display:block;flex-shrink:0;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.hd+.hd{margin-left:-5px}
.hd.rb{background:conic-gradient(#E5484D,#F2C230,#4CAF6A,#3D7BF2,#9B5BE8,#E5484D)}
.ddpanel{margin-top:8px;padding:10px;border-radius:14px;background:var(--s2);border:1px solid var(--line2)}
.seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.seg button svg{width:15px;height:15px}
.theme .dots8{display:flex;gap:4px;flex-shrink:0}.theme .dots8 i{width:20px;height:20px;border-radius:6px;display:block}
.teach{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--s2);border:1px solid var(--line2);font-size:14px}
.teach .tbox{width:24px;height:24px;border-radius:7px;border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink)}
.teach.on .tbox{background:var(--acc);border-color:var(--acc)}
.teach .tbox svg{width:15px;height:15px}
.sharecard{display:block;width:100%;max-height:52vh;object-fit:contain;border-radius:14px;background:#0E0E12;-webkit-touch-callout:default}
.img.tp{flex-direction:column;background:#0E0E12;gap:4px;overflow:hidden}
.img.tp img{flex:1 1 0;min-height:0;height:0;width:100%;object-fit:cover}
.img.tp .tsw{flex:0 0 24%;display:flex}
.img.tp .tsw div{flex:1}
.nmwrap{position:relative;flex:1;min-width:0}
.nmwrap input{padding-right:84px}
.nmsug{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:30px;padding:0 10px;border-radius:9px;font-size:13px;color:var(--fg2);background:var(--s3)}
.stchip.sel{outline:2.5px solid #fff;outline-offset:2px;z-index:1}
.stchip .chx{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;display:flex;align-items:center;justify-content:center}
.stchip .chx svg{width:12px;height:12px}
.vphint{left:10px;right:52px}
.dotsbtn{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.55);color:rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;z-index:4;border:1.5px solid rgba(255,255,255,.25)}
.dotsbtn.on{color:#fff;border-color:#fff}
.dotsbtn svg{width:20px;height:20px}
.vpw{position:relative}
.stbar{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom,0px));margin:14px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--s1);border-top:1px solid var(--line);z-index:6}
.fullc{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;background:#0E0E12}
.fcc{flex:1;position:relative;min-height:0}
.fcpal{flex:0 0 24%;display:flex;margin-bottom:calc(250px + env(safe-area-inset-bottom,0px))}
.fcpal div{flex:1}

.hgrid .lcard .nm{font-size:13px}
.vp canvas{position:absolute;left:0;top:0;width:100%;height:100%}
.vp{background:#000}
.vpw>.vphint{z-index:4}
.vphint.gone{display:none}
.sthint{margin:8px 0 2px;font-size:12px;text-align:center}
.phhint{text-align:center;font-size:12.5px;margin:8px 0 2px;color:var(--fg2)}
.phhint.gone{display:none}
.fcx{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;display:flex;align-items:center;justify-content:center}
.fcx svg{width:20px;height:20px}
.fcpanel{position:absolute;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:2;background:rgba(14,14,18,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:12px 12px 4px;max-width:520px;margin:0 auto}
.fcpanel .pad{background:rgba(255,255,255,.08)}
.sbox input::placeholder{font-size:14px}
.livepal div{cursor:default}
.infobtn{color:var(--fg2)}
.infobtn.on{color:#fff;border-color:rgba(255,255,255,.55)}
.reticle{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.6),inset 0 0 0 1.5px rgba(0,0,0,.6);display:none;z-index:5;pointer-events:none}
.reticle::after{content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.6)}
@media (prefers-reduced-motion: reduce){.chip,.toast,.vphint{transition:none}}
input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none;display:none}
/* prototype 13 */
.hdr-in{position:relative}
.hlogo.hc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.hshare{margin-right:-8px;color:#fff}
.hshare svg{width:22px;height:22px}
.toast.act{pointer-events:auto;display:flex;align-items:center;gap:14px;padding:8px 8px 8px 16px}
.toast .tact{height:32px;padding:0 14px;border-radius:9px;background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:14px}
.pal>div.on{box-shadow:inset 0 0 0 3px #fff}
.cpanel{display:flex;align-items:center;gap:10px;margin:2px 0 10px;padding:8px;border-radius:14px;background:var(--s2);border:1px solid var(--line2)}
.cpanel .cpsw{width:46px;height:46px;border-radius:10px;flex-shrink:0;border:1px solid rgba(255,255,255,.12)}
.cpanel .btn.sm{padding:0 10px}
.lcard .meta{padding:7px 8px 8px 10px}
.lcard .tl1{gap:2px;align-items:center}
.lcard .tl1 .nm{min-width:0}
.lcard .tl1 .heart{margin:-3px -4px -3px 0;flex-shrink:0}
.lcard .tl2{gap:2px;margin-top:-1px;align-items:center}
.lcard .tl2 .srcl{font-size:10.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lcard .tl2 .srcl.mono{letter-spacing:0;font-size:11px}
.tshare{display:inline-flex;align-items:center;justify-content:center;width:30px;height:22px;margin:-2px -4px -2px 0;color:var(--muted);flex-shrink:0}
.tshare svg{width:16px;height:16px}
input.name.tn{height:26px;font-size:13px;padding:0 6px;border-radius:7px;min-width:0;flex:1}
.hgrid.c1 .lcard .nm{font-size:17px}
.hgrid.c1 .lcard .meta{padding:10px 12px 12px 14px}
.hgrid.c1 .tl2 .srcl{font-size:12px}
.hgrid.c1 .heart svg{width:23px;height:23px}
.hgrid.c1 .tshare svg{width:19px;height:19px}
.hgrid.c1 .lcard{scroll-snap-align:start;scroll-margin-top:calc(var(--hh) + env(safe-area-inset-top,0px) + 10px)}
html:has(.hgrid.c1){scroll-snap-type:y proximity}
.hgrid.c4 .tl1 .heart,.hgrid.c4 .tshare{width:24px}
.heart.lg{width:42px;height:40px}
.heart.lg svg{width:27px;height:27px}
.vshare{color:var(--fg2);margin-right:-8px}
.vshare svg{width:22px;height:22px}
.vname{cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lcard .nm[data-a=rename],.nmbtn{cursor:text}
.selmode{position:relative;cursor:pointer}
.lcard.picked,.card.picked{outline:3px solid var(--acc);outline-offset:-1px}
.selck{position:absolute;top:8px;left:8px;width:26px;height:26px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;color:#111;z-index:2}
.picked .selck{background:var(--acc);border-color:var(--acc)}
.selck svg{width:16px;height:16px}
.selck.static{position:static;flex-shrink:0;margin:2px 10px 0 0;border-color:var(--line2);background:transparent}
.selbar .btn[disabled]{opacity:.4}
.mgrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:4px 0 12px}
.mgrow>:first-child{justify-self:start}
.mgbtn{min-width:150px;height:46px;font-size:16px;border-radius:14px}
.batchgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:46vh;overflow-y:auto}
.batchgrid img{width:100%;border-radius:10px;display:block}
html:has(.hgrid.c1) #main>:first-child,html:has(.hgrid.c1) #main .grp{scroll-snap-align:start;scroll-margin-top:calc(var(--hh) + env(safe-area-inset-top,0px) + 14px)}
.infobtn svg{width:21px;height:21px}
/* share the app: a labelled pill, so it never reads as sharing a palette */
.hsharepill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px 0 9px;margin-right:-4px;border-radius:16px;border:1px solid var(--line2);background:var(--s2);color:#fff;font-size:12.5px;font-weight:600;white-space:nowrap;flex-shrink:0}
.hsharepill svg{width:15px;height:15px}
/* sliders: a ball you grab; touching elsewhere on the bar just scrolls the page */
.pad{touch-action:pan-y}
.pad .knob{width:30px;height:30px;border-radius:50%;background:var(--s3);border:2.5px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.55);opacity:1;z-index:1;transition:transform .12s,border-color .12s}
.pad.slim .knob{width:26px;height:26px}
.pad.rel .knob{opacity:1;transition:transform .12s,border-color .12s}
.pad.act .knob{border-color:var(--acc);transform:translate(-50%,-50%) scale(1.12)}
.pad.rel.act .knob{transition:transform .12s,border-color .12s}
.pad .pmid{opacity:.5}
/* live camera for Match */
.camv{position:fixed;inset:0;z-index:95;background:#000}
.camv video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;touch-action:none}
.camret{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.55),inset 0 0 0 1.5px rgba(0,0,0,.45);pointer-events:none;z-index:2}
.camret::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.camv .fcx{z-index:3}
.campanel{position:absolute;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:3;background:rgba(14,14,18,.74);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:10px 12px;max-width:520px;margin:0 auto}
.camsw{width:48px;height:48px;border-radius:12px;border:1.5px solid rgba(255,255,255,.35);flex-shrink:0;background:#333}
.camshut{width:58px;height:58px;border-radius:50%;border:4px solid #fff;background:rgba(255,255,255,.18);flex-shrink:0}
.camshut:active{background:rgba(255,255,255,.5)}
.mpname{font-size:14px;font-weight:600;color:#fff;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;padding:6px 0;border-bottom:1px dashed var(--line2)}
.pad .knob.kn{width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.pad .knob .pnum{position:static;transform:none;font-size:15px;line-height:1;color:#fff}
.pad.slim .knob.kn{width:30px;height:30px}
/* camera window inside the full-screen colour: small, landscape, Freeze button under it */
.fccam{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 74px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:2}
.fcprev{position:relative;width:min(46vw,200px);aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 0 0 2.5px rgba(255,255,255,.9),0 10px 28px rgba(0,0,0,.45)}
.fcprev video{width:100%;height:100%;object-fit:cover;display:block}
.fcprev .camret{left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px}
.fctag{position:absolute;left:8px;top:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:8px;pointer-events:none}
.fcrow{gap:6px;margin-bottom:6px;flex-wrap:nowrap}
.fcrow .btn.sm{padding:0 10px}
.fcfreeze{min-width:96px;font-weight:700}
.fcfreeze:not(.pri){background:rgba(14,14,18,.72);color:#fff;border-color:rgba(255,255,255,.5)}
.recdot{width:10px;height:10px;border-radius:50%;background:#FF4D4D;box-shadow:0 0 0 2px rgba(255,255,255,.7)}
