*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;overflow:hidden;overscroll-behavior:none}body{background:#101a2c;color:#ffebc0;font-family:system-ui,sans-serif}main{height:100dvh;max-width:1000px;margin:auto;padding:max(8px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom));display:grid;grid-template-rows:58px minmax(0,1fr) 112px;gap:6px}header{display:flex;align-items:center;gap:8px}header div{flex:1}h1{font:500 22px Georgia,serif;margin:0}p{font-size:12px;margin:4px 0}#clock{font-size:24px}#stage{position:relative;min-height:0;overflow:hidden;border:2px solid #b5824d;border-radius:20px;background:#15253b;touch-action:none}canvas{display:block;width:100%;height:100%;touch-action:none}#message{position:absolute;top:6px;left:6px;right:6px;padding:7px;border-radius:10px;background:#101a2cdd;text-align:center;pointer-events:none}footer{text-align:center;display:flex;flex-direction:column;justify-content:center;gap:2px}.controls{display:flex;gap:6px;justify-content:center}button{min-height:44px;min-width:62px;padding:7px 10px;border:1px solid #b5824d;border-radius:12px;background:#263952;color:#ffebc0;font:inherit;font-size:14px;touch-action:manipulation}#polarity{background:#ff937f;color:#192737;min-width:140px}button:focus-visible,#stage:focus-visible{outline:3px solid #97efce;outline-offset:-3px}#veil{position:absolute;inset:0;background:#101a2cee;display:grid;place-content:center;text-align:center;z-index:5}#veil[hidden]{display:none}#save-status{font-size:10px;min-height:12px}dialog{width:min(330px,calc(100vw - 24px));border:2px solid #b5824d;border-radius:20px;background:#ffebc0;color:#182940;padding:20px;text-align:center}dialog h2{font:25px Georgia,serif}dialog::backdrop{background:#0a152970}
@media(orientation:landscape) and (max-height:500px){main{grid-template-columns:210px minmax(0,1fr);grid-template-rows:90px minmax(0,1fr)}header{grid-column:1}#stage{grid-column:2;grid-row:1/3}footer{grid-column:1}.controls{flex-wrap:wrap}h1{font-size:20px}#polarity{width:100%}}

/* Production shell; the passed graybox layout remains unchanged. */
.production main{grid-template-rows:64px minmax(0,1fr) 162px}.production h1{font-size:20px}.production .back{display:grid;place-items:center;min-width:44px;min-height:44px;color:#8aefce;text-decoration:none;font-size:28px}.production .preferences{display:flex;justify-content:center;gap:6px}.production #save-status{min-height:24px;font-size:11px}.production #polarity{min-width:136px}.production #flight{display:block;width:100%;height:130px;animation:liftoff .8s ease-out}.production #completion{max-height:calc(100dvh - 20px);overflow:auto}.production #completion h2{margin:0 0 10px}.production #flight-pattern{font-weight:700}.production .back:focus-visible{outline:3px solid #8aefce}.production #restart-confirm button{margin:4px 0}.production.reduced #flight{animation:none}@keyframes liftoff{from{transform:translateY(24px) scale(.75)}to{transform:translateY(0) scale(1)}}
@media(orientation:landscape) and (max-height:500px){.production main{grid-template-columns:230px minmax(0,1fr);grid-template-rows:72px minmax(0,1fr)}.production h1{font-size:18px}.production .controls{flex-wrap:wrap}.production #polarity{width:100%}.production .preferences{gap:4px}.production .preferences button{min-width:62px;padding:4px;font-size:12px}.production #flight{height:85px}.production #completion{padding:12px}.production #completion h2{font-size:21px}}
