@font-face{font-family:Pixelify Sans;src:url(/assets/fonts/pixelify-sans/PixelifySans%5Bwght%5D.ttf)format("truetype-variations");font-weight:400 700;font-style:normal;font-display:swap}:root{--color-bg-deep-moss:#203a32;--color-bg-moss:#2b5143;--color-bg-sage:#6f9364;--color-panel-deep:#18382f;--color-panel-mid:#274d3f;--color-panel-border:#6f8f55;--color-panel-highlight:#9fb76d;--color-cream:#fff0c9;--color-paper:#fffdf6;--color-warm-shadow:#6f5d3e;--color-ink:#142033;--color-pine-shadow:#314d43;--frame-pad:7px;--glass-sage:var(--color-bg-sage);--glass-highlight:var(--color-panel-highlight);--glass-moss:var(--color-bg-moss);--glass-pine:var(--color-pine-shadow);--glass-cream-06:#fff0c90f;--glass-cream-12:#fff0c91f;--glass-shadow-55:#0a1a148c;--glass-shadow-70:#0a1a14b3}html,body{overscroll-behavior:none;touch-action:pan-y;width:100%;min-height:100%;color:var(--color-cream);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden auto}html{background:radial-gradient(130% 100% at 50% 12%, var(--color-bg-moss) 0%, var(--color-bg-deep-moss) 58%, #16291f 100%);background-attachment:fixed;background-color:var(--color-bg-deep-moss)}.blops-backdrop{z-index:-1;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.blops-backdrop__defs{width:0;height:0;position:absolute;overflow:hidden}.blops-backdrop__goo,.blops-backdrop__caustic,.blops-backdrop__sheen,.blops-backdrop__grain,.blops-backdrop__vignette{pointer-events:none;position:absolute}.blops-backdrop__drift{will-change:transform;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;position:absolute;inset:-6%}.blops-backdrop__drift--far{animation-name:blops-drift-far;animation-duration:120s;animation-delay:-40s}.blops-backdrop__drift--near{animation-name:blops-drift-near;animation-duration:94s;animation-delay:-15s}.blops-backdrop__goo{transform-origin:0 0;opacity:.3;filter:url(#blops-goo);width:25%;height:25%;top:0;left:0;transform:scale(4)}.blops-blob{aspect-ratio:1;background:radial-gradient(circle at 38% 28%, var(--glass-highlight) 0%, var(--glass-sage) 22%, var(--glass-pine) 62%, var(--glass-moss) 100%);border-radius:50% 50% 46% 46%/58% 58% 42% 42%;display:block;position:absolute}.blops-blob--a{width:34%;top:6%;left:-6%}.blops-blob--g{width:18%;top:36%;left:21%}.blops-blob--c{width:38%;top:28%;right:-8%}.blops-blob--b{width:24%;top:52%;left:8%}.blops-blob--e{width:26%;bottom:-12%;left:38%}.blops-blob--d{width:20%;bottom:-4%;right:17%}.blops-blob--f{width:14%;top:18%;right:24%}.blops-backdrop__caustic{opacity:.045;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512'><filter id='c' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.006' numOctaves='2' seed='3' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 0.94  0 0 0 0 0.79  0 0 2.4 0 -0.9'/></filter><rect width='512' height='512' filter='url(%23c)'/></svg>");background-size:512px 512px;inset:0}.blops-backdrop__sheen{background:radial-gradient(55% 60% at 40% 45%, var(--glass-cream-12) 0%, var(--glass-cream-06) 30%, transparent 70%);will-change:transform;width:120%;height:90%;animation:110s ease-in-out -30s infinite alternate blops-sheen;top:-20%;left:-10%}.blops-backdrop__grain{opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");inset:0}.blops-backdrop__vignette{background:radial-gradient(80% 45% at 8% -10%, var(--glass-shadow-55), transparent 65%), radial-gradient(80% 45% at 92% -10%, var(--glass-shadow-55), transparent 65%), radial-gradient(120% 90% at 50% 40%, transparent 45%, var(--glass-shadow-70) 100%);inset:0}@keyframes blops-drift-far{0%{transform:translate(0,0)}50%{transform:translate(1.5%,2%)}to{transform:translate(-1.5%,1%)}}@keyframes blops-drift-near{0%{transform:translate(0,0)}50%{transform:translate(-2%,-1.5%)}to{transform:translate(1%,2%)}}@keyframes blops-sheen{0%{transform:translate(0,0)scale(1)}to{transform:translate(8%,6%)scale(1.08)}}@media (prefers-reduced-motion:reduce){.blops-backdrop__drift,.blops-backdrop__sheen{will-change:auto;animation:none}}.blops-shell{box-sizing:border-box;margin:0 auto}.blops-header{place-items:center;padding-top:4px;display:grid}.blops-plaque{border:2px solid var(--color-panel-border);background:linear-gradient(var(--color-panel-mid) 0%, var(--color-panel-deep) 72%);min-width:200px;color:var(--color-cream);letter-spacing:.02em;text-align:center;text-shadow:0 3px 0 var(--color-warm-shadow), 0 5px 0 #0a181273;border-radius:16px;margin:0;padding:10px 36px 14px;font-family:Pixelify Sans,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:48px;font-weight:700;line-height:1;position:relative;box-shadow:inset 0 2px #9fb76d66,inset 0 -4px #0a181273,0 4px #0c1a148c,0 12px 26px #0a181280}.blops-plaque:before,.blops-plaque:after{content:"";background:var(--color-panel-highlight);width:5px;height:5px;position:absolute}.blops-plaque:before{box-shadow:5px 5px 0 var(--color-bg-sage), 0 10px 0 var(--color-bg-sage), 10px 0 0 #9fb76d8c, -2px 20px 0 #6f936499;top:12px;left:12px}.blops-plaque:after{box-shadow:-5px -5px 0 var(--color-bg-sage), 0 -10px 0 var(--color-bg-sage), -10px 0 0 #9fb76d8c, 2px -20px 0 #6f936499;bottom:12px;right:12px}.blops-corner-mark{display:none}.blops-frame{box-sizing:border-box;padding:var(--frame-pad);border:2px solid var(--color-panel-border);background:var(--color-panel-mid);border-radius:14px;box-shadow:inset 0 1px #9fb76d59,0 2px #0c1a1480,0 10px 24px #0a181273}#app{background:var(--color-pine-shadow);min-height:144px;box-shadow:inset 0 0 0 2px var(--color-panel-deep);image-rendering:pixelated;border-radius:8px;place-items:center;display:grid;overflow:hidden}canvas{image-rendering:pixelated;touch-action:none;margin:0;display:block}.blops-book{z-index:2;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 3px 2px #0a18128c);background:0 0;border:none;place-items:center;width:44px;height:44px;margin:0;padding:0;transition:transform .12s ease-out;display:grid;position:absolute;top:-22px;right:8px}.blops-book img{width:32px;height:32px;image-rendering:pixelated;display:block}.blops-book:hover,.blops-book:focus-visible{transform:translateY(-2px)rotate(-3deg)}.blops-book:focus-visible{outline:2px solid var(--color-panel-highlight);outline-offset:3px;border-radius:10px}.blops-book:active{transform:translateY(1px)}.field-guide[hidden]{display:none}.field-guide__backdrop{z-index:9;background:#0d1b1599;position:fixed;inset:0}.field-guide__panel{z-index:10;box-sizing:border-box;width:min(330px,100vw - 32px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));color:#314d43;background:#f3e6c8;border:3px solid #74412f;border-radius:12px;flex-direction:column;padding:18px 18px 16px;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 2px #d9b77e,0 0 0 1px #314d43,0 14px 30px #08120e8c}.field-guide__reader{flex-direction:column;flex:auto;min-height:0;margin-bottom:12px;display:flex;position:relative}.field-guide__body{overscroll-behavior:contain;min-height:0;overflow-y:auto}.field-guide__body:focus-visible{outline-offset:2px;outline:2px solid #b84a62}.field-guide__plaque,.field-guide__title,.field-guide__close{flex-shrink:0}@media (height<=600px){.field-guide__panel .field-guide__plaque{display:none}.field-guide__panel{padding:14px}}.field-guide__plaque{min-width:0;margin:0 0 14px;padding:9px 30px 12px;font-size:36px;display:block}.field-guide__title{color:#314d43;text-shadow:0 2px #d9b77ee6;margin:0 0 10px;font-family:Pixelify Sans,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px;font-weight:700;line-height:1}.field-guide__copy{margin:0 0 14px;font-size:15px;line-height:1.5}.field-guide__close{box-sizing:border-box;color:#314d43;width:100%;min-height:44px;font:inherit;cursor:pointer;touch-action:manipulation;background:#d9b77e;border:2px solid #74412f;border-radius:6px;padding:8px 10px;font-weight:700;display:block}.field-guide__close:hover{background:#fbcb84;border-color:#e27d3e}.field-guide__close:focus-visible{outline-offset:2px;background:#fbcb84;border-color:#e27d3e;outline:2px solid #b84a62}.field-guide__close:active{background:#f29f45}.blops-dialogue-panel{box-sizing:border-box;display:grid;position:relative}.blops-dialogue-idle{color:#fff0c9a8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:4px 12px;display:flex}.blops-dialogue-idle p{letter-spacing:.04em;margin:0;font-size:13px}.blops-dialogue-idle__leaf{background:#9fb76d8c;border-radius:1px;width:8px;height:8px;transform:rotate(45deg)}.blops-dialogue-panel:has(.dialogue-overlay:not([hidden])) .blops-dialogue-idle{display:none}.dialogue-overlay{box-sizing:border-box;flex-direction:column;gap:8px;width:100%;display:flex}.dialogue-overlay[hidden]{display:none}.dialogue-textbox{box-sizing:border-box;color:#314d43;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#f3e6c8;border:3px solid #74412f;border-radius:10px;width:100%;padding:14px;font-size:16px;line-height:1.4;position:relative;box-shadow:inset 0 0 0 2px #d9b77e,0 0 0 1px #314d43}.dialogue-textbox:focus-visible{outline-offset:2px;outline:2px solid #b84a62}.dialogue-text{height:4.2em;display:block;position:relative;overflow:hidden}.dialogue-line{white-space:nowrap;display:block}.dialogue-measure{visibility:hidden;white-space:pre;pointer-events:none;position:absolute}.dialogue-continue{color:#74412f;pointer-events:none;font-size:12px;line-height:1;animation:1s step-end infinite dialogue-continue-blink;position:absolute;bottom:5px;right:10px}.dialogue-continue[hidden]{display:none}@media (prefers-reduced-motion:reduce){.dialogue-continue{animation:none}}@keyframes dialogue-continue-blink{0%,to{opacity:1}50%{opacity:0}}.dialogue-choices{--choice-caret:18px;box-sizing:border-box;color:#314d43;background:#f3e6c8;border:3px solid #74412f;border-radius:10px;flex-direction:column;width:100%;min-height:0;padding:4px;font-size:16px;line-height:1.4;display:flex;position:relative;box-shadow:inset 0 0 0 2px #d9b77e,0 0 0 1px #314d43}.dialogue-choices[hidden]{display:none}.dialogue-choices__list{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;gap:6px;min-height:0;padding:4px;scroll-padding:4px;display:flex;overflow-y:auto}.dialogue-choices:after,.field-guide__reader:after{content:"▾";color:#74412f;opacity:0;pointer-events:none;background:linear-gradient(#f3e6c800,#f3e6c8 75%);justify-content:center;align-items:flex-end;height:22px;font-size:14px;line-height:1;display:flex;position:absolute;bottom:0;left:0;right:0}.dialogue-choices:after{border-radius:0 0 7px 7px}.dialogue-choices[data-scroll=bottom]:after,.dialogue-choices[data-scroll=both]:after,.field-guide__reader[data-scroll=bottom]:after,.field-guide__reader[data-scroll=both]:after{opacity:1}.dialogue-choices button{box-sizing:border-box;color:#314d43;width:100%;min-height:44px;padding:8px 10px 8px calc(10px + var(--choice-caret));text-indent:calc(-1 * var(--choice-caret));font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:#d9b77e;border:2px solid #74412f;border-radius:6px;flex-shrink:0;font-weight:700;display:block}.dialogue-choices button:before{content:"▶";width:var(--choice-caret);text-indent:0;opacity:0;font-size:12px;display:inline-block}.dialogue-choices button:hover:before,.dialogue-choices button:focus:before{opacity:1}.dialogue-choices button:hover,.dialogue-choices button:focus{background:#fbcb84;border-color:#e27d3e}.dialogue-choices button:focus-visible{outline-offset:2px;outline:2px solid #b84a62}.dialogue-choices button:active{background:#f29f45}.movement-controls{--direction-size:52px;isolation:isolate;grid-template-columns:repeat(3, var(--direction-size));grid-template-rows:repeat(3, var(--direction-size));touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#27483b;border-radius:36px;width:max-content;margin:0 auto;padding:8px;display:grid;position:relative;box-shadow:inset 0 0 0 2px #73533b,inset 0 0 0 5px #91a26a,inset 0 0 0 8px #385741,0 5px #172e25,0 10px 18px #10271b66}.movement-controls[hidden]{display:none}.movement-controls__button{z-index:1;width:var(--direction-size);height:var(--direction-size);color:#385741;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#f3e6c8;border:0;border-radius:8px;place-items:center;margin:0;padding:0;display:grid;position:relative;box-shadow:inset 0 3px #fff7df,inset 0 -4px #bda77c}.movement-controls__button--up{border-radius:12px 12px 0 0}.movement-controls__button--left{border-radius:12px 0 0 12px}.movement-controls__button--right{border-radius:0 12px 12px 0}.movement-controls__button--down{border-radius:0 0 12px 12px}.movement-controls__hub{background:#f3e6c8;grid-area:2/2;place-items:center;display:grid}.movement-controls__hub:before{content:"";clip-path:polygon(3px 0,9px 0,9px 3px,12px 3px,12px 9px,9px 9px,9px 12px,3px 12px,3px 9px,0 9px,0 3px,3px 3px);background:#9aa775;width:12px;height:12px;box-shadow:0 3px #bda77c}.movement-controls__chevron{clip-path:polygon(12px 0,16px 0,16px 4px,20px 4px,20px 8px,24px 8px,24px 12px,28px 12px,28px 20px,20px 20px,20px 16px,16px 16px,16px 12px,12px 12px,12px 16px,8px 16px,8px 20px,0 20px,0 12px,4px 12px,4px 8px,8px 8px,8px 4px,12px 4px);pointer-events:none;background:currentColor;width:28px;height:20px}.movement-controls__button--left .movement-controls__chevron{rotate:-90deg}.movement-controls__button--right .movement-controls__chevron{rotate:90deg}.movement-controls__button--down .movement-controls__chevron{rotate:180deg}.movement-controls__button[data-pressed],.movement-controls__button:active{color:#74412f;background:#d9b77e;box-shadow:inset 0 4px #a68355,inset 0 -1px #f3e6c8}.movement-controls__button[data-pressed] .movement-controls__chevron,.movement-controls__button:active .movement-controls__chevron{translate:0 3px}.movement-controls__button:focus-visible{z-index:2;outline-offset:-5px;outline:3px solid #b84a62}@media (pointer:coarse){.movement-controls{--direction-size:64px}}@media (hover:hover) and (pointer:fine){.blops-shell{width:100%;min-height:100dvh;margin:0;padding:0;display:block}.blops-header{display:none}.blops-play{place-items:center;width:100%;height:100dvh;display:grid}.blops-frame{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}#app{min-height:0;box-shadow:none;background:0 0;border-radius:0}.blops-corner-mark{z-index:6;border:2px solid var(--color-panel-border);background:linear-gradient(var(--color-panel-mid) 0%, var(--color-panel-deep) 72%);color:var(--color-cream);letter-spacing:.02em;text-shadow:0 2px 0 var(--color-warm-shadow);cursor:pointer;border-radius:10px;margin:0;padding:7px 16px 9px;font-family:Pixelify Sans,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px;font-weight:700;line-height:1;transition:transform .12s ease-out;display:block;position:fixed;top:14px;left:14px;box-shadow:inset 0 1px #9fb76d66,inset 0 -2px #0a181273,0 2px #0c1a148c,0 6px 14px #0a181280}.blops-corner-mark:hover,.blops-corner-mark:focus-visible{transform:translateY(-1px)}.blops-corner-mark:focus-visible{outline:2px solid var(--color-panel-highlight);outline-offset:3px}.blops-corner-mark:active{transform:translateY(1px)}.blops-book{z-index:6;position:fixed;top:10px;right:14px}.blops-dialogue-panel{z-index:5;left:0;right:0;bottom:calc((100dvh - 144px * var(--game-zoom,2)) / 2 + 10px);box-sizing:border-box;width:calc(160px * var(--game-zoom,2) - 16px);max-width:calc(100vw - 16px);min-height:0;box-shadow:none;pointer-events:none;background:0 0;border:none;border-radius:0;margin-left:auto;margin-right:auto;padding:0;display:block;position:fixed}.blops-dialogue-panel .dialogue-overlay,.blops-dialogue-panel .blops-book{pointer-events:auto}.blops-dialogue-idle{display:none}.dialogue-overlay{flex-direction:column-reverse;align-items:flex-start}.dialogue-textbox{align-self:stretch}.dialogue-choices{width:auto;min-width:min(230px,100%);max-width:min(100%,max(230px,45%));max-height:calc(100dvh - 150px)}#movement-root{z-index:4;position:fixed;bottom:18px;left:18px}.movement-controls{justify-content:start}}.controls-hint{display:none}@media (hover:hover) and (pointer:fine){.controls-hint:not([hidden]){z-index:4;box-sizing:border-box;border:1px solid var(--color-panel-border);background:var(--color-panel-deep);width:max-content;max-width:calc(100vw - 24px);color:var(--color-cream);border-radius:8px;align-items:center;gap:8px;padding:0 0 0 12px;font-size:12px;line-height:1.5;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.controls-hint button{width:44px;height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:20px}body:has(.dialogue-overlay:not([hidden])) .controls-hint{display:none}body:has(.movement-controls[data-available]) .controls-hint{display:none}}@media not all and (hover:hover) and (pointer:fine){.blops-shell{width:100%;max-width:720px;height:100dvh;min-height:0;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));grid-template-rows:36px minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.blops-header{padding:0}.blops-header .blops-plaque{min-width:0;box-shadow:none;text-shadow:0 2px #142c22;background:0 0;border:none;border-radius:0;padding:0 28px;font-size:28px}.blops-header .blops-plaque:before{top:3px;left:4px}.blops-header .blops-plaque:after{bottom:3px;right:4px}.blops-play{place-items:center;min-width:0;min-height:0;display:grid}.blops-frame{border-radius:6px;padding:2px;box-shadow:0 3px #152d24,0 8px 24px #10271b55}#app{border-radius:2px}.blops-book{top:max(4px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));z-index:6;position:fixed}.blops-dialogue-panel{min-width:0;min-height:0;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.blops-dialogue-idle{padding:0 8px}.blops-dialogue-idle__leaf{display:none}.blops-dialogue-idle p{letter-spacing:0;font-size:12px;line-height:18px}#movement-root{min-height:208px}#movement-root:not(:has(.movement-controls[data-available])){min-height:0}#dialogue-root{min-height:0}.dialogue-overlay{max-height:calc(100dvh - 220px)}.dialogue-textbox{flex-shrink:0}.blops-shell:has(.dialogue-overlay:not([hidden])){grid-template-rows:36px minmax(0,1fr) auto}.blops-shell:has(.dialogue-overlay:not([hidden])) #movement-root{display:none}}@media (pointer:coarse) and (orientation:landscape) and (height<=500px){.blops-shell{max-width:none;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom));grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 208px}.blops-header{display:none}.blops-play{grid-area:1/1/3}.blops-dialogue-panel{grid-area:1/2;align-self:end}.blops-dialogue-idle{padding:0 16px}#movement-root{grid-area:2/2}.blops-shell:has(.dialogue-overlay:not([hidden])){grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(280px,45%)}.blops-shell:has(.dialogue-overlay:not([hidden])) .blops-dialogue-panel{box-sizing:border-box;grid-template-rows:minmax(0,1fr);height:100%;padding-top:44px}.dialogue-overlay{height:100%;max-height:none}.dialogue-textbox{padding:10px 12px;font-size:14px}.dialogue-choices{padding:2px;font-size:14px}.dialogue-choices__list{gap:4px}.dialogue-choices button{padding:6px 8px 6px calc(8px + var(--choice-caret))}}@media (pointer:coarse) and (orientation:portrait) and (width<=343px){.blops-shell{padding:max(4px, env(safe-area-inset-top)) env(safe-area-inset-right) max(4px, env(safe-area-inset-bottom)) env(safe-area-inset-left);grid-template-rows:44px minmax(0,1fr) auto auto;gap:4px}.blops-frame{border:none;border-radius:0;padding:0}#app{border-radius:0}.blops-dialogue-idle{display:none}.blops-dialogue-panel{padding:0 8px}.blops-shell:has(.dialogue-overlay:not([hidden])){grid-template-rows:44px minmax(0,1fr) auto}}
