*{box-sizing:border-box}html{background:var(--cp-bg);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--cp-text);background:var(--cp-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:var(--cp-accent-soft)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cp-accent);outline-offset:3px}.app-shell{width:min(1280px,100% - 32px);min-height:100vh;margin:0 auto}.coming-soon{background:radial-gradient(circle at center, var(--cp-surface-soft) 0, var(--cp-surface) 68%);place-items:center;width:100%;min-height:100svh;padding:32px;display:grid;position:relative;overflow:hidden}.coming-soon:before,.coming-soon:after{border:1px solid var(--cp-border);content:"";opacity:.45;border-radius:50%;width:min(44vw,620px);height:min(44vw,620px);position:absolute}.coming-soon:before{top:-28%;left:-14%}.coming-soon:after{bottom:-28%;right:-14%}.coming-soon-content{z-index:1;text-align:center;width:min(980px,100%);position:relative}.coming-soon-kicker{color:var(--cp-accent);letter-spacing:.24em;text-transform:uppercase;margin-bottom:12px;font-size:.82rem;font-weight:800}.coming-soon h1{letter-spacing:-.07em;text-transform:uppercase;margin-bottom:16px;font-size:clamp(3.6rem,11vw,8.5rem);line-height:.88}.coming-soon-message{color:var(--cp-text-muted);margin-bottom:52px;font-size:clamp(1rem,2.5vw,1.3rem)}.logo-lockup{grid-template-columns:minmax(0,1fr) 1px minmax(0,.78fr);align-items:center;gap:clamp(24px,6vw,64px);width:min(760px,100%);margin:0 auto;display:grid}.secret-logo{cursor:default;background:0 0;border:0;place-items:center;min-width:0;padding:0;display:grid}.secret-logo img,.jammy-logo{object-fit:contain;width:100%;max-height:330px;filter:drop-shadow(0 12px 20px var(--cp-highlight));display:block}.secret-logo img{max-width:360px}.jammy-logo{max-width:300px}.logo-divider{background:var(--cp-border-strong);opacity:.65;width:1px;height:min(260px,35vw)}.site-header,.site-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.site-header{border-bottom:1px solid var(--cp-border);min-height:76px}.brand{color:var(--cp-text);letter-spacing:-.03em;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{width:36px;height:36px;color:var(--cp-accent-fg);background:var(--cp-accent);border-radius:10px;place-items:center;display:inline-grid}.site-nav{align-items:center;gap:24px;display:flex}.site-nav a{color:var(--cp-text-muted);font-weight:650;text-decoration:none}.site-nav a:hover{color:var(--cp-accent)}.page-intro{max-width:780px;padding:100px 0 64px}.page-intro.compact{padding-bottom:40px}.eyebrow{color:var(--cp-accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 16px;font-size:.8rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--cp-text)}h1{letter-spacing:-.06em;margin-bottom:24px;font-size:clamp(2.8rem,8vw,6rem);line-height:.96}h2{letter-spacing:-.03em;margin-bottom:8px;font-size:1.8rem}.page-intro>p:last-child{max-width:650px;color:var(--cp-text-muted);font-size:1.18rem;line-height:1.7}.site-footer{border-top:1px solid var(--cp-border);min-height:100px;color:var(--cp-text-muted);margin-top:100px}.button{border:1px solid var(--cp-border);min-height:42px;color:var(--cp-text);background:var(--cp-surface);cursor:pointer;border-radius:.625rem;padding:8px 16px;font-weight:700}.button:hover{border-color:var(--cp-border-strong);background:var(--cp-surface-soft)}.button.primary{border-color:var(--cp-accent);color:var(--cp-accent-fg);background:var(--cp-accent)}.button.primary:hover{border-color:var(--cp-accent-hover);background:var(--cp-accent-hover)}.button.danger{border-color:var(--cp-danger);color:var(--cp-danger);background:var(--cp-surface)}.button:disabled{cursor:wait;opacity:.65}.inline-button{align-items:center;margin-top:24px;text-decoration:none;display:inline-flex}.status-card{border:1px solid var(--cp-border);background:var(--cp-surface);text-align:center;border-radius:16px;max-width:760px;margin:80px auto;padding:32px}.status-card.error,.form-error{color:var(--cp-danger)}.form-success{color:var(--cp-success)}.public-poster{width:min(800px,100%);box-shadow:var(--cp-shadow);border-radius:16px;margin:0 auto;overflow:hidden}.archive-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.archive-card{border:1px solid var(--cp-border);min-height:160px;color:var(--cp-text);background:var(--cp-surface);border-radius:16px;flex-direction:column;justify-content:space-between;padding:24px;text-decoration:none;display:flex}.archive-card:hover{border-color:var(--cp-accent)}.archive-card span{color:var(--cp-text-muted)}.poster{--cp-poster-accent:var(--cp-poster-yellow);--cp-poster-accent-fg:var(--cp-accent-fg);isolation:isolate;aspect-ratio:1;width:100%;color:var(--cp-text);background:var(--cp-surface);background-position:50%;background-size:cover;grid-template:"heading own-team"30%"players match"58%"footer footer"12%/64% 36%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.poster-yellow{background-image:url(/poster-background-yellow.png)}.poster-red{--cp-poster-accent:var(--cp-poster-red);--cp-poster-accent-fg:var(--cp-text);background-image:url(/poster-background-red.png)}.poster-grain{z-index:-1;background:linear-gradient(var(--cp-overlay), transparent);opacity:.08;position:absolute;inset:0}.poster:before,.poster:after{z-index:-1;content:"";pointer-events:none;position:absolute}.poster:before{border:.28cqw solid var(--cp-poster-accent);opacity:.42;inset:1.6cqw}.poster:after{border:.35cqw solid var(--cp-poster-accent);opacity:.18;width:34cqw;height:34cqw;bottom:-11cqw;right:-11cqw;transform:rotate(30deg)}.poster-heading{grid-area:heading;align-self:end;padding:2.6cqw 0 0 3.4cqw}.poster-league{width:100%;color:var(--cp-text);letter-spacing:.18em;white-space:nowrap;text-transform:uppercase;justify-content:center;align-items:center;gap:1.6cqw;margin:0 0 1cqw;font-size:2.65cqw;font-weight:900;display:flex}.poster-league span{background:var(--cp-poster-accent);width:6cqw;height:.55cqw}.poster-heading h2{color:var(--cp-poster-accent);letter-spacing:-.035em;white-space:nowrap;transform-origin:0;text-transform:uppercase;width:145%;margin:0;font-family:Impact,Arial Narrow,Segoe UI,sans-serif;font-size:17.2cqw;font-weight:950;line-height:.76;transform:scaleX(.8)}.poster-squad-title{clip-path:polygon(2% 16%,100% 0,96% 78%,4% 100%);min-width:46cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);text-align:center;text-transform:uppercase;margin:1.5cqw 0 0 7cqw;padding:.7cqw 3.2cqw .9cqw;font-size:4.5cqw;font-style:italic;font-weight:950;line-height:1;display:inline-block}.poster-own-team{grid-area:own-team;align-content:center;place-items:center;padding:.5cqw 0 0;display:grid}.poster-red .poster-own-team{transform:translate(1.2cqw)}.poster-own-team img,.poster-own-team .poster-logo-placeholder,.poster-opponent .poster-logo-placeholder{object-fit:contain;width:33cqw;height:29cqw;filter:drop-shadow(0 1cqw 1.3cqw var(--cp-highlight))}.poster-opponent img{object-fit:contain;width:28cqw;height:24.5cqw;filter:drop-shadow(0 1cqw 1.3cqw var(--cp-highlight))}.poster-own-team strong,.poster-opponent strong{max-width:28cqw;color:var(--cp-poster-accent);text-align:center;text-transform:uppercase;font-size:2.35cqw;font-weight:950;line-height:1}.poster-own-team strong{color:var(--cp-poster-accent-fg)}.poster-player-rule{background:var(--cp-poster-accent);clip-path:polygon(30% 0,100% 3%,65% 46%,100% 100%,0 97%,28% 50%);width:.65cqw;position:absolute;top:33cqw;bottom:11cqw;left:4.5cqw}.poster-players{grid-area:players;padding:3.6cqw 3cqw 1.5cqw 8.6cqw}.poster-player-list{margin:0;padding:0;list-style:none}.poster-player-list li{letter-spacing:.018em;text-transform:uppercase;margin-bottom:.18cqw;font-family:Arial Narrow,Segoe UI,sans-serif;font-size:3cqw;font-weight:900;line-height:1.08}.poster-divider{background:var(--cp-poster-accent);clip-path:polygon(1% 25%,98% 0,100% 68%,3% 100%);width:72%;height:.55cqw;margin:1.4cqw 0}.poster-match{flex-direction:column;grid-area:match;align-items:center;padding:0 2.8cqw 1.2cqw 0;display:flex}.poster-opponent{place-items:center;display:grid}.poster-logo-placeholder{border:.4cqw solid var(--cp-poster-accent);color:var(--cp-poster-accent);background:var(--cp-surface);border-radius:16px;place-items:center;font-size:4.6cqw;font-weight:900;display:grid}.poster-versus{color:var(--cp-text);margin:-.8cqw 0 -.5cqw;font-family:Impact,Arial Narrow,Segoe UI,sans-serif;font-size:8.2cqw;font-style:italic;font-weight:950;line-height:1;transform:rotate(-5deg)}.poster-details{border-left:.55cqw solid var(--cp-poster-accent);width:100%;margin:0;padding-left:1.2cqw}.poster-details div{border-bottom:.22cqw dashed var(--cp-poster-accent);grid-template-columns:4.6cqw 1fr;align-items:center;column-gap:1cqw;padding:.48cqw 0;display:grid}.poster-details div:last-child{border-bottom:0}.poster-detail-icon{width:4.2cqw;height:4.2cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.poster-detail-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:2.8cqw;height:2.8cqw}.poster-details dt{color:var(--cp-poster-accent);letter-spacing:.08em;text-transform:uppercase;font-size:1.45cqw;font-weight:900}.poster-details dd{text-transform:uppercase;margin:0;font-family:Arial Narrow,Segoe UI,sans-serif;font-size:2.45cqw;font-weight:900;line-height:1.05}.poster-footer{color:var(--cp-text);flex-direction:column;grid-area:footer;align-items:center;padding-top:.5cqw;display:flex}.poster-footer strong{clip-path:polygon(2% 18%,100% 0,96% 82%,0 100%);min-width:48cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);letter-spacing:-.04em;text-align:center;text-transform:uppercase;padding:.5cqw 5cqw .8cqw;font-size:5.1cqw;font-style:italic;font-weight:950;line-height:1}.poster-footer span{letter-spacing:.035em;margin-top:.7cqw;font-size:1.8cqw;font-weight:800}.poster-red:before,.poster-red:after{border-color:var(--cp-poster-accent)}.poster-red .poster-league span,.poster-red .poster-squad-title,.poster-red .poster-player-rule,.poster-red .poster-divider,.poster-red .poster-detail-icon,.poster-red .poster-footer strong{background:var(--cp-poster-accent)}.poster-red .poster-opponent strong,.poster-red .poster-logo-placeholder,.poster-red .poster-details dt{color:var(--cp-poster-accent)}.poster-red .poster-heading h2{color:var(--cp-text)}.poster-red .poster-logo-placeholder,.poster-red .poster-details{border-color:var(--cp-poster-accent)}.poster-red .poster-details div{border-bottom-color:var(--cp-poster-accent)}.poster-red .poster-squad-title,.poster-red .poster-detail-icon,.poster-red .poster-footer strong{color:var(--cp-text)}.admin-page{min-width:0}.admin-tabs{border:1px solid var(--cp-border);background:var(--cp-surface-soft);border-radius:.625rem;gap:4px;padding:4px;display:flex;overflow-x:auto}.admin-tabs button{min-height:42px;color:var(--cp-text-muted);background:var(--cp-surface-soft);white-space:nowrap;cursor:pointer;border:0;border-radius:.625rem;padding:8px 16px;font-weight:700}.admin-tabs button.active{color:var(--cp-accent-fg);background:var(--cp-accent)}.admin-panel{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:16px;margin-top:20px;padding:28px}.section-heading{justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.section-heading p{color:var(--cp-text-muted);margin:0}.entity-form,.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.entity-form{border:1px solid var(--cp-border);background:var(--cp-bg-elevated);border-radius:16px;margin-bottom:28px;padding:20px}label{color:var(--cp-text-muted);gap:8px;font-size:.9rem;font-weight:700;display:grid}input,select{border:1px solid var(--cp-border);width:100%;min-height:44px;color:var(--cp-text);background:var(--cp-surface);border-radius:.625rem;padding:8px 12px}input[type=file]{padding:8px}.checkbox-field{min-height:44px;color:var(--cp-text);cursor:pointer;align-items:center;gap:10px;display:flex}.checkbox-field input{width:18px;min-height:18px;accent-color:var(--cp-accent);margin:0}.form-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;display:flex}.membership-picker{border:1px solid var(--cp-border);border-radius:.625rem;min-width:0;margin:0;padding:16px}.membership-picker legend{color:var(--cp-text);padding:0 6px;font-weight:800}.membership-picker p{color:var(--cp-text-muted);margin:0}.edit-modal{border:1px solid var(--cp-border);width:min(720px,100% - 32px);max-height:calc(100svh - 32px);color:var(--cp-text);background:var(--cp-surface);box-shadow:var(--cp-shadow);border-radius:16px;padding:0;overflow:hidden}.edit-modal::backdrop{background:var(--cp-overlay)}.edit-modal-card{max-height:calc(100svh - 32px);overflow-y:auto}.edit-modal-header{z-index:1;border-bottom:1px solid var(--cp-border);background:var(--cp-surface);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex;position:sticky;top:0}.edit-modal-header h2{margin:0}.edit-modal .entity-form{background:var(--cp-surface);border:0;border-radius:0;margin:0;padding:24px}.assignment-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.entity-list{gap:8px;display:grid}.entity-row{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:.625rem;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px 16px;display:flex}.entity-row>div:first-child{gap:3px;display:grid}.entity-row span{color:var(--cp-text-muted);text-transform:capitalize;font-size:.85rem}.row-actions{gap:8px;display:flex}.team-name{align-items:center;gap:12px;display:flex}.team-name img,.team-name>span:first-child{object-fit:contain;background:var(--cp-surface-soft);border-radius:.625rem;width:40px;height:40px}.team-name .team-player-count{width:auto;height:auto;color:var(--cp-text-muted);background:0 0;font-size:.85rem}.sheet-workspace{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);align-items:start;gap:28px;display:grid}.sheet-form{min-width:0}.full-field{grid-column:1/-1}.player-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.player-picker fieldset{border:1px solid var(--cp-border);border-radius:16px;min-width:0;margin:0;padding:16px}.player-picker legend{color:var(--cp-text);padding:0 6px;font-weight:800}.player-option{min-height:38px;color:var(--cp-text);cursor:pointer;grid-template-columns:auto 1fr;align-items:center;font-weight:500;display:flex}.player-option input{width:18px;min-height:18px;accent-color:var(--cp-accent);margin:0}.empty-player-roster{color:var(--cp-text-muted);grid-column:1/-1;margin:0}.sticky-actions{z-index:2;border:1px solid var(--cp-border);background:var(--cp-panel-strong);box-shadow:var(--cp-shadow);border-radius:.625rem;margin-top:24px;padding:12px;position:sticky;bottom:12px}.poster-preview{min-width:0;box-shadow:var(--cp-shadow);border-radius:16px;position:sticky;top:20px;overflow:hidden}@media (width<=900px){.sheet-workspace{grid-template-columns:1fr}.poster-preview{grid-row:1;position:static}}@media (width<=640px){.coming-soon{padding:28px 20px}.coming-soon-message{margin-bottom:38px}.logo-lockup{grid-template-columns:minmax(0,1fr) 1px minmax(0,.78fr);gap:18px}.secret-logo img,.jammy-logo{max-height:210px}.logo-divider{height:150px}.app-shell{width:min(100% - 20px,1280px)}.assignment-groups{grid-template-columns:1fr}.site-header{flex-direction:column;align-items:flex-start;padding:16px 0}.site-nav{justify-content:space-between;gap:12px;width:100%}.page-intro{padding:64px 0 40px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;padding:24px 0}.admin-panel{padding:16px}.entity-form,.field-grid,.player-picker{grid-template-columns:1fr}.entity-row{flex-direction:column;align-items:flex-start}.row-actions{width:100%}.row-actions .button{flex:1}}
