*,:before,:after{box-sizing:border-box;margin:0;padding:0}picture{display:contents}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--navy:#1b3055;--red:#8c1c1c;--gold:#c9a227;--cream:#f5f0e4;--dark:#1a2744;--text:#2d2d2d;--muted:#666;--white:#fff;--border:#ddd;--font-serif:"Noto Serif JP", serif;--font-sans:"Noto Sans JP", sans-serif;--radius:4px;--shadow:0 4px 24px #0000001a;--transition:.25s ease}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);color:var(--text);background:var(--white);line-height:1.8;overflow-x:hidden}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}.container{max-width:1140px;margin:0 auto;padding:0 24px}.navbar{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1b2744f5;border-bottom:1px solid #c9a2274d;position:fixed;top:0;left:0;right:0}.nav-container{justify-content:space-between;align-items:center;gap:24px;max-width:1140px;height:64px;margin:0 auto;padding:0 24px;display:flex}.nav-brand{font-family:var(--font-serif);color:var(--cream);letter-spacing:.02em;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:600}.nav-links{align-items:center;gap:32px;display:flex}.nav-links a{color:#ffffffd9;letter-spacing:.04em;transition:color var(--transition);font-size:.82rem;font-weight:400;position:relative}.nav-links a:after{content:"";background:var(--gold);width:0;height:1px;transition:width var(--transition);position:absolute;bottom:-4px;left:0}.nav-links a:hover{color:var(--gold)}.nav-links a:hover:after{width:100%}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:28px;height:28px;padding:0;display:none}.nav-toggle span{background:var(--cream);width:100%;height:2px;transition:all var(--transition);border-radius:2px;display:block}.hero{padding-top:64px}.hero-img{width:100%;height:auto;display:block}.about{background:var(--white);padding:75px 0 100px}.about-layout{align-items:flex-start;gap:64px;display:flex}.about-left{flex-direction:column;flex:1;gap:40px;display:flex}.about-badge{width:200px;margin:0 auto}.about-badge img{width:100%;height:auto;display:block}.about-text{flex-direction:column;gap:16px;display:flex}.about-text p{color:#444;font-size:.9rem;line-height:2}.about-right{flex-shrink:0;width:380px}.about-circles{justify-content:center;align-items:center;display:flex}.uenoasakusa-img{width:100%;height:auto;display:block}.staff{background:var(--white);padding:100px 0}.staff-conductor{background:var(--dark);border-radius:20px;align-items:center;gap:48px;margin-bottom:64px;padding:48px 56px;display:flex}.staff-conductor-avatar{border:3px solid var(--gold);border-radius:50%;flex-shrink:0;width:160px;height:160px;overflow:hidden}.staff-conductor-avatar svg{width:100%;height:100%;display:block}.staff-conductor-info{flex-direction:column;flex:1;gap:10px;display:flex}.staff-role{letter-spacing:.12em;color:var(--dark);background:var(--gold);border-radius:2px;align-self:flex-start;padding:3px 12px;font-size:.72rem;font-weight:600;display:inline-block}.staff-name{font-family:var(--font-serif);color:var(--white);font-size:1.8rem;font-weight:700;line-height:1.2}.staff-name-en{color:#ffffff80;letter-spacing:.06em;font-size:.82rem;font-style:italic}.staff-bio{color:#ffffffbf;margin-top:4px;font-size:.86rem;line-height:2}.staff-sub-heading{font-family:var(--font-serif);color:var(--navy);border-left:3px solid var(--gold);margin-bottom:28px;padding-left:14px;font-size:1.1rem;font-weight:600}.staff-trainers{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.staff-trainer-card{background:var(--white);text-align:center;transition:transform var(--transition), box-shadow var(--transition);border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:32px 24px;display:flex;box-shadow:0 2px 16px #00000012}.staff-trainer-card:hover{transform:translateY(-4px);box-shadow:0 6px 28px #0000001f}.trainer-avatar{border:2px solid var(--border);border-radius:50%;width:96px;height:96px;margin-bottom:8px;overflow:hidden}.trainer-avatar svg{width:100%;height:100%;display:block}.trainer-part{letter-spacing:.08em;color:var(--gold);background:#c9a2271a;border-radius:2px;padding:2px 10px;font-size:.72rem;font-weight:600}.trainer-name{font-family:var(--font-serif);color:var(--navy);font-size:1.05rem;font-weight:700}.trainer-name-en{color:var(--muted);letter-spacing:.04em;font-size:.75rem;font-style:italic}.trainer-desc{color:#555;text-align:left;margin-top:4px;font-size:.8rem;line-height:1.8;display:none}.concerts{background:var(--dark);padding:80px 0}.concerts-grid{grid-template-columns:1fr 1fr;gap:48px;display:grid}.concerts-heading{font-family:var(--font-serif);color:var(--white);letter-spacing:.05em;border-bottom:2px solid var(--gold);margin-bottom:24px;padding-bottom:12px;font-size:1.35rem;font-weight:600;display:inline-block}.concerts-lead{color:#ffffffbf;margin-bottom:24px;font-size:.88rem;line-height:1.7}.ticket-form{flex-direction:column;gap:16px;display:flex}.ticket-closed{color:var(--gold);margin-bottom:16px;font-size:.9rem;font-weight:500}.ticket-form--disabled{opacity:.4;pointer-events:none}.ticket-form .ticket-submit{align-self:flex-start;margin-top:4px;padding:12px 40px}.concert-card{transition:background var(--transition);background:#ffffff0d;border:1px solid #ffffff1f;border-radius:8px;margin-bottom:20px;overflow:hidden}.concert-card:hover{background:#ffffff17}.concert-card-sm{margin-top:20px}.concert-card-photo svg,.concert-card-photo .concert-flyer{width:100%;display:block}.concert-card-photo .concert-flyer{object-fit:cover;object-position:top;height:220px}.concert-card-body{padding:24px}.concert-card-body h3{font-family:var(--font-serif);color:var(--white);margin:12px 0;font-size:1.1rem;font-weight:600}.concert-tag{background:var(--gold);color:var(--dark);letter-spacing:.05em;border-radius:2px;padding:3px 10px;font-size:.72rem;font-weight:500;display:inline-block}.concert-tag-record{border:1px solid var(--gold);color:var(--gold);background:0 0}.concert-meta{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.concert-meta li{color:#ffffffbf;align-items:flex-start;gap:8px;font-size:.85rem;line-height:1.6;display:flex}.meta-icon{flex-shrink:0}.btn-outline{color:var(--gold);border:1px solid var(--gold);transition:all var(--transition);letter-spacing:.04em;border-radius:2px;padding:8px 20px;font-size:.82rem;display:inline-block}.btn-outline:hover{background:var(--gold);color:var(--dark)}.section-heading{font-family:var(--font-serif);color:var(--navy);text-align:center;margin-bottom:48px;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;position:relative}.section-heading:after{content:"";background:var(--gold);border-radius:2px;width:48px;height:3px;margin:14px auto 0;display:block}.btn-secondary{color:var(--navy);border:1.5px solid var(--navy);letter-spacing:.05em;transition:all var(--transition);border-radius:2px;padding:12px 40px;font-size:.88rem;display:inline-block}.btn-secondary:hover{background:var(--navy);color:var(--white)}.records-more{text-align:left;margin-top:20px}.records-more .btn-secondary{color:#fffc;border-color:#fff6}.records-more .btn-secondary:hover{color:var(--white);border-color:var(--white);background:#ffffff1a}.join{background:var(--white);padding:100px 0}.section-lead{text-align:center;color:var(--muted);margin-top:-28px;margin-bottom:56px;font-size:.95rem}.join-grid{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:56px;display:grid}.join-item{text-align:center;border:1px solid var(--border);transition:box-shadow var(--transition), border-color var(--transition);border-radius:6px;padding:36px 20px}.join-item:hover{border-color:var(--gold);box-shadow:0 4px 20px #00000014}.join-icon{color:var(--gold);margin-bottom:16px;font-size:2.2rem}.join-item h3{font-family:var(--font-serif);color:var(--navy);margin-bottom:10px;font-size:.95rem;font-weight:600}.join-item p{color:var(--muted);font-size:.85rem;line-height:1.7}.join-cta{text-align:center}.btn-primary{color:var(--white);background:var(--navy);letter-spacing:.06em;cursor:pointer;transition:background var(--transition), transform var(--transition);border:none;border-radius:2px;padding:14px 44px;font-size:.9rem;font-weight:500;display:inline-block}.btn-primary:hover{background:#243d6a;transform:translateY(-1px)}.contact{background:var(--navy);padding:100px 0}.section-heading-light{color:var(--white)}.section-heading-light:after{background:var(--gold)}.contact-form{flex-direction:column;gap:24px;max-width:680px;margin:0 auto;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#ffffffd9;letter-spacing:.03em;font-size:.84rem;font-weight:500}.required{color:#e87878;font-weight:700}.form-group input,.form-group select,.form-group textarea{font-family:var(--font-sans);color:var(--text);border-radius:var(--radius);transition:border-color var(--transition), box-shadow var(--transition);appearance:none;background:#fffffff2;border:1px solid #ffffff4d;outline:none;width:100%;padding:12px 16px;font-size:.9rem}.form-group select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a2272e}.form-group textarea{resize:vertical;min-height:140px}.form-group input.input-error,.form-group select.input-error,.form-group textarea.input-error{background:#fff8f8;border-color:#c0392b}.form-error-msg{color:#c0392b;margin-top:4px;font-size:.78rem}.contact-form .btn-primary{align-self:center;padding:14px 56px;font-size:.95rem}.sns{background:var(--cream);padding:80px 0}.sns-links{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.sns-item{background:var(--white);box-shadow:var(--shadow);color:var(--text);border-radius:8px;flex-direction:column;align-items:center;gap:12px;min-width:200px;padding:40px 48px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.sns-item:hover{transform:translateY(-4px);box-shadow:0 8px 32px #00000026}.sns-icon{width:48px;height:48px;color:var(--navy)}.sns-icon svg{width:100%;height:100%}.sns-name{font-family:var(--font-serif);color:var(--navy);font-size:1rem;font-weight:600}.sns-handle{color:var(--muted);font-size:.82rem}.footer{background:#0f1a30;padding:56px 0 28px}.footer-inner{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:24px;padding-bottom:40px;display:flex}.footer-name-ja{font-family:var(--font-serif);color:var(--cream);margin-bottom:6px;font-size:.95rem;font-weight:600}.footer-name-en{color:#ffffff80;letter-spacing:.04em;font-size:.75rem}.footer-nav{flex-wrap:wrap;justify-content:flex-end;gap:8px 28px;display:flex}.footer-nav a{color:#fff9;transition:color var(--transition);font-size:.82rem}.footer-nav a:hover{color:var(--gold)}.footer-copy{color:#ffffff4d;text-align:center;letter-spacing:.03em;font-size:.75rem}.flyer-modal{z-index:1000;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.flyer-modal.is-open{display:flex}.flyer-modal-overlay{background:#000000bf;position:absolute;inset:0}.flyer-modal-content{z-index:1;border-radius:6px;max-width:min(480px,92vw);max-height:90vh;position:relative;overflow-y:auto}.flyer-modal-content img{border-radius:6px;width:100%;display:block}.flyer-modal-close{background:var(--white);cursor:pointer;z-index:2;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.3rem;line-height:1;display:flex;position:absolute;top:-16px;right:-16px;box-shadow:0 2px 8px #0000004d}.flyer-modal-close:hover{background:var(--cream)}.fade-in{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.fade-in.visible{opacity:1;transform:translateY(0)}@media (width<=1024px){.hero-inner{gap:36px;padding-left:100px}.hero-treble{font-size:7rem;left:12px}.mosaic-grid{grid-template-rows:repeat(3,96px);grid-template-columns:repeat(3,96px)}.join-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.nav-toggle{display:flex}.nav-links{background:#1b2744fa;flex-direction:column;gap:0;padding:16px 0;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{padding:12px 24px;font-size:.9rem;display:block}.nav-links a:after{display:none}.hero{padding:64px 0 0}.hero-treble{opacity:.4;font-size:5rem;left:6px}.hero-inner{flex-direction:column;align-items:flex-start;gap:28px;padding-left:80px}.mosaic-grid{grid-template-rows:repeat(3,80px);grid-template-columns:repeat(3,80px);gap:3px}.cell-kanji{font-size:1.5rem}.hero-city-circle{width:150px;height:95px}.about-layout{flex-direction:column;gap:40px}.about-right{width:100%}.staff-conductor{text-align:center;border-radius:16px;flex-direction:column;align-items:center;padding:36px 28px}.staff-conductor-info{align-items:center}.staff-role{align-self:center}.staff-trainers{grid-template-columns:1fr 1fr}.concerts-grid{grid-template-columns:1fr}.join-grid{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.footer-inner{flex-direction:column;gap:24px}.footer-nav{justify-content:flex-start}}@media (width<=480px){.hero-inner{padding-left:60px}.mosaic-grid{grid-template-rows:repeat(3,68px);grid-template-columns:repeat(3,68px)}.cell-kanji{font-size:1.2rem}.program-grid,.join-grid,.staff-trainers{grid-template-columns:1fr}.hero-treble{font-size:4rem}.records-more{text-align:center}}.site-icon{vertical-align:-.2em;width:1.1em;height:1.1em;color:var(--gold);flex-shrink:0;margin-right:.1em;display:inline-block}
