:root{--green:#07896e;--deep:#073e35;--ink:#12382f;--paper:#f6f7f2;--line:#dce5df;--muted:#64766e;--gold:#89670e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{touch-action:manipulation}:focus-visible{outline:3px solid #e3a62b;outline-offset:4px}.skip{position:absolute;top:-100px;left:10px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}header{display:flex;align-items:center;gap:24px;padding:18px 4%;background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0}.brand img{border-radius:5px;object-fit:contain}.brand span{font-size:10px;letter-spacing:1.5px;line-height:1.4}.brand strong{display:block;font-size:17px;letter-spacing:.5px}nav{display:flex;align-items:center;gap:20px;margin-left:auto}nav a{font-size:13px;text-decoration:none;white-space:nowrap;padding:8px 0}nav a:hover,nav a[aria-current]{color:var(--green);box-shadow:0 2px var(--green)}.editor-link{font-size:11px;text-decoration:none;border:1px solid var(--line);padding:8px 12px;border-radius:3px;white-space:nowrap}h1,h2,h3{font-family:'Arial Narrow',Arial,sans-serif;line-height:1.06;letter-spacing:-1px;margin:0;font-weight:800}h1{font-size:clamp(45px,5.6vw,80px)}h2{font-size:clamp(28px,3vw,42px)}h3{font-size:22px;letter-spacing:-.5px}em{font-style:normal;color:#67d1ad}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 20px}.home-hero{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--deep);color:#fff;min-height:620px}.hero-copy{padding:75px 10% 45px}.hero-copy h1{font-size:clamp(48px,6vw,83px);letter-spacing:-2.5px}.hero-copy>p:not(.eyebrow){color:#bbd3c9;line-height:1.8;margin:28px 0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--green);border:0;border-radius:3px;color:white;font-weight:bold;font-size:13px;padding:15px 22px;text-decoration:none}.button:hover{filter:brightness(1.1)}.button.light{background:#e7f4ed;color:var(--deep)}.hero-meta{display:flex;gap:18px;align-items:center;border-top:1px solid #ffffff25;padding-top:25px;margin-top:40px;font-size:11px;color:#b9d3c7}.hero-meta b{font-size:20px;letter-spacing:3px;color:#80d2b6}.slideshow{position:relative;min-width:0;background:#052b25;display:flex;flex-direction:column;justify-content:center;padding:25px 0}.slides{width:100%;aspect-ratio:1.6;position:relative;overflow:hidden}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;visibility:hidden;transition:opacity .5s}.slide.active{opacity:1;visibility:visible}.slide-controls{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 5px;color:#e3f6ed;font-size:12px;letter-spacing:2px}.slide-controls button{color:white;background:none;border:1px solid #ffffff50;border-radius:50%;width:38px;height:38px;margin-left:6px}.slide-dots{display:flex;gap:8px;padding:15px 28px}.slide-dots button{width:8px;height:8px;border:0;border-radius:50%;background:#53796d;padding:0}.slide-dots button[aria-pressed=true]{background:#92e5c6}.section{padding:65px 5%;max-width:1600px;margin:auto}.section-title{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.section-title a{font-size:12px}.athlete-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.athlete-card{display:grid;grid-template-columns:42% 1fr;text-decoration:none;background:white;border:1px solid var(--line);min-height:245px;overflow:hidden;border-radius:4px}.card-image{background:linear-gradient(145deg,#05614d,#073e35);display:flex;align-items:center;justify-content:center;min-height:245px}.card-image img{width:100%;height:100%;object-fit:cover}.card-image>span{color:#6bceaa;font-size:90px;font-weight:bold}.card-copy{padding:28px}.card-copy h3{font-size:32px}.card-copy p:not(.eyebrow){font-size:12px;color:var(--muted)}.card-link{display:block;color:var(--green);font-weight:bold;font-size:12px;margin-top:25px}.green-band{background:var(--deep);color:#f4faf6;padding:60px 10%}.green-band p:not(.eyebrow){color:#bed6c9;max-width:600px}.highlights{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px}.highlights img{width:100%;height:auto;border-radius:4px}.highlights p{color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 5%;background:#e9eee7;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer p{margin:6px 0}.foot-brand strong{font-size:13px}.foot-brand span{font-size:9px}.page-heading{padding:65px 5% 40px;background:#e8efe7}.page-heading h1{font-size:clamp(40px,5vw,67px)}.lead{max-width:720px;font-size:16px;color:var(--muted);margin:24px 0 0}.top-less{padding-top:35px}.athlete-layout{display:grid;grid-template-columns:250px minmax(0,1fr);border:1px solid var(--line);background:white}.identity{padding:25px;background:#eaf0e7;border-right:1px solid var(--line)}.identity h2{font-size:32px}.identity .eyebrow{margin-top:25px;font-size:9px}.profile-photo{width:100%;height:235px;object-fit:cover;object-position:center}.identity>p,.identity>a{font-size:12px}.identity-note{border-top:1px solid #cbd8cb;margin-top:22px;padding-top:20px;font-size:12px}.identity-note p{font-size:11px;color:var(--muted)}.initials{height:220px;background:var(--deep);color:#72d4ae;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:80px;font-weight:bold}.initials span{font-size:9px;letter-spacing:2px}.career{padding:35px;min-width:0}.career h2{font-size:32px}.muted{color:var(--muted);font-size:13px}.small{font-size:11px;color:var(--muted);line-height:1.6}.legend{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;margin:20px 0}.record-label{font-size:10px;color:#886517}.timeline{display:flex;gap:14px;flex-wrap:nowrap;overflow-x:auto;padding:10px 3px 20px;scrollbar-width:thin}.year{position:relative;flex:0 0 105px;border:0;background:none;padding:0;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:8px}.year:not(:last-child):after{content:'';height:1px;width:36px;background:#c9d8cc;position:absolute;left:90px;top:43px}.circle{width:88px;height:88px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1px solid #c9d8cc;border-radius:50%;background:white;z-index:1}.circle b{font-size:17px}.circle small{font-size:10px;white-space:nowrap}.year.selected .circle{border:2px solid var(--green);box-shadow:0 0 0 4px #e1f1e8}.year.milestone .circle{background:var(--green);border-color:var(--green);color:white}.year-label{font-size:10px;min-height:32px;max-width:105px}.year .record-label{font-size:9px}.year-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:30px;margin-top:30px}.year-toolbar label{font-size:10px;margin:0}.year-toolbar select{padding:8px;max-width:180px}.summary-line{font-size:12px;background:#eaf3eb;padding:12px 15px}.notice{background:#eef3e7;border-left:3px solid var(--green);font-size:13px;padding:18px 20px;color:#496453}.result-card{display:grid;grid-template-columns:115px 1fr;border:1px solid var(--line);border-radius:3px;background:#fff;margin:12px 0;padding:22px;gap:20px}.result-date{font-size:11px;font-weight:bold;color:var(--green)}.result-card h3{font-size:18px;letter-spacing:0;line-height:1.3}.performance{font-size:14px;margin:10px 0;font-weight:bold}.badges{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-block;border-radius:3px;font-size:10px;padding:5px 8px;letter-spacing:0}.gold{background:#f6edd0;color:#775b12}.silver{background:#e8eced;color:#4a5a65}.bronze{background:#f3e1d5;color:#86532d}.cup{background:#e3f1dd;color:#39682b}.record{background:#f4e9c7;color:#775a0c}.honorary{background:#ece3f3;color:#6e5082}.verification{font-size:10px;color:#63776b;margin:12px 0 0}.result-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:12px;font-size:10px}.athlete-tag{font-size:10px;color:var(--green);display:inline-block;margin-bottom:9px}.filter-bar{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;gap:18px;padding:22px;background:#e9efe6;border:1px solid var(--line)}label{display:grid;gap:7px;font-size:12px;margin:12px 0}input,select{min-width:0;background:white;color:var(--ink);border:1px solid #c7d5c9;padding:10px 12px;border-radius:3px;width:100%}.filter-bar label{margin:0}#archiveCount{font-size:12px;color:var(--muted)}.reading{max-width:1050px}.reading h2{font-size:30px;margin:35px 0 18px}.reading p,.reading li{color:#526b5d;line-height:1.8}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:12px}.history-event{display:grid;grid-template-columns:100px 1fr;gap:30px;border-bottom:1px solid var(--line);padding:25px 0}.history-event>b{font-size:30px;color:var(--green)}.history-event h2{margin:0;font-size:28px}.history-event a{font-size:12px}.calendar-event{display:grid;grid-template-columns:150px 1fr 80px;gap:20px;border-bottom:1px solid var(--line);padding:22px 0;align-items:start}.calendar-event time{font-size:12px;color:var(--green)}.calendar-event h3{font-size:17px}.calendar-event a{font-size:11px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.contact-panel{background:var(--deep);color:white;padding:40px;border-radius:4px}.contact-panel p{color:#c3daca;font-size:13px}.contact-logo{width:150px;height:150px;border-radius:5px;margin-bottom:22px}.contact-grid>div>p{font-size:13px}.draft-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}.draft-form button{align-self:end;margin:12px 0}.admin-buttons{display:flex;gap:22px;margin:30px 0}.plain-button{background:none;border:0;color:var(--green);text-decoration:underline;font-size:12px}.empty-state{padding:30px;border:1px dashed var(--line);font-size:13px;color:var(--muted)}.total-line{font-weight:bold;font-size:12px;color:var(--deep)}.trainer-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.trainer{background:white;border:1px solid var(--line);padding:35px;border-radius:4px}.trainer .initials{height:130px;font-size:56px;margin-bottom:25px}.trainer h2{font-size:34px;margin:15px 0}.trainer p{font-size:13px}.trainer a{font-size:11px}.trainer ul{font-size:12px;padding-left:20px}code{font-size:12px;background:#e8ede6;padding:2px 5px}@media(max-width:1150px){header{gap:16px;flex-wrap:wrap}nav{order:3;width:100%;justify-content:center;overflow:auto;gap:22px}.editor-link{margin-left:auto}.home-hero{min-height:0}.hero-copy{padding:55px 8%}.career{padding:25px}.filter-bar{grid-template-columns:1fr 1fr}}@media(max-width:760px){header{padding:12px 5%}.brand img{width:48px;height:48px}.brand strong{font-size:15px}nav{justify-content:flex-start;gap:22px;padding:5px 0}.home-hero{grid-template-columns:1fr}.hero-copy{padding:45px 7%}.hero-copy h1{font-size:59px}.hero-meta{margin-top:30px}.slideshow{padding:0 0 8px}.slides{aspect-ratio:1.6}.slide-controls{padding:13px 20px 0}.slide-dots{padding-left:20px}.section{padding:40px 5%}.section-title{align-items:start}.section-title>a{display:none}.athlete-cards,.highlights,.contact-grid,.trainer-grid{grid-template-columns:1fr}.athlete-card{grid-template-columns:38% 1fr;min-height:210px}.card-image{min-height:210px}.card-copy{padding:22px}.card-copy h3{font-size:28px}.green-band{padding:45px 7%}.page-heading{padding:40px 5% 30px}.page-heading h1{font-size:43px}.lead{font-size:14px}.athlete-layout{grid-template-columns:1fr}.identity{border-right:0;display:grid;grid-template-columns:110px 1fr;gap:10px 20px}.profile-photo,.initials{grid-row:1/5;height:145px;width:110px;font-size:50px}.identity .eyebrow{margin:0}.identity h2{font-size:28px}.identity>p{margin:0}.identity-note,#careerTotals{grid-column:1/-1}.identity-note{margin-top:8px;padding-top:15px}.career{padding:20px}.career h2{font-size:28px}.year{flex-basis:100px}.year-toolbar{flex-wrap:wrap}.result-card{grid-template-columns:1fr;gap:7px;padding:18px}.result-card h3{font-size:17px}.filter-bar{grid-template-columns:1fr 1fr;padding:15px;gap:12px}.source-grid{grid-template-columns:1fr}.calendar-event{grid-template-columns:1fr;gap:8px}.history-event{grid-template-columns:65px 1fr;gap:18px}.history-event>b{font-size:25px}.history-event h2{font-size:24px}.draft-form{grid-template-columns:1fr}.contact-panel{padding:28px}.trainer{padding:25px}.trainer .initials{width:100%;height:120px}footer{flex-direction:column;align-items:start}.highlights{gap:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.slide{transition:none}}

.roster-scroll{overflow-x:auto;border:1px solid var(--line);background:white}.roster-head,.roster-row{display:grid;grid-template-columns:160px 220px var(--years);width:max-content;min-width:100%;align-items:stretch}.roster-head{background:var(--deep);color:white;position:sticky;top:0}.roster-head>div{padding:16px 8px;text-align:center;font-weight:bold}.roster-row{border-bottom:1px solid var(--line)}.roster-person{padding:20px 10px;text-align:center;text-decoration:none}.roster-person img{width:100px;height:100px;border-radius:50%;object-fit:cover;object-position:center 25%;border:3px solid #dbece3}.roster-person strong{display:block;font-size:15px;margin-top:8px}.roster-info{padding:22px 15px;border-right:1px solid var(--line);font-size:12px}.roster-info p{margin:3px 0}.roster-cell{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:82px;border-right:1px solid #edf0ea;background:linear-gradient(transparent 49.5%,#d7e3db 50%,transparent 50.5%);padding:12px 3px}.roster-dot{width:65px;height:65px;border:1px solid #c6d6cb;border-radius:50%;background:white;color:var(--ink);font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center}.roster-dot.birth{border:3px solid var(--deep)}.roster-dot.training{background:var(--green);color:white}.roster-dot.first{border:2px dashed var(--green)}.roster-dot.active{outline:3px solid #e3a62b;outline-offset:2px}.roster-dot small{font-size:9px}.roster-cell>span{font-size:9px;max-width:78px;text-align:center;line-height:1.3;min-height:25px;margin-top:5px}.roster-filter{max-width:300px}#rosterDetails{scroll-margin-top:20px;margin-top:30px}textarea{width:100%;font:inherit;padding:12px;border:1px solid #c7d5c9;border-radius:3px}#adminWorkspace h2{margin:35px 0 15px}#adminStatus{white-space:pre-line}#adminStatus.error{color:#a52323}.draft-form [type=checkbox]{width:auto}[hidden]{display:none!important}
.roster-person,.roster-info{position:sticky;background:white;z-index:2}.roster-person{left:0}.roster-info{left:160px}.roster-head>div:first-child{position:sticky;left:0;background:var(--deep);z-index:3}.roster-head>div:nth-child(2){position:sticky;left:160px;background:var(--deep);z-index:3}@media(max-width:760px){.roster-head,.roster-row{grid-template-columns:120px 180px var(--years)}.roster-info,.roster-head>div:nth-child(2){left:120px}.roster-person img{width:80px;height:80px}.roster-person strong{font-size:12px}.roster-info{font-size:10px;padding:16px 10px}}

/* Round athlete portraits across cards, list and profiles. */
.athlete-card{grid-template-columns:170px 1fr;align-items:center;min-height:220px}.card-image{background:none;min-height:0;width:140px;height:140px;margin:20px auto;border-radius:50%;overflow:hidden;display:flex}.card-image img{width:100%;height:100%;object-fit:cover;object-position:center 22%;border-radius:50%}.card-image>span{background:var(--deep);width:100%;height:100%;display:grid;place-items:center;font-size:50px}.card-copy h3{font-size:26px}.profile-photo{display:block;width:170px;height:170px;max-width:100%;border-radius:50%;object-fit:cover;object-position:center 22%;margin:0 auto 18px;border:3px solid #d2e4d8}.identity h2{text-align:center;font-size:27px}.identity .initials{border-radius:50%;width:170px;height:170px;margin:auto}.identity{display:block}.card-copy .eyebrow{margin-bottom:12px}.card-image+.card-copy{padding:20px}.card-copy h3{margin-bottom:12px}.club-medals-table{border-collapse:collapse;width:100%;font-size:13px}.club-medals-table th,.club-medals-table td{padding:13px;border-bottom:1px solid var(--line);text-align:left}.club-medals-table thead{background:var(--deep);color:white}#clubYearMedals{overflow:auto}.latest-year{box-shadow:0 0 0 3px #07896e33}@media(max-width:760px){.athlete-card{grid-template-columns:135px 1fr}.card-image{width:105px;height:105px}.profile-photo{width:150px;height:150px;grid-row:auto}.identity h2{font-size:26px}.card-copy h3{font-size:23px}.identity .eyebrow{margin:20px 0 8px}.roster-person img{object-position:center 22%}}

.card-portrait{text-align:center;padding:15px 5px}.card-portrait .card-image{margin:5px auto 12px}.card-portrait>strong{display:block;font-size:14px}.card-copy{min-width:0}

.timeline-gap{align-self:flex-start;display:grid;place-items:center;flex:0 0 36px;height:88px;font-size:26px;color:var(--muted)}.school-year .circle,.roster-dot.school-year{border:2px solid #c99b29;background:#fff6d9;color:#694c06}.school-year .circle small{font-size:9px}.school-champion{border:2px solid #c99b29;background:linear-gradient(120deg,#fff8df,#fff)}.school-title{font-size:11px;letter-spacing:1px;font-weight:bold;color:#805d0b;margin:0 0 14px}.school-champion h3{font-size:23px}
@media(max-width:760px){.roster-head,.roster-row{grid-template-columns:92px var(--years)}.roster-info,.roster-head>div:nth-child(2){display:none}.roster-person{width:92px;padding:14px 5px}.roster-person img{width:62px;height:62px;border-width:2px}.roster-person strong{font-size:10px;line-height:1.3;max-width:82px;margin:7px auto 0}.roster-head>div:first-child{padding:13px 4px;font-size:11px}.roster-cell{min-width:82px}.roster-row{min-height:120px}}

.photo-upload{padding:18px;background:#edf4ed;border:1px solid var(--line)}#athletePhotoPreview{width:120px;height:120px;object-fit:cover;object-position:center 22%;border-radius:50%;display:block;margin:15px 0}#photoUploadStatus{font-size:12px}#homeAthletes{display:flex;flex-wrap:wrap;justify-content:center;align-items:start;gap:30px}#homeAthletes .athlete-card{display:flex;flex-direction:column;width:210px;min-height:0;padding:8px;border:0;background:transparent;overflow:visible;text-align:center}#homeAthletes .card-portrait{width:100%;padding:0}#homeAthletes .card-image{width:155px;height:155px;margin:0 auto 15px;border:3px solid #d1e4d8;border-radius:50%;overflow:hidden}#homeAthletes .card-image img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 22%}#homeAthletes .card-portrait>strong{font-size:19px}#homeAthletes .card-copy{padding:10px 0!important}#homeAthletes .card-copy .eyebrow{display:none}#homeAthletes .card-copy p{margin:0;font-size:11px}#homeAthletes .card-link{margin-top:8px}@media(max-width:760px){#homeAthletes{gap:22px 12px}#homeAthletes .athlete-card{width:145px;padding:0}#homeAthletes .card-image{width:120px;height:120px}#homeAthletes .card-portrait>strong{font-size:15px}}

/* Full-bleed landscape slideshow. */
.home-hero{align-items:stretch}.slideshow{display:block;padding:0;position:relative;min-height:420px;overflow:hidden}.slideshow .slides{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.slideshow .slide{object-fit:cover;width:100%;height:100%}.slideshow .slide-controls{position:absolute;z-index:2;bottom:42px;left:0;right:0;padding:25px 24px 8px;background:linear-gradient(transparent,#03251c80);text-shadow:0 1px 4px #000}.slideshow .slide-controls button{background:#052b2580}.slideshow .slide-dots{position:absolute;bottom:0;left:0;right:0;z-index:2;background:#03251c80;padding:14px 24px;flex-wrap:wrap;gap:10px}.slideshow .slide-dots button{width:10px;height:10px}.slideshow-empty{position:absolute;inset:0;display:grid;place-items:center;color:white;text-align:center;padding:30px}.slideshow-editor{padding:25px;background:#edf3eb;border:1px solid var(--line);margin:30px 0}.slide-editor-row{display:grid;grid-template-columns:200px 1fr auto;gap:20px;padding:20px 0;border-bottom:1px solid #d3dfd4;align-items:center}.slide-editor-row img{width:200px;aspect-ratio:16/9;object-fit:cover;border-radius:4px}.slide-editor-actions{display:flex;flex-direction:column;gap:8px}.slide-editor-actions button{padding:8px 12px;background:white;border:1px solid #bacdbf;border-radius:3px}.slide-editor-row label{margin:5px 0}.slideshow-editor button:disabled{cursor:default;opacity:.45}@media(max-width:760px){.slideshow{min-height:0;height:auto;aspect-ratio:16/9}.slideshow .slide-controls{bottom:30px;padding:14px 16px 4px}.slideshow .slide-controls button{width:32px;height:32px}.slideshow .slide-dots{padding:10px 16px;gap:8px}.slideshow .slide-dots button{width:8px;height:8px}.slideshow-editor{padding:15px}.slide-editor-row{grid-template-columns:1fr;gap:10px}.slide-editor-row img{width:100%}.slide-editor-actions{flex-direction:row;flex-wrap:wrap}}
@media(min-width:761px){.home-hero{grid-template-columns:.75fr 1.25fr;min-height:0}.hero-copy{padding:45px 9% 35px}.hero-copy h1{font-size:clamp(42px,4.8vw,72px)}.hero-meta{margin-top:24px}.slideshow{min-height:0}}
