.four-fields{--ink:#3c2a1d;--cream:#fff8df;--paper:#fff8dff0;--green:#3f7a42;--red:#c84f3f;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;background:#8fbd64;font-family:Avenir Next,Trebuchet MS,system-ui,sans-serif;position:fixed;inset:0;overflow:hidden}.four-fields canvas{width:100%;height:100%;display:block}.ff-stage{position:absolute;inset:0}.ff-loading,.ff-overlay{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2c42232e;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.ff-loading-card,.ff-card{background:var(--paper);text-align:center;border:3px solid #623e2138;border-radius:28px 22px 30px 20px;width:min(440px,100vw - 36px);padding:28px;box-shadow:0 16px 45px #39271640}.ff-eyebrow{color:#6b8750;letter-spacing:.16em;text-transform:uppercase;margin:0 0 6px;font-size:.75rem;font-weight:900}.ff-card h1,.ff-card h2,.ff-loading-card h2{color:#503421;letter-spacing:-.045em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.1rem,7vw,4rem);line-height:.95}.ff-card h2,.ff-loading-card h2{font-size:clamp(1.8rem,6vw,3rem)}.ff-card p,.ff-loading-card p{max-width:34ch;margin:15px auto 20px;font-size:1rem;line-height:1.5}.ff-button{color:#fffdf2;min-width:190px;min-height:52px;font:inherit;letter-spacing:.02em;cursor:pointer;background:#bd4a38;border:0;border-radius:999px;padding:12px 22px;font-weight:900;box-shadow:inset 0 -4px #5b241b4d,0 7px 16px #5b241b33}.ff-button:hover{background:#ca5946;transform:translateY(-1px)}.ff-button:active{transform:translateY(2px)}.ff-button:focus-visible,.ff-icon-button:focus-visible,.ff-pad button:focus-visible,.ff-harvest:focus-visible{outline-offset:3px;outline:4px solid #fff}.ff-loader{background:#d8d8af;border-radius:999px;height:10px;margin-top:18px;overflow:hidden}.ff-loader:after{border-radius:inherit;content:"";background:#6d9b54;width:42%;height:100%;animation:1.1s ease-in-out infinite alternate ff-load;display:block}@keyframes ff-load{to{transform:translate(138%)}}.ff-hud{z-index:4;pointer-events:none;position:absolute;inset:0}.ff-progress{top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));background:var(--paper);border-radius:18px;gap:7px;margin:0;padding:9px;list-style:none;display:flex;position:absolute;box-shadow:0 8px 22px #342b1a2e}.ff-progress li{color:#8c795c;background:#e8e1c7;border-radius:12px;place-items:center;width:43px;height:38px;font-size:1.25rem;font-weight:900;display:grid}.ff-progress li.done{color:#fff;background:#5f914f}.ff-progress li.active{color:#fff;background:#c45a40;box-shadow:0 0 0 3px #fff4be}.ff-timer{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));background:var(--paper);text-align:center;border-radius:18px;min-width:112px;padding:10px 16px;position:absolute;box-shadow:0 8px 22px #342b1a2e}.ff-timer span{color:#80694b;letter-spacing:.13em;text-transform:uppercase;font-size:.68rem;font-weight:900;display:block}.ff-timer strong{font-variant-numeric:tabular-nums;font-size:2rem;line-height:1;display:block}.ff-timer.warning{color:#b3372e;animation:.65s ease-in-out infinite alternate ff-pulse}@keyframes ff-pulse{to{transform:scale(1.06)}}.ff-objective{bottom:max(20px, env(safe-area-inset-bottom));left:max(18px, env(safe-area-inset-left));background:var(--paper);border-radius:18px;min-width:230px;padding:13px 16px;position:absolute;box-shadow:0 8px 22px #342b1a2e}.ff-objective small{color:#80694b;letter-spacing:.11em;text-transform:uppercase;font-weight:900;display:block}.ff-objective strong{margin-top:2px;font-size:1.08rem;display:block}.ff-meter{background:#d7ceb0;border-radius:999px;height:7px;margin-top:9px;overflow:hidden}.ff-meter i{border-radius:inherit;background:#6a994f;height:100%;transition:width .18s;display:block}.ff-icon-button{right:max(18px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));width:48px;height:48px;color:var(--ink);background:var(--paper);pointer-events:auto;cursor:pointer;border:0;border-radius:50%;font-size:1.2rem;position:absolute;box-shadow:0 8px 22px #342b1a2e}.ff-controls-note{right:78px;bottom:max(29px, calc(env(safe-area-inset-bottom) + 9px));background:#fff8dfd6;border-radius:999px;padding:7px 12px;font-size:.76rem;font-weight:800;position:absolute}.ff-touch{display:none}.ff-toast{z-index:6;color:#fff;background:#4a6534eb;border-radius:999px;padding:10px 18px;font-family:Georgia,serif;font-size:clamp(1rem,3vw,1.3rem);font-weight:800;animation:1.5s both ff-toast;position:absolute;top:88px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #30261933}@keyframes ff-toast{0%{opacity:0;transform:translate(-50%,-8px)scale(.96)}15%,80%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-4px)scale(.98)}}@media (pointer:coarse),(width<=760px){.ff-controls-note{display:none}.ff-objective{bottom:max(104px, calc(env(safe-area-inset-bottom) + 92px));min-width:190px}.ff-icon-button{bottom:max(112px, calc(env(safe-area-inset-bottom) + 100px))}.ff-touch{z-index:7;padding:14px max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.ff-pad{pointer-events:auto;width:132px;height:92px;position:relative}.ff-pad button{color:#fff;background:#3b4f2cc7;border:2px solid #ffffffc7;border-radius:15px;width:46px;height:46px;font-size:1.1rem;font-weight:900;position:absolute}.ff-pad .up{top:0;left:43px}.ff-pad .down{bottom:0;left:43px}.ff-pad .left{bottom:0;left:0}.ff-pad .right{bottom:0;right:0}.ff-harvest{color:#fff;width:92px;height:70px;font:inherit;letter-spacing:.06em;pointer-events:auto;background:#b94530e0;border:3px solid #fffc;border-radius:28px;font-size:.8rem;font-weight:1000;box-shadow:inset 0 -5px #5f261a47}}@media (width<=520px){.ff-progress li{width:34px;height:34px}.ff-timer{min-width:86px;padding:9px 12px}.ff-timer strong{font-size:1.6rem}.ff-card,.ff-loading-card{padding:24px 20px}}@media (prefers-reduced-motion:reduce){.ff-loader:after,.ff-timer.warning,.ff-toast{animation:none}}
