html.camper-root,.camper-app{--ca-bg: #ffffff;--ca-surface: #ffffff;--ca-text: #000000;--ca-text-muted: #737373;--ca-border: #efefef;--ca-primary: #000000;--ca-accent: #000000;--ca-accent-soft: #f5f5f5;--ca-hover: #fafafa;--ca-on-primary: #ffffff;--ca-success: #31a24c;--ca-danger: #ed4956;--ca-link: #00376b;--ca-body-font: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ca-heading-font: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html.camper-root[data-ca-theme=dark],html.camper-root[data-ca-theme=dark] .camper-app,.camper-app[data-ca-theme=dark]{--ca-bg: #0c1014;--ca-surface: #0c1014;--ca-text: #f5f5f5;--ca-text-muted: #a8a8a8;--ca-border: #1e242b;--ca-primary: #ffffff;--ca-accent: #ffffff;--ca-accent-soft: #151a1f;--ca-hover: #12171c;--ca-on-primary: #0c1014;--ca-success: #31a24c;--ca-danger: #ed4956;--ca-link: #e0f1ff;color-scheme:dark}html.camper-root,html:has(.camper-app),body.camper-body,body:has(.camper-app){height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}.camper-app{position:relative;isolation:isolate;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--ca-bg);color:var(--ca-text);font-family:var(--ca-body-font)}body.camper-login-page{min-height:100dvh;background:var(--ca-bg, #fff);color:var(--ca-text, #000);font-family:var(--ca-body-font, "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif)}body.camper-login-page header{background:var(--ca-surface, #fff);border-bottom:none}body.camper-login-page .camper-login-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}body.camper-login-page .camper-login-brand span{font-family:var(--ca-heading-font);font-size:1.05rem;font-weight:700}.camper-login-form__google{display:flex;width:100%;height:44px;align-items:center;justify-content:center;gap:10px;border:1px solid var(--ca-border, #dbdbdb);border-radius:12px;background:var(--ca-surface, #fff);color:var(--ca-text, #000);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}.camper-login-form__google:hover{background:var(--ca-accent-soft, #f5f5f5)}.camper-login-form__or{margin:0;text-align:center;font-size:.8rem;color:var(--ca-text-muted, #737373)}.camper-login-form__label{display:block;margin-bottom:8px;font-size:.9rem;font-weight:600;color:var(--ca-text, #000)}.camper-login-form__input{width:100%;padding:12px 16px;border:1px solid var(--ca-border, #dbdbdb);border-radius:12px;background:var(--ca-surface, #fff);color:var(--ca-text, #000);font:inherit;font-size:.9rem;outline:none}.camper-login-form__input:focus{border-color:var(--ca-primary, #000);box-shadow:0 0 0 2px var(--ca-accent-soft, #f5f5f5)}.camper-login-form__submit{width:100%;height:44px;border:none;border-radius:12px;background:var(--ca-primary, #000);color:var(--ca-on-primary, #fff);font:inherit;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.camper-login-form__submit:disabled{opacity:.7;cursor:wait}.camper-login-form__submit:hover:not(:disabled){filter:brightness(.95)}.camper-login-form__hint{margin:0;text-align:center;font-size:.75rem;color:var(--ca-text-muted, #737373)}.camper-login-back{font-size:.875rem;color:var(--ca-text-muted);text-decoration:none}.camper-login-back:hover{color:var(--ca-text)}.camper-login-eyebrow{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ca-primary)}.camper-login-lede{color:var(--ca-text-muted)}.camper-login-page h1{color:var(--ca-text)}.camper-topnav{position:sticky;top:0;z-index:50;flex-shrink:0;background:var(--ca-surface);border-bottom:none}.camper-topnav__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;max-width:1280px;margin:0 auto;padding:0 24px}.camper-topnav__left{display:flex;align-items:center;gap:4px;min-width:0}.camper-brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none;color:var(--ca-primary)}.camper-brand__mark{display:block;width:28px;height:28px;flex-shrink:0;object-fit:contain}.camper-brand>span{font-family:var(--ca-heading-font);font-size:1.05rem;font-weight:700;letter-spacing:.01em;color:var(--ca-primary)}.camper-topnav__center{display:none;align-items:stretch;gap:4px}.camper-topnav__link{display:inline-flex;align-items:center;height:56px;padding:0 14px;font-size:.92rem;font-weight:500;color:var(--ca-text-muted);text-decoration:none;border-bottom:none}.camper-topnav__link.is-active{color:var(--ca-text);font-weight:700}.camper-topnav__link:hover{color:var(--ca-text)}.camper-topnav__utils{display:flex;align-items:center;gap:10px}.camper-topnav__theme{display:grid;place-items:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--ca-text);cursor:pointer}.camper-topnav__theme svg{width:18px;height:18px}.camper-topnav__theme:hover{background:var(--ca-hover)}.camper-topnav__avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--ca-accent-soft);color:var(--ca-primary);font-size:.8rem;font-weight:700;overflow:hidden;object-fit:cover}.camper-topnav__avatar--img{display:block;padding:0}.camper-topnav__name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;color:var(--ca-text-muted);display:inline-flex;align-items:center;gap:6px}.camper-topnav__logout{height:32px;padding:0 12px;border:none;border-radius:8px;background:transparent;color:var(--ca-text);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.camper-topnav__logout:hover{background:var(--ca-hover)}.camper-topnav__menu{display:none;align-items:center;justify-content:center;width:40px;height:40px;margin:0;padding:0;border:none;border-radius:10px;background:transparent;color:var(--ca-text);cursor:pointer}.camper-topnav__menu svg{width:22px;height:22px}.camper-topnav__menu:hover{background:var(--ca-hover)}.camper-stage{position:relative;flex:1;min-height:0;display:flex;padding:16px 24px 24px;overflow-x:clip;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.camper-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;width:100%;max-width:1280px;margin:0 auto;align-items:start}.camper-sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:4px;padding:8px 0}.camper-sidebar__nav{display:flex;flex-direction:column;gap:4px}.camper-sidebar__item{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:8px;color:var(--ca-text);text-decoration:none;font-size:.92rem;font-weight:500}.camper-sidebar__item svg{width:20px;height:20px;flex-shrink:0;color:var(--ca-text-muted)}.camper-sidebar__item.is-active{background:var(--ca-hover);font-weight:600}.camper-sidebar__item.is-active svg{color:var(--ca-primary)}.camper-sidebar__item:hover{background:var(--ca-hover)}.camper-sidebar__home{margin-top:12px;padding:10px 12px;color:var(--ca-text-muted);font-size:.85rem;text-decoration:none}.camper-sidebar__home:hover{color:var(--ca-primary)}.camper-panel{min-width:0;padding-bottom:24px}.camper-drawer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.camper-drawer.is-open{pointer-events:auto}.camper-drawer__backdrop{position:absolute;inset:0;margin:0;padding:0;border:none;background:#0c101473;opacity:0;cursor:pointer;transition:opacity .2s ease}.camper-drawer.is-open .camper-drawer__backdrop{opacity:1}.camper-drawer__panel{position:absolute;top:56px;left:0;display:flex;flex-direction:column;width:min(320px,86vw);height:calc(100% - 56px);padding:12px 16px calc(20px + env(safe-area-inset-bottom));background:var(--ca-surface);color:var(--ca-text);box-shadow:none;transform:translate(-100%);transition:transform .22s ease,box-shadow .22s ease;visibility:hidden}.camper-drawer.is-open .camper-drawer__panel{transform:translate(0);box-shadow:8px 0 32px #0000002e;visibility:visible}.camper-drawer__user{padding:8px 12px 20px}.camper-drawer__user-name{margin:0;font-family:var(--ca-heading-font);font-size:1.1rem;font-weight:700;color:var(--ca-text)}.camper-drawer__user-email{margin:4px 0 0;font-size:.85rem;color:var(--ca-text-muted);word-break:break-all}.camper-drawer__nav{display:flex;flex-direction:column;gap:4px;flex:1}.camper-drawer__item{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-radius:12px;color:var(--ca-text);text-decoration:none;font-size:.95rem;font-weight:500}.camper-drawer__item svg{width:22px;height:22px;flex-shrink:0;color:var(--ca-text-muted)}.camper-drawer__item.is-active{background:var(--ca-accent-soft);color:var(--ca-primary);font-weight:600}.camper-drawer__item.is-active svg{color:var(--ca-primary)}.camper-drawer__item:hover{background:var(--ca-hover)}.camper-drawer__footer{display:flex;flex-direction:column;gap:8px;padding-top:16px;margin-top:auto}.camper-drawer__link{display:block;padding:12px 14px;border-radius:12px;color:var(--ca-text-muted);text-decoration:none;font-size:.9rem;font-weight:500}.camper-drawer__link:hover{color:var(--ca-primary);background:var(--ca-hover)}.camper-drawer__logout{display:block;width:100%;min-height:44px;padding:0 14px;border:none;border-radius:12px;background:var(--ca-accent-soft);color:var(--ca-primary);font-size:.9rem;font-weight:600;cursor:pointer;text-align:left}.camper-drawer__logout:hover{filter:brightness(.97)}.camper-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.camper-eyebrow{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ca-primary)}.camper-page-head h1{margin:0;font-family:var(--ca-heading-font);font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:700;line-height:1.15;color:var(--ca-text)}.camper-lede{margin:8px 0 0;max-width:42rem;font-size:.95rem;line-height:1.45;color:var(--ca-text-muted)}.camper-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border:none;border-radius:8px;background:var(--ca-primary);color:var(--ca-on-primary);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none}.camper-btn:disabled,.camper-btn.is-disabled{opacity:.55;pointer-events:none}.camper-btn--primary{background:var(--ca-primary);color:var(--ca-on-primary)}.camper-btn--ghost{background:transparent;color:var(--ca-text)}.camper-btn--ghost:hover{background:var(--ca-hover)}.camper-profile-photo{margin:0;padding:8px 0 0;border-bottom:none;max-width:520px}.camper-profile-photo__head h2{margin:0;font-family:var(--ca-heading-font);font-size:1.05rem;font-weight:700}.camper-profile-photo__head p{margin:4px 0 0;font-size:.8rem;color:var(--ca-text-muted)}.camper-profile-photo__row{display:flex;align-items:center;gap:24px;margin-top:8px}.camper-profile-photo__preview{flex-shrink:0;width:112px;height:112px;border-radius:999px;overflow:hidden;background:var(--ca-accent-soft);display:grid;place-items:center}.camper-profile-photo__img{width:100%;height:100%;object-fit:cover;display:block}.camper-profile-photo__fallback{font-size:2.4rem;font-weight:700;color:var(--ca-primary)}.camper-profile-photo__meta{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.camper-profile-photo__name{margin:0;font-size:1.15rem;font-weight:700;line-height:1.25}.camper-profile-photo__email{color:var(--ca-text-muted);font-size:.85rem}.camper-profile-photo__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.camper-profile-photo .camper-flash{margin-top:16px}.camper-topnav__avatar-link{display:inline-flex;line-height:0;border-radius:999px;text-decoration:none}.camper-topnav__avatar--link{text-decoration:none}body.photo-crop-open{overflow:hidden}.photo-crop-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}.photo-crop-modal__backdrop{position:absolute;inset:0;background:#0000008c}.photo-crop-modal__dialog{position:relative;z-index:1;width:min(420px,100%);padding:20px;border-radius:16px;background:var(--ca-surface);color:var(--ca-text);box-shadow:0 16px 48px #00000047}.photo-crop-modal__header h2{margin:0;font-size:1.1rem;font-weight:700}.photo-crop-modal__header p{margin:4px 0 0;font-size:.8rem;color:var(--ca-text-muted)}.photo-crop-stage{position:relative;height:320px;margin-top:16px;border-radius:12px;overflow:hidden;background:#111;cursor:grab;touch-action:none;user-select:none}.photo-crop-stage.is-dragging{cursor:grabbing}.photo-crop-stage:not(.is-ready){cursor:default}.photo-crop-image{position:absolute;top:0;left:0;max-width:none;pointer-events:none;transform-origin:0 0}.photo-crop-image--blur{filter:blur(12px) brightness(.55);z-index:0}.photo-crop-veil{position:absolute;inset:0;z-index:1;background:#00000073;-webkit-mask-image:radial-gradient(closest-side,transparent calc(var(--crop-size, 200px) / 2 - .5px),#000 calc(var(--crop-size, 200px) / 2));mask-image:radial-gradient(closest-side,transparent calc(var(--crop-size, 200px) / 2 - .5px),#000 calc(var(--crop-size, 200px) / 2))}.photo-crop-viewport{position:absolute;z-index:2;top:50%;left:50%;width:var(--crop-size, 200px);height:var(--crop-size, 200px);margin:calc(var(--crop-size, 200px) / -2) 0 0 calc(var(--crop-size, 200px) / -2);border-radius:999px;overflow:hidden;box-shadow:0 0 0 2px #ffffffd9;opacity:0}.photo-crop-stage.is-ready .photo-crop-viewport{opacity:1}.photo-crop-stage:not(.is-ready) .photo-crop-veil,.photo-crop-stage:not(.is-ready) .photo-crop-image--blur{opacity:0}.photo-crop-viewport .photo-crop-image{pointer-events:none}.photo-crop-hint{position:absolute;inset:0;z-index:3;display:grid;place-items:center;color:#ffffffbf;opacity:0;transition:opacity .15s ease;pointer-events:none}.photo-crop-stage.is-ready .photo-crop-hint{opacity:.55}.photo-crop-stage.is-ready:not(.is-dragging):hover .photo-crop-hint{opacity:.85}.photo-crop-zoom{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:.8rem;font-weight:600;color:var(--ca-text-muted)}.photo-crop-zoom span{flex-shrink:0}.photo-crop-zoom input[type=range]{flex:1;height:4px;appearance:none;border-radius:999px;background:linear-gradient(to right,var(--ca-primary) 0%,var(--ca-primary) var(--zoom-fill, 0%),var(--ca-border) var(--zoom-fill, 0%),var(--ca-border) 100%)}.photo-crop-zoom input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:999px;background:var(--ca-primary);cursor:pointer}.photo-crop-zoom input[type=range]::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:999px;background:var(--ca-primary);cursor:pointer}.photo-crop-modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media (max-width: 720px){.photo-crop-modal__dialog{padding:16px}.photo-crop-stage{height:280px}.camper-profile-photo__row{gap:14px}.camper-profile-photo__preview{width:80px;height:80px}}.camper-winner{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 28px;border:none;border-radius:0;background:var(--ca-surface);text-align:center}.camper-winner--empty h2{margin:0;font-family:var(--ca-heading-font);font-size:1.5rem}.camper-winner--empty p:last-child{margin:0;max-width:28rem;color:var(--ca-text-muted);font-size:.95rem;line-height:1.45}.camper-winner__trophy{position:relative;display:flex;align-items:center;justify-content:center;width:min(100%,200px);height:250px;margin:0 auto 8px;isolation:isolate}.camper-winner__aura{position:absolute;inset:22% 12% 12%;z-index:0;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(212,160,74,.22),transparent 68%);filter:blur(16px);animation:camper-gow-aura 5s ease-in-out infinite;pointer-events:none}.camper-winner__embers{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.camper-winner__embers i{position:absolute;left:var(--ember-left, 50%);bottom:var(--ember-bottom, 16%);width:var(--ember-size, 4px);height:var(--ember-size, 4px);border-radius:999px;background:#ffc44deb;box-shadow:0 0 5px 1px #ffa028a6,0 0 11px 2px #ff64144d;opacity:0;animation:camper-gow-ember var(--ember-duration, 3.2s) ease-out infinite;animation-delay:var(--ember-delay, .7s)}.camper-winner__trophy-stage{position:relative;z-index:2;width:100%;animation:camper-gow-rise 1.1s cubic-bezier(.22,1,.36,1) both}.camper-winner__trophy img{display:block;width:100%;height:auto;max-height:240px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,0,0,.22));animation:camper-gow-float 6s ease-in-out 1.1s infinite}.camper-winner__reveal{animation:camper-gow-text .7s ease-out both}.camper-winner__flag.camper-winner__reveal{animation-delay:.55s}.camper-winner h2.camper-winner__reveal{animation-delay:.7s}.camper-winner__subtitle.camper-winner__reveal{animation-delay:.85s}@keyframes camper-gow-rise{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes camper-gow-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes camper-gow-aura{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.7;transform:scale(1.03)}}@keyframes camper-gow-ember{0%{opacity:0;transform:translate(0) scale(.6)}12%{opacity:.7}55%{opacity:.6;transform:translate(calc(var(--ember-drift, 0px) * .55),calc(var(--ember-rise, 90px) * -.55)) scale(.85)}to{opacity:0;transform:translate(var(--ember-drift, 0px),calc(var(--ember-rise, 90px) * -1)) scale(.2)}}@keyframes camper-gow-text{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.camper-winner__trophy-stage,.camper-winner__trophy img,.camper-winner__aura,.camper-winner__embers i,.camper-winner__reveal{animation:none!important;opacity:1;transform:none;filter:none}}.camper-winner--static .camper-winner__trophy-stage{animation:none;opacity:1;transform:none}.camper-winner__crest{display:none}.camper-winner__crest img{width:100%;height:100%;object-fit:cover}.camper-winner__crest-fallback{font-family:var(--ca-heading-font);font-size:2.5rem;font-weight:700;color:var(--ca-primary)}.camper-winner__flag{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ca-primary)}.camper-winner__flag svg{width:16px;height:16px}.camper-winner h2{margin:0;font-family:var(--ca-heading-font);font-size:clamp(1.6rem,3vw,2rem);font-weight:700;line-height:1.15}.camper-winner__subtitle{margin:0;max-width:28rem;color:var(--ca-text-muted);font-size:.98rem;line-height:1.45}.camper-winner__chip{display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:8px 14px;border-radius:999px;border:none;background:var(--ca-accent-soft);color:var(--ca-primary);font-size:.92rem;font-weight:700}.camper-winner__chip svg{width:16px;height:16px}.camper-winner__points{margin:0;font-size:1.15rem;font-weight:600;color:var(--ca-text)}.camper-winner.is-loading{align-items:stretch;gap:14px}.camper-winner__skel{border-radius:10px;background:linear-gradient(90deg,var(--ca-hover) 0%,#f0f0f0 50%,var(--ca-hover) 100%);background-size:200% 100%;animation:camper-skel 1.2s ease-in-out infinite}.camper-winner__skel--crest{width:120px;height:120px;margin:0 auto;border-radius:999px}.camper-winner__skel--trophy{width:150px;height:190px;margin:0 auto;border-radius:12px}.camper-winner__skel--pill{width:120px;height:16px;margin:0 auto}.camper-winner__skel--title{width:60%;height:28px;margin:0 auto}.camper-winner__skel--line{width:80%;height:14px;margin:0 auto}.camper-winner__skel--chip{width:160px;height:36px;margin:0 auto;border-radius:999px}@keyframes camper-skel{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.camper-winner__skel{animation:none}}.camper-gallery{display:flex;flex-direction:column;gap:16px}.camper-year-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.camper-year-chip{height:34px;padding:0 14px;border:none;border-radius:999px;background:var(--ca-accent-soft);color:var(--ca-text-muted);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.camper-year-chip.is-active,.camper-year-chip:hover{border-color:transparent;color:var(--ca-on-primary);background:var(--ca-primary)}.camper-year-chip:focus-visible{outline:2px solid var(--ca-primary);outline-offset:2px}.camper-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:371px;gap:1px;background:var(--ca-bg)}.camper-gallery-grid--tail{opacity:.55}.camper-gallery-load-more{margin-top:0}.camper-gallery-card{position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;border:none;border-radius:0;overflow:hidden;background:var(--ca-hover);cursor:pointer}.camper-gallery-card:disabled{cursor:default}.camper-gallery-card__thumb{width:100%;height:100%}.camper-gallery-card__thumb.is-skeleton{background:linear-gradient(90deg,var(--ca-hover) 0%,#eee 50%,var(--ca-hover) 100%);background-size:200% 100%;animation:camper-skel 1.2s ease-in-out infinite}.camper-gallery-card__thumb img{display:block;width:100%;height:100%;object-fit:cover}.camper-gallery-card__stats{position:absolute;left:8px;bottom:8px;z-index:1;display:inline-flex;align-items:center;gap:10px;padding:4px 8px;border-radius:999px;background:#00000073;color:#fff;font-size:.72rem;font-weight:600;line-height:1;pointer-events:none}.camper-gallery-card__stats span{display:inline-flex;align-items:center;gap:4px}.camper-gallery-card__stats svg{width:12px;height:12px;flex-shrink:0}.camper-empty,.camper-loading{margin:0;padding:28px 16px;border:none;border-radius:0;background:var(--ca-hover);color:var(--ca-text-muted);font-size:.9rem;text-align:center}.camper-flash{margin:0 0 12px;padding:10px 12px;border-radius:10px;font-size:.88rem}.camper-flash--error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}html.camper-root[data-ca-theme=dark] .camper-flash--error,.camper-app[data-ca-theme=dark] .camper-flash--error{background:#2a1215;color:#ffb4b4;border-color:#5c2026}.camper-dev-fab{position:fixed;right:20px;bottom:24px;z-index:80;display:grid;place-items:center;width:48px;height:48px;border:none;border-radius:999px;background:var(--ca-surface);color:var(--ca-text);box-shadow:0 4px 16px #0000001f;cursor:pointer}.camper-dev-fab svg{width:22px;height:22px}.camper-dev-fab:hover{background:var(--ca-hover)}.camper-dev-panel{position:fixed;top:0;right:0;z-index:90;display:flex;flex-direction:column;gap:16px;width:min(320px,100vw);height:100dvh;padding:20px;border-left:none;background:var(--ca-surface);box-shadow:-8px 0 32px #0000001a}.camper-dev-panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.camper-dev-panel__head h2{margin:0;font-family:var(--ca-heading-font);font-size:1.2rem}.camper-dev-panel__close{width:32px;height:32px;border:1px solid var(--ca-border);border-radius:8px;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer}.camper-dev-panel__field{display:flex;flex-direction:column;gap:8px;font-size:.88rem;font-weight:600}.camper-dev-panel__row{display:flex;align-items:center;gap:12px}.camper-dev-panel__row input[type=color]{width:48px;height:36px;padding:0;border:1px solid var(--ca-border);border-radius:8px;background:transparent;cursor:pointer}.camper-dev-panel__row code{font-size:.85rem;font-weight:600;color:var(--ca-text-muted)}.camper-dev-panel__select{width:100%;height:40px;padding:0 12px;border:1px solid var(--ca-border);border-radius:8px;background:var(--ca-surface);color:var(--ca-text);font:inherit;font-size:.9rem;cursor:pointer}.camper-dev-panel__hint{margin:0;font-size:.95rem;font-weight:500;color:var(--ca-text-muted);letter-spacing:.01em}.camper-dev-panel__reset{height:40px;border:1px solid var(--ca-border);border-radius:8px;background:var(--ca-hover);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.camper-dev-panel__reset:hover{border-color:var(--ca-primary);color:var(--ca-primary)}.camper-lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:28px 40px;background:#000000a6;font-family:var(--ca-body-font)}.camper-lightbox__close{position:absolute;top:16px;right:16px;z-index:2;display:grid;place-items:center;width:40px;height:40px;border:none;border-radius:999px;background:transparent;color:#fff;cursor:pointer}.camper-lightbox__close svg{width:24px;height:24px}.camper-lightbox__dialog{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,340px);width:min(1100px,100%);height:min(860px,calc(100dvh - 56px));max-height:calc(100dvh - 56px);overflow:hidden;background:var(--ca-surface);border-radius:4px;box-shadow:0 12px 48px #00000059}.camper-lightbox__media{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:#000;overflow:hidden}.camper-lightbox__track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.camper-lightbox__track::-webkit-scrollbar{display:none}.camper-lightbox__track.is-zoomed{overflow:hidden}.camper-lightbox__slide{position:relative;flex:0 0 100%;width:100%;height:100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center}.camper-lightbox__slide .lightbox-zoom{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.camper-lightbox__slide img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#000}.camper-lightbox__stage,.camper-lightbox__stage .lightbox-zoom{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.camper-lightbox__stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#000}.camper-lightbox__nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:40px;height:40px;margin-top:-20px;border:none;border-radius:999px;background:var(--ca-surface);color:var(--ca-text);box-shadow:0 2px 8px #0003;cursor:pointer}.camper-lightbox__nav svg{width:22px;height:22px}.camper-lightbox__nav:disabled{opacity:.4;cursor:default}.camper-lightbox__nav--prev{left:12px}.camper-lightbox__nav--next{right:12px}.camper-lightbox__dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:4px;pointer-events:none}.camper-lightbox__dot{width:6px;height:6px;padding:0;border:none;border-radius:999px;background:#ffffff73;pointer-events:auto;cursor:pointer}.camper-lightbox__dot.is-active{background:#fff}.camper-lightbox__aside{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-left:1px solid var(--ca-border);background:var(--ca-surface);color:var(--ca-text)}.camper-lightbox__aside-head{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:14px 16px;border-bottom:1px solid var(--ca-border)}.camper-lightbox__avatar{display:inline-grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:999px;background:var(--ca-primary);color:var(--ca-on-primary);font-size:.75rem;font-weight:700}.camper-lightbox__avatar--sm{width:28px;height:28px;font-size:.7rem}.camper-lightbox__meta{display:flex;flex-direction:column;gap:2px;min-width:0}.camper-lightbox__meta strong{font-size:.9rem;font-weight:700;line-height:1.2}.camper-lightbox__meta span{font-size:.78rem;color:var(--ca-text-muted)}.camper-lightbox__aside-body{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.camper-lightbox__caption-block{display:flex;align-items:flex-start;gap:12px}.camper-lightbox__caption-block p{margin:0;font-size:.9rem;line-height:1.45}.camper-lightbox__caption-block strong{font-weight:700}.camper-lightbox__tag{color:var(--ca-link)}.camper-lightbox__comments{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.camper-lightbox__load-more{display:flex;justify-content:center;padding:8px 0 4px}.camper-lightbox__load-more-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--ca-border);border-radius:999px;background:var(--ca-surface);color:var(--ca-text-muted);font-size:1.1rem;font-weight:500;line-height:1;cursor:pointer}.camper-lightbox__load-more-btn:hover:not(:disabled){color:var(--ca-text);border-color:var(--ca-text-muted)}.camper-lightbox__load-more-btn:disabled{opacity:.55;cursor:default}.camper-lightbox__comments-status{margin:0;font-size:.82rem;color:var(--ca-text-muted)}.camper-lightbox__comments-status.is-error{color:var(--ca-danger)}.camper-lightbox__comment-list{display:flex;flex-direction:column;gap:14px}.camper-lightbox__thread{display:flex;flex-direction:column;gap:10px}.camper-lightbox__comment{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:flex-start}.camper-lightbox__comment.is-reply{margin-left:36px}.camper-lightbox__comment-main{min-width:0}.camper-lightbox__comment-body{margin:0;font-size:.88rem;line-height:1.4;color:var(--ca-text);word-break:break-word}.camper-lightbox__comment-body strong{font-weight:700;margin-right:4px}.camper-lightbox__comment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:.72rem;color:var(--ca-text-muted)}.camper-lightbox__comment-action{padding:0;border:none;background:transparent;color:var(--ca-text-muted);font:inherit;font-weight:600;cursor:pointer}.camper-lightbox__comment-action:hover{color:var(--ca-text)}.camper-lightbox__comment-action.is-danger:hover{color:var(--ca-danger)}.camper-lightbox__comment-like{display:grid;place-items:center;margin-top:2px;padding:0;border:none;background:transparent;color:var(--ca-text-muted);cursor:pointer}.camper-lightbox__comment-like svg{width:14px;height:14px}.camper-lightbox__comment-like.is-liked{color:var(--ca-danger)}.camper-lightbox__avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.camper-lightbox__composer{margin-top:6px;padding-top:6px;border-top:1px solid color-mix(in srgb,var(--ca-border) 70%,transparent)}.camper-lightbox__composer-reply{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.75rem;color:var(--ca-text-muted)}.camper-lightbox__composer-row{display:flex;align-items:flex-end;gap:8px}.camper-lightbox__composer-row textarea{flex:1;min-width:0;max-height:96px;resize:none;border:none;outline:none;background:transparent;font:inherit;font-size:.88rem;line-height:1.35;color:var(--ca-text);padding:4px 0;field-sizing:content}.camper-lightbox__composer-row textarea::placeholder{color:var(--ca-text-muted)}.camper-lightbox__composer-send{border:none;background:transparent;color:var(--ca-link);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;padding:4px 0;flex-shrink:0}.camper-lightbox__composer-send:disabled{opacity:.4;cursor:default}.camper-lightbox__composer-count{margin:2px 0 0;font-size:.72rem;color:var(--ca-text-muted)}.camper-lightbox__composer-count.is-over{color:var(--ca-danger)}.camper-lightbox__comment-icon{display:grid;place-items:center;color:var(--ca-text)}.camper-lightbox__aside-foot{flex-shrink:0;padding:8px 14px 10px;border-top:1px solid color-mix(in srgb,var(--ca-border) 70%,transparent)}.camper-lightbox__actions{display:flex;align-items:center;gap:14px;margin-bottom:4px;color:var(--ca-text)}.camper-lightbox__actions svg{width:22px;height:22px}.camper-lightbox__like-btn{display:grid;place-items:center;padding:0;border:none;background:transparent;color:var(--ca-text);cursor:pointer}.camper-lightbox__like-btn:disabled{opacity:.55;cursor:default}.camper-lightbox__like-btn.is-liked{color:var(--ca-danger)}.camper-lightbox__likes{margin:0 0 2px;font-size:.88rem;font-weight:700;line-height:1.2;color:var(--ca-text)}.camper-lightbox__date{margin:0;font-size:.7rem;font-weight:400;line-height:1.25;color:var(--ca-text-muted);text-transform:none;letter-spacing:0}@media (max-width: 860px){.camper-lightbox{padding:0;align-items:stretch}.camper-lightbox__dialog{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100dvh;max-height:100dvh;border-radius:0}.camper-lightbox__media{min-height:55dvh}.camper-lightbox__nav{display:none}.camper-lightbox__aside{border-left:none;border-top:1px solid color-mix(in srgb,var(--ca-border) 55%,transparent);max-height:45dvh}.camper-lightbox__aside-head{display:none}.camper-lightbox__aside-body{padding:10px 12px 6px;gap:10px}.camper-lightbox__comment-list{gap:10px}.camper-lightbox__aside-foot{padding:6px 12px 8px;border-top:1px solid color-mix(in srgb,var(--ca-border) 55%,transparent)}.camper-lightbox__actions{gap:14px;margin-bottom:4px}.camper-lightbox__actions svg{width:22px;height:22px}.camper-lightbox__likes{margin:0 0 2px;font-size:.84rem}.camper-lightbox__date{font-size:.68rem}.camper-lightbox__composer{margin-top:6px;padding-top:6px;border-top:1px solid color-mix(in srgb,var(--ca-border) 55%,transparent)}.camper-lightbox__composer-row textarea,.camper-lightbox__composer-send{padding:4px 0;font-size:.84rem}.camper-lightbox__close{top:10px;right:10px;background:#00000059}}@media (min-width: 901px){.camper-topnav__center{display:flex}.camper-drawer{display:none}.camper-dev-fab{bottom:24px}}@media (max-width: 900px){.camper-shell{grid-template-columns:1fr}.camper-sidebar{display:none}.camper-stage{padding:12px 0 16px}.camper-page-head,.camper-year-chips,.camper-empty,.camper-loading,.camper-winner{padding-left:16px;padding-right:16px}.camper-topnav__menu{display:inline-flex}.camper-topnav__logout,.camper-topnav__name{display:none}.camper-topnav__inner{padding:0 16px}}@media (max-width: 560px){.camper-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:170px}.camper-winner{padding:28px 16px}}.camper-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.camper-role-badge,.camper-leader-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:15px;height:15px;line-height:0;vertical-align:middle}.camper-role-badge--leader,.camper-leader-badge{color:#c9a227}.camper-role-badge--monitor{color:#9ca3af}.camper-role-badge svg,.camper-leader-badge svg{display:block;width:15px;height:15px}html.camper-root[data-ca-theme=dark] .camper-role-badge--leader,html.camper-root[data-ca-theme=dark] .camper-leader-badge,.camper-app[data-ca-theme=dark] .camper-role-badge--leader,.camper-app[data-ca-theme=dark] .camper-leader-badge{color:#e4c65b}html.camper-root[data-ca-theme=dark] .camper-role-badge--monitor,.camper-app[data-ca-theme=dark] .camper-role-badge--monitor{color:#d1d5db}.camper-topnav__avatar-wrap{position:relative;display:inline-flex;line-height:0}.camper-role-badge--avatar,.camper-leader-badge--avatar{position:absolute;right:-4px;bottom:-3px;width:14px;height:14px;background:var(--ca-surface);border-radius:50%;box-shadow:0 0 0 1px var(--ca-surface)}.camper-role-badge--avatar svg,.camper-leader-badge--avatar svg{width:12px;height:12px}.camper-drawer__user-name,.camper-profile-photo__name{display:inline-flex;align-items:center;gap:8px}.camper-lightbox__comment-body strong{display:inline-flex;align-items:center;gap:4px}
