@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#fff7ec;background:#090909;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1100px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:30px 24px}.brand{text-decoration:none;color:inherit;font-weight:800;font-size:23px;letter-spacing:-1px}.brand span{color:#f4a51c}.brand small{display:block;font-size:9px;letter-spacing:1.6px;margin-top:6px}button,.link{font:inherit;border:1px solid #443a2c;border-radius:7px;background:transparent;padding:11px 17px;cursor:pointer;color:inherit;text-decoration:none;display:inline-block}button:hover,.link:hover{background:#30271b}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffbd36;outline-offset:3px}main{padding:0 24px}.hero{background:#151515;color:#fff7ec;border-radius:18px;padding:44px;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:330px;height:330px;border:1px solid #f4a51c33;border-radius:50%;right:-100px;top:-80px;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#f4a51c}h1{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-size:clamp(46px,8vw,84px);line-height:.95;max-width:730px;margin:18px 0 22px}h2{font-family:'Barlow Condensed',sans-serif;font-size:32px;margin:0 0 8px}.hero p{color:#b9b1a3}.hero .link,.hero button{color:#fff7ec;border-color:#645035}.hero .primary,.primary{background:#f4a51c;color:#090909;border-color:#f4a51c;font-weight:700}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #34302a;border-radius:12px;background:#151515;margin:24px 0}.metric{padding:24px;border-right:1px solid #34302a}.metric:last-child{border:0}.metric b{font-family:'Barlow Condensed';display:block;font-size:44px}.metric span{font-size:12px;color:#b9b1a3}.sectionhead{display:flex;align-items:end;justify-content:space-between;margin:35px 0 20px}.muted{color:#b9b1a3;font-size:13px}.tablewrap{overflow-x:auto;border-radius:12px;border:1px solid #34302a;background:#151515}table{width:100%;border-collapse:collapse;text-align:left}th{padding:16px;font-size:10px;letter-spacing:1px;text-transform:uppercase;background:#202020}td{padding:19px 16px;border-top:1px solid #34302a}td.desc{font-size:13px;color:#b9b1a3;min-width:190px;max-width:400px}.num{font-family:'Barlow Condensed';font-size:29px;text-align:center}.avatar{display:inline-grid;place-items:center;width:35px;height:35px;background:#30271b;border-radius:50%;margin-right:10px;font-size:12px}.warning{background:#251f15;padding:15px 20px;border-left:3px solid #f4a51c;font-size:13px;line-height:1.6;margin:24px 0}.videos{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.video{padding:28px;border-radius:12px;background:#191715}.video p{font-size:13px;color:#b9b1a3}.video a{font-weight:700}.empty{padding:32px;background:#151515;border-radius:12px}footer{padding:45px 24px;font-size:12px;color:#b9b1a3;display:flex;justify-content:space-between}label{display:block;font-size:13px;margin:16px 0}input{display:block;width:100%;padding:12px;border:1px solid #645035;border-radius:6px;font:inherit;margin-top:6px}.check input{display:inline;width:auto}#editor{background:#151515;padding:28px;margin-top:30px;border-radius:12px}dialog{border:0;border-radius:14px;max-width:420px;width:90%;padding:28px}dialog::backdrop{background:#000000bb}#notice{font-size:13px;margin:12px 0}#notice:empty{display:none}[hidden]{display:none!important}@media(max-width:600px){header{padding:22px 18px}main{padding:0 14px}.hero{padding:28px 22px}.metrics{gap:0}.metric{padding:15px 12px}.metric b{font-size:36px}.videos{grid-template-columns:1fr}td,th{padding:13px 10px}footer{display:block}footer span{display:block;margin-top:8px}.sectionhead{display:block}}

