/* Discover photo deck, rating dock, progress, and full-photo gallery. */
.feed-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:16px}
.feed-head .eyebrow{display:none}
.feed-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:12px}
.sport-filter{display:flex;gap:var(--space-1);overflow-x:auto;scrollbar-width:none;min-width:0;width:100%;mask-image:linear-gradient(to right,#000 95%,transparent)}
.sport-filter button{flex:none;min-height:44px;border:0;border-radius:12px;padding:10px var(--space-3);background:transparent;color:var(--muted);font-size:0.8125rem;font-weight:550}
.sport-filter button[aria-pressed=true]{background:var(--blue-soft);color:var(--accent);box-shadow:none}
.challenge{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid #dce6f4;border-radius:14px;background:var(--surface);margin-bottom:16px;max-width:620px}
.challenge>div{display:flex;flex-direction:column;gap:3px}
.challenge b{font-size:0.75rem;font-weight:650}
.challenge>div>span{color:var(--muted);font-size:0.75rem}
.challenge wa-progress-ring{--size:36px;--track-width:3px;--indicator-width:3px;color:var(--accent);font-size:0.75rem}
.xp-chip{margin-left:auto;color:var(--accent);background:#e8f1ff;font-weight:650;font-size:0.75rem;border-radius:20px;padding:6px 9px}
.feed-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);gap:34px;align-items:start}
.player-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}
.photo-deck{overflow:hidden;border-radius:0;touch-action:pan-y pinch-zoom}
.deck-track,.gallery-track{display:flex;backface-visibility:hidden;touch-action:pan-y pinch-zoom}
.deck-slide{flex:0 0 100%;min-width:0;padding:0}
.photo-wrap{position:relative;aspect-ratio:4/4.15;margin:0;overflow:hidden;border-radius:0;background:#131922}
.photo-wrap>img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;user-select:none;-webkit-user-drag:none}
.photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0002,transparent 35%,transparent 50%,#07101fc9);pointer-events:none}
.gallery-float{position:absolute;right:14px;top:12px;display:flex;align-items:center;gap:6px;min-height:44px;border:1px solid #ffffff3d;border-radius:12px;padding:var(--space-2) var(--space-3);background:#111c2d55;color:white;backdrop-filter:blur(14px);font-size:0.8125rem}
.gallery-float .icon{width:17px;height:17px}
.photo-caption{position:absolute;left:16px;bottom:16px;right:16px;display:flex;align-items:end;justify-content:space-between;gap:15px;color:white}
.photo-caption h2{font-size:1.5625rem;letter-spacing:-.04em}
.photo-caption p{font-size:0.8125rem;color:#f0f3f9;margin-top:6px}
.photo-score{text-align:right;flex:none}
.photo-score b{font-size:2.375rem;font-weight:650;letter-spacing:-.04em;line-height:1}
.photo-score b .icon{width:25px;height:25px;margin-left:auto;color:#c4dfff}
.photo-score span{display:block;font-size:0.75rem;color:#e6effc;margin-top:5px;white-space:nowrap}
.spotlight-chip{position:absolute;left:16px;top:46px;background:#136be3;color:#fff;font-size:0.75rem;padding:5px 9px;border-radius:20px}
.neighbor-caption{position:absolute;left:20px;bottom:25px;color:white;font-weight:650;font-size:1.375rem}
.is-dragging .photo-wrap{cursor:grabbing;border-radius:0}
.player-info{padding:0 20px 20px}
.gear-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:var(--space-2) 0 3px}
.gear-open{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--muted);padding:10px 0;font-size:0.8125rem;min-height:44px}
.gear-open .icon:first-child{color:var(--accent);width:17px}
.gear-open .icon:last-child{width:13px;height:13px}
.action-rail{display:flex;align-items:center;gap:5px}
.rate-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 var(--space-1)}
.rate-top label{display:block;font-size:0.875rem;font-weight:650;margin:0}
.rate-top .microcopy{display:block;font-size:0.75rem;margin-top:3px}
.rate-top input.score-input[type=number]{flex:none;width:81px;min-height:45px;border:0;padding:2px var(--space-1);background:transparent;color:var(--accent);font-weight:650;letter-spacing:-.04em;font-size:2.375rem;text-align:right;appearance:textfield;box-shadow:none;border-radius:10px}
.score-input::-webkit-inner-spin-button{display:none}
#scoreRange{display:block;--track-size:5px;--thumb-width:25px;--thumb-height:25px;margin:2px 0}
#scoreRange::part(thumb){background:white;border:1px solid #e0e6f0;box-shadow:0 3px 9px #18376e24}
#scoreRange::part(indicator){background:var(--accent)}
.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:0.75rem;margin-top:1px}
.submit-row{display:flex;gap:var(--space-2);margin-top:13px}
.submit-row>#submitScore{flex:1}
.own-feed{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:12px}
.own-feed b,.own-feed span{display:block}
.own-feed b{font-size:0.8125rem}
.own-feed span{font-size:0.75rem;color:var(--muted);margin-top:5px}
.result{padding-top:10px}
.reveal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}
.comparison-pill{font-size:0.75rem;background:#edf4ff;color:#1456ae;padding:5px 9px;border-radius:30px}
.score-comparison{display:flex;align-items:center;justify-content:center;gap:26px;padding:19px 0 10px}
.score-comparison>div:not(.compare-symbol){text-align:center}
.score-comparison b{display:block;font-size:3.3125rem;letter-spacing:-.055em;font-weight:650;line-height:1}
.score-comparison span{display:block;font-size:0.75rem;color:var(--muted);margin-top:7px}
.compare-symbol{color:#9ba9bc}
.compare-symbol .icon{width:16px;height:16px}
.earned-row{display:flex;align-items:center;gap:6px;padding:var(--space-3) 0 var(--space-4);color:var(--accent);font-size:0.75rem}
.earned-row .icon{width:15px;height:15px}
.earned-row span{margin-left:auto;color:var(--muted);font-size:0.75rem}
.sidebar-profile{display:flex;align-items:center;gap:var(--space-3);padding:20px;background:#ffffffb5;border:1px solid #ffffff;border-radius:22px;box-shadow:var(--shadow)}
.mini-avatar{display:grid;place-items:center;background:linear-gradient(145deg,#ddecff,#c9e0ff);color:var(--accent);width:45px;height:45px;border-radius:15px;font-size:1.1875rem;font-weight:600}
.sidebar-profile>div:nth-child(2){flex:1}
.sidebar-profile b{font-size:0.8125rem}
.sidebar-profile span{display:block;font-size:0.75rem;color:var(--muted);margin-top:4px}
.sidebar-check{padding:var(--space-5) 0;border-bottom:1px solid var(--line)}
.mini-section-head{display:flex;justify-content:space-between;align-items:center}
.mini-section-head h2{font-size:1.1875rem}
.mini-section-head>span{font-size:0.75rem;color:var(--accent);font-weight:600}
.mini-photos{display:flex;gap:7px;margin-top:17px}
.mini-photos button{position:relative;width:calc(20% - 5px);padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--surface);min-height:65px}
.mini-photos img{width:100%;aspect-ratio:3/4;object-fit:cover}
.mini-photos span{position:absolute;right:4px;bottom:4px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:0.75rem;text-align:center}
.sidebar-stats{display:flex;gap:28px;padding:22px 0}
.sidebar-stats>div{display:grid;grid-template-columns:18px auto;column-gap:var(--space-2);align-items:center}
.sidebar-stats .icon{color:var(--accent);width:16px;height:16px}
.sidebar-stats b{font-size:1.25rem;font-weight:600}
.sidebar-stats span{grid-column:2;color:var(--muted);font-size:0.75rem}
.detail-head{display:flex;align-items:center;gap:15px;margin-bottom:25px}
.detail-head>.iconbtn{flex:none}
.detail-head h1{font-size:1.6875rem}
.detail-head p{font-size:0.75rem;color:var(--muted);margin-top:7px}
.photo-page{margin-left:auto;font-size:0.75rem;color:var(--muted)}
.detail-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:27px;align-items:start}
.detail-stage{overflow:hidden;touch-action:pan-y pinch-zoom;border-radius:24px;background:#eef1f6}
.gallery-slide{flex:0 0 100%;min-width:0;aspect-ratio:4/5}
.gallery-slide img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.detail-thumbs{display:flex;gap:10px;padding:var(--space-4) 2px;overflow-x:auto}
.detail-thumbs button{width:65px;height:65px;flex:none;border:2px solid transparent;border-radius:16px;padding:0;overflow:hidden;background:#edf2f8}
.detail-thumbs button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 3px #1264d914}
.detail-thumbs img{width:100%;height:100%;object-fit:cover}
.gallery-gear>.btn+.btn{margin-top:11px;border-radius:var(--radius-control);font-size:0.875rem;min-height:48px}
#scoreRange::part(label){position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.feed-head-controls{display:flex;align-items:center;gap:var(--space-4);min-width:0}
.feed-primary{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.feed-primary .challenge{margin:0}
#cardHost{min-width:0}
@media(min-width:1000px){
  .feed-layout{gap:30px;grid-template-columns:minmax(0,1.3fr) minmax(0,.75fr)}
  .photo-wrap{aspect-ratio:4/4.6;border-radius:0}
  .challenge{max-width:570px;border-radius:14px;background:var(--surface);margin-bottom:16px;padding:var(--space-3) var(--space-4)}
}
@media(max-width:850px){
  .feed-layout{gap:var(--space-5)}
}
@media(max-width:650px){
  .feed-head{margin-bottom:16px;align-items:center}
  .feed-head h1{font-size:1.875rem}
  .feed-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:12px}
  .sport-filter{order:1;flex:1 0 100%;margin:0 -2px;width:100%;gap:var(--space-1);mask-image:linear-gradient(to right,#000 95%,transparent)}
  .sport-filter button{min-height:44px;padding:10px var(--space-3);font-size:0.8125rem;background:transparent;border-radius:12px}
  .challenge{padding:var(--space-3) var(--space-4);gap:10px;margin-bottom:16px;border-radius:14px;background:var(--surface)}
  .challenge wa-progress-ring{--size:28px;font-size:0.75rem}
  .challenge b{font-size:0.75rem}
  .challenge>div>span{font-size:0.75rem}
  .xp-chip{font-size:0.75rem;padding:5px var(--space-2)}
  .feed-layout{grid-template-columns:1fr;gap:18px}
  .player-card{border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line)}
  .photo-deck{border-radius:0}
  .photo-wrap{aspect-ratio:1.12;border-radius:0}
  .deck-slide{padding:0}
  .photo-caption{left:16px;right:16px;bottom:16px}
  .photo-caption h2{font-size:1.4375rem}
  .photo-caption p{font-size:0.8125rem}
  .photo-score b{font-size:2.0625rem}
  .photo-score span{font-size:0.75rem}
  .gallery-float{min-height:44px;padding:6px 10px;top:10px;right:12px;border-radius:12px;font-size:0.8125rem}
  .player-info{padding:0 var(--space-4) var(--space-4)}
  .gear-strip{padding:5px 0 0}
  .gear-open{font-size:0.8125rem;min-height:44px}
  .action-rail>.rail-btn{width:44px;height:44px}
  .rate-top input.score-input[type=number]{font-size:2.125rem;min-height:40px;width:72px}
  .rate-top label{font-size:0.875rem}
  .rate-top .microcopy{font-size:0.75rem}
  .submit-row{margin-top:9px;gap:7px}
  .score-comparison{padding:15px 0 6px;gap:21px}
  .score-comparison b{font-size:2.875rem}
  .score-comparison span{font-size:0.75rem}
  .reveal-header .eyebrow{font-size:0.75rem}
  .comparison-pill{font-size:0.75rem;padding:5px 7px}
  .earned-row{padding:10px 0 13px;font-size:0.75rem}
  .earned-row span{font-size:0.75rem}
  .sidebar-profile{display:none}
  .sidebar-check{padding:18px 0}
  .sidebar-check h2{font-size:1.125rem}
  .sidebar-stats{padding:18px 0;justify-content:center;gap:50px}
  .sidebar-stats b{font-size:1.1875rem}
  .homeSidebar>.text-btn{font-size:0.8125rem;min-height:44px}
  .detail-head{gap:var(--space-3);margin-bottom:20px}
  .detail-head h1{font-size:1.375rem}
  .detail-head p{font-size:0.75rem}
  .detail-layout{grid-template-columns:1fr;gap:18px}
  .detail-stage{border-radius:24px}
  .gallery-slide{aspect-ratio:4/5}
  .detail-thumbs{padding:14px 2px}
  .gallery-gear h2{font-size:1.25rem}
  .player-card.is-revealed .photo-wrap{aspect-ratio:4/3;border-radius:0}
  .player-card.is-revealed .score-comparison{padding-top:13px;padding-bottom:6px}
  .player-card.is-revealed .score-comparison b{font-size:2.625rem}
  .feed-head-controls{gap:var(--space-2);margin-left:auto}
  .feed-primary .challenge{order:2}
}
