@font-face{font-family:DotGothic16;font-style:normal;font-display:swap;font-weight:400;src:url(./dotgothic16-latin-400-normal-BYJEY5oh.woff2) format("woff2"),url(./dotgothic16-latin-400-normal-cp5t3xa_.woff) format("woff")}@font-face{font-family:DotGothic16;font-style:normal;font-display:swap;font-weight:400;src:url(./dotgothic16-japanese-400-normal-DqORjlTR.woff2) format("woff2"),url(./dotgothic16-japanese-400-normal-f9lPNYbv.woff) format("woff")}:root{--ink: #000;--paper: #fff;font-family:ui-monospace,Courier New,monospace}*{box-sizing:border-box}html,body{margin:0;color:var(--ink)}html{background:var(--paper)}body{min-height:100dvh;-webkit-tap-highlight-color:transparent}#app{max-width:600px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}h2,h3{margin:0;font-size:1.1rem}.tag{text-align:center;margin:4px 0 8px;font-size:.85rem}.msg{border:2px solid var(--ink);padding:8px;margin:0}.hint{font-size:.8rem;margin:0}button{font:inherit;font-weight:700;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:0;padding:10px 14px;min-height:44px;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}button:active:not(:disabled){background:var(--ink);color:var(--paper);box-shadow:none;transform:translate(3px,3px)}button.on,button.primary{background:var(--ink);color:var(--paper)}button:disabled{opacity:1;color:color-mix(in srgb,var(--ink) 50%,var(--paper));border-style:dashed;box-shadow:none;cursor:not-allowed}button.dev{border-style:dotted}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row .next{margin-left:auto}.panel .row{flex-wrap:nowrap;gap:10px;margin-top:8px}.panel .row button{padding-inline:8px;min-width:0;white-space:nowrap;font-size:.9rem}.col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.hud{font-weight:700;letter-spacing:.05em}.world{border:2px solid var(--ink);padding:10px;display:flex;flex-direction:column;gap:10px;touch-action:pan-y;user-select:none;-webkit-user-select:none}.levels{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.level{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;min-width:0;box-shadow:2px 2px 0 var(--ink)}.level .num{font-size:1.15rem}.level .pct{font-size:.55rem;min-height:1em}.level .tm{font-size:.55rem;min-height:1em;opacity:.8}.level.done{background:var(--ink);color:var(--paper);animation:level-pop .3s steps(6) var(--d, 0s) backwards}@keyframes level-pop{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:none}}.frame{display:flex;justify-content:center;position:relative}canvas.board{box-sizing:content-box;image-rendering:pixelated;image-rendering:crisp-edges;border:2px solid var(--ink);touch-action:none;user-select:none;-webkit-user-select:none;max-width:100%}.panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(94%,360px);z-index:5;background:var(--paper);border:2px solid var(--ink);padding:24px 20px 22px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:4px 4px 0 var(--ink),0 14px 32px color-mix(in srgb,var(--ink) 40%,transparent)}.panel strong{font-size:1.3rem;letter-spacing:.04em}.panel .time{font-size:.9rem;padding-top:4px}.hidden{display:none}.panel,.veil{transition:opacity .28s linear,transform .28s steps(7),visibility 0s}.panel.hidden,.veil.hidden{display:block;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s linear,transform .2s steps(5),visibility 0s .2s}.panel.hidden{transform:translate(-50%,calc(-50% + 28px)) scale(.96)}.veil{position:fixed;inset:0;z-index:4;background:color-mix(in srgb,var(--ink) 25%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}input.url{font:inherit;width:100%;padding:8px;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink)}input[type=range]{flex:1;min-width:120px;accent-color:var(--ink)}.pack{border:2px solid var(--ink);padding:8px;display:flex;flex-direction:column;gap:6px}.pack .lv{display:flex;gap:6px;align-items:center;border:1px dashed var(--ink);padding:4px}.pack .lv.over{background:color-mix(in srgb,var(--ink) 15%,var(--paper))}.pack .lv code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.pack button,.lv button{min-height:32px;padding:2px 8px;box-shadow:none}.modal{position:fixed;inset:0;z-index:10;background:color-mix(in srgb,var(--paper) 85%,transparent);display:grid;place-items:center;padding:16px}.modal .box{background:var(--paper);border:2px solid var(--ink);padding:16px;width:min(420px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;box-shadow:6px 6px 0 var(--ink),0 18px 40px color-mix(in srgb,var(--ink) 40%,transparent)}.modal input,.modal select{font:inherit;padding:8px;border:2px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink)}@font-face{font-family:DotGothic16 Label;src:url(../fonts/dotgothic16-label.woff2) format("woff2");unicode-range:U+65E5,U+672C,U+8A9E;font-display:swap}:lang(ja){font-family:DotGothic16,ui-monospace,Courier New,monospace}button:lang(ja){font-weight:400}:lang(en),:lang(pt),:lang(es),:lang(it){font-family:ui-monospace,Courier New,monospace}button.lang-ja{font-family:DotGothic16 Label,ui-monospace,Courier New,monospace;font-weight:400}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bar{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:8px;padding:10px 0 8px;background:var(--paper);border-bottom:2px solid var(--ink);margin-bottom:4px}.bar button{min-height:40px;padding:6px 10px;box-shadow:2px 2px 0 var(--ink)}.bar .back-slot{width:1px}.bar .spacer{flex:1}.screen-title{font-size:1.15rem}canvas.pixel{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.center-col,.title{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:16px}.logo{display:flex;justify-content:center;width:100%}.title .tag,.center-col .tag{margin:0;font-size:.95rem;text-align:center}.demo{display:flex;justify-content:center;border:2px solid var(--ink);padding:6px;box-shadow:4px 4px 0 var(--ink);background:var(--paper)}.stretch{align-self:stretch;align-items:stretch}.title .main{width:min(320px,100%);align-self:center}button.big{font-size:1.2rem;padding:14px 18px;min-height:52px}.badge{margin:0;text-align:center;font-weight:700;letter-spacing:.05em}.links{justify-content:center;gap:18px}button.link{border:0;box-shadow:none;background:transparent;text-decoration:underline;padding:8px 6px}button.link:active:not(:disabled){transform:none}.title .msg{align-self:stretch;text-align:center}.credit{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;margin-top:8px;padding-top:12px;border-top:2px solid var(--ink);align-self:stretch;font-size:14px}.credit img,.badge-img{width:80px;height:15px;image-rendering:pixelated;image-rendering:crisp-edges}.badge-img{display:block;margin:0 auto;flex:none;background:var(--ink);-webkit-mask:url(../brchad-2026-mask.png) center / 100% 100% no-repeat;mask:url(../brchad-2026-mask.png) center / 100% 100% no-repeat}.credit a,#app p a{color:var(--ink);font-weight:700}.world-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.world-name{display:flex;flex-direction:column;align-items:center}.world-name h2{font-size:1.3rem}.world-name .count{font-size:.8rem}button.step{font-size:1.4rem;min-width:48px;padding:4px 10px}.dots{display:flex;gap:8px;justify-content:center}.dot{width:10px;height:10px;border:2px solid var(--ink)}.dot.on{background:var(--ink)}.lockmsg{display:flex;gap:10px;align-items:center}.lock{width:24px;height:24px;flex:none}.lock .ink{fill:var(--ink)}.lock .hole{fill:var(--paper)}.rule{display:flex;gap:14px;align-items:center}.rule p{margin:0;font-size:.9rem}canvas.pixel.mini{flex:none;border:2px solid var(--ink)}#app>p{margin:0}.stack{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.9rem}.stack li{display:flex;flex-direction:column;gap:2px}.bar .menu-btn{padding:6px 12px;font-size:1.1rem;line-height:1}.menu{display:flex;flex-direction:column;gap:8px}.menu .row button{flex:1}.modal .box.split{overflow:hidden}.box .scroll{overflow-y:auto;min-height:0;padding:6px 6px 8px 3px}.box .foot{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}.box .foot .break{flex-basis:100%;height:0;margin-top:-10px}.box .foot button{flex:1;padding-inline:6px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.modal.ghost{background:transparent}.modal.ghost .box{background:transparent;border-color:transparent;box-shadow:none}.modal.ghost .box>:not(.foot),.modal.ghost .foot>:not(.hold){opacity:0}:root[data-big-text]{font-size:125%}:root[data-reduce-motion] *,:root[data-reduce-motion] *:before,:root[data-reduce-motion] *:after{transition:none!important;animation:none!important}:root[data-reduce-motion] button:active:not(:disabled){transform:none}#noise-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;image-rendering:pixelated}.noise-btn{padding:6px 8px}.noises{display:grid;grid-template-columns:1fr 1fr;gap:10px}.noises button{display:flex;align-items:flex-end;justify-content:flex-start;text-align:left;font-size:.8rem;padding:8px;min-height:64px;background-color:var(--paper);image-rendering:pixelated}.noises button.on{outline:3px solid var(--ink);outline-offset:2px}.noise-ico{display:block;width:20px;height:20px;border:2px solid var(--ink);background:radial-gradient(var(--ink) 1px,transparent 1.5px) 0 0 / 4px 4px}.bar .palette-btn{padding:6px 8px}.swatch{display:block;width:20px;height:20px;border:2px solid var(--ink);background:linear-gradient(135deg,var(--ink) 50%,var(--paper) 50%)}.palettes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.palettes button{display:flex;align-items:center;gap:6px;justify-content:flex-start;text-align:left;font-size:.8rem;padding:8px;min-height:44px}.palettes button.on{outline:3px solid var(--ink);outline-offset:2px}.box .foot button.back{white-space:nowrap}.shield{position:fixed;inset:0;z-index:9}@keyframes modal-in{0%{opacity:0}to{opacity:1}}@keyframes modal-out{0%{opacity:1}to{opacity:0}}@keyframes box-in{0%{transform:translateY(28px) scale(.96)}to{transform:none}}@keyframes box-out{0%{transform:none}to{transform:translateY(28px) scale(.96)}}.modal{animation:modal-in .2s linear}.modal .box{animation:box-in .26s steps(7)}.modal.leaving{animation:modal-out .2s linear forwards;pointer-events:none}.modal.leaving .box{animation:box-out .2s steps(5) forwards}
