:root{color-scheme:light;--ink:#142e47;--muted:#526b80;--pink:#c92f6e;--sky:#e8f6fc;--line:#d7e6ef;--green:#187d68;--blue:#1765a9;--purple:#7949ad}*{box-sizing:border-box}body{margin:0;background:#f3f9fc;color:var(--ink);font:16px/1.65 system-ui,-apple-system,'Segoe UI',Tahoma,sans-serif}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #efac20;outline-offset:3px}header{padding:20px max(22px,calc((100vw - 1200px)/2));background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:800;letter-spacing:.1em;font-size:14px}.brand span{color:var(--pink)}.tag{font-size:13px;color:#68420e;background:#fff1d5;border:1px solid #f0d298;border-radius:99px;padding:4px 12px;white-space:nowrap}main{max-width:1244px;margin:auto;padding:24px 22px 48px}.intro{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}h1{font-size:clamp(25px,4vw,38px);line-height:1.25;letter-spacing:-.035em;margin:0 0 5px}h2{font-size:19px;margin:0 0 12px}p{margin:0}.sub{color:var(--muted);font-size:14px}.ghost{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:white;color:var(--ink);font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:16px;margin-bottom:20px;overflow:hidden}.stat{padding:15px 22px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat small{display:block;color:var(--muted);font-size:13px}.stat strong{font-size:27px;line-height:1.4}.stat em{font-style:normal;font-size:14px;color:var(--muted);margin-left:5px}.progress{height:5px;border-radius:10px;background:#e4eef4;margin-top:8px;overflow:hidden}.progress>div{height:100%;background:#3289b5;transition:width .3s}.layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.9fr);gap:22px;align-items:start}.board{position:relative;overflow:hidden;background:#163b53;border:1px solid #264e65;border-radius:20px;color:white;box-shadow:0 12px 36px #15384f16}.board-head{padding:20px 23px 0;display:flex;justify-content:space-between;align-items:center;gap:10px}.eyebrow{font-size:12px;letter-spacing:.16em;color:#abd7e9}.board h2{margin:2px 0 0;font-size:21px}.board-head .campcount{background:#ffffff13;border:1px solid #ffffff30;padding:6px 12px;border-radius:10px;font-weight:700}.legend{display:flex;justify-content:space-around;font-size:14px;color:#d9f0fa;padding:15px 15px 0}.legend span{display:flex;gap:6px;align-items:center}.dot{width:9px;height:9px;border-radius:50%;background:var(--c)}#boardSvg{width:100%;height:auto;max-height:520px;display:block;overflow:visible}.board-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 22px 18px;border-top:1px solid #ffffff19;font-size:14px}.stage-list{display:flex;gap:7px}.stage-dot{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;border:1px solid #7897aa;color:#bdd3df;font-size:13px}.stage-dot.done{background:#a8e4c9;border-color:#a8e4c9;color:#174435}.stage-dot.current{background:white;border-color:white;color:#173c54;font-weight:800}.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:16px}.section-label{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-weight:750}.n{display:grid;place-items:center;background:var(--sky);width:26px;height:26px;border-radius:8px;color:#226c95;font-size:14px;flex:none}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.route{border:1.5px solid var(--line);border-radius:12px;background:white;padding:12px 5px;color:var(--ink);text-align:center}.route b{display:block;font-size:14px;white-space:nowrap}.route .symbol{display:block;font-size:24px;line-height:1.3;margin-bottom:5px}.route small{display:block;font-size:13px;color:var(--muted)}.route[aria-pressed=true]{background:#eaf6ff;border-color:#2679ac;box-shadow:0 0 0 1px #2679ac}.route[data-route=flower][aria-pressed=true]{background:#fff0f6;border-color:#d35f8f;box-shadow:0 0 0 1px #d35f8f}.route[data-route=cave][aria-pressed=true]{background:#f5efff;border-color:#9270bc;box-shadow:0 0 0 1px #9270bc}.route:disabled{opacity:.7}.route[aria-pressed=true]:disabled{opacity:1}.note{font-size:13px;color:var(--muted);margin-top:9px}.divider{height:1px;background:var(--line);margin:20px 0}.stone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stone{border:1.5px solid var(--line);background:white;border-radius:12px;text-align:left;padding:12px 10px;color:var(--ink)}.stone .difficulty{font-size:13px;color:var(--tone);font-weight:750}.stone b{display:block;font-size:23px;line-height:1.5}.stone b span{font-size:13px;font-weight:500}.stone small{display:block;font-size:13px;line-height:1.5}.stone[aria-pressed=true]{border-color:var(--tone);background:var(--wash);box-shadow:0 0 0 1px var(--tone)}.free{display:flex;align-items:center;gap:8px;font-size:13px;background:#f4f8fb;border-radius:9px;padding:9px 11px;margin:12px 0}.free b{color:#1b638b}.name{margin-top:14px;font-size:14px;display:block}.name input{display:block;width:100%;padding:9px 12px;border:1px solid #bfcfdc;border-radius:9px;color:var(--ink);margin-top:5px;background:white;min-height:43px}.primary{background:#173c54;color:white;border:0;border-radius:11px;width:100%;font-size:17px;font-weight:700;padding:13px 12px;margin-top:15px}.primary:hover:not(:disabled){background:#225876}.status{padding:13px 15px;background:#edf6fb;border-left:3px solid #4b93b9;border-radius:0 10px 10px 0;margin-top:15px;font-size:14px;min-height:70px}.status strong{display:block;font-size:16px}.rules summary,.history summary{cursor:pointer;font-weight:700;font-size:16px}.rules p{font-size:14px;margin:12px 0;color:#405d73}.history{margin-top:20px}.history ol{padding:0;list-style:none;margin-bottom:0}.history li{border-top:1px solid var(--line);padding:12px 0;font-size:14px}.history li strong{font-size:15px}.history li small{display:block;color:var(--muted);font-size:13px}.history .empty{color:var(--muted);margin-top:12px;font-size:14px}.history-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.finished{background:#fff1cd;border-color:#e0b84b}.toast{padding:12px;border-radius:8px;background:#fff4d7;font-size:14px;margin-top:12px}.hidden{display:none!important}dialog{border:1px solid var(--line);border-radius:16px;padding:26px;max-width:400px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#0b233b88}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.dialog-actions button{width:auto;margin:0}footer{font-size:13px;color:var(--muted);margin-top:20px;text-align:center}svg text{font-family:system-ui,Tahoma,sans-serif}#token{transition:transform .19s ease-out}#token text{font-size:31px}#token circle{fill:#fff;stroke:#f3b1cc;stroke-width:3}.hold-label{fill:#d4e8f1;font-size:15px;pointer-events:none}.reward-label{font-size:23px}.trail{fill:none;stroke-width:2;stroke-dasharray:4 8}.at-camp{fill:#133449;stroke:#789bb1;stroke-width:1.5}.camp-label{fill:#e8f4fb;font-size:15px}.motionless #token{transition:none}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:760px){header{padding:13px 16px}.brand{font-size:12px;letter-spacing:.07em}.tag{font-size:12px;padding:3px 8px}main{padding:20px 14px 28px}.intro{align-items:flex-start}.intro .ghost{font-size:12px;padding:6px 8px;flex:none}.stats{margin-bottom:14px}.stat{padding:12px 10px}.stat strong{font-size:23px}.stat small{font-size:12px}.stat em{font-size:12px;margin:0}.layout{grid-template-columns:1fr;gap:14px}.board-head{padding:16px 18px 0}.board h2{font-size:18px}.board-foot{padding:12px 15px;flex-wrap:wrap}.panel{padding:18px;margin-bottom:12px}.legend{font-size:13px}#boardSvg{max-height:460px}.stage-dot{width:24px;height:24px}.history{margin-top:14px}.sub{font-size:13px}.route b{font-size:14px}.note{font-size:13px}}@media(min-width:761px){.control-col{position:sticky;top:16px}}@media(max-width:370px){.stat strong{font-size:21px}.stat{padding:10px 8px}.route-grid{gap:5px}.panel{padding:14px}.stage-list{gap:5px}.stone-grid{gap:6px}}

/* Approved pastel climbing-wall artwork, v2. Game rules unchanged. */
.board{background:#e6f4fb;border-color:#b5d7e8;color:#173c54;box-shadow:0 12px 36px #316a8e18}
.board-head{background:#f4fbff;padding-bottom:14px}.eyebrow{color:#47788f}.board-head .campcount{background:white;border-color:#c6deeb}.legend{background:#f4fbff;padding:0 10px 14px;color:#284e65}
#boardSvg{max-height:640px}.board-foot{background:#f4fbff;border-color:#c6deeb}.stage-dot{color:#486d83;border-color:#9fc3d7}.stage-dot.current{background:#267d9c;color:white;border-color:#267d9c}.stage-dot.done{background:#b8e8da}
.hold-label{fill:#183f57;font-size:14px;font-weight:650}.trail{stroke-width:1.4;stroke-dasharray:3 7;opacity:.65}.at-camp{fill:#fffdf5;stroke:#829eb0;stroke-width:1.2}.camp-label{fill:#173c54;font-size:15px;font-weight:650}.reward-label{font-size:21px}
@media(max-width:760px){#boardSvg{max-height:none}.legend{font-size:13px}.board-head{padding-bottom:12px}}

/* v3 midpoint forks: preserve full board geometry at every width. */
#boardSvg{max-height:none}.legend{font-size:12px;gap:6px}.reward-label{font-size:13px;font-weight:700}.camp-label{font-size:14px}.trail{stroke-width:1.7;stroke-dasharray:3 6}.board .hold-label{font-size:14px}

.donor-label{font-size:12px;font-weight:650;fill:#173c54;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.name input[type=file]{font-size:13px;padding:8px;width:100%;min-width:0}.legend{flex-wrap:wrap}.free{flex-wrap:wrap}

/* Pastel climbing-gym theme: cream panels, mint holds, sakura and lilac. */
:root{--ink:#524640;--muted:#75675f;--pink:#b34470;--sky:#e4f3ed;--line:#e8dbce;--green:#23735f;--blue:#36708f;--purple:#805b9c}
body{background-color:#fff8ed;background-image:radial-gradient(circle at 15% 15%,#f6d9e999,transparent 35%),radial-gradient(circle at 85% 45%,#d8efe599,transparent 40%),radial-gradient(#cfbca84d 1px,transparent 1px);background-size:auto,auto,24px 24px}
header{background:#fffcf6;border-bottom:2px solid #ecdfd0}.brand{color:#6a5144}.tag{background:#fae9d3;border-color:#e9cc9e;color:#77501f}
.intro{padding:12px 0}.intro-story{display:flex;align-items:center;gap:18px;min-width:0}.hero-pancake{width:90px;height:110px;object-fit:contain;flex:none;filter:drop-shadow(0 5px 4px #967c6420)}h1{color:#755341;font-weight:800}.sub{color:var(--muted)}
.stats,.panel{background:#fffdf8;border:2px solid var(--line);box-shadow:0 6px 0 #dfd2bf38;border-radius:24px}.stat{border-color:#eaded2}.stat:nth-child(1){background:#fff6e7}.stat:nth-child(2){background:#edf7f0}.stat:nth-child(3){background:#fceef3}.stat strong{color:#775341}.progress{background:#e9dfd1;height:7px}.progress>div{background:linear-gradient(90deg,#83c9b1,#c0dda6)}
.board{border:3px solid #e4d0bd;border-radius:28px;box-shadow:0 8px 0 #ddcbb64a}.board-head,.legend,.board-foot{background:#fff8e9;color:#675346}.board-head{border-bottom:0}.board h2{color:#72513f}.eyebrow{color:#8a7969;letter-spacing:.12em}.board-head .campcount{background:#f5e4c9;border:1px solid #e5c9a0;border-radius:14px;color:#795834}.board-foot{border-color:#e9d8bd}.stage-dot{color:#8c7562;border-color:#d4bea4}.stage-dot.current{background:#6eaa94;border-color:#6eaa94}.stage-dot.done{background:#d6ebd3;border-color:#b4cfb0;color:#466642}
.n{background:#dff0e6;color:#356f59;border-radius:50%}.divider{background:#eadfd2}.route{background:#fffaf1;border-color:#e9ddcf;border-radius:18px;transition:transform .15s,box-shadow .15s}.route:not(:disabled):hover,.stone:not(:disabled):hover{transform:translateY(-2px)}.route[data-route=short][aria-pressed=true]{background:#e7f4e8;border-color:#71ac8b;box-shadow:0 3px 0 #b1d2b7}.route[data-route=flower][aria-pressed=true]{background:#fce7ef;border-color:#cf82a0;box-shadow:0 3px 0 #eac0d2}.route[data-route=cave][aria-pressed=true]{background:#f1e9fa;border-color:#a48bc7;box-shadow:0 3px 0 #d6c6ea}.route small{font-size:12px}
.stone{background:#fffaf2;border-color:#e7d9c9;border-radius:19px 15px 22px 14px;transition:transform .15s}.stone[aria-pressed=true]{box-shadow:0 3px 0 #decfba}.free{background:#f5eddf;color:#72553d;border:1px dashed #d9c19f;border-radius:13px}.free b{color:#72553d}.name input{background:#fffdfa;border:1.5px solid #d7c7b6;border-radius:13px}.primary{background:#527f69;border-radius:16px;box-shadow:0 4px 0 #365c49}.primary:hover:not(:disabled){background:#446e59}.primary:disabled{box-shadow:none}.status{background:#edf5e9;border-color:#9dba8d;border-radius:0 15px 15px 0;color:#526248}.ghost{background:#fffdf6;border-color:#deccb8;border-radius:13px;color:#765c49}.rules p{color:#6f6258}.toast{background:#fff0d2}.finished{background:#fff0d2}.history li{border-color:#eaddcc}dialog{background:#fffaf0;border:2px solid #e7d3b9;border-radius:24px}footer{color:#99816c;font-size:12px;letter-spacing:.04em}
@media(max-width:760px){.intro{flex-wrap:wrap;gap:10px}.intro-story{gap:10px}.hero-pancake{width:65px;height:85px}h1{font-size:26px}.intro>.ghost{margin-left:auto}.stats{border-radius:19px}.stat strong{font-size:22px}.board{border-radius:22px}.panel{border-radius:21px}}
@media(max-width:370px){h1{font-size:23px}.hero-pancake{width:54px;height:73px}.stat em{font-size:10px}}

.rules-table{width:100%;border-collapse:collapse;font-size:13px;text-align:center}.rules-table th,.rules-table td{padding:7px 4px;border-bottom:1px solid var(--line)}.rules-table th{background:#f5eddf}

.legend{justify-content:center;column-gap:16px;row-gap:6px}.legend>span{white-space:nowrap;font-size:12px}

.stat{min-width:0}.board .eyebrow{letter-spacing:.04em;line-height:1.5}.intro-story>div{min-width:0}

.board-nav{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff8e9;color:var(--ink);font-size:12px}.board-nav #viewNote{flex:1}.board-nav .ghost{font-size:12px;padding:6px 9px}.stage-dot{cursor:pointer;padding:0;background:transparent}.stage-dot:focus-visible{outline:3px solid #b34470;outline-offset:2px}

#queue{max-height:260px;overflow:auto}#queue p,#remainders p{padding:8px;border-bottom:1px solid #eee}#staffQueue h3{margin:14px 0}.stone:disabled{opacity:1;cursor:default}

.previous-games{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:18px}.previous-games>span{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--muted)}.previous-games>a{font-size:13px;padding:4px 12px;text-decoration:none}.previous-games>a:hover{border-color:var(--ink)}.previous-games>a:focus-visible{outline:3px solid #efac20;outline-offset:3px}


.previous-games > .game-home-link { display: inline-flex; min-height: 39px; align-items: center; gap: 7px; padding: 0 13px; border: 1px solid #e6bdc7; border-radius: 999px; background: rgba(255,255,255,.82); box-shadow: 0 8px 22px rgba(112,49,70,.08); color: #713146; font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-decoration: none; transition: box-shadow .18s ease, transform .18s ease; }

.previous-games > .game-home-link svg { width: 16px; height: 16px; color: #c35377; }

.previous-games > .game-home-link:hover,.previous-games > .game-home-link:focus-visible { box-shadow: 0 12px 26px rgba(112,49,70,.15); transform: translateY(-2px); }
.previous-games > .game-home-link {line-height:1.5;margin-left:auto;flex-shrink:0;}
@media(max-width:640px){.previous-games > .game-home-link{min-height:34px;padding:0 10px;font-size:.58rem}.previous-games > .game-home-link svg{width:14px;height:14px}}


.stage-raffle{margin-top:18px}.stage-raffle h2{margin:0;font-size:20px}.stage-raffle>p{margin:8px 0}.raffle-rules{font-size:13px;color:var(--muted)}
#stageRaffles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.raffle-stage-card{min-width:0;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff}
.raffle-stage-heading{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.raffle-stage-heading h3{margin:0;font-size:17px}.raffle-stage-heading>span{font-size:12px;color:var(--muted)}.raffle-stage-card>p{margin:7px 0;font-size:13px}
.raffle-stage-card summary{cursor:pointer;font-weight:700;font-size:13px;padding:8px 0}.raffle-stage-card summary:focus-visible{outline:3px solid #efac20;outline-offset:3px}
.raffle-table-wrap{overflow-x:auto}.raffle-stage-card table{width:100%;border-collapse:collapse;font-size:12px}.raffle-stage-card caption{text-align:left;color:var(--muted);padding:4px 0}.raffle-stage-card th,.raffle-stage-card td{padding:7px 4px;border-bottom:1px solid var(--line);text-align:left}.raffle-stage-card td:first-child{overflow-wrap:anywhere}.raffle-stage-card td:not(:first-child){white-space:nowrap}.raffle-stage-card td small{color:var(--muted)}
.raffle-winner{display:grid;gap:3px;background:#fff3df;border:1px solid #e9d19c;border-radius:12px;padding:12px;margin:10px 0;overflow-wrap:anywhere}.raffle-winner strong{font-size:19px;color:#713146}.raffle-winner span,.raffle-winner small{font-size:12px}.raffle-draw{margin-top:10px;font-size:13px;width:100%}#raffleStatus{font-size:13px;color:var(--muted)}
@media(max-width:640px){#stageRaffles{grid-template-columns:1fr}}
