.island-host{position:fixed;inset:0;z-index:10000;background:#10364a;display:flex;flex-direction:column;direction:rtl}.island-host-bar{min-height:48px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px max(12px,env(safe-area-inset-right));background:#102b3e;color:white}.island-host-bar button{min-height:44px;padding:6px 16px;background:#ffd66d;color:#153348;border:0;border-radius:12px;font:inherit;font-weight:bold}.island-host iframe{width:100%;flex:1;min-height:0;border:0}.island-host-bar span{margin-inline-start:auto}.island-host button:focus-visible,.fantasy-editor :focus-visible{outline:3px solid #ff7157;outline-offset:3px}
.fantasy-editor{margin:20px 0 28px;background:#102e44;color:#eafaff;border:1px solid #437785;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;text-align:right}.fantasy-stage{position:relative;min-height:480px;background:radial-gradient(ellipse at 50% 78%,#44b8b980,transparent 32%),radial-gradient(ellipse at 50% 35%,#286889,#0b2439 78%)}.fantasy-stage canvas{display:block;width:100%;height:480px;touch-action:pan-y}.fantasy-tag{position:absolute;top:18px;right:20px;color:#ffe3a2;font-size:13px;letter-spacing:.5px}.fantasy-status{position:absolute;bottom:48px;inset-inline:12px;text-align:center;font-size:12px;pointer-events:none}.fantasy-rotate{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:12px}.fantasy-editor button{border:1px solid #678a9a;border-radius:12px;padding:8px 12px;min-height:44px;font:inherit;background:#23495f;color:#fff;cursor:pointer}.fantasy-options{padding:26px}.fantasy-options h2{font-size:28px;color:#ffe0a1;margin:0 0 10px}.fantasy-options p,.fantasy-options small{color:#c7dfe8}.fantasy-presets{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}.fantasy-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.fantasy-fields label{display:flex;flex-direction:column;gap:5px;font-size:13px}.fantasy-fields select,.fantasy-fields input{width:100%;min-height:44px;box-sizing:border-box;border:1px solid #708a98;border-radius:8px;background:#163b52;color:#fff;padding:4px;font:inherit}.fantasy-fields select{padding:8px}.fantasy-fields input[type=color]{padding:3px}
@media(max-width:700px){.fantasy-editor{grid-template-columns:1fr}.fantasy-stage{min-height:380px}.fantasy-stage canvas{height:380px}.fantasy-options{padding:20px}.fantasy-options h2{font-size:25px}.island-host-bar{gap:6px;font-size:13px}}@media(prefers-reduced-motion:reduce){.fantasy-editor *{scroll-behavior:auto}}
.fantasy-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:420px;overflow:auto;padding:5px}.fantasy-presets button{display:flex;flex-direction:column;align-items:center;padding:6px;min-width:0;font-size:13px}.fantasy-presets svg{width:100%;max-width:92px;height:94px}.fantasy-presets [aria-pressed=true]{border:3px solid #ffe0a1;background:#385879}.fantasy-options{min-width:0}.fantasy-stage{position:sticky;top:0;align-self:start}.fantasy-editor[hidden]{display:none}@media(max-width:700px){.fantasy-stage{position:relative}.fantasy-presets{max-height:330px}}
/* Keep the live preview and every editor control in the same viewport. */
.fantasy-editor{height:clamp(340px,calc(100dvh - 170px),780px);grid-template-columns:minmax(0,1.1fr) minmax(290px,1fr)}
.fantasy-stage{position:relative;top:auto;align-self:stretch;min-height:0;height:100%;overflow:hidden}
.fantasy-stage canvas{height:100%;touch-action:none}
.fantasy-options{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:18px;scrollbar-gutter:stable}
.fantasy-options h2{font-size:24px}.fantasy-options p{font-size:16px;line-height:1.5;margin:8px 0}
.fantasy-presets{max-height:none;overflow:visible}.fantasy-presets svg{height:76px}
.fantasy-fields label{font-size:16px}.fantasy-fields select{font-size:16px}
@media(max-width:700px){.fantasy-editor{height:calc(100dvh - 150px);min-height:350px;grid-template-columns:1fr;grid-template-rows:42% minmax(0,1fr)}.fantasy-stage{min-height:0}.fantasy-stage canvas{height:100%}.fantasy-tag{top:8px;font-size:12px}.fantasy-status{bottom:45px;font-size:11px}.fantasy-options{padding:12px}.fantasy-presets{max-height:none;grid-template-columns:repeat(3,minmax(0,1fr))}.fantasy-fields{gap:10px}.fantasy-presets svg{height:66px}}
@media(max-height:520px) and (min-width:600px){.fantasy-editor{height:calc(100dvh - 130px);min-height:260px;grid-template-columns:1fr 1.1fr;grid-template-rows:1fr}}
