:root{--color-ink: #16293a;--color-ink-strong: #0d1c2a;--color-brand: #176b87;--color-brand-dark: #105169;--color-accent: #f2bd31;--color-surface: #ffffff;--color-canvas: #f6f8f5;--color-subtle: #eaf1ee;--color-text: #20303d;--color-muted: #5e6d76;--color-border: #cedad5;--color-success: #24734d;--color-warning: #a65e00;--color-danger: #ae3c3c;--color-info: #176b87;--shadow-soft: 0 12px 30px rgba(13, 28, 42, .08);--shadow-lift: 0 16px 34px rgba(13, 28, 42, .14);--radius-sm: .5rem;--radius-md: .875rem;--content-wide: 1120px;--content-reading: 820px;--space-section: clamp(4.5rem, 8vw, 7.5rem);--font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", Meiryo, sans-serif}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}body{min-width:320px;margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-sans);font-size:1rem;line-height:1.8;overflow-x:hidden}::selection{background:#f7dc8b;color:var(--color-ink-strong)}a{color:var(--color-brand-dark);text-underline-offset:.18em}a:hover{color:var(--color-ink-strong)}button,input,select,textarea{font:inherit}button,.btn,.nav-link,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.container{max-width:var(--content-wide)}.section{padding:var(--space-section) 0;position:relative}.section.bg-light,.calendar-section{background:var(--color-subtle)!important}.section-title{max-width:760px;margin:0 auto clamp(2.25rem,5vw,3.5rem);text-align:center}.section-title h2,.section>.container>h1{position:relative;display:inline-block;margin:0 0 .75rem;color:var(--color-ink);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800;letter-spacing:.035em;line-height:1.35}.section-title h2:after,.admin-heading:after{content:"";display:block;width:2.5rem;height:.28rem;margin:.9rem auto 0;border-radius:999px;background:var(--color-accent)}.section-title p{margin:0;color:var(--color-muted);font-size:clamp(.95rem,1.8vw,1.08rem)}.navbar{min-height:4.75rem;padding:.85rem 1.5rem;background:var(--color-ink)!important;box-shadow:0 1px #ffffff1f;transition:padding .16s ease,background-color .16s ease,box-shadow .16s ease}.navbar.fixed-top{background:#0d1c2af0!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.navbar.scrolled{padding-top:.55rem;padding-bottom:.55rem;background:#0d1c2afa!important;box-shadow:0 5px 20px #00000038}.navbar-brand{color:#fff!important;font-size:1.1rem;font-weight:800;letter-spacing:.04em}.navbar-brand:before{content:"KIZUNA";display:block;color:var(--color-accent);font-size:.62rem;font-weight:800;letter-spacing:.18em;line-height:1}.navbar-toggler{border-color:#ffffff8c;border-radius:var(--radius-sm);min-width:2.75rem;min-height:2.75rem}.navbar-toggler:focus{box-shadow:0 0 0 .2rem #f2bd31bf}.nav-link{margin:0;padding:.7rem .8rem!important;color:#ffffffd6!important;font-size:.9rem;font-weight:700}.nav-link:hover,.nav-link.active,.nav-link[aria-current=page]{color:#fff!important}.nav-link:after{content:"";display:block;width:0;height:2px;margin-top:.15rem;background:var(--color-accent);transition:width .16s ease}.nav-link:hover:after,.nav-link.active:after,.nav-link[aria-current=page]:after{width:100%}.hero-section{position:relative;display:grid;min-height:min(780px,100svh);padding:8.5rem 0 4.5rem;place-items:center;overflow:hidden;isolation:isolate;background:linear-gradient(90deg,#0d1c2af0,#0d1c2ad6 48%,#0d1c2a7a),url(/images/basketball-court.jpg) center 53% / cover no-repeat}.hero-section:before{content:"";position:absolute;z-index:-1;width:clamp(33rem,70vw,64rem);height:clamp(33rem,70vw,64rem);right:clamp(-28rem,-16vw,-10rem);bottom:clamp(-35rem,-25vw,-17rem);border:clamp(14px,2vw,28px) solid rgba(242,189,49,.76);border-radius:50%;box-shadow:0 0 0 clamp(1rem,2vw,2rem) #ffffff1a}.hero-section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(180deg,#0d1c2a1a,#0d1c2a47)}.hero-content{max-width:760px;margin-left:max(0px,calc((100% - var(--content-wide)) / 2));padding-right:2rem;text-align:left}.hero-kicker{display:inline-flex;margin-bottom:1rem;padding:.35rem .72rem;border:1px solid rgba(242,189,49,.72);border-radius:999px;color:#fff3c8;font-size:.82rem;font-weight:700;letter-spacing:.08em}.hero-section h1{max-width:13em;margin:0 0 1rem;color:#fff;font-size:clamp(2.55rem,6vw,5rem);font-weight:900;letter-spacing:.04em;line-height:1.2;text-shadow:0 2px 18px rgba(0,0,0,.4)}.hero-section h1 small{display:block;margin-bottom:.5rem;color:#fff3c8;font-size:.29em;font-weight:800;letter-spacing:.16em}.hero-section p{max-width:34rem;margin:0 0 2rem;color:#fffffff0;font-size:clamp(1.05rem,2.5vw,1.35rem);font-weight:500;line-height:1.75;text-shadow:0 1px 4px rgba(0,0,0,.35)}.btn{min-height:2.8rem;padding:.65rem 1.1rem;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.95rem;font-weight:800;letter-spacing:.025em;line-height:1.45;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0d1c2a29}.btn:active{transform:translateY(0)}.btn-lg{min-height:3.25rem;padding:.8rem 1.45rem;font-size:1rem}.btn-primary{background:var(--color-brand);border-color:var(--color-brand)}.btn-primary:hover,.btn-primary:focus{background:var(--color-brand-dark);border-color:var(--color-brand-dark)}.btn-success{background:var(--color-success);border-color:var(--color-success)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger)}.btn-secondary{background:var(--color-muted);border-color:var(--color-muted)}.btn-outline-primary{color:var(--color-brand-dark);border-color:var(--color-brand)}.btn-outline-primary:hover{background:var(--color-brand);border-color:var(--color-brand)}.btn-outline-secondary{color:var(--color-ink);border-color:#98a8ad}.btn-outline-secondary:hover{background:var(--color-ink);border-color:var(--color-ink)}.form-label{margin-bottom:.45rem;color:var(--color-ink);font-size:.92rem;font-weight:800}.form-control,.form-select{min-height:2.85rem;padding:.63rem .8rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background-color:#fff}textarea.form-control{min-height:auto}.form-control:focus,.form-select:focus{border-color:var(--color-brand);box-shadow:0 0 0 .22rem #176b872e}.form-control.is-invalid{border-color:var(--color-danger);box-shadow:0 0 0 .2rem #ae3c3c24}.form-control.is-valid{border-color:var(--color-success);box-shadow:0 0 0 .2rem #24734d24}.input-group-text{border-color:var(--color-border);background:var(--color-subtle);color:var(--color-brand-dark)}.form-check-input{width:1.15em;height:1.15em;border-color:#829299}.form-check-input:checked{background-color:var(--color-brand);border-color:var(--color-brand)}.field-error{color:var(--color-danger);font-size:.86rem;font-weight:700}.alert{border:1px solid transparent;border-left-width:4px;border-radius:var(--radius-sm);font-weight:600}.alert-info{border-color:#a7cad7;border-left-color:var(--color-info);background:#e9f4f7;color:var(--color-ink)}.alert-success{border-color:#afd4bd;border-left-color:var(--color-success);background:#edf8f0;color:#174b31}.alert-warning{border-color:#e4c67a;border-left-color:var(--color-warning);background:#fff8e7;color:#704100}.alert-danger{border-color:#e2aeae;border-left-color:var(--color-danger);background:#fff1f1;color:#742929}.home-page .section:first-of-type{background:var(--color-surface)}.home-page .table-responsive{border:1px solid var(--color-border);border-radius:var(--radius-md)}.home-page .table{margin:0;border-color:var(--color-border);vertical-align:middle}.home-page .table th{width:31%;padding:.9rem 1rem;color:var(--color-ink);background:var(--color-subtle)!important;font-size:.9rem;font-weight:800}.home-page .table td{padding:.9rem 1rem;color:var(--color-text)}.card,.contact-form,.login-form,.admin-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.card{overflow:visible;background:var(--color-surface)}.card:hover{transform:none;box-shadow:var(--shadow-soft)}.card-body{padding:clamp(1.3rem,3vw,2rem)}.card-title{color:var(--color-ink);font-size:1.15rem;font-weight:800}.home-page .section.bg-light .card{height:100%;border-top:4px solid var(--color-brand)}.home-page .section.bg-light .card-body{padding-top:2.2rem}.home-page .fa-users,.home-page .fa-basketball-ball,.home-page .fa-calendar-alt,.home-page .fa-check-circle{color:var(--color-brand)!important}.home-page .fa-exclamation-triangle{color:var(--color-warning)!important}.home-page .list-unstyled li{position:relative;padding:.42rem 0 .42rem 1.1rem}.home-page .list-unstyled li:before{content:"";position:absolute;top:1.18rem;left:0;width:.42rem;height:.42rem;border-radius:50%;background:var(--color-accent)}.section-divider,.section-divider-reverse{display:none}.calendar-section{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.fc{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-soft)}.fc .fc-toolbar{gap:.75rem;margin:0!important;padding:1rem;background:var(--color-ink);color:#fff}.fc .fc-toolbar-title{font-size:1.1rem;font-weight:800}.fc .fc-button-primary{border-color:#ffffffa6!important;border-radius:.35rem!important;background:transparent!important;color:#fff!important;box-shadow:none!important}.fc .fc-button-primary:hover,.fc .fc-button-primary:not(:disabled).fc-button-active{border-color:var(--color-accent)!important;background:var(--color-accent)!important;color:var(--color-ink-strong)!important}.fc .fc-day-today{background:#fff8df!important}.fc .fc-event{border:0!important;border-radius:.25rem;padding:.22rem .38rem;font-weight:700}.fc-theme-standard td,.fc-theme-standard th{border-color:var(--color-border)}.section.join-cta{background:var(--color-subtle)!important;color:var(--color-text)}.join-cta h2{color:var(--color-ink);font-weight:900}.join-cta p{color:var(--color-muted)}.join-cta .btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-ink-strong)}.join-cta .btn-primary:hover{background:#f8cf5d;border-color:#f8cf5d}.contact-form{background:#fff;padding:clamp(1.3rem,4vw,2.5rem)}.contact-form pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-subtle)!important;border-color:var(--color-border)!important;color:var(--color-text)}.contact-form summary{width:fit-content;color:var(--color-brand-dark);font-weight:800;cursor:pointer}.auth-page{display:flex;min-height:100vh;flex-direction:column;background:var(--color-subtle)}.auth-page .section{flex:1;display:flex;align-items:center}.auth-page .login-form{background:#fff;padding:clamp(1.5rem,5vw,2.5rem)}.login-form h1,.login-form h2{color:var(--color-ink);font-weight:900;font-size:1.7rem}.admin-page{background:var(--color-canvas)}.admin-page>.container,.admin-page>main.container{max-width:1200px}.admin-heading{color:var(--color-ink);font-weight:900;letter-spacing:.03em}.admin-heading:after{margin-left:auto;margin-right:auto}.admin-lead{color:var(--color-muted)}.admin-panel{height:100%;padding:clamp(1.1rem,3vw,1.75rem);background:#fff}.admin-panel h3{margin:0 0 1.25rem;padding:0 0 .8rem;border-bottom:2px solid var(--color-subtle);color:var(--color-ink);font-size:1.15rem;font-weight:900}.modal-content{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lift)}.modal-header{border-bottom-color:var(--color-border)}.modal-footer{border-top-color:var(--color-border)}footer{margin-top:0;padding:2.75rem 0 1.5rem;background:var(--color-ink)!important;color:#ffffffc7}footer h5{margin-bottom:.65rem;padding:0;color:#fff;font-size:1rem;font-weight:800}footer h5:after{display:none}footer a,footer .text-white{color:#fff!important}footer a:hover{color:#fff3c8!important}footer p{font-size:.9rem}.fade-in,.fade-in-left,.fade-in-right,.zoom-in{opacity:1;transform:none}#backToTopBtn{right:1.25rem;bottom:1.25rem;width:2.9rem;height:2.9rem;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:var(--color-brand);color:#fff;box-shadow:var(--shadow-lift)}#backToTopBtn:hover{background:var(--color-brand-dark);transform:translateY(-2px)}@media (max-width: 991.98px){.navbar-collapse{margin-top:.55rem;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.18)}.nav-link{padding:.6rem .15rem!important}.hero-content{margin-left:0;padding-right:4rem}.home-page .table th{width:37%}.fc .fc-toolbar{flex-wrap:wrap}}@media (max-width: 767.98px){.navbar{min-height:4.35rem;padding:.65rem 1rem}.hero-section{min-height:42rem;padding-top:7.5rem;background-position:56% center}.hero-section:before{right:-23rem;bottom:-25rem}.hero-content{padding:0 1.25rem}.hero-section p{max-width:24rem}.section{padding:clamp(3.75rem,12vw,5rem) 0}.section-title{margin-bottom:2.1rem}.home-page .table th,.home-page .table td{min-width:9.5rem;padding:.75rem}.home-page .table th{width:auto}.contact-form .d-sm-flex{flex-direction:column}.fc .fc-toolbar-title{font-size:1rem}.fc .fc-header-toolbar{align-items:center}.fc .fc-toolbar-chunk{display:flex;justify-content:center}.fc .fc-button{padding:.3rem .45rem;font-size:.78rem}footer{padding-top:2.25rem}}@media (max-width: 430px){.navbar-brand{font-size:.98rem}.hero-section{min-height:39rem}.hero-section h1{font-size:2.35rem}.btn-lg,.contact-form .btn-lg{width:100%}.fc .fc-toolbar{padding:.75rem .5rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
