@font-face{font-family:Friz;src:url('assets/friz-quadrata.otf') format('opentype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Friz,Georgia,serif;background:#1b0b07;color:#ffdb00;text-shadow:1px 1px 1px #000,-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000}.world{position:fixed;inset:0;z-index:-4;background:#27170e url('assets/forever-background.png') center center/cover no-repeat}.forever-logo{position:fixed;left:22px;top:14px;width:clamp(135px,17vw,270px);height:auto;filter:drop-shadow(0 3px 3px #0008);pointer-events:none}#embers,.firelight{position:fixed;pointer-events:none;width:100%;height:100%;inset:0;z-index:-2}.firelight{z-index:-3;mix-blend-mode:screen;animation:flicker 4.7s ease-in-out infinite;opacity:.16}.fire-left{background:radial-gradient(ellipse 13% 28% at 10% 84%,#ff940090,transparent 80%)}.fire-right{background:radial-gradient(ellipse 14% 29% at 74% 81%,#ff9e0080,transparent 80%);animation-delay:-2s}.queue-window{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);width:clamp(440px,42vw,660px);text-align:center;padding:19px 22px 15px;font-size:clamp(18px,1.48vw,25px);line-height:1.12}.game-frame{background:linear-gradient(110deg,#1a110ba8,#17181b95);border:3px ridge #9c8055;border-radius:4px;box-shadow:inset 0 0 0 1px #26150b,inset 0 0 0 3px #dabd8b66,0 0 0 1px #1c1008,0 2px 3px #000b}.queue-window h1,.queue-window p{font-size:inherit;line-height:inherit;font-weight:400;margin:0}.game-button{font:inherit;color:#ffdf00;text-shadow:1px 1px 1px #000,-1px -1px 1px #000;position:relative;cursor:pointer;border:3px ridge #ad9b78;border-radius:4px;background:linear-gradient(#c12118 0%,#8e0904 12%,#940900 40%,#6a0000 78%,#a91006 100%);box-shadow:inset 0 0 0 1px #3f0000,inset 0 2px 2px #f4522770,0 0 0 1px #20170d;line-height:1.1;padding:5px 20px;transition:filter .12s}.game-button:before{content:'';position:absolute;inset:2px;border:1px solid #ff80342b;pointer-events:none}.game-button:hover{filter:brightness(1.28);color:#fff18b}.game-button:active{filter:brightness(.85)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #ffeaa4;outline-offset:3px}.queue-window .game-button{display:block;width:36%;min-width:160px;margin:17px auto 0;padding:4px 12px;font-size:inherit}.corner{position:absolute;width:7px;height:7px;transform:rotate(45deg);background:linear-gradient(135deg,#4d351a,#ead5a3,#553914);border:1px solid #745a37;box-shadow:0 0 1px 1px #231b11}.tl{left:-5px;top:-5px}.tr{right:-5px;top:-5px}.bl{left:-5px;bottom:-5px}.br{right:-5px;bottom:-5px}.client-menu{position:fixed;right:23px;bottom:29px;width:clamp(142px,12vw,185px);display:grid;gap:9px;font-size:14px}.client-menu .game-button{padding:3px 5px;border-width:2px}.client-meta{position:fixed;bottom:11px;left:9px;font-size:10px;line-height:1.15;color:#c3a64b}.client-meta span{color:#b9a989;font-size:9px}.bottom-center{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);text-align:center;width:max-content;max-width:48vw;font-size:14px;color:#d3b760}.bottom-center small{display:block;font-size:8px;line-height:1.3;margin-top:5px;color:#b9a989}.login{position:absolute;left:50%;top:57%;transform:translate(-50%,-50%);width:270px;text-align:center;font-size:19px}.login>label{display:block;margin:9px 0 3px}.login>input{width:100%;height:34px;border:3px ridge #71664e;background:#15191bc4;box-shadow:inset 0 0 4px #000;color:#ccc6b3;text-align:center;font:16px Friz,Georgia,serif}.login .remember{font-size:16px;display:flex;align-items:center;justify-content:center;gap:5px;margin-top:17px}.remember input{accent-color:#937745}.login .game-button{width:80%;margin-top:8px}#demo-note{font-size:10px;color:#ddd1b6;margin-top:10px}#idle-message{font-size:12px;color:#ffdb80}.completion{font-size:.7em!important;margin-top:8px!important}dialog{color:#ffdb00;font-family:inherit;text-shadow:inherit;width:460px;max-width:calc(100vw - 28px);padding:25px 28px;background:linear-gradient(135deg,#171613f5,#161414f5);font-size:16px;max-height:calc(100svh - 28px);overflow:auto}dialog::backdrop{background:#0007}dialog h2{font-size:22px;font-weight:400;text-align:center;margin:0 0 18px}dialog>.game-button{display:block;min-width:160px;margin:20px auto 0}dialog p{line-height:1.5}.queue-stats{display:flex;justify-content:space-between;color:#ded4be;font-size:11px;padding:10px 0 17px;border-bottom:1px solid #68583b}.queue-stats b{font-weight:400}.option-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid #68583b55}.option-row small{display:block;color:#bdb4a0;font:11px/1.5 Arial,sans-serif;text-shadow:none;margin-top:5px}.option-row select{font:12px Friz,Georgia,serif;background:#282521;border:1px solid #887557;padding:6px;color:#ffe2a4}.option-row input{accent-color:#aa792d}.option-row input[type=range]{width:120px}.option-row input[type=checkbox]{width:16px;height:16px}.menu-actions{display:flex;justify-content:center;gap:16px;margin-top:25px}.menu-actions .game-button{font-size:14px;flex:1;padding:7px 9px}.menu-footnote{font:10px/1.5 Arial,sans-serif;color:#b3aa96;text-shadow:none;text-align:center;margin:20px 0 0}.menu-footnote a{color:#c3ae7b;text-decoration:none}.menu-footnote a:hover{text-decoration:underline}.dialog-description{font-size:13px;text-align:center;color:#ded4be}.ruleset-row{font:17px Friz,Georgia,serif;display:flex;width:100%;justify-content:space-between;align-items:center;padding:14px 13px;border:1px solid #75603c;background:#0d0c0c70;color:#ffda58;margin:9px 0;text-align:left;cursor:pointer}.ruleset-row:hover,.ruleset-row.selected{background:#61502d55;border-color:#d9b273}.ruleset-row small{display:block;font:11px/1.6 Arial,sans-serif;color:#bfb19c;margin-top:3px}.ruleset-row>span:last-child{font-size:12px;color:#d79667}#confirm-dialog{text-align:center;width:390px}#confirm-text{font-size:15px;color:#dfd0ad}#toast{position:fixed;left:50%;bottom:66px;transform:translateX(-50%);background:#171410e8;border:1px solid #9d8459;padding:10px 18px;opacity:0;pointer-events:none;font-size:13px;transition:opacity .2s;text-align:center;max-width:80vw}#toast.show{opacity:1}.no-motion .firelight{animation:none;opacity:.1}.no-motion #embers{display:none}[hidden]{display:none!important}@keyframes flicker{0%,100%{opacity:.09}26%{opacity:.17}31%{opacity:.12}65%{opacity:.2}78%{opacity:.13}}@media(max-width:650px){.forever-logo{width:150px;top:16px;left:15px}.world{background-position:51% center}.queue-window{width:calc(100vw - 36px);font-size:18px;padding:20px 10px 16px;top:49%}.queue-window .game-button{font-size:17px;min-width:142px}.client-menu{right:13px;bottom:66px;width:145px;gap:8px;font-size:13px}.bottom-center{display:none}.client-meta{bottom:14px;left:14px;font-size:10px}.login{top:47%;width:240px}.option-row{font-size:14px}.queue-stats{font-size:10px}dialog{padding:23px 19px}}@media(max-height:500px){.forever-logo{width:125px}.client-menu{bottom:18px;gap:5px;width:125px;font-size:11px}.queue-window{top:49%;font-size:16px;width:430px}.bottom-center{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}#embers{display:none}}
#secret-count{position:fixed;left:12px;bottom:48px;color:#cfb77a;font:12px Friz,Georgia,serif;letter-spacing:2px;opacity:.8;text-shadow:1px 1px 2px #000;pointer-events:none}#cancel.bluff-revealed{color:#fff2ab;text-shadow:0 0 7px #e9c373,1px 1px 1px #000}#server-dialog{width:490px;padding:27px 30px 24px;background:linear-gradient(145deg,#21172bf5,#101013fa)}#server-close{position:absolute;top:7px;right:11px;border:0;background:transparent;color:#be9a65;font:25px Georgia,serif;cursor:pointer}.server-whisper{color:#bd83cf;text-align:center;font-size:11px;letter-spacing:2px;margin:0 0 8px}#server-title{color:#dfb5ee;font-size:24px;margin-bottom:22px}#server-speech{white-space:pre-line;color:#e3cfeb;font:16px/1.6 Friz,Georgia,serif;min-height:125px;margin:0 0 23px}#server-choices{display:grid;gap:11px}#server-choices .game-button{font-size:14px;min-height:36px;padding:8px 10px}@media(max-width:650px){#server-dialog{padding:25px 22px}#server-speech{font-size:15px}#secret-count{bottom:52px;left:14px}}
/* Hidden discoveries stay part of the scenery. */
.forever-logo{pointer-events:auto;cursor:default;z-index:2}.logo-awake{filter:drop-shadow(0 0 18px #ffd76c);animation:logo-ring .65s ease-in-out 3}
#scene-plane{position:fixed;pointer-events:none;z-index:0}.scene-secret{position:absolute;pointer-events:auto;border:0;background:transparent;padding:0;cursor:default;color:transparent}
.eye{width:3.2%;height:4.8%;transform:translate(-50%,-50%)}#eye-left{left:23.5%;top:25.7%}#eye-right{left:70%;top:13.9%}
.eye span{position:absolute;inset:35% 22%;background:#ff080088;filter:blur(5px);opacity:.1;transition:opacity .4s}.eye.watching span{opacity:.65}.eye.blink span{background:#120705;filter:none;inset:25% 15%;opacity:1}.eye.awakened span{background:#ffc36a;opacity:.55}
.fishing{left:52%;top:88%;width:6%;height:7%;transform:translate(-50%,-50%)}.ripple{position:absolute;inset:28% 12%;border:1px solid #ceb67366;border-radius:50%;box-shadow:0 0 0 5px #dbba6a12;animation:pond 4s ease-in-out infinite}.bobber{position:absolute;width:5px;height:7px;border-radius:50%;background:linear-gradient(#d02d19 50%,#c2b9a5 50%);left:50%;top:40%;opacity:.3}.cast .bobber{opacity:1}.cast .ripple{border-color:#eee2b380}.bite .bobber{animation:bite .25s ease-in-out infinite}.bite .ripple{border-color:#ffe6a5;box-shadow:0 0 0 10px #eed47c18}
#golden-ember{position:fixed;z-index:6;left:43vw;top:77vh;width:48px;height:48px;padding:0;border:0;background:transparent;cursor:pointer}#golden-ember:before{content:'';position:absolute;left:20px;top:20px;width:7px;height:7px;border-radius:50%;background:#ffe5a3;box-shadow:0 0 6px 2px #ffe48c,0 0 17px 4px #e2a526}#golden-ember.drift{animation:golden-drift 14s linear forwards}
#reward{position:fixed;top:calc(53% - 135px);left:50%;transform:translateX(-50%);font-size:15px;color:#fff1a2;pointer-events:none;opacity:0;text-align:center;width:90%;z-index:5}#reward.show{animation:reward-float 3.5s ease-out forwards}
#whisper{position:fixed;left:18px;bottom:100px;width:min(430px,calc(100vw - 190px));font-size:13px;line-height:1.5;color:#dab1e8;opacity:0;transition:opacity .3s;pointer-events:none;z-index:4}#whisper.show{opacity:1}
#chat-toggle{position:fixed;left:12px;bottom:72px;color:#c5af73;background:transparent;border:0;font-size:19px;opacity:.5;cursor:pointer}
#chat-form{position:fixed;left:12px;bottom:72px;background:#0b0c0deb;border:1px solid #796544;width:min(420px,calc(100vw - 28px));padding:7px 9px;display:flex;align-items:center;gap:8px;z-index:6;font-size:13px}#chat-form input{min-width:0;flex:1;border:0;background:transparent;color:#eee0c5;font:inherit;outline:none}#chat-form button{background:none;border:0;color:#d2b982;font:inherit;cursor:pointer}
#dance-sprite{position:fixed;left:50%;top:71%;font-size:36px;color:#ffdf82;pointer-events:none;animation:dancing .5s ease-in-out 6;z-index:3}
.load-track{height:7px;width:75%;margin:18px auto 10px;background:#080806;border:1px solid #8a704b}.load-track span{display:block;height:100%;background:linear-gradient(90deg,#723716,#e5b94f);transition:width 1.5s}
.portal-entering .world{animation:portal-zoom 7s ease-in forwards}.portal-entering .firelight{opacity:.35}.server-failure #connecting-view{animation:server-shake .13s linear 5;border-color:#d75b35}.server-failure #connect-label{color:#ff6c40}
.leaderboard{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:min(600px,calc(100vw - 28px));padding:26px 30px;background:linear-gradient(135deg,#1d1714f2,#0b0d0ff2);text-align:center;z-index:5;max-height:80svh;overflow:auto}.leaderboard h1{font-size:25px;margin:5px 0 15px;font-weight:400;color:#f2d28c}.leaderboard #run-result{font-size:15px;color:#ddd0b0}.board-note{color:#ac9b7a;font-size:12px}.board-scroll{max-height:32svh;overflow:auto;margin-top:20px}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{color:#af9972;font-size:11px;letter-spacing:1px;font-weight:400;border-bottom:1px solid #66583f;padding:10px}td{padding:12px 10px;border-bottom:1px solid #6c604331;color:#dfd3b7;overflow-wrap:anywhere}th:last-child,td:last-child{text-align:right;white-space:nowrap}.your-score td{color:#ffe091;background:#8b641e25}#board-status{font:11px/1.5 Arial,sans-serif;color:#bdb092;text-shadow:none}.leaderboard .menu-actions{flex-wrap:wrap}.game-button:disabled{filter:grayscale(.4);opacity:.65;cursor:wait}#password:disabled{opacity:1;cursor:default}
@keyframes pond{0%,100%{transform:scale(.85);opacity:.4}50%{transform:scale(1.12);opacity:.75}}@keyframes bite{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@keyframes golden-drift{0%{transform:translate(0,0);opacity:0}8%{opacity:1}45%{transform:translate(8vw,-8vh)}85%{opacity:1}100%{transform:translate(19vw,-17vh);opacity:0}}
@keyframes reward-float{0%{opacity:0;translate:0 12px}15%,65%{opacity:1}100%{opacity:0;translate:0 -20px}}
@keyframes dancing{0%,100%{transform:translateX(-50%) rotate(-15deg)}50%{transform:translateX(-50%) rotate(15deg) translateY(-8px)}}
@keyframes logo-ring{50%{filter:drop-shadow(0 0 28px #ffcf41)}}@keyframes portal-zoom{to{transform:scale(1.16);filter:brightness(1.5)}}@keyframes server-shake{25%{translate:-4px 0}75%{translate:4px 0}}
@media(max-width:650px){#reward{top:calc(49% - 135px);font-size:13px}#whisper{font-size:11px;bottom:135px;width:calc(100vw - 32px)}.leaderboard{padding:24px 16px;top:46%;max-height:72svh}.leaderboard h1{font-size:21px}.leaderboard .menu-actions{gap:8px}.leaderboard .game-button{font-size:12px;min-width:90px}#chat-form{bottom:94px}#chat-toggle{bottom:94px}}
.no-motion #golden-ember{animation:none;left:53vw;top:77vh}.no-motion .world{animation:none}.no-motion .eye span{transition:none}


#pan-control{display:none}@media(max-width:650px){#pan-control{display:flex;position:fixed;top:18px;right:10px;gap:6px;align-items:center;font-size:9px;color:#bba370;z-index:4}#pan-control button{border:1px solid #8b7045;background:#15110a90;color:#dfc180;font:22px Georgia;padding:1px 8px;cursor:pointer}}
@media(prefers-reduced-motion:reduce){#reward.show{opacity:1;animation:fade-reward 3.5s forwards!important}}.no-motion #reward.show{animation:fade-reward 3.5s forwards}@keyframes fade-reward{0%,85%{opacity:1}100%{opacity:0}}
.eye span:before,.eye span:after{content:'';position:absolute;top:25%;width:3px;height:3px;border-radius:50%;background:#ff3520;translate:var(--gaze-x,0) var(--gaze-y,0);box-shadow:0 0 4px #ff4d1c}.eye span:before{left:10%}.eye span:after{right:10%}.eye.blink span:before,.eye.blink span:after{display:none}.fishing:before{content:'';position:absolute;inset:23% 11%;background:radial-gradient(ellipse,#52615770,#54604a33 65%,transparent 70%);border-radius:50%;opacity:.6}

.eye.awakened span{background:transparent;filter:blur(5px);opacity:.5}.eye.blink span{border-radius:50%;background:#160c07;filter:blur(1px)}

@media(max-width:650px){#whisper{bottom:230px}}

/* Per-run chat keeps discoveries after their effects fade. */
#chat-log{position:fixed;left:12px;bottom:104px;width:min(420px,calc(100vw - 190px));max-height:140px;margin:0;padding:8px 10px;list-style:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#80704b #16110a;background:linear-gradient(90deg,#090b0dd9,#11100b70);border-left:1px solid #8c74484d;border-radius:2px;font:12px/1.5 Friz,Georgia,serif;z-index:4;overflow-wrap:anywhere}
#chat-log li{margin:0 0 5px;white-space:pre-line}#chat-log li:last-child{margin-bottom:0}#chat-log time{color:#998b76;font-size:10px}.chat-unlock{color:#ffdf76}.chat-reward{color:#b8d391}.chat-whisper{color:#dab1e8}.chat-say{color:#ede1c9}.has-chat #whisper{bottom:258px}
@media(max-width:650px){#chat-log{bottom:126px;width:calc(100vw - 182px);max-height:110px;font-size:11px;padding:6px 7px}.has-chat #whisper{bottom:250px}}
@media(max-height:500px){#chat-log{bottom:88px;max-height:70px;width:min(360px,calc(100vw - 170px));font-size:10px}.has-chat #whisper{bottom:172px;font-size:11px}}

/* Client-style options with persistent preferences and scene quality presets. */
#options-dialog{width:720px;padding:23px 25px;max-height:calc(100svh - 28px);background:linear-gradient(135deg,#201b16fa,#111418fa)}
#options-dialog h2{margin-bottom:10px}.settings-layout{display:grid;grid-template-columns:130px minmax(0,1fr);gap:22px;margin-top:16px}
#settings-tabs{display:flex;flex-direction:column;gap:5px;border-right:1px solid #73603c66;padding-right:14px}
#settings-tabs button{font:15px Friz,Georgia,serif;text-shadow:inherit;text-align:left;color:#c4b38c;border:1px solid transparent;border-radius:2px;background:transparent;cursor:pointer;padding:9px 10px}
#settings-tabs button:hover{background:#5a49332c;color:#fff0b8}#settings-tabs button[aria-selected=true]{color:#ffe399;background:linear-gradient(90deg,#77562c66,#2b221a55);border-color:#8e754b88}
.settings-panels{min-width:0;height:340px;overflow:auto;scrollbar-width:thin;scrollbar-color:#8e744f #15120d;padding-right:8px}
.settings-panels h3{font:16px Friz,Georgia,serif;font-weight:400;color:#e6c27a;margin:7px 0 5px}
#options-dialog .option-row{padding:12px 0;font-size:14px;gap:12px}#options-dialog .option-row select{max-width:55%;font-size:11px}
.range-control{display:flex;align-items:center;gap:8px}.range-control input{width:120px}.range-control output{font:11px Arial,sans-serif;color:#b8a783;width:20px;text-align:right}
.settings-description{font-size:12px;color:#c1b291}#cache-status{font-size:12px;color:#cdb991;min-height:36px;margin-top:15px}
.login-music{padding-bottom:12px;border-bottom:1px solid #73603c66}.login-music .game-button{font-size:12px;margin:9px 0}.login-music a{color:#e5c17d}.login-music .settings-description{font-size:11px;line-height:1.6}
#music-dock{position:fixed;left:50%;bottom:65px;transform:translateX(-50%);width:min(390px,calc(100vw - 28px));padding:5px 26px 5px 5px;background:#171410e8;border:1px solid #8a724a;box-shadow:0 2px 8px #0006;z-index:7}#music-dock iframe{display:block;width:100%;height:42px;border:0}#music-dock>button{position:absolute;right:5px;top:8px;font:20px Georgia,serif;color:#c7a96f;background:transparent;border:0;cursor:pointer}@media(max-width:650px){#music-dock{top:155px;bottom:auto}}@media(max-height:500px){#music-dock{bottom:12px;left:50%;top:auto;width:300px}}
#menu-reward{font-size:13px;text-align:center;color:#ffe395;min-height:18px;margin:12px 0 0;opacity:0}#menu-reward.show{animation:reward-float 3.5s ease-out forwards}
#options-dialog .menu-actions{gap:9px;margin-top:12px;flex-wrap:wrap}#options-dialog .menu-actions button{font-size:12px;min-width:110px}
body[data-graphics=low] .world,body[data-graphics=fair] .world{image-rendering:pixelated}
body[data-graphics=low] #embers,body[data-graphics=fair] #embers{image-rendering:pixelated}
#flames{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-2}#embers{z-index:-1}body[data-graphics=low] #flames,body[data-graphics=fair] #flames{image-rendering:pixelated}
.portal-entering #flames{animation:portal-zoom 7s ease-in forwards}.no-motion #flames{animation:none}
.portal-entering #embers{animation:portal-zoom 7s ease-in forwards}.no-motion #embers{animation:none}
@media(max-width:650px){#options-dialog{padding:20px 15px}.settings-layout{grid-template-columns:1fr;gap:10px;margin-top:10px}#settings-tabs{flex-direction:row;overflow:auto;padding:0 0 7px;border-right:0;border-bottom:1px solid #73603c66;gap:3px}#settings-tabs button{font-size:12px;padding:8px;white-space:nowrap}.settings-panels{height:min(330px,42svh);padding-right:4px}#options-dialog .option-row{font-size:12px}.range-control input{width:90px}#options-dialog .menu-actions button{min-width:100px}.has-chat #whisper{bottom:250px}}
@media(max-height:500px){.settings-panels{height:190px}.settings-layout{margin-top:8px}#options-dialog{padding:14px 20px}#options-dialog .queue-stats{padding:4px 0 8px}#options-dialog .menu-footnote{display:none}}
@media(prefers-reduced-motion:reduce){#menu-reward.show{opacity:1;animation:fade-reward 3.5s forwards!important}}


.speed-warning{font:12px/1.6 Arial,sans-serif;color:#f3bf82;border-left:2px solid #d89a55;padding:6px 10px;margin:0 0 12px}
