:root{--tc-cream: #fbf6ef;--tc-paper: #fffdf9;--tc-ink: #1b1b1f;--tc-muted: #5f5b57;--tc-navy: #1f3160;--tc-peach: #f6c7a8;--tc-peach-soft: #fbe6d8;--tc-line: #e8dfd3;--tc-control-border: #8c8276;--bs-body-font-family: "Nunito", system-ui, sans-serif;--bs-body-color: var(--tc-ink);--bs-body-bg: var(--tc-cream)}html{scroll-behavior:smooth}body{background:var(--tc-cream);color:var(--tc-ink)}section{scroll-margin-top:80px}:focus-visible,.btn:focus-visible,.nav-link:focus-visible,.navbar-toggler:focus-visible{outline:3px solid var(--tc-navy);outline-offset:3px;box-shadow:none}.contact :focus-visible,.contact .btn:focus-visible,#lightbox :focus-visible{outline-color:#fff}main:focus{outline:none}.skip-link{position:absolute;top:.5rem;left:.5rem;z-index:1100;background:var(--tc-ink);color:#fff;padding:.6rem 1rem;border-radius:.5rem;font-weight:700;text-decoration:none}.script{font-family:Allura,cursive;font-weight:400;line-height:1}.navbar{background:#fbf6efeb;backdrop-filter:blur(8px);border-bottom:1px solid var(--tc-line)}.navbar-brand img{height:44px;width:auto}.navbar-brand span{font-size:2rem;color:var(--tc-ink)}.nav-link{font-weight:600;color:var(--tc-ink)}.nav-link:hover,.nav-link:focus{color:var(--tc-navy)}.hero{padding:4rem 0 3rem}.hero-logo{width:min(100%,420px);height:auto}.hero h1{font-size:clamp(3rem,8vw,5rem)}.hero .lead{color:var(--tc-muted);max-width:32rem}.btn-tc{--bs-btn-bg: var(--tc-ink);--bs-btn-color: #fff;--bs-btn-border-color: var(--tc-ink);--bs-btn-hover-bg: var(--tc-navy);--bs-btn-hover-border-color: var(--tc-navy);--bs-btn-hover-color: #fff;--bs-btn-active-bg: var(--tc-navy);--bs-btn-active-border-color: var(--tc-navy);border-radius:999px;padding:.6rem 1.5rem;font-weight:700}.btn-tc-outline{--bs-btn-color: var(--tc-ink);--bs-btn-border-color: var(--tc-ink);--bs-btn-hover-bg: var(--tc-ink);--bs-btn-hover-color: #fff;--bs-btn-hover-border-color: var(--tc-ink);--bs-btn-active-bg: var(--tc-ink);--bs-btn-active-color: #fff;border-radius:999px;padding:.6rem 1.5rem;font-weight:700}.stitch{border:0;border-top:2px dashed var(--tc-line);opacity:1;margin:0}.section-title{font-size:clamp(2.75rem,6vw,3.75rem)}.section-sub{color:var(--tc-muted)}.announcement-card{background:var(--tc-paper);border:1px solid var(--tc-line);border-radius:1.25rem;box-shadow:0 1px 2px #0000000f,0 4px 16px #0000000d}.announcement-poster{width:100%;max-width:320px;height:auto;border-radius:.75rem;box-shadow:0 4px 18px #00000026;transition:transform .3s ease}.announcement-card a:hover .announcement-poster{transform:rotate(-1.5deg) scale(1.02)}.announcement-tag{display:inline-block;background:var(--tc-peach-soft);color:var(--tc-ink);border-radius:999px;padding:.3rem .9rem;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}.announcement-details li{display:flex;gap:.75rem;align-items:baseline;margin-bottom:.5rem}.announcement-details i{width:1.25rem;text-align:center;color:var(--tc-navy);flex-shrink:0}@media(max-width:767.98px){.announcement-details li{justify-content:center;text-align:left}}.filters .btn{border-radius:999px;font-weight:600;border:1px solid var(--tc-control-border);background:var(--tc-paper);color:var(--tc-ink);padding:.4rem 1.1rem}.filters .btn:hover{border-color:var(--tc-ink)}.filters .btn.active{background:var(--tc-ink);color:#fff;border-color:var(--tc-ink)}.gallery{column-count:1;column-gap:1rem}@media(min-width:576px){.gallery{column-count:2}}@media(min-width:992px){.gallery{column-count:3}}@media(min-width:1400px){.gallery{column-count:4}}.gallery-item{break-inside:avoid;margin-bottom:1rem;position:relative;display:block;width:100%;border:0;padding:0;background:var(--tc-paper);border-radius:1rem;overflow:hidden;box-shadow:0 1px 2px #0000000f,0 4px 16px #0000000d;cursor:zoom-in;text-align:left}.gallery-item img{width:100%;height:auto;display:block;transition:transform .4s ease}.gallery-item figcaption{position:absolute;inset:auto 0 0;padding:2rem 1rem .8rem;background:linear-gradient(to top,rgba(15,20,40,.75),transparent);color:#fff;font-weight:700;opacity:0;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease}.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.04)}.gallery-item:hover figcaption,.gallery-item:focus-visible figcaption{opacity:1;transform:none}@media(hover:none){.gallery-item figcaption{opacity:1;transform:none}}.gallery-item.d-none{display:none!important}#lightbox .modal-content{background:transparent;border:0}#lightbox .modal-body{position:relative;padding:0;text-align:center}#lightbox img{max-height:82vh;max-width:100%;border-radius:.75rem}#lightbox .lb-caption{color:#fff;font-weight:700;margin-top:.75rem}.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:#ffffffe6;color:var(--tc-ink);display:grid;place-items:center;box-shadow:0 2px 10px #00000040}.lb-btn:hover{background:#fff}.lb-prev{left:.5rem}.lb-next{right:.5rem}.lb-close{position:absolute;top:-3rem;right:0;background:none;border:0;color:#fff;font-size:1.75rem}.about-card{background:var(--tc-paper);border:1px solid var(--tc-line);border-radius:1.25rem}.feature-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--tc-peach-soft);color:var(--tc-ink);font-size:1.25rem;flex-shrink:0}.contact{background:var(--tc-navy);color:#fff}.contact .section-sub{color:#fffc}.contact .btn-tc{--bs-btn-bg: #fff;--bs-btn-color: var(--tc-navy);--bs-btn-border-color: #fff;--bs-btn-hover-bg: var(--tc-peach);--bs-btn-hover-border-color: var(--tc-peach);--bs-btn-hover-color: var(--tc-ink)}.social a{width:46px;height:46px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.4);text-decoration:none;transition:background .2s}.social a:hover{background:#ffffff26}footer{background:var(--tc-ink);color:#ffffffb3;font-size:.9rem}footer a{color:#fff}footer a:hover,footer a:focus-visible{color:var(--tc-peach)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-item img,.gallery-item figcaption,.announcement-poster{transition:none}.announcement-card a:hover .announcement-poster{transform:none}}
