@font-face{font-family:VT323;src:url(/fonts/vt323-regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.grimsheet-app [hidden]{display:none}.title-bar,.tab-bar,.formula-row,.toolbar,.status-bar{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex}.formula-bar{font:inherit;flex:12rem}.formula-alert{font-weight:700}.grid-table{border-collapse:collapse;table-layout:fixed;width:38rem}.grid-table col.col-row-header{width:3rem}.grid-table col.col-label{width:7.5rem}.grid-table col.col-cell{width:2.5rem}.grid-table th,.grid-table td{text-align:center;border:1px solid gray;padding:0}.grid-table td.cell{width:2.5rem;height:calc(2.5rem - 1px);position:relative;overflow:hidden}.separator-row td{padding:.25rem;font-weight:700}.cell-text{text-overflow:clip;white-space:nowrap;max-width:100%;line-height:1;display:inline-block;overflow:hidden}.entity-glyph{background:inherit;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.grid-table td[data-entity] .cell-text{visibility:hidden}.grid-table td[data-selected=true]{outline-offset:-3px;outline:3px solid}.cell-error{font-weight:700;text-decoration:underline}:focus-visible{outline-offset:2px;outline:3px solid #0050d0}@media (prefers-reduced-motion:reduce){.grimsheet-app *,.grimsheet-app :before,.grimsheet-app :after{transition:none!important;animation:none!important}}:root{--error-ref-fg:#3b1d00;--error-ref-bg:#f0d9b5;--error-name-fg:#1a1a1a;--error-name-bg:#d0d0d0;--error-div0-fg:#fff;--error-div0-bg:#000;--error-value-fg:#404040;--error-value-bg:#c8c8c8;--error-cycle-fg:#2a0a5e;--error-cycle-bg:#e6dcff;--error-div0-crack:#5a5a5a}@media (prefers-color-scheme:dark){:root{--error-ref-fg:wheat;--error-ref-bg:#4a2a0a;--error-name-fg:#f0f0f0;--error-name-bg:#3a3a3a;--error-div0-fg:#fff;--error-div0-bg:#000;--error-value-fg:#e0e0e0;--error-value-bg:#505050;--error-cycle-fg:#e6dcff;--error-cycle-bg:#3a1a7a;--error-div0-crack:#5a5a5a}}.grid-table td.cell-error{color:var(--err-fg);background-color:var(--err-bg)}.grid-table td.cell-error .cell-text{z-index:1;background:var(--err-bg);padding:0 1px;font-size:.75rem;position:relative}.cell-error:before,.cell-error:not([class*=cell-error-]):before{content:"";z-index:0;pointer-events:none;border:2px solid;border-radius:50% 50% 0 0/35% 35% 0 0;position:absolute;inset:3px 7px 2px}.cell-error:not([class*=cell-error-]){--err-fg:var(--error-name-fg);--err-bg:var(--error-name-bg)}.cell-error-ref{--err-fg:var(--error-ref-fg);--err-bg:var(--error-ref-bg)}.cell-error-ref:before{clip-path:polygon(30% 0,70% 0,100% 22%,70% 100%,30% 100%,0 22%,30% 0,36% 10%,12% 25%,36% 90%,64% 90%,88% 25%,66% 10%,36% 10%,30% 0);background:linear-gradient(currentColor,currentColor);border:0;border-radius:0;inset:2px 4px}.cell-error-name{--err-fg:var(--error-name-fg);--err-bg:var(--error-name-bg)}.cell-error-name:before{clip-path:none;box-shadow:inset 0 0 0 2px var(--err-bg), inset 0 0 0 3px currentColor;background:0 0;border:2px solid;border-radius:50% 50% 0 0/40% 40% 0 0;inset:3px 7px 2px}.cell-error-div0{--err-fg:var(--error-div0-fg);--err-bg:var(--error-div0-bg)}.cell-error-div0:before{background:var(--error-div0-crack);clip-path:polygon(40% 0,60% 0,45% 20%,65% 40%,40% 60%,60% 80%,45% 100%,25% 100%,45% 80%,25% 60%,50% 40%,30% 20%);border:0;border-radius:0;width:8px;margin-left:-4px;inset:0 auto 0 50%}.cell-error-value{--err-fg:var(--error-value-fg);--err-bg:var(--error-value-bg)}.cell-error-value:before{clip-path:none;background:0 0;border:2px dashed;border-radius:0 0 40% 40%/0 0 60% 60%;inset:1px}.grid-table td.cell-error-value .cell-text{font-style:italic}.cell-error-cycle{--err-fg:var(--error-cycle-fg);--err-bg:var(--error-cycle-bg);background-image:radial-gradient(circle at 82% 84%,currentColor 1.5px,#0000 2px),radial-gradient(circle at 72% 72%,currentColor 1px,#0000 1.5px)}.cell-error-cycle:before{clip-path:none;background:0 0;border:2px dotted;border-radius:40% 40% 12% 12%;inset:2px}.grid-table td.cell-error-cycle .cell-text{text-decoration-style:wavy}td[data-ghost]:after{content:"";z-index:3;pointer-events:none;background:radial-gradient(circle at 35% 40%, var(--error-cycle-bg) 1.5px, transparent 2px), radial-gradient(circle at 65% 40%, var(--error-cycle-bg) 1.5px, transparent 2px), linear-gradient(currentColor, currentColor);clip-path:polygon(0 100%,0 40%,20% 10%,50% 0,80% 10%,100% 40%,100% 100%,83% 85%,66% 100%,50% 85%,33% 100%,16% 85%);width:14px;height:16px;animation:1.6s ease-in-out infinite ghost-bob;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}@keyframes ghost-bob{50%{transform:translate(-50%)translateY(-1px)}}.grid-table td.cell-error .entity-glyph{text-shadow:0 0 2px var(--err-bg), 0 0 2px var(--err-bg);background:0 0}.grid-table td.cell-error .entity-glyph,.grid-table td.cell-error .padlock{z-index:2}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){td[data-ghost]:after,.cell-error:before{transition:none;animation:none}}@media (forced-colors:active){.grid-table td.cell-error{color:canvastext;background-color:canvas}td[data-ghost]:after{--error-cycle-bg:Canvas}}:root{--face:silver;--white:#fff;--glow:#dfdfdf;--shadow:gray;--dark:#000;--title-a:navy;--title-b:#1c4a9a;--disabled:#4a4a4a;--alert:maroon;--ring:navy;--backdrop:#3f7f7f;--flash:#fff2a8;--flash-ring:#ffd600;--font-ui:"VT323", ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace}html{scroll-padding-bottom:3.5rem}body{background:var(--backdrop);box-sizing:border-box;flex-direction:column;min-width:54rem;min-height:100dvh;margin:0;padding:.25rem 0;display:flex}#app{margin-block:auto}.grimsheet-app{width:52rem;font-family:var(--font-ui);color:var(--dark);margin:0 auto;font-size:1.25rem;line-height:1.1;position:relative}.grimsheet-app button,.grimsheet-app input{font:inherit;color:inherit}.window{background:var(--face);border:2px solid;border-color:var(--white) var(--dark) var(--dark) var(--white);box-shadow:inset -1px -1px 0 var(--shadow), 0 0 0 1px var(--dark), 4px 4px 0 #00000059;flex-direction:column;gap:2px;padding:2px;display:flex;position:relative}.title-bar,.dialog-title-bar{background:linear-gradient(90deg, var(--title-a), var(--title-b));color:#fff;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.25rem;padding:2px 3px;display:flex}.title-text,.dialog-title{letter-spacing:.06em}.window-buttons{gap:2px;display:flex}.wb{box-sizing:border-box;background:var(--face);border:2px solid;border-color:var(--white) var(--dark) var(--dark) var(--white);width:1rem;height:.9rem;box-shadow:inset -1px -1px 0 var(--shadow);position:relative}.wb-min:before{content:"";background:var(--dark);height:2px;position:absolute;bottom:1px;left:1px;right:1px}.wb-max:before{content:"";border:1px solid var(--dark);border-top-width:2px;position:absolute;inset:1px}.wb-close:before,.wb-close:after{content:"";background:var(--dark);width:2px;height:.55rem;margin-left:-1px;position:absolute;top:0;left:50%;transform:rotate(45deg)}.wb-close:after{transform:rotate(-45deg)}.toolbar button,.dialog button,.tab,.grid-table th{background:var(--face);border:2px solid;border-color:var(--white) var(--dark) var(--dark) var(--white);box-shadow:inset -1px -1px 0 var(--shadow), inset 1px 1px 0 var(--glow)}.name-box,.formula-bar,.status-bar>span,.message{border:2px solid;border-color:var(--shadow) var(--white) var(--white) var(--shadow);box-shadow:inset 1px 1px 0 var(--dark), inset -1px -1px 0 var(--glow)}.toolbar button:active,.dialog button:active,.tab:active,[data-control=sound][aria-pressed=true]{border-color:var(--dark) var(--glow) var(--glow) var(--dark);box-shadow:inset 1px 1px 0 var(--shadow);padding:1px 0 0 1px}.formula-row{flex-wrap:wrap;align-items:center;gap:.25rem;padding:2px;display:flex}.name-box{background:var(--white);min-width:6.5rem;padding:0 .25rem}.formula-bar{background:var(--white);flex:12rem;padding:0 .25rem}.formula-note{flex:none}.formula-alert{color:var(--alert)}.cell-explanation{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;align-self:center;min-width:0;margin:0 .25rem;overflow:hidden}.toolbar{flex-wrap:wrap;gap:.25rem;padding:2px;display:flex}.toolbar button{min-height:1.5rem;padding:0 .6rem}.toolbar button:disabled{color:var(--disabled);text-shadow:1px 1px 0 var(--white);border-style:dashed}.toolbar button[data-control=sound]{margin-left:auto;position:relative}.grid-table{background:var(--white);box-shadow:0 0 0 1px var(--shadow), 1px 1px 0 1px var(--white);margin:4px auto}.grid-table th{font-weight:400}.grid-table th,.grid-table td{border-width:1px}.grid-table td{border-color:var(--shadow)}.separator-row td{background:var(--face);letter-spacing:.15em;font-weight:400}.grid-table td.cell:not(.cell-error)[data-region=map] .cell-text,.grid-table .entity-glyph{font-size:1.75rem}.grid-table td.cell:not(.cell-error)[data-region=rules] .cell-text{font-size:1.25rem}.grid-table td.cell[data-col=A]{width:7.5rem}.grid-table td.cell[data-col=A][data-region=rules]{text-align:left;padding:0 0 0 .25rem}.grid-table td.cell[data-col=A][data-region=rules] .cell-text{font-size:1rem}.padlock{background:currentColor;width:8px;height:6px;position:absolute;top:3px;right:3px}.padlock:before{content:"";border:1px solid;border-bottom:0;border-radius:3px 3px 0 0;width:4px;height:3px;position:absolute;bottom:6px;left:1px}.tab-bar{flex-wrap:nowrap;align-items:flex-start;gap:0;padding:0 .25rem;display:flex}.grimsheet-app .tab{white-space:nowrap;border-top-width:0;flex:none;padding:0 .5rem;font-size:1.125rem}.tab[aria-current=page]{background:var(--white);padding-bottom:2px;position:relative;top:-2px}.tab:disabled{color:var(--disabled);text-shadow:1px 1px 0 var(--white);border-style:dashed}.status-bar,#status-bar{z-index:5;background:var(--face);box-shadow:0 -1px 0 var(--dark);flex-wrap:wrap;gap:0;padding:2px;font-size:1.125rem;display:flex;position:sticky;bottom:0}.status-bar>span{box-shadow:none;border-width:0;padding:0 .6rem}.status-bar>span+span{border-left:1px solid var(--shadow);box-shadow:-1px 0 0 var(--white)}.status-bar .message{box-sizing:border-box;flex:1 0 100%;margin:2px 0 0;padding:0 .5rem}.dialog,.end-banner{z-index:10;background:var(--face);border:2px solid;border-color:var(--white) var(--dark) var(--dark) var(--white);width:22rem;box-shadow:inset -1px -1px 0 var(--shadow), 0 0 0 1px var(--dark), 4px 4px 0 #00000059;position:absolute}.dialog-body{padding:.75rem}.dialog-body p{margin:0}.dialog-buttons{justify-content:center;gap:.5rem;margin-top:.75rem;display:flex}.dialog button{min-width:6rem}.dialog button[data-default]{border-color:var(--dark);box-shadow:inset 0 0 0 1px var(--white), inset -1px -1px 0 var(--shadow)}#screen-overlay{z-index:20;pointer-events:none;position:absolute;inset:0}#screen-overlay .dialog{pointer-events:auto}.title-dialog{width:30rem;top:9rem;left:50%;transform:translate(-50%)}.win-dialog,.end-banner{bottom:5.5rem;right:1rem}.title-heading{letter-spacing:.08em;margin:0;font-size:3rem;font-weight:400}.title-body{background:var(--white) linear-gradient(#c8c8c8 1px, transparent 1px) 0 0 / 100% 1.6rem}.title-body p{margin:.25rem 0}[data-control=sound][aria-pressed=false]:after{content:"";background:var(--dark);height:2px;position:absolute;top:50%;left:3px;right:3px;transform:rotate(-18deg)}:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.grid-table:focus-visible,.formula-bar:focus-visible{outline-offset:0}@media (forced-colors:active){.window,.dialog{border:2px solid canvastext}.padlock,.padlock:before{forced-color-adjust:none;background:canvastext;border-color:canvastext}[data-control=sound][aria-pressed=false]:after{forced-color-adjust:none;background:canvastext}}@media (prefers-reduced-motion:no-preference){.grimsheet-app[data-beat="0"] .grid-table td[data-changed=true]:not(.cell-error){animation:.4s ease-out cell-flash-a}.grimsheet-app[data-beat="1"] .grid-table td[data-changed=true]:not(.cell-error){animation:.4s ease-out cell-flash-b}.grimsheet-app[data-beat="0"] .grid-table td[data-changed=true].cell-error{animation:.4s ease-out cell-ring-a}.grimsheet-app[data-beat="1"] .grid-table td[data-changed=true].cell-error{animation:.4s ease-out cell-ring-b}.entity-glyph[data-slide=E]{--sx:-100%;--sy:0}.entity-glyph[data-slide=W]{--sx:100%;--sy:0}.entity-glyph[data-slide=S]{--sx:0;--sy:-100%}.entity-glyph[data-slide=N]{--sx:0;--sy:100%}.grimsheet-app[data-beat="0"] .entity-glyph[data-slide]{animation:.12s ease-out hero-slide-a}.grimsheet-app[data-beat="1"] .entity-glyph[data-slide]{animation:.12s ease-out hero-slide-b}.grimsheet-app[data-beat="0"] .grid-table[data-damaged=true]{animation:.3s linear sheet-shake-a}.grimsheet-app[data-beat="1"] .grid-table[data-damaged=true]{animation:.3s linear sheet-shake-b}}@keyframes cell-flash-a{0%{background-color:var(--flash)}}@keyframes cell-flash-b{0%{background-color:var(--flash)}}@keyframes cell-ring-a{0%{box-shadow:inset 0 0 0 4px var(--flash-ring)}}@keyframes cell-ring-b{0%{box-shadow:inset 0 0 0 4px var(--flash-ring)}}@keyframes hero-slide-a{0%{transform:translate(var(--sx,0), var(--sy,0))}}@keyframes hero-slide-b{0%{transform:translate(var(--sx,0), var(--sy,0))}}@keyframes sheet-shake-a{0%,to{transform:none}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes sheet-shake-b{0%,to{transform:none}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}
