html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#fff5df;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-text-size-adjust:100%}body{position:fixed;top:0;right:0;bottom:0;left:0}#game-container,canvas{touch-action:none}#game-container{width:100%;height:100%}canvas{display:block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;box-sizing:border-box;background:#fff5df;color:#245c59;font-family:sans-serif;font-size:clamp(24px,4vw,48px);line-height:1.3;text-align:center;z-index:10}.overlay h1{margin:0;font-size:1.5em}.overlay p{margin:0;max-width:24em}.overlay-muted{opacity:.75;font-size:.8em}.overlay-install{display:flex}.overlay-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}.overlay button{min-height:64px;min-width:240px;padding:0 32px;border:0;border-radius:16px;background:#54beb4;color:#fff5df;font:inherit;cursor:pointer}.overlay-error{display:flex;z-index:18}.overlay-save-refused{display:flex;z-index:10}.overlay-save-refused button{min-height:96px}.overlay-save-failed{display:flex;z-index:10}.overlay-save-failed button{min-height:96px}.overlay-save-failed .overlay-secondary{background:#fff0ca;color:#245c59;border:2px solid #C0A363}.overlay-rotate{z-index:20}@media (orientation: portrait){.overlay-rotate{display:flex}}.rotate-icon{width:72px;height:120px;border:8px solid #245C59;border-radius:12px;animation:rotate-hint 2s ease-in-out infinite}@keyframes rotate-hint{0%,30%{transform:rotate(0)}70%,to{transform:rotate(90deg)}}@media (prefers-reduced-motion: reduce){.rotate-icon{animation:none;transform:rotate(90deg)}}:root{--parent-backdrop: rgba(36, 92, 89, .55);--parent-paper: #FFF5DF;--parent-ink: #245C59;--parent-accent: #54BEB4;--parent-accent-ink: #FFF5DF;--parent-muted: #FFF0CA;--parent-border: #C0A363;--parent-focus: #F1CE6B}.overlay-parent{display:flex;justify-content:flex-start;background:var(--parent-backdrop);z-index:15;overflow-y:auto}.parent-dialog{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(100%,720px);margin-block:auto;padding:24px;box-sizing:border-box;border:4px solid var(--parent-border);border-radius:24px;background:var(--parent-paper);color:var(--parent-ink);font-size:clamp(20px,2.4vw,32px);touch-action:manipulation}.parent-dialog h1,.parent-dialog h2{margin:0;font-size:1.3em}.parent-dialog h2{font-size:1em}.parent-dialog p{margin:0}.parent-readout{min-width:6em;min-height:1.6em;padding:4px 16px;border:3px solid var(--parent-border);border-radius:12px;background:#fff;font-weight:700;letter-spacing:.1em}.parent-message{min-height:1.4em;font-size:.8em}.parent-keys{display:grid;grid-template-columns:repeat(3,minmax(64px,96px));gap:12px}.parent-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.parent-choices-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.parent-choices-stages .parent-tag{display:block;margin-left:0}.parent-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.overlay-parent .parent-dialog button{min-width:64px;min-height:64px;padding:0 20px;border:4px solid var(--parent-border);border-radius:16px;background:var(--parent-muted);color:var(--parent-ink);font:inherit;font-weight:700;cursor:pointer}.overlay-parent .parent-choices-stages button{padding:0 12px;font-size:.85em}.overlay-parent .parent-dialog button.parent-primary,.overlay-parent .parent-dialog button[aria-pressed=true]{border-color:var(--parent-ink);background:var(--parent-accent);color:var(--parent-accent-ink)}.overlay-parent .parent-dialog button:disabled{opacity:.45;cursor:default}.overlay-parent .parent-dialog button:focus-visible{outline:6px solid var(--parent-focus);outline-offset:2px}.parent-tag{margin-left:.5em;font-size:.75em;font-weight:400}.parent-dialog:has(>.parent-actions-sticky){max-height:100%;min-height:0;overflow-y:auto;padding-bottom:0}.parent-actions-sticky{position:sticky;bottom:0;width:100%;padding-block:12px 24px;background:var(--parent-paper);box-shadow:0 -8px 8px -8px var(--parent-border)}.parent-save,.parent-offline,.parent-art{width:100%;text-align:left}.parent-save h2,.parent-offline h2,.parent-art h2{margin-bottom:8px}.parent-progress{width:100%;text-align:left}.parent-progress h2{margin-bottom:8px}.parent-progress ul{margin:8px 0 0;padding-left:1.2em}.parent-progress li{margin-bottom:8px}.parent-progress-heading,.parent-progress-skill{font-weight:700}.parent-progress-examples{font-size:.8em;white-space:normal;overflow-wrap:anywhere}
