@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#20283a;--muted:#778092;--line:#e8eaf0;--paper:#fff;--bg:#f8f9fc;--navy:#17243a;--orange:#ed875c;--coral:#ec775f;--lav:#eeebfa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:3}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font:800 20px Manrope}.brand small{display:block;font:600 8px 'DM Sans';letter-spacing:1.4px;color:#9da4b0;margin-top:2px}.brand-mark{background:#fff0e5;color:#ee8a53;border-radius:13px;width:39px;height:39px;display:grid;place-items:center;font-size:27px}.top-actions{display:flex;gap:18px;align-items:center}.demo-badge{font-size:10px;font-weight:700;letter-spacing:.8px;color:#848b98}.demo-badge i{display:inline-block;background:#dfa64a;width:7px;height:7px;border-radius:50%;margin-right:5px}.avatar{border:0;background:#ead8d1;color:#704b47;width:37px;height:37px;border-radius:50%;font-weight:700}.layout{max-width:1360px;margin:auto;display:grid;grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 74px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:26px 17px 16px;display:flex;flex-direction:column}.club-card{border:1px solid var(--line);padding:12px;border-radius:12px;display:flex;align-items:center;gap:9px;margin-bottom:28px}.club-icon{background:#f1edff;color:#8d80cf;width:34px;height:34px;border-radius:9px;display:grid;place-items:center}.club-card b,.club-card small,.profile b,.profile small{display:block}.club-card b{font-size:12px}.club-card small,.profile small{font-size:10px;color:var(--muted);margin-top:3px}.lock{margin-left:auto;font-size:11px}nav{display:grid;gap:6px}.nav-link{padding:11px 12px;border-radius:8px;text-decoration:none;color:#767f8f;font-weight:600;display:flex;gap:12px;align-items:center}.nav-link span{width:18px;text-align:center}.nav-link.active{background:#f4f2fb;color:#7769b5}.sidebar-note{margin-top:auto;background:#fff7ed;color:#bc8050;border-radius:10px;padding:15px;font-size:12px}.sidebar-note p{margin:6px 0 0;line-height:1.6;color:#947552}.profile{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;display:flex;align-items:center;gap:9px}.avatar.small{width:33px;height:33px;font-size:11px}.profile b{font-size:11px}.dots{margin-left:auto;border:0;background:none;font-size:20px;color:#777}.content{padding:32px 42px 60px;min-width:0}.page{display:none}.page.active-page{display:block}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.eyebrow{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#969daa;margin:0 0 8px}.welcome h1,.page-title h1{font:800 27px Manrope;margin:0;letter-spacing:-.8px}.welcome h1 span{color:#ed9a56}.subhead{color:var(--muted);margin:6px 0 0}.primary{border:0;border-radius:8px;padding:11px 16px;background:#eb805f;color:white;font:700 12px 'DM Sans';cursor:pointer;box-shadow:0 4px 9px #eb805f2b}.primary:hover{background:#da6e50}.hero{height:236px;position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(110deg,#172238 0%,#3c3c58 48%,#a8535d 78%,#ef9d65 100%);color:white;margin-bottom:33px}.hero:before{content:'';position:absolute;width:420px;height:220px;border-radius:50%;background:#ffd28a;filter:blur(50px);opacity:.36;right:4%;top:60px}.hero-sun{position:absolute;width:154px;height:154px;border-radius:50%;background:linear-gradient(#ffe3a0,#ee9663);right:22%;top:17px;box-shadow:0 0 62px #ffc77d80}.hero-copy{position:relative;z-index:1;padding:24px 30px}.pill{font-size:8px;letter-spacing:1px;font-weight:700}.pill.light{color:#ffd9a9}.hero h2{font:800 31px Manrope;line-height:1.08;margin:12px 0 7px}.hero-copy p{font-size:11px;color:#e9d7db}.hero-link{color:#ffd4a2;text-decoration:none;font-size:10px;font-weight:700}.hero-link span{margin-left:8px}.hero-caption{position:absolute;right:23px;bottom:18px;text-align:right;color:#f2c9bd;font-size:8px;letter-spacing:1px}.hero-caption b{display:block;color:white;font-size:11px;letter-spacing:0;margin-top:4px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:0 0 15px}.section-heading h2{font:700 18px Manrope;margin:0;letter-spacing:-.3px}.filters{display:flex;gap:3px;background:#f0f1f5;padding:3px;border-radius:8px}.filter{border:0;background:none;color:#828a98;border-radius:6px;padding:7px 11px;font:600 10px 'DM Sans';cursor:pointer}.filter.active{background:white;color:#424b5e;box-shadow:0 1px 4px #2221}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.photo-card{border:1px solid var(--line);background:white;border-radius:11px;overflow:hidden;min-width:0}.photo-art{height:174px;position:relative;overflow:hidden;background-size:cover;background-position:center}.photo-chip{position:absolute;z-index:2;left:11px;top:11px;background:#fffdf2dd;color:#62606a;border-radius:12px;padding:5px 8px;font-size:8px;font-weight:700}.photo-meta{padding:12px}.photo-title{font:700 12px Manrope;margin:0 0 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.byline{font-size:9px;color:#8d95a2;display:flex;align-items:center;gap:5px}.byline .mini-avatar{width:19px;height:19px;border-radius:50%;background:#f4e2d9;color:#9d6652;display:grid;place-items:center;font-size:8px;font-weight:700}.photo-foot{border-top:1px solid #f0f1f4;margin-top:10px;padding-top:9px;display:flex;justify-content:space-between;align-items:center}.like-btn{background:none;border:0;color:#8590a1;font:600 10px 'DM Sans';cursor:pointer}.like-btn.liked{color:#e57469}.photo-date{font-size:9px;color:#a2a8b2}.page-title{margin:6px 0 25px}.page-title h1{font-size:30px}.contest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:30px}.contest-card{min-height:184px;border-radius:12px;padding:20px;color:white;position:relative;overflow:hidden;background:linear-gradient(125deg,#314566,#bd7b7d,#f1ae73)}.contest-card:nth-child(2){background:linear-gradient(125deg,#575677,#ad7c99,#f2b287)}.contest-card:after{content:'☼';position:absolute;right:20px;bottom:-42px;font-size:170px;color:#ffdf9d55}.contest-card>*{position:relative;z-index:1}.contest-card .pill{color:#ffdfba}.contest-card h2{font:800 20px Manrope;margin:10px 0 5px}.contest-card p{font-size:11px;color:#fff0e9}.contest-card button{background:#fff;color:#765968;border:0;border-radius:7px;padding:8px 12px;font-size:10px;font-weight:700;margin-top:8px;cursor:pointer}.hall,.request,.member-row{background:#fff;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;padding:14px;gap:12px}.hall>span{font-size:23px}.hall b,.request b,.member-row b{font-size:11px}.hall p,.request p,.member-row small{font-size:10px;color:var(--muted);margin:4px 0 0}.count{background:#f1effa;color:#8475b4;padding:3px 7px;border-radius:10px;font:700 9px 'DM Sans';vertical-align:middle}.duel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:17px}.duel-card{border:1px solid var(--line);border-radius:13px;background:white;overflow:hidden;cursor:pointer;text-align:left;padding:0}.duel-card .photo-art{height:290px}.duel-card:hover{box-shadow:0 9px 28px #242b4018;transform:translateY(-2px)}.duel-card .photo-meta{padding:15px}.or{color:#a4aab4;font-size:10px;font-weight:700}.fineprint{font-size:10px;color:#9da4b0;margin-top:15px}.center{text-align:center}.invite-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:28px}.panel{background:white;border:1px solid var(--line);padding:20px;border-radius:11px}.panel-icon{width:34px;height:34px;background:#fff1e9;color:#dc8263;display:grid;place-items:center;border-radius:9px;font-size:17px}.panel h2{font:700 15px Manrope;margin:13px 0 5px}.panel>p{font-size:10px;color:var(--muted);margin:0 0 17px}.panel label,.modal>label:not(.dropzone),.form-row label{font-size:10px;font-weight:700;display:block;margin-bottom:6px}.input-row{display:flex;gap:7px}.input-row input,.modal input:not([type=file]),select{min-width:0;border:1px solid #e4e6ec;border-radius:7px;padding:10px;font:11px 'DM Sans';outline:none}.input-row input{flex:1}.input-row .primary{white-space:nowrap;padding:9px 12px;font-size:10px}.micro{font-size:9px!important;color:#a0a6b1!important;margin:10px 0 0!important}.code-box{display:flex;align-items:center;justify-content:space-between;background:#f7f6fb;border:1px dashed #d9d4ed;border-radius:8px;padding:11px 13px}.code-box span{font:700 13px Manrope;letter-spacing:1.1px;color:#7468a5}.code-box button{border:0;background:white;border-radius:5px;padding:6px 10px;color:#766bb0;font-size:10px;font-weight:700;cursor:pointer}.requests{display:grid;gap:8px;margin-bottom:26px}.request .mini-avatar,.member-row .mini-avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#f4e3dc;color:#966452;font-size:10px;font-weight:700}.request .push,.member-row .push{margin-left:auto}.approve,.remove{border:0;border-radius:6px;padding:7px 10px;font-size:9px;font-weight:700;cursor:pointer}.approve{background:#edf7f0;color:#528263}.remove{background:#fff0ee;color:#bd7068}.members-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.member-row{padding:10px}.member-row .mini-avatar{width:30px;height:30px}.member-row small{display:block}.role{font-size:9px;color:#9da3ae;margin-left:auto}.modal{width:min(460px,calc(100vw - 30px));border:0;padding:25px;border-radius:14px;position:relative}.modal h2{font:800 22px Manrope;margin:0 0 18px}.close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:24px;color:#8c93a0;cursor:pointer}.dropzone{height:135px;background:#faf9fd;border:1px dashed #d4d1df;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin-bottom:15px;cursor:pointer}.dropzone span{font-size:23px;color:#9b8fc7}.dropzone b{font-size:11px}.dropzone small{font-size:9px;color:#969daa}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.modal input:not([type=file]){width:100%;margin:0 0 14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 16px}.form-row select{display:block;width:100%;margin-top:6px}.full{width:100%}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;background:#202b41;color:white;padding:11px 17px;border-radius:8px;font-size:11px;transition:.2s;pointer-events:none;z-index:8}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.layout{grid-template-columns:185px minmax(0,1fr)}.content{padding:26px 23px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-art{height:160px}.hero-sun{right:14%}}@media(max-width:640px){.topbar{height:62px;padding:0 15px}.brand{font-size:17px}.brand-mark{width:34px;height:34px}.demo-badge{font-size:8px}.layout{display:block;min-height:calc(100vh - 62px)}.sidebar{position:fixed;z-index:4;bottom:0;left:0;right:0;height:62px;padding:4px 8px;background:#fff;border-top:1px solid var(--line);border-right:0}.club-card,.sidebar-note,.profile{display:none}nav{display:flex;justify-content:space-around;gap:0;height:100%}.nav-link{padding:5px 7px;display:flex;flex-direction:column;gap:2px;font-size:8px;justify-content:center}.nav-link span{font-size:15px}.content{padding:22px 15px 83px}.welcome h1{font-size:23px}.welcome{align-items:flex-end}.welcome .primary{padding:10px;font-size:10px}.hero{height:220px}.hero-copy{padding:23px}.hero-sun{width:118px;height:118px;right:8%;top:34px}.hero h2{font-size:28px}.hero-caption{right:12px;font-size:7px}.section-heading{align-items:flex-start;gap:8px;flex-direction:column}.section-heading h2{font-size:16px}.filters{align-self:stretch}.filter{flex:1}.gallery{gap:9px}.photo-art{height:135px}.photo-meta{padding:9px}.photo-title{font-size:10px}.byline{font-size:8px}.photo-date{font-size:8px}.photo-foot{margin-top:8px;padding-top:7px}.page-title h1{font-size:25px}.contest-grid{grid-template-columns:1fr}.duel{grid-template-columns:1fr 1fr;gap:8px}.duel .or{grid-column:1/-1;text-align:center;grid-row:1}.duel-card .photo-art{height:210px}.duel-card .photo-meta{padding:9px}.invite-grid{grid-template-columns:1fr}.input-row{flex-wrap:wrap}.input-row input{flex-basis:100%}.members-list{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.welcome .eyebrow{font-size:8px}.welcome h1 span{display:none}}

