:root{--ink:#191817;--paper:#f5f1e9;--lime:#dfff54;--orange:#ff7043;--muted:#77736d;--ease:cubic-bezier(.23,1,.32,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,sans-serif;color:var(--ink)}body{background:var(--ink)}button,input{font:inherit}button{cursor:pointer}.player-shell{width:min(100%,520px);min-height:100svh;margin:auto;background:var(--paper);overflow:hidden}.screen{min-height:100svh;padding:max(32px,env(safe-area-inset-top)) 24px max(32px,env(safe-area-inset-bottom));animation:arrive 260ms var(--ease)}.join-screen{display:flex;flex-direction:column;justify-content:flex-end;background:var(--lime)}.eyebrow{margin:0 0 14px;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}.screen h1{font-size:clamp(42px,12vw,64px);letter-spacing:-.06em;line-height:.94;margin:0}.lead{font-size:18px;line-height:1.45;color:#504d48;margin:22px 0 34px}.mark{display:flex;gap:8px;margin:auto 0}.mark span{display:block;width:48px;height:48px;background:var(--ink);border-radius:50% 50% 8px 50%;transform:rotate(45deg)}.mark span:nth-child(2){background:var(--orange);transform:rotate(135deg)}.mark span:nth-child(3){transform:rotate(225deg)}.join-form label{display:block;font-size:13px;font-weight:800;margin:0 0 9px}.input-row{display:flex;background:#fff;border:2px solid var(--ink);border-radius:22px;padding:6px;box-shadow:5px 5px 0 var(--ink)}.input-row input{min-width:0;flex:1;border:0;outline:0;padding:12px;font-size:18px;background:transparent}.input-row button{width:52px;height:52px;border:0;border-radius:17px;background:var(--ink);color:#fff;font-size:25px;transition:transform 140ms var(--ease)}button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}.error{min-height:20px;color:#a32316;font-size:14px}.lobby-screen{background:var(--paper)}.status-pill{width:max-content;display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #d8d3ca;border-radius:99px;font-size:13px;background:#fff;margin-bottom:48px}.status-pill i{width:8px;height:8px;border-radius:50%;background:#38b76b;box-shadow:0 0 0 4px #dff5e7}.status-pill.offline i{background:#e5584e;box-shadow:none}.waiting-orbit{position:relative;width:120px;height:120px;margin:40px auto}.waiting-orbit:before{content:"";position:absolute;inset:22px;border:2px dashed #aaa39a;border-radius:50%}.waiting-orbit span{position:absolute;width:32px;height:32px;border-radius:50%;background:var(--orange);animation:orbit 3s linear infinite}.waiting-orbit span:nth-child(2){animation-delay:-1s;background:var(--lime)}.waiting-orbit span:nth-child(3){animation-delay:-2s;background:var(--ink)}.players-card,.control-card,.roster-card,.admin-login{background:#fff;border:1px solid #ded9d0;border-radius:28px;padding:22px}.players-card>div{display:flex;justify-content:space-between;align-items:center}.players-card strong{font-size:30px}.players-card ul,.roster-card ul{list-style:none;padding:0;margin:18px 0 0}.players-card li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eeeae3}.players-card li i,.roster-card li>i{width:9px;height:9px;background:#bbb;border-radius:50%}.players-card li i.online,.roster-card li>i.online{background:#38b76b}.stage-screen{background:var(--orange);display:flex;flex-direction:column}.stage-number{margin:10vh 0 auto;font-size:120px;font-weight:900;letter-spacing:-.09em}.stage-placeholder{margin-top:35px;padding:24px;border:2px dashed var(--ink);border-radius:24px;font-weight:800}.admin-body{background:#f4f1eb}.admin-shell{width:min(100% - 32px,1000px);margin:auto;padding:40px 0}.admin-shell header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.admin-shell h1{margin:0;font-size:clamp(34px,6vw,60px);letter-spacing:-.05em}.admin-login{max-width:460px}.admin-login form{display:flex;gap:8px}.admin-login input{flex:1;min-width:0;padding:15px;border:1px solid #ccc5bb;border-radius:14px}.admin-login button,.control-card button{border:0;border-radius:15px;padding:16px 20px;background:var(--ink);color:#fff;font-weight:800}.control-card{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;margin-bottom:18px}.control-card div{display:flex;flex-direction:column;gap:7px}.control-card div span{color:var(--muted);font-size:13px}.control-card .secondary{background:#ebe7df;color:var(--ink)}.roster-heading{display:flex;justify-content:space-between}.roster-heading h2{margin:0;font-size:30px}.roster-heading>strong{font-size:44px}.roster-card li{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #eeeae3}.roster-card li .avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--lime);font-weight:900}.roster-card li div:nth-child(2){display:flex;flex:1;flex-direction:column;gap:3px}.roster-card li span,.empty-roster{font-size:13px;color:var(--muted)}[hidden]{display:none!important}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes orbit{from{transform:translate(44px,44px) rotate(0) translateX(48px)}to{transform:translate(44px,44px) rotate(360deg) translateX(48px)}}@media(max-width:700px){.admin-shell header{display:block}.admin-shell header .status-pill{margin:18px 0 0}.control-card{grid-template-columns:1fr}.control-card button{width:100%}.admin-login form{flex-direction:column}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}
.join-screen{justify-content:flex-start}.join-screen .mark{margin:0 0 48px}.avatar-builder{display:grid;grid-template-columns:150px 1fr;gap:18px;margin:0 0 26px;padding:18px;background:rgba(255,255,255,.62);border:2px solid var(--ink);border-radius:28px;box-shadow:5px 5px 0 var(--ink)}.avatar-preview{align-self:start;aspect-ratio:1;background:#fff;border-radius:24px;overflow:hidden}.avatar-preview svg,.mini-avatar svg,.avatar svg{display:block;width:100%;height:100%}.avatar-options{display:grid;gap:13px}.avatar-options fieldset{border:0;padding:0;margin:0}.avatar-options legend,.avatar-options>label,.feature-grid label{display:block;margin:0 0 7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.avatar-options select{display:block;width:100%;margin-top:6px;padding:9px 30px 9px 10px;border:1px solid #bbb2a7;border-radius:11px;background:#fff;color:var(--ink)}.swatches{display:flex;gap:7px}.swatches label{margin:0}.swatches input{position:absolute;opacity:0;pointer-events:none}.swatches i{display:block;width:27px;height:27px;border-radius:50%;background:var(--swatch);border:2px solid #fff;box-shadow:0 0 0 1px #b5ada3;transition:transform 140ms var(--ease),box-shadow 140ms ease}.swatches input:checked+i{box-shadow:0 0 0 3px var(--ink);transform:scale(.9)}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-avatar{width:38px;height:38px;border-radius:12px;background:#f3efe7;overflow:hidden}.players-card li span{flex:1}.roster-card li .avatar{overflow:hidden;background:#f3efe7}.join-form>.input-row{margin-top:0}@media(max-width:420px){.avatar-builder{grid-template-columns:112px 1fr;padding:14px;gap:12px}.feature-grid{grid-template-columns:1fr}.join-screen .mark{margin-bottom:36px}.screen h1{font-size:43px}}
.stage-screen{display:block;background:#f4f1eb;padding-bottom:210px}.puzzle-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.puzzle-header h1{font-size:38px}.puzzle-header>strong{flex:0 0 auto;padding:10px 13px;border-radius:14px;background:var(--ink);color:#fff;font-size:18px}.puzzle-help{margin:18px 0 28px;color:var(--muted);line-height:1.5}.puzzle-list{display:grid;gap:14px}.puzzle-card{padding:17px;background:#fff;border:1px solid #ded9d0;border-radius:22px}.puzzle-card.solved{background:#ecf8d3;border-color:#bfd966}.puzzle-top{display:flex;align-items:center;gap:11px}.puzzle-top>span{font-size:12px;font-weight:900;color:#8d877f}.puzzle-top>strong{margin-left:auto;color:var(--orange);font-size:19px}.word-boxes{display:flex;gap:3px;min-width:0}.word-boxes i{display:grid;place-items:center;width:23px;height:29px;border-bottom:2px solid #bab3aa;font-style:normal;font-size:14px;font-weight:900}.puzzle-card.solved .word-boxes i{border-color:var(--ink)}.solved-check{margin-left:auto;display:grid;place-items:center;width:28px;height:28px;background:var(--ink);color:#fff;border-radius:50%}.puzzle-card>p{margin:12px 0 0}.guess-form{display:flex;gap:8px;margin-top:14px}.guess-form input,.final-dock input{min-width:0;flex:1;padding:12px 14px;border:1px solid #cbc4ba;border-radius:13px;outline:0;background:#f8f6f1}.guess-form input:focus,.final-dock input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(25,24,23,.1)}.guess-form button{width:44px;border:0;border-radius:13px;background:var(--ink);color:#fff;font-size:20px}.attempts{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:10px 0 0}.attempts li{display:flex;gap:6px;padding:5px 8px;border-radius:9px;background:#f0ede7;font-size:12px}.attempts b{color:#817b73}.attempts b.hot{color:#d34f2e}.final-dock{position:fixed;z-index:20;left:50%;bottom:0;width:min(100%,520px);transform:translateX(-50%);padding:17px 20px max(18px,env(safe-area-inset-bottom));background:rgba(25,24,23,.96);color:#fff;box-shadow:0 -12px 35px rgba(25,24,23,.18);backdrop-filter:blur(14px)}.final-title{display:flex;justify-content:space-between;gap:12px;font-size:12px}.final-title>b{color:var(--lime)}.phrase-slots{display:flex;align-items:center;justify-content:center;gap:3px;margin:12px 0;overflow:hidden}.phrase-slots span{display:grid;place-items:center;width:19px;height:27px;border-bottom:2px solid #777;color:var(--lime);font-size:14px;font-weight:900}.phrase-slots span.open{border-color:var(--lime)}.phrase-slots .phrase-gap{width:7px}.final-dock form{display:flex;gap:8px}.final-dock button{border:0;border-radius:13px;padding:0 14px;background:var(--lime);color:var(--ink);font-weight:900}.final-error{min-height:16px;margin:7px 0 0;color:#ffb3a0;font-size:12px}.chosen-dialog{width:min(390px,calc(100% - 32px));padding:30px;border:0;border-radius:30px;text-align:center;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.35)}.chosen-dialog::backdrop{background:rgba(25,24,23,.72);backdrop-filter:blur(5px)}.chosen-dialog h2{margin:8px 0;font-size:38px;letter-spacing:-.04em}.chosen-dialog p:not(.eyebrow){color:var(--muted);line-height:1.45}.chosen-dialog button{width:100%;margin-top:14px;padding:15px;border:0;border-radius:15px;background:var(--ink);color:#fff;font-weight:900}.chosen-star{display:grid;place-items:center;width:78px;height:78px;margin:0 auto 20px;border-radius:26px;background:var(--lime);font-size:42px;transform:rotate(-6deg)}.stage-two-screen{background:var(--lime);display:flex;flex-direction:column;justify-content:center}.stage-two-screen .stage-number{margin:0 0 28px}.stage-two-screen h1{font-size:70px}@media(max-width:370px){.word-boxes i{width:19px}.phrase-slots{gap:2px}.phrase-slots span{width:16px}}
.stage-two-screen{justify-content:flex-start}.stage-two-screen h1{margin-top:8vh}.clue-figure{margin:6px 0 0}.clue-figure img{display:block;width:100%;max-height:58svh;object-fit:contain;background:#fff;border:3px solid var(--ink);border-radius:28px;box-shadow:7px 7px 0 var(--ink)}.clue-figure figcaption{margin:18px 4px 0;font-size:14px;font-weight:900;text-align:center}.clue-waiting{display:grid;place-items:center;min-height:260px;padding:30px;border:2px dashed var(--ink);border-radius:28px;text-align:center;font-weight:900}.upload-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;margin-bottom:18px;padding:22px;background:#fff;border:1px solid #ded9d0;border-radius:28px}.upload-card h2{margin:0 0 6px;font-size:25px}.upload-card p:not(.eyebrow){margin:0;color:var(--muted)}.upload-button input{position:absolute;width:1px;height:1px;opacity:0}.upload-button span{display:block;padding:15px 18px;border-radius:15px;background:var(--ink);color:#fff;font-weight:900;cursor:pointer;transition:transform 140ms var(--ease)}.upload-button:active span{transform:scale(.97)}.upload-card img{grid-column:1/-1;width:min(100%,480px);max-height:320px;object-fit:contain;border-radius:20px;background:#eeeae3}.upload-card .error{grid-column:1/-1;margin:0}@media(max-width:600px){.upload-card{grid-template-columns:1fr}.upload-button span{text-align:center}}
.guide-card{margin-bottom:18px;padding:22px;background:#fff;border:1px solid #ded9d0;border-radius:28px}.guide-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.guide-heading h2{margin:0;font-size:25px}.guide-heading button{border:0;padding:11px 14px;border-radius:12px;background:#ebe7df;font-weight:800}.guide-phrase{padding:14px;border-radius:14px;background:var(--lime)}#guide-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;list-style:none}#guide-list li{padding:13px;border:1px solid #e4dfd7;border-radius:16px}#guide-list li>div{display:flex;align-items:center;gap:8px}#guide-list li>div>span{color:var(--muted);font-size:11px}#guide-list li>div>strong{font-size:17px;text-transform:uppercase}#guide-list li>div>b{margin-left:auto;color:var(--orange);font-size:12px}#guide-list li p{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 0}#guide-list li p span{padding:4px 6px;border-radius:7px;background:#f1eee8;font-size:11px}#guide-list li p b{color:#d34f2e}.danger-action{width:100%;margin-top:14px;padding:15px;border:0;border-radius:15px;background:#e64d3d;color:#fff;font-weight:900}.guide-note{margin:8px 0 0;text-align:center;color:var(--muted);font-size:12px}@media(max-width:650px){#guide-list{grid-template-columns:1fr}.guide-heading{align-items:flex-start;flex-direction:column}}
#admin-dashboard>.roster-card{margin-bottom:18px}
.sound-button{display:flex;align-items:center;gap:5px;margin-left:auto;padding:7px 9px;border:1px solid #d8d2c8;border-radius:11px;background:#f3f0ea;color:var(--ink);font-size:11px;font-weight:900;transition:transform 140ms var(--ease),background-color 180ms ease}.sound-button>i{position:relative;width:12px;height:12px;border-radius:2px 7px 7px 2px;background:var(--ink)}.sound-button>i:before{content:"";position:absolute;left:-5px;top:3px;border-width:3px 5px 3px 0;border-style:solid;border-color:transparent var(--ink) transparent transparent}.sound-button.playing{background:var(--lime);transform:scale(.96)}.sound-button.playing>i{animation:sound-pulse 450ms ease-out infinite alternate}.puzzle-top>.sound-button+strong{margin-left:0}@keyframes sound-pulse{to{transform:scale(1.22)}}@media(max-width:390px){.sound-button span{display:none}.sound-button{padding:8px}.puzzle-top{gap:7px}}
.control-card{grid-template-columns:minmax(180px,1fr) repeat(3,auto)}.control-card .complete-action{background:#e64d3d}.dance-floor{position:relative;min-height:190px;margin:24px 0 30px;padding:24px 12px 34px;overflow:hidden;border:2px solid var(--ink);border-radius:28px;background:linear-gradient(155deg,#fff 0 58%,#e8e2d8 59%)}.dance-floor>i{position:absolute;left:8%;right:8%;bottom:24px;height:3px;border-radius:50%;background:rgba(25,24,23,.18)}.dancing-avatars{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:8px;min-height:130px}.dancer{width:72px;text-align:center;animation:dance-avatar .72s var(--ease) var(--delay) infinite alternate;transform-origin:50% 100%}.dancer svg{display:block;width:72px;height:72px;filter:drop-shadow(0 7px 4px rgba(25,24,23,.16))}.dancer span{display:block;max-width:72px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;font-size:10px;font-weight:900;white-space:nowrap}@keyframes dance-avatar{0%{transform:translateY(0) rotate(calc(var(--step)*-5deg))}45%{transform:translateY(-15px) rotate(calc(var(--step)*5deg))}100%{transform:translateY(-3px) rotate(calc(var(--step)*-2deg))}}@media(max-width:800px){.control-card{grid-template-columns:1fr}.control-card button{width:100%}}
.latest-score{display:flex;align-items:center;gap:5px;margin:10px 0 0!important;padding:9px 11px;border-radius:11px;background:#fff0e8;font-size:13px}.latest-score>strong{margin-left:auto;color:#d34f2e;font-size:18px}.attempt-heading{margin-top:12px;color:#8d877f;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.attempts:empty:after{content:"Пока нет вариантов";color:#aaa39a;font-size:12px}
.emoji-screen{background:#eef4ff}.emoji-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.emoji-header h1{font-size:39px}.emoji-header>strong{flex:0 0 auto;padding:10px;border-radius:13px;background:#1d3c75;color:#fff;font-size:13px}.emoji-screen>.lead{margin-bottom:12px}.emoji-feedback{position:sticky;z-index:5;top:8px;min-height:38px;margin:0 0 12px;padding:10px 14px;border-radius:13px;background:rgba(255,255,255,.9);color:#6a7180;font-size:13px;text-align:center;backdrop-filter:blur(8px)}.emoji-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;padding:7px;border:1px solid #cbd6e8;border-radius:20px;background:#fff}.emoji-grid button{display:grid;place-items:center;aspect-ratio:1;padding:0;border:0;border-radius:7px;background:transparent;font-size:22px;line-height:1;transition:transform 120ms var(--ease),background-color 120ms ease}.emoji-grid button:active{transform:scale(.82)}.emoji-grid button.wrong{background:#ffd8d2;animation:wrong-shake 260ms ease-out}.emoji-found-screen{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:var(--lime);text-align:center}.winner-avatar{width:180px;height:180px;margin:24px auto;border:3px solid var(--ink);border-radius:50%;overflow:hidden;background:#fff;box-shadow:10px 10px 0 var(--ink);animation:winner-pop 500ms var(--ease)}.winner-avatar svg{width:100%;height:100%}.emoji-found-screen h1{font-size:54px}.winner-burst{position:absolute;right:-45px;top:8%;font-size:190px;color:rgba(255,112,67,.5);transform:rotate(15deg)}@keyframes wrong-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@keyframes winner-pop{from{opacity:0;transform:scale(.92) rotate(-5deg)}to{opacity:1;transform:none}}@media(max-width:370px){.emoji-grid{gap:2px}.emoji-grid button{font-size:19px}}
.stage-switcher-card{margin-bottom:18px;padding:22px;background:#fff;border:1px solid #ded9d0;border-radius:28px}.stage-switcher-card h2{margin:0 0 6px}.stage-switcher-card p:not(.eyebrow){margin:0;color:var(--muted)}.stage-switcher{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.stage-switcher button{border:1px solid #d8d3ca;border-radius:14px;padding:12px 15px;background:#f4f1eb;color:var(--ink);font-weight:800}.stage-switcher button.active{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 0 0 3px #d9ff54}
.route-screen{background:#f3ead7}.route-screen h1{font-size:48px}.route-progress{position:sticky;z-index:4;top:10px;width:max-content;margin:0 0 18px;padding:10px 14px;border-radius:99px;background:var(--ink);color:#fff;font-size:13px;font-weight:900}.animal-projector{display:grid;grid-template-columns:1fr 1fr;gap:13px}.animal-projector button{min-height:150px;padding:15px;border:2px solid var(--ink);border-radius:24px;background:#fff;box-shadow:5px 5px 0 var(--ink)}.animal-projector button span{display:block;font-size:72px}.animal-projector button strong{display:block;margin-top:8px}.animal-projector button:disabled{filter:grayscale(1);opacity:.35;box-shadow:none}.animal-projector button.wrong-animal{background:#ffd3ca;animation:wrong-shake 260ms ease-out}.route-feedback{min-height:24px;margin:18px 0;color:#9d3423;font-weight:800;text-align:center}.seeker-screen{background:#d9ff54}.radio-card{position:relative;display:flex;min-height:260px;flex-direction:column;justify-content:center;padding:28px;border:3px solid var(--ink);border-radius:34px;background:#20201f;color:#fff;box-shadow:9px 9px 0 #fff}.radio-card:before{content:"📻";position:absolute;right:22px;top:18px;font-size:43px}.radio-card span{margin-bottom:20px;color:#b8b2a9;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.radio-card strong{max-width:330px;font-size:31px;line-height:1.08}.radio-card i{margin-top:24px;color:var(--lime);font-style:normal;font-weight:900}.object-found{width:100%;margin-top:28px;padding:19px;border:0;border-radius:18px;background:#ef633f;color:#fff;font-size:19px;font-weight:900;box-shadow:5px 5px 0 var(--ink)}.route-found-screen{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:#ef633f;color:#fff;text-align:center}.route-found-screen .winner-avatar{color:var(--ink)}.route-found-screen .lead{color:#fff}.route-found-screen .winner-burst{opacity:.28}@media(max-width:370px){.animal-projector button{min-height:125px}.animal-projector button span{font-size:56px}.radio-card strong{font-size:26px}}
.emoji-intro-screen{display:flex;flex-direction:column;justify-content:center;background:#dce8ff;text-align:center}.emoji-intro-screen h1{font-size:52px}.emoji-intro-screen .lead{margin:14px auto 30px;max-width:390px}.intro-book{font-size:110px;animation:intro-book 1.1s var(--ease) infinite alternate}.intro-loader{width:160px;height:7px;margin:0 auto;overflow:hidden;border-radius:99px;background:rgba(29,60,117,.16)}.intro-loader i{display:block;width:45%;height:100%;border-radius:inherit;background:#1d3c75;animation:intro-load 1.1s ease-in-out infinite alternate}@keyframes intro-book{to{transform:translateY(-10px) rotate(5deg)}}@keyframes intro-load{to{transform:translateX(125%)}}
.route-intro-screen{display:flex;flex-direction:column;justify-content:center;background:#f3ead7}.route-intro-screen h1{font-size:54px}.route-intro-screen .lead{margin-bottom:28px}.route-intro-screen .lead strong{color:#d64b2d}.camp-visual{display:flex;align-items:center;justify-content:center;gap:15px;margin:12px 0 35px}.camp-visual span{display:grid;place-items:center;width:92px;height:92px;border:2px solid var(--ink);border-radius:30px;background:#fff;font-size:48px;box-shadow:5px 5px 0 var(--ink)}.camp-visual i{width:55px;border-top:3px dashed var(--ink)}.stage3-editor-card{margin-bottom:18px;padding:22px;background:#fff;border:1px solid #ded9d0;border-radius:28px}.stage3-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.stage3-editor-heading h2{margin:0 0 5px}.stage3-editor-heading p:not(.eyebrow){margin:0;color:var(--muted)}.stage3-editor-heading button,.stage3-editor-actions button{border:0;border-radius:14px;padding:13px 16px;background:var(--ink);color:#fff;font-weight:900}.stage3-card-list{display:grid;gap:10px;margin-top:20px}.stage3-edit-row{display:grid;grid-template-columns:90px 180px 1fr 40px;gap:9px;align-items:end;padding:12px;border-radius:16px;background:#f4f1eb}.stage3-edit-row label{display:grid;gap:5px;color:#746e66;font-size:11px;font-weight:800}.stage3-edit-row input{width:100%;padding:11px;border:1px solid #d1cbc1;border-radius:11px;background:#fff}.remove-stage3-card{width:40px;height:40px;border:0;border-radius:11px;background:#ffd8d1;color:#a22d1e;font-size:25px}.stage3-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px}.stage3-editor-actions .error{margin-right:auto}@media(max-width:720px){.stage3-editor-heading{align-items:flex-start;flex-direction:column}.stage3-edit-row{grid-template-columns:70px 1fr 40px}.stage3-edit-row .instruction-field{grid-column:1/3}.stage3-editor-actions{align-items:stretch;flex-direction:column}.stage3-editor-actions button{width:100%}}
.team-roster-visual{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:-8px 0 22px}.team-roster-visual article{padding:13px;border:2px solid var(--ink);border-radius:20px;background:#fff}.team-roster-visual article:nth-child(2){background:#d9ff54}.team-roster-visual article>b,.team-roster-visual article>span{display:block}.team-roster-visual article>span{margin:3px 0 10px;color:var(--muted);font-size:10px}.team-roster-visual article>div{display:flex;flex-wrap:wrap;gap:7px}.team-roster-visual figure{width:48px;margin:0;text-align:center}.team-roster-visual figure>div{width:42px;height:42px;overflow:hidden;border:1px solid var(--ink);border-radius:14px;background:#f3ead7}.team-roster-visual figure svg{width:100%;height:100%}.team-roster-visual figcaption{margin-top:3px;overflow:hidden;text-overflow:ellipsis;font-size:9px;font-weight:900;white-space:nowrap}.stage3-timeout{position:fixed;z-index:100;left:50%;bottom:max(18px,env(safe-area-inset-bottom));display:flex;width:min(calc(100% - 28px),490px);gap:17px;align-items:center;transform:translateX(-50%);padding:18px;border:3px solid #fff;border-radius:25px;background:#a72d20;color:#fff;box-shadow:0 15px 55px rgba(0,0,0,.42);animation:timeout-in 300ms var(--ease)}.stage3-timeout .eyebrow{margin-bottom:3px;color:#ffb8aa}.stage3-timeout h2{margin:0 0 5px;font-size:22px}.stage3-timeout p:last-child{margin:0;font-size:13px;line-height:1.35}.timeout-clock{display:grid;flex:0 0 76px;place-items:center;width:76px;height:76px;border-radius:50%;background:#fff;color:#a72d20}.timeout-clock strong{font-size:31px;line-height:1}.timeout-clock span{font-size:10px;font-weight:900}.admin-team-badge{margin-left:auto;padding:7px 9px;border-radius:10px;background:#f2e7ca;font-size:11px}.roster-card li.team-2 .admin-team-badge{background:#d9ff54}@keyframes timeout-in{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}@media(max-width:390px){.stage3-timeout{align-items:flex-start}.timeout-clock{flex-basis:62px;width:62px;height:62px}.timeout-clock strong{font-size:25px}}
.stage3-timeout{inset:0;left:0;bottom:0;width:auto;max-width:none;flex-direction:column;justify-content:center;padding:30px;text-align:center;transform:none;border:0;border-radius:0;background:rgba(119,25,16,.97);backdrop-filter:blur(12px)}.stage3-timeout>div:last-child{max-width:390px}.stage3-timeout h2{font-size:34px}.stage3-timeout p:last-child{font-size:16px}.timeout-clock{flex:0 0 94px;width:94px;height:94px}.timeout-clock strong{font-size:39px}@keyframes timeout-in{from{opacity:0}to{opacity:1}}
.forest-warning{display:flex;gap:12px;align-items:flex-start;margin:-12px 0 22px;padding:14px;border:2px solid var(--ink);border-radius:18px;background:#fff1ad;box-shadow:4px 4px 0 var(--ink)}.forest-warning>span{font-size:30px}.forest-warning strong{display:block;margin-bottom:4px;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.forest-warning p{margin:0;color:#514a3e;font-size:13px;line-height:1.4}
.stage3-nav-button{width:100%;padding:17px;border:0;border-radius:17px;background:var(--ink);color:#fff;font-size:17px;font-weight:900;box-shadow:5px 5px 0 #d64b2d}.stage3-nav-button b{margin-left:8px;font-size:20px}.stage3-back{margin:0 0 24px;padding:10px 13px;border:1px solid #c9c0b1;border-radius:99px;background:rgba(255,255,255,.72);color:var(--ink);font-size:12px;font-weight:900}
.story-screen{display:flex;flex-direction:column;justify-content:center;background:#e8f0ff}.story-screen h1{margin-bottom:27px;font-size:56px}.legend-screen{background:#171717;color:#fff}.legend-screen .eyebrow{color:#d9ff54}.stage1-story{background:#ffd56b}.story-copy{font-size:16px;line-height:1.52}.story-copy p{margin:0 0 14px}.legend-screen .story-copy{color:#dedbd5}.compact-story{margin:-8px 0 18px;padding:13px;border-left:4px solid #d64b2d;background:rgba(255,255,255,.58);font-size:13px}.story-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:22px}.speech-button,.story-next{min-height:54px;padding:13px 17px;border:0;border-radius:16px;font-weight:900}.speech-button{border:1px solid currentColor;background:transparent;color:inherit}.story-next{background:var(--ink);color:#fff;font-size:16px}.emoji-intro-screen .story-copy{text-align:left}.emoji-intro-screen .story-actions{width:100%}.completion-story{margin-top:18px;padding:18px;border:2px solid var(--ink);border-radius:20px;background:rgba(255,255,255,.76);color:var(--ink);text-align:left}.completion-story strong{font-size:20px}.completion-story p{margin:7px 0 0;line-height:1.45}.dark-story{background:#fff;color:var(--ink)}@media(max-width:380px){.story-screen h1{font-size:46px}.story-actions{grid-template-columns:1fr}.speech-button,.story-next{width:100%}}
.control-card .reset-action{background:#9f2419}.control-card .reset-action:before{content:"↻ ";font-size:18px}.control-card{grid-template-columns:minmax(180px,1fr) repeat(4,auto)}
.transition-wait-screen{display:flex;flex-direction:column;justify-content:center;background:#f4f1eb;text-align:center}.transition-wait-screen .waiting-orbit{margin:0 auto 45px}.transition-wait-screen h1{font-size:52px}.transition-wait-screen .lead{max-width:390px;margin:22px auto}

/* 2026 visual system — forest expedition */
:root{--ink:#101916;--paper:#f6f2e8;--lime:#ceff45;--orange:#ff6b45;--forest:#174c3a;--forest-dark:#0d2b22;--sky:#dceaff;--sand:#eadcc2;--line:rgba(16,25,22,.12);--muted:#696f69;--shadow:0 22px 60px rgba(6,24,18,.16);--soft-shadow:0 10px 28px rgba(6,24,18,.1);--ease:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
html{background:#08120f}html,body{font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif}body{background:radial-gradient(circle at 20% 10%,#285c49 0,transparent 34%),radial-gradient(circle at 80% 90%,#2c422d 0,transparent 35%),#08120f;color:var(--ink)}button,input,select{font:inherit}button{transition:transform 140ms var(--ease),box-shadow 180ms ease,background-color 180ms ease,color 180ms ease}button:active{transform:scale(.97)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.screen h1,.admin-shell h1,.story-screen h1{font-family:"Unbounded","Manrope",sans-serif;font-weight:800;letter-spacing:-.055em}.screen h2,.admin-shell h2{letter-spacing:-.025em}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.17em}.player-shell{width:min(calc(100% - 28px),560px);min-height:calc(100svh - 28px);margin:14px auto;border:1px solid rgba(255,255,255,.12);border-radius:34px;background:var(--paper);box-shadow:0 28px 90px rgba(0,0,0,.42);overflow:hidden}.screen{min-height:calc(100svh - 30px);padding:max(34px,env(safe-area-inset-top)) clamp(20px,6vw,34px) max(34px,env(safe-area-inset-bottom));animation:screen-enter 240ms var(--ease)}.screen h1{font-size:clamp(39px,10vw,58px);line-height:1.01}.lead{color:#5d655f;font-size:17px;line-height:1.55}@keyframes screen-enter{from{opacity:0;transform:translateY(7px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}

/* Registration */
.join-screen{position:relative;justify-content:flex-start;background:radial-gradient(circle at 95% 3%,rgba(255,255,255,.72),transparent 23%),linear-gradient(155deg,#d9ff62 0%,#c9fb45 58%,#bbef3c 100%)}.join-screen:after{content:"";position:absolute;right:-70px;top:260px;width:220px;height:220px;border:1px solid rgba(16,25,22,.09);border-radius:42% 58% 61% 39%;transform:rotate(28deg);pointer-events:none}.join-screen .mark{position:relative;gap:9px;margin:0 0 42px}.mark span{width:43px;height:43px;border:1px solid rgba(255,255,255,.16);border-radius:15px 25px 16px 25px;background:var(--ink);box-shadow:0 7px 16px rgba(16,25,22,.12)}.mark span:nth-child(2){background:var(--orange);border-radius:50%}.mark span:nth-child(3){background:var(--forest-dark)}.join-screen h1{max-width:480px;font-size:clamp(43px,10.5vw,62px)}.join-screen>.lead{max-width:470px;margin:20px 0 30px;color:#405247}.join-form{position:relative;z-index:1}.avatar-builder{grid-template-columns:142px 1fr;gap:20px;margin-bottom:25px;padding:18px;border:1px solid rgba(16,25,22,.12);border-radius:27px;background:rgba(255,255,255,.72);box-shadow:var(--soft-shadow);backdrop-filter:blur(16px)}.avatar-preview{border:1px solid rgba(16,25,22,.1);border-radius:25px;background:linear-gradient(150deg,#fff,#edf5df);box-shadow:inset 0 0 0 7px rgba(255,255,255,.58)}.avatar-options{gap:12px}.avatar-options legend,.avatar-options>label,.feature-grid label,.join-form>label{color:#20362d;font-size:10px;letter-spacing:.11em}.avatar-options select{min-height:43px;margin-top:7px;padding:9px 34px 9px 12px;border:1px solid rgba(16,25,22,.14);border-radius:13px;background-color:rgba(255,255,255,.92);box-shadow:0 2px 0 rgba(16,25,22,.04)}.swatches{gap:9px}.swatches i{width:29px;height:29px;border:3px solid #fff;box-shadow:0 0 0 1px rgba(16,25,22,.28)}.swatches input:checked+i{box-shadow:0 0 0 3px var(--forest);transform:scale(.91)}.input-row{padding:7px;border:1px solid rgba(16,25,22,.14);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:var(--soft-shadow)}.input-row input{padding:13px 15px;font-size:17px}.input-row button{width:52px;height:52px;border-radius:15px;background:var(--forest-dark);box-shadow:0 7px 18px rgba(13,43,34,.22)}

/* Lobby and waiting */
.lobby-screen,.transition-wait-screen{background:radial-gradient(circle at 90% 5%,rgba(206,255,69,.5),transparent 28%),linear-gradient(180deg,#fbfaf6,#eee8da)}.status-pill{margin-bottom:38px;padding:10px 14px;border:1px solid rgba(16,25,22,.1);background:rgba(255,255,255,.78);box-shadow:0 5px 18px rgba(16,25,22,.06);backdrop-filter:blur(12px)}.status-pill i{background:#29b66f;box-shadow:0 0 0 5px rgba(41,182,111,.12)}.dance-floor{min-height:210px;border:1px solid rgba(16,25,22,.12);border-radius:28px;background:radial-gradient(circle at 50% 120%,rgba(206,255,69,.7),transparent 42%),linear-gradient(145deg,#fff,#e8efe7);box-shadow:var(--soft-shadow)}.players-card,.roster-card,.control-card,.admin-login{border:1px solid rgba(16,25,22,.1);background:rgba(255,255,255,.88);box-shadow:var(--soft-shadow)}.players-card{border-radius:25px}.players-card li{border-color:rgba(16,25,22,.08)}.mini-avatar{width:42px;height:42px;border:1px solid rgba(16,25,22,.1);border-radius:14px;background:#edf3e5}.transition-wait-screen .waiting-orbit:before{border-color:rgba(16,25,22,.25)}

/* Story screens */
.story-screen{background:radial-gradient(circle at 90% 12%,rgba(255,107,69,.23),transparent 30%),linear-gradient(155deg,#f5efe1,#e8deca)}.legend-screen{background:radial-gradient(circle at 80% 18%,rgba(206,255,69,.13),transparent 28%),radial-gradient(circle at 8% 90%,rgba(255,107,69,.17),transparent 30%),linear-gradient(160deg,#10271f,#08130f);color:#fff}.legend-screen:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 48px,rgba(255,255,255,.018) 49px 50px);pointer-events:none}.stage1-story{background:radial-gradient(circle at 95% 0,rgba(255,255,255,.7),transparent 25%),linear-gradient(155deg,#ffd874,#f7b95d)}.story-copy{font-size:16px;line-height:1.6}.story-copy p{margin-bottom:15px}.story-actions{gap:12px}.speech-button,.story-next,.stage3-nav-button{border-radius:17px;box-shadow:none}.speech-button{border:1px solid rgba(16,25,22,.22);background:rgba(255,255,255,.46);backdrop-filter:blur(8px)}.legend-screen .speech-button{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.08)}.story-next,.stage3-nav-button{background:var(--forest-dark);box-shadow:0 9px 24px rgba(13,43,34,.2)}.completion-story{border:1px solid rgba(16,25,22,.12);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:var(--soft-shadow)}

/* Stage 1 */
.stage-screen{display:block;background:radial-gradient(circle at 100% 0,rgba(255,107,69,.2),transparent 25%),linear-gradient(180deg,#f8f4eb,#ede5d5)}.puzzle-header{padding-bottom:20px;border-bottom:1px solid var(--line)}.puzzle-header h1{font-size:clamp(35px,8vw,47px)}.puzzle-header>strong{border-radius:13px;background:var(--forest);box-shadow:0 7px 18px rgba(23,76,58,.2)}.puzzle-list{gap:12px}.puzzle-card{border:1px solid rgba(16,25,22,.1);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 7px 22px rgba(16,25,22,.06)}.puzzle-card.solved{border-color:rgba(60,120,54,.25);background:linear-gradient(135deg,#f1f9df,#e1f3bd)}.word-boxes i{border-color:#9faaa4}.guess-form input,.final-dock input{border:1px solid rgba(16,25,22,.13);background:#f7f6f1}.guess-form button{background:var(--forest-dark)}.attempts li{background:#edf0eb}.latest-score{background:#fff0e7}.final-dock{border-top:1px solid rgba(255,255,255,.12);background:rgba(10,29,23,.94);box-shadow:0 -16px 45px rgba(6,24,18,.22)}.final-dock button{background:var(--lime)}.chosen-dialog{border:1px solid rgba(255,255,255,.5);background:linear-gradient(155deg,#fff,#f2eddf);box-shadow:0 28px 90px rgba(0,0,0,.35)}.chosen-star{background:var(--lime);box-shadow:0 10px 25px rgba(104,145,27,.22)}

/* Clue and stage 2 */
.stage-two-screen{background:radial-gradient(circle at 90% 8%,rgba(255,255,255,.7),transparent 25%),linear-gradient(160deg,#dfff75,#bde94b)}.clue-figure img{border:0;border-radius:24px;background:#fff;box-shadow:var(--shadow)}.clue-figure figcaption{padding:12px;border-radius:13px;background:rgba(255,255,255,.58)}.clue-waiting{border:1px dashed rgba(16,25,22,.3);background:rgba(255,255,255,.35)}.emoji-intro-screen{background:radial-gradient(circle at 15% 8%,rgba(255,255,255,.8),transparent 25%),linear-gradient(155deg,#e7efff,#c8dbff)}.intro-book{filter:drop-shadow(0 16px 20px rgba(29,60,117,.16))}.emoji-screen{background:linear-gradient(180deg,#eaf1ff,#d9e5f7)}.emoji-header{padding-bottom:18px;border-bottom:1px solid rgba(29,60,117,.12)}.emoji-header>strong{background:#173b68;box-shadow:0 6px 16px rgba(23,59,104,.2)}.emoji-feedback{border:1px solid rgba(29,60,117,.1);box-shadow:0 7px 20px rgba(29,60,117,.07)}.emoji-grid{gap:4px;border:1px solid rgba(29,60,117,.1);border-radius:18px;box-shadow:var(--soft-shadow)}.emoji-grid button{border-radius:8px}.emoji-found-screen{background:radial-gradient(circle at 75% 10%,rgba(255,255,255,.65),transparent 25%),linear-gradient(155deg,#dfff74,#bce84a)}.winner-avatar{border:0;background:#fff;box-shadow:0 18px 45px rgba(16,25,22,.2)}

/* Stage 3 */
.route-intro-screen,.route-screen{background:radial-gradient(circle at 90% 0,rgba(255,255,255,.72),transparent 24%),linear-gradient(160deg,#f6efe1,#e5d7be)}.forest-warning{border:1px solid rgba(16,25,22,.13);border-radius:17px;background:linear-gradient(135deg,#fff3b5,#ffe38e);box-shadow:var(--soft-shadow)}.team-roster-visual article{border:1px solid rgba(16,25,22,.12);border-radius:19px;box-shadow:0 6px 18px rgba(16,25,22,.07)}.team-roster-visual article:nth-child(2){background:linear-gradient(140deg,#e6ff98,#cdff48)}.camp-visual span{border:1px solid rgba(16,25,22,.14);border-radius:27px;box-shadow:0 10px 26px rgba(16,25,22,.11)}.compact-story{border:0;border-left:4px solid var(--orange);border-radius:0 16px 16px 0;background:rgba(255,255,255,.55)}.stage3-back{border:1px solid rgba(16,25,22,.12);background:rgba(255,255,255,.68)}.animal-projector{gap:14px}.animal-projector button{min-height:145px;border:1px solid rgba(16,25,22,.12);border-radius:22px;background:linear-gradient(145deg,#fff,#f2efe8);box-shadow:0 9px 24px rgba(16,25,22,.09)}.animal-projector button span{filter:drop-shadow(0 8px 10px rgba(16,25,22,.12))}.seeker-screen{background:radial-gradient(circle at 95% 0,rgba(255,255,255,.68),transparent 24%),linear-gradient(155deg,#ddff73,#bde94b)}.radio-card{border:1px solid rgba(255,255,255,.12);background:linear-gradient(150deg,#153329,#091b15);box-shadow:0 18px 45px rgba(6,24,18,.24)}.object-found{background:linear-gradient(135deg,#ff7956,#ed5434);box-shadow:0 10px 25px rgba(195,62,36,.22)}.route-found-screen{background:radial-gradient(circle at 20% 5%,rgba(255,255,255,.18),transparent 25%),linear-gradient(155deg,#f76f4c,#d9462d)}

/* Admin */
.admin-body{background:radial-gradient(circle at 10% 0,rgba(206,255,69,.18),transparent 24%),linear-gradient(155deg,#e9eee8,#e8dfcf);color:var(--ink)}.admin-shell{width:min(100% - 32px,1120px);padding:44px 0 70px}.admin-shell>header{padding:24px 26px;border:1px solid rgba(255,255,255,.55);border-radius:28px;background:linear-gradient(140deg,#12372b,#0a2019);color:#fff;box-shadow:var(--shadow)}.admin-shell>header .eyebrow{color:var(--lime)}.admin-shell>header .status-pill{margin:0;color:var(--ink)}.admin-shell h1{font-size:clamp(34px,5vw,55px)}.roster-card,.control-card,.stage-switcher-card,.stage3-editor-card,.upload-card,.guide-card{border:1px solid rgba(16,25,22,.09);background:rgba(255,255,255,.86);box-shadow:var(--soft-shadow);backdrop-filter:blur(14px)}.control-card,.stage-switcher-card,.stage3-editor-card,.upload-card,.guide-card,.roster-card{border-radius:25px}.control-card button{border-radius:13px}.stage-switcher{gap:8px}.stage-switcher button{border:1px solid rgba(16,25,22,.1);border-radius:12px;background:#f2efe8}.stage-switcher button.active{border-color:var(--forest);background:var(--forest);box-shadow:0 0 0 3px rgba(206,255,69,.75)}.stage3-edit-row{border:1px solid rgba(16,25,22,.07);border-radius:14px;background:#f3f1eb}.stage3-edit-row input{border-color:rgba(16,25,22,.12)}.upload-button span,.stage3-editor-heading button,.stage3-editor-actions button{background:var(--forest-dark)}.guide-phrase{background:linear-gradient(135deg,#e5ff91,#ceff45)}.admin-team-badge{background:#f4dfbb}.roster-card li.team-2 .admin-team-badge{background:var(--lime)}

@media(hover:hover) and (pointer:fine){.story-next:hover,.stage3-nav-button:hover,.input-row button:hover,.guess-form button:hover,.object-found:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(13,43,34,.23)}.stage-switcher button:hover,.speech-button:hover,.stage3-back:hover{background:#fff;transform:translateY(-1px)}.animal-projector button:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(16,25,22,.13)}}

/* Stage 3: the radio directions stay private to the guiding team. */
.guide-reveal-note{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px;padding:14px 16px;border:1px solid rgba(16,25,22,.12);border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 7px 20px rgba(16,25,22,.07)}
.guide-reveal-note>span{font-size:28px;line-height:1}
.guide-reveal-note p{margin:0;color:#5e594f;font-size:14px;line-height:1.45}
.guide-reveal-note strong{display:block;margin-bottom:2px;color:var(--ink);font-size:15px}
.animal-projector button.opened-card{grid-column:1/-1;min-height:0;padding:18px;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:14px;align-items:center;text-align:left;filter:none;opacity:1;background:linear-gradient(145deg,#e8ff9e,#d3ff55);border-color:rgba(16,25,22,.22)}
.animal-projector button.opened-card span{grid-row:1/3;font-size:45px;text-align:center}
.animal-projector button.opened-card strong{margin:0;color:#4f5943;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
.animal-projector button.opened-card em{display:block;margin-top:5px;color:var(--ink);font-size:17px;font-style:normal;font-weight:850;line-height:1.3}
.animal-projector button.opened-card em small{display:block;margin-bottom:3px;color:#657054;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.radio-privacy-note{margin:18px 3px 0;padding:13px 15px;border-left:4px solid var(--ink);border-radius:0 14px 14px 0;background:rgba(255,255,255,.58);color:#3f5148;font-size:14px;font-weight:750;line-height:1.45}

/* Story cinema */
.legend-screen{background:radial-gradient(circle at 90% 0,rgba(206,255,69,.2),transparent 30%),linear-gradient(155deg,#0c2d24,#071b16);color:#fff}
.legend-screen>.eyebrow{color:var(--lime)}
.legend-screen>h1{color:#fff}
.legend-cinema{position:relative;aspect-ratio:16/10;margin:22px 0 8px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:28px;background:#07110e;box-shadow:0 22px 55px rgba(0,0,0,.35)}
.legend-cinema video{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.68) contrast(1.08) brightness(.74)}
.legend-cinema-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,17,13,.05) 30%,rgba(4,17,13,.88) 100%),radial-gradient(circle at 72% 30%,rgba(215,255,117,.13),transparent 30%);pointer-events:none}
.legend-cinema figcaption{position:absolute;left:20px;right:20px;bottom:64px;display:flex;flex-direction:column;text-shadow:0 2px 18px rgba(0,0,0,.65)}
.legend-cinema figcaption span{color:var(--lime);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.13em}
.legend-cinema figcaption strong{margin-top:4px;color:#fff;font-family:"Unbounded",sans-serif;font-size:clamp(20px,5.5vw,32px);line-height:1.08}
.story-soundtrack{position:absolute;left:18px;bottom:17px;display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:850;backdrop-filter:blur(12px);transition:transform 140ms var(--ease),background-color 180ms ease}
.story-soundtrack:active{transform:scale(.97)}
.story-soundtrack i{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--lime)}
.story-soundtrack.playing{background:rgba(206,255,69,.17)}
.story-soundtrack.playing i{width:9px;height:11px;border:0;border-left:3px solid var(--lime);border-right:3px solid var(--lime)}
.media-credit{margin:0 3px 20px;color:rgba(255,255,255,.48);font-size:9px;line-height:1.45}
.media-credit a{color:rgba(255,255,255,.68)}
.emoji-intro-screen .media-credit,.route-intro-screen .media-credit{color:#888176}
.emoji-intro-screen .media-credit a,.route-intro-screen .media-credit a{color:#5e5a53}
.stage2-cinema video{filter:saturate(.76) contrast(1.12) brightness(.66)}
.stage3-cinema{aspect-ratio:4/5}
.stage3-cinema video{filter:saturate(.72) contrast(1.08) brightness(.64);object-position:50% 55%}
.legend-screen .story-copy{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.08);color:rgba(255,255,255,.82);box-shadow:none}
.legend-screen .story-copy strong{color:#fff}

/* Stage 1 explanation */
.puzzle-instructions{margin:20px 0 12px;border:1px solid rgba(16,25,22,.12);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 8px 24px rgba(16,25,22,.07);overflow:hidden}
.puzzle-instructions summary{display:grid;grid-template-columns:35px 1fr auto;gap:10px;align-items:center;padding:14px 15px;list-style:none;cursor:pointer;transition:background-color 180ms ease}
.puzzle-instructions summary::-webkit-details-marker{display:none}
.puzzle-instructions summary>span{display:grid;place-items:center;width:35px;height:35px;border-radius:12px;background:var(--forest);color:var(--lime);font-family:"Unbounded",sans-serif;font-weight:800}
.puzzle-instructions summary strong{font-size:14px}
.puzzle-instructions summary i{color:#777168;font-size:0;font-style:normal;font-weight:800}
.puzzle-instructions summary i:before{content:"Открыть";font-size:11px}
.puzzle-instructions[open] summary{background:#efffb8}
.puzzle-instructions[open] summary i:before{content:"Свернуть"}
.puzzle-instructions-body{padding:4px 16px 17px;color:#57544e;font-size:13px;line-height:1.5}
.puzzle-instructions-body>p{margin:10px 0}
.puzzle-instructions-body ol{display:grid;gap:8px;margin:13px 0;padding-left:20px}
.puzzle-instructions-body li{padding-left:3px}
.puzzle-instructions-body b{color:var(--ink)}
.instruction-example{margin:14px 0;padding:13px 14px;border-left:4px solid var(--orange);border-radius:0 14px 14px 0;background:#fff0e8}
.instruction-example span{color:#bd563c;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.instruction-example p{margin:5px 0 0;color:#433f39}
.instruction-finale{padding-top:11px;border-top:1px solid rgba(16,25,22,.1)}
@media(hover:hover) and (pointer:fine){.story-soundtrack:hover{background:rgba(255,255,255,.2)}.puzzle-instructions summary:hover{background:#f5f9e9}}
@media(max-width:370px){.legend-cinema{border-radius:22px}.legend-cinema figcaption{bottom:60px}.puzzle-instructions summary{grid-template-columns:35px 1fr}.puzzle-instructions summary i{display:none}}
@media(max-width:600px){.player-shell{width:100%;min-height:100svh;margin:0;border:0;border-radius:0}.screen{min-height:100svh}.admin-shell{width:min(100% - 20px,1120px);padding:18px 0 40px}.admin-shell>header{padding:20px;border-radius:22px}.avatar-builder{grid-template-columns:118px 1fr;padding:14px;gap:13px}.feature-grid{grid-template-columns:1fr}.join-screen .mark{margin-bottom:32px}.story-screen h1{font-size:clamp(39px,11vw,51px)}}
@media(max-width:380px){.avatar-builder{grid-template-columns:96px 1fr}.swatches{gap:7px}.swatches i{width:25px;height:25px}.screen{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:reduce){.screen{animation:fade-only 180ms ease}.dancer,.intro-book,.waiting-orbit span,.sound-button.playing>i{animation:none!important}@keyframes fade-only{from{opacity:0}to{opacity:1}}}

/* More life in the lobby */
.lobby-screen{position:relative;overflow:hidden}.lobby-screen:before,.lobby-screen:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.lobby-screen:before{right:-75px;top:110px;width:190px;height:190px;background:rgba(206,255,69,.38);filter:blur(3px);animation:lobby-float 7s var(--ease-in-out) infinite alternate}.lobby-screen:after{left:-90px;bottom:120px;width:180px;height:180px;background:rgba(255,107,69,.14);animation:lobby-float 9s var(--ease-in-out) -3s infinite alternate-reverse}.lobby-screen>*{position:relative;z-index:1}.lobby-screen .status-pill i{animation:online-pulse 1.8s ease-out infinite}.dance-floor:before,.dance-floor:after{content:"✦";position:absolute;color:#ffb640;font-size:18px;text-shadow:90px 24px 0 #ceff45,180px -5px 0 #ff6b45,255px 40px 0 #ceff45,340px 5px 0 #ffb640;animation:fireflies 2.6s ease-in-out infinite alternate}.dance-floor:before{left:28px;top:28px}.dance-floor:after{left:70px;top:78px;font-size:11px;animation-delay:-1.2s}.dancer{animation-duration:1.45s}.dancer:nth-child(2n){animation-duration:1.7s}.dancer:nth-child(3n){animation-duration:1.25s}.lobby-screen .avatar-eyes,.dance-floor .avatar-eyes{transform-box:fill-box;transform-origin:center;animation:avatar-blink 4.8s linear infinite}.dancer:nth-child(2n) .avatar-eyes{animation-delay:-1.7s}.dancer:nth-child(3n) .avatar-eyes{animation-delay:-3.1s}.players-card li i.online{animation:tiny-pulse 2s ease-out infinite}.leader-finish-note{margin-top:24px;padding:15px 17px;border:1px solid rgba(16,25,22,.12);border-radius:17px;background:rgba(255,255,255,.62);color:#46534d;font-size:13px;line-height:1.45;text-align:center}.chapter-finish-screen{display:flex;flex-direction:column;justify-content:center;text-align:center}.chapter-finish-screen h1{font-size:clamp(42px,10vw,58px)}.chapter-icon{display:grid;place-items:center;width:140px;height:140px;margin:0 auto 32px;border:1px solid rgba(16,25,22,.12);border-radius:42px;background:rgba(255,255,255,.78);font-size:76px;box-shadow:var(--shadow);transform:rotate(-3deg)}.river-finish{background:radial-gradient(circle at 85% 10%,rgba(206,255,69,.55),transparent 25%),linear-gradient(160deg,#c9ebef,#80bec8)}.backpack-finish{background:radial-gradient(circle at 15% 10%,rgba(255,255,255,.66),transparent 25%),linear-gradient(160deg,#ffd57d,#ef9358)}.chapter-finish-screen .lead{max-width:430px;margin-left:auto;margin-right:auto;color:#263c35}@keyframes lobby-float{to{transform:translate3d(-28px,24px,0) scale(1.08)}}@keyframes online-pulse{0%{box-shadow:0 0 0 0 rgba(41,182,111,.35)}70%,100%{box-shadow:0 0 0 10px rgba(41,182,111,0)}}@keyframes tiny-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.72)}}@keyframes fireflies{from{opacity:.35;transform:translate3d(0,0,0)}to{opacity:1;transform:translate3d(8px,-10px,0)}}@keyframes avatar-blink{0%,44%,48%,78%,82%,100%{transform:scaleY(1)}46%,80%{transform:scaleY(.08)}}
@media(max-width:600px){.join-screen h1{font-size:clamp(36px,10vw,47px);overflow-wrap:anywhere}.avatar-builder{grid-template-columns:106px minmax(0,1fr)}.avatar-options,.feature-grid,.avatar-options label,.avatar-options fieldset{min-width:0}.avatar-options select{min-width:0;max-width:100%}.join-form,.join-form .input-row{min-width:0;max-width:100%}}
