:root{--green:#006c4f;--ink:#20342d;--muted:#52655b;--line:#d5dfd8;--paper:#fff;--soft:#f3f6f1;--school:#80612d;--accent:var(--green);font-family:"Noto Sans JP","Noto Sans CJK JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;color:var(--ink);background:#f8f9f6;font-size:16px;font-weight:500;line-height:1.85}
html{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-underline-offset:.22em}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid #b07b12;outline-offset:4px}button,select{font:inherit}button,summary{cursor:pointer}[hidden]{display:none!important}img{max-width:100%;height:auto}figure{margin:0}h1,h2,h3,p,ul,ol{margin-top:0}h1,h2,h3{line-height:1.5;font-weight:700}h1{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:1rem}h2{font-size:1.4rem}h3{font-size:1.2rem}p{margin-bottom:1.2rem}ul,ol{padding-left:1.4rem}li{margin:.25rem 0}table{border-collapse:collapse}main{flex:1}#content:focus{outline:none}.theme-school{--accent:var(--school)}.skip-link{position:absolute;z-index:100;left:1rem;top:-5rem;padding:.7rem 1rem;background:#fff}.skip-link:focus{top:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Shared page frame: every page uses the same available width. */
.site-header{background:var(--paper);border-top:5px solid var(--green);border-bottom:1px solid var(--line)}.header-inner{max-width:1248px;margin:auto;padding:23px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:30px}.brand{font-size:1.25rem;font-weight:700;line-height:1.5;color:var(--green);text-decoration:none;min-width:0}.brand span{display:inline-block;white-space:nowrap}.primary-nav ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}.primary-nav li{margin:0}.primary-nav a{display:block;text-decoration:none;font-size:.94rem;color:var(--ink);padding:.65rem 0;border-bottom:2px solid transparent;white-space:nowrap}.primary-nav a[aria-current]{border-color:var(--green);color:var(--green);font-weight:700}.menu-toggle{background:white;border:1px solid var(--line);border-radius:4px;min-height:44px;padding:5px 12px;color:var(--green)}.page{width:min(100%,1248px);margin:0 auto;padding:34px 24px 64px}.breadcrumb{font-size:.82rem;color:var(--muted);display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 30px}.breadcrumb a{color:inherit}.page-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15em .65em}.title-group,.title-label{display:inline-block}.page-title .title-group{white-space:nowrap}.site-footer{border-top:1px solid var(--line);padding:28px 20px;background:#fff;text-align:center;color:var(--muted);font-size:.82rem}.site-footer p{margin:0}.eyebrow{font-size:.83rem;font-weight:700;color:var(--accent);margin:0 0 10px}
/* Shared rows align both the next-concert slots and the previous concerts. */
.group-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;row-gap:24px}.group-panel{display:grid;grid-template-rows:subgrid;grid-row:span 4;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--green);padding:26px;min-width:0}.group-panel--school{--accent:var(--school);border-top-color:var(--school)}.group-heading{border-bottom:1px solid var(--line);padding-bottom:18px}.group-heading h2{color:var(--accent);font-size:1.45rem;margin:0}.announcement{padding:18px 20px;background:var(--soft);border-left:3px solid var(--accent);min-width:0}.announcement h3{font-size:.85rem}.announcement .announcement-title{font-size:1.15rem;font-weight:700;margin-bottom:7px}.announcement p:not(.announcement-title){font-size:.92rem;margin-bottom:10px}.announcement p:last-child{margin-bottom:0}.group-panel--school .announcement{background:#faf7ee}.text-link{font-size:.9rem}.recent-record h3{font-size:1.38rem;margin-bottom:9px}.event-date{font-size:.92rem;color:var(--muted);margin-bottom:22px}.poster-layout{display:grid;gap:18px}.poster-layout figure{width:min(100%,310px);margin:0 auto}.poster-layout figure img{display:block;width:100%;height:auto;aspect-ratio:210/297;object-fit:contain;background:#fff;border:1px solid var(--line)}.poster-layout figcaption{font-size:.83rem;text-align:center;margin-top:8px}.record-link{display:block;font-weight:700;line-height:1.8;text-align:center;padding:8px 0}.group-links{align-self:end}.archive-link{display:flex;justify-content:space-between;gap:12px;padding:13px 16px;min-height:50px;border:1px solid var(--accent);font-weight:700;text-decoration:none;background:#fafbf9}.archive-link:hover{background:var(--soft)}.social-link{display:block;margin-top:16px;font-size:.9rem}.announcement-source{padding:26px 28px;margin:30px 0;border:1px solid #ded3be;border-left:5px solid var(--school);background:#faf7ee;border-radius:0 6px 6px 0}.announcement-source h2{color:var(--school);font-size:1.05rem}.announcement-source h3{font-size:1.45rem;margin:0 0 18px}.announcement-details{margin:0;display:grid;gap:10px}.announcement-details>div{display:flex;align-items:baseline;gap:16px}.announcement-details dt{flex:0 0 4em;color:var(--school);font-size:.85rem;font-weight:700}.announcement-details dd{margin:0;min-width:0}.source-content .announcement-source h2{margin-top:0}.announcement-source p:last-child{margin-bottom:0}.page-lead{color:var(--muted);margin-bottom:26px}.archive-index{display:grid;gap:20px}.index-card{display:flex;align-items:center;gap:26px;padding:22px;border:1px solid var(--line);text-decoration:none;background:#fff}.index-card>img{width:200px;aspect-ratio:3/2;object-fit:cover}.index-card>span:not(.card-arrow){display:grid;gap:10px;flex:1;min-width:0}.index-card strong{font-size:1.2rem}.index-card span span{font-size:.9rem;color:var(--muted)}.card-arrow{font-size:1.4rem}.school-index{margin:28px 0}.school-index .index-card{border-left:4px solid var(--school)}
/* Existing prose and concert records retain their content. */
.source-content>.container,.source-content .container{padding:0;max-width:none;width:auto;margin:0}.source-content h2{margin-top:38px;margin-bottom:16px}.source-content h1{margin-bottom:24px}.source-content .sentence{text-indent:0;max-width:none}.about-photo{margin:24px 0 0;width:min(100%,369px)}.about-photo img{display:block;width:100%;height:auto}.about-photo figcaption{font-size:.9rem;margin-top:10px}.source-content .school-poster{width:min(100%,310px)}.source-content .youtube{width:min(100%,720px);aspect-ratio:16/9;margin-top:20px}.youtube iframe{border:0;width:100%;height:100%}.old-article .center{display:block;text-align:left}.old-article img{display:block;width:auto;max-width:min(100%,650px);margin:20px 0}.source-content .bold{font-weight:700}.source-content .slide ul{display:flex;flex-wrap:wrap;list-style:none;gap:7px;padding:0;margin:15px 0 30px}.slide a{display:block;min-height:42px;min-width:42px;padding:5px 10px;background:#fff;border:1px solid var(--line);text-align:center}.source-content table.concert{width:100%;border-spacing:0;margin:20px 0 36px;background:white;table-layout:fixed}.source-content table.concert td{vertical-align:top;border:1px solid var(--line);padding:18px}.source-content table.concert .left{width:32%}.source-content table.concert .right{width:68%}.concert-name{font-size:1.22rem!important;margin:0 0 18px!important}.narrow{margin:0 0 14px}.concert .program{margin:0 0 24px;padding-left:1.3em}.concert .left img{width:100%;height:auto}.homeUp{text-align:right;margin:20px 0}.homeUp a{display:inline-block;min-width:44px;min-height:44px;text-align:center;padding:8px;border:1px solid var(--line);background:white}.email-address{font-size:1.05rem;overflow-wrap:anywhere;user-select:text}.contact-entry{padding:25px 0;border-bottom:1px solid var(--line)}.source-content .contact-entry h2{margin-top:0;margin-bottom:12px}.contact-entry p{margin-bottom:10px}.contact-entry p:last-child{margin:0}
/* Tournament index and scrollable tables. */
.gold,.silverRep,.silver,.bronze{display:inline-block;padding:.1em .35em;font-weight:700;border-radius:2px;white-space:nowrap}.gold{background:#e9dfab;color:#493b0a}.silverRep,.silver{background:#e2e6e7;color:#354148}.bronze{background:#edd7c6;color:#5e3523}.center{padding:.1em .2em}.section-index{margin:0 0 40px;padding:22px;background:#f1f3ec;border:1px solid var(--line)}.source-content .index-group h2{font-size:1.05rem;margin:24px 0 8px}.source-content .index-group:first-child h2{margin-top:0}.section-index ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 24px;margin:0;padding:0}.section-index li{margin:0}.section-index a{display:block;padding:9px 0;line-height:1.6;font-size:.92rem;min-height:44px}.source-content .competition-category>h2{padding-bottom:12px;margin-top:46px;border-bottom:2px solid var(--accent)}.competition-section>h3{padding-top:22px;scroll-margin-top:24px;font-size:1.2rem}.table-tools{display:flex;gap:16px;align-items:start;justify-content:space-between;margin:15px 0 10px;font-size:.85rem;color:var(--muted)}.year-picker{max-width:600px}.year-picker summary{font-weight:700;padding:8px 14px;border:1px solid var(--line);background:#fff;color:var(--accent);min-height:44px}.year-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.year-links a{display:block;padding:5px 10px;min-height:42px;background:white;border:1px solid var(--line)}.table-tools .scroll-hint{margin-left:auto;align-self:flex-end;text-align:right;font-size:.76rem;line-height:1.7;padding-top:10px}.table-scroll{max-height:36rem;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);background:white;margin:0 0 36px;scrollbar-gutter:stable}.table-scroll:focus{outline-offset:3px}.record-table{border-collapse:separate;border-spacing:0;table-layout:auto;min-width:740px;margin:0;width:100%;font-size:.875rem;background:white}.record-table th,.record-table td{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top;line-height:1.65}.record-table tbody:nth-of-type(even){background:#f7f9f5}.record-table thead th{position:sticky;top:0;z-index:2;background:#e9eee5;white-space:nowrap}.record-table .year-cell{position:sticky;left:0;z-index:1;background:#eef3ed;font-variant-numeric:tabular-nums}.record-table thead th:first-child{left:0;z-index:3}.record-table .col-year,.record-table .col-month,.record-table .col-ensemble,.record-table .col-conductor,.record-table .col-result{width:1%;white-space:nowrap}.record-table .col-year{min-width:4rem}.record-table .col-month{min-width:3rem}.record-table .col-ensemble{min-width:4.5rem}.record-table .col-composer{width:23%;min-width:10rem}.record-table .col-result{min-width:4.5rem}.record-table .col-result[colspan]{white-space:normal}.record-table .col-result[colspan] .center{white-space:nowrap}.record-table .col-piece,.record-table .col-activity{width:auto}.record-table tbody:target th.year-cell{box-shadow:inset 4px 0 var(--accent)}.record-table td:empty{background:#fafbf9}/* Column widths follow the content. A shared core aligns composers and conductors. */
.score-scroll{--year-width:3rem;--ensemble-width:3rem;--composer-width:12rem;--conductor-width:4.75rem;--award-width:6rem;--family-min:52rem;--family-tail:calc(4 * var(--award-width));--used-tail:calc(var(--result-count) * var(--award-width) + var(--has-conductor) * var(--conductor-width));--unused-tail:calc(var(--family-tail) - var(--used-tail));width:calc(100% - var(--unused-tail));min-width:min(100%,calc(var(--family-min) - var(--unused-tail)));max-width:100%}
.theme-ob .score-scroll{--award-width:3.25rem;--family-min:40rem;--family-tail:calc(var(--conductor-width) + var(--award-width))}
.record-table.score-table{table-layout:fixed;min-width:calc(var(--family-min) - var(--unused-tail));width:100%}
.record-table.score-table :is(th,td){width:auto;min-width:0}
.record-table.score-table col{min-width:0}
.score-table col.col-year{width:var(--year-width)}.score-table col.col-ensemble{width:var(--ensemble-width)}
.score-table col.col-piece{width:auto}.score-table col.col-composer{width:var(--composer-width)}.score-table col.col-conductor{width:var(--conductor-width)}.score-table col.col-result{width:var(--award-width)}
.record-table.score-table .col-result{white-space:normal}.record-table.score-table .col-result .center{white-space:normal}
.score-table :is(.gold,.silverRep,.silver,.bronze){white-space:normal;padding:.08em .2em}
.score-table .col-composer{overflow-wrap:anywhere}.record-table .col-conductor{white-space:nowrap}
.source-credit-link{display:block;margin-top:.4rem}
.marching-category{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.marching-category>h2{grid-column:1/-1}.marching-category>.competition-section{min-width:0}
.marching-category .table-tools{flex-wrap:wrap;align-items:center}.marching-category .scroll-hint{padding-top:0}
.marching-scroll{width:100%}.record-table.marching-table{table-layout:fixed;min-width:248px;width:100%}
.record-table.marching-table :is(th,td){width:auto;min-width:0;text-align:center}
.marching-table col.col-year{width:2.5rem}.marching-table col.col-result{width:auto}
.record-table.marching-table .col-result{white-space:normal}
.marching-table :is(th,td).col-year{white-space:nowrap}.record-table .table-end-note{color:var(--muted);text-align:center;background:var(--soft)}
.record-table.timeline-table{min-width:300px}.timeline-table .col-year{width:3.5rem;min-width:3.5rem}.timeline-table .col-month{width:3rem;min-width:3rem}
.announcement-details-link{display:inline-flex;gap:.6rem;align-items:center;margin-top:18px;font-weight:700}
.concert-periods{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 30px}
.source-content .concert-periods ul{margin:0;align-content:start;padding:12px;border:1px solid var(--line);background:#f1f3ec;gap:6px}
.concert-periods a{min-height:44px;padding:6px;font-size:.9rem}.source-content .concert-periods ul:nth-child(3){display:grid;grid-template-columns:repeat(5,max-content)}
.report-entry{position:relative;display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:18px;background:#f3f6f1;border:1px solid var(--line);border-left:4px solid var(--green);padding:20px;text-decoration:none}
.report-entry>img{display:block;width:100%;height:auto;max-width:369px}.report-entry-copy{display:grid;gap:6px}.report-entry-copy strong{font-size:1.2rem}.entry-description{font-size:.9rem;color:var(--muted)}.entry-arrow{font-size:1.5rem}.report-entry:hover{background:#eaf0e8}
.about-photo{background:#fff;border:1px solid var(--line)}.about-photo figcaption{margin:0;padding:13px 15px}.about-photo figcaption a{display:grid;gap:5px;text-decoration:none}.about-photo figcaption a>span{font-size:.82rem;color:var(--muted)}
.concert-report-hero{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:30px;align-items:center;margin:25px 0 38px}
.concert-report-hero figure{max-width:369px;grid-column:1;grid-row:1;background:#fff;border:1px solid var(--line);padding:8px}.concert-report-hero img{display:block;width:100%;height:auto}
.concert-report-copy{grid-column:2;grid-row:1;border-left:3px solid var(--green);padding:8px 0 8px 22px}.concert-report-copy p{margin:0}
.report-programs{display:grid;grid-template-columns:1fr 1fr;gap:24px}.report-programs section{border:1px solid var(--line);background:#fff;padding:24px}.report-programs h3{color:var(--green);border-bottom:1px solid var(--line);padding-bottom:12px;margin:0 0 18px}.report-programs ul{list-style:none;margin:0;padding:0}.report-programs li{margin:0;padding:10px 0;border-bottom:1px solid #edf1eb}.report-programs li:last-child{border:0}.report-back{display:inline-block;margin-top:30px;padding:10px 0;font-weight:700}
@media(max-width:1100px){.header-inner{gap:18px}.primary-nav ul{gap:1rem}.brand{font-size:1.13rem}.group-panel{padding:22px}.group-heading h2{font-size:1.3rem}}
@media(max-width:800px){.header-inner{padding:16px 20px;gap:14px}.brand{font-size:1.15rem}.primary-nav{grid-column:1/-1}.primary-nav ul{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.primary-nav a{min-height:48px}.page{padding:26px 20px 45px}.group-grid{display:block}.marching-category{display:block}.group-panel{display:block;padding:23px;margin-bottom:26px}.group-panel>*+*{margin-top:24px}.group-heading h2{font-size:1.35rem}.group-links{margin-top:24px}.index-card>img{width:145px}.section-index ul{grid-template-columns:1fr}.source-content table.concert,.source-content table.concert tbody,.source-content table.concert tr,.source-content table.concert td{display:block;width:100%!important}.source-content table.concert td{padding:22px}.concert .left img{width:min(100%,320px);display:block;margin:0 auto}.table-scroll{max-height:32rem}.breadcrumb{margin-bottom:24px}.announcement{padding:18px}}
@media(max-width:440px){.header-inner{padding:14px 16px;column-gap:12px}.brand{font-size:1.04rem}.page{padding:24px 16px 38px}.group-panel{padding:20px}.group-heading h2{font-size:1.2rem}.archive-link{padding:12px;font-size:.92rem}.index-card{padding:17px;gap:15px;align-items:start}.index-card>img{width:78px;aspect-ratio:1}.index-card strong{font-size:1rem}.index-card span span{font-size:.8rem}.card-arrow{font-size:1rem}.table-tools{flex-direction:column;gap:5px}.table-tools .scroll-hint{padding:0}.section-index{padding:16px}.competition-section>h3{font-size:1.1rem}.site-footer{font-size:.74rem}.source-content table.concert td{padding:16px}.email-address{font-size:.95rem}.announcement-source{padding:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.site-header,.site-footer,.breadcrumb,.table-tools,.skip-link{display:none}.page{width:100%;max-width:none;padding:0}.table-scroll{max-height:none;overflow:visible;border:0;width:100%}.record-table{min-width:0!important;font-size:8pt!important}.record-table th,.record-table td{position:static!important;min-width:0!important;padding:4px!important}.group-grid{display:block}.group-panel{display:block;break-inside:avoid;margin-bottom:20px}.source-content table.concert{break-inside:auto}}

@media(max-width:800px){
 .primary-nav a[aria-current]{border-bottom-color:transparent;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em}
 .record-table{font-size:.84375rem}.record-table th,.record-table td{padding:6px}
 .score-scroll{--year-width:2.5rem;--ensemble-width:3rem;--composer-width:7.5rem;--conductor-width:4.25rem;--award-width:5.5rem;--family-min:676px}
 .theme-ob .score-scroll{--award-width:3rem;--family-min:440px}
 .concert-report-hero{display:flex;flex-direction:column;gap:20px;align-items:stretch}.concert-report-hero figure{order:-1}.report-programs{grid-template-columns:1fr;gap:16px}.report-programs section{padding:18px}
 .concert-periods{grid-template-columns:1fr;gap:10px}.source-content .concert-periods ul{padding:10px}.source-content .concert-periods ul:nth-child(3){display:flex}
 .source-content table.concert td{padding:14px}.report-entry{padding:14px;gap:12px;grid-template-columns:minmax(0,1fr) auto}.report-entry>img{grid-column:1/-1}
}