.auth-screen{position:fixed;inset:0;z-index:20;background:#f6f7fbef;backdrop-filter:blur(5px);display:grid;place-items:center;padding:16px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e7e9ef;border-radius:16px;padding:30px;box-shadow:0 20px 70px #18223822}.auth-card .brand-mark{margin-bottom:20px}.auth-card h1{font:800 25px Manrope;margin:0}.auth-card>.subhead{margin:7px 0 22px;font-size:12px}.auth-card label{display:block;font-size:10px;font-weight:700;margin:12px 0}.auth-card input{display:block;width:100%;border:1px solid #e1e4eb;border-radius:7px;padding:11px;margin-top:6px;font:12px 'DM Sans'}.auth-actions{display:flex;gap:8px;margin-top:18px}.auth-actions button{flex:1}.secondary{border:1px solid #e2e3eb;background:#fff;border-radius:8px;padding:10px 13px;color:#6c658e;font:700 11px 'DM Sans';cursor:pointer}.join-row{display:flex;gap:7px;margin-top:12px}.join-row input{flex:1;min-width:0}.join-row button{white-space:nowrap}.auth-status{font-size:11px;color:#7567a3;margin-top:13px;line-height:1.5}.hidden{display:none!important}
.rating-summary{margin-top:11px;font-size:11px;color:#7c8492}.rating-summary strong{font:800 18px Manrope;color:#d58b4f}.rating-summary span{color:#959ca8}.star-rating{display:flex;gap:4px;margin-top:7px}.star{border:0;background:transparent;padding:0 2px;color:#d8dce4;font-size:25px;line-height:1;cursor:pointer;transition:transform .12s,color .12s}.star:hover{transform:scale(1.15);color:#f0b45e}.star.selected{color:#f0ad4f}.rating-hint{font-size:9px;color:#999fac;margin:7px 0 0}.rating-card .photo-art{height:185px}

.code-generate{margin-top:9px}


#password-setup .auth-card{max-height:calc(100vh - 32px);overflow:auto}


.competition-admin{margin:0 0 24px}.competition-admin>p{font-size:11px;color:var(--muted)}.competition-admin h3{font:700 13px Manrope;margin:22px 0 9px}.competition-admin form{display:grid;gap:8px;max-width:700px}.competition-admin label{font-size:10px;font-weight:700}.competition-admin input,.competition-admin textarea,.competition-admin select{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:7px;padding:10px;font:11px 'DM Sans',sans-serif;color:var(--ink);background:#fff}.competition-admin textarea{resize:vertical}.competition-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.competition-admin form .primary{justify-self:start;margin-top:6px}.competition-admin-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.competition-admin-row small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.competition-admin-row button{margin-left:auto}.daily-lookback{margin-bottom:20px}.daily-recap,.daily-recap-empty{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px}.daily-recap-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.daily-recap-heading .eyebrow,.daily-recap-empty .eyebrow{margin-bottom:5px}.daily-recap-heading h2{font:700 16px Manrope;margin:0}.recap-grid{display:flex;gap:12px;flex-wrap:wrap}.recap-card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding-right:12px;min-width:min(320px,100%)}.recap-card .photo-art{width:108px;height:72px;flex:none}.recap-card>div:last-child b,.recap-card>div:last-child small{display:block}.recap-card>div:last-child b{font-size:11px}.recap-card>div:last-child small{font-size:9px;color:var(--muted);margin-top:4px}.daily-recap-empty b{font:700 12px Manrope}.daily-recap-empty>p:last-child{font-size:10px;color:var(--muted);margin:5px 0 0}.duel-card:disabled{cursor:default;opacity:.82}.duel-card.daily-selected{border:2px solid #e4a65f;box-shadow:0 0 0 3px #e4a65f22}.your-pick{display:inline-block;margin-top:8px;padding:4px 7px;border-radius:10px;background:#fff1df;color:#a36932;font-size:9px;font-weight:700}.daily-vote-note{grid-column:1/-1;text-align:center;font-size:10px;color:var(--muted);margin:0}

.photo-art{cursor:zoom-in}.photo-art:focus-visible{outline:3px solid #d98d56;outline-offset:-3px}.photo-viewer{position:relative;width:min(1100px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:14px;background:#111827;color:#fff;overflow:auto}.photo-viewer::backdrop{background:#121827cc;backdrop-filter:blur(4px)}#expanded-photo{display:block;width:100%;max-height:calc(100dvh - 140px);object-fit:contain;background:#111827}.photo-viewer-caption{padding:14px 20px 18px}.photo-viewer-caption h2{font:700 16px Manrope;margin:0}.photo-viewer-caption p{font-size:11px;color:#d4d7df;margin:5px 0 0}.photo-viewer-close{position:sticky;float:right;top:10px;margin:10px 10px -48px 0;z-index:1;border:0;border-radius:50%;width:36px;height:36px;background:#111827cc;color:white;font-size:25px;line-height:1;cursor:pointer}.duel-card{cursor:default}.duel-card .pick-photo{margin-top:11px;font-size:10px}.duel-card .pick-photo:disabled{opacity:.72}
