:root {
  --ink: #17232b;
  --muted: #6a777d;
  --cream: #fff9ed;
  --paper: #fffdf8;
  --orange: #e85d3f;
  --orange-dark: #be432d;
  --blue: #173f5f;
  --teal: #2a9d8f;
  --line: #eadfce;
  --shadow: 0 18px 45px rgba(35, 47, 52, .12);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--cream);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--cream); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.site-header { align-items: center; background: var(--cream); border-bottom: 1px solid var(--line); display: flex; flex-wrap: nowrap; gap: 12px; justify-content: space-between; padding: 10px max(18px,calc((100vw - 1180px)/2 + 18px)); position: sticky; top: 0; z-index: 40; }
.brand { align-items: center; display: flex; font-size: 1.12rem; font-weight: 900; gap: 9px; letter-spacing: -.03em; }
.brand-mark { align-items: center; background: var(--orange); border-radius: 12px; color: white; display: inline-flex; height: 32px; justify-content: center; transform: rotate(-8deg); width: 32px; }
.desktop-nav { display: none; gap: 28px; font-size: .9rem; font-weight: 700; }
.header-action { background: var(--blue); border-radius: 999px; color: white; font-size: .78rem; font-weight: 800; padding: 10px 14px; }
.header-action.player-account { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 14px; flex-shrink: 0; }
.player-piece { width: 28px; height: 28px; fill: currentColor; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.header-action.player-account:hover { background: var(--teal); }
.header-action:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.header-tools { align-items: center; display: flex; flex: 0 0 auto; gap: 8px; margin-left: auto; }
.menu-toggle { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; color: var(--blue); cursor: pointer; display: inline-flex; font-size: 1.25rem; height: 40px; justify-content: center; width: 40px; }
.mobile-menu { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); padding: 8px; position: fixed; right: max(18px,calc((100vw - 1180px)/2 + 18px)); top: calc(var(--site-header-height,64px) + 8px); width: min(260px, calc(100vw - 36px)); z-index: 45; }
.mobile-menu a, .mobile-menu button { align-items: center; background: transparent; border: 0; border-radius: 12px; color: var(--ink); cursor: pointer; display: flex; font-size: .9rem; font-weight: 800; gap: 10px; padding: 13px 14px; text-align: left; width: 100%; }
.mobile-menu a:hover, .mobile-menu button:hover { background: #fff3df; }
.menu-toggle{width:44px;height:44px;font-size:28px;line-height:1}
.mobile-menu{max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain}
.menu-organizer{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.menu-organizer p{margin:6px 14px 8px;font-size:12px;color:var(--muted);line-height:1.5}
.menu-organizer strong{display:block;color:var(--blue);font-size:13px;overflow-wrap:anywhere}
.page-shell { margin: 0 auto; max-width: 1180px; padding: 0 18px 32px; }
.program-switch { display: flex; gap: 6px; padding: 5px; background: var(--line); border-radius: 16px; margin-bottom: 18px; }
.program-switch button { flex: 1; min-height: 44px; border: 0; border-radius: 12px; background: transparent; color: var(--blue); font-weight: 800; cursor: pointer; }
.program-switch button[aria-pressed="true"] { background: var(--blue); color: white; }
.schedule-hint { font-size: .82rem; color: var(--muted); line-height: 1.5; }
.schedule-scroll { width: max-content; max-width: 100%; overflow: auto; max-height: 70vh; border: 1px solid var(--line); border-radius: 16px; }
.schedule-table { border-collapse: separate; border-spacing: 0; width: max-content; font-size: .85rem; }
.schedule-table caption { text-align: left; padding: 12px; background: var(--paper); font-weight: 800; }
.schedule-table th, .schedule-table td { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 8px; vertical-align: top; }
.schedule-table thead th { position: sticky; top: 0; z-index: 2; background: var(--blue); color: white; padding: 14px 10px; white-space: nowrap; }
.schedule-table tbody th { position: sticky; left: 0; z-index: 1; background: var(--cream); color: var(--orange-dark); min-width: 58px; }
.schedule-table thead th:first-child { left: 0; z-index: 3; }
.schedule-table td, .schedule-table thead th:not(:first-child) { box-sizing: border-box; width: 257px; min-width: 257px; max-width: 257px; }
.schedule-table td { background: var(--paper); }
.schedule-event { width: 240px; max-width: 100%; box-sizing: border-box; background: #eef7f4; border-left: 3px solid var(--teal); border-radius: 14px; padding: 9px 11px; margin-bottom: 6px; }
.schedule-event:last-child { margin-bottom: 0; }
.schedule-event h3 { font-size: .85rem; line-height: 1.3; margin: 4px 0; overflow-wrap: anywhere; }
.schedule-event p { color: var(--muted); font-size: .75rem; line-height: 1.3; margin: 4px 0 0; overflow-wrap: anywhere; }
.schedule-event-time { color: var(--teal); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.schedule-event .button { min-height: 44px; background: var(--blue); color: white; padding: 10px; font-size: .75rem; }
.schedule-event.activity-selected { box-shadow: inset 0 0 0 2px var(--teal); }
.schedule-empty { color: var(--muted); }
.program-switch button:focus-visible, .schedule-scroll:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.loading-state, .empty-state { align-items: center; color: var(--muted); display: flex; flex-direction: column; justify-content: center; min-height: 50vh; text-align: center; }
.loader { animation: spin .8s linear infinite; border: 3px solid var(--line); border-radius: 50%; border-top-color: var(--orange); height: 30px; width: 30px; }
@keyframes spin { to { transform: rotate(360deg); } }
.hero { border-radius: 0 0 34px 34px; color: white; display: grid; gap: 30px; margin: 0 -18px 48px; overflow: hidden; padding: 58px 28px 42px; position: relative; background: radial-gradient(circle at 85% 20%, rgba(255, 200, 120, .4), transparent 30%), linear-gradient(135deg, #173f5f 0%, #225d67 52%, #e85d3f 150%); }
.hero::after { background: repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 2px, transparent 2px 12px); content: ""; inset: 0; opacity: .35; pointer-events: none; position: absolute; }
.hero > * { position: relative; z-index: 1; }
.eyebrow { color: #ffca87; font-size: .75rem; font-weight: 900; letter-spacing: .16em; margin: 0 0 14px; text-transform: uppercase; }
.hero h1 { font-size: clamp(3.2rem, 14vw, 7rem); letter-spacing: -.08em; line-height: .84; margin: 0; max-width: 760px; }
.hero h1 span { color: #ffb35e; }
.hero-copy { color: rgba(255,255,255,.82); font-size: 1.05rem; line-height: 1.55; margin: 20px 0 0; max-width: 510px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.join-camp { display: flex; align-items: center; gap: 14px; width: 100%; max-width: 360px; min-height: 76px; padding: 14px 18px; border: 1px solid #ffda9e; border-radius: 20px; background: linear-gradient(120deg, #ffcc83, #ffb35e); color: #362016; box-shadow: 0 8px 22px rgba(0,0,0,.15); cursor: pointer; font-weight: 900; font-size: 1rem; text-align: left; }
.join-camp small { display: block; margin-top: 4px; font-size: .75rem; font-weight: 500; }
.join-camp > span:last-child { margin-left: auto; }
.join-camp:hover { background: #ffd393; }
.join-camp:focus-visible { outline: 3px solid white; outline-offset: 4px; }
.join-camp:disabled { cursor: wait; }
.join-die { display: grid; place-items: center; flex: 0 0 44px; height: 44px; color: #173f5f; font-size: 30px; line-height: 1; transform: rotate(-8deg); }
.button { border: 0; border-radius: 999px; cursor: pointer; display: inline-flex; font-size: .85rem; font-weight: 900; justify-content: center; padding: 13px 18px; }
.button-primary { background: #ffb35e; color: #362016; }
.button-secondary { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); color: white; }
.section { margin: 44px 0; }
.section-heading { align-items: end; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 18px; }
.section-heading h2 { font-size: clamp(1.65rem, 5vw, 2.4rem); letter-spacing: -.05em; line-height: 1; margin: 0; }
.section-heading p { color: var(--muted); font-size: .9rem; line-height: 1.45; margin: 0; max-width: 440px; }
.camp-grid { display: grid; gap: 16px; }
.camp-card { background: var(--paper); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 8px 24px rgba(35,47,52,.05); display: flex; flex-direction: column; min-height: 270px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.camp-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.camp-card-top { background: linear-gradient(135deg, var(--blue), #2a9d8f); color: white; min-height: 118px; padding: 20px; position: relative; }
.camp-card-top::after { content: "✦  ✧  ✦"; font-size: 2.4rem; opacity: .22; position: absolute; right: 16px; top: 18px; }
.camp-card-top h3 { font-size: 1.45rem; letter-spacing: -.05em; margin: 10px 0 0; }
.camp-card-body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 18px 20px 20px; }
.camp-meta { color: var(--muted); display: flex; flex-wrap: wrap; font-size: .82rem; gap: 8px 14px; }
.camp-meta strong { color: var(--ink); }
.camp-card-body .button { align-self: flex-start; margin-top: auto; }
.pill { background: rgba(42,157,143,.12); border-radius: 999px; color: #1d796f; display: inline-flex; font-size: .68rem; font-weight: 900; padding: 6px 9px; text-transform: uppercase; }
.category-row, .filter-row { display: flex; gap: 9px; overflow-x: auto; padding: 4px 0 12px; scrollbar-width: none; }
.category-row::-webkit-scrollbar, .filter-row::-webkit-scrollbar { display: none; }
.category-chip, .filter-chip { background: var(--paper); border: 1px solid var(--line); border-radius: 999px; color: var(--ink); flex: 0 0 auto; font-size: .8rem; font-weight: 800; padding: 10px 13px; }
.filter-chip { cursor: pointer; }
.filter-chip.active { background: var(--blue); border-color: var(--blue); color: white; }
.camp-hero { border-radius: 0 0 32px 32px; color: white; margin: 0 -18px 30px; overflow: hidden; padding: 26px 24px 30px; position: relative; background: linear-gradient(135deg, #173f5f, #2a9d8f); }
.camp-hero::before { content: ""; inset: 0; opacity: .25; position: absolute; background: radial-gradient(circle at 80% 20%, #ffb35e, transparent 28%), repeating-linear-gradient(125deg, transparent 0 18px, rgba(255,255,255,.12) 19px 20px); }
.camp-hero > * { position: relative; z-index: 1; }
.back-link { color: rgba(255,255,255,.78); display: inline-block; font-size: .84rem; font-weight: 800; margin-bottom: 34px; }
.camp-hero h1 { font-size: clamp(2.5rem, 10vw, 5.6rem); letter-spacing: -.08em; line-height: .88; margin: 0; max-width: 760px; }
.camp-subtitle { color: rgba(255,255,255,.86); font-size: 1.05rem; line-height: 1.45; margin: 16px 0 20px; max-width: 540px; }
.camp-info { display: flex; flex-wrap: wrap; font-size: .82rem; gap: 8px 18px; }
.camp-info span { align-items: center; display: inline-flex; gap: 6px; }
.camp-hero.player-hero { padding: 24px; border-radius: 0 0 24px 24px; }
.player-hero .back-link { margin-bottom: 22px; }
.player-hero h1 { font-size: clamp(1.8rem, 7vw, 3rem); line-height: 1.15; letter-spacing: -.04em; overflow-wrap: anywhere; }
.player-hero .camp-info { margin-top: 18px; gap: 10px 18px; }
.player-hero .eyebrow { line-height: 1.5; }
.player-hero .camp-registration-status { border-radius: 16px; line-height: 1.6; overflow-wrap: anywhere; }
.camp-registration-status { background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); border-radius: 999px; color: white; font-size: .82rem; font-weight: 900; padding: 12px 16px; }
.now-panel { background: #172b38; border-radius: 26px; color: white; margin: 0 0 32px; overflow: hidden; padding: 22px; }
.now-panel .section-heading { margin-bottom: 12px; }
.now-panel .section-heading h2 { color: white; font-size: 1.5rem; }
.now-panel .section-heading p { color: rgba(255,255,255,.62); }
.now-list { display: grid; gap: 10px; }
.now-item { align-items: center; background: rgba(255,255,255,.08); border-radius: 16px; display: flex; gap: 14px; padding: 13px; }
.now-item strong { display: block; font-size: .95rem; }
.now-item small { color: rgba(255,255,255,.62); display: block; margin-top: 3px; }
.now-time { color: #ffb35e; font-size: .78rem; font-weight: 900; min-width: 42px; }
/* Each day header stays at the top until the next day replaces it. */
.program-day > summary { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 12px; background: var(--cream); color: var(--blue); border-bottom: 1px solid var(--line); cursor: pointer; list-style: none; }
.program-day > summary::-webkit-details-marker { display: none; }
.program-day + .program-day { border-top: 1px solid var(--line); }
.program-day > summary strong { font-size: .9rem; }
.program-day-count { margin-left: auto; color: var(--muted); font-size: .75rem; }
.program-day-chevron { width: 8px; height: 8px; margin: 0 3px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.program-day[open] > summary .program-day-chevron { transform: rotate(45deg); }
.program-day > summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
@media print { .program-day > summary { position: static; } }
.timeline { display: grid; gap: 12px; }
.program-frame { border: 1px solid var(--line); border-top: 0; border-radius: 0 0 16px 16px; }
.program-column-headings { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 9px; padding: 14px 8px; background: var(--blue); color: white; border-radius: 15px 15px 0 0; font-size: .85rem; }
.program-column-headings strong { position: relative; text-align: center; }
.program-column-headings strong + strong::before { content: ''; position: absolute; left: -5px; top: -14px; bottom: -14px; border-left: 1px solid var(--line); }
.program-frame .timeline { padding: 8px; }
.program-frame .activity-stack { min-width: 0; }
.time-block { display: grid; gap: 9px; grid-template-columns: 58px 1fr; }
.time-label { color: var(--orange-dark); font-size: .8rem; font-weight: 900; padding-top: 18px; text-align: center; }
.activity-stack { display: grid; gap: 9px; }
.activity-card { background: var(--paper); border: 1px solid var(--line); border-radius: 19px; padding: 16px; }
.activity-card.activity-selected { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(42,157,143,.1); }
.activity-card h3 { font-size: 1.02rem; letter-spacing: -.025em; margin: 8px 0 7px; }
.activity-card p { color: var(--muted); font-size: .83rem; line-height: 1.45; margin: 0 0 11px; }
.activity-card .meta-line { color: var(--muted); display: flex; flex-wrap: wrap; font-size: .77rem; gap: 7px 13px; }
.activity-card .meta-line span { align-items: center; display: inline-flex; gap: 4px; }
.activity-card-footer { align-items: center; display: flex; gap: 10px; justify-content: space-between; margin-top: 14px; }
.activity-card-footer .button { background: var(--blue); color: white; font-size: .73rem; padding: 9px 12px; }
.activity-card-footer .button[disabled] { background: #d7d0c5; color: #766f66; cursor: not-allowed; }
.activity-card.activity-selected .activity-card-footer .button { background: var(--teal); color: white; }
.itinerary-note { background: #eef7f4; border-radius: 14px; color: #1d796f; font-size: .84rem; font-weight: 900; margin: -4px 0 14px; padding: 11px 14px; }
.notice { background: #fff0d4; border: 1px solid #f2d29a; border-radius: 16px; color: #75501d; font-size: .86rem; line-height: 1.45; padding: 14px 16px; }
.footer-note { color: var(--muted); font-size: .82rem; line-height: 1.55; margin-top: 50px; text-align: center; }
.footer-note span { display: inline-block; font-size: .74rem; margin-top: 8px; }
.footer-note a { color: inherit; text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 3px; }
.modal-backdrop { align-items: center; background: rgba(13, 28, 36, .68); display: flex; inset: 0; justify-content: center; padding: 18px; position: fixed; z-index: 50; }
.modal { background: var(--paper); border-radius: 26px; box-shadow: var(--shadow); max-height: min(780px, 92vh); max-width: 540px; overflow: auto; padding: 24px; position: relative; width: 100%; }
.modal h2 { font-size: 1.8rem; letter-spacing: -.05em; margin: 0 0 8px; }
.modal-intro { color: var(--muted); font-size: .88rem; line-height: 1.45; margin: 0 0 20px; }
.modal-close { background: transparent; border: 0; color: var(--muted); cursor: pointer; font-size: 1.5rem; position: absolute; right: 17px; top: 12px; }
.form-grid { display: grid; gap: 12px; }
.form-field { display: grid; gap: 6px; }
.hidden { display: none !important; }
.form-field label { font-size: .77rem; font-weight: 900; }
.form-field input, .form-field select { background: white; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); padding: 12px; width: 100%; }
.form-field input:focus, .form-field select:focus { border-color: var(--orange); outline: 3px solid rgba(232,93,63,.14); }
.form-submit { background: var(--orange); border: 0; border-radius: 999px; color: white; cursor: pointer; font-weight: 900; padding: 13px 18px; }
.form-switch { color: var(--blue); cursor: pointer; font-size: .8rem; font-weight: 800; text-align: center; }
.account-list { display: grid; gap: 10px; margin-top: 16px; }
.account-item { background: #fff7e9; border: 1px solid var(--line); border-radius: 15px; padding: 13px; }
.account-item strong, .account-item small { display: block; }
.account-item small { color: var(--muted); margin-top: 4px; }
.price-summary { background: #eef7f4; border-radius: 15px; display: flex; justify-content: space-between; margin: 15px 0; padding: 14px; }
.payment-result-page { align-items: center; display: flex; justify-content: center; min-height: 100vh; padding-bottom: 30px; }
.payment-result-card { text-align: center; }
.payment-result-card .button { margin-top: 14px; }
.gamer-backdrop { background: rgba(13,28,36,.68); backdrop-filter: blur(8px); padding: 12px; }
.modal.gamer-panel { background: var(--cream); color: var(--ink); border: 1px solid var(--line); max-width: 640px; padding: 0 22px 22px; max-height: 92dvh; border-radius: 24px; overscroll-behavior: contain; }
.gamer-topbar { display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1; background: var(--cream); padding: 12px 0; border-bottom: 1px solid var(--line); font-size: .74rem; font-weight: 900; letter-spacing: .14em; color: var(--blue); }
.gamer-close { background: var(--blue); color: white; border: 1px solid var(--blue); border-radius: 12px; width: 44px; height: 44px; font-size: 1.5rem; cursor: pointer; }
.gamer-profile { display: flex; align-items: center; gap: 16px; padding: 26px 0; }
.gamer-profile > div:last-child { min-width: 0; }
.gamer-avatar { display: grid; place-items: center; flex: 0 0 66px; height: 66px; border-radius: 20px; background: linear-gradient(140deg,#ffca87,#ffb35e); color: var(--blue); font-size: 50px; transform: rotate(-7deg); box-shadow: 5px 5px 0 #eadfce; }
.gamer-kicker { display: block; color: var(--muted); letter-spacing: .09em; font-size: .65rem; font-weight: 800; line-height: 1.5; margin: 0 0 5px; }
.gamer-profile h2 { margin: 0; font-size: clamp(1.5rem,6vw,2.3rem); letter-spacing: -.04em; line-height: 1.15; overflow-wrap: anywhere; }
.gamer-online { color: #1d796f; font-size: .75rem; margin: 8px 0 0; }
.gamer-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.gamer-stats > div { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 14px 6px; text-align: center; }
.gamer-stats strong { display: block; font-size: 1.6rem; color: #1d796f; }
.gamer-stats span { display: block; color: var(--blue); font-size: .66rem; line-height: 1.4; margin-top: 4px; }
.gamer-section { margin-top: 26px; }
.gamer-section > h2 { font-size: 1.15rem; margin: 0 0 12px; letter-spacing: -.02em; }
.gamer-pass { background: linear-gradient(130deg,var(--paper),#fff3df); border: 1px solid var(--line); border-radius: 18px; padding: 18px; margin-bottom: 12px; }
.gamer-pass-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.gamer-pass h3 { font-size: 1.2rem; margin: 14px 0 10px; overflow-wrap: anywhere; }
.gamer-pass p, .gamer-quest p, .gamer-empty p { font-size: .8rem; color: var(--muted); line-height: 1.6; margin: 5px 0; }
.gamer-badge { display: inline-block; border: 1px solid #f2d29a; color: #75501d; background: #fff0d4; border-radius: 7px; font-size: .65rem; padding: 5px 8px; font-weight: 800; }
.gamer-badge.is-ready { color: #1d796f; background: #eef7f4; border-color: #b9dbd0; }
.gamer-action { display: flex; justify-content: space-between; align-items: center; min-height: 46px; border-radius: 11px; padding: 12px; background: #ffb35e; color: #362016; font-size: .83rem; font-weight: 900; margin-top: 16px; gap: 10px; }
.gamer-receipt { border-top: 1px dashed var(--line); margin-top: 16px; overflow-wrap: anywhere; }
.gamer-receipt summary { min-height: 44px; padding: 14px 0; color: var(--blue); font-size: .76rem; cursor: pointer; }
.gamer-quest { display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.gamer-time { padding-top: 3px; color: var(--orange-dark); }
.gamer-time strong, .gamer-time small { display: block; }
.gamer-time small { margin-top: 5px; color: var(--muted); font-size: .7rem; }
.gamer-quest h3 { margin: 0 0 5px; font-size: .95rem; overflow-wrap: anywhere; }
.gamer-quest .gamer-badge { margin-top: 7px; }
.gamer-empty { padding: 20px; background: var(--paper); border: 1px dashed var(--line); border-radius: 16px; }
.gamer-empty strong { font-size: .9rem; }
.gamer-logout { width: 100%; min-height: 46px; margin-top: 26px; background: transparent; border: 1px solid var(--line); border-radius: 12px; color: var(--blue); cursor: pointer; }
.gamer-panel :focus-visible { outline: 2px solid var(--orange-dark); outline-offset: 3px; }
.gamer-alias-form { margin: 18px 0; padding: 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; }
.gamer-alias-form label { display: block; margin-bottom: 10px; font-weight: 800; color: var(--blue); }
.gamer-alias-controls { display: flex; gap: 8px; align-items: stretch; }
.gamer-alias-controls input { flex: 1; width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: white; color: var(--ink); font: inherit; font-size: 16px; }
.gamer-alias-controls button { min-height: 46px; border: 0; border-radius: 10px; padding: 10px 14px; background: #ffb35e; color: #362016; font: inherit; font-size: .85rem; font-weight: 800; cursor: pointer; }
.gamer-alias-controls button:disabled { opacity: .65; cursor: wait; }
.gamer-alias-form p { font-size: .78rem; line-height: 1.5; color: var(--muted); margin: 10px 0 0; }
.gamer-alias-form #player-alias-status { color: #1d796f; }
.gamer-alias-form #player-alias-status.is-error { color: var(--orange-dark); }
.gamer-alias-form #player-alias-status:empty { display: none; }
#player-title { overflow-wrap: anywhere; }
@media (max-width: 480px) { .gamer-alias-controls { flex-direction: column; } .gamer-alias-controls button { width: 100%; } }
@media (max-width: 480px) {
  .gamer-backdrop { padding: 0; }
  .modal.gamer-panel { height: 100dvh; max-height: 100dvh; border-radius: 0; border: 0; padding: env(safe-area-inset-top) 18px max(22px,env(safe-area-inset-bottom)); }
}
.bottom-nav { display: none; }
.bottom-nav a { align-items: center; color: var(--muted); display: flex; flex-direction: column; font-size: .63rem; font-weight: 800; gap: 3px; padding: 4px 2px; }
.bottom-nav a span { font-size: 1.1rem; }
.bottom-nav .now-nav { color: var(--orange-dark); transform: translateY(-9px); }
.bottom-nav .now-nav span { align-items: center; background: var(--orange); border: 5px solid var(--cream); border-radius: 50%; color: white; display: flex; height: 46px; justify-content: center; width: 46px; }
@media (min-width: 720px) {
  .site-header { padding: 18px max(42px,calc((100vw - 1180px)/2 + 42px)); }
  .desktop-nav { display: flex; }
  .page-shell { padding: 0 42px 70px; }
  .hero { border-radius: 0 0 42px 42px; grid-template-columns: 1.3fr .7fr; margin: 0 -42px 70px; padding: 100px 70px 80px; }
  .hero::before { align-self: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; content: ""; background: url("ludicamp-icon.png") center / contain no-repeat; display: flex; font-size: 8rem; height: 270px; justify-content: center; opacity: .7; padding-top: 65px; transform: rotate(8deg); width: 270px; }
  .camp-grid { grid-template-columns: repeat(3, 1fr); }
  .camp-hero { border-radius: 0 0 42px 42px; margin: 0 -42px 42px; padding: 34px 70px 44px; }
  .now-list { grid-template-columns: repeat(2, 1fr); }
  .timeline { gap: 14px; }
  .time-block { grid-template-columns: 78px 1fr; }
  .program-column-headings { grid-template-columns: 78px minmax(0, 1fr); }
}

@keyframes join-die-turn { from { transform: rotate(-8deg); } to { transform: rotate(352deg); } }
@media (prefers-reduced-motion: reduce) { .join-die { animation: none; } }

/* Quiet card illustrations behind the public content. */
.fantasy-page { isolation: isolate; }
.arcane-background { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; user-select: none; }
.arcane-definitions { position: absolute; }
.arcane-card { position: absolute; width: clamp(90px, 10vw, 148px); height: auto; color: var(--blue); opacity: 0; transform: translateY(12px) rotate(var(--card-angle)); animation: arcane-appear 18s ease-in-out infinite; }
.arcane-card-one { left: 3%; top: 17%; --card-angle: -17deg; animation-delay: -4s; }
.arcane-card-two { right: 4%; top: 36%; --card-angle: 14deg; color: var(--teal); animation-delay: -11s; }
.arcane-card-three { left: 18%; top: 71%; --card-angle: 11deg; color: var(--orange); animation-delay: -8s; }
.arcane-card-four { right: 23%; top: 8%; --card-angle: -10deg; animation-delay: -15s; }
.arcane-card-five { right: 9%; top: 80%; --card-angle: 21deg; color: var(--teal); animation-delay: -1s; }
.arcane-card-six { left: 1%; top: 49%; --card-angle: 16deg; color: var(--teal); animation-delay: -14s; }
.arcane-card-seven { right: 2%; top: 5%; --card-angle: -23deg; color: var(--orange); animation-delay: -7s; }
.arcane-card-eight { left: 35%; top: 40%; --card-angle: -12deg; animation-delay: -17s; }
.arcane-card-nine { left: 21%; top: 10%; --card-angle: 24deg; color: var(--teal); animation-delay: -10s; }
.arcane-card-ten { right: 29%; top: 71%; --card-angle: -18deg; color: var(--orange); animation-delay: -3s; }
.arcane-card-eleven { left: 2%; top: 87%; --card-angle: -9deg; animation-delay: -13s; }
.arcane-card-twelve { right: 17%; top: 53%; --card-angle: 19deg; color: var(--teal); animation-delay: -6s; }
@keyframes arcane-appear {
  0%, 5%, 95%, 100% { opacity: 0; transform: translateY(12px) rotate(var(--card-angle)); }
  25%, 75% { opacity: .085; transform: translateY(-12px) rotate(calc(var(--card-angle) + 5deg)); }
}
@media (max-width: 600px) {
  .arcane-card { width: 96px; }
  .arcane-card-one { left: -20px; top: 23%; }
  .arcane-card-two { right: -18px; top: 54%; }
  .arcane-card-three { left: 8%; top: 82%; }
  .arcane-card-four { right: 4%; top: 8%; }
  .arcane-card-five { right: 0; top: 85%; }
  .arcane-card-six { left: -16px; top: 51%; }
  .arcane-card-seven { right: 8%; top: 31%; }
  .arcane-card-eight { left: 37%; top: 65%; }
  .arcane-card-nine, .arcane-card-ten, .arcane-card-eleven, .arcane-card-twelve { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .arcane-card { animation: none; opacity: .045; transform: rotate(var(--card-angle)); }
}
@media print { .arcane-background { display: none; } }

/* Magical symbols stay clipped to the camp title card. */
.camp-hero.camp-magic::before { background: radial-gradient(circle at 80% 20%, #ffb35e, transparent 28%); pointer-events: none; }
.camp-magic > .camp-magic-symbols { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; user-select: none; }
.camp-magic-symbols span { position: absolute; display: block; color: #ffe3b1; font-family: Georgia, serif; font-size: clamp(42px, 7vw, 86px); line-height: 1; opacity: 0; animation: camp-symbol-glow 13s ease-in-out infinite; }
.camp-magic-symbols span:nth-child(1) { right: 8%; top: 13%; animation-delay: -2s; }
.camp-magic-symbols span:nth-child(2) { right: 29%; top: 48%; font-size: 60px; animation-delay: -8s; }
.camp-magic-symbols span:nth-child(3) { left: 43%; top: 10%; animation-delay: -5s; }
.camp-magic-symbols span:nth-child(4) { right: 11%; bottom: 9%; font-size: 38px; animation-delay: -11s; }
.camp-magic-symbols span:nth-child(5) { left: 7%; bottom: 12%; font-size: 48px; animation-delay: -6s; }
@keyframes camp-symbol-glow {
  0%, 12%, 90%, 100% { opacity: 0; transform: translateY(7px) rotate(-9deg) scale(.94); }
  40%, 60% { opacity: .16; transform: translateY(-7px) rotate(9deg) scale(1); }
}
@media (max-width: 600px) { .camp-magic-symbols span:nth-child(3), .camp-magic-symbols span:nth-child(5) { display: none; } }
@media (prefers-reduced-motion: reduce) { .camp-magic-symbols span { animation: none; opacity: .09; transform: none; } }
@media print { .camp-magic-symbols { display: none; } }

.hero.camp-magic::after { content: none; }

/* Compact greeting; native details keeps keyboard and expanded state accessible. */
.camp-hero.player-hero:has(.player-greeting) { padding: 18px 24px 12px; }
.player-greeting { padding-bottom: 0; }
.player-greeting > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; }
.player-greeting > summary::-webkit-details-marker { display: none; }
.player-greeting > summary:focus-visible { outline: 2px solid #ffe3b1; outline-offset: 5px; border-radius: 8px; }
.player-greeting .greeting-toggle { flex: 0 0 44px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.13); color: white; font: 28px/1 system-ui, sans-serif; }
.player-greeting .greeting-toggle::before { content: '+'; }
.player-greeting[open] .greeting-toggle::before { content: '−'; }
.player-greeting .greeting-details { padding-top: 20px; }
.player-greeting .back-link { margin-bottom: 14px; }
.player-greeting .hero-actions { margin-top: 18px; }

.player-greeting > summary h1 { min-width: 0; font-size: clamp(1.35rem,5vw,2rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* The camp opens directly on the programme; secondary content has its own view. */
.camp-program { margin-top: 18px; }
.camp-program .program-switch { margin-bottom: 14px; }
.program-controls { position: sticky; top: var(--site-header-height, 81px); z-index: 30; background: var(--cream); padding-top: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.program-controls .program-switch { margin-bottom: 8px; }
.program-controls-with-headings { margin-bottom: 0; border-bottom: 0; }
.program-controls-with-headings .program-column-headings { margin-top: 12px; border: 1px solid var(--line); border-bottom: 0; }
@media print { .program-controls { position: static; } }
.schedule-scroll { max-height: 85dvh; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media(max-width:600px){.schedule-scroll{max-height:calc(100dvh - 100px);min-height:min(72dvh,620px)}}

.attendance-icon-actions { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
.attendance-icon,.attendance-status { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; border-radius: 13px; border: 1px solid #b9dcd1; background: #e3f2ee; color: #176b61; }
.attendance-icon { cursor: pointer; }
.attendance-icon svg,.attendance-status svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.attendance-icon.is-add { background: var(--blue); border-color: var(--blue); color: white; }
.attendance-icon.is-remove { background: var(--paper); border-color: #e2c4ae; color: #a24b34; }
.attendance-status.is-waiting { background: #fff1d6; border-color: #e7cd99; color: #936410; }
.attendance-icon:disabled { cursor: default; opacity: .55; }
.attendance-icon:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.activity-card-footer>small { min-width: 0; }

.site-header.camp-secondary-header #account-action, .site-header.camp-secondary-header #menu-toggle { display: none; }

.site-header { background: var(--cream); backdrop-filter: none; }

#ahora.compact-panel { margin-top: 18px; }

#ahora[hidden] { display: none !important; }

/* One content scroller; program controls stay in place from the first frame. */
@media screen {
  .page-shell:has(> .camp-program) { position: fixed; top: var(--site-header-height, 81px); bottom: 0; left: 0; right: 0; width: 100%; padding-bottom: max(8px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; }
  .page-shell > .camp-program { display: flex; flex-direction: column; flex: 1; min-height: 0; margin: 0; }
  .camp-program > .program-controls { position: static; flex: 0 0 auto; }
  .program-content { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
  .program-content .schedule-scroll { overflow: visible; max-height: none; min-height: 0; }
  .program-content .camp-hero { margin: 0 0 12px; padding: 20px; }
  .program-content .now-panel { margin: 8px 0; }
  .program-content:focus-visible { outline: 2px solid var(--teal); outline-offset: -2px; }
}

/* Before login, present the camp card first and use one page scroll. */
@media screen {
  .page-shell:has(> .camp-hero):has(> .camp-program) { position: static; display: block; padding-bottom: 32px; }
  .page-shell:has(> .camp-hero) > .camp-program { display: block; margin-top: 18px; }
  .page-shell:has(> .camp-hero) .program-controls { position: sticky; top: var(--site-header-height, 81px); }
  .page-shell:has(> .camp-hero) .program-content { overflow: visible; }
  .page-shell:has(> .camp-hero) .program-day > summary { top: calc(var(--site-header-height, 81px) + var(--program-controls-height, 180px)); }
  .page-shell:has(> .camp-hero) .schedule-scroll { overflow: auto; max-height: 75dvh; }
}

@media screen {
  .program-day .time-label { position: sticky; top: var(--program-day-height, 48px); align-self: start; z-index: 2; padding: 12px 0; background: var(--cream); font-variant-numeric: tabular-nums; }
  .page-shell:has(> .camp-hero) .program-day .time-label { top: calc(var(--site-header-height, 81px) + var(--program-controls-height, 180px) + var(--program-day-height, 48px)); }
}

/* Full-height timetable: only the page scrolls vertically. */
@media screen {
  .page-shell:has(> [data-program-layout="schedule"]) { position: static; display: block; padding-bottom: 32px; }
  .page-shell > [data-program-layout="schedule"] { display: block; margin-top: 18px; }
  .page-shell [data-program-layout="schedule"] > .program-controls { position: sticky; top: var(--site-header-height, 81px); }
  .page-shell [data-program-layout="schedule"] .program-content { overflow: visible; }
  .page-shell [data-program-layout="schedule"] .schedule-scroll { height: auto; max-height: none; min-height: 0; overflow-x: auto; overflow-y: hidden; }
}

@media screen {
  .schedule-fixed-head { position: sticky; top: calc(var(--site-header-height, 81px) + var(--program-controls-height, 120px)); z-index: 20; width: max-content; max-width: 100%; border: 1px solid var(--line); border-bottom: 0; border-radius: 16px 16px 0 0; background: var(--blue); }
  .schedule-head-scroll { overflow-x: auto; scrollbar-width: none; border-radius: 15px 15px 0 0; }
  .schedule-head-scroll::-webkit-scrollbar { display: none; }
  .schedule-table th:first-child { width: 58px; min-width: 58px; max-width: 58px; box-sizing: border-box; }
  .schedule-scroll .schedule-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
  .page-shell [data-program-layout="schedule"] .schedule-scroll { border-top: 0; border-radius: 0 0 16px 16px; }
}

@media print { .schedule-fixed-head { display: none; } }

#brand-camp { text-transform: none; }

#brand-title { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
#brand-title .brand-view-label { font-size: .62em; font-weight: 650; letter-spacing: 0; }

.filter-scroll-cue { position: relative; min-width: 0; }
.filter-scroll-cue.has-more-filters::after { content: ''; position: absolute; right: 0; top: 0; bottom: 10px; width: 30px; background: linear-gradient(to right, transparent, var(--cream)); pointer-events: none; }

.mobile-menu a > [aria-hidden="true"], .mobile-menu button > [aria-hidden="true"] { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 22px; width: 22px; height: 22px; font-size: 18px; line-height: 1; }
.mobile-menu a > .menu-exit-icon, .mobile-menu button > .menu-exit-icon { font-size: 24px; }

/* Vídeo de presentación: texto y controles sobre fondo legible. */
.hero.hero-video-card{grid-template-columns:1fr;background:#173f5f;isolation:isolate}
.hero.hero-video-card::before{content:none}
.hero.hero-video-card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,28,40,.88),rgba(10,28,40,.65) 48%,rgba(10,28,40,.23));opacity:1;z-index:0;pointer-events:none}
.hero.hero-video-card>.hero-background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-1;pointer-events:none}
.hero.hero-video-card>.hero-video-toggle{position:absolute;right:16px;bottom:16px;z-index:2;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#173f5fcc;color:white;font-size:19px;cursor:pointer}
.hero-video-toggle:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media(max-width:600px){.hero.hero-video-card::after{background:linear-gradient(90deg,rgba(10,28,40,.82),rgba(10,28,40,.49))}.hero.hero-video-card{padding-bottom:76px}}
@media print{.hero-background-video,.hero-video-toggle{display:none!important}}

.camp-hero .camp-wordmark{display:block;width:170px;max-width:100%;height:auto}

.hero-title-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:clamp(12px,3vw,48px)}
.hero .hero-title-row h1{font-size:clamp(1.65rem,7.8vw,7rem);min-width:0}
.hero-title-row .hero-full-logo{display:block;width:100%;max-width:320px;height:auto;justify-self:center;object-fit:contain}

.camp-about{max-width:850px;line-height:1.7}
.camp-about-topics{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:22px 0}
.camp-about-topics li{padding:8px 13px;border:1px solid var(--line);border-radius:18px;background:var(--paper);font-size:.88rem}
@media print{
 .site-header,.program-controls,.camp-notification-floats,.activity-card-footer{display:none!important}
 .page-shell,.camp-program,.program-content,.schedule-scroll{display:block!important;height:auto!important;max-height:none!important;overflow:visible!important}
 .program-day>summary,.time-label,.schedule-table th{position:static!important}
 .program-day>.timeline{display:block!important}
}

.topics-carousel{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}
.topics-track{display:flex;width:max-content;animation:ludi-topics 65s linear infinite}
.topics-track .camp-about-topics{flex:none;flex-wrap:nowrap;margin:6px 0;padding:0 9px 0 0}
.topics-track li{white-space:nowrap}
.topics-track .topic-icon{display:inline-block;margin-right:6px;font-size:1.05em;line-height:1;vertical-align:-.08em}
.topics-carousel:hover .topics-track,.topics-carousel:focus .topics-track{animation-play-state:paused}
@keyframes ludi-topics{to{transform:translateX(-50%)}}
.camp-poster{display:block;width:100%;height:auto;object-fit:contain;background:#041221}
.camp-card>.camp-poster{max-height:420px}
.camp-poster-layout{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:28px;align-items:center}
.camp-poster-layout>.camp-poster{border-radius:16px}
.camp-poster-column>.camp-poster{border-radius:18px}
.camp-member-poster{padding:12px 0 22px}
.camp-member-poster .camp-poster{max-height:360px;border-radius:18px}
@media(max-width:600px){.camp-poster-layout{grid-template-columns:minmax(0,1fr);gap:22px}.camp-poster-layout>.camp-poster{max-height:440px}.camp-card>.camp-poster{max-height:460px}}
@media(prefers-reduced-motion:reduce){.topics-track{animation:none;width:auto}.topics-track .camp-about-topics{flex-wrap:wrap;flex:1}.topics-track [aria-hidden="true"]{display:none}.topics-carousel{mask-image:none}}
@media print{.topics-track{animation:none;width:auto}.topics-track .camp-about-topics{flex-wrap:wrap}.topics-track [aria-hidden="true"],.camp-member-poster{display:none}}

.camp-poster-column{min-width:0}
.camp-poster-column .camp-poster-venue{margin-top:12px}
.camp-poster-column .camp-venue-button{display:flex;width:100%;min-height:52px;justify-content:center;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--blue);box-shadow:0 5px 16px rgba(23,63,95,.12)}
.camp-poster-column .camp-venue-button:hover{background:#eef7f4;border-color:var(--teal)}
.camp-poster-column .camp-venue-button svg{width:21px;height:21px;fill:var(--orange)}
.camp-poster-column .camp-venue-button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* Branded story section and poster-led camp card. */
#experiencia{scroll-margin-top:calc(var(--site-header-height,80px) + 18px)}
.camp-about{width:min(100%,940px);max-width:940px;margin:58px auto}
.camp-about-card{position:relative;overflow:hidden;padding:clamp(22px,5vw,48px);border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,#fffdf8 0%,#fff7e9 100%);box-shadow:0 16px 40px rgba(35,47,52,.08)}
.camp-about-card:after{content:"";position:absolute;right:-70px;top:-92px;width:230px;height:230px;border:1px solid rgba(42,157,143,.16);border-radius:50%;box-shadow:0 0 0 20px rgba(42,157,143,.035),0 0 0 42px rgba(232,93,63,.025);pointer-events:none}
.camp-about-heading{position:relative;z-index:1;display:flex;align-items:center;gap:16px;margin-bottom:25px}
.camp-about-heading img{width:58px;height:58px;object-fit:contain;padding:8px;border:1px solid var(--line);border-radius:18px;background:white}
.camp-about-heading .eyebrow{margin:0 0 5px;color:#a55030;letter-spacing:.12em}
.camp-about-heading h2{margin:0;color:var(--blue);font-size:clamp(1.8rem,5vw,2.7rem);letter-spacing:-.055em;line-height:1.05}
.camp-about-card>p{max-width:740px;color:#46565c;font-size:1rem;line-height:1.75;margin:12px 0}
.camp-about-card>.camp-about-lead{color:var(--blue);font-size:1.2rem;font-weight:850}
.camp-about-promise{position:relative;z-index:1;display:flex;gap:13px;align-items:flex-start;margin:26px 0 18px;padding:18px 20px;border-left:4px solid var(--teal);border-radius:0 16px 16px 0;background:#eef7f4}
.camp-about-promise>span{color:var(--orange);font-size:1.35rem;line-height:1.2}
.camp-about-promise p{margin:0;color:var(--blue);font-size:1.04rem;font-weight:750;line-height:1.6}
.camp-about-card>.camp-about-closing{margin-top:21px;color:var(--muted);font-weight:650}
.camp-card-poster{position:relative;isolation:isolate;display:flex;min-height:380px;color:white;background:var(--blue)}
.camp-card-poster-bg,.camp-card-poster:after{position:absolute;inset:0;z-index:-1}
.camp-card-poster-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:blur(3px) brightness(.64);transform:scale(1.055)}
.camp-card-poster:after{content:"";background:linear-gradient(180deg,rgba(10,31,45,.42),rgba(10,31,45,.76))}
.camp-card-poster .camp-card-front{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-width:0}
.camp-card-poster .camp-card-top{min-height:auto;background:transparent;padding:22px 22px 8px}
.camp-card-poster .camp-card-top:after{content:none}
.camp-card-poster .camp-card-top h3{max-width:18ch;margin-top:12px;font-size:clamp(1.6rem,4vw,2.25rem);line-height:1.05;text-shadow:0 2px 12px #091a27}
.camp-card-poster .pill{background:rgba(255,253,248,.93);color:#1d796f}
.camp-card-poster .camp-card-body{gap:14px;padding:10px 22px 22px}
.camp-card-poster .camp-meta,.camp-card-poster .camp-meta strong{color:white}
.camp-card-poster .camp-card-body>p{max-width:54ch;color:rgba(255,255,255,.91);line-height:1.55;text-shadow:0 1px 8px #091a27}
.camp-card-poster .camp-card-body .button{margin-top:4px;align-self:flex-start}
@media(max-width:600px){.camp-about{margin:38px auto}.camp-about-card{border-radius:22px}.camp-about-heading img{width:50px;height:50px}.camp-card-poster{min-height:390px}.camp-poster-layout .camp-poster-column>.camp-poster{max-height:440px}}
