@font-face{font-family:Permanent Marker;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/permanent-marker-latin-400-normal-BF23djCy.woff2)format("woff2"),url(/assets/permanent-marker-latin-400-normal-BnZj5c41.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/shantell-sans-cyrillic-ext-500-normal-CsgtKsSe.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-ext-500-normal-87WSbqFy.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/shantell-sans-cyrillic-500-normal-CMKNolWb.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-500-normal--jEg1vCg.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/shantell-sans-vietnamese-500-normal-B3_dS9Jk.woff2)format("woff2"),url(/assets/shantell-sans-vietnamese-500-normal-CcMC92uc.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/shantell-sans-latin-ext-500-normal-BekENWod.woff2)format("woff2"),url(/assets/shantell-sans-latin-ext-500-normal-B63jk-IM.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/shantell-sans-latin-500-normal-prpUF3CD.woff2)format("woff2"),url(/assets/shantell-sans-latin-500-normal-CrgOgF_3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/shantell-sans-cyrillic-ext-700-normal-xPkvIMXo.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-ext-700-normal-BrN0m2Ld.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/shantell-sans-cyrillic-700-normal-bouRVOKJ.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-700-normal-U68ojpP8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/shantell-sans-vietnamese-700-normal-CZ4YbZEq.woff2)format("woff2"),url(/assets/shantell-sans-vietnamese-700-normal-DcHbpatw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/shantell-sans-latin-ext-700-normal-C6y5wZH8.woff2)format("woff2"),url(/assets/shantell-sans-latin-ext-700-normal-BXH1RhCW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/shantell-sans-latin-700-normal-BSvnZVBi.woff2)format("woff2"),url(/assets/shantell-sans-latin-700-normal-DtULRhId.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/shantell-sans-cyrillic-ext-800-normal-BGKMVhWt.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-ext-800-normal-Dwq1MSWE.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/shantell-sans-cyrillic-800-normal-CrxZd4Zj.woff2)format("woff2"),url(/assets/shantell-sans-cyrillic-800-normal-DwAPwynZ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/shantell-sans-vietnamese-800-normal-BfUzrFHS.woff2)format("woff2"),url(/assets/shantell-sans-vietnamese-800-normal-Bx7X4XQi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/shantell-sans-latin-ext-800-normal-CJYxfEsI.woff2)format("woff2"),url(/assets/shantell-sans-latin-ext-800-normal-iaeMLZNj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Shantell Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/shantell-sans-latin-800-normal-CKEXAgRC.woff2)format("woff2"),url(/assets/shantell-sans-latin-800-normal-Dd_sDkWY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-ext-400-normal-B-EsvyE4.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-400-normal-CKOCNFvK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/courier-prime-latin-400-normal-BbyBr73r.woff2)format("woff2"),url(/assets/courier-prime-latin-400-normal-BAlbUm6l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-ext-700-normal-ByMJlNdM.woff2)format("woff2"),url(/assets/courier-prime-latin-ext-700-normal-BIFoAzHx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/courier-prime-latin-700-normal-D1YCjmaD.woff2)format("woff2"),url(/assets/courier-prime-latin-700-normal-CVvp4Sof.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f3ebdc;--paper2:#eadfc8;--cream:#fff5e2;--ink:#2b2233;--ink2:#4a3f55;--clay:#d97757;--clayDk:#a84d33;--clayLt:#f2a283;--night:#1f2550;--slate:#262a55;--indigo:#2f3c7a;--rose:#e27a92;--ochre:#e8aa38;--sap:#6e9f58;--mint:#a8d5b0;--teal:#3a9c98;--violet:#7b5ca8;--lilac:#c9b6e4;--sky:#8ec3e6;--red:#c8453b;--muted:#7a6f80;--marker:"Permanent Marker", "Comic Sans MS", cursive;--hand:"Shantell Sans", "Comic Sans MS", system-ui, sans-serif;--type:"Courier Prime", "Courier New", monospace;--title:var(--marker);--body:var(--hand);--mono:var(--type);--pixel:var(--marker);--line:3px;--radius:18px}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--hand);margin:0;font-size:17px;font-weight:500;overflow:hidden}button{color:inherit;font-family:inherit}canvas.art{vertical-align:bottom;pointer-events:none;display:inline-block}#bg{z-index:0;width:100vw;height:100vh;position:fixed;inset:0}#fx{z-index:50;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}#app{z-index:1;position:fixed;inset:0;overflow:hidden}#grain{z-index:90;pointer-events:none;mix-blend-mode:multiply;opacity:.42;background-size:384px 384px;position:fixed;inset:0}#grain:after{content:"";background:radial-gradient(#0000 55%,#503c2d47 100%);position:absolute;inset:0}#wipe{z-index:100;pointer-events:none;background:var(--paper) url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"400\"><filter id=\"n\"><feTurbulence baseFrequency=\".8\" numOctaves=\"2\"/><feColorMatrix values=\"0 0 0 0 .45 0 0 0 0 .36 0 0 0 0 .25 0 0 0 .08 0\"/></filter><rect width=\"400\" height=\"400\" filter=\"url(%23n)\"/></svg>");position:fixed;inset:-2vh -8vw;transform:translate(110%)rotate(2deg);box-shadow:-18px 0 40px #2b223359}#wipe:before{content:"";background:var(--ink);filter:url(#wobble);border-radius:3px;width:6px;position:absolute;top:0;bottom:0;left:-2px}#wipe:after{content:"Git Quest";font-family:var(--marker);color:var(--clay);text-shadow:4px 4px 0 var(--ink);font-size:64px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-4deg)}#wipe.close{pointer-events:all;animation:.48s cubic-bezier(.6,0,.4,1) forwards sheetIn}#wipe.open{animation:.52s cubic-bezier(.6,0,.4,1) forwards sheetOut}@keyframes sheetIn{0%{transform:translate(110%)rotate(3deg)}to{transform:translate(0)rotate(0)}}@keyframes sheetOut{0%{transform:translate(0)rotate(0)}to{transform:translate(-115%)rotate(-3deg)}}.shake{animation:.42s cubic-bezier(.36,.07,.19,.97) shake}@keyframes shake{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(4px,-2px)}30%,50%,70%{transform:translate(-8px,3px)rotate(-.4deg)}40%,60%{transform:translate(8px,-3px)rotate(.4deg)}}.flash-red:after{content:"";pointer-events:none;z-index:40;mix-blend-mode:multiply;background:#c8453b47;animation:.45s forwards fadeOut;position:fixed;inset:0}@keyframes fadeOut{to{opacity:0}}.panel,.parchment{isolation:isolate;color:var(--ink);padding:16px 18px;position:relative}.panel:before,.parchment:before{content:"";z-index:-1;border-radius:var(--radius);background:var(--cream);border:var(--line) solid var(--ink);filter:url(#wobble);position:absolute;inset:0;box-shadow:5px 6px #2b223338}.parchment:before{background:var(--cream)}.panel.taped:after,.parchment:after{content:"";z-index:2;clip-path:polygon(2% 0,98% 6%,100% 100%,0 94%);background:repeating-linear-gradient(90deg,#e8aa38bf 0 10px,#f2c46ebf 10px 20px);width:96px;height:24px;margin-left:-48px;position:absolute;top:-12px;left:50%;transform:rotate(-3deg);box-shadow:0 1px 2px #2b223333}.panel.dark{color:var(--cream)}.panel.dark:before{background:var(--slate)}.panel h3,.parchment h3{font-family:var(--marker);letter-spacing:.5px;color:var(--clayDk);align-items:center;gap:8px;margin:0 0 10px;font-size:19px;font-weight:400;display:flex}.panel.dark h3{color:var(--ochre)}.panel h3:after,.parchment h3:after{content:"";opacity:.25;background:currentColor;border-radius:3px;flex:1;height:3px}.btn{font-family:var(--marker);letter-spacing:.5px;color:var(--ink);cursor:pointer;isolation:isolate;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:0;padding:10px 22px;font-size:17px;font-weight:400;transition:transform .18s cubic-bezier(.3,1.8,.5,1);position:relative}.btn:before{content:"";z-index:-1;background:var(--ochre);border:var(--line) solid var(--ink);box-shadow:0 5px 0 var(--ink);filter:url(#wobble);border-radius:14px;transition:box-shadow .12s,transform .12s;position:absolute;inset:0}.btn:hover{transform:translateY(-2px)rotate(-1.5deg)}.btn:active{transform:translateY(4px)}.btn:active:before{box-shadow:0 1px 0 var(--ink)}.btn:focus-visible{outline:3px dashed var(--clay);outline-offset:5px}.btn.green:before{background:var(--sap)}.btn.green{color:var(--cream);text-shadow:2px 2px 0 var(--ink)}.btn.blue:before{background:var(--sky)}.btn.red:before{background:var(--rose)}.btn.ghost:before{background:var(--cream)}.btn.small{padding:7px 14px;font-size:14px}.btn.small:before{box-shadow:0 4px 0 var(--ink);border-radius:12px}.btn.big{padding:14px 34px;font-size:24px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.icon-btn{align-items:center;gap:8px;display:inline-flex}.blink{animation:1.4s ease-in-out infinite softBlink}@keyframes softBlink{50%{opacity:.35}}.bob{animation:1.6s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float{animation:2.6s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}.pop-in{animation:.5s cubic-bezier(.2,1.7,.4,1) both popIn}@keyframes popIn{0%{opacity:0;transform:scale(.4)rotate(-6deg)}to{opacity:1;transform:none}}.slide-up{animation:.55s cubic-bezier(.2,1.5,.4,1) both slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)rotate(2deg)}}.drop-in{animation:.8s cubic-bezier(.2,1.6,.4,1) both dropIn}@keyframes dropIn{0%{opacity:0;transform:translateY(-90px)rotate(-8deg)}}.squash{transform-origin:50% 100%;animation:1.3s ease-in-out infinite squash}@keyframes squash{0%,to{transform:scale(1)}50%{transform:scale(1.03,.96)}}.hop{transform-origin:50% 100%;animation:1.1s cubic-bezier(.3,0,.5,1) infinite hop}@keyframes hop{0%,to{transform:translateY(0)scale(1.08,.92)}15%{transform:translateY(0)scale(.95,1.06)}45%{transform:translateY(-18px)scale(.97,1.03)}75%{transform:translateY(0)scale(1.06,.94)}}.title-screen{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:7vh;display:flex;position:absolute;inset:0}.logo{font-family:var(--marker);letter-spacing:2px;gap:.05em;font-size:clamp(56px,11vw,140px);line-height:.95;display:flex}.logo span{color:var(--clay);text-shadow:5px 6px 0 var(--ink);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;animation:1.8s cubic-bezier(.4,0,.6,1) infinite wave;display:inline-block}.logo span.g2{color:var(--ochre)}@keyframes wave{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-10px)rotate(3deg)}}.subtitle{font-family:var(--hand);color:var(--ochre);isolation:isolate;padding:8px 34px;font-size:clamp(15px,1.8vw,22px);font-weight:800;position:relative}.subtitle:before{content:"";z-index:-1;background:var(--ink2);clip-path:polygon(3% 0,97% 0,100% 50%,97% 100%,3% 100%,0 50%);filter:url(#wobble);position:absolute;inset:0}.title-cast{pointer-events:none;align-items:flex-end;gap:30px;display:flex;position:absolute;bottom:16vh;left:50%;transform:translate(-50%)}.press-start{font-family:var(--marker);color:var(--cream);text-shadow:3px 3px 0 var(--ink);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;cursor:pointer;padding:10px 26px;font-size:34px}.title-menu{flex-direction:column;align-items:center;gap:16px;margin-top:2vh;display:flex}.title-foot{color:var(--cream);text-shadow:1px 1px 0 var(--ink), -1px -1px 0 var(--ink), 1px -1px 0 var(--ink), -1px 1px 0 var(--ink);font-size:14px;font-weight:700;position:absolute;bottom:10px}.hud{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:14px;left:14px;right:14px}.hud>*{pointer-events:auto}.hud.inline{flex-wrap:wrap;grid-column:1/-1;align-items:center;position:static}.hud-player{align-items:center;gap:12px;padding:8px 18px 8px 8px;display:flex}.hud-player:before{border-radius:999px}.hud-player .avatar{background:var(--sky);border:var(--line) solid var(--ink);border-radius:50%;justify-content:center;align-items:flex-start;width:54px;height:54px;display:flex;overflow:hidden}.hud-player .avatar canvas{margin-top:2px!important}.hud-name{font-family:var(--marker);color:var(--clayDk);font-size:18px}.xpbar{background:var(--paper2);border:2px solid var(--ink);border-radius:99px;width:150px;height:12px;margin-top:4px;position:relative;overflow:hidden}.xpbar>i{background:repeating-linear-gradient(-45deg, var(--teal) 0 6px, #4fb3ae 6px 12px);transition:width .9s cubic-bezier(.3,1.5,.5,1);position:absolute;inset:0 auto 0 0}.hud-lv{color:var(--ink2);margin-top:3px;font-size:12px;font-weight:800}.hud-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.counter{align-items:center;gap:8px;padding:6px 16px 6px 10px;font-size:18px;font-weight:800;display:flex}.counter:before{border-radius:999px}.map-screen{position:absolute;inset:0}.region-banner{text-align:center;z-index:6;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}.region-row{align-items:center;gap:14px;display:flex}.region-banner .ribbon{font-family:var(--marker);color:var(--cream);isolation:isolate;white-space:nowrap;text-shadow:3px 3px 0 var(--ink);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;padding:8px 48px;font-size:clamp(22px,3vw,38px);position:relative}.region-banner .ribbon:before{content:"";z-index:-1;background:var(--rc,var(--sap));border:var(--line) solid var(--ink);clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);filter:url(#wobble);position:absolute;inset:0}.region-banner small{color:var(--ochre);background:var(--ink2);border-radius:8px;padding:5px 16px;font-size:15px;font-weight:800;display:inline-block;transform:rotate(-1deg)}.region-dots{gap:8px;display:flex}.region-dots i{border:2.5px solid var(--ink);background:var(--cream);border-radius:50%;width:13px;height:13px;display:block}.region-dots i.on{background:var(--clay);transform:scale(1.25)}.region-dots i.open{background:var(--ochre)}.map-area{z-index:0;position:absolute;inset:0}.map-area svg.paths{pointer-events:none;filter:url(#wobble-soft);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.node{translate:-50% -100%;scale:var(--sc,1);transform-origin:50% 100%;cursor:pointer;z-index:2;background:0 0;border:0;flex-direction:column;justify-content:flex-end;align-items:center;width:100px;height:108px;padding:0;display:flex;position:absolute}.node .pedestal{background:radial-gradient(#2b22334d,#2b223300 70%);border-radius:50%;width:86px;height:20px;position:absolute;bottom:0}.node .stone{width:76px;height:76px;font-family:var(--marker);color:var(--ink);isolation:isolate;place-items:center;font-size:22px;transition:transform .3s cubic-bezier(.2,1.8,.4,1);display:grid;position:absolute;bottom:10px}.node .stone:before{content:"";z-index:-1;background:var(--ochre);border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);filter:url(#wobble);border-radius:50%;position:absolute;inset:0}.node:hover .stone{transform:translateY(-8px)rotate(-6deg)scale(1.06)}.node.done .stone{color:var(--cream);text-shadow:2px 2px 0 var(--ink)}.node.done .stone:before{background:var(--sap)}.node.locked{cursor:not-allowed}.node.locked .stone:before{background:var(--paper2)}.node.current .stone{animation:1.2s cubic-bezier(.3,0,.5,1) infinite nodeBounce}.node.current .stone:after{content:"";z-index:-2;background:repeating-conic-gradient(#e8aa388c 0 12deg, transparent 12deg 24deg);border-radius:50%;animation:8s linear infinite spin;position:absolute;inset:-30px;-webkit-mask-image:radial-gradient(circle,#000 40%,#0000 72%);mask-image:radial-gradient(circle,#000 40%,#0000 72%)}@keyframes nodeBounce{0%,to{transform:translateY(0)scale(1.05,.95)}40%{transform:translateY(-10px)scale(.97,1.04)}70%{transform:translateY(0)scale(1.04,.96)}}@keyframes spin{to{transform:rotate(360deg)}}.node.boss{width:136px;height:150px}.node.boss .pedestal{width:130px;height:26px}.node.boss .stone{width:118px;height:118px;bottom:14px;overflow:visible}.node.boss .stone:before{background:var(--rose);border-radius:30px}.node.boss.done .stone:before{background:var(--sap)}.node.boss.locked .stone:before{background:var(--paper2)}.node .stars{gap:0;margin-top:4px;display:flex;position:absolute;top:100%}.node .tag{white-space:nowrap;color:var(--cream);background:var(--ink2);opacity:0;pointer-events:none;border-radius:8px;margin-bottom:8px;padding:4px 12px;font-size:15px;font-weight:800;transition:all .25s cubic-bezier(.2,1.7,.4,1);position:absolute;bottom:100%;transform:translateY(6px)rotate(-2deg)}.node:hover .tag,.node.current .tag{opacity:1;transform:rotate(-2deg)}.map-hero{z-index:4;pointer-events:none;transition:left .5s ease-in-out,top .5s ease-in-out;position:absolute;translate:-50% -100%}.map-hero .hero-img{transform-origin:50% 100%;animation:1.3s ease-in-out infinite squash;display:block}.map-hero.walking .hero-img{animation:.34s ease-in-out infinite hop}.map-hero .octo-mini{animation:1.8s ease-in-out infinite bob;position:absolute;bottom:6px;left:-50px}.map-nav{z-index:5;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;bottom:16px;left:0;right:0}.level-card{z-index:20;text-align:center;width:min(440px,92vw);height:fit-content;margin:auto;padding:24px 22px 26px;position:absolute;inset:0}.level-card .lc-type{letter-spacing:1px;color:var(--clayDk);margin-bottom:4px;font-size:14px;font-weight:800}.level-card h2{font-family:var(--marker);color:var(--ink);margin:4px 0 10px;font-size:34px;font-weight:400;line-height:1.1}.level-card .lc-art{place-items:end center;height:160px;display:grid}.level-card .lc-stars{justify-content:center;gap:6px;margin:10px 0 18px;display:flex}.level-card .lc-actions{justify-content:center;gap:14px;display:flex}.backdrop{z-index:15;background:#2b223366;animation:.25s fadeIn;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}}.dialog{z-index:30;align-items:flex-end;gap:14px;width:min(920px,94vw);display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.dialog .portrait{background:var(--lilac);border:4px solid var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;width:124px;height:124px;display:flex;overflow:hidden;box-shadow:4px 5px #2b22334d}.dialog .box{cursor:pointer;min-height:112px;color:var(--cream);isolation:isolate;flex:1;padding:16px 30px 18px;position:relative}.dialog .box:before{content:"";z-index:-1;background:var(--ink2);clip-path:polygon(2% 0,98% 0,100% 50%,98% 100%,2% 100%,0 50%);filter:url(#wobble);position:absolute;inset:0}.dialog .box.panel:before{box-shadow:none;border:0;border-radius:0}.dialog .who{font-family:var(--marker);color:var(--clayLt);margin-bottom:4px;font-size:20px}.dialog .txt{min-height:2.8em;color:var(--ochre);font-size:21px;font-weight:700;line-height:1.4}.dialog .txt b,.bubble b{color:var(--cream);font-weight:800}.dialog .txt code,.bubble code{font-family:var(--type);color:var(--ink);background:var(--mint);border-radius:5px;padding:0 6px;font-size:.95em;font-weight:700}.dialog .next{color:var(--cream);font-size:18px;animation:.8s infinite bob;position:absolute;bottom:8px;right:30px}.dialog .skip{position:absolute;top:-48px;right:10px}.cutscene-dim{z-index:25;background:linear-gradient(#0000 45%,#2b223359);position:absolute;inset:0}.level-screen{grid-template-rows:auto minmax(0,1fr) minmax(0,auto);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px 24px;padding:14px 22px 152px;display:grid;position:absolute;inset:0}.level-title{font-family:var(--marker);color:var(--ink);align-items:center;gap:12px;padding:6px 20px;font-size:24px;display:flex}.level-title:before{border-radius:12px}.level-title small{font-family:var(--hand);color:var(--cream);background:var(--clay);border:2px solid var(--ink);border-radius:8px;padding:2px 10px;font-size:14px;font-weight:800}.left-col,.right-col{flex-direction:column;gap:22px;min-height:0;display:flex}.terminal{min-height:clamp(180px,40vh,300px);color:var(--cream);flex-direction:column;flex:1;padding:0;display:flex}.terminal:before{background:var(--slate)}.term-bar{font-family:var(--marker);color:var(--ochre);border-bottom:2px dashed #fff5e240;align-items:center;gap:8px;padding:10px 16px;font-size:16px;display:flex}.term-bar i{border:2px solid var(--ink);border-radius:50%;width:13px;height:13px;display:inline-block}.term-out{font-family:var(--type);white-space:pre-wrap;word-break:break-word;flex:1;padding:12px 18px;font-size:15.5px;line-height:1.5;overflow-y:auto}.term-out .ln{animation:.2s ease-out both lineIn}@keyframes lineIn{0%{opacity:0;transform:translate(-8px)}}.term-out .cmd{color:var(--cream)}.term-out .cmd .pr{color:var(--mint)}.term-out .cmd .br{color:var(--ochre)}.term-out .ok{color:var(--mint)}.term-out .err{color:#ff9c9c}.term-out .warn{color:var(--ochre)}.term-out .dim{color:#a9a3c8}.term-out .info{color:var(--sky)}.term-out .add{color:var(--mint)}.term-out .del{color:#ffb0b8}.term-out .log{color:var(--ochre)}.term-out .branch{color:var(--lilac)}.term-out .file{color:var(--sky)}.term-in{font-family:var(--type);border-top:2px dashed #fff5e240;align-items:center;gap:10px;padding:10px 18px 12px;font-size:15.5px;display:flex}.term-in .pr{color:var(--mint);white-space:nowrap;font-weight:700}.term-in .pr .br{color:var(--ochre)}.term-in input{color:var(--cream);font-family:var(--type);caret-color:var(--ochre);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:16px;font-weight:700}.term-in input::placeholder{color:#8b86ae;font-weight:400}.chips{flex-wrap:wrap;gap:7px;padding:0 18px 14px;display:flex}.chip{font-family:var(--type);color:var(--ink);background:var(--cream);border:2px solid var(--ink);cursor:pointer;box-shadow:0 3px 0 var(--ink);border-radius:8px;padding:3px 10px;font-size:13.5px;font-weight:700;transition:transform .15s cubic-bezier(.3,1.8,.5,1)}.chip:hover{background:var(--ochre);transform:translateY(-2px)rotate(-2deg)}.chip:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.quests{flex-direction:column;flex:0 1000 auto;min-height:120px;max-height:34vh;display:flex}.quests h3{flex:none}.quest-list{flex:auto;min-height:0;margin-right:-8px;padding-right:8px;overflow-y:auto}.quest{color:var(--muted);border-radius:10px;align-items:flex-start;gap:10px;padding:7px 10px;font-size:17px;font-weight:700;line-height:1.3;display:flex}.quest .qi{border:2.5px solid;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:13px;font-weight:800;display:grid}.quest.done{color:var(--sap)}.quest.done .qi{background:var(--sap);border-color:var(--ink);color:var(--cream)}.quest.done .qt{-webkit-text-decoration:line-through #2b223366;text-decoration:line-through #2b223366;text-decoration-thickness:2px}.quest.now{color:var(--ink);background:#e8aa3840}.quest.now .qi{border-color:var(--ink);background:var(--ochre);color:var(--ink);animation:1s infinite bob}.quest.just{animation:.8s ease-out questDone}@keyframes questDone{0%{background:#6e9f5880;transform:scale(1.03)}to{background:0 0}}.quest .hintbtn{flex:none;margin-left:auto}.quest .hinttxt{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;font-size:14px;display:flex}.quest .hinttxt.clue .chip{cursor:default;letter-spacing:1px;background:var(--paper);box-shadow:none;border-style:dashed;font-size:16px}.quest .hinttxt.clue .chip:hover{transform:none}.zones{grid-template-columns:repeat(var(--zc,3), minmax(0, 1fr));gap:14px;display:grid}.zone{background:var(--paper);border:2.5px dashed #2b223366;border-radius:14px;flex-direction:column;align-items:center;gap:3px;min-height:132px;padding:10px 8px;display:flex;position:relative}.zone .zt{font-family:var(--marker);color:var(--ink);text-align:center;font-size:16px}.zone .zs{color:var(--muted);text-align:center;margin-top:-3px;font-size:12px;font-weight:700}.zone .zicon{place-items:center;height:42px;display:grid}.zone .files{flex-direction:column;align-items:stretch;gap:5px;width:100%;margin-top:4px;display:flex}.zone.glow{animation:.9s cubic-bezier(.2,1.6,.4,1) zoneGlow}@keyframes zoneGlow{0%{background:var(--ochre);transform:scale(1.06)rotate(-1deg)}to{background:var(--paper);transform:none}}.fchip{font-family:var(--type);background:var(--cream);color:var(--ink);border:2px solid var(--ink);white-space:nowrap;text-overflow:ellipsis;border-radius:7px;align-items:center;gap:4px;padding:2px 8px;font-size:12.5px;font-weight:700;display:flex;overflow:hidden}.fchip.untracked{background:var(--cream);border-style:dashed}.fchip.modified{background:#f6cf86}.fchip.staged{background:var(--mint)}.fchip.deleted{background:#f4a6a0}.fchip.committed{background:var(--lilac)}.fchip.ignored{opacity:.45;text-decoration:line-through}.fchip.conflict{background:var(--rose);animation:.5s infinite wiggle}@keyframes wiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.fchip.new{animation:.6s cubic-bezier(.2,1.8,.4,1) both fileIn}@keyframes fileIn{0%{opacity:0;transform:translateY(-24px)rotate(-12deg)scale(.5)}}.fchip .fb{margin-left:auto;font-size:12px}.zone .count{text-align:center;color:var(--clayDk);margin-top:auto;padding-top:6px;font-size:12px;font-weight:800;line-height:1.3}.zone .arrow{z-index:2;width:20px;height:20px;font-size:0;position:absolute;top:44px;right:-16px}.zone .arrow:before{content:"➜";color:var(--clay);text-shadow:1px 1px 0 var(--ink);place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.zone-empty{color:var(--muted);text-align:center;font-size:13px;font-weight:700;line-height:1.5}.zone-empty code{font-family:var(--type);color:var(--clayDk);font-weight:700}.timeline{flex-direction:column;flex:1;min-height:150px;display:flex}.graph-wrap{background:var(--paper) repeating-linear-gradient(0deg, transparent 0 27px, #8ec3e659 27px 28px);border:2.5px dashed #2b223359;border-radius:14px;flex:1;min-height:110px;position:relative;overflow:auto}.graph-wrap svg{filter:url(#wobble-soft);display:block}.graph-wrap text{font-family:var(--hand);font-weight:800}.gnode{transform-box:fill-box;transform-origin:50%}.gnode.new{animation:.7s cubic-bezier(.2,1.9,.4,1) both gpop}@keyframes gpop{0%{transform:scale(0)rotate(-40deg)}}.gedge.new{stroke-dasharray:300;stroke-dashoffset:300px;animation:.6s ease-out forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.graph-empty{color:var(--muted);text-align:center;white-space:pre-line;place-items:center;padding:10px;font-size:16px;font-weight:700;display:grid;position:absolute;inset:0}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px;font-size:13px;font-weight:700;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend b{color:var(--clay)!important}.octo-corner{z-index:12;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:16px;left:18px;right:18px}.octo-medal{pointer-events:auto;cursor:pointer;background:var(--lilac);border:4px solid var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;width:108px;height:108px;transition:transform .3s cubic-bezier(.2,1.8,.4,1);display:flex;overflow:hidden;box-shadow:4px 5px #2b22334d}.in-cutscene .octo-corner{visibility:hidden}.octo-medal:hover{transform:scale(1.08)rotate(-6deg)}.bubble{pointer-events:auto;isolation:isolate;color:var(--ochre);max-width:min(800px,70vw);margin-bottom:20px;padding:14px 34px;font-size:18px;font-weight:700;line-height:1.4;position:relative}.bubble:before{content:"";z-index:-1;background:var(--ink2);clip-path:polygon(2% 0,98% 0,100% 50%,98% 100%,2% 100%,0 50%);filter:url(#wobble);position:absolute;inset:0}.bubble.pop{transform-origin:0;animation:.45s cubic-bezier(.2,1.8,.4,1) bubblePop}@keyframes bubblePop{0%{opacity:0;transform:scale(.5)rotate(-4deg)}}.conflict-panel{z-index:22;width:min(460px,92vw);position:absolute;bottom:170px;right:24px}.conflict-panel .cv{font-family:var(--type);white-space:pre-wrap;border:2px solid var(--ink);border-radius:8px;margin:6px 0;padding:8px 12px;font-size:15px;font-weight:700}.conflict-panel .ours{background:var(--mint)}.conflict-panel .theirs{background:var(--sky)}.conflict-panel .mk{font-family:var(--type);color:var(--clayDk);font-size:14px;font-weight:700}.conflict-panel .acts{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.modal{z-index:40;width:min(680px,94vw);height:fit-content;max-height:90vh;margin:auto;padding:26px 26px 24px;position:absolute;inset:0;overflow-y:auto}.modal h2{font-family:var(--marker);text-align:center;color:var(--ink);margin:0 0 12px;font-size:34px;font-weight:400;line-height:1.15}.modal p{margin:12px 0;font-size:19px;font-weight:600;line-height:1.5}.modal p b{color:var(--clayDk)}.modal p code{font-family:var(--type);background:var(--mint);color:var(--ink);border-radius:5px;padding:0 6px;font-weight:700}.modal .actions{justify-content:center;gap:14px;margin-top:18px;display:flex}.lesson-tag{font-family:var(--marker);color:var(--clay);text-align:center;font-size:16px}.visual{height:190px;color:var(--ink);background:var(--paper) repeating-linear-gradient(0deg, transparent 0 27px, #8ec3e659 27px 28px);border:3px solid var(--ink);border-radius:14px;margin:10px 0;position:relative;overflow:hidden}.v-box{font-family:var(--marker);color:var(--ink);text-align:center;flex-direction:column;align-items:center;gap:2px;font-size:16px;display:flex;position:absolute}.v-dot{border:3px solid var(--ink);border-radius:50%;width:24px;height:24px;position:absolute}.v-line{background:var(--ink2);border-radius:99px;height:6px;position:absolute}.v-label{font-family:var(--hand);color:var(--ink);white-space:nowrap;border:2px solid var(--ink);border-radius:7px;padding:2px 9px;font-size:13px;font-weight:800;position:absolute}.v-file{position:absolute}.visual .fchip{font-size:13px}.anim-travel2{animation:4.5s cubic-bezier(.5,0,.3,1.3) infinite travel2}@keyframes travel2{0%,15%{opacity:1;top:76px;left:8%}40%,60%{top:76px;left:42%}85%{opacity:1;top:76px;left:74%}to{opacity:0;top:76px;left:74%}}.anim-appear{animation:4.5s cubic-bezier(.2,1.7,.4,1) infinite appear}@keyframes appear{0%,28%{opacity:0;transform:scale(.3)}36%,to{opacity:1;transform:none}}.anim-appear2{animation:4.5s cubic-bezier(.2,1.7,.4,1) infinite appear2}@keyframes appear2{0%,52%{opacity:0;transform:scale(.3)}60%,to{opacity:1;transform:none}}.anim-appear3{animation:4.5s cubic-bezier(.2,1.7,.4,1) infinite appear3}@keyframes appear3{0%,76%{opacity:0;transform:scale(.3)}84%,to{opacity:1;transform:none}}.anim-slide{animation:4.5s cubic-bezier(.5,0,.3,1.3) infinite vslide}@keyframes vslide{0%,40%{transform:translate(0)}60%,to{transform:translateX(var(--dx,80px))}}.anim-up{animation:3s ease-in-out infinite vup}@keyframes vup{0%{opacity:0;transform:translateY(0)}20%,80%{opacity:1}to{opacity:0;transform:translateY(-60px)}}.anim-down{opacity:0;animation:3s ease-in-out 1.5s infinite vdown}@keyframes vdown{0%{opacity:0;transform:translateY(0)}20%,80%{opacity:1}to{opacity:0;transform:translateY(60px)}}.battle-screen{position:absolute;inset:0}.arena{pointer-events:none;--ground:calc(100vh - 262px);position:absolute;inset:0}.fighter{bottom:calc(100% - var(--ground,74vh));transform-origin:50% 100%;flex-direction:column;align-items:center;display:flex;position:absolute}.fighter.hero{left:16%}.fighter.monster{right:12%}.fighter .sp{transform-origin:50% 100%}.fighter.hero .sp{animation:1.2s ease-in-out infinite squash}.fighter.monster .sp{animation:1.6s ease-in-out infinite monsterIdle}@keyframes monsterIdle{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.04,.95)rotate(-1deg)}75%{transform:scale(.97,1.03)rotate(1deg)}}.fighter.hero.attack{animation:.6s cubic-bezier(.5,-.4,.3,1.3) heroDash}@keyframes heroDash{0%{transform:translate(0)}20%{transform:translate(-30px)scale(.9,1.1)}50%{transform:translate(min(40vw,500px))scale(1.1,.9)}to{transform:translate(0)}}.fighter.monster.attack{animation:.6s cubic-bezier(.5,-.4,.3,1.3) monDash}@keyframes monDash{0%{transform:translate(0)}20%{transform:translate(30px)scale(.92,1.08)}50%{transform:translate(max(-40vw,-500px))scale(1.1,.9)}to{transform:translate(0)}}.fighter.hit .sp{animation:.45s hitFlash!important}@keyframes hitFlash{0%,to{filter:none;transform:translate(0)}20%{filter:brightness(1.8)saturate(.4);transform:translate(14px)rotate(4deg)scale(1.1,.85)}50%{transform:translate(-10px)rotate(-3deg)}75%{filter:none;transform:translate(4px)}}.fighter.dead .sp{animation:1.2s cubic-bezier(.5,-.5,.6,1) forwards die!important}@keyframes die{0%{transform:none}25%{transform:scale(1.15,.8)}to{opacity:0;transform:translateY(-40px)rotate(24deg)scale(.1)}}.hpbox{z-index:3;min-width:270px;padding:12px 18px;position:absolute;top:118px}.hpbox.m{right:22px}.hpbox.h{left:22px}.hpbox .nm{font-family:var(--marker);color:var(--ink);align-items:center;gap:10px;font-size:20px;display:flex}.hpbox .nm .boss{font-family:var(--hand);color:var(--cream);background:var(--red);border:2px solid var(--ink);border-radius:6px;padding:1px 8px;font-size:12px;font-weight:800}.hpbar{background:var(--paper2);border:2.5px solid var(--ink);border-radius:99px;height:16px;margin-top:8px;position:relative;overflow:hidden}.hpbar i{background:repeating-linear-gradient(-45deg, var(--rose) 0 7px, #ee96a8 7px 14px);transition:width .6s cubic-bezier(.3,1.6,.5,1);position:absolute;inset:0 auto 0 0}.hearts{gap:2px;margin-top:8px;display:flex}.qbox{z-index:4;width:min(940px,94vw);padding:18px 22px 20px;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.qbox .q{font-family:var(--marker);min-height:1.3em;color:var(--ink);margin-bottom:14px;font-size:26px;line-height:1.25}.qbox .q code{font-family:var(--type);background:var(--mint);border-radius:5px;padding:0 6px;font-size:.8em}.qbox .answers{grid-template-columns:1fr 1fr;gap:12px;display:grid}.answer{text-align:left;font-family:var(--hand);color:var(--ink);background:var(--paper);border:2.5px solid var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--ink);border-radius:12px;padding:11px 14px 11px 48px;font-size:17px;font-weight:700;line-height:1.3;transition:transform .18s cubic-bezier(.3,1.8,.5,1),background .15s;position:relative}.answer:hover:not(:disabled),.answer:focus-visible{background:#f8dda0;outline:none;transform:translateY(-2px)rotate(-.6deg)}.answer .k{width:26px;height:26px;color:var(--cream);background:var(--ink2);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.answer.right{animation:.4s cubic-bezier(.2,1.8,.4,1) popIn;background:var(--mint)!important}.answer.wrong{animation:.4s shake;background:#f4a6a0!important}.answer:disabled{cursor:default}.why{color:var(--teal);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:17px;font-weight:700;display:flex}.why code{font-family:var(--type)}.dmg{z-index:45;font-family:var(--marker);color:var(--ochre);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--ink);pointer-events:none;white-space:nowrap;font-size:44px;animation:1.1s cubic-bezier(.2,1.6,.4,1) forwards dmg;position:fixed}.dmg.crit{color:var(--ochre)}.dmg.bad{color:var(--rose)}@keyframes dmg{0%{opacity:0;transform:translate(-50%)scale(.3)rotate(-15deg)}25%{opacity:1;transform:translate(-50%,-30px)scale(1.2)rotate(-6deg)}70%{opacity:1;transform:translate(-50%,-60px)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-90px)scale(.9)rotate(-2deg)}}.slash{pointer-events:none;z-index:6;width:240px;height:240px;position:absolute}.slash:before,.slash:after{content:"";background:var(--cream);border:4px solid var(--ink);border-radius:99px;width:100%;height:16px;animation:.38s cubic-bezier(.2,1.5,.4,1) forwards slashA;position:absolute;top:50%;left:0;transform:rotate(-35deg)scaleX(0)}.slash:after{animation-name:slashB;animation-delay:70ms}@keyframes slashA{50%{opacity:1;transform:rotate(-35deg)scaleX(1)}to{opacity:0;transform:rotate(-35deg)scaleX(1.1)}}@keyframes slashB{0%{transform:rotate(30deg)scaleX(0)}50%{opacity:1;transform:rotate(30deg)scaleX(1)}to{opacity:0;transform:rotate(30deg)scaleX(1.1)}}.vs-banner{z-index:30;font-family:var(--marker);white-space:nowrap;pointer-events:none;color:var(--clay);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--ink);font-size:clamp(40px,7vw,90px);animation:1.8s forwards vsIn;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}@keyframes vsIn{0%{opacity:0;transform:translate(-50%,-50%)scale(3)rotate(-20deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(.9)rotate(-4deg)}28%,75%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-50%)scale(.6)rotate(8deg)}}.order-screen{flex-direction:column;justify-content:flex-start;align-items:center;gap:20px;padding:86px 16px 170px;display:flex;position:absolute;inset:0;overflow-y:auto}.order-board{width:min(860px,96vw)}.slots{flex-direction:column;gap:8px;display:flex}.slot{background:var(--paper);border:2.5px dashed #2b223366;border-radius:12px;align-items:center;gap:12px;min-height:56px;padding:5px 12px;display:flex}.slot .n{font-family:var(--marker);color:var(--clay);width:30px;font-size:24px}.slot.bad{border:2.5px solid var(--red);background:#f8d4ce;animation:.4s shake}.slot.good{border:2.5px solid var(--sap);background:#ddefd3}.spellcard{font-family:var(--type);color:var(--ink);background:var(--lilac);border:2.5px solid var(--ink);cursor:pointer;text-align:left;box-shadow:0 4px 0 var(--ink);border-radius:12px;flex-direction:column;gap:1px;padding:7px 14px;font-size:15px;font-weight:700;transition:transform .18s cubic-bezier(.3,1.8,.5,1);display:flex}.spellcard small{font-family:var(--hand);color:var(--ink2);font-size:13px;font-weight:700}.spellcard:hover{transform:translateY(-3px)rotate(-1.5deg)}.pool{flex-wrap:wrap;justify-content:center;gap:12px;min-height:60px;margin-top:20px;display:flex}.victory{z-index:35;background:#f3ebdceb;flex-direction:column;justify-content:safe center;align-items:center;gap:min(14px,1.8vh);padding:2vh 16px;animation:.35s fadeIn;display:flex;position:absolute;inset:0;overflow-y:auto}.victory:before{content:"";background:repeating-conic-gradient(#e8aa3852 0 11.25deg, #e27a9238 11.25deg 22.5deg);pointer-events:none;border-radius:50%;width:1600px;height:1600px;margin:-800px 0 0 -800px;animation:40s linear infinite spin;position:fixed;top:32%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 18%,#0000 62%);mask-image:radial-gradient(circle,#000 18%,#0000 62%)}.victory>*{position:relative}.victory .v-head{flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.victory .banner{font-family:var(--marker);text-align:center;color:var(--clay);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:6px 7px 0 var(--ink);font-size:clamp(40px,min(8vw,9vh),88px);line-height:1;transform:rotate(-3deg)}.victory .vtitle{font-family:var(--hand);color:var(--ochre);background:var(--ink2);border-radius:8px;padding:4px 22px;font-size:20px;font-weight:800}.victory .v-body{justify-content:center;align-items:center;gap:20px 40px;width:min(1100px,100%);min-height:0;display:flex}.victory .v-main{flex-direction:column;flex:none;align-items:center;gap:8px;display:flex}.victory .v-side{flex-direction:column;align-items:stretch;gap:12px;min-width:0;max-width:560px;display:flex}.victory .v-side:empty,.victory .cards:empty{display:none}.victory .v-outro{text-align:center;font-size:16px;font-weight:700;line-height:1.4}.victory .vstars{align-items:flex-end;gap:10px;display:flex}.victory .vstars canvas{opacity:0}.victory .vstars canvas.on{animation:.6s cubic-bezier(.2,2,.4,1) forwards starIn}.victory .vstars canvas:nth-child(2).on{animation-name:starIn2}@keyframes starIn{0%{opacity:0;transform:scale(3)rotate(120deg)}to{opacity:1;transform:none}}@keyframes starIn2{0%{opacity:0;transform:scale(3)rotate(120deg)}to{opacity:1;transform:translateY(-14px)}}.victory .chest{cursor:pointer;pointer-events:auto;transition:transform .25s cubic-bezier(.2,1.8,.4,1)}.victory .chest:hover{transform:scale(1.06)rotate(-3deg)}.victory .chest.shake-lite{animation:.8s ease-in-out infinite chestShake}@keyframes chestShake{0%,to{transform:rotate(0)scale(1)}20%{transform:rotate(-6deg)scale(1.04,.96)}40%{transform:rotate(6deg)scale(.97,1.03)}60%{transform:rotate(0)}}.victory .rewards{font-family:var(--marker);color:var(--ink);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;font-size:28px;display:flex}.victory .rewards span{align-items:center;gap:6px;display:inline-flex}.victory .cards{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.victory .new-spell{flex-direction:column;flex:250px;gap:4px;max-width:360px;display:flex}.victory .new-spell .ns-t{font-family:var(--marker);letter-spacing:1px;color:var(--clayDk);font-size:13px}.victory .scard{text-align:left;grid-template-columns:58px minmax(0,1fr);place-items:center start;gap:3px 12px;width:auto;min-height:0;padding:10px 14px 10px 10px;display:grid}.victory .scard:before{background:linear-gradient(90deg, var(--lilac) 0 76px, var(--cream) 76px)}.victory .scard>:first-child{grid-row:1/span 3;justify-self:center}.victory .scard .sn{margin:0;font-size:17px}.victory .scard .sc{font-size:12.5px}.victory .scard .sd{font-size:13px;line-height:1.3}.victory .reallife{max-width:none;padding:12px 16px;font-size:15px;line-height:1.4}.victory .reallife .rl-t{font-size:16px}.victory .actions{flex:none;gap:18px;min-height:50px;margin-top:4px;display:flex}.levelup{font-family:var(--marker);color:var(--teal);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;font-size:28px;animation:.5s both popIn,1s .5s infinite bob}.scard{text-align:center;width:200px;min-height:256px;color:var(--ink);isolation:isolate;flex-direction:column;align-items:center;gap:6px;padding:16px 14px;display:flex;position:relative}.scard:before{content:"";z-index:-1;background:linear-gradient(var(--lilac) 0 34%, var(--cream) 34%);border:var(--line) solid var(--ink);filter:url(#wobble);border-radius:16px;position:absolute;inset:0;box-shadow:5px 6px #2b223340}.scard .sn{font-family:var(--marker);color:var(--ink);margin-top:4px;font-size:19px;line-height:1.1}.scard .sc{font-family:var(--type);color:var(--ink);background:var(--mint);border:2px solid var(--ink);word-break:break-word;border-radius:6px;padding:2px 8px;font-size:13.5px;font-weight:700}.scard .sd{color:var(--ink2);font-size:14px;font-weight:600;line-height:1.35}.scard.flip{animation:.8s cubic-bezier(.2,1.5,.4,1) both flipIn}@keyframes flipIn{0%{transform:perspective(700px)rotateY(90deg)scale(.7)}to{transform:perspective(700px)rotateY(0)rotate(-2deg)}}.scard.unknown{justify-content:center}.scard.unknown:before{background:repeating-linear-gradient(45deg, var(--paper2) 0 12px, var(--paper) 12px 24px)}.scard.unknown .sn{color:#2b223340;font-size:54px}.grim-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));justify-items:center;gap:26px 22px;padding:16px 10px;display:grid}.toggle-row{border-bottom:2px dashed #2b223333;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:19px;font-weight:800;display:flex}.name-input{font-family:var(--marker);background:var(--paper);border:var(--line) solid var(--ink);width:100%;color:var(--ink);text-align:center;border-radius:12px;outline:none;padding:10px 16px;font-size:30px;box-shadow:inset 0 3px #2b22331a}.name-input:focus{box-shadow:0 0 0 4px var(--ochre);background:#fff9ee}.ending{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:16px;padding-top:8vh;display:flex;position:absolute;inset:0}.ending .stats{flex-wrap:wrap;justify-content:center;gap:14px;font-size:18px;font-weight:800;display:flex}.ending .stats span{background:var(--cream);border:2.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:10px;padding:6px 16px}.toast{z-index:60;font-family:var(--marker);color:var(--ink);background:var(--ochre);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);pointer-events:none;white-space:nowrap;border-radius:12px;padding:8px 20px;font-size:18px;animation:2.4s forwards toast;position:absolute;top:90px;left:50%;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,-30px)rotate(-5deg)}10%,85%{opacity:1;transform:translate(-50%)rotate(-2deg)}to{opacity:0}}.reallife{max-width:760px;padding:16px 22px;font-size:17px;font-weight:600;line-height:1.45}.reallife .rl-t{font-family:var(--marker);color:var(--teal);margin-bottom:4px;font-size:18px}.reallife code{font-family:var(--type);background:var(--mint);color:var(--ink);border-radius:5px;padding:0 6px;font-weight:700}.sfx{z-index:46;pointer-events:none;font-family:var(--marker);color:var(--ochre);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:5px 5px 0 var(--ink);white-space:nowrap;font-size:54px;animation:1.2s cubic-bezier(.2,1.8,.4,1) forwards sfxPop;position:fixed}@keyframes sfxPop{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-25deg)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.15)rotate(-8deg)}35%{transform:translate(-50%,-50%)scale(1)rotate(-6deg)}80%{opacity:1;transform:translate(-50%,-60%)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(-50%,-70%)scale(.9)rotate(-2deg)}}@media (width<=900px){html,body{font-size:15px}.level-screen{grid-template-rows:auto auto auto auto;grid-template-columns:minmax(0,1fr);padding:12px 14px 170px;overflow-y:auto}.left-col,.right-col{min-height:auto}.terminal{min-height:300px}.timeline{min-height:180px}.bubble{max-width:74vw;font-size:15px}.octo-corner{position:fixed}.qbox .answers{grid-template-columns:1fr}.conflict-panel{margin:auto;bottom:120px;left:0;right:0}.victory{justify-content:flex-start}.victory .v-body{flex-direction:column;gap:12px}.victory .v-main{flex-flow:wrap;justify-content:center}.victory .v-side{max-width:100%}}@media (width<=700px){.octo-medal{width:72px;height:72px}.bubble{margin-bottom:6px;padding:10px 22px}.region-banner{top:172px}.region-banner .ribbon{padding:6px 22px;font-size:20px}.region-row{gap:6px}.hpbox{min-width:0;padding:8px 10px;top:120px}.hpbox.h{left:10px}.hpbox.m{max-width:55vw;right:10px}.hpbox .nm{font-size:14px}.fighter.hero{left:2%}.fighter.monster{right:0}.fighter .sp{scale:.55}.arena{--ground:calc(100vh - 440px)}.zones{grid-template-columns:repeat(2,minmax(0,1fr))}.zone .arrow{display:none}.dialog .portrait{width:80px;height:80px}.dialog .txt{font-size:16px}.title-cast{transform-origin:50% 100%;bottom:12vh;transform:translate(-50%)scale(.7)}.node{--sc:.75!important}}.term-keys,.term-out .octo-line{display:none}@media (width<=700px),(height<=500px){html,body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:15px}button,input,.node,.dialog .box{touch-action:manipulation}.hud{gap:8px;top:8px;left:8px;right:8px}.hud-player{gap:8px;padding:5px 12px 5px 5px}.hud-player .avatar{border-width:2.5px;width:42px;height:42px}.hud-player .avatar canvas{zoom:.85}.hud-name{font-size:15px}.xpbar{width:92px;height:10px}.hud-lv{font-size:11px}.hud-right{gap:7px;max-width:176px}.counter{gap:5px;padding:4px 11px 4px 7px;font-size:15px}.hud .btn.small{padding:7px 11px}.hud .icon-btn{gap:0;padding:7px 10px;font-size:0}.hud-left+.hud-right{flex-wrap:nowrap;max-width:none}.hud-left+.hud-right .counter{display:none}.hud.inline{flex-wrap:wrap;gap:8px}.hud.inline .hud-left{display:contents!important}.hud.inline .hud-right{order:2;margin-left:auto}.hud.inline .level-title{flex:100%;order:3}.level-title{gap:8px;padding:6px 14px;font-size:18px;line-height:1.15}.level-title small{flex:none;font-size:12px}.level-screen{overscroll-behavior:contain;grid-template-rows:none;grid-template-columns:minmax(0,1fr);gap:16px;padding:10px 10px 28px;overflow-y:auto}.left-col,.right-col{gap:16px;min-height:auto}.terminal{flex:none;min-height:0}.term-bar{padding:7px 12px;font-size:14px}.term-out{overscroll-behavior:contain;flex:none;height:clamp(150px,34vh,320px);padding:10px 12px;font-size:14px}.term-in{flex-wrap:wrap;gap:4px 8px;padding:8px 10px 10px}.term-in .pr{flex:100%;font-size:13px}.term-in input{min-height:40px;font-size:16px}.term-keys{flex:none;gap:6px;display:flex}.tkey{width:40px;height:40px;color:var(--cream);font-family:var(--type);cursor:pointer;background:#fff5e214;border:2px solid #fff5e28c;border-radius:10px;padding:0;font-size:18px;font-weight:700}.tkey:active{background:#fff5e240}.tkey[aria-label=run]{background:var(--sap);border-color:var(--ink);width:52px;box-shadow:0 3px 0 var(--ink)}.chips{gap:8px;padding:2px 10px 12px}.chip{padding:6px 11px;font-size:14px}.octo-corner.in-term{display:none}.term-out .octo-line{background:var(--ink2);border-left:4px solid var(--lilac);font-family:var(--hand);color:var(--ochre);white-space:normal;border-radius:12px;margin:8px 0;padding:8px 12px;font-size:14px;font-weight:700;line-height:1.4;animation:.2s ease-out both lineIn;display:block}.term-out .octo-line .who{font-family:var(--marker);color:var(--clayLt);margin-right:4px;font-weight:400}.term-out .octo-line b{color:var(--cream)}.term-out .octo-line code{font-family:var(--type);color:var(--ink);background:var(--mint);border-radius:5px;padding:0 5px;font-weight:700}.quests{max-height:none;overflow:visible}.quest{padding:7px 8px;font-size:15px}.quest .hinttxt .chip{white-space:normal;text-align:left;overflow-wrap:anywhere;font-size:15px!important}.panel h3,.parchment h3{font-size:17px}.zones{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.zones[style*="--zc: 4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.zone{min-height:0;padding:8px 5px}.zone .zt{font-size:14px}.zone .zs{font-size:11px}.zone .zicon{height:34px}.zone .arrow{display:none}.zone-empty{font-size:12px}.fchip{padding:2px 5px;font-size:11.5px}.timeline{flex:none;min-height:0}.graph-wrap{min-height:130px}.legend{gap:6px 12px;font-size:12px}.left-col>.conflict-panel{width:auto;margin:0;position:static}.conflict-panel .cv{font-size:14px}.conflict-panel .acts{gap:10px}.octo-corner{gap:8px;position:fixed;bottom:8px;left:8px;right:8px}.octo-medal{border-width:3px;width:58px;height:58px}.octo-medal canvas{zoom:.6}.bubble{cursor:pointer;flex:1;max-width:none;margin-bottom:2px;padding:9px 34px 9px 22px;font-size:14px}.bubble:after{content:"✕";color:var(--cream);opacity:.6;font-size:12px;position:absolute;top:6px;right:16px}.order-screen{gap:12px;padding:64px 10px 100px}.order-board{width:100%;padding:14px 12px}.order-board h3{font-size:16px}.slots{gap:6px}.slot{gap:8px;min-height:46px;padding:4px 8px}.slot .n{flex:none;width:22px;font-size:19px}.slot .spellcard{flex:1}.spellcard{overflow-wrap:anywhere;padding:6px 10px;font-size:13.5px}.spellcard small{font-size:12px}.pool{gap:8px;margin-top:14px}.hpbox{min-width:0;padding:7px 10px;top:62px}.hpbox.h{left:8px}.hpbox.m{max-width:58vw;right:8px}.hpbox .nm{gap:6px;font-size:14px}.hpbar{height:13px;margin-top:5px}.hearts{margin-top:5px}.fighter.hero{left:4%}.fighter.monster{right:2%}.fighter .sp{scale:.55}.qbox{width:calc(100vw - 16px);padding:12px 12px 14px;bottom:8px}.qbox .q{margin-bottom:10px;font-size:19px}.qbox .answers{grid-template-columns:1fr;gap:8px}.answer{padding:9px 12px 9px 44px;font-size:15px}.why{flex-wrap:wrap;margin-top:10px;font-size:14.5px}.vs-banner{white-space:normal;text-align:center;width:94vw;font-size:34px;line-height:1.1}.map-area{isolation:isolate}.region-banner{gap:6px;width:calc(100vw - 16px);top:108px}.region-row{gap:6px}.region-banner .ribbon{white-space:normal;padding:6px 20px;font-size:19px}.region-banner small,.node .tag{font-size:13px}.level-card{width:calc(100vw - 24px);padding:20px 16px 22px}.level-card h2{font-size:28px}.level-card .lc-art{height:130px}.modal{overscroll-behavior:contain;width:calc(100vw - 16px);max-height:calc(100% - 24px);padding:20px 16px 18px}.modal h2{font-size:26px}.modal p{font-size:16px}.v-stage{transform-origin:0 0;width:560px;height:190px;position:absolute;top:0;left:0}.v-label{font-size:15px}.grim-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px;padding:10px 0}.scard{width:100%;min-height:0;padding:12px 8px}.scard.unknown{min-height:190px}.scard .sn{font-size:15px}.scard .sc{font-size:11.5px}.scard .sd{font-size:12.5px}.toggle-row{flex-wrap:wrap;gap:10px;font-size:16px}.name-input{font-size:24px}.dialog{gap:8px;width:calc(100vw - 16px);bottom:10px}.dialog .portrait{border-width:3px;width:64px;height:64px}.dialog .portrait canvas{zoom:.6}.dialog .box{min-height:92px;padding:12px 22px 16px}.dialog .who{font-size:16px}.dialog .txt{font-size:15.5px}.dialog .next{right:22px}.dialog .skip{top:-46px;right:0}.victory{gap:10px;padding:3vh 12px 28px}.victory .banner{font-size:clamp(30px,10vw,40px);line-height:1.05}.victory .vtitle{text-align:center;font-size:17px}.victory .rewards{flex-wrap:wrap;justify-content:center;gap:8px 16px;font-size:24px}.victory .actions{flex-wrap:wrap;justify-content:center;gap:12px}.reallife{padding:14px 16px;font-size:15px}.ending{padding:5vh 12px 0}.ending .stats{gap:10px;font-size:16px}.press-start{font-size:28px}.title-foot{font-size:12px;left:12px;right:12px}.toast{white-space:normal;text-align:center;width:max-content;max-width:90vw}.level-screen,.victory{padding-bottom:64px}.octo-corner,.title-foot{right:54px}body:has(.battle-screen) .contact{flex-direction:column-reverse;top:8px;bottom:auto;right:100px}}@media (height<=500px){.title-screen{gap:8px;padding-top:3vh}.title-cast{display:none}.fighter .sp{scale:.4}.hpbox{top:56px}.qbox{width:min(760px,100vw - 16px);padding:10px 12px 12px}.qbox .q{margin-bottom:8px;font-size:17px}.qbox .answers{grid-template-columns:1fr 1fr;gap:7px 10px}.answer{padding-top:7px;padding-bottom:7px}.dialog .box{min-height:80px}}@media (hover:none){.btn:hover,.chip:hover,.spellcard:hover,.node:hover .stone,.octo-medal:hover,.victory .chest:hover{transform:none}.chip:hover{background:var(--cream)}}.contact{z-index:60;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:14px;right:14px}.contact>*{pointer-events:auto}.contact-btn{border:var(--line) solid var(--ink);background:var(--sky);width:46px;height:46px;color:var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--ink);border-radius:50%;font-size:22px;line-height:1;transition:transform .12s}.contact-btn:hover{transform:translateY(-2px)rotate(-6deg)}.contact-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.contact-btn:focus-visible{outline:3px dashed var(--clay);outline-offset:4px}.contact-card{box-sizing:border-box;text-align:center;width:min(320px,100vw - 28px)}.contact-card[hidden]{display:none}.contact-title{font-family:var(--marker);margin-bottom:6px;font-size:20px}.contact-email{font-family:var(--mono,monospace);word-break:break-all;-webkit-user-select:all;user-select:all;margin-bottom:12px;font-size:15px;font-weight:700}.contact-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.contact-actions a.btn{text-decoration:none}@media (width<=640px){.contact{bottom:8px;right:8px}.contact-btn{width:38px;height:38px;font-size:18px}}
