:root{--cream:#fbf6ec;--ink:#2b2118;--teal:#2f5d50;--teal2:#3e7a69;--rose:#e58a9c;--gold:#c9a35f;--bad:#b0313f;--card:#fbf6ecf0;--shadow:0 6px 22px #28160a38;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);font-family:Nunito,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#1e1712;margin:0;overflow:hidden}#view{touch-action:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui button,#ui input,#ui details,#ui .sheet,#ui .hud-btns,#ui .card{pointer-events:auto}button{font:inherit;cursor:pointer}.loading{color:var(--cream);text-align:center;z-index:20;background:radial-gradient(circle at 50% 40%,#3e7a69,#1d3a32);place-content:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.loading.done{opacity:0;pointer-events:none}.ld-title{letter-spacing:2px;font:italic 700 54px Georgia,Times New Roman,serif}.ld-sub{opacity:.8;margin-top:6px}.hud{left:calc(10px + var(--safe-l));right:calc(10px + var(--safe-r));top:calc(8px + var(--safe-t));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.card.contract{background:var(--card);box-shadow:var(--shadow);border-radius:14px;max-width:min(520px,72vw);padding:7px 11px 8px}.contract .title{white-space:nowrap;align-items:center;gap:7px;font:italic 700 17px Georgia,serif;display:flex}.contract .title .n{background:var(--teal);color:var(--cream);border-radius:50%;place-content:center;width:20px;height:20px;font:800 12px Nunito,sans-serif;display:inline-grid}.contract .title .chal{background:var(--gold);color:var(--ink);text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:2px 6px;font:800 10px Nunito,sans-serif}.goals{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.chip{color:#6b5a44;white-space:nowrap;background:#efe5d2;border-radius:9px;padding:2px 7px;font-size:12px;font-weight:700}.chip.ok{color:#1f6b47;background:#d9efe3}.chip.miss{color:#8c2833;background:#f4dadc;text-decoration:line-through}.cond{--flash:0;align-items:center;gap:7px;margin-top:6px;font-size:12px;font-weight:700;display:flex}.cond .lbl{color:#6b5a44}.cond .bar{min-width:70px;height:8px;box-shadow:0 0 0 calc(var(--flash) * 3px) #b0313f73;background:#e6dac4;border-radius:4px;flex:1;overflow:hidden}.cond .bar i{background:linear-gradient(90deg,#e58a9c,#2f8f6a);height:100%;transition:width .25s;display:block}.cond .st{color:#1f6b47;background:#d9efe3;border-radius:6px;padding:1px 6px}.cond .st.s1{color:#8a5a10;background:#fbe7c2}.cond .st.s2,.cond .st.s3{color:#8c2833;background:#f4dadc}.cond.wobble .lbl{animation:.25s infinite alternate wob}@keyframes wob{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.hud-btns{gap:8px;display:flex}.icon{background:var(--card);width:46px;height:46px;color:var(--teal);box-shadow:var(--shadow);border:0;border-radius:14px;font-size:18px;font-weight:800}.icon:active{transform:scale(.95)}.aimhint{left:50%;bottom:calc(14px + var(--safe-b));color:var(--cream);opacity:0;white-space:nowrap;background:#2b2118c7;border-radius:12px;padding:7px 13px;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;position:absolute;transform:translate(-50%)translateY(10px)}.aimhint.on{opacity:1;transform:translate(-50%)}.cancelchip{left:50%;top:calc(96px + var(--safe-t));color:var(--bad);box-shadow:var(--shadow);opacity:0;pointer-events:none;background:#fbf6ece6;border-radius:22px;padding:10px 18px;font-weight:800;transition:opacity .15s;position:absolute;transform:translate(-50%)}.cancelchip.on{opacity:.9}.cancelchip.hot{background:var(--bad);color:var(--cream)}.callouts{place-items:center;display:grid;position:absolute;top:36%;left:0;right:0}.callout{color:var(--cream);text-shadow:0 2px 10px #00000080;font:italic 800 30px Georgia,serif;animation:1.5s ease-out forwards pop}.callout.good{color:#c7f1d6}.callout.warn{color:#ffe1a6}.callout.bad{color:#ffc0c6}@keyframes pop{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.08)}70%{opacity:1}to{opacity:0;transform:translateY(-30px)}}.offscreen{right:calc(10px + var(--safe-r));background:var(--card);box-shadow:var(--shadow);color:var(--teal);opacity:0;border-radius:12px;flex-direction:row-reverse;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:800;transition:opacity .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.offscreen.on{opacity:1}.offscreen.left{right:auto;left:calc(10px + var(--safe-l));flex-direction:row}.offscreen.left .ar{transform:scaleX(-1)}.toasts{left:50%;bottom:calc(18px + var(--safe-b));gap:6px;width:min(460px,86vw);display:grid;position:absolute;transform:translate(-50%)}.toast{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:14px;padding:9px 14px;font-size:14px;transition:opacity .5s,transform .5s}.toast b{font:italic 700 17px Georgia,serif}.toast.out{opacity:0;transform:translateY(-8px)}.tutorial{opacity:0;--ax:50vw;--ay:60vh;--bx:60vw;--by:45vh;transition:opacity .3s;position:absolute;inset:0}.tutorial.on{opacity:1}.tutorial .tt{left:50%;bottom:calc(60px + var(--safe-b));color:var(--cream);box-shadow:var(--shadow);text-align:center;background:#2f5d50e6;border-radius:16px;width:max-content;max-width:min(560px,88vw);padding:10px 18px;font:italic 700 20px Georgia,serif;position:absolute;transform:translate(-50%)}.tutorial .ghost .dot{left:var(--ax);top:var(--ay);border:3px solid #ffffffe6;border-radius:50%;width:18px;height:18px;margin:-9px;animation:2.2s infinite tdot;position:absolute}.tutorial .ghost .fing{background:#ffffff8c;border-radius:50%;width:44px;height:44px;margin:-22px;animation:2.2s ease-in-out infinite tfin;position:absolute;box-shadow:0 0 0 4px #ffffff40}@keyframes tfin{0%{left:var(--ax);top:var(--ay);opacity:0;transform:scale(1.2)}15%{opacity:1;transform:scale(.9)}60%{left:var(--bx);top:var(--by);opacity:1;transform:scale(.9)}75%{left:var(--bx);top:var(--by);opacity:0;transform:scale(1.3)}to{left:var(--bx);top:var(--by);opacity:0}}@keyframes tdot{0%,to{opacity:0}15%,70%{opacity:1}}.overlay{pointer-events:none;background:#1e140c00;place-items:center;transition:background .25s;display:grid;position:absolute;inset:0}.overlay.on{background:#1e140c47}.overlay.side{padding-right:calc(18px + var(--safe-r));background:0 0;place-items:center end}.sheet{background:var(--card);border-radius:22px;width:min(470px,92vw);max-height:92vh;padding:18px 20px 16px;display:none;overflow:auto;box-shadow:0 18px 50px #1e100659}.overlay.on .sheet:not(:empty){animation:.25s ease-out rise;display:block}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.overlay.side .sheet{width:min(410px,44vw)}.sheet-h h2{color:var(--ink);margin:2px 0 4px;font:italic 700 28px Georgia,serif}.sheet-h p{color:#5d4c3a;margin:4px 0;font-size:14px}.sheet-h .hint{color:var(--teal);font-weight:700}.kicker{letter-spacing:1px;text-transform:uppercase;color:var(--teal2);font-size:11px;font-weight:800}.kicker.bad{color:var(--bad)}.seg{margin:11px 0}.seg-l{text-transform:uppercase;letter-spacing:.6px;color:#7b6650;margin-bottom:4px;font-size:12px;font-weight:800}.seg-b{grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;display:grid}.seg-b button{color:#5d4c3a;background:#fffaf1;border:2px solid #e2d4bc;border-radius:12px;min-height:46px;padding:4px;font-weight:800}.seg-b button.on{border-color:var(--teal);background:var(--teal);color:var(--cream)}.seg-b button:disabled{opacity:.45;cursor:not-allowed}.seg-n{color:#6b5a44;margin-top:4px;font-size:12.5px}.facts{color:#6b5a44;flex-wrap:wrap;gap:6px 12px;margin:8px 0;font-size:12.5px;display:flex}.facts b{color:var(--ink)}.tip{color:#7b6650;background:#f3ead9;border-radius:10px;margin:8px 0;padding:7px 10px;font-size:12.5px}.cos summary{cursor:pointer;color:var(--teal);margin:8px 0 4px;font-weight:800}.swatches{flex-wrap:wrap;gap:8px;display:flex}.sw{border:3px solid #fffaf1;border-radius:50%;width:44px;height:44px;font-size:13px;box-shadow:0 0 0 2px #e2d4bc}.sw.on{box-shadow:0 0 0 3px var(--teal)}.sw:disabled{opacity:.55}.acts{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.acts.col{flex-direction:column;align-items:stretch}.acts button,.import button{min-height:46px;color:var(--teal);background:#fffaf1;border:2px solid #e2d4bc;border-radius:14px;padding:0 18px;font-weight:800}.acts button.primary,.share .primary{background:var(--teal);border-color:var(--teal);color:var(--cream)}.medals{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0;display:grid}.medal{text-align:center;color:#7b6650;background:#f3ead9;border-radius:14px;gap:2px;padding:9px 6px;font-size:12px;display:grid}.medal i{color:#c9b896;font-size:26px;font-style:normal}.medal.ok{color:#1f6b47;background:#e6f2e9}.medal.ok i{color:var(--gold)}.medal b{color:var(--ink)}.note{color:#6b5a44;margin:6px 0;font-size:13px}.unlock{color:var(--teal);background:#e6f2e9;border-radius:10px;margin:6px 0;padding:7px 10px;font-size:14px}.share{background:#f3ead9;border-radius:14px;gap:6px;margin-top:10px;padding:10px 12px;display:grid}.share p{margin:0;font-size:13px}.share code{letter-spacing:1.5px;color:var(--ink);text-align:center;-webkit-user-select:all;user-select:all;background:#fffaf1;border-radius:10px;padding:8px;font:800 22px Courier New,monospace}.share button{border:0;border-radius:12px;min-height:44px;font-weight:800}.board{gap:7px;margin:10px 0;display:grid}.job{text-align:left;color:var(--ink);background:#fffaf1;border:2px solid #e2d4bc;border-radius:14px;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.job .n{color:var(--cream);background:var(--teal);border-radius:50%;place-content:center;width:28px;height:28px;font-weight:800;display:grid}.job small{color:#7b6650;font-size:12px;display:block}.job .m{color:var(--gold);letter-spacing:1px;font-size:18px}.job .best{color:var(--teal2);grid-column:2/4;font-weight:700}.job.locked{opacity:.5}.import{grid-template-columns:1fr auto;gap:6px;margin-top:8px;display:grid}.import input{text-transform:uppercase;-webkit-user-select:text;user-select:text;background:#fffaf1;border:2px solid #e2d4bc;border-radius:12px;min-height:46px;padding:0 10px;font:700 15px Courier New,monospace}.import .msg{color:var(--bad);grid-column:1/3;min-height:1em;font-size:13px}.settings{border-top:1px solid #eadfcc;gap:4px;margin-top:12px;padding-top:8px;display:grid}.set{justify-content:space-between;align-items:center;gap:10px;min-height:44px;font-size:14px;font-weight:700;display:flex}.set input[type=range]{width:55%;accent-color:var(--teal)}.set input[type=checkbox]{width:22px;height:22px;accent-color:var(--teal)}#ui.portrait .overlay.side{padding:0 0 calc(8px + var(--safe-b));place-items:end center}#ui.portrait .overlay.side .sheet{border-radius:20px;width:96vw;max-height:52vh;padding:12px 14px}#ui.portrait .card.contract{max-width:calc(100vw - 130px);padding:6px 9px}#ui.portrait .contract .title{font-size:15px}#ui.portrait .chip{padding:2px 6px;font-size:11px}#ui.portrait .icon{width:44px;height:44px}#ui.portrait .cancelchip{top:calc(126px + var(--safe-t))}#ui.portrait .sheet-h h2{font-size:23px}#ui.portrait .tutorial .tt{bottom:calc(96px + var(--safe-b));font-size:17px}#ui.portrait .toasts{bottom:calc(22px + var(--safe-b))}#ui.portrait .toast{padding:7px 10px;font-size:13px}#ui.portrait .seg{margin:7px 0}@media (max-height:460px){.card.contract{padding:5px 9px}.contract .title{font-size:14px}.chip{font-size:10.5px}.overlay.side .sheet{max-height:94vh;padding:10px 14px}.seg{margin:6px 0}.seg-b button{min-height:40px}.sheet-h h2{font-size:21px}.cancelchip{top:calc(70px + var(--safe-t))}}@media (prefers-reduced-motion:reduce){.callout,.toast,.tutorial .ghost *{animation-duration:0s!important}}.keyhint{left:50%;bottom:calc(14px + var(--safe-b));color:var(--cream);opacity:0;white-space:nowrap;background:#2b2118d1;border-radius:10px;padding:6px 12px;font-size:13px;font-weight:700;transition:opacity .2s;position:absolute;transform:translate(-50%)}.keyhint.on{opacity:1}.adcover{color:var(--cream);z-index:30;pointer-events:auto;background:#140e0ac7;place-content:center;font-size:18px;font-weight:800;display:none;position:absolute;inset:0}.adcover.on{display:grid}.cond .bar{position:relative}.cond .bar .minm{background:var(--bad);border-radius:1px;width:2px;position:absolute;top:-2px;bottom:-2px}.sheet-h .hint.min{color:#6b5a44;font-weight:700}.presets{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.presets button{min-height:42px;color:var(--teal);background:#fffaf1;border:2px solid #e2d4bc;border-radius:11px;padding:0 11px;font-size:13px;font-weight:700}.presets button.on{background:var(--teal);border-color:var(--teal);color:var(--cream)}.presets button:disabled{opacity:.45;cursor:default}.linkish{color:var(--teal);background:0 0;border:0;min-height:44px;padding:4px 0;font-weight:700;text-decoration:underline}.seg-b.wrap{flex-wrap:wrap}.seg-b button.locked,.sw.locked{opacity:.6}.sw.locked{place-content:center;font-size:12px;display:inline-grid}.acts.sticky{background:#fbf6ec;margin-top:8px;padding:10px 0 6px;position:sticky;bottom:-16px;box-shadow:0 -10px 14px -8px #3c28142e}.tabs{grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 6px;display:grid}.tabs button{min-height:50px;color:var(--teal);background:#fffaf1;border:2px solid #e2d4bc;border-radius:12px;place-content:center;gap:2px;padding:4px;font-size:12px;font-weight:800;line-height:1.15;display:grid}.tabs button small{color:#8a7a62;font-weight:700}.tabs button.on{background:var(--teal);border-color:var(--teal);color:var(--cream)}.tabs button.on small{color:#d8eadf}.tabs button.locked{opacity:.55}.star{color:#c9b896;font-size:15px;font-style:normal}.star.on{color:var(--gold)}.medal em{color:#8a7a62;font-size:11px;font-style:normal}.medal small{color:#8a7a62}.verdict{color:#8c2833;font-size:16px;font-weight:800}.verdict.good{color:#1f6b47}.unlock.big{background:#e6f2e9;border-radius:12px;padding:8px 10px;font-size:15px}.job.done .n{background:var(--gold)}.job.feat{grid-template-columns:30px 1fr auto;margin-top:6px}.featured summary,.help summary{color:var(--teal);cursor:pointer;margin-top:10px;font-weight:800}.share .code{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.share .seg-b button{min-height:40px}.set select{font:inherit;background:#fffaf1;border:2px solid #e2d4bc;border-radius:8px;padding:4px 8px}.ver{color:#9a8a72;text-align:right;margin:10px 0 0;font-size:11px}#ui button:focus-visible,#ui input:focus-visible,#ui select:focus-visible,#ui summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#ui select,#ui summary{pointer-events:auto}#ui.portrait .tabs button{min-height:46px;font-size:11px}#ui.portrait .keyhint{font-size:11px}.ld-retry{background:var(--cream);min-height:44px;color:var(--teal);border:0;border-radius:12px;margin-top:14px;padding:0 20px;font-weight:800}#ui{--uis:1}#ui .hud,#ui .sheet,#ui .toasts,#ui .aimhint,#ui .keyhint,#ui .callouts,#ui .tutorial .tt,#ui .adcover>div{zoom:var(--uis)}#ui .sheet,#ui .overlay.side .sheet{max-height:calc(92vh / var(--uis))}#ui .cancelchip{transform:translateX(-50%) scale(var(--uis));transform-origin:50% 0}#ui .offscreen{transform:translateY(-50%) scale(var(--uis));transform-origin:100%}#ui .offscreen.left{transform-origin:0}#ui .overlay.side{padding-right:calc((18px + var(--safe-r)) * var(--uis))}.medal small,.medal em,.tabs button small,.job small{font-size:11px}.toast small{font-size:12px}@media (max-height:460px){.chip{font-size:11px}}@media (max-width:359px){#ui .cond .lbl{display:none}#ui .cond .st{white-space:nowrap}}#view{width:100%;height:100%}@supports (height:100dvh){#view{width:100dvw;height:100dvh}#ui{height:100dvh;bottom:auto}#ui .sheet,#ui .overlay.side .sheet{max-height:calc(92dvh / var(--uis))}#ui.portrait .overlay.side .sheet{max-height:52dvh}.loading{height:100dvh;bottom:auto}}@media (max-height:460px) and (min-width:820px) and (orientation:landscape){#ui .toasts{top:calc(8px + var(--safe-t));width:max(240px,min(380px,100vw - 580px));bottom:auto}#ui .toast{padding:6px 10px;font-size:12px}#ui .toast b{font-size:14px}}.settings .legal{color:#7b6650;margin:6px 0 0;font-size:12px;line-height:1.5}.settings .legal a{color:var(--teal);pointer-events:auto;font-weight:700}
