/* ROCKETTES TOURNAMENT PAGE — the approved Chipotle-feel design, live. GENERATED by _handoff/rockettes-design/build-crt.py
   from _handoff/rockettes-design/loretta-chipotle.html (md5 4148fe47fdba83c90c86153252131dde).
   Do not hand-edit the generated part: change the mockup, re-run the script. Live-only additions are in the LIVE block at the end. */

@font-face{font-family:Nexa;src:url(/fonts/nxa_light.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Nexa;src:url(/fonts/nxa_regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Nexa;src:url(/fonts/nxa_xbold.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Nexa;src:url(/fonts/nxa_black.woff2) format("woff2");font-weight:900;font-display:swap}

.crt{
  /* Rockettes brand tokens */
  /* derived */
  --paper:#f5efe4;                 /* warm cream paper */
  --paper-lav:#ece4f1;             /* lavender paper */
  --card:#fffcf6;                  /* printed program stock */
  --lav-2:color-mix(in srgb, var(--color1) 8%, #fff);
  --rule:color-mix(in srgb, var(--color1) 30%, transparent);
  --shadow:color-mix(in srgb, var(--color1) 16%, transparent);
  --scrim:29,0,66;                 /* --color1xd as rgb, for photo scrims */
  /* Loretta B. Smith ribbon pink: accent, used sparingly */
  --pink:#ec6aa0; --pinkd:#b0145a; --pink-xl:#fde4ef; --pink-photo:#f7a9c9;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .3 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --mottle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='800'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .3 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");
  --stitch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14'%3E%3Cpath d='M3 11L11 4M17 4L25 11' stroke='%23ec6aa0' stroke-width='2.6' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  /* torn bottom edge, shared by the hero photo and the cause band */
  --tear-bottom:100.0% calc(100% - 10px),97.2% calc(100% - 17px),95.0% calc(100% - 8px),92.7% calc(100% - 7px),89.7% calc(100% - 15px),86.8% calc(100% - 4px),85.2% calc(100% - 25px),82.6% calc(100% - 7px),79.9% calc(100% - 9px),77.0% calc(100% - 13px),74.8% calc(100% - 6px),73.3% calc(100% - 21px),70.4% calc(100% - 7px),67.8% calc(100% - 9px),64.9% calc(100% - 11px),63.6% calc(100% - 1px),62.2% calc(100% - 14px),60.4% calc(100% - 21px),58.5% calc(100% - 17px),55.4% calc(100% - 13px),52.8% calc(100% - 4px),50.3% calc(100% - 13px),48.6% calc(100% - 7px),46.4% calc(100% - 16px),44.3% calc(100% - 8px),42.1% calc(100% - 13px),40.5% calc(100% - 16px),37.8% calc(100% - 13px),35.5% calc(100% - 6px),32.8% calc(100% - 10px),31.3% calc(100% - 15px),29.3% calc(100% - 5px),27.1% calc(100% - 24px),25.1% calc(100% - 4px),22.3% calc(100% - 22px),19.7% calc(100% - 6px),17.9% calc(100% - 6px),16.0% calc(100% - 24px),13.4% calc(100% - 15px),11.4% calc(100% - 13px),9.3% calc(100% - 19px),7.9% calc(100% - 20px),5.2% calc(100% - 0px),2.5% calc(100% - 13px),0.1% calc(100% - 0px),0 calc(100% - 25px);
}

.crt, .crt *{box-sizing:border-box}
.crt{-webkit-text-size-adjust:100%}
.crt{margin:0;background-color:var(--paper);background-image:var(--grain),var(--mottle);color:var(--color3);
  font:400 18px/1.55 Nexa,"Helvetica Neue",Arial,sans-serif;overflow-x:clip}
.crt img{max-width:100%;display:block}
.crt a{color:inherit;text-decoration:none}
.crt a:hover, .crt a:focus{text-decoration:none}
.crt :focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:6px}
.crt h1, .crt h2, .crt h3, .crt h4, .crt p, .crt figure, .crt dl, .crt dd{margin:0}
.crt .crt-wrap{width:min(1240px, 100% - 48px);margin-inline:auto}
.crt .crt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type ---------- */
.crt .crt-lt{font-family:"Londrina Solid",Impact,sans-serif;text-transform:uppercase;line-height:.84;color:var(--color1);display:inline-block;font-weight:900;letter-spacing:.005em}
.crt .crt-lt.crt-w4{font-weight:400}.crt .crt-lt.crt-w3{font-weight:300}
.crt .crt-ink{filter:url(#crt-ink)}
.crt .crt-label{font:800 15px/1.3 Nexa,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--color1)}
/* "a · b" meta lines: each chunk stays whole; a separator that would start a wrapped line is clipped */
.crt .crt-dots{display:flex;flex-wrap:wrap;column-gap:1em;overflow:hidden}
.crt .crt-dots > span{white-space:nowrap}
.crt .crt-dots > span + span::before{content:"·";display:inline-block;width:1em;margin-left:-1em;text-align:center}

/* ---------- buttons: rounded rectangle 10px, never pills, never underlined ---------- */




/* on the photo: purple fill keeps its white keyline so it reads against the dark scrim */




.crt .btn svg{width:20px;height:20px;flex:none}
.crt .crt-btns{display:flex;align-items:center;flex-wrap:wrap;gap:14px}

/* ---------- graphics ---------- */
.crt .crt-ic{display:inline-block;flex:none;color:var(--color1)}
.crt .crt-sp{display:inline-block;flex:none;width:.42em;height:.42em;color:var(--color1)}
.crt .crt-sp.crt-pink{color:var(--pink)}
.crt .crt-stitches{height:14px;background:var(--stitch) repeat-x left center;opacity:.9}
/* field call-out: big field name inside a hand-drawn pink oval */
.crt .crt-fld{position:relative;display:inline-flex;align-items:center;padding:7px 16px 6px;font:400 25px/1 "Londrina Solid",Impact,sans-serif;text-transform:uppercase;color:var(--color1);white-space:nowrap;letter-spacing:.02em}
.crt .crt-fld svg{position:absolute;left:-5px;top:-4px;width:calc(100% + 10px);height:calc(100% + 8px);color:var(--pink);overflow:visible}

/* ---------- mockup strip + header ---------- */

.crt .crt-top{padding:18px 0}
.crt .crt-top-in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.crt .crt-brand img{height:54px;width:auto}
.crt .crt-nav{display:flex;align-items:center;gap:30px}
.crt .crt-nav a.crt-nl{font:800 17px/1 Nexa,sans-serif;color:var(--color1)}
.crt .crt-nav a.crt-nl:hover{color:var(--pinkd)}


/* ---------- hero: full-bleed sunset photo, white lettering on a purple scrim, torn bottom edge ---------- */
.crt .crt-hero{position:relative;isolation:isolate;color:#fff;padding:64px 0 168px;min-height:760px;display:flex;align-items:center;
  clip-path:polygon(0 0,100% 0,var(--tear-bottom))}
.crt .crt-hero-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 36%}
.crt .crt-hero-scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(var(--scrim),.8) 0%,rgba(var(--scrim),.74) 44%,rgba(var(--scrim),.52) 58%,rgba(var(--scrim),.14) 76%,rgba(var(--scrim),.04) 100%),
             linear-gradient(0deg,rgba(var(--scrim),.5) 0%,rgba(var(--scrim),0) 26%)}
.crt .crt-hero-in{display:grid;grid-template-columns:minmax(0,1.36fr) minmax(0,.78fr);align-items:center;gap:32px}
.crt .crt-lock{display:flex;flex-direction:column;align-items:flex-start;font-weight:inherit}
.crt .crt-lock .crt-row{display:flex;align-items:center;gap:.14em}
.crt .crt-lock-hero{transform:rotate(-3deg);transform-origin:0 50%}
.crt .crt-lock-hero .crt-lt{color:#fff;text-shadow:0 3px 22px rgba(var(--scrim),.5)}
.crt .crt-lock-hero .crt-r1{transform:rotate(2deg);margin:0 0 .25em .1em}
.crt .crt-lock-hero .crt-r2{margin-bottom:.02em}
.crt .crt-h-s{font-size:34px;font-weight:400;letter-spacing:.07em}
.crt .crt-h-xl{font-size:clamp(50px,8.5vw,122px)}
.crt .crt-h-m{font-size:clamp(32px,4.4vw,66px)}
.crt .crt-h-xxl{font-size:clamp(82px,13.2vw,190px);line-height:.8}
.crt .crt-lock-hero .crt-sp{width:30px;height:30px;color:#fff}
.crt .crt-circ-a{position:relative;display:inline-grid;place-items:center;width:2.1em;height:1.5em;font-size:34px;margin-left:.1em}
.crt .crt-circ-a .crt-lt{font-size:1em;font-weight:900}
.crt .crt-circ-a svg{position:absolute;inset:-6% -10%;width:120%;height:112%;color:var(--pink)}
.crt .crt-swoosh{display:block;width:min(640px,92%);height:44px;color:var(--pink);margin:.15em 0 0 .3em}
.crt .crt-facts{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px}
.crt .crt-facts li{display:flex;align-items:center;gap:10px;font:800 18px/1.3 Nexa,sans-serif;color:#fff}
.crt .crt-facts .crt-ic{width:30px;height:30px;color:#fff}
.crt .crt-hero .crt-btns{margin-top:30px}
.crt .crt-jump{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;margin-top:26px}
.crt .crt-jump .crt-label{color:#fff}
.crt .crt-jump a{display:inline-flex;align-items:center;gap:8px;font:800 17px/1.3 Nexa,sans-serif;color:#fff;transition:color .15s}
.crt .crt-jump a:hover{color:var(--pink-photo)}
.crt .crt-jump svg{width:20px;height:20px;flex:none;color:var(--pink-photo)}
/* event logo as a stitched sticker inside hand-drawn sun rays */
.crt .crt-hero-art{position:relative;width:min(500px,100%);aspect-ratio:1;margin-inline:auto}
.crt .crt-hero-art .crt-rays{position:absolute;inset:0;width:100%;height:100%;color:#fff;filter:drop-shadow(0 2px 6px rgba(var(--scrim),.45))}
.crt .crt-sticker{position:absolute;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:var(--card);
  box-shadow:0 18px 38px rgba(var(--scrim),.45),0 2px 6px rgba(var(--scrim),.25)}
.crt .crt-sticker > img{width:78%;height:auto}
.crt .crt-sticker .crt-ring{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);color:var(--pink)}
.crt .crt-hero-art .crt-sticker{left:48.15%;top:48.15%;width:62%;transform:translate(-50%,-50%) rotate(-6deg)}
.crt .crt-hero-art .crt-sp{position:absolute;color:#fff}
.crt .crt-hf-label{position:absolute;left:50%;bottom:-2%;transform:translateX(-50%) rotate(3deg);background:var(--card);color:var(--color1);
  font:400 22px/1 "Londrina Solid",Impact,sans-serif;text-transform:uppercase;letter-spacing:.05em;padding:11px 16px 9px;white-space:nowrap;
  box-shadow:0 10px 22px rgba(var(--scrim),.4)}
.crt .crt-hf-label::before{content:"";position:absolute;left:50%;top:-12px;width:66px;height:22px;transform:translateX(-50%) rotate(-4deg);background:rgba(197,199,197,.78)}

/* ---------- our games: ticket stubs that break the hero's torn edge ---------- */
.crt .crt-strip{position:relative;z-index:3;margin-top:-86px;margin-bottom:110px}
.crt .crt-sticker-sm{display:none}
.crt .crt-tickets{display:grid;grid-template-columns:200px repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,auto);column-gap:14px}
.crt .crt-tk-title{grid-row:1 / span 4;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:24px;background:var(--color1);
  border-radius:14px;box-shadow:6px 6px 0 var(--shadow)}
.crt .crt-tk-title .crt-lt{color:#fff;font-size:56px}
.crt .crt-tk-title .crt-sp{color:#fff;width:28px;height:28px}
.crt .crt-tk-note{font-size:16px;line-height:1.35;color:#fff}
.crt .crt-tk{position:relative;grid-row:span 4;display:grid;grid-template-rows:subgrid;row-gap:0;padding:0 20px;background:var(--card);
  border:2px solid var(--color1);border-radius:14px;box-shadow:6px 6px 0 var(--shadow);overflow:hidden}
.crt .crt-tk-when{display:flex;align-items:center;padding-top:20px}
.crt .crt-tk-time{font-size:40px;white-space:nowrap;display:inline-flex;align-items:center;gap:.12em}
.crt .crt-tk-time small{font-size:.6em;font-weight:400;letter-spacing:.04em;line-height:1}
.crt .crt-tk-fld{display:flex;align-items:center;padding:12px 0 18px}
/* perforation with notched stub edges */
.crt .crt-tk-perf{position:relative;margin:0 -20px;border-top:2px dashed var(--rule)}
.crt .crt-tk-perf::before, .crt .crt-tk-perf::after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--paper);border:2px solid var(--color1)}
.crt .crt-tk-perf::before{left:-14px}.crt .crt-tk-perf::after{right:-14px}
.crt .crt-tk-team{display:flex;align-items:center;gap:12px;padding:18px 0 22px}
.crt .crt-tk-opp{font:800 19px/1.25 Nexa,sans-serif;color:var(--color1);min-width:0}
.crt .crt-tk-sub{font-size:16px;line-height:1.35;color:var(--color3);font-weight:400;margin-top:2px}
.crt .crt-tk-sub.crt-dots > span{white-space:normal}
.crt .crt-mono{flex:none;width:56px;height:56px;display:grid;place-items:center;background:#fff;border:2.5px solid var(--color1);
  border-radius:52% 48% 50% 50% / 48% 53% 47% 52%;font:900 25px/1 "Londrina Solid",Impact,sans-serif;color:var(--color1)}
.crt .crt-mono img{height:34px;width:auto}
.crt .crt-mono.has-logo{overflow:hidden}   /* opponent club logo (img/game/opp) fills its circle */
.crt .crt-mono.has-logo img{width:100%;height:100%;object-fit:contain}
.crt .crt-mono.is-opp{background:var(--crt-opp,var(--gray8,#333333));border-color:var(--crt-opp,var(--gray8,#333333));color:#fff}   /* no logo: initials on the team color from its GameChanger logo, dark gray when unknown (custom-cr-opponent-logo.html; Craig 2026-11-02) */
.crt .crt-mono .crt-sp{width:26px;height:26px;color:var(--pink)}

/* ---------- proof numbers (lavender paper, torn) ---------- */
.crt .crt-proof{background-color:var(--paper-lav);background-image:var(--grain);padding:130px 0 130px;
  clip-path:polygon(0.0% 0px,3.3% 16px,5.4% 8px,7.7% 7px,10.7% 13px,12.5% 2px,14.2% 2px,15.8% 10px,18.1% 8px,20.1% 2px,23.6% 2px,27.1% 1px,30.7% 10px,32.8% 12px,36.4% 1px,38.6% 7px,40.4% 11px,42.8% 6px,45.4% 6px,48.9% 13px,51.7% 3px,54.3% 17px,57.6% 16px,59.4% 6px,62.3% 16px,65.2% 4px,68.6% 16px,72.2% 8px,75.4% 2px,77.1% 7px,80.2% 4px,83.1% 18px,85.2% 11px,87.4% 13px,90.3% 9px,92.1% 9px,94.0% 1px,96.6% 7px,99.1% 5px,100% 2px,100.0% calc(100% - 6px),98.4% calc(100% - 11px),95.9% calc(100% - 17px),94.0% calc(100% - 5px),91.7% calc(100% - 1px),88.1% calc(100% - 14px),84.9% calc(100% - 16px),83.0% calc(100% - 16px),81.1% calc(100% - 10px),77.6% calc(100% - 7px),74.4% calc(100% - 1px),71.6% calc(100% - 10px),69.3% calc(100% - 3px),66.8% calc(100% - 10px),64.7% calc(100% - 17px),62.1% calc(100% - 8px),59.1% calc(100% - 13px),57.4% calc(100% - 15px),55.5% calc(100% - 8px),52.7% calc(100% - 3px),49.6% calc(100% - 14px),46.7% calc(100% - 17px),45.0% calc(100% - 0px),41.8% calc(100% - 11px),39.8% calc(100% - 17px),37.7% calc(100% - 4px),34.7% calc(100% - 16px),32.4% calc(100% - 14px),30.4% calc(100% - 4px),27.8% calc(100% - 5px),26.2% calc(100% - 9px),24.4% calc(100% - 13px),22.6% calc(100% - 5px),20.0% calc(100% - 15px),18.2% calc(100% - 7px),16.0% calc(100% - 3px),13.4% calc(100% - 16px),10.5% calc(100% - 14px),8.4% calc(100% - 4px),5.5% calc(100% - 16px),3.8% calc(100% - 5px),1.9% calc(100% - 15px),0 calc(100% - 16px))}
.crt .crt-coach-head{display:flex;justify-content:center}
.crt .crt-lock-coach{flex-direction:row;align-items:center;gap:.08em;transform:rotate(-2.5deg)}
.crt .crt-c-num{font-size:clamp(116px,17vw,250px);line-height:.78}
.crt .crt-c-l{font-size:clamp(50px,7.2vw,106px)}
.crt .crt-c-s{font-size:clamp(28px,3vw,44px);font-weight:400;letter-spacing:.04em;display:flex;align-items:center;gap:.25em;margin-top:.12em}
.crt .crt-c-s .crt-sp{width:.8em;height:.8em;color:var(--pink)}
.crt .crt-coach-line{text-align:center;font-size:19px;color:var(--color3);margin-top:34px}
.crt .crt-pf-row{list-style:none;margin:96px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:56px 48px;text-align:center}
.crt .crt-pf{display:flex;flex-direction:column;align-items:center;gap:12px}
.crt .crt-pf .crt-ic{width:100px;height:84px}
.crt .crt-pf-num{display:flex;align-items:center;justify-content:center;gap:8px}
.crt .crt-pf-num .crt-n{font-size:clamp(84px,8vw,118px);line-height:.8}
.crt .crt-pf-num .crt-n-s{font-size:clamp(30px,2.8vw,42px);font-weight:400}
.crt .crt-pf-lead{font-size:30px}
.crt .crt-pf-line{font-size:17px;line-height:1.45;color:var(--color3);max-width:24ch}

/* ---------- cause band: torn photo, lettered intro, polaroid + merch + paper card breaking the edges ---------- */
.crt .crt-band-wrap{position:relative;margin:130px 0 200px}
.crt .crt-band{position:relative;min-height:720px;overflow:hidden;display:flex;align-items:flex-start;
  clip-path:polygon(0.0% 0px,2.1% 8px,3.5% 22px,5.5% 13px,7.7% 12px,9.5% 6px,12.1% 4px,14.1% 15px,16.8% 10px,18.3% 6px,20.9% 15px,23.2% 12px,25.0% 8px,27.7% 0px,29.3% 15px,31.9% 0px,33.9% 23px,36.1% 3px,38.5% 25px,40.4% 23px,41.8% 19px,44.5% 25px,46.3% 4px,49.1% 25px,51.7% 26px,54.4% 11px,56.2% 16px,57.5% 25px,60.3% 9px,63.2% 0px,65.7% 25px,68.0% 18px,70.2% 22px,72.3% 24px,75.3% 11px,78.1% 13px,79.8% 1px,81.2% 22px,82.7% 9px,85.0% 10px,87.2% 3px,89.2% 5px,91.5% 14px,94.4% 3px,97.5% 26px,100% 15px,var(--tear-bottom))}
.crt .crt-band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:16% 84%}
.crt .crt-band-scrim{position:absolute;inset:0;
  background:radial-gradient(ellipse 62% 74% at 22% 36%,rgba(var(--scrim),.88) 0%,rgba(var(--scrim),.8) 46%,rgba(var(--scrim),.34) 72%,rgba(var(--scrim),0) 90%),
             linear-gradient(180deg,rgba(var(--scrim),.3) 0%,rgba(var(--scrim),0) 28%)}
.crt .crt-band-in{position:relative;z-index:1;padding:100px 0 80px}
.crt .crt-lock-band{transform:rotate(-4deg);transform-origin:0 50%}
.crt .crt-lock-band .crt-lt{color:#fff;text-shadow:0 3px 22px rgba(var(--scrim),.55)}
.crt .crt-lock-band .crt-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.08em}
.crt .crt-b-s{font-size:clamp(30px,3.4vw,50px);font-weight:400;letter-spacing:.05em}
.crt .crt-b-xl{font-size:clamp(64px,9.4vw,138px)}
.crt .crt-b-l{font-size:clamp(50px,7vw,102px)}
.crt .crt-lock-band .crt-sp{width:34px;height:34px;color:#fff}
.crt .crt-lock-band .crt-ribbon{width:66px;height:86px;margin-left:8px}
.crt .crt-lock-band .crt-swoosh{width:min(600px,86%);color:var(--pink)}
.crt .crt-ribbon{display:inline-block;flex:none}

.crt .crt-polaroid{background:#fff;padding:14px 14px 0;box-shadow:0 14px 30px rgba(var(--scrim),.28),0 2px 6px rgba(var(--scrim),.18);position:relative}
.crt .crt-pol-slot{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:18px;
  background:var(--lav-2);border:2.5px dashed var(--color1);color:var(--color1);font:800 17px/1.3 Nexa,sans-serif}
.crt .crt-pol-slot .crt-ic{width:58px;height:46px}
.crt .crt-pol-slot span{display:block}
.crt .crt-pol-slot .crt-hint{font-weight:400;font-size:16px;color:var(--color3)}
.crt .crt-polaroid figcaption{font-size:30px;padding:12px 4px 16px;text-align:center;display:block;font-weight:400}
.crt .crt-tape{position:absolute;top:-16px;left:50%;width:120px;height:34px;transform:translateX(-50%) rotate(-4deg);
  background:color-mix(in srgb, var(--color2xl) 60%, rgba(255,255,255,.4));opacity:.88;
  clip-path:polygon(3% 8%,10% 0,22% 10%,35% 2%,50% 9%,64% 0,78% 9%,90% 1%,100% 10%,97% 92%,88% 100%,74% 91%,60% 100%,46% 92%,32% 100%,18% 91%,6% 100%,0 90%)}
.crt .crt-pol-band{position:absolute;z-index:3;width:270px;top:-64px;right:max(48px, calc((100% - 1240px)/2 + 30px));transform:rotate(5deg)}
/* merch cut-out (Chipotle's cut-out food move, done with Rockettes merch) */
.crt .crt-tee-break{position:absolute;z-index:3;width:230px;height:auto;left:max(16px, calc((100% - 1240px)/2 - 10px));bottom:-120px;transform:rotate(-8deg)}
.crt .crt-intro-card{position:absolute;z-index:3;right:max(24px, calc((100% - 1240px)/2));bottom:-140px;width:min(560px, 100% - 48px);
  background:var(--card);padding:40px 40px 36px;border-radius:8px;box-shadow:0 18px 40px rgba(var(--scrim),.22),0 2px 6px rgba(var(--scrim),.12)}
.crt .crt-intro-card .crt-label{display:block;margin-bottom:14px}
.crt .crt-intro-card p.crt-txt{font-size:20px;line-height:1.55;color:var(--color3)}
.crt .crt-intro-card .btn{margin-top:24px}
.crt .crt-intro-card .crt-ribbon{position:absolute;right:26px;top:-34px;width:52px;height:68px}

/* ---------- games ---------- */
.crt .crt-games{padding:110px 0 30px}
.crt .crt-games-head{display:flex;align-items:center;justify-content:space-between;gap:32px 48px;flex-wrap:wrap;margin-bottom:52px}
.crt .crt-lock-3{flex-direction:row;align-items:center;gap:.08em;transform:rotate(-3deg);transform-origin:50% 50%}
.crt .crt-big3{font-size:clamp(170px,19vw,270px);line-height:.76}
.crt .crt-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.06em}
.crt .crt-g-l{font-size:clamp(78px,9vw,134px)}
.crt .crt-g-m{font-size:clamp(44px,4.8vw,72px);font-weight:400}
.crt .crt-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.crt .crt-gc{background:var(--card);border:2px solid var(--color1);border-radius:16px;box-shadow:8px 8px 0 var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.crt .crt-gc-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding:14px 24px;background:var(--color1)}
.crt .crt-gc-top .crt-label{color:#fff}
.crt .crt-gc-top .crt-tag{font:800 15px/1 Nexa,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#fff;border:2px solid rgba(255,255,255,.75);border-radius:6px;padding:7px 9px}
.crt .crt-gc-body{display:flex;flex-direction:column;gap:20px;padding:22px 24px 24px;flex:1}
.crt .crt-gc-when{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.crt .crt-gc-day{font:800 16px/1 Nexa,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--color3)}
.crt .crt-gc-time{font-size:58px}
/* match row: one shared badge row (VS centered on it), one shared name row */
.crt .crt-gc-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:10px;
  align-items:center;justify-items:center;text-align:center;padding:20px 0;border-top:2px dotted var(--rule);border-bottom:2px dotted var(--rule)}
.crt .crt-gc-match .crt-mono{grid-row:1}
.crt .crt-gc-match .crt-ma{grid-column:1}.crt .crt-gc-match .crt-mb{grid-column:3}
.crt .crt-gc-match .crt-vs{grid-column:2;grid-row:1}
.crt .crt-gc-match .crt-na{grid-column:1;grid-row:2}.crt .crt-gc-match .crt-nb{grid-column:3;grid-row:2}
.crt .crt-gc-match strong{display:block;font:800 19px/1.25 Nexa,sans-serif;color:var(--color1)}
.crt .crt-gc-match .crt-town{display:block;font-size:16px;line-height:1.35;color:var(--color3);margin-top:2px}
.crt .crt-vs{font-size:36px;font-weight:400;color:var(--pinkd)}
.crt .crt-gc-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;font-size:16px;color:var(--color3)}
.crt .crt-gc-foot .crt-pg{font-weight:800;color:var(--color1)}
.crt .crt-gc-note{font-size:17px;color:var(--color3);background:var(--pink-xl);border-radius:10px;padding:12px 16px}
.crt .crt-gc.crt-bracket{border-style:dashed}
.crt .crt-gc.crt-bracket .crt-gc-top{background:var(--color1xd)}
.crt .crt-avail{display:flex;align-items:center;flex-wrap:wrap;gap:18px 22px;margin-top:40px;padding:22px 26px;border:2.5px dashed var(--color1);border-radius:16px;background:color-mix(in srgb, var(--paper-lav) 70%, transparent)}
.crt .crt-avail .crt-ic{width:50px;height:50px}
.crt .crt-avail h3{font-size:38px}
.crt .crt-avail p{font-size:17px;color:var(--color3);margin-top:6px}
.crt .crt-avail .btn{margin-left:auto}

/* ---------- full schedule ---------- */
.crt .crt-sched{padding:110px 0 40px}
.crt .crt-sched-head{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.crt .crt-lock-sched{transform:rotate(-2.5deg);transform-origin:50% 50%}
.crt .crt-s-s{font-size:clamp(34px,4.2vw,62px);font-weight:400;transform:rotate(-6deg)}
.crt .crt-s-l{font-size:clamp(60px,8.6vw,124px)}
.crt .crt-s-xl{font-size:clamp(80px,12vw,170px);line-height:.8}
.crt .crt-lock-sched .crt-arrow{width:clamp(56px,7vw,96px);height:clamp(56px,7vw,96px);color:var(--pink);margin-left:.1em}
.crt .crt-program{background:var(--card);border:2px solid var(--color1);border-radius:16px;box-shadow:8px 8px 0 var(--shadow);overflow:hidden;margin-top:44px}
.crt .crt-prog-h{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:16px 26px;background:var(--color1)}
.crt .crt-prog-h h3{font-size:40px;color:#fff;display:flex;align-items:center;gap:12px}
.crt .crt-prog-h h3 .crt-sp{color:#fff;width:24px;height:24px}
.crt .crt-prog-h .crt-label{color:#fff}
.crt .crt-tbl{width:100%;border-collapse:collapse;font-size:17px}
.crt .crt-tbl th{font:800 14px/1.2 Nexa,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--color1);text-align:left;padding:15px 18px;border-bottom:2px solid var(--color1);background:var(--lav-2)}
.crt .crt-tbl td{padding:13px 18px;border-bottom:1.5px dotted var(--rule);vertical-align:middle;color:var(--color3)}
.crt .crt-tbl tr:last-child td{border-bottom:0}
.crt .crt-tbl .crt-gm{font:900 26px/1 "Londrina Solid",Impact,sans-serif;color:var(--color1);width:70px}
.crt .crt-tbl .crt-time{font-weight:800;color:var(--color1);white-space:nowrap}
.crt .crt-tbl .crt-field{font-weight:800;color:var(--color1)}
/* Rockettes games: pink tint + sparkle + bold name */
.crt .crt-tbl tr.crt-us td{background:var(--pink-xl)}
.crt .crt-tbl .crt-rk{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--color1)}
.crt .crt-tbl .crt-rk .crt-sp{width:18px;height:18px;color:var(--pinkd)}
.crt .crt-tbl-key{display:flex;align-items:center;gap:10px;padding:14px 26px 18px;font-size:16px;color:var(--color3);border-top:1.5px dotted var(--rule)}
.crt .crt-tbl-key .crt-sp{width:18px;height:18px;color:var(--pinkd)}

/* bracket: each feeder sits beside the game it feeds, joined by hand-drawn chalk lines */
.crt .crt-bk{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr) 44px minmax(0,1fr) 44px minmax(0,1fr);grid-template-rows:auto repeat(8,minmax(0,1fr));padding:26px}
.crt .crt-bk .crt-rh{grid-row:1;font-size:32px;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.crt .crt-bk .crt-rh .crt-sp{width:26px;height:26px;color:var(--pink)}
.crt .crt-rh1{grid-column:1}.crt .crt-rh2{grid-column:3}.crt .crt-rh3{grid-column:5}.crt .crt-rh4{grid-column:7}
.crt .crt-bk .crt-mt{align-self:center;margin:8px 0}
.crt .crt-m1{grid-column:1;grid-row:4/6}.crt .crt-m2{grid-column:1;grid-row:8/10}
.crt .crt-m3{grid-column:3;grid-row:2/4}.crt .crt-m5{grid-column:3;grid-row:4/6}.crt .crt-m4{grid-column:3;grid-row:6/8}.crt .crt-m6{grid-column:3;grid-row:8/10}
.crt .crt-m7{grid-column:5;grid-row:3/5}.crt .crt-m8{grid-column:5;grid-row:7/9}
.crt .crt-m9{grid-column:7;grid-row:5/7}
.crt .crt-cn{position:relative}
.crt .crt-cn svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--color1)}
.crt .crt-c1a{grid-column:2;grid-row:4/6}.crt .crt-c1b{grid-column:2;grid-row:8/10}
.crt .crt-c2a{grid-column:4;grid-row:2/6}.crt .crt-c2b{grid-column:4;grid-row:6/10}
.crt .crt-c3{grid-column:6;grid-row:3/9}
.crt .crt-mt{border:2px solid var(--color1);border-radius:12px;background:#fff;overflow:hidden}
.crt .crt-mt-h{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px 8px;padding:9px 12px;background:var(--lav-2);font:800 14px/1.25 Nexa,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--color1)}
.crt .crt-mt-t{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:17px;color:var(--color3)}
.crt .crt-mt-t + .crt-mt-t{border-top:1.5px dotted var(--rule)}
.crt .crt-mt.crt-final{background:var(--color1);border-color:var(--color1);box-shadow:0 0 0 4px var(--pink-xl)}
.crt .crt-mt.crt-final .crt-mt-h{background:var(--color1xd);color:#fff}
.crt .crt-mt.crt-final .crt-mt-t{color:#fff;font-weight:800}
.crt .crt-mt.crt-final .crt-mt-t + .crt-mt-t{border-top-color:rgba(255,255,255,.4)}
/* Craig 2026-11-02 ("why didn't you show final champions"): a scored bracket game shows each score at the right, the winner
   bold and the loser at regular weight; the scored championship card ends in a Champion strip (white on the dark pink). */
.crt .crt-mt-s{margin-left:auto;padding-left:12px;font-weight:700;font-variant-numeric:tabular-nums}
.crt .crt-mt-t.is-win{font-weight:800}
.crt .crt-mt-t.is-out,.crt .crt-mt.crt-final .crt-mt-t.is-out{font-weight:400}
.crt .crt-mt-champ{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;padding:12px;background:var(--pinkd);color:#fff}
.crt .crt-mt-champ .crt-sp{width:22px;height:22px;flex:none;color:#fff}
.crt .crt-mt-cl{font:800 16px/1.25 Nexa,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.crt .crt-mt-cn{flex-basis:100%;font-size:22px;font-weight:800;line-height:1.2}

/* ---------- details ---------- */
.crt .crt-details{padding:110px 0 170px}
.crt .crt-lock-det{flex-direction:row;align-items:center;gap:.12em;transform:rotate(-2.5deg);transform-origin:0 50%;margin-bottom:8px}
.crt .crt-d-s{font-size:clamp(40px,4.4vw,64px);font-weight:400}
.crt .crt-d-l{font-size:clamp(84px,10vw,150px)}
.crt .crt-lock-det .crt-sp{width:40px;height:40px;color:var(--pink);align-self:flex-start}
.crt .crt-det-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:36px;align-items:start}
.crt .crt-det-grid .crt-program{margin-top:36px}
.crt .crt-kv dl{padding:6px 26px 14px}
.crt .crt-kv-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center;padding:15px 0;border-bottom:1.5px dotted var(--rule)}
.crt .crt-kv-row:last-child{border-bottom:0}
.crt .crt-kv-row dt{font:800 15px/1.3 Nexa,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:var(--color1)}
.crt .crt-kv-row dd{font-size:18px;color:var(--color3);line-height:1.45}
.crt .crt-kv-row dd strong{color:var(--color1)}
.crt .crt-there-b{display:flex;align-items:center;gap:22px;padding:24px 26px 26px;flex-wrap:wrap}
.crt .crt-there-b .crt-ic{width:118px;height:118px}
.crt .crt-there-b .crt-venue{font-size:40px}
.crt .crt-there-b address{font-style:normal;font-size:18px;color:var(--color3);margin:8px 0 16px;line-height:1.45}
.crt .crt-links-b{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:22px 26px 26px}
.crt .crt-links-b > p{grid-column:1/-1}   /* Team notes reuses this 2-column link grid; its paragraph spans the card (Craig 2026-10-30) */
.crt .crt-lnk{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 18px;border:2px solid var(--color1);border-radius:10px;background:#fff;
  font:800 17px/1.25 Nexa,sans-serif;color:var(--color1);transition:background-color .15s,color .15s}
.crt .crt-lnk svg{width:22px;height:22px;flex:none}
.crt .crt-lnk:hover{background:var(--color1);color:#fff}

/* ---------- roster (lavender paper, torn) ---------- */
.crt .crt-roster{position:relative;isolation:isolate;padding:140px 0 140px}
.crt .crt-roster::before{content:"";position:absolute;inset:0;z-index:-1;background-color:var(--paper-lav);background-image:var(--grain);
  clip-path:polygon(0.0% 0px,3.3% 16px,5.4% 8px,7.7% 7px,10.7% 13px,12.5% 2px,14.2% 2px,15.8% 10px,18.1% 8px,20.1% 2px,23.6% 2px,27.1% 1px,30.7% 10px,32.8% 12px,36.4% 1px,38.6% 7px,40.4% 11px,42.8% 6px,45.4% 6px,48.9% 13px,51.7% 3px,54.3% 17px,57.6% 16px,59.4% 6px,62.3% 16px,65.2% 4px,68.6% 16px,72.2% 8px,75.4% 2px,77.1% 7px,80.2% 4px,83.1% 18px,85.2% 11px,87.4% 13px,90.3% 9px,92.1% 9px,94.0% 1px,96.6% 7px,99.1% 5px,100% 2px,100% 100%,0 100%)}
.crt .crt-hoodie-break{position:absolute;z-index:3;width:250px;height:auto;top:-230px;right:max(24px, calc((100% - 1240px)/2 + 330px));transform:rotate(-7deg)}
.crt .crt-roster-head{position:relative;display:flex;align-items:center;gap:24px;margin-bottom:50px;padding-right:320px}
.crt .crt-lock-roster{flex-direction:row;align-items:center;gap:.1em;transform:rotate(-3deg);transform-origin:0 50%}
.crt .crt-r-xl{font-size:clamp(92px,13vw,190px);line-height:.8}
.crt .crt-r-n{font-size:clamp(56px,6vw,92px);color:var(--pinkd)}
.crt .crt-r-s{font-size:clamp(30px,3.2vw,46px);font-weight:400}
.crt .crt-roster-head .crt-label{display:block;margin-top:18px}
.crt .crt-pol-team{position:absolute;z-index:3;width:290px;top:-190px;right:10px;transform:rotate(-4deg)}
.crt .crt-players{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.crt .crt-pl{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--card);border:2px solid var(--color1);border-radius:14px}
/* jersey number inside a hand-drawn wobbly ring (purple ink, pink stays sparing) */
.crt .crt-pl-no{position:relative;flex:none;width:70px;height:70px;display:grid;place-items:center}
.crt .crt-pl-no svg{position:absolute;inset:0;width:100%;height:100%;color:var(--color1)}
.crt .crt-pl-no .crt-lt{position:relative;font-size:38px;line-height:1}
.crt .crt-pl-txt{min-width:0;flex:1}
.crt .crt-pl strong{display:block;font:800 20px/1.2 Nexa,sans-serif;color:var(--color1)}
.crt .crt-pl .crt-meta{font-size:17px;line-height:1.4;color:var(--color3);margin-top:3px}
.crt .crt-pl .crt-meta .crt-pos{font-weight:800;color:var(--color1)}
/* ROSTER CARD = the Rockettes player card (css/cr-player-card.css, the TLC portal card) — 2026-10-26 16:07 MDT. Craig 2026-10-26: player cards
   "anytime there's a player card" get the purple plate + JerseyM54 number, and he picked "Convert roster too" for this page.
   The ring + Londrina number, the 2px purple outline and the Nexa 800 name are replaced; position is the eyebrow over the name,
   class / bats the small line under it. Card edge = the portal card's 1px rgba(0,0,0,.2) and 15px radius, on this page's own
   card stock (--card). (0,3,0) beats .crt .crt-pl (0,2,0). */
.crt .crt-pl.cr-pcard{gap:0;padding:0;align-items:stretch;background:var(--card);border:1px solid rgba(0,0,0,.2);border-radius:15px;overflow:clip}
.crt .crt-pl.cr-pcard .crt-pl-sub{display:block;margin-top:2px;font-family:var(--cr-pc-face);font-size:16px;font-weight:400;line-height:1.3;color:var(--color3)}

/* ---------- footer ---------- */
.crt .crt-foot{position:relative;margin-top:-30px;background:var(--color1);color:#fff;padding:110px 0 36px;
  clip-path:polygon(0.0% 0px,3.3% 1px,5.3% 5px,7.9% 10px,11.3% 0px,13.7% 7px,16.2% 1px,19.2% 17px,20.8% 11px,23.0% 6px,25.5% 3px,27.7% 4px,29.8% 17px,33.0% 17px,35.7% 1px,37.4% 5px,39.6% 18px,42.1% 0px,44.3% 11px,45.9% 10px,48.0% 2px,49.6% 6px,52.8% 11px,55.9% 10px,59.1% 9px,60.7% 12px,62.8% 12px,65.3% 1px,68.4% 16px,70.9% 4px,72.7% 19px,75.6% 7px,78.8% 6px,80.6% 2px,83.6% 5px,86.8% 11px,88.9% 14px,91.2% 2px,93.8% 17px,96.5% 7px,99.5% 17px,100% 17px,100% 100%,0 100%)}
.crt .crt-foot-in{display:grid;grid-template-columns:auto minmax(0,1fr);gap:56px;align-items:center}
.crt .crt-patch{width:300px;transform:rotate(-4deg);border:6px solid #fff;border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.35)}
.crt .crt-foot .crt-lt{color:#fff;display:block}
.crt .crt-f-xl{font-size:clamp(52px,6vw,84px)}
.crt .crt-f-m{font-size:clamp(32px,3.4vw,48px);font-weight:400;margin-top:.12em}
.crt .crt-foot p{font-size:18px;color:#fff;margin-top:18px}
.crt .crt-foot nav{display:flex;align-items:center;flex-wrap:wrap;gap:12px 30px;margin-top:22px}
.crt .crt-foot nav a{font:800 18px/1.2 Nexa,sans-serif;color:#fff}
.crt .crt-foot nav a:hover{color:#f9b8d4}
.crt .crt-foot .crt-stamp-line{margin-top:56px;padding-top:20px;border-top:1.5px solid rgba(255,255,255,.3);font-size:16px;color:rgba(255,255,255,.88)}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .crt .crt-tickets{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}
  .crt .crt-tk-title{grid-column:1/-1;grid-row:auto;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px 16px;padding:18px 24px}
  .crt .crt-tk-title .crt-lt{font-size:46px}
  .crt .crt-tk-title .crt-lt br{display:none}
  .crt .crt-tk{margin-top:14px}
  .crt .crt-pf-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crt .crt-players{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  /* bracket reads by round when there is no room for the tree */
  .crt .crt-bk{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:14px 18px}
  .crt .crt-bk .crt-rh, .crt .crt-bk .crt-mt{grid-column:auto;grid-row:auto}
  .crt .crt-bk .crt-rh{grid-column:1/-1;margin:12px 0 0}
  .crt .crt-bk .crt-rh1{margin-top:0}
  .crt .crt-bk .crt-mt{margin:0;align-self:start}
  .crt .crt-cn{display:none}
  .crt .crt-rh1{order:1}.crt .crt-m1{order:2}.crt .crt-m2{order:3}.crt .crt-rh2{order:4}.crt .crt-m3{order:5}.crt .crt-m4{order:6}.crt .crt-m5{order:7}.crt .crt-m6{order:8}.crt .crt-rh3{order:9}.crt .crt-m7{order:10}.crt .crt-m8{order:11}.crt .crt-rh4{order:12}.crt .crt-m9{order:13}
}
@media (max-width:900px){
  .crt .crt-hero{min-height:0;padding:44px 0 132px}
  .crt .crt-hero-bg{object-position:60% 30%}
  .crt .crt-hero-scrim{background:linear-gradient(180deg,rgba(var(--scrim),.56) 0%,rgba(var(--scrim),.5) 40%,rgba(var(--scrim),.64) 72%,rgba(var(--scrim),.46) 92%,rgba(var(--scrim),.3) 100%)}
  .crt .crt-hero-in{grid-template-columns:minmax(0,1fr)}
  .crt .crt-hero-art{display:none}
  .crt .crt-h-s{font-size:clamp(20px,4.4vw,34px)}
  .crt .crt-h-xl{font-size:13.5vw}
  .crt .crt-h-m{font-size:7.3vw}
  .crt .crt-h-xxl{font-size:21vw}
  .crt .crt-circ-a{font-size:clamp(20px,4.4vw,34px)}
  .crt .crt-strip{margin-top:-70px}
  .crt .crt-sticker-sm{display:grid;z-index:4;width:150px;top:-74px;right:20px;transform:rotate(-6deg)}
  .crt .crt-tk-title{padding-right:190px}
  .crt .crt-band-wrap{margin:110px 0 60px}
  .crt .crt-band{min-height:560px}
  .crt .crt-band > img{object-position:22% 84%}
  .crt .crt-band-scrim{background:linear-gradient(180deg,rgba(var(--scrim),.84) 0%,rgba(var(--scrim),.74) 48%,rgba(var(--scrim),.2) 74%,rgba(var(--scrim),0) 90%)}
  .crt .crt-pol-band{position:relative;top:auto;right:auto;width:230px;margin:-110px 28px 0 auto}
  .crt .crt-tee-break{width:170px;bottom:auto;top:430px;left:24px}
  .crt .crt-intro-card{position:relative;right:auto;bottom:auto;width:auto;margin:22px auto 0;max-width:calc(100% - 32px)}
  .crt .crt-cards{grid-template-columns:1fr}
  .crt .crt-det-grid{grid-template-columns:1fr}
  .crt .crt-roster-head{padding-right:0;justify-content:space-between}
  .crt .crt-pol-team{position:relative;top:auto;right:auto;width:240px;margin:0 12px 0 auto;flex:none}
  .crt .crt-hoodie-break{width:170px;top:-150px;right:28px}
  .crt .crt-roster{padding-top:120px}
  .crt .crt-foot-in{grid-template-columns:1fr;gap:40px}
  /* pool-play table becomes stacked rows: nothing hides off the side */
  .crt .crt-tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .crt .crt-tbl, .crt .crt-tbl tbody{display:block}
  .crt .crt-tbl tr{display:grid;grid-template-columns:56px auto auto minmax(0,1fr);grid-template-areas:"gm time field pool" "gm t1 t1 t1" "gm t2 t2 t2";
    align-items:center;column-gap:8px;row-gap:4px;padding:14px 20px;border-bottom:1.5px dotted var(--rule)}
  .crt .crt-tbl tr:last-child{border-bottom:0}
  .crt .crt-tbl td{display:block;padding:0;border:0;background:none !important}
  .crt .crt-tbl tr.crt-us{background:var(--pink-xl)}
  .crt .crt-tbl .crt-gm{grid-area:gm;width:auto;font-size:30px}
  .crt .crt-tbl .crt-time{grid-area:time;font-size:17px}
  .crt .crt-tbl .crt-field{grid-area:field;font-size:17px}
  .crt .crt-tbl .crt-pool{grid-area:pool;font-size:16px}
  .crt .crt-tbl .crt-field::before{content:"· Field ";font-weight:400;color:var(--color3)}
  .crt .crt-tbl .crt-pool::before{content:"· ";color:var(--color3)}
  .crt .crt-tbl .crt-t1{grid-area:t1;font-size:17px}
  .crt .crt-tbl .crt-t2{grid-area:t2;font-size:17px;display:flex;align-items:center;gap:6px}
  .crt .crt-tbl .crt-t2::before{flex:none}
  .crt .crt-tbl .crt-t2::before{content:"vs";font-weight:400;color:var(--pinkd)}
}
@media (max-width:560px){
  .crt .crt-wrap{width:calc(100% - 32px)}
  .crt{font-size:18px}
  
  
  .crt .crt-brand img{height:42px}
  .crt .crt-nav{gap:16px}
  .crt .crt-nav a.crt-nl{display:none}
  .crt .crt-hero{padding:24px 0 92px}
  .crt .crt-lock-hero .crt-sp{width:20px;height:20px}
  .crt .crt-swoosh{height:30px}
  .crt .crt-facts{flex-direction:column;gap:8px;margin-top:22px}
  .crt .crt-hero .crt-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}
  .crt .crt-hero .crt-btns .crt-b-games{display:none}
  
  .crt .crt-hero .crt-btns .btn svg{display:none}
  .crt .crt-jump{gap:6px 20px;margin-top:16px}
  .crt .crt-jump .crt-label{display:none}
  .crt .crt-jump a{font-size:16px}
  .crt .crt-jump svg{display:none}
  .crt .crt-strip{margin-top:-56px;margin-bottom:80px}
  .crt .crt-sticker-sm{width:112px;top:-22px;right:10px}
  .crt .crt-tickets{grid-template-columns:minmax(0,1fr)}
  .crt .crt-tk-title{padding:12px 140px 12px 18px;flex-direction:column;align-items:flex-start;gap:2px}
  .crt .crt-tk-title .crt-lt{font-size:40px}
  .crt .crt-tk-title .crt-sp{display:none}
  .crt .crt-tk{margin-top:10px;grid-row:auto;grid-template-rows:none;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"when fld" "perf perf" "team team";align-items:center;column-gap:10px;padding:0 16px}
  .crt .crt-tk-when{grid-area:when;padding:14px 0 12px}
  .crt .crt-tk-fld{grid-area:fld;justify-content:flex-end;padding:14px 0 12px}
  .crt .crt-tk-perf{grid-area:perf;margin:0 -16px}
  .crt .crt-tk-perf::before{left:-14px}.crt .crt-tk-perf::after{right:-14px}
  .crt .crt-tk-team{grid-area:team;padding:12px 0 14px}
  .crt .crt-tk-time{font-size:36px}
  .crt .crt-fld{font-size:22px;padding:6px 13px 5px}
  .crt .crt-mono{width:50px;height:50px;font-size:22px}
  .crt .crt-mono img{height:30px}
  .crt .crt-band{min-height:520px}
  .crt .crt-band-in{padding:76px 0 60px}
  .crt .crt-lock-band .crt-sp{width:22px;height:22px}
  .crt .crt-b-xl{font-size:56px}
  .crt .crt-b-l{font-size:44px}
  .crt .crt-b-s{font-size:22px}
  .crt .crt-lock-band .crt-ribbon{width:42px;height:56px}
  .crt .crt-pol-band{width:190px;margin-top:-96px;margin-right:14px}
  .crt .crt-tee-break{width:132px;top:440px;left:12px}
  .crt .crt-intro-card{padding:30px 22px 26px;max-width:calc(100% - 32px)}
  .crt .crt-intro-card p.crt-txt{font-size:19px}
  .crt .crt-intro-card .crt-ribbon{right:auto;left:22px}
  .crt .crt-intro-card .btn{width:100%}
  .crt .crt-proof{padding:100px 0 96px}
  .crt .crt-c-num{font-size:104px}
  .crt .crt-c-l{font-size:46px}
  .crt .crt-c-s{font-size:26px}
  .crt .crt-coach-line{font-size:18px;margin-top:28px}
  .crt .crt-pf-row{grid-template-columns:minmax(0,1fr);gap:30px;margin-top:56px;text-align:left}
  .crt .crt-pf{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-areas:"ic num" "ic lead" "ic line";column-gap:16px;row-gap:6px;align-items:center;justify-items:start}
  .crt .crt-pf .crt-ic{grid-area:ic;width:76px;height:64px}
  .crt .crt-pf-num{grid-area:num;justify-content:flex-start}
  .crt .crt-pf-num .crt-n{font-size:72px}
  .crt .crt-pf-num .crt-n-s{font-size:30px}
  .crt .crt-pf-lead{grid-area:lead;font-size:26px}
  .crt .crt-pf-line{grid-area:line}
  .crt .crt-games{padding-top:90px}
  .crt .crt-big3{font-size:150px}
  .crt .crt-g-l{font-size:70px}
  .crt .crt-g-m{font-size:36px}
  .crt .crt-gc-top{padding:12px 18px}
  .crt .crt-gc-body{padding:18px 16px 20px}
  .crt .crt-gc-time{font-size:50px}
  .crt .crt-gc-match{column-gap:10px}
  .crt .crt-vs{font-size:30px}
  .crt .crt-avail{padding:20px}
  .crt .crt-avail .btn{margin-left:0;width:100%}
  .crt .crt-sched{padding-top:80px}
  .crt .crt-s-s{font-size:26px}
  .crt .crt-s-l{font-size:48px}
  .crt .crt-s-xl{font-size:70px}
  .crt .crt-prog-h{padding:14px 18px}
  .crt .crt-prog-h h3{font-size:30px}
  .crt .crt-tbl tr{padding:14px 16px;column-gap:6px}
  .crt .crt-tbl .crt-gm{font-size:28px}
  .crt .crt-tbl-key{padding:14px 18px 16px}
  .crt .crt-bk{grid-template-columns:minmax(0,1fr);padding:18px}
  .crt .crt-details{padding-bottom:150px}
  .crt .crt-d-s{font-size:36px}
  .crt .crt-d-l{font-size:70px}
  .crt .crt-lock-det .crt-sp{width:28px;height:28px}
  .crt .crt-kv dl{padding:4px 18px 10px}
  .crt .crt-kv-row{grid-template-columns:1fr;gap:4px;padding:13px 0}
  .crt .crt-there-b{padding:20px 18px 22px}
  .crt .crt-there-b .crt-venue{font-size:32px}
  .crt .crt-there-b .btn{width:100%}
  .crt .crt-links-b{padding:18px;grid-template-columns:1fr}
  .crt .crt-hoodie-break{width:128px;top:-128px;right:14px}
  .crt .crt-roster{padding-top:110px}
  .crt .crt-r-xl{font-size:80px}
  .crt .crt-r-n{font-size:48px}
  .crt .crt-r-s{font-size:24px}
  .crt .crt-roster-head{flex-direction:column;align-items:flex-start}
  .crt .crt-pol-team{width:220px;margin:6px 12px 0 auto;align-self:flex-end}
  .crt .crt-players{grid-template-columns:1fr}
  .crt .crt-patch{width:230px}
}

/* ===== LIVE — hand-written additions the mockup did not need. build-crt.py keeps everything after this line. ===== */
/* the guide button carries an icon here: icon + label on one centered row (house rule: items in a row center) */
.crt .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px}
/* a real photo in the taped frame (PhotoGameDay / PhotoTeam) */
.crt .crt-pol-img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
/* the bracket is drawn by js/custom-cr-team.js mountBracket2 from BracketJSON: grid tracks and each slot's place arrive as
   custom properties, so the stacked layout (1000px and down, generated rules above) simply ignores them */
@media (min-width:1001px){
  .crt .crt-bk{grid-template-columns:var(--cols);grid-template-rows:var(--rows)}
  .crt .crt-bk .crt-rh{grid-column:var(--c)}
  .crt .crt-bk .crt-mt, .crt .crt-bk .crt-cn{grid-column:var(--c);grid-row:var(--r)}
}
/* signed-in families: the portal's availability cards under the aside */
.crt .crt-avail-cards{margin-top:18px}
/* ---- review 2026-10-26 (4-lens workflow, each finding re-measured): site-wide rules that leaked into the scoped port ---- */
/* t_tlc-styles.css:7433 section{margin-bottom:60px} — the mockup has 0 (tickets lost their bite into the hero's torn edge) */
.crt section{margin-bottom:0}
/* t_tlc-styles.css:2084 svg{max-height:100% !important} squashed the field ovals and the (A) loop; the mockup lets them overhang */
.crt .crt-fld svg, .crt .crt-circ-a svg{max-height:none !important}
/* mdb.min.css table td{font-size:.9rem;font-weight:300} — cells take the table's 17px / 400 as in the mockup */
.crt .crt-tbl td{font-size:inherit;font-weight:inherit}
/* t_tlc-styles.css h1/h2 sizes doubled every lockup's em-based gaps; the mockup's h1/h2 are the browser's 2em / 1.5em of 18px */
.crt h1.crt-lock{font-size:36px}
.crt h2.crt-lock{font-size:27px}
/* t_tlc-styles.css:2229 img{border:0 !important} took the patch's white keyline */
.crt img.crt-patch{border:6px solid #fff !important}
/* the house a:hover img zoom (t_tlc-styles.css:2189) is motion the mockup does not have */
.crt .crt-brand img{transform:none;transition:none}
/* bootstrap/MDB :root{scroll-behavior:smooth} — anchor jumps here are instant, as in the mockup (no motion) */
html:has(.crt){scroll-behavior:auto}
/* t_tlc-styles.css:5294 nav .btn.btn-xs !important shrank the header button below the guide's btn-xs label size */
.crt .crt-nav .btn.btn-xs{font-size:.95rem !important;min-height:46px}
/* the guide's btn-xs pads by % of its row, which broke the hero's one-row button set from 1001px to wide; declared difference */
@media (min-width:561px){.crt .crt-hero .crt-btns .btn{padding-left:22px;padding-right:22px;margin:0}}
/* stacked bracket: the first round header sits at the top of its box */
@media (max-width:1000px){.crt .crt-bk .crt-rh:first-child{margin-top:0}}
/* College coaches (Content/Snippets/custom-crt-colleges.html, Loretta B. Smith 2026) — Craig 2026-10-29: every college coming,
   its softball staff names/titles/emails, its sports site and academic site. Program cards = the Event details card. */
.crt .crt-colleges{padding:0 0 170px}
.crt .crt-col-head{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;flex-wrap:wrap}
.crt .crt-col-side{max-width:520px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.crt .crt-col-side .crt-sub{font-size:18px;line-height:1.45;color:var(--color3)}
.crt .crt-col-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;align-items:start}
.crt .crt-col .crt-prog-h h3{font-size:36px}
.crt .crt-col-full{padding:16px 26px 0;font:800 15px/1.3 Nexa,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:var(--color1)}
.crt .crt-col-staff{list-style:none;margin:0;padding:4px 26px}
.crt .crt-col-row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:4px 18px;align-items:center;padding:14px 0;border-bottom:1.5px dotted var(--rule)}
.crt .crt-col-row:last-child{border-bottom:0}
.crt .crt-col-who strong{display:block;font-size:18px;font-weight:800;line-height:1.3;color:var(--color1)}
.crt .crt-col-title{display:block;font-size:16px;line-height:1.35;color:var(--color3)}
.crt .crt-col-reach{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.crt .crt-col-mail{font-size:17px;font-weight:800;line-height:1.35;color:var(--color1);overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.crt .crt-col-mail:hover, .crt .crt-col-mail:focus{text-decoration:underline;color:var(--pinkd)}
.crt .crt-col-tel{font-size:16px;color:var(--color3)}
.crt .crt-col-none{font-size:16px;line-height:1.35;color:var(--color3)}
.crt .crt-col-allw{padding:6px 26px 4px}
/* the guide's btn-xs pads by % of its containing block (a full card here); same pinned padding as the hero buttons, declared difference */
.crt .crt-col-allw .btn{padding-left:22px;padding-right:22px;margin:0}
.crt .crt-col-links{border-top:1.5px dotted var(--rule);margin-top:16px}
.crt .crt-col-also{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;margin-top:40px;font-size:18px;font-weight:800;color:var(--color1)}
.crt .crt-col-src{margin-top:14px;font-size:16px;color:var(--color3)}
@media (max-width:900px){.crt .crt-col-grid{grid-template-columns:1fr}.crt .crt-colleges{padding-bottom:120px}}
/* "College Coaches" is wider than a phone at the lockup's minimum size: the small word sits on its own line above */
@media (max-width:560px){.crt .crt-colleges .crt-lock-det{flex-wrap:wrap;row-gap:0}.crt .crt-col-row{grid-template-columns:1fr}.crt .crt-links-b.crt-col-links{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 20px 20px}.crt .crt-col-links .crt-lnk{min-height:48px;padding:10px 12px;font-size:16px}.crt .crt-col-staff, .crt .crt-col-allw, .crt .crt-col-full{padding-left:20px;padding-right:20px}}
/* Game days — Craig 2026-10-29: "pool games ... listed three across and separated by Saturday and Sunday. The bracket play game is Sunday." */
.crt .crt-day + .crt-day{margin-top:64px}
.crt .crt-day-h{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:0 0 24px}
.crt .crt-day-h .crt-lt{font-size:clamp(44px,5vw,64px)}
/* day uniform (CM Tournaments Uniforms): heading left, taped polaroid far right, one row centered; wraps under the heading when narrow */
.crt .crt-day-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px 24px;margin:0 0 24px}
.crt .crt-day-top .crt-day-h{margin:0}
.crt .crt-pol-uni{width:240px;flex:none;margin:0 6px 0 auto;transform:rotate(3deg)}
.crt .crt-pol-uni .crt-pol-img{aspect-ratio:4/3}
.crt .crt-pol-uni figcaption{font-size:24px;padding:8px 4px 12px}
/* Craig 2026-10-30: "remove the ROCKETTES SCHEDULE block entirely. make the Sat uniform grow in size up to that area using the right half of
   the page container" — first game day only, desktop: half the container wide, pulled up by the "3 Games" lockup's height (crt-big3 size x
   its .76 line-height) + the head's 52px margin, so its top meets the lockup's top. Phones keep the 240px photo under the heading. */
@media (min-width:901px){
  .crt .crt-days > .crt-day:first-child .crt-pol-uni{width:calc(50% - 24px);margin-top:calc(-1 * (clamp(170px,19vw,270px) * .76 + 52px));margin-bottom:16px}
  .crt .crt-days > .crt-day:first-child .crt-pol-uni figcaption{font-size:34px;padding:12px 4px 16px}
}
/* GroupMe game plan (Craig only): one well per game day, the whole well copies; Copied pill = the flight table's (custom-cr-team.css), on the wrapper */
.crt .crt-gmsg-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;padding:22px 26px 26px}
.crt .crt-gmsg-day .crt-label{margin:0 0 10px;color:var(--color1)}
.crt .crt-gmsg-wrap{position:relative}
.crt .crt-gmsg-text{margin:0;padding:18px 20px;white-space:pre-wrap;word-break:break-word;font:400 17px/1.5 "Open Sans",sans-serif;
  background:var(--lav-2);border:1px solid var(--rule);border-radius:10px;cursor:pointer}
.crt .crt-gmsg-text:hover,.crt .crt-gmsg-text:focus-visible{border-color:var(--color1);outline:none}
.crt .crt-gmsg-wrap::after{content:"Copied";position:absolute;bottom:calc(100% + 6px);left:50%;z-index:9;padding:8px 16px;white-space:nowrap;
  background-color:white;border-radius:4px;box-shadow:rgba(0,0,0,0) 0 0 0 -12px;pointer-events:none;backface-visibility:hidden;opacity:0;transform:translate(-50%,12px);
  font:400 11.0334px/1 "Open Sans",sans-serif;text-transform:uppercase;letter-spacing:normal;color:var(--color1);
  transition:box-shadow .3s ease,opacity .3s ease,transform .3s ease}
.crt .crt-gmsg-wrap.is-copied::after{box-shadow:rgba(0,0,0,.1) 0 4px 8px;opacity:1;transform:translate(-50%,0)}
@media (max-width:560px){.crt .crt-gmsg-b{grid-template-columns:1fr;padding:18px}}
.crt .crt-days .crt-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.crt .crt-days .crt-gc-time{font-size:50px}
@media (max-width:1180px){.crt .crt-days .crt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.crt .crt-days .crt-cards{grid-template-columns:1fr}}
@media (max-width:560px){.crt .crt-gc-more{padding:14px 16px}.crt .crt-gc .cr-who-list.crt-gc-who{padding:4px 16px 10px}}
/* Who's in on the game card (signed-in; js/custom-cr-team.js mountGameWho) — "expand to list all players that are coming below with
   larger font, and style to fit": the card opens downward, one player per row, the Books plate at the card's size */
.crt .crt-gc.is-who{cursor:pointer}
/* Availability footer bar — green bleed, the card's last row (Craig 2026-10-29) */
.crt .crt-gc-more{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0;padding:15px 24px;border:0;border-radius:0;
  background:var(--cr-in);color:#fff;font:800 16px/1.2 Nexa,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-align:left}
.crt .crt-gc-more .crt-gc-more-n{display:inline-flex;align-items:center;gap:10px}
.crt .crt-gc-more :is(i,svg){transition:transform .15s ease}
.crt .crt-gc-more[aria-expanded="true"] :is(i,svg){transform:rotate(180deg)}
.crt .crt-gc .cr-who-list.crt-gc-who{grid-template-columns:1fr;gap:0;margin:0;padding:4px 24px 10px}
.crt .crt-gc .cr-who-list.crt-gc-who li{gap:4px 10px;padding:9px 0;font-size:19px;color:var(--color3);border-bottom:1.5px dotted var(--rule)}
.crt .crt-gc .cr-who-list.crt-gc-who li:last-child{border-bottom:0}
.crt .crt-gc .cr-who-list.crt-gc-who li.is-none{color:var(--color2d)}
.crt .crt-gc .cr-who-list.crt-gc-who li > :is(i,svg){width:36px;height:36px;font-size:36px}   /* Craig 2026-10-29: "double the size of the circle icons" (18px -> 36px) */
.crt .crt-gc .cr-who-list.crt-gc-who li .cr-jplate{width:44px;height:36px;border-radius:6px}
.crt .crt-gc .cr-who-list.crt-gc-who li .cr-jplate .cr-jersey-svg{height:22px;max-width:36px}
.crt .crt-gc .cr-who-list.crt-gc-who li > small{flex-basis:100%;padding-left:100px;font-size:16px}   /* 36 icon + 10 + 44 plate + 10: the note starts under the name */
/* no bracket typed in: js/custom-cr-team.js mountBracket2 sets [hidden] on the section and its Jump to link; their display rules would beat the UA hidden */
.crt .crt-sched[hidden], .crt .crt-jump a[hidden]{display:none}
/* College headers in each team's own color + its association mark (NCAA / NAIA / NJCAA) — Craig 2026-10-29. --col-bg / --col-ink come
   from loretta-2026-colleges.json per card (white ink on dark team colors, black on light ones); the mark sits far right on a white disc */
.crt .crt-col .crt-prog-h.crt-col-h{background:var(--col-bg,var(--color1));flex-wrap:nowrap;gap:12px}
.crt .crt-col .crt-col-h h3, .crt .crt-col .crt-col-h .crt-label{color:var(--col-ink,#fff)}
.crt .crt-col .crt-col-h h3{flex:0 1 auto;min-width:0}
.crt .crt-col .crt-col-h .crt-label{margin-left:auto;text-align:right;white-space:nowrap}
.crt .crt-col .crt-prog-h.crt-col-h h3{font-size:32px;line-height:.9}
.crt .crt-col-assoc{flex:none;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#fff}
.crt .crt-col-assoc img{display:block;width:38px;height:38px;object-fit:contain}
/* name + mark on the first line, level · town under it (the cards run 3 across, ~390px) */
.crt .crt-col .crt-prog-h.crt-col-h{flex-wrap:wrap}.crt .crt-col .crt-col-h .crt-label{order:3;flex-basis:100%;margin-left:0;text-align:left;white-space:normal}.crt .crt-col .crt-col-h .crt-col-assoc{margin-left:auto}.crt .crt-col .crt-col-h h3{flex:1 1 0}
/* organizer mark standing in for a missing tournament logo (custom-cr-tournament.html crLogoOrg): it sits inside the ring, never cropped by it */
.crt .crt-sticker.is-org > img{width:60%;max-height:60%;object-fit:contain}
/* College list under the 25+ lockup (Craig 2026-10-29 picked "Under 25+, stats above"): the stats row leads the band, the lockup heads the
   list, the cards run three across like the game days */
.crt .crt-proof .crt-pf-row{margin:0 0 110px}
.crt .crt-proof .crt-colleges{padding:0;margin-top:44px}
.crt .crt-col-intro{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:640px;margin:0 auto;text-align:center}
.crt .crt-col-intro .crt-sub{font-size:18px;line-height:1.45;color:var(--color3)}
.crt .crt-proof .crt-col-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
@media (max-width:1180px){.crt .crt-proof .crt-col-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.crt .crt-proof .crt-col-grid{grid-template-columns:1fr}}
@media (max-width:560px){.crt .crt-proof .crt-pf-row{margin-bottom:64px}}
/* three across, ~390px cards: name + title above the email (no mid-word email breaks), link buttons one line */
.crt .crt-proof .crt-col-row{grid-template-columns:1fr;gap:4px}
.crt .crt-proof .crt-col-links .crt-lnk{min-height:46px;padding:10px 12px;font-size:15.5px;gap:8px}
.crt .crt-proof .crt-col-links .crt-lnk svg{width:18px;height:18px}
.crt .crt-proof .crt-links-b.crt-col-links{padding:18px 20px 22px;gap:8px}
.crt .crt-proof .crt-col-staff, .crt .crt-proof .crt-col-allw, .crt .crt-proof .crt-col-full{padding-left:22px;padding-right:22px}
.crt .crt-col-links .crt-lnk-wide{grid-column:1/-1}   /* one site for softball and athletics (Luna): the label gets the whole row */
@media (max-width:560px){.crt .crt-proof .crt-links-b.crt-col-links{grid-template-columns:1fr}}

/* Craig 2026-11-01: scores stay beside their team logos in both tickets and full game cards. Incumbent logo/name grid and lettering retained. */
.crt .crt-team-score{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;grid-row:1}
.crt .crt-score{font-size:48px;line-height:1;font-variant-numeric:tabular-nums;color:var(--color1)}
.crt .crt-tk-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:6px;row-gap:12px;text-align:center}
.crt .crt-tk-match .crt-ma{grid-column:1}.crt .crt-tk-match .crt-mb{grid-column:3}
.crt .crt-tk-match .crt-vs{grid-column:2;grid-row:1;font-size:22px}
.crt .crt-tk-match .crt-team-score{gap:6px}
.crt .crt-tk-match .crt-mono{width:34px;height:34px;font-size:17px}
.crt .crt-tk-match .crt-mono img{height:22px}
.crt .crt-tk-match .crt-mono.has-logo img{width:100%;height:100%;object-fit:contain}
.crt .crt-tk-match .crt-score{font-size:36px}
.crt .crt-tk-match .crt-tk-opp{grid-column:1/-1;grid-row:2}
@media(max-width:560px){.crt .crt-tk-match .crt-mono{width:40px;height:40px}.crt .crt-tk-match .crt-score{font-size:40px}}

/* Craig 2026-11-01: completed games use the existing Bootstrap light-gray token; logo scores retain their ink and prominence. */
.crt .crt-tk.is-complete,.crt .crt-gc.is-complete{background-color:var(--bs-gray-200)}
.crt .crt-proof.is-stats-only .crt-pf-row{margin-bottom:0}

/* 2026-11-04: Vegas Links. Centered icon stack copied from the canonical
   style-guide.css .sg-icon-cell (md5 6e16d6183415b532771b5bc54190e68c).
   Requested differences: linked icon instead of demo tile, no frame/background,
   and small labels below the icon. Icon size and bottom spacing stay canonical. */
.crt .crt-links-icons{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}
.crt #crt-stay .crt-house-links{grid-template-columns:repeat(2,minmax(0,1fr))}
.crt .crt-icon-link{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem .5rem;border:0;background:transparent;color:var(--color1);text-align:center;text-decoration:none}
.crt .crt-icon-link i,.crt .crt-icon-link .svg-inline--fa{font-size:1.5rem;color:var(--color1);margin-bottom:.5rem}
.crt .crt-icon-link span{font-size:14px;line-height:1.3;min-height:2.6em;font-weight:700;max-width:100%;overflow-wrap:anywhere}
@media(max-width:560px){.crt .crt-links-icons{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Public Vegas flight itinerary, 2026-11-05. The approved program shells and
   heading styles stay unchanged; only the airport/time composition is added. */
.crt .crt-flights{padding-top:40px;padding-bottom:64px}
.crt .crt-flights-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px 40px}
.crt .crt-flights-head>p{max-width:38ch;color:var(--color1);line-height:1.5}
.crt .crt-flights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:center}
.crt .crt-flight-body{padding:26px}
.crt .crt-flight-number{margin-bottom:26px}
.crt .crt-flight-route{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:12px;align-items:center}
.crt .crt-flight-stop{min-width:0}
.crt .crt-flight-city{font-weight:800;color:var(--color1);line-height:1.4}
.crt .crt-flight-code{font-size:64px;margin-top:8px;line-height:1}
.crt .crt-flight-action{margin-top:26px;font-size:15px;line-height:1.4;font-weight:800;color:var(--color1);text-transform:uppercase;letter-spacing:.08em}
.crt .crt-flight-time{display:block;font-size:56px;line-height:1.1;margin-top:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.crt .crt-flight-time small{font-size:.46em;line-height:1;font-weight:400}
.crt .crt-flight-zone{margin-top:8px;font-size:15px;line-height:1.5;color:var(--color1)}
.crt .crt-flight-path{position:relative;display:grid;place-items:center;width:48px;height:48px;color:var(--color1);font-size:26px}
.crt .crt-flight-path::before{content:"";position:absolute;inset:50% -8px auto;border-top:2px dashed var(--rule)}
.crt .crt-flight-path i{position:relative;background:var(--card);padding:8px}
.crt .crt-flight-note{margin-top:28px;max-width:75ch;font-size:16px;line-height:1.5;color:var(--color1)}
@media(max-width:991px){.crt .crt-flights-grid{grid-template-columns:minmax(0,1fr);gap:0}}
@media(max-width:575px){
  .crt .crt-flights{padding-top:28px;padding-bottom:48px}
  .crt .crt-flight-body{padding:22px 18px}
  .crt .crt-flight-route{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:10px}
  .crt .crt-flight-path{width:28px;height:36px;font-size:20px}
  .crt .crt-flight-path::before{inset-inline:-4px}
  .crt .crt-flight-path i{padding:5px}
  .crt .crt-flight-code{font-size:52px}
  .crt .crt-flight-time{font-size:44px}
  .crt .crt-flight-zone{font-size:14px}
  .crt .crt-flights .crt-d-l{font-size:clamp(54px,18.65vw,70px)}
  .crt .crt-flights .crt-d-s{font-size:clamp(28px,9.6vw,36px)}
}

.crt .crt-vegas-game-zone{margin-top:24px;color:var(--color1);font-weight:800;line-height:1.5}

/* Craig 2026-11-05: update the existing pictured Team Notes card. Its program
   shell/header and flight bodies retain the approved styles; only date hierarchy,
   local-time guidance and spacing between travel groups are added here. */
.crt .crt-team-notes .crt-travel-local{padding:22px 26px 0;color:var(--color1);font-size:16px;font-weight:800;line-height:1.5}
.crt .crt-team-notes .crt-travel-date{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:36px;line-height:1.1;margin-bottom:16px}
.crt .crt-team-notes .crt-travel-date small{font-size:.55em;line-height:1;font-weight:400}
.crt .crt-team-notes .crt-travel-leg+.crt-travel-leg,.crt .crt-team-notes .crt-travel-van{border-top:1.5px dotted var(--rule)}
.crt .crt-team-notes .crt-travel-van-label{display:flex;align-items:center;gap:12px;padding:26px 26px 0;line-height:1.5}
.crt .crt-team-notes .crt-travel-van-label i{flex:none;font-size:24px}
@media(max-width:575px){
  .crt .crt-team-notes .crt-travel-local{padding:20px 18px 0}
  .crt .crt-team-notes .crt-travel-van-label{padding:22px 18px 0}
  .crt .crt-team-notes .crt-travel-date{font-size:32px}
}

/* Craig 2026-11-06: Vegas-only layout and explicit coach marking. */
.crt[data-tid="18453"]{--crt-coach-yellow:hsl(66 100% 50%);--crt-coach-red:var(--bs-red)}
.crt[data-tid="18453"] .crt-links-icons .crt-icon-link :is(i,.svg-inline--fa){font-size:3rem}
.crt .crt-det-vegas{grid-template-columns:repeat(2,minmax(0,1fr))}
.crt .crt-det-vegas>#crt-stay{grid-column:1/-1;margin-top:0}
.crt[data-tid="18453"] .crt-games-head{align-items:center;justify-content:space-between;gap:32px}
.crt[data-tid="18453"] .crt-first-pitch{text-align:center;flex:none}
.crt[data-tid="18453"] .crt-first-pitch .crt-ic{width:64px;height:64px}
.crt[data-tid="18453"] .crt-uniform-slot{grid-column:3;grid-row:1;align-self:start;min-width:0;width:100%;margin:0}
.crt[data-tid="18453"] .crt-uniform-slot :is(.crt-pol-slot,.crt-pol-img){aspect-ratio:4/3}
.crt[data-tid="18453"] .crt-uniform-slot figcaption{font-size:28px;padding:12px 4px 16px}
.crt[data-tid="18453"] :is(.crt-gmsg .crt-prog-h,.cr-flight .cr-ph){position:relative;padding-right:140px;min-height:60px;display:flex;align-items:center}
.crt[data-tid="18453"] .crt-coach-flag{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;min-width:112px;padding:12px 18px;background:var(--crt-coach-yellow);color:var(--crt-coach-red);font:900 28px/1 "Londrina Solid",Impact,sans-serif;letter-spacing:.04em}
@media(max-width:1180px){.crt[data-tid="18453"] .crt-uniform-slot{grid-column:1/-1;grid-row:auto;max-width:380px;justify-self:center}}
@media(max-width:900px){.crt .crt-det-vegas{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.crt[data-tid="18453"] .crt-games-head{flex-wrap:wrap}.crt[data-tid="18453"] :is(.crt-gmsg .crt-prog-h,.cr-flight .cr-ph){padding-right:104px}.crt[data-tid="18453"] .crt-coach-flag{min-width:88px;padding:12px;font-size:24px}}

/* Vegas game times: local Pacific first, Mountain secondary. */
.crt[data-tid="18453"] .crt-time-pair{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:100%}
.crt[data-tid="18453"] .crt-time-pair>span{white-space:nowrap}
.crt[data-tid="18453"] .crt-time-pair small{font-size:.45em;font-weight:400}
.crt[data-tid="18453"] .crt-time-mountain{font:800 16px/1.3 Nexa,sans-serif;letter-spacing:normal;color:var(--color1)}

/* 2026-11-11 06:29 MST: requested workout uses the existing game card, with a distinct brand-token background. */
.crt[data-tid="18453"] .crt-gc.crt-workout{background:var(--paper-lav)}
.crt[data-tid="18453"] .crt-workout .crt-gc-time{font-size:40px}
.crt[data-tid="18453"] .crt-workout-title{font-size:42px;line-height:1.05}
/* 2026-11-11 06:42 MST: workout joins the compact tickets; Friday uniform replaces the itinerary placeholder. */
.crt[data-tid="18453"] .crt-workout-ticket{background:var(--paper-lav)}
.crt[data-tid="18453"] .crt-sticker-sm{display:none}
.crt[data-tid="18453"] .crt-games-head>.crt-friday-uniform{width:min(380px,42%);flex:none;align-self:center}
@media(min-width:1181px){.crt[data-tid="18453"] .crt-tickets{grid-template-columns:repeat(5,minmax(0,1fr))}.crt[data-tid="18453"] .crt-tk:nth-child(n+6){margin-top:14px}}
@media(max-width:560px){.crt[data-tid="18453"] .crt-games-head>.crt-friday-uniform{width:min(380px,100%);margin-inline:auto}}
/* 2026-11-11 22:55 MST: Vegas trip itinerary cards (Craig: "put all 4 cards into the Vegas website page for this tournament at the top").
   First block under the hero, so it takes the ticket strip's overlap onto the hero and the strip then follows it flat.
   Gaps are the page's own: 14px = the tickets' column gap, 110/80px = the strip's bottom margin. */
.crt .crt-itin{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:-86px;margin-bottom:110px}
.crt .crt-itin a{display:block}
/* "~" not "+": the viewer script and the modal sheets sit between the two sections (2026-11-11 23:10 MST, the tickets slid back over the cards) */
.crt .crt-itin ~ .crt-strip{margin-top:0}
@media(max-width:1180px){.crt .crt-itin{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.crt .crt-itin{margin-top:-70px}}
@media(max-width:560px){.crt .crt-itin{grid-template-columns:minmax(0,1fr);margin-top:-56px;margin-bottom:80px}}
/* 2026-11-11 23:10 MST: itinerary card viewer (Craig: "clicking a card of the itinerary should open it as a large modal to view/scroll
   details as needed"). The shell is the guide's Modal: short form; these lines are only its size. 750px = the card at full size, and the
   image runs edge to edge (no body padding) so the card is as large as the window allows; phones get 8px sides for the same reason. */
.cr-modals #crt-itin-modal .ct-modal{max-width:750px}
.cr-modals #crt-itin-modal .ct-modal-body{padding:0}
.cr-modals #crt-itin-modal .ct-modal-body img{aspect-ratio:750/1450}
@media(max-width:560px){.cr-modals #crt-itin-modal{padding-left:8px;padding-right:8px}}
/* LINKS card — Craig 2026-11-12: "Links should be bright blue (with default links hover color) ... hvr-pop", then on seeing it:
   "keep text in purple, do NOT hvr-pop text. just the icon". So the ICON is the bright blue = this brand's default link hover color,
   --LinkHoverColor (#00aeef on Rockettes; its --color4 is gray); the label keeps the card's color1. Hovering the link pops the icon only:
   hover-min.css's own hvr-pop keyframes and timing (.3s linear, once), run on the glyph, never on the label. */
.crt .crt-links-main .crt-icon-link :is(i,.svg-inline--fa){color:var(--LinkHoverColor)}
.crt .crt-links-main .crt-icon-link:is(:hover,:focus-visible) :is(i,.svg-inline--fa){animation-name:hvr-pop;animation-duration:.3s;animation-timing-function:linear;animation-iteration-count:1}