:root{color-scheme:dark}body{background:radial-gradient(ellipse at 90% 0%,#f4a51c0d,transparent 40%),#090909}.brand{display:flex;align-items:center;gap:15px}.brand-logo{width:74px;height:74px;object-fit:contain}.brand-wordmark{font-family:'Barlow Condensed';font-size:30px;letter-spacing:1px}.brand small{font-family:'DM Sans';font-size:9px;color:#b9b1a3}.hero{border:1px solid #44321c;background:radial-gradient(ellipse at 100% 0%,#f4a51c18,transparent 65%),#151515}.hero:before{content:'';position:absolute;right:18px;bottom:5px;width:165px;height:165px;background:var(--brand-image) center/contain no-repeat;opacity:.09;pointer-events:none}.hero h1{position:relative}.hero .primary:hover,.primary:hover{background:#ffbd36}.num{color:#f4a51c}.photo-button{padding:0;display:block;border:1px solid #554027;border-radius:9px;overflow:hidden;width:76px;height:100px;background:#242019}.player-photo{width:100%;height:100%;object-fit:cover;object-position:50% 15%;display:block}.photo-button:hover{border-color:#ffbd36}.photo-pending{width:76px;min-height:100px;display:grid;place-content:center;text-align:center;color:#b9b1a3;font-size:10px;border:1px dashed #554027;border-radius:9px;padding:8px}.player-name{white-space:nowrap}.photo-caption{display:block;font-size:10px;color:#b9b1a3;margin-top:5px}#photoDialog{max-width:420px;background:#151515;text-align:center}#photoDialog img{max-height:65vh;max-width:100%;border-radius:8px}#photoDialog p{color:#b9b1a3;font-size:12px}#photoDialog button{margin-bottom:16px}.photo-note{font-size:12px;color:#b9b1a3;margin:12px 0 0}input{background:#202020;color:#fff7ec}@media(max-width:600px){.brand-logo{width:54px;height:54px}.brand-wordmark{font-size:25px}.brand small{font-size:7px;letter-spacing:1px}.photo-button,.photo-pending{width:60px;height:80px;min-height:80px}.player-name{white-space:normal;min-width:80px}.num{font-size:26px}th{font-size:9px;letter-spacing:.4px}.avatar{display:none}}

.scoring-rule{font-size:12px;color:#b9b1a3;margin:10px 0 0}.scoring-rule b{color:#f4a51c}.scoring-rule span{padding:0 8px}.brand-wordmark{font-family:'DM Sans',sans-serif;font-weight:800;font-size:25px}

.score-button{font:inherit;color:#f4a51c;border:0;padding:8px;min-width:50px}.score-button span{display:block;font:10px 'DM Sans',sans-serif;color:#b9b1a3;margin-top:4px}#reviewDialog{max-width:760px;width:94vw;max-height:92vh;background:#151515;color:#fff7ec}.review-top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}#reviewMedia video{width:100%;height:320px;background:#000;border-radius:8px}#reviewMedia iframe{width:100%;height:360px;border:0}#reviewList{display:flex;gap:8px;overflow-x:auto;padding:12px 0}.play-event{flex-shrink:0;text-align:left}.play-event span{display:block;font-size:11px;margin-top:5px}.play-event.selected{border-color:#f4a51c;background:#302719}#reviewMessage{font-size:13px;line-height:1.5;color:#b9b1a3}#reviewForm{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}#reviewForm label:last-of-type{grid-column:1/-1}select,textarea{display:block;width:100%;padding:12px;border:1px solid #645035;background:#202020;color:#fff7ec;border-radius:6px;font:inherit;margin-top:6px}@media(max-width:600px){#reviewForm{grid-template-columns:1fr}#reviewMedia video{height:260px}.review-top h2{font-size:26px}}

.photo-link{display:block;background:none;border:0;padding:0;cursor:pointer;text-align:left}.photo-link:hover{text-decoration:underline}.photo-link:focus-visible{outline:2px solid #f4a51c;outline-offset:4px}

.review-player-nav{display:flex;align-items:center;gap:14px}.review-player-nav h2{margin:0}.review-player-nav button{font-size:28px;line-height:1;padding:4px 12px;color:#f4a51c}.review-player-nav button[hidden]{display:none}

/* Keep dialog actions inside narrow screens, independently of player names. */
.review-top>div{min-width:0}.review-player-nav h2{min-width:0;overflow-wrap:anywhere}.review-player-nav button{flex-shrink:0}
@media(max-width:600px){
 #reviewDialog{padding:20px;width:calc(100vw - 24px);max-width:calc(100vw - 24px)}
 .review-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 10px;align-items:center}
 .review-top>div{grid-column:1/-1}
 .review-player-nav{gap:12px}
 #sharePlayer,#closeReview{white-space:nowrap;min-height:44px}
 #sharePlayer{justify-self:start}#closeReview{grid-column:2;justify-self:end}
 #reviewMedia iframe{height:auto;aspect-ratio:16/9;display:block}
 #reviewForm{min-width:0}#reviewForm>*{min-width:0}
}

#sharePlayer,#closeReview{display:inline-flex;align-items:center;justify-content:center;gap:8px}.action-icon{width:21px;height:21px;flex-shrink:0}
@media(max-width:600px){#sharePlayer .action-label,#closeReview .action-label{display:none}#sharePlayer,#closeReview{width:44px;height:44px;padding:10px}.review-top{grid-template-columns:minmax(0,1fr) 44px 44px}.review-top>div{grid-column:1/-1}#sharePlayer{grid-column:2}#closeReview{grid-column:3}}

@media(max-width:600px){
 .review-top{position:relative;display:block;padding-top:0;min-height:86px}
 .review-top>div>.eyebrow{display:block;min-height:44px;padding-right:104px;display:flex;align-items:center;font-size:9px;letter-spacing:1.3px}
 .review-player-nav{margin-top:8px}
 #sharePlayer,#closeReview{position:absolute;top:0}
 #sharePlayer{right:54px}#closeReview{right:0}
}

.media-tools{border:1px solid #51402c;border-radius:16px;padding:24px;margin:28px 0;background:#171614}.media-tools h2{margin-top:0}.media-tools p{line-height:1.6}.media-actions{display:flex;align-items:end;flex-wrap:wrap;gap:16px}.media-actions label{margin:0;min-width:200px}.media-tools progress{width:100%;accent-color:#f4a51c;margin:12px 0}.media-tools button{min-height:44px}.media-tools .muted{font-size:13px}.player-photo{object-fit:contain}@media(max-width:600px){.media-tools{padding:20px 16px}.media-actions{display:grid}.media-actions button,.media-actions label{width:100%}}
.choose-photo{display:block;font-size:14px;margin-top:12px;max-width:180px;min-height:44px;padding:10px 12px}#manualPhotoDialog{width:min(1060px,94vw);max-width:94vw;max-height:92vh;overflow:auto;padding:28px}#manualPhotoDialog h2{font-size:clamp(28px,4vw,42px);margin:8px 0}.manual-photo-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.frame-search{display:flex;align-items:end;gap:14px}.frame-search input{width:170px}.crop-layout{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:24px;align-items:start}#frameCanvas{width:100%;height:auto;display:block;touch-action:none;cursor:crosshair;border-radius:8px}#cropPreview{width:120px;height:160px;border:1px solid #6c552c;border-radius:12px}.crop-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.crop-controls input{width:100%;accent-color:#ffb511;padding:0;min-height:44px}#manualPhotoDialog [hidden]{display:none!important}@media(max-width:600px){#manualPhotoDialog{padding:18px}.manual-photo-top{gap:8px}.manual-photo-top button{padding:10px;font-size:14px}.frame-search{flex-wrap:wrap}.crop-layout{grid-template-columns:1fr}.crop-preview{display:flex;align-items:center;gap:20px}.crop-controls{grid-template-columns:1fr 1fr}}

.review-scorer{margin:16px 0}.review-scorer label{margin:0}.review-scorer>button{margin-top:8px;min-height:44px;color:#f4a51c}#addPlayerDialog{background:#151515;color:#fff7ec;border:1px solid #443a2c}#addPlayerError{color:#ffbd36;font-size:13px}#addPlayerDialog .actions{gap:10px}

#reviewDialog{padding-top:36px}.review-top>div>.eyebrow{display:block;margin-bottom:10px}@media(max-width:600px){#reviewDialog{padding-top:28px}}

#share{display:inline-flex;align-items:center;justify-content:center;gap:8px}

#reviewCoverDialog{width:min(960px,94vw);max-width:94vw;max-height:92vh;background:#151515;color:#fff7ec;padding:28px;border:1px solid #443a2c}#reviewCoverDialog h2{margin-top:8px}#reviewCoverDialog .muted{line-height:1.6}#reviewCoverStatus{line-height:1.5;color:#f4a51c}#reviewCoverImage{display:block;width:100%;height:auto;border-radius:8px}.cover-frame-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px}@media(max-width:600px){#reviewCoverDialog{padding:20px}#reviewCoverDialog .frame-search{display:grid;grid-template-columns:1fr;width:100%}#reviewCoverTime{width:100%}.cover-frame-actions a{width:100%;text-align:center}}

#playersEdit{display:grid;gap:24px;margin:24px 0}.player-edit-card{min-width:0;margin:0;padding:16px 20px 20px;border:1px solid #6c552c;border-radius:12px;background:#151515}.player-edit-card legend{padding:0 10px;color:#f4a51c;font-weight:700}.player-edit-card label{display:block;margin:12px 0 0}.player-edit-card textarea{width:100%;resize:vertical;line-height:1.5}#downloadCover[hidden]{display:none!important}#coverStatus:empty{display:none}

/* Reserve the portrait space until the browser has loaded the photo. */
.photo-button{position:relative}
.photo-button:disabled{opacity:1;cursor:default}
.photo-button .player-photo{visibility:hidden}
.photo-button[data-photo-state="ready"] .player-photo{visibility:visible}
.photo-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:5px;color:#b9b1a3;font-size:10px;line-height:1.35;text-align:center;white-space:normal}
.photo-loader{width:18px;height:18px;border:2px solid #554027;border-top-color:#f4a51c;border-radius:50%;animation:portrait-spin 1s linear infinite}
.photo-button[data-photo-state="ready"] .photo-placeholder,.photo-button[data-photo-state="error"] .photo-loader{display:none}
@keyframes portrait-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.photo-loader{animation:none}}

/* Player clips use two independent, keyboard-accessible disclosure groups. */
#reviewList.review-groups{display:grid;gap:12px;overflow:visible;border-top:1px solid #645b4d;margin-top:20px;padding-top:16px}
.review-group{min-width:0;border:1px solid #645035;border-radius:10px;padding:0 16px}
.review-group[open]{border-color:#f4a51c}
.review-group summary{cursor:pointer;padding:16px 0;min-height:64px;color:#f4a51c}
.review-group summary:focus-visible{outline:3px solid #ffbd36;outline-offset:5px;border-radius:3px}
.review-group-title{font-family:'Barlow Condensed',sans-serif;font-size:28px;font-weight:700;color:#fff7ec;vertical-align:middle}
.review-count{color:#f4a51c;margin-left:6px}
.review-group-description{display:block;font-size:14px;line-height:1.5;color:#b9b1a3;margin:3px 0 0 18px}
.review-group-clips{display:flex;gap:8px;flex-wrap:wrap;padding:0 0 16px}
.review-group-clips .muted{margin:0;line-height:1.5}
@media(max-width:600px){.review-group{padding:0 12px}.review-group-title{font-size:26px}.review-group-description{font-size:13px}.review-group-clips .play-event{min-height:58px}}

/* Review workspace: keep the source's natural aspect ratio, including portrait. */
#reviewDialog{--review-ratio:1.7777778}
.review-workspace,#reviewPanel,#reviewMedia{min-width:0}
#reviewMedia video{display:block;width:min(100%,calc(65dvh * var(--review-ratio)));height:auto;aspect-ratio:var(--review-ratio);max-width:100%;object-fit:contain;margin-inline:auto}
#reviewMedia iframe{display:block;width:100%;height:auto;aspect-ratio:16/9}
#reviewPanel #reviewMessage{margin-top:0;overflow-wrap:anywhere}
#reviewForm textarea{resize:vertical}
@media(min-width:1000px){
 #reviewDialog{width:calc(100vw - 48px);max-width:1440px;height:92dvh;max-height:92dvh;padding:24px;overflow:hidden}
 #reviewDialog[open]{display:flex;flex-direction:column}
 .review-top{flex:none;margin-bottom:20px}
 .review-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,1fr);gap:28px;flex:1;min-height:0}
 #reviewDialog[data-video-orientation="portrait"] .review-workspace{grid-template-columns:clamp(220px,calc((92dvh - 200px)*var(--review-ratio)),38%) minmax(0,1fr)}
 #reviewMedia{overflow:auto;min-height:0;scrollbar-gutter:stable}
 #reviewMedia video{width:min(100%,calc((92dvh - 200px)*var(--review-ratio)));margin-inline:auto}
 #reviewMedia p{font-size:13px;line-height:1.5}
 #reviewPanel{overflow:auto;min-height:0;padding:2px 8px 12px 2px;scrollbar-gutter:stable}
 #reviewForm{border:1px solid #443a2c;border-radius:10px;padding:0 16px 16px;gap:0 16px;align-items:start}
 #reviewForm label{margin:12px 0}
 #reviewForm .review-scorer{margin:12px 0}
 #reviewForm .review-scorer label{margin:0}
 #reviewForm input,#reviewForm select,#reviewForm textarea{padding:10px}
 #reviewForm .muted{margin:8px 0;line-height:1.5}
 #reviewForm>button{align-self:end;min-height:44px}
 #reviewList.review-groups{margin-top:16px;border-top:0;padding-top:0}
 .review-group summary{padding:12px 0}
 .review-group-title{font-size:26px}
 .review-group-description{font-size:13px}
}
@media(min-width:1000px){
 #reviewForm .review-scorer{display:flex;align-items:flex-end;gap:10px}
 #reviewForm .review-scorer label{flex:1;min-width:0}
 #reviewForm .review-scorer>button{flex:none;font-size:13px;padding:10px;min-height:40px;margin:0}
}
@media(min-width:1000px) and (max-width:1199px){
 #reviewForm .review-scorer{display:block}
 #reviewForm .review-scorer>button{margin-top:8px}
}
@media(min-width:1000px){.review-top #sharePlayer{margin-left:auto}}

/* Empty players keep a clear, reversible exit inside the review panel. */
#emptyPlayer{border:1px solid #645035;border-radius:10px;padding:20px}
#emptyPlayer h3{margin-top:0}
#emptyPlayer p{line-height:1.5}
#playerRemovalNotice{margin-bottom:16px;padding:12px;border:1px solid #645035;border-radius:10px}
#playerRemovalNotice button{margin:8px 0 0}
#emptyPlayer[hidden],#removePlayerActions[hidden],#playerRemovalNotice[hidden],#reviewList[hidden],#sharePlayer[hidden]{display:none!important}

/* Manual play entry shares the review player without hiding its controls. */
#newEventForm{border:1px solid #645035;border-radius:10px;padding:16px;margin-top:16px;min-width:0}
#newEventForm h3{margin-top:0}
#newEventForm .actions{display:flex;flex-wrap:wrap;gap:8px}
#newEventForm button{min-height:44px;white-space:normal}
#newEventForm .muted{line-height:1.5}
#newEventError{overflow-wrap:anywhere}
#newEventForm[hidden],#addReviewEvent[hidden]{display:none!important}
.adding-event #reviewList,.adding-event #emptyPlayer,.adding-event #playerRemovalNotice,.adding-event #addReviewEvent,.adding-event #previousPlayer,.adding-event #nextPlayer,.adding-event #sharePlayer{display:none!important}
