:root{font-family:system-ui,sans-serif;color:#17211c;background:#101411}*{box-sizing:border-box}html,body,#root,.app-root{width:100%;min-width:0;height:100%;min-height:0;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}.logical-canvas-viewport{display:grid;width:100vw;height:100dvh;place-items:center;overflow:hidden;background:#101411}.logical-canvas-shell{position:relative;flex:none}.logical-canvas-stage{position:relative;transform-origin:top left;background:#f4f1e9;overflow:hidden}.dev-validation-screen{position:relative;width:100%;height:100%}.dev-frame,.dev-image-button,.dev-medallion,.dev-mini-grid,.dev-selection-rect{position:absolute}.dev-frame,.dev-selection-rect{pointer-events:none}.asset-decoration{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.dev-visible-button{margin:0;padding:0;border:0;background:transparent;cursor:pointer}.dev-visible-button:focus-visible{outline:4px solid #135f43;outline-offset:3px}.dev-image-button{overflow:hidden}.dev-medallion>.asset-decoration{position:absolute;inset:0}.dev-medallion-digit{position:absolute;z-index:1;top:29%;left:34.5%;width:31%;height:42%}.dev-mini-grid{display:grid}.dev-mini-grid-button{position:relative;min-width:0;min-height:0;overflow:hidden;color:#17211c;font-weight:700}.dev-mini-grid-button>.asset-decoration{position:absolute;inset:0}.dev-mini-grid-button>span{position:relative;z-index:1}.dev-selection-rect{border:3px solid #135f43}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.home-screen,.navigation-placeholder{position:relative;width:100%;height:100%;overflow:hidden}.home-background,.home-play-button,.home-settings-button,.navigation-placeholder-panel,.navigation-placeholder-return{position:absolute}.home-background{pointer-events:none}.home-background-image{object-position:center}.home-play-button,.home-settings-button{overflow:hidden}.home-play-button:focus-visible,.home-settings-button:focus-visible{outline:4px solid oklch(.92 .14 90);outline-offset:4px}.home-settings-button .asset-decoration{object-fit:contain}.navigation-placeholder{background:#152318;color:#fbf8f1}.navigation-placeholder-panel{display:grid;place-content:center;gap:18px;padding:40px;text-align:center;background:#18421c;border:5px solid oklch(.78 .15 85)}.navigation-placeholder-panel h1,.navigation-placeholder-panel p{margin:0}.navigation-placeholder-panel h1{font-size:52px}.navigation-placeholder-panel p{font-size:24px}.navigation-placeholder-return{border:4px solid oklch(.78 .15 85);background:#18421c;color:#fbf8f1;font-size:30px;font-weight:700;cursor:pointer}.navigation-placeholder-return:focus-visible{outline:4px solid oklch(.92 .14 90);outline-offset:4px}.chapters-screen{position:relative;width:100%;height:100%;overflow:hidden;background:#051009}.chapters-frame,.chapters-logo,.chapter-title-frame,.chapter-title-text,.chapter-separator,.chapters-grid,.chapter-page-button,.chapters-return-button,.chapters-settings-button{position:absolute}.chapters-frame,.chapters-logo,.chapter-title-frame,.chapter-title-text,.chapter-separator{pointer-events:none}.chapters-logo .asset-decoration{object-fit:contain}.chapter-title-text{display:grid;place-items:center;color:#f8df8e;font-family:Georgia,serif;font-weight:700;letter-spacing:.02em;text-align:center;text-shadow:0 2px 2px #102114;white-space:pre-line}.chapters-grid{display:grid}.chapter-medallion-button{position:relative;align-self:center;justify-self:center;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.chapter-medallion-final-row{grid-column:1 / -1;display:grid;place-items:center;min-width:0;min-height:0}.chapter-medallion-button:focus-visible,.chapter-page-button:focus-visible,.chapters-return-button:focus-visible,.chapters-settings-button:focus-visible{outline:4px solid oklch(.92 .14 90);outline-offset:3px}.chapter-medallion-image{position:absolute;inset:0}.chapter-digit-number{position:absolute;display:flex;align-items:center;pointer-events:none}.chapter-digit{width:auto;pointer-events:none}.chapter-medallion-button:disabled,.chapter-page-button:disabled{cursor:not-allowed;filter:grayscale(1) opacity(.48)}.chapter-page-button,.chapters-return-button,.chapters-settings-button{margin:0;padding:0;border:0;background:transparent;cursor:pointer}.levels-screen{position:relative;width:100%;height:100%;overflow:hidden;background:#051009}.levels-frame,.levels-logo,.levels-title-frame,.levels-title-text,.levels-separator,.levels-grid,.levels-return-button,.levels-settings-button{position:absolute}.levels-frame,.levels-logo,.levels-title-frame,.levels-title-text,.levels-separator{pointer-events:none}.levels-logo .asset-decoration{object-fit:contain}.levels-title-text{display:grid;place-items:center;color:#f8df8e;font-family:Georgia,serif;font-weight:700;letter-spacing:.02em;text-align:center;text-shadow:0 2px 2px #102114;white-space:pre-line}.levels-grid{display:grid}.level-medallion-button{position:relative;align-self:center;justify-self:center;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.level-medallion-button:focus-visible,.levels-return-button:focus-visible,.levels-settings-button:focus-visible{outline:4px solid oklch(.92 .14 90);outline-offset:3px}.level-medallion-image{position:absolute;inset:0}.level-digit-number{position:absolute;display:flex;align-items:center;pointer-events:none}.level-digit{width:auto;pointer-events:none}.level-record-star{position:absolute;z-index:1;display:block;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.level-record-star-inactive{filter:grayscale(1);opacity:1}.level-medallion-button:disabled,.levels-return-button:disabled{cursor:not-allowed;filter:grayscale(1) opacity(.48)}.level-medallion-button-planned:disabled{filter:none}.level-medallion-button-planned .level-medallion-image,.level-medallion-button-planned .level-digit-number{filter:grayscale(1) opacity(.25)}.level-planned-label{position:absolute;z-index:2;inset:auto 0 9%;color:#f8df8e;font-family:system-ui,sans-serif;font-size:16px;font-weight:800;pointer-events:none;text-shadow:0 1px 2px #102114}.levels-return-button,.levels-settings-button{margin:0;padding:0;border:0;background:transparent;cursor:pointer}.levels-grid-message{align-self:center;grid-column:1 / -1;margin:0;color:#f8df8e;font:700 24px Georgia,serif;text-align:center}.game-screen{position:relative;isolation:isolate;width:100%;height:100%;overflow:hidden;background:#102116;color:#f8df8e}.game-background,.game-logo,.game-board-shell,.game-lives,.game-score,.game-stars,.game-bilbo-counter,.game-level,.game-icon-button,.game-icon-count{position:absolute}.game-background{z-index:2;pointer-events:none}.game-logo{z-index:3;pointer-events:none}.game-logo .asset-decoration{object-fit:contain}.game-lives,.game-score,.game-stars,.game-bilbo-counter,.game-level,.game-icon-button{z-index:3}.game-lives{display:flex;align-items:flex-start;justify-content:flex-start;overflow:visible;pointer-events:none}.game-stars{display:flex;align-items:center;justify-content:center;pointer-events:none}.game-bilbo-counter{pointer-events:none}.game-bilbo-counter-icon,.game-bilbo-counter-number{position:absolute;pointer-events:none}.game-bilbo-counter-icon{display:block;object-fit:contain}.game-bilbo-counter-number{display:flex;align-items:center;height:auto}.game-heart,.game-star{flex:none;min-width:0;object-fit:contain}.game-hud-asset-muted{filter:grayscale(1) opacity(.32)}.game-score,.game-level{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#f8df8e;pointer-events:none;text-shadow:0 2px 2px #102114}.game-hud-label{font-family:Georgia,serif;font-weight:700;line-height:1;white-space:nowrap}.game-bitmap-number{display:flex;align-items:center;justify-content:center;min-width:0;height:100%;pointer-events:none}.game-bitmap-digit{width:auto;max-width:100%;object-fit:contain}.game-board-shell{z-index:1;overflow:hidden;isolation:isolate;background:transparent}.game-board{position:relative;z-index:1;display:grid;width:100%;height:100%;gap:2px;padding:6px;touch-action:none;-webkit-user-select:none;user-select:none}.board-cell{position:relative;min-width:0;min-height:0;margin:0;padding:0;overflow:hidden;background-color:var(--zone-color);background-image:linear-gradient(#fff7d82e,#2c1c0e2e),var(--board-stone-texture);background-position:center;background-size:cover;background-blend-mode:soft-light,multiply;box-shadow:inset 0 0 0 1px #ffeab529,inset 0 -6px 10px #2c190b29;cursor:pointer}.board-cell:hover:not(:disabled){filter:brightness(1.08)}.board-cell:focus-visible,.game-icon-button:focus-visible{outline:4px solid oklch(.95 .14 90);outline-offset:-4px}.board-cell:disabled{cursor:default}.board-cell-error{box-shadow:inset 0 0 0 3px #d72630}.board-marker,.board-bilbo{position:absolute;display:block;width:var(--cell-marker-size);height:var(--cell-marker-size);inset:calc((100% - var(--cell-marker-size)) / 2);pointer-events:none;object-fit:contain}.game-icon-button{margin:0;padding:0;border:0;background:transparent;cursor:pointer;overflow:hidden}.game-icon-button:disabled{cursor:not-allowed;filter:grayscale(1) opacity(.5)}.game-icon-count{z-index:3;display:grid;place-items:center;color:#19311e;font-family:Georgia,serif;font-weight:900;line-height:1;pointer-events:none;text-align:center;text-shadow:0 1px 0 rgb(255 244 198 / .55)}.game-loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:120px;color:#f8df8e;font:700 32px Georgia,serif;text-align:center}.victory-overlay{position:absolute;z-index:4;inset:0;overflow:hidden;background:#0a180fb8;color:#f8df8e}.victory-frame,.victory-stars,.victory-action-button,.victory-crowned-bilbo,.victory-praise,[data-layout-element=victory-title],[data-layout-element=celebration-title],[data-layout-element=victory-score]{position:absolute}.victory-frame{z-index:1}.victory-frame-art{position:absolute;inset:0}[data-layout-element=victory-title],[data-layout-element=celebration-title]{z-index:2;display:grid;place-items:center;margin:0;color:#ffe39a;font-family:Georgia,serif;font-weight:700;text-align:center;text-shadow:0 3px 2px #102114}.victory-score-final{z-index:2;display:grid;place-items:center;margin:0;font-family:Georgia,serif;font-weight:700;text-align:center}.victory-score-final strong{color:#ffe39a}.victory-stars{z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;pointer-events:none}.victory-star{align-self:center;justify-self:center;object-fit:contain}.victory-star-middle{align-self:center}.victory-star-lit{animation:victory-star-light .36s cubic-bezier(.16,1,.3,1) both;filter:drop-shadow(0 0 13px rgb(255 220 98 / .8))}@keyframes victory-star-light{0%{opacity:.35;transform:scale(.52) rotate(-12deg)}72%{transform:scale(1.13) rotate(4deg)}to{opacity:1;transform:scale(1) rotate(0)}}.victory-action-button{z-index:2;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.victory-action-button:focus-visible{outline:4px solid #ffe39a;outline-offset:4px}.victory-action-button:disabled{cursor:not-allowed;filter:grayscale(1) opacity(.45)}.victory-crowned-bilbo{z-index:2;object-fit:contain;pointer-events:none}.victory-praise{z-index:2;display:grid;place-items:center;margin:0;color:#f8df8e;font-family:Georgia,serif;font-weight:700;text-align:center}.confetti-rain{z-index:3;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-36px;left:var(--left);display:block;width:8px;height:12px;background:var(--confetti-color);opacity:.84;animation:confetti-fall var(--duration) cubic-bezier(.25,.45,.45,1) var(--delay) infinite}@keyframes confetti-fall{0%{transform:translate3d(0,-44px,0) rotate(0)}45%{transform:translate3d(calc(var(--drift) * -.45),calc(var(--confetti-fall-distance) * .45),0) rotate(240deg)}to{transform:translate3d(var(--drift),var(--confetti-fall-distance),0) rotate(520deg)}}@media(prefers-reduced-motion:reduce){.confetti-piece{animation:none;opacity:.5}}.failure-overlay{position:absolute;z-index:4;inset:0;overflow:hidden;background:#0c1712c7;color:#f8df8e}.failure-frame,.failure-bilbo,.failure-title,.failure-text,.failure-action-button{position:absolute}.failure-frame{z-index:1;pointer-events:none}.failure-frame-art{position:absolute;inset:0}.failure-bilbo{z-index:2;object-fit:contain;pointer-events:none}.failure-title,.failure-text{z-index:2;display:grid;place-items:center;margin:0;text-align:center}.failure-title{color:#ffe39a;font-family:Georgia,serif;font-weight:700;text-shadow:0 3px 2px #102114}.failure-text{color:#f8df8e;font-family:Georgia,serif;font-weight:700}.failure-action-button{z-index:2;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.failure-action-button:focus-visible{outline:4px solid #ffe39a;outline-offset:4px}.tutorial-overlay,.pause-overlay,.settings-overlay{position:absolute;z-index:5;inset:0;overflow:hidden;background:#0a180fb8;color:#f8df8e}.tutorial-frame,.tutorial-progress,.tutorial-illustration,.tutorial-title,.tutorial-text,.tutorial-next-button,.pause-frame,.pause-title,.pause-action-button,.pause-audio-button,.pause-volume-control,.pause-close,.settings-frame,.settings-title,.settings-close,.settings-audio-button,.settings-volume-control{position:absolute}.tutorial-frame,.pause-frame,.settings-frame{z-index:1;pointer-events:none}.tutorial-progress,.tutorial-title,.tutorial-text,.tutorial-illustration,.tutorial-next-button,.pause-title,.pause-action-button,.pause-audio-button,.pause-volume-control,.pause-close,.settings-title,.settings-close,.settings-audio-button,.settings-volume-control{z-index:2}.tutorial-progress,.tutorial-title,.tutorial-text,.pause-title,.settings-title{display:grid;place-items:center;margin:0;text-align:center}.tutorial-progress{color:#f8df8ee0;font-family:Georgia,serif;font-weight:700}.tutorial-illustration{object-fit:contain}.tutorial-title,.pause-title{color:#ffe39a;font-family:Georgia,serif;font-weight:700;text-shadow:0 3px 2px #102114}.tutorial-text{font-family:Georgia,serif;font-weight:700}.tutorial-next-button,.pause-action-button,.pause-audio-button,.pause-close,.settings-close,.settings-audio-button{margin:0;padding:0;border:0;background:transparent;cursor:pointer}.pause-audio-muted,.settings-audio-muted{filter:grayscale(1) opacity(.45)}.pause-volume-control,.settings-volume-control{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;column-gap:12px;color:#f8df8e;font:700 22px Georgia,serif}.pause-volume-label,.settings-volume-label{pointer-events:none}.pause-volume-control input,.settings-volume-control input{width:100%;margin:0;accent-color:#f8df8e}.tutorial-next-button:focus-visible{outline:4px solid #ffe39a;outline-offset:4px}.devtools-panel{position:fixed;z-index:20;top:0;right:0;width:min(25rem,100vw);height:100dvh;overflow:auto;overscroll-behavior:contain;padding:1rem 1rem 2rem;background:#fff;border-left:1px solid #7a827d;color:#17211c}.devtools-heading,.devtools-actions{display:flex;gap:.5rem;align-items:center;justify-content:space-between}.devtools-heading{margin-bottom:1rem}.devtools-panel button,.devtools-panel input,.devtools-panel select,.devtools-panel textarea{border:1px solid #607066;border-radius:.25rem;background:#fff;color:inherit}.devtools-panel button{min-height:2.75rem;padding:.38rem .55rem;cursor:pointer}.devtools-panel button:focus-visible,.devtools-panel input:focus-visible,.devtools-panel select:focus-visible{outline:3px solid #135f43;outline-offset:2px}.devtools-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0 0 1rem}.devtools-tab{font-weight:800}.devtools-tab-active{border-color:#135f43!important;background:#dceee1!important;color:#103d2b!important}.devtools-tab-heading{margin:0 0 .8rem;font-size:1rem}.devtools-field{display:grid;gap:.25rem;margin:.65rem 0;font-size:.875rem}.devtools-field input,.devtools-field select,.devtools-field textarea{width:100%;padding:.35rem}.devtools-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .5rem}.devtools-fields .devtools-field{margin:.3rem 0}.devtools-source{font-size:.875rem}.devtools-save-error{margin:.75rem 0;padding:.65rem;border:1px solid #9e3325;background:#fff0ed;color:#721c12;font-size:.875rem;font-weight:700}.devtools-inspection{margin:1rem 0;padding:.75rem;background:#eef3ef}.devtools-inspection dl{margin:.5rem 0 0}.devtools-inspection dl>div{margin:.4rem 0}.devtools-inspection dt{font-size:.75rem;font-weight:700}.devtools-inspection dd{margin:.1rem 0 0;overflow-wrap:anywhere;font-size:.75rem}.devtools-check{display:flex;gap:.5rem;align-items:center;margin:.75rem 0;font-size:.875rem}.devtools-check input{width:1rem;height:1rem}.developer-tools{display:grid;gap:.85rem;padding-bottom:1rem}.developer-tools-intro{margin:0;padding:.7rem;border-left:4px solid #135f43;background:#eef6ef;font-size:.82rem;line-height:1.35}.developer-tools-section{margin:0;padding:.75rem;border:1px solid #ccd6cf;border-radius:.45rem;background:#fbfdfb}.developer-tools-section-heading{display:flex;gap:.5rem;align-items:center;justify-content:space-between;margin-bottom:.65rem}.developer-tools-section-heading h2{margin:0;font-size:.98rem}.developer-badge{flex:none;padding:.2rem .36rem;border-radius:.2rem;font-size:.63rem;font-weight:900;letter-spacing:.04em}.developer-badge-temporary{background:#e7eef9;color:#1d4d7c}.developer-badge-persistent{background:#fbe7e3;color:#862f20}.developer-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.developer-action{width:100%;min-height:2.75rem;font-size:.8rem;font-weight:700;line-height:1.12}.developer-action:disabled{cursor:not-allowed;opacity:.52}.developer-action-danger{border-color:#9e3325!important;background:#fff1ee!important;color:#7f2117!important}.developer-state{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.48rem .75rem;margin:0;font-size:.79rem}.developer-state div{min-width:0}.developer-state dt{color:#4a584f;font-weight:700}.developer-state dd{margin:.08rem 0 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.developer-temporary-notice,.developer-persistent-notice{margin:.7rem 0 0;padding:.55rem;font-size:.78rem;font-weight:700;line-height:1.3}.developer-temporary-notice{background:#e7eef9;color:#1d4d7c}.developer-persistent-notice{background:#fff1ee;color:#7f2117}@media(max-width:420px){.devtools-panel{padding-inline:.75rem}.developer-actions-grid{grid-template-columns:1fr}}
