*{box-sizing:border-box}body{margin:0;background:#080f22;color:#eef5ff;font:16px system-ui,sans-serif}button,input,select{font:inherit}button{border:1px solid #536584;background:#152741;color:white;padding:13px 18px;border-radius:12px;cursor:pointer;touch-action:manipulation}button:active{transform:scale(.96)}button:focus-visible{outline:3px solid #ffdf67}button.primary{background:var(--accent);color:#081021;font-weight:800;border:0}main{max-width:860px;margin:auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between;gap:10px}h1{font-size:clamp(24px,5vw,42px);margin:14px 0}h2{margin:10px 0}.hero{width:100%;height:clamp(160px,29vw,290px);object-fit:cover;border-radius:18px;display:block;background:#1c2940}.panel{background:#111d32;border:1px solid #344666;border-radius:18px;padding:18px;margin:14px 0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>*{flex:1}.row button{min-width:100px}label{display:block;margin:12px 0}input,select{width:100%;padding:12px;background:#081021;color:white;border:1px solid #60738f;border-radius:8px}.muted{color:#b1c2da;font-size:14px;line-height:1.6}p{line-height:1.55}.chars button{display:flex;align-items:center;gap:12px}.portrait{width:60px;height:68px;background-image:url(art.png);background-size:210px 100px;background-position:10% 50%;border-radius:9px}.portrait.right{background-position:90% 50%}.selected{outline:3px solid var(--accent)}canvas{display:block;width:100%;height:auto;background:#081020;touch-action:none;border:1px solid #536584;border-radius:12px}.hud{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-weight:700;gap:10px}.control{display:flex;gap:10px;margin:12px 0}.control button{flex:1;min-height:60px}.overlay{position:fixed;inset:0;background:#020817d9;display:grid;place-items:center;z-index:5;padding:16px}.overlay .panel{width:min(500px,100%);text-align:center}.count{font-size:80px;font-weight:900;color:var(--accent)}#notice{min-height:24px;color:#ffdd77}textarea{width:100%;min-height:90px;background:#091324;color:white;font:14px monospace;border:1px solid #536584;padding:10px}.duel-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.duel-actions button{padding:12px 6px;font-size:14px}.duel-log{min-height:65px;line-height:1.6}.hidden{display:none!important}@media(max-width:450px){main{padding:10px}.panel{padding:14px}.control{gap:7px}button{padding:12px 10px}}
.control button{touch-action:none}@media(orientation:landscape) and (max-height:600px){canvas{width:min(100%,77vh);height:auto;max-height:none;margin:auto}#message{min-height:24px;font-size:14px}.control{margin:6px 0}.control button{min-height:44px}#app>p{display:none}}
#message{white-space:pre-line;line-height:1.65;min-height:90px}
@media(orientation:landscape) and (max-height:600px){main{padding:6px 10px}header{height:40px}#app.playing:not(.result-state){display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 12px}#app.playing .hud{grid-column:1/-1;padding:6px 0}#app.playing canvas{grid-column:1;grid-row:2;width:min(100%,calc((100dvh - 190px)*800/570))}#app.playing #message{grid-column:1;grid-row:3;min-height:72px;font-size:12px;margin:4px 0;line-height:1.5}#app.playing #controls{grid-column:2;grid-row:2/4}#controls p{margin:4px 0;font-size:13px}#controls button{padding:10px 5px;min-height:48px}#controls .control{margin:4px 0}}

.god-choice{border:1px solid #536584;border-radius:12px;margin:14px 0;padding:10px}.god-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.god-grid button{padding:5px 3px;font-size:14px;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:center}.god-portrait{display:block;width:100%;aspect-ratio:3/4;background-image:url(gods-portraits.png);background-size:400% 200%;border-radius:8px}.god-grid button.selected{outline:3px solid var(--accent)}@media(max-width:550px){.god-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.god-grid button{font-size:14px}.god-choice{padding:9px;margin:12px 0}.god-portrait{max-height:88px;aspect-ratio:3/4}}

header b{font-size:14px;line-height:1.4}#app.playing canvas{isolation:isolate}

@media(orientation:landscape) and (max-height:600px){main{padding:6px 10px}header{height:40px}#app.playing:not(.result-state){display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 12px}#app.playing .hud{grid-column:1/-1;padding:6px 0;min-height:30px}#app.playing canvas{grid-column:1;grid-row:2/4;width:min(100%,calc((100dvh - 105px)*800/570));height:auto;margin:auto}#app.playing #controls{grid-column:2;grid-row:2}#app.playing #message{grid-column:2;grid-row:3;min-height:54px;font-size:12px;line-height:1.5;margin:4px 0}#app.playing #controls p{margin:4px 0}#app.playing>p{display:none}}

input[type=checkbox]{width:22px;height:22px}#history{margin:8px 0;font-size:14px;line-height:1.6}#history ol{max-height:160px;overflow:auto}@media(orientation:landscape) and (max-height:600px){#app.playing #message{font-size:14px}#app.playing #history{grid-column:1/-1}#app.playing canvas{width:min(100%,calc((100dvh - 130px)*800/570))}}

/* Keep the current seals and actions in the same desktop viewport. */
@media(min-width:900px){
 main{max-width:1100px;padding:10px 16px}header{min-height:44px}
 #app.playing:not(.result-state){display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:8px 16px;align-items:start}
 #app.playing:not(.result-state) .hud{grid-column:1/-1;padding:6px 0;min-height:32px}
 #app.playing:not(.result-state) canvas{grid-column:1;grid-row:2/5;width:min(100%,calc((100dvh - 115px)*800/570));margin:0 auto}
 #app.playing:not(.result-state) #controls{grid-column:2;grid-row:2}
 #app.playing:not(.result-state) #controls p{margin:4px 0;font-size:14px;line-height:1.4}
 #app.playing:not(.result-state) #message{grid-column:2;grid-row:3;min-height:0;font-size:14px;line-height:1.4}
 #app.playing:not(.result-state) #history{grid-column:2;grid-row:4;margin:0;font-size:13px}
 #app.playing:not(.result-state) #history ol{max-height:90px;overflow:auto}
 #app.playing:not(.result-state)>p{display:none}
}
@media(prefers-reduced-motion:reduce){button:active{transform:none}}

/* Selection and results use the same desktop space without shrinking text. */
.desktop-history{display:none}.result-history-list{max-height:calc(100dvh - 190px);overflow:auto;text-align:left;line-height:1.5}
@media(min-width:900px){
 main:has(.title-state){max-width:1280px}
 .title-state h1{font-size:28px;margin:4px 0 8px}
 .title-state .hero{display:none}
 .selection-panel{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:10px 18px;margin:8px 0;padding:12px}
 .selection-help{grid-column:1/-1;margin:0;font-size:16px}
 .selection-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
 .selection-roster .god-choice{margin:0;padding:8px;min-width:0}
 .selection-roster .god-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .selection-roster .god-portrait{height:80px;max-width:64px;aspect-ratio:3/4}
 .selection-roster .god-grid button{min-height:108px;font-size:14px}
 .selection-roster>p{grid-column:1/-1;margin:0}
 .selection-settings label{margin:4px 0 8px}
 .selection-settings input:not([type=checkbox]),.selection-settings select{padding:8px}
 .selection-settings>p{font-size:14px;line-height:1.4;margin:6px 0}
 .selection-settings #notice:empty{min-height:0}
 .selection-settings .row{gap:6px}
 .selection-settings .row button{min-width:0;padding:10px 8px}
 .selection-settings label:last-child{display:flex;align-items:center;gap:8px;margin:8px 0 0}
 #app.result-state{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:8px 16px;align-items:start}
 #app.result-state .hud{grid-column:1/-1;padding:6px 0}
 #app.result-state canvas{grid-column:1;grid-row:2;width:min(100%,calc((100dvh - 115px)*800/570));margin:0 auto}
 #app.result-state #result{grid-column:2;grid-row:2;margin:0;padding:14px}
 #app.result-state #message,#app.result-state #controls,#app.result-state #history,#app.result-state>p{display:none}
 #result h2{font-size:24px;margin:0 0 8px}
 #result p{margin:8px 0;line-height:1.4}
 #result label{margin:8px 0}
 #result textarea{min-height:86px;height:86px;font-size:14px}
 #result .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 #result .row button{min-width:0;padding:10px 8px}
 #result #retry{grid-column:1/-1;grid-row:1}
 #result .desktop-history{display:block}
 #result #copied:empty{display:none}
}
