@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,650&display=swap');

:root { --forest:#143c36; --forest-2:#21584e; --cream:#f4f0e6; --paper:#fffdf7; --ink:#1f2926; --muted:#68736f; --gold:#e5a93f; --coral:#d9684f; --line:#dcd8ce; --shadow:0 14px 40px rgba(20,60,54,.11); font-family:"DM Sans",sans-serif; color:var(--ink); background:var(--cream); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
.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; }
body { margin:0; min-height:100vh; background:radial-gradient(circle at 5% 5%,#fff9df 0,transparent 28rem),var(--cream); }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.topbar { height:72px; padding:0 max(20px,calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; background:rgba(244,240,230,.9); backdrop-filter:blur(14px); position:sticky; top:0; z-index:10; border-bottom:1px solid rgba(20,60,54,.08); }
.brand { color:var(--forest); text-decoration:none; font-family:"Fraunces",serif; font-size:1.45rem; display:flex; align-items:center; gap:9px; }
.brand-mark { display:grid; place-items:center; width:35px; height:35px; border-radius:50%; color:var(--forest); background:var(--gold); font-family:sans-serif; }
nav { display:flex; gap:5px; overflow:auto; }
.topbar nav { min-width:0; }
.nav-button { color:var(--muted); background:transparent; border:0; border-radius:999px; padding:9px 13px; white-space:nowrap; }
.nav-button.active { color:white; background:var(--forest); }
.shell { width:min(1180px,calc(100% - 32px)); margin:32px auto 80px; }
h1,h2,h3 { font-family:"Fraunces",serif; color:var(--forest); margin-top:0; line-height:1.08; }
h1 { font-size:clamp(2.3rem,7vw,5.5rem); letter-spacing:-.045em; }
h2 { font-size:clamp(1.6rem,3vw,2.4rem); }
h3 { font-size:1.25rem; }
p { line-height:1.55; }
.eyebrow { color:var(--coral); font-weight:700; text-transform:uppercase; letter-spacing:.13em; font-size:.76rem; }
.hero { display:grid; grid-template-columns:1.15fr .85fr; gap:24px; min-height:520px; }
.hero-card,.card { background:var(--paper); border:1px solid rgba(20,60,54,.09); border-radius:26px; padding:clamp(24px,4vw,52px); box-shadow:var(--shadow); }
.hero-card { display:flex; flex-direction:column; justify-content:center; overflow:hidden; position:relative; }
.hero-card:after { content:""; width:230px; height:230px; border:55px solid var(--gold); border-radius:50%; position:absolute; right:-110px; bottom:-100px; opacity:.7; }
.hero-card > * { position:relative; z-index:1; }
.hero-card p { max-width:620px; color:var(--muted); font-size:1.08rem; }
.login-column { display:grid; gap:24px; }
.login-card { background:var(--forest); color:white; border-radius:26px; padding:clamp(26px,4vw,48px); display:flex; flex-direction:column; justify-content:center; box-shadow:var(--shadow); }
.login-card h2,.login-card label { color:white; }
.login-card p { color:#c8d7d3; }
.login-card .legal-check { align-items:flex-start; color:#dce7e4; font-size:.78rem; line-height:1.45; }
.login-card .legal-check a { color:white; }
.stack { display:grid; gap:14px; }
.row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.split { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
label { display:grid; gap:7px; font-size:.85rem; font-weight:600; color:var(--forest); }
.check { display:flex; align-items:center; gap:10px; cursor:pointer; }
.check input { width:18px; height:18px; margin:0; flex:0 0 auto; accent-color:var(--forest); }
.check span { min-width:0; }
.check small { display:block; margin-top:2px; color:var(--muted); font-weight:500; line-height:1.35; }
.answer-location { display:grid; gap:12px; margin:0; padding:14px; border:1px solid var(--line); border-radius:14px; background:#f8f6ef; }
.answer-location:has([data-location-toggle]:checked) { border-color:#8aafa4; background:#f0f7f3; }
.answer-location > .muted { margin:0; }
.help { position:relative; display:inline-grid; place-items:center; width:17px; height:17px; margin-left:3px; border-radius:50%; color:white; background:var(--forest-2); font-size:.7rem; font-weight:700; cursor:help; vertical-align:text-bottom; }
.help:hover:after,.help:focus:after { content:attr(data-help); position:absolute; left:50%; bottom:calc(100% + 9px); width:230px; padding:10px 12px; border-radius:9px; color:white; background:var(--ink); font-size:.76rem; font-weight:500; line-height:1.4; text-align:left; box-shadow:var(--shadow); transform:translateX(-50%); z-index:20; pointer-events:none; }
.help:focus { outline:2px solid var(--gold); outline-offset:2px; }
input,textarea,select { width:100%; padding:12px 14px; color:var(--ink); background:white; border:1px solid var(--line); border-radius:12px; outline:none; }
input:focus,textarea:focus,select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(229,169,63,.2); }
textarea { resize:vertical; min-height:90px; }
.button { border:0; border-radius:12px; padding:12px 17px; font-weight:700; color:white; background:var(--forest); display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; }
.button:hover { background:var(--forest-2); transform:translateY(-1px); }
.button.secondary { color:var(--forest); background:#e6eee9; }
.button.gold { color:var(--forest); background:var(--gold); }
.button.danger { background:var(--coral); }
.button.small { padding:8px 11px; font-size:.82rem; }
.button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.divider { display:flex; align-items:center; gap:12px; color:#9bb1ab; margin:7px 0; }
.divider:before,.divider:after { content:""; height:1px; background:#436b64; flex:1; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.page-head h1 { font-size:clamp(2.2rem,5vw,4rem); margin-bottom:4px; }
.page-head p { margin:0; color:var(--muted); }
.page-head .hunt-summary { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.page-head .slideshow-note { max-width:280px; margin-top:7px; font-size:.85rem; line-height:1.35; }
.section-tabs { display:flex; gap:6px; width:max-content; margin:-8px 0 20px; padding:5px; border:1px solid var(--line); border-radius:14px; background:rgba(255,253,247,.75); }
.section-tab { padding:9px 16px; border:0; border-radius:10px; color:var(--muted); background:transparent; font-weight:700; }
.section-tab:hover { color:var(--forest); background:#e6eee9; }
.section-tab.active { color:white; background:var(--forest); }
.host-hunts > summary { display:flex; align-items:center; gap:12px; color:var(--forest); cursor:pointer; list-style:none; }
.host-hunts > summary::-webkit-details-marker { display:none; }
.host-hunts > summary:before { content:"▸"; font-size:1.35rem; transition:transform .15s; }
.host-hunts[open] > summary:before { transform:rotate(90deg); }
.host-hunts > summary h2 { margin:0; }
.host-hunts > summary .pill { margin-left:auto; }
.host-hunts[open] > summary { margin-bottom:18px; }
.participation-panel > summary { color:var(--forest); cursor:pointer; list-style:none; }
.participation-panel > summary::-webkit-details-marker { display:none; }
.participation-panel > summary > div { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.participation-panel > summary h2 { margin:0; }
.participation-panel > summary p { margin:0; }
.participation-panel > summary:before { content:"▸"; float:left; margin:3px 10px 0 0; font-size:1.35rem; transition:transform .15s; }
.participation-panel[open] > summary:before { transform:rotate(90deg); }
.participation-panel[open] > summary { margin-bottom:18px; }
.settings-panel summary { color:var(--forest); font-family:"Fraunces",serif; font-size:clamp(1.6rem,3vw,2.4rem); font-weight:650; line-height:1.08; cursor:pointer; }
.settings-panel[open] summary { margin-bottom:20px; }
.settings-panel form { max-width:720px; }
.settings-fields { min-width:0; margin:0; padding:0; border:0; }
.settings-fields:disabled input,.settings-fields:disabled textarea,.settings-fields:disabled select { color:var(--ink); background:#f4f0e6; opacity:1; }
.grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.span-12 { grid-column:span 12; }.span-8 { grid-column:span 8; }.span-7 { grid-column:span 7; }.span-6 { grid-column:span 6; }.span-5 { grid-column:span 5; }.span-4 { grid-column:span 4; }
.card { padding:24px; border-radius:20px; box-shadow:0 8px 24px rgba(20,60,54,.07); }
.card.flat { box-shadow:none; }
.card.gold { background:#f6d997; }
.time-panel { align-self:start; }
.card.forest { background:var(--forest); color:white; }.card.forest h2,.card.forest h3 { color:white; }
.guide-card h2 { font-size:1.7rem; }
.guide-card ol { margin:0; padding-left:1.25rem; line-height:1.55; }
.guide-card li + li { margin-top:8px; }
.guide-card p:last-child { margin-bottom:0; }
.guide-link { color:var(--forest); font-weight:700; text-decoration-color:var(--gold); text-decoration-thickness:2px; text-underline-offset:3px; }
.guide-link:hover { color:var(--forest-2); text-decoration-thickness:3px; }
.faq-list { display:grid; gap:12px; max-width:900px; }
.faq-item { padding:0; overflow:hidden; }
.faq-item summary { padding:22px 24px; color:var(--forest); font-family:"Fraunces",serif; font-size:1.3rem; font-weight:650; cursor:pointer; }
.faq-item p { margin:0; padding:0 24px 22px; color:var(--muted); }
.faq-item p + p { padding-top:0; }
.faq-item ol { margin:0; padding:0 42px 22px; color:var(--muted); line-height:1.55; }
.faq-item li + li { margin-top:8px; }
.overview-card > p { max-width:760px; }
.overview-points { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:24px; }
.overview-points > div { padding-top:16px; border-top:3px solid var(--gold); }
.overview-points h3,.overview-points p { margin:0; }
.overview-points p { margin-top:7px; color:var(--muted); }
.login-column .overview-points { grid-template-columns:1fr; }
.metric { font-family:"Fraunces",serif; color:var(--forest); font-size:2.5rem; display:block; }
.muted { color:var(--muted); }
.pill { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 10px; color:var(--forest); background:#e5eee9; font-size:.77rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.pill.pending { background:#fff0cb; }.pill.rejected { color:#812b1e; background:#f9d6cf; }.pill.approved { color:#15553c; background:#d8f1e4; }
.list { display:grid; gap:10px; }
.list-item { background:white; border:1px solid var(--line); border-radius:15px; padding:15px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.list-item p,.list-item h3 { margin:3px 0; }
.active-clue-link,.team-detail-link { color:var(--forest); text-decoration-color:var(--gold); text-decoration-thickness:2px; text-underline-offset:3px; }
.active-clue-link:hover,.team-detail-link:hover { color:var(--forest-2); text-decoration-thickness:3px; }
.clue-detail h2 { margin-top:28px; font-size:1.45rem; }
.clue-detail h2:first-of-type { margin-top:22px; }
.clue-attributes { display:flex; flex-wrap:wrap; gap:7px; }
.clue-instructions { max-width:65ch; font-size:1.08rem; white-space:pre-wrap; }
.clue-detail-photo { max-height:520px; object-fit:contain; }
.clue-hint-list { padding-left:22px; line-height:1.55; }
.clue-hint-list li + li { margin-top:8px; }
.clue-team-statuses { margin-top:18px; }
.clue-team-status { align-items:flex-start; }
.clue-team-status > div { min-width:0; }
.clue-team-status.current-team { border-color:#70ae8d; background:#edf8f2; }
.team-roster { margin-bottom:24px; }
.assignment-panel { margin:22px 0; padding:18px; border-radius:16px; background:#fff8e8; border:1px solid #ead59f; }
.assignment-panel > .split { margin-bottom:12px; }
.assignment-panel .assign-player { margin:0; }
.player-import { max-width:780px; margin:22px 0; padding:18px; border:1px solid #ead59f; border-radius:16px; background:#fff8e8; }
.player-import p { margin:0; }
.player-import .button { justify-self:start; }
.player-roster { display:grid; gap:14px; margin:24px 0; }
.player-roster > .split h3,.player-roster > .split p,.player-message h3 { margin:0; }
.participant-release { max-width:820px; margin:0 auto; }
.release-copy { border:1px solid var(--line); border-radius:14px; padding:18px 20px; background:var(--cream); }
.release-copy li { margin:0 0 14px; padding-left:5px; line-height:1.55; }
.release-copy p { line-height:1.55; }
.participant-release form { margin-top:22px; }
.marketing-authorization { margin:18px 0; }
.marketing-authorization h2 { margin-bottom:6px; }
.marketing-media-setting { padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--cream); }
.player-toolbar { padding:10px 12px; border-radius:12px; background:#edf2ee; }
.team-selector { display:flex; align-items:center; gap:8px; }
.team-selector select { width:auto; min-width:160px; padding:8px 11px; }
.player-row { justify-content:flex-start; }
.player-check { align-self:stretch; padding:4px; }
.player-details { flex:1; min-width:180px; }
.player-details .pill + .pill { margin-left:5px; }
.player-message { max-width:780px; margin-top:12px; padding-top:22px; border-top:1px solid var(--line); }
.direct-invite { margin:22px 0; color:var(--forest); }
.direct-invite summary { cursor:pointer; font-weight:700; }
.direct-invite form { margin-top:12px; }
.player-events { margin:18px 0; }
.join-event summary { color:var(--forest); cursor:pointer; font-weight:700; }
.join-event[open] summary { margin-bottom:16px; }
.marketplace-intro { margin-bottom:18px; background:#f6d997; }
.marketplace-intro p { max-width:760px; margin-bottom:0; }
.marketplace-search { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto; align-items:end; gap:12px; margin-bottom:18px; }
.marketplace-results { margin-bottom:18px; }
.marketplace-card { display:flex; flex-direction:column; gap:12px; }
.marketplace-card h2,.marketplace-card p { margin:0; }
.marketplace-card > .row { margin-top:auto; }
.marketplace-publish { max-width:820px; }
.corporate-generator { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(320px,1.3fr); gap:28px; margin-top:24px; }
.generator-intro p { color:var(--muted); }
.generator-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.generated-hunt { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
#generator-preview { grid-column:1 / -1; }
.generated-hunt h2,.generated-hunt p { margin-bottom:8px; }
.generated-clues { display:grid; gap:8px; margin-top:18px; }
.generated-clues details { padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:white; }
.generated-clues summary { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; color:var(--forest); font-weight:700; cursor:pointer; }
.generated-clues ol { margin:12px 0 0; padding-left:22px; color:var(--muted); }
.generated-clues li + li { margin-top:7px; }
.ai-clue-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:13px 14px; border:1px solid #cbded5; border-radius:12px; background:#f1f8f4; }
.ai-clue-controls p { margin:0; }
.batch-photo-import { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr); gap:24px; margin:22px 0 28px; padding:20px; border:1px solid #ead59f; border-radius:16px; background:#fff8e8; }
.batch-photo-import h3,.batch-photo-import p { margin:0 0 7px; }
.generator-save-note { padding:15px; border-radius:12px; background:#fff0cb; }
.answer-thumb-button { flex:0 0 auto; padding:0; border:0; border-radius:11px; background:transparent; cursor:zoom-in; }
.answer-thumb-button:hover,.answer-thumb-button:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.answer-thumb { width:120px; height:90px; object-fit:cover; border-radius:11px; flex:0 0 auto; }
.newly-added-clue { border-color:#70ae8d; box-shadow:0 0 0 3px rgba(21,85,60,.12); }
.clue-added-notice { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; margin:20px 0; padding:18px; border:1px solid #79b899; border-radius:15px; background:#edf8f2; scroll-margin-top:90px; }
.clue-added-notice.incomplete { border-color:#d7ad51; background:#fff6dd; }
.clue-added-notice:focus { outline:3px solid var(--gold); outline-offset:3px; }
.clue-added-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:white; background:#287556; font-size:1.15rem; font-weight:700; }
.clue-added-notice.incomplete .clue-added-icon { color:var(--forest); background:var(--gold); }
.clue-added-notice h3,.clue-added-notice p { margin:0; }
.clue-added-notice .eyebrow { margin-bottom:4px; }
.clue-added-notice .row { margin-top:12px; }
.clue-map-card { margin-bottom:18px; }
.clue-map-card .split p { margin:6px 0 18px; }
.unplaced-picker { max-width:460px; margin-bottom:14px; }
#clue-map { height:440px; border:1px solid var(--line); border-radius:15px; background:#e4e0d7; z-index:0; }
#map-status { min-height:1.55em; margin:8px 0 0; }
.map-unavailable { display:grid; place-items:center; height:100%; margin:0; padding:20px; text-align:center; }
.records-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:18px; background:#f6d997; }
.records-intro h2,.records-intro p { margin-bottom:8px; }
.records-intro > div:first-child { max-width:720px; }
.records-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px; }
.records-grid > .card { min-width:0; }
.record-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.record-list { display:grid; gap:10px; margin-top:20px; }
.record-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--line); border-radius:14px; background:white; }
.record-row > div { min-width:0; }
.record-row h3,.record-row p { margin:5px 0 0; overflow-wrap:anywhere; }
.record-thumb { width:96px; height:72px; flex:0 0 auto; border-radius:10px; object-fit:cover; }
.clue-card { background:var(--paper); border-radius:22px; border:1px solid rgba(20,60,54,.1); overflow:hidden; box-shadow:var(--shadow); }
.clue-number { height:8px; background:var(--gold); }
.clue-card.rejected-clue .clue-number { background:#b4513f; }
.clue-content { padding:25px; }
.difficulty-badge { display:flex; width:fit-content; align-items:baseline; gap:10px; margin:0 0 18px; padding:10px 14px; border-radius:12px; color:white; }
.difficulty-badge strong { font-family:"Fraunces",serif; font-size:1.35rem; }
.difficulty-badge span { font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.difficulty-easy { background:#287556; }
.difficulty-medium { color:var(--forest); background:#e5a93f; }
.difficulty-hard { background:#b64032; }
.clue-content h2 { font-size:1.7rem; }
.rejection-note { margin:16px 0; padding:14px; border:1px solid #e4a99d; border-radius:14px; background:#fff1ee; }
.rejection-note p { margin:10px 0; }
.hint-controls { margin:18px 0; padding:14px; border:1px solid #ead59f; border-radius:14px; background:#fff8e8; }
.hint-result { margin:10px 0 0; color:var(--forest); font-weight:700; }
.clue-photo,.hint-photo { margin-top:14px; }
.submit-photo,.retake-photo { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.photo-upload-status { margin:0; font-size:.85rem; }
.camera-dialog { width:min(680px,calc(100% - 24px)); }
.camera-card video,.camera-card .captured-photo { display:block; width:100%; max-height:45vh; border-radius:14px; background:var(--ink); object-fit:contain; }
.camera-card [hidden] { display:none; }
.camera-card video.front-camera { transform:scaleX(-1); }
.switch-camera { width:100%; margin-top:12px; }
.camera-status { margin-bottom:0; }
.pre-hunt-photos { margin-bottom:0; }
.pre-hunt-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.pre-hunt-photo-card { display:grid; grid-template-columns:140px minmax(0,1fr); gap:16px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--paper); }
.pre-hunt-photo-card h3,.pre-hunt-photo-card p { margin:0 0 7px; }
.pre-hunt-photo-card .photo,.pre-hunt-photo-placeholder { width:140px; height:140px; object-fit:cover; border-radius:14px; }
.pre-hunt-photo-placeholder { display:grid; place-items:center; background:#e4e0d7; font-size:2.4rem; }
.pre-hunt-photo { margin-top:12px; }
.submission-success { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; margin:0 0 22px; padding:20px; border:2px solid #70ae8d; border-radius:18px; background:#edf8f2; box-shadow:0 8px 24px rgba(20,60,54,.09); scroll-margin-top:90px; }
.submission-success:focus { outline:3px solid var(--gold); outline-offset:3px; }
.submission-success-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:white; background:#287556; font-size:1.35rem; font-weight:700; }
.submission-success h2,.submission-success p { margin:0; }
.submission-success .eyebrow { margin-bottom:4px; }
.submission-success .row { margin-top:14px; }
.submission-confetti { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:40; }
.submission-confetti i { position:absolute; top:-16px; left:var(--confetti-x); width:9px; height:15px; border-radius:2px; background:var(--confetti-color); animation:submission-confetti-fall 1.35s cubic-bezier(.2,.7,.4,1) var(--confetti-delay) both; }
.photo { display:block; width:100%; max-height:420px; object-fit:cover; border-radius:14px; background:#e4e0d7; }
.prize-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:16px 0 22px; }
.prize { padding:12px; border:1px solid #ead59f; border-radius:12px; background:#fff8e8; }
.prize p { margin:5px 0; }
.prize p.mine strong { color:var(--forest); text-decoration:underline; text-decoration-color:var(--gold); text-decoration-thickness:3px; }
.standings { width:100%; border-collapse:collapse; }
.standings td,.standings th { padding:11px 8px; border-bottom:1px solid var(--line); text-align:left; }
.standings tr.mine { background:#fff1c8; font-weight:700; }
.standings-team { color:var(--forest-2); font-weight:700; text-underline-offset:3px; }
.photo-voting { margin-top:24px; }
.photo-voting-category { margin-top:28px; }
.photo-voting-category > h3 { margin:0 0 12px; font-size:1.3rem; }
.photo-voting-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }
.photo-voting-card { min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:white; }
.photo-voting-card.winner { border:2px solid var(--gold); box-shadow:0 8px 24px rgba(20,60,54,.12); }
.photo-voting-card .photo { height:240px; }
.photo-voting-card .button { width:100%; text-align:left; }
.photo-voting-card .own-team-photo { padding:10px; border-radius:10px; background:var(--paper); }
.photo-vote-total { margin-bottom:0; color:var(--forest); font-size:1.1rem; }
.voting-clock { margin:8px 0 0; color:var(--forest); font-size:1.4rem; font-weight:800; text-align:right; }
.feedback-page { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(420px,1.25fr); gap:28px; align-items:start; max-width:1050px; margin:auto; }
.feedback-mode .topbar { position:static; }
.feedback-intro { position:sticky; top:104px; padding:34px 8px; }
.feedback-intro h1 { font-size:clamp(3rem,7vw,5.5rem); }
.feedback-intro > p:not(.eyebrow) { color:var(--muted); font-size:1.05rem; }
.feedback-intro .feedback-event-name { display:inline-block; margin-top:12px; padding:8px 12px; border-radius:999px; color:var(--forest); background:#e6eee9; font-weight:700; }
#event-feedback { padding:clamp(24px,4vw,42px); }
.feedback-question { margin:0; padding:0 0 24px; border:0; border-bottom:1px solid var(--line); }
.feedback-question legend { color:var(--forest); font-family:"Fraunces",serif; font-size:1.35rem; font-weight:700; }
.feedback-question > p { margin:7px 0 14px; color:var(--muted); }
.rating-options,.pace-options { display:grid; gap:8px; }
.rating-options label,.pace-options label { display:flex; align-items:center; gap:10px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:white; cursor:pointer; }
.rating-options label:has(input:checked),.pace-options label:has(input:checked) { border-color:var(--gold); background:#fff8e8; box-shadow:0 0 0 2px rgba(229,169,63,.2); }
.rating-options input,.pace-options input { width:18px; margin:0; accent-color:var(--forest); }
.rating-stars { width:86px; color:var(--gold); letter-spacing:1px; }
.feedback-comment { margin-top:4px; font-size:1rem; }
.feedback-thanks { max-width:720px; margin:10vh auto; text-align:center; }
.feedback-thanks > span { display:grid; place-items:center; width:68px; height:68px; margin:0 auto 20px; border-radius:50%; color:white; background:var(--forest); font-size:2rem; }
.feedback-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:24px 0; }
.feedback-score,.feedback-pace { padding:18px; border:1px solid var(--line); border-radius:16px; background:#f7f4ec; }
.feedback-score > span { color:var(--forest); font-family:"Fraunces",serif; font-size:2.5rem; font-weight:700; }
.feedback-score p,.feedback-score small { margin:2px 0; color:var(--muted); }
.feedback-pace h3 { margin-bottom:12px; }
.feedback-pace p { display:flex; justify-content:space-between; margin:6px 0; color:var(--muted); }
.feedback-comments { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.feedback-comments blockquote { margin:0; padding:18px; border-left:4px solid var(--gold); border-radius:4px 14px 14px 4px; background:#f7f4ec; }
.feedback-comments blockquote p { margin-top:0; white-space:pre-wrap; }
.feedback-comments footer { color:var(--muted); font-size:.8rem; }
.admin-tabs { max-width:100%; overflow:auto; }
.admin-hunts { display:grid; gap:12px; margin-top:20px; }
.admin-hunt { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:white; }
.admin-hunt > summary { padding:16px 18px; color:var(--forest); cursor:pointer; }
.admin-hunt > summary span { display:grid; gap:3px; }
.admin-hunt > summary strong { font-family:"Fraunces",serif; font-size:1.2rem; }
.admin-hunt > summary small { color:var(--muted); font-weight:500; }
.admin-event-list { border-top:1px solid var(--line); }
.admin-event-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 18px; background:#f9f7f0; }
.admin-event-row + .admin-event-row { border-top:1px solid var(--line); }
.admin-event-row h3,.admin-event-row p { margin:5px 0 0; }
.admin-event-metrics { display:flex; gap:10px; flex-wrap:wrap; }
.admin-event-metrics span { min-width:125px; padding:10px 12px; border-radius:10px; color:var(--muted); background:white; text-align:center; }
.admin-event-metrics strong { display:block; color:var(--forest); font-family:"Fraunces",serif; font-size:1.45rem; }
.admin-response-groups,.admin-responses { display:grid; gap:16px; }
.admin-responses { margin-top:20px; }
.admin-responses article { padding:18px; border:1px solid var(--line); border-radius:14px; background:#f9f7f0; }
.admin-rating-row { display:flex; gap:8px; flex-wrap:wrap; }
.admin-rating-row span { padding:7px 10px; border-radius:9px; color:var(--muted); background:white; }
.admin-rating-row strong { color:var(--forest); }
.admin-responses blockquote,.marketing-response blockquote { margin:16px 0; padding-left:16px; border-left:4px solid var(--gold); white-space:pre-wrap; }
.marketing-response h3 { margin:22px 0 6px; }
.review { display:grid; grid-template-columns:minmax(280px,1.1fr) minmax(260px,.9fr); gap:24px; }
.review-comparison { display:grid; gap:14px; align-content:start; }
.review-comparison.has-reference { grid-template-columns:repeat(2,minmax(0,1fr)); }
.review-comparison figure { min-width:0; margin:0; }
.review-comparison figcaption { margin-bottom:8px; color:var(--forest); font-weight:800; }
.review-comparison .photo { height:250px; }
.review-comparison .button { width:100%; margin-top:10px; }
.team-submission { min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:white; }
.team-submission .photo { height:240px; }
.team-submission h3,.team-submission p { margin:10px 0; }
.judgment-correction { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.judgment-correction summary { cursor:pointer; color:var(--green); font-weight:700; }
.judgment-correction form { margin-top:12px; }
.team-chat h2,.team-chat .eyebrow,.team-chat .muted { margin-bottom:4px; }
.chat-messages { display:flex; flex-direction:column; gap:10px; min-height:180px; max-height:420px; margin:18px 0; padding:16px; overflow-y:auto; border:1px solid var(--line); border-radius:16px; background:#f7f4ec; }
.chat-message { align-self:flex-start; width:min(78%,680px); padding:11px 14px; border:1px solid var(--line); border-radius:5px 15px 15px; background:white; }
.chat-message.mine { align-self:flex-end; border-color:#b8d5c5; border-radius:15px 5px 15px 15px; background:#e5eee9; }
.chat-message.operator { border-left:4px solid var(--gold); }
.chat-meta { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.75rem; }
.chat-meta strong { color:var(--forest); }
.chat-meta .pill { padding:3px 7px; font-size:.62rem; }
.chat-meta time { margin-left:auto; white-space:nowrap; }
.chat-message p { margin:6px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.chat-status { margin:auto; text-align:center; }
.chat-form { align-items:stretch; }
.chat-form label { flex:1; }
.chat-form textarea { min-height:54px; height:54px; }
.submitted-clue { min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:white; scroll-margin-top:100px; }
.submitted-clue:target,.submitted-clue.linked-submission { outline:3px solid var(--gold); outline-offset:3px; }
dialog { width:min(520px,calc(100% - 32px)); padding:0; border:0; border-radius:20px; color:var(--ink); background:transparent; box-shadow:var(--shadow); }
dialog::backdrop { background:rgba(18,31,28,.58); backdrop-filter:blur(3px); }
.modal-card { padding:28px; border:1px solid rgba(20,60,54,.09); border-radius:20px; background:var(--paper); }
.modal-card .check { margin:22px 0 8px; padding:14px; border:1px solid var(--line); border-radius:12px; background:white; }
.modal-actions { justify-content:flex-end; margin-top:24px; }
.event-change-dialog { width:min(620px,calc(100% - 32px)); }
.event-change-list { max-height:38vh; overflow:auto; border:1px solid var(--line); border-radius:12px; background:white; }
.event-change-list .check { margin:0; border:0; border-radius:0; }
.event-change-list .check + .check { border-top:1px solid var(--line); }
.event-change-list .check span { display:grid; gap:2px; }
.event-change-list small { color:var(--muted); }
.split-hunt-dialog { width:min(760px,calc(100% - 32px)); }
.split-hunt-names { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.split-clue-grid { max-height:42vh; overflow:auto; border:1px solid var(--line); border-radius:12px; background:white; }
.split-clue-header,.split-clue-row { display:grid; grid-template-columns:minmax(150px,1fr) 90px 90px; gap:10px; align-items:center; padding:10px 14px; }
.split-clue-header { position:sticky; top:0; border-bottom:1px solid var(--line); background:#f7f4ec; z-index:1; }
.split-clue-header span { text-align:center; font-size:.8rem; font-weight:700; color:var(--forest); }
.split-clue-row + .split-clue-row { border-top:1px solid var(--line); }
.split-clue-grid .check { justify-content:center; margin:0; padding:6px; border:0; background:transparent; }
.text-button { padding:2px; border:0; color:var(--forest-2); background:transparent; font-size:.75rem; text-decoration:underline; }
.qr-card { text-align:center; }
.qr-image-wrap { display:grid; place-items:center; width:min(100%,360px); aspect-ratio:1; margin:20px auto; padding:16px; border:1px solid var(--line); border-radius:16px; background:white; }
.qr-image-wrap img { display:block; width:100%; height:100%; }
.qr-url { overflow-wrap:anywhere; color:var(--forest); font-weight:700; }
.image-dialog { width:min(1100px,calc(100% - 32px)); max-height:calc(100% - 32px); }
.image-dialog-card { display:grid; gap:16px; padding:20px; border-radius:20px; background:var(--paper); }
.image-dialog-card .split { align-items:center; }
.image-dialog-card h2 { margin:0; }
.full-size-image { display:block; width:100%; max-height:calc(100vh - 190px); margin:auto; object-fit:contain; border-radius:12px; }
.image-dialog-card > a { justify-self:center; }
.time { font-variant-numeric:tabular-nums; }
.progress { height:8px; border-radius:8px; background:#d9ded9; overflow:hidden; }
.progress span { display:block; height:100%; background:var(--gold); }
.empty { text-align:center; padding:45px 20px; color:var(--muted); }
.empty span { font-size:2.8rem; color:var(--gold); }
.site-footer { width:min(1180px,calc(100% - 32px)); margin:-38px auto 28px; padding-top:22px; display:flex; justify-content:space-between; gap:18px; border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
.site-footer nav { display:flex; gap:18px; }
.site-footer a,.legal-document a { color:var(--forest-2); }
.legal-head { max-width:900px; }
.legal-effective { margin-top:10px!important; font-size:.85rem; }
.legal-document { max-width:900px; margin:auto; padding:clamp(24px,5vw,58px); }
.legal-document section { scroll-margin-top:92px; }
.legal-document section + section { margin-top:38px; padding-top:30px; border-top:1px solid var(--line); }
.legal-document h2 { font-size:1.65rem; }
.legal-document h3 { margin-top:24px; }
.legal-document p,.legal-document li { line-height:1.68; }
.legal-document li + li { margin-top:8px; }
.legal-document address { padding:16px; border-left:4px solid var(--gold); background:#f7f4ec; font-style:normal; line-height:1.7; white-space:pre-line; }
.legal-toc { display:flex; flex-wrap:wrap; gap:9px 18px; margin-bottom:35px; padding:16px; border-radius:14px; background:#edf2ee; }
.legal-toc strong { width:100%; color:var(--forest); }
.legal-summary { margin:-12px -12px 0; padding:22px!important; border:1px solid #ead59f!important; border-radius:14px; background:#fff8e8; }
.legal-consent { max-width:700px; margin:10vh auto; }
.legal-consent h1 { font-size:clamp(2.2rem,5vw,4rem); }
.legal-consent form { max-width:560px; margin-top:24px; }
.legal-consent .check { align-items:flex-start; padding:16px; border:1px solid var(--line); border-radius:12px; background:white; line-height:1.5; }
#toast { position:fixed; right:20px; bottom:20px; max-width:360px; padding:13px 17px; background:var(--ink); color:white; border-radius:12px; box-shadow:var(--shadow); opacity:0; transform:translateY(15px); pointer-events:none; transition:.2s; z-index:30; }
#toast.show { opacity:1; transform:none; }
.loading { animation:pulse 1.3s infinite alternate; }
@keyframes pulse { to { opacity:.58; } }
@keyframes submission-confetti-fall { 75% { opacity:1; } to { opacity:0; transform:translate(var(--confetti-drift),105vh) rotate(540deg); } }
@media(prefers-reduced-motion:reduce) { .submission-confetti { display:none; } }
@media(max-width:1100px) { .topbar { padding:0 10px; }.topbar nav { gap:2px; }.brand { font-size:1.1rem; }.nav-button { padding:8px 7px; font-size:.82rem; } }
@media(max-width:800px) { .hero,.feedback-page,.records-grid,.batch-photo-import { grid-template-columns:1fr; }.hero-card { min-height:410px; }.feedback-intro { position:static; padding:10px 4px 0; }.feedback-intro h1 { margin-bottom:12px; }.overview-points,.pre-hunt-photo-grid,.feedback-summary { grid-template-columns:1fr; }.marketplace-search,.corporate-generator { grid-template-columns:1fr; }.span-8,.span-7,.span-6,.span-5,.span-4 { grid-column:span 12; }.review { grid-template-columns:1fr; }.page-head,.records-intro { align-items:flex-start; flex-direction:column; }.topbar { height:auto; padding:8px 14px; flex-wrap:wrap; gap:6px; }.topbar nav { width:100%; }.brand { font-size:1.15rem; }.nav-button { padding:8px 9px; font-size:.85rem; } }
@media(max-width:500px) { .shell { width:min(100% - 20px,1180px); margin-top:16px; }.hero-card,.login-card,.card { padding:21px; border-radius:19px; }.generator-fields,.split-hunt-names,.record-form-grid { grid-template-columns:1fr; }.list-item,.record-row,.admin-account-create,.admin-event-row { align-items:stretch; flex-direction:column; }.list-item .button,.record-row .button,.admin-account-create .button { width:100%; }.admin-event-metrics span { flex:1; }.clue-added-notice,.submission-success,.pre-hunt-photo-card { grid-template-columns:1fr; }.clue-added-notice .button,.submission-success .button { width:100%; }.pre-hunt-photo-card .photo,.pre-hunt-photo-placeholder { width:100%; height:auto; aspect-ratio:1; }.split-clue-header,.split-clue-row { grid-template-columns:minmax(110px,1fr) 64px 64px; padding:9px; }.chat-message { width:90%; }.chat-form .button { width:100%; }#clue-map { height:360px; }.site-footer { align-items:flex-start; flex-direction:column; margin-top:-48px; }.site-footer nav { flex-direction:column; gap:8px; }.legal-head h1 { font-size:2rem; }.legal-document { padding:22px; } }
@media print { body > :not(#app),#app > :not(dialog[open]) { display:none!important; } #app { width:100%; margin:0; } dialog[open] { position:static; display:block; width:100%; max-width:none; box-shadow:none; } dialog::backdrop,.modal-actions { display:none; } .modal-card { border:0; } .qr-image-wrap { width:4.5in; } }
