/* Calcula's interface uses CSS layout at readable sizes, not scaled UI sprites. */
.calcula-shell{--ink:#173f50;--line:#b2d4d5;--glass:#f3fcf9;color:var(--ink);font-family:'Nunito','Segoe UI',sans-serif;position:relative;container-type:inline-size}
.calcula-shell *{box-sizing:border-box}.calcula-shell button,.calcula-shell select,.calcula-shell input{font:inherit}.calcula-shell button{min-height:44px;border:1px solid #9fc9cc;border-radius:10px;padding:10px 14px;background:linear-gradient(#fff,#dfefec);color:var(--ink);font-weight:800;cursor:pointer;touch-action:manipulation}.calcula-shell button:hover{background:#d9f3ed}.calcula-shell button:focus-visible,.calcula-shell select:focus-visible,.calcula-shell summary:focus-visible{outline:3px solid #087fa4;outline-offset:2px}.calcula-shell button:disabled{opacity:.55;cursor:default}.calcula-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 0 12px;font-size:13px}.calcula-toolbar>strong{letter-spacing:.1em;font-size:11px;color:#537c83}.calcula-toolbar>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calcula-toolbar button{min-height:38px;font-size:12px;padding:7px 12px}.calcula-toolbar select{background:white;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px;font-size:13px}.calcula-shell .game-container{position:relative!important;margin:0!important;max-width:none!important;width:100%!important;height:clamp(420px,62svh,600px);overflow:hidden;border-radius:15px;background:#183d3e;isolation:isolate}.calcula-shell .game-canvas{display:block;width:100%!important;height:100%!important;max-width:none!important;image-rendering:pixelated;touch-action:pan-y}.calcula-shell .Hud{inset:12px;z-index:1;width:auto;height:auto}.calcula-shell .Combatant{position:absolute;transform:none!important;width:min(230px,43%);height:auto;background:linear-gradient(145deg,#f5fffcf5,#dcedebf5);border:1px solid #8dbbb8;border-radius:12px;padding:12px;color:var(--ink);font-size:12px;box-shadow:0 4px 14px #123d3826;opacity:1!important}.calcula-shell .Combatant[data-team=player]{top:0;left:0}.calcula-shell .Combatant[data-team=enemy]{top:0;left:auto;right:0}.Combatant header{display:flex;gap:8px;align-items:center;min-width:0;margin-bottom:8px}.Combatant header strong{font-size:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.Combatant header small{font-size:9px;letter-spacing:.1em;color:#517a7e}.Combatant .stat-line{display:flex;justify-content:space-between;font-size:11px;margin:4px 0}.Combatant .stat-track{height:7px;border-radius:5px;background:#bfd6d5;overflow:hidden}.Combatant .stat-track i{display:block;height:100%;transition:width .2s}.Combatant .health-fill{background:linear-gradient(#71cba0,#268f68)}.Combatant .shield-fill{background:linear-gradient(#7acfe4,#2991ad)}.Combatant footer{display:flex;justify-content:space-between;gap:8px;font-size:10px;margin-top:8px;color:#577c80}.calcula-shell .Battle{z-index:5;inset:0;transform:none;width:100%;height:100%;background-position:center;overflow:hidden}.calcula-shell .Battle>.Combatant{top:14px}.calcula-shell .Battle>.Combatant[data-team=player]{left:14px}.calcula-shell .Battle>.Combatant[data-team=enemy]{right:14px}.Battle_phase{position:absolute;top:165px;left:0;right:0;text-align:center;color:#fff;font-size:12px;font-weight:800;text-shadow:0 1px 4px #000;background:#183c4480;padding:7px}.calcula-shell .Battle_actor{top:37%;transform:scale(3)}.calcula-shell .Battle_actor-player{left:24%}.calcula-shell .Battle_actor-enemy{right:24%}.calcula-shell .battle-controls{position:absolute;bottom:0;left:0;right:0;max-height:48%;overflow-y:auto;padding:14px 18px;background:linear-gradient(#f4fffcfa,#deeeeb);border-top:1px solid #9fc4c0;z-index:4}.calcula-shell .battle-controls h2{font-size:17px;margin:0 0 4px;color:var(--ink)}.calcula-shell .battle-guide{margin:0 0 10px;font-size:12px;line-height:1.5;color:#4f727a}.calcula-shell .KeyboardMenu{position:relative;inset:auto;transform:none!important;width:100%;height:auto;max-height:none;background:transparent;border:0;padding:0;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calcula-shell .KeyboardMenu .menu-option{position:relative;min-width:0}.calcula-shell .KeyboardMenu button{position:relative;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:4px 10px;margin:0;width:100%;height:auto;min-height:52px;text-align:left;font-size:14px}.KeyboardMenu button strong{flex:1}.KeyboardMenu button small{display:block;flex-basis:100%;font-size:11px;font-weight:500;line-height:1.4}.KeyboardMenu .menu-count{font-size:10px;color:#507c7e}.calcula-shell .battle-controls .DescriptionBox{display:none}.calcula-shell .PauseMenu{z-index:7;inset:16px;transform:none!important;width:auto;max-width:none;max-height:none;padding:20px;background:linear-gradient(145deg,#f8fffc,#dcefed);border:1px solid var(--line);border-radius:12px;overflow-y:auto}.calcula-shell .PauseMenu h2{font-size:23px;color:var(--ink);border:0;text-align:left;padding:0;margin:0 0 5px}.menu-intro{font-size:13px;line-height:1.6;margin:0 0 15px}.calcula-shell .PauseMenu .KeyboardMenu{left:auto;top:auto;max-width:none}.calcula-shell .DescriptionBox{position:absolute;inset:auto 12px 12px;transform:none!important;width:auto;padding:12px;background:#f1fffb;border:1px solid var(--line);border-radius:9px;z-index:8}.calcula-shell .DescriptionBox p{font-size:13px}.calcula-shell>.game-container>.DescriptionBox{display:none}.calcula-shell .TextMessage{position:absolute!important;inset:auto 12px 12px!important;transform:none!important;width:auto!important;height:auto;min-height:95px;padding:16px!important;background:linear-gradient(#fafffd,#deefea)!important;border:1px solid #87b5ad!important;border-radius:12px;z-index:20!important;display:flex;align-items:center;gap:18px;color:var(--ink);box-shadow:0 6px 24px #183e3930}.calcula-shell .TextMessage_p{position:static!important;font:600 15px/1.6 'Nunito','Segoe UI',sans-serif!important;margin:0!important;flex:1}.calcula-shell .TextMessage_button{position:static!important;flex:none;width:auto!important;height:auto!important;font-size:13px!important;background:#e7f7ef!important;color:var(--ink)!important}.calcula-shell .TitleScreen{z-index:10;inset:0;background:radial-gradient(ellipse at 65% 15%,#316c74,transparent 75%),linear-gradient(150deg,#102d3c,#1f534c);image-rendering:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center;gap:20px}.title-intro small{color:#8dd4be;letter-spacing:.2em;font-weight:800;font-size:11px}.title-intro h2{font-family:'Cinzel',serif;font-size:clamp(46px,9cqw,86px);letter-spacing:.03em;color:#f0fff3;margin:8px 0;text-shadow:0 3px 12px #0004}.title-intro p{color:#b6d9d4;font-size:15px;margin:0}.calcula-shell .TitleScreen .KeyboardMenu{position:static!important;transform:none!important;width:min(330px,100%);display:flex;flex-direction:column;max-height:45%;overflow-y:auto}.calcula-shell .TitleScreen button{color:#173f50!important;background:linear-gradient(#faffef,#b7ded0)!important;justify-content:center;text-align:center;min-height:52px}.calcula-shell .TitleScreen .DescriptionBox{position:static;transform:none;width:auto;background:none;border:0;color:#b6d9d4;padding:0;order:3}.calcula-shell .TitleScreen .DescriptionBox p{font-size:13px}.calcula-shell .Problem{z-index:12;inset:8px;transform:none!important;width:auto;height:auto;box-shadow:none;border:1px solid #a4ccca;border-radius:12px;padding:18px;background:#f9fffc;color:var(--ink);overflow:auto;overscroll-behavior:contain}.calcula-shell .Problem-text,.calcula-shell .Problem-text-advanced{transform:none!important;width:100%!important;max-width:100%!important;padding:0;font-size:16px}.calcula-shell .Problem-text-prompt,.calcula-shell .Problem-text-content{position:static!important;max-width:100%;font-size:16px;line-height:1.7;overflow-x:auto}.calcula-shell .Problem-text h2{font-size:23px}.calcula-shell .User-input{position:static!important;transform:none!important;display:grid;gap:10px;width:100%!important;margin:16px 0;padding:0}.calcula-shell .User-input label{display:flex;gap:10px;align-items:center;min-height:48px;padding:10px;background:#edf8f3;border:1px solid var(--line);border-radius:9px;font-size:16px!important}.calcula-shell .User-input input[type=text]{min-width:0;width:min(260px,100%);font-size:16px;border:1px solid #8db9bb;padding:10px;border-radius:8px;background:white;color:var(--ink)}.calcula-shell .User-input input[type=radio]{width:20px;height:20px;flex:none}.calcula-shell .User-input-checkButton{position:static!important;transform:none!important;width:auto!important;font-size:15px!important;min-height:44px}.calcula-dock{display:flex;gap:20px;align-items:center;padding:16px 0 10px}.movement-pad{flex:none;display:grid;grid-template:repeat(3,44px)/repeat(3,44px);gap:4px}.movement-pad button{padding:0;font-size:23px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.movement-pad [data-direction=up]{grid-area:1/2}.movement-pad [data-direction=left]{grid-area:2/1}.movement-pad [data-direction=right]{grid-area:2/3}.movement-pad [data-direction=down]{grid-area:3/2}.movement-pad span{grid-area:2/2;display:grid;place-items:center;font-size:9px;letter-spacing:.05em;color:#5d8589}.movement-pad .held{background:#8bd4c0!important}.adventure-actions{flex:1;min-width:0}.adventure-actions>div{display:flex;flex-wrap:wrap;gap:8px}.adventure-actions button small{font-size:10px;margin-left:6px;color:#66878d}.adventure-hint{font-size:13px;line-height:1.6;margin:0 0 10px;color:#4b747a}.adventure-help{padding:12px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.7}.adventure-help summary{cursor:pointer;font-weight:800}.calcula-shell.is-expanded{position:fixed;inset:0;z-index:10000;background:#eaf7f2;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;flex-direction:column;overflow-y:auto}.calcula-shell.is-expanded .game-container{flex:1;min-height:260px;height:auto}.calcula-shell.is-expanded .adventure-help{display:none}.calcula-shell.is-expanded .calcula-dock{flex:none}.calcula-expanded{overflow:hidden}
@container(max-width:600px){.calcula-toolbar{gap:6px}.calcula-toolbar>strong{display:none}.calcula-toolbar>div{width:100%;justify-content:space-between}.calcula-toolbar label{font-size:0}.calcula-toolbar select{font-size:12px}.calcula-shell .game-container{height:430px;border-radius:10px}.calcula-shell .Hud{inset:8px}.calcula-shell .Combatant{width:46%;padding:9px;border-radius:9px}.Combatant header{display:block;margin-bottom:5px}.Combatant header strong{display:block;font-size:13px}.Combatant header small{font-size:8px}.Combatant .stat-line{font-size:10px}.Combatant footer{font-size:8px;gap:3px}.calcula-shell .Battle>.Combatant{top:8px}.calcula-shell .Battle>.Combatant[data-team=player]{left:8px}.calcula-shell .Battle>.Combatant[data-team=enemy]{right:8px}.Battle_phase{top:148px;font-size:10px;padding:5px}.calcula-shell .Battle_actor{top:40%;transform:scale(2)}.calcula-shell .battle-controls{max-height:49%;padding:10px}.calcula-shell .battle-controls h2{font-size:14px}.calcula-shell .battle-guide{font-size:11px}.calcula-shell .KeyboardMenu{gap:6px}.calcula-shell .KeyboardMenu button{font-size:13px;padding:9px;min-height:50px}.KeyboardMenu button small{font-size:10px}.calcula-shell .TextMessage{padding:12px!important;gap:10px;flex-direction:column;align-items:stretch}.calcula-shell .TextMessage_p{font-size:14px!important}.calcula-shell .PauseMenu{inset:8px;padding:14px}.calcula-dock{gap:12px;padding-top:12px}.movement-pad{grid-template:repeat(3,44px)/repeat(3,44px);gap:3px}.movement-pad button{min-height:44px}.adventure-actions>div{gap:5px;display:grid;grid-template-columns:1fr 1fr}.adventure-actions button{padding:8px 6px;font-size:12px}.adventure-actions button:first-child{grid-column:1/-1;background:linear-gradient(#bce9d7,#93cdbb)}.adventure-actions button small{display:none}.adventure-hint{font-size:11px;line-height:1.5}.calcula-shell .Problem{padding:12px}.calcula-shell .User-input label{flex-wrap:wrap}.calcula-shell .is-expanded .game-container{height:auto}}
@media(prefers-reduced-motion:reduce){.calcula-shell *{scroll-behavior:auto!important;transition:none!important}.calcula-shell .battle-damage-blink{animation:none}}

.calcula-shell .Problem-text{position:relative!important;margin:0!important}.calcula-shell.is-expanded .calculator{z-index:30}

.calcula-shell .TextMessage{pointer-events:auto}.calcula-shell .calculator{z-index:50}

.calcula-shell .Combatant.nearby-card{top:12px;right:12px;left:auto;pointer-events:none}.calcula-shell .game-container:has(.Battle)>.nearby-card,.calcula-shell .game-container:has(.Battle)>.Hud{visibility:hidden}

.battle-control-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;position:sticky;top:-14px;z-index:2;background:#f0fbf6;padding:5px 0}.calcula-shell .battle-control-heading h2{margin:0}.calcula-shell .battle-leave{font-size:11px;padding:7px 10px;min-height:44px;flex:none}

/* Sheet pixels never resize with the responsive game stage. Only actors scale. */
.calcula-shell .Battle_hero_img,.calcula-shell .Battle_enemy_img,.calcula-shell .Spell_img{display:block!important;max-width:none!important;max-height:none!important;min-width:0!important;aspect-ratio:auto!important;image-rendering:pixelated;transform-origin:0 0;animation:none!important}

/* Nearest-neighbor rendering for every raster image and background in Calcula. */
.calcula-shell,.calcula-shell *{image-rendering:pixelated!important}
