/* TARGET POP — city defense console. */
.gx-target{position:relative;width:100%;max-width:840px;margin:18px auto 30px;color:#e8faff;font:600 14px/1.45 system-ui,-apple-system,"Noto Sans JP",sans-serif;isolation:isolate;text-align:left;scroll-margin-top:100px}
.gx-target *,.gx-target *:before,.gx-target *:after{box-sizing:border-box}.gx-target [hidden]{display:none!important}.gx-target p{margin:0;line-height:1.45}.gx-target button{font:inherit;touch-action:manipulation;cursor:pointer;min-height:44px;min-width:44px;margin:0;padding:8px 12px;border:2px solid #5b94a6;border-radius:0;background:#152f40;color:#e9faff;line-height:1.3;letter-spacing:normal;text-transform:none;box-shadow:inset 0 1px #a1d6d52e,0 2px #03111c}
.gx-target button:hover{border-color:#b2eff4;background:#214657}.gx-target button:disabled{opacity:.5;cursor:default}.gx-target :focus-visible{outline:3px solid #f9dd81;outline-offset:2px}
.gx-target .tp-shell{position:relative;overflow:hidden;padding:12px;border:3px solid #5d8291;background:#102430;box-shadow:0 6px #091b27,inset 0 0 0 2px #040e19,inset 0 0 0 5px #263f4c}
.gx-target .tp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;min-height:44px}.gx-target .tp-brand{min-width:0;line-height:1.2}.gx-target .tp-brand small{display:block;margin-bottom:4px;font-size:8px;letter-spacing:.12em;color:#90b4c1}.gx-target .tp-brand strong{display:block;font-size:18px;font-weight:900;color:#c5f5f4;white-space:nowrap}.gx-target .tp-tools{display:flex;gap:5px;flex-shrink:0}.gx-target .tp-tools button{font-size:10px;padding:7px;min-height:44px}.gx-target .tp-shell[data-screen=menu] .tp-brand{visibility:hidden}
.gx-target .tp-hud{display:grid;grid-template-columns:1.1fr .8fr 1.15fr .9fr;gap:5px;margin-bottom:8px}.gx-target .tp-hud>div{min-width:0;border:1px solid #5c8694;background:#061927;padding:5px 8px;box-shadow:inset 0 2px #030d15}.gx-target .tp-hud span{display:block;color:#91b5c6;font-size:9px}.gx-target .tp-hud strong{display:block;color:#ffe197;font-size:22px;line-height:1.3;font-variant-numeric:tabular-nums;white-space:nowrap}.gx-target .tp-hud>div:nth-child(3) strong{font-size:17px;line-height:1.7;letter-spacing:0;color:#ffa1b3}
.gx-target .tp-stage{position:relative;min-height:0;padding:9px;overflow:hidden;border:1px solid #486e7b;background:#071620}.gx-target .tp-play{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;max-width:600px;margin:auto}.gx-target .tp-mission{display:flex;justify-content:space-between;gap:8px;width:100%;min-height:16px;font-size:10px;color:#a8d6df;letter-spacing:.02em}.gx-target .tp-mission span:last-child{color:#ffde97}.gx-target .tp-timer{position:relative;width:100%;height:22px;flex-shrink:0;overflow:hidden;border:1px solid #709aa8;background:#03111b}.gx-target .tp-timer i{position:absolute;inset:0;background:#237c92;transform-origin:left}.gx-target .tp-timer span{position:relative;display:block;text-align:center;font-size:12px;line-height:20px;color:#f5ffff;text-shadow:0 1px #08202b;font-variant-numeric:tabular-nums}.gx-target .tp-timer.is-urgent i{background:#aa6a31}
.gx-target .tp-grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));width:min(100%,540px);aspect-ratio:1;flex-shrink:0;gap:0;padding:0;background:#061622;box-shadow:0 0 0 1px #4b7688;overflow:hidden}.gx-target .tp-rooftop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gx-target .tp-cell{position:relative;z-index:1;aspect-ratio:1;min-width:0;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.gx-target .tp-cell:hover{background:#9defff0a}.gx-target .tp-cell:disabled{opacity:1}.gx-target .tp-cell:focus-visible{outline:2px solid #ffe997;outline-offset:-6px;background:#fff4bd0a}.gx-target .tp-target-label{position:absolute;bottom:3%;left:0;right:0;max-width:90%;margin:auto;padding:1px 2px;font-size:11px;font-weight:800;line-height:1.4;color:#ffacbc;text-align:center;background:#061727d9;pointer-events:none}.gx-target .tp-cell[data-kind=friend] .tp-target-label{color:#a3ffe0}.gx-target .tp-cell[data-kind=gold] .tp-target-label{color:#ffe9a0}.gx-target .tp-cell[data-kind=armor] .tp-target-label{color:#dbcaff}.gx-target .tp-cell[data-kind=empty] .tp-target-label{background:none}.gx-target .tp-message{min-height:18px;font-size:12px;font-weight:800;text-align:center;color:#bcecf4}
.gx-target .tp-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.gx-target .tp-controls button{min-height:46px;font-size:13px;font-weight:800;background:#1d4052}.gx-target .tp-controls button.is-charged{border-color:#ffe39a;color:#ffe9b6;box-shadow:inset 0 0 0 2px #805b33}.gx-target .tp-footer{display:flex;justify-content:space-between;gap:5px;min-height:14px;margin-top:8px;color:#9cbcca;font-size:10px}.gx-target .tp-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gx-target .tp-shell:not([data-screen=playing]) .tp-stage{height:600px}.gx-target .tp-panel{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:13px;padding:24px 30px;overflow:auto;overscroll-behavior:contain;background:linear-gradient(90deg,#102a3650 1px,transparent 1px) 0 0/24px 24px,linear-gradient(#102a3650 1px,transparent 1px) 0 0/24px 24px,#071924;box-shadow:inset 0 0 0 3px #152e3c,inset 0 0 0 5px #426775}
.gx-target .tp-panel>*{flex-shrink:0}.gx-target .tp-eyebrow{display:block;text-align:center;color:#79b7c8;font-size:9px;letter-spacing:.18em}.gx-target h2.tp-title{color:#edfaff!important;font:900 28px/1.3 system-ui,-apple-system,"Noto Sans JP",sans-serif!important;letter-spacing:.04em;text-align:center;background:none!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;text-shadow:2px 2px #264c5d}.gx-target h2.tp-title:before,.gx-target h2.tp-title:after{display:none!important;content:none!important}.gx-target h2.tp-title>span{display:block;font:inherit!important;color:inherit;line-height:inherit!important}.gx-target .tp-panel[data-kind=menu] h2.tp-title{font-size:36px!important;line-height:1.12!important;letter-spacing:.06em;color:#e6ffff!important;text-shadow:2px 0 #316780,-2px 0 #316780,0 2px #316780,0 -2px #316780,3px 4px #03111a}.gx-target .tp-title-art{display:block;width:100%;height:auto;aspect-ratio:720/300;max-height:192px;object-fit:contain;border-top:2px solid #456978;border-bottom:2px solid #456978;image-rendering:pixelated;background:#06131e}
.gx-target .tp-commands,.gx-target .tp-modes,.gx-target .tp-settings{display:flex;flex-direction:column;gap:6px;width:100%;max-width:410px;align-self:center}.gx-target .tp-command{position:relative;width:100%;min-height:46px;padding:10px 16px 10px 37px;text-align:left;border-color:#395e6c;background:#0c2331;font-size:15px;font-weight:800;box-shadow:inset 0 0 0 1px #081722}.gx-target .tp-command[data-cursor=true]{border-color:#e7ce85;color:#ffebbc;background:#203947}.gx-target .tp-command[data-cursor=true]:before{content:"";position:absolute;left:14px;top:calc(50% - 5px);width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid #ffe39a;animation:tp-cursor 1.1s steps(2,end) infinite}.gx-target .tp-command[aria-pressed=true]:after{content:"◆";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#86d5db;font-size:9px}.gx-target .tp-command:disabled{opacity:.5}.gx-target .tp-menu-record{text-align:center;color:#99bdc7;font-size:10px;line-height:1.6}.gx-target .tp-credit{text-align:center;color:#5b8c9d;font-size:9px;letter-spacing:.2em}.gx-target .tp-setting-label{color:#b1d5df;font-size:11px;padding:5px 1px}.gx-target .tp-levels{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gx-target .tp-levels .tp-command{font-size:14px}.gx-target .tp-panel[data-kind=select] .tp-commands{border-top:1px solid #3c6070;padding-top:12px}.gx-target .tp-panel[data-kind=pause] .tp-commands{margin-top:8px}
.gx-target .tp-equipment{display:flex;flex-direction:column;gap:8px;width:100%;max-width:410px;align-self:center}.gx-target .tp-equipment .tp-command{display:grid;grid-template-columns:29px 1fr;grid-template-rows:auto auto;column-gap:9px;row-gap:3px;min-height:73px;padding:12px 12px 12px 36px}.gx-target .tp-equipment b{grid-column:1;grid-row:1/3;align-self:center;color:#ffc989;font-size:25px;line-height:1}.gx-target .tp-equipment strong{grid-column:2;font-size:15px;color:#eef9fa;line-height:1.3}.gx-target .tp-equipment span{grid-column:2;font-size:11px;color:#a8c7d1}.gx-target .tp-equipment button:disabled strong{color:#c2d2d7}.gx-target .tp-points{display:flex;flex-direction:column;align-items:center;gap:2px;color:#ffe5a1}.gx-target .tp-points strong{font-size:48px;line-height:1.1;font-weight:900;font-variant-numeric:tabular-nums}.gx-target .tp-points span{font-size:9px;letter-spacing:.14em}.gx-target .tp-result-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:410px;width:100%;align-self:center}.gx-target .tp-result-stats>div{display:flex;flex-direction:column;padding:6px 10px;background:#06131e;border:1px solid #426876}.gx-target .tp-result-stats span{font-size:10px;color:#97becd}.gx-target .tp-result-stats strong{font-size:20px;color:#e4f4f6;line-height:1.4}.gx-target .tp-record-note{font-size:11px;text-align:center;color:#f2d58b}
.gx-target.tp-portal{position:fixed;inset:0;z-index:2147483000;width:100vw;height:100dvh;max-width:none;margin:0;isolation:isolate}.gx-target .tp-shell:fullscreen,.gx-target .tp-expanded{display:flex;flex-direction:column;width:100vw;height:100dvh;max-width:none;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:6px;border:0;box-shadow:none;background:#102430}.gx-target .tp-expanded{position:fixed;inset:0;z-index:2147483000}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) :is(.tp-head,.tp-hud,.tp-controls,.tp-footer){margin:0;flex-shrink:0}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-stage{height:auto!important;flex:1;min-height:0;container-type:size;padding:7px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-play{height:100%;justify-content:center;gap:6px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-grid{width:min(100%,calc(100cqh - 80px));max-width:660px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel{gap:10px;padding:16px;max-width:760px;margin:auto}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-title-art{max-height:170px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-target-label{font-size:clamp(8px,1.9cqh,11px)}
@keyframes tp-cursor{50%{opacity:.45}}
@media(max-width:480px){.gx-target .tp-shell{padding:8px}.gx-target .tp-head{gap:5px;margin-bottom:8px}.gx-target .tp-brand strong{font-size:13px}.gx-target .tp-brand small{font-size:7px;letter-spacing:.03em}.gx-target .tp-tools{gap:3px}.gx-target .tp-tools button{font-size:9px;padding:6px}.gx-target .tp-hud{gap:3px}.gx-target .tp-hud>div{padding:4px 5px}.gx-target .tp-hud span{font-size:8px}.gx-target .tp-hud strong{font-size:19px}.gx-target .tp-hud>div:nth-child(3) strong{font-size:12px;line-height:2}.gx-target .tp-stage{padding:7px}.gx-target .tp-mission{font-size:9px}.gx-target .tp-target-label{font-size:9px}.gx-target .tp-message{font-size:11px}.gx-target .tp-controls button{font-size:11px}.gx-target .tp-footer{font-size:8px}.gx-target .tp-shell:not([data-screen=playing]) .tp-stage{height:555px}.gx-target .tp-panel{padding:20px 13px;gap:12px}.gx-target h2.tp-title{font-size:24px!important}.gx-target .tp-panel[data-kind=menu] h2.tp-title{font-size:32px!important}.gx-target .tp-title-art{max-height:145px}.gx-target .tp-menu-record{font-size:9px}.gx-target .tp-command{font-size:14px}.gx-target .tp-points strong{font-size:42px}.gx-target .tp-result-stats strong{font-size:18px}.gx-target .tp-record-note{font-size:10px}}
@media(max-width:359px){.gx-target .tp-brand strong{font-size:11px}.gx-target .tp-brand small{font-size:6px}.gx-target .tp-head{gap:3px}.gx-target .tp-tools{gap:2px}.gx-target .tp-tools button{padding:5px;font-size:8px}.gx-target .tp-hud>div{padding:4px 3px}.gx-target .tp-hud>div:nth-child(3) strong{font-size:11px}.gx-target .tp-panel[data-kind=menu] h2.tp-title{font-size:30px!important}.gx-target .tp-panel{padding:18px 12px}.gx-target .tp-equipment strong{font-size:14px}.gx-target .tp-menu-record{font-size:8px}.gx-target .tp-result-stats span{font-size:9px}}
@media(max-height:700px){.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel{gap:8px;padding:13px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=menu] h2.tp-title{font-size:27px!important}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-title-art{max-height:125px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-credit{display:none}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-points strong{font-size:36px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-result-stats>div{padding:4px 8px}}
@media(max-height:500px) and (orientation:landscape){
.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing]{display:grid;grid-template-columns:minmax(174px,.65fr) minmax(0,1.35fr);grid-template-rows:auto auto minmax(0,1fr) auto;gap:5px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-head{grid-column:1;grid-row:1;display:block;min-height:0}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-brand{display:none}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-tools{justify-content:center}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-hud{grid-column:1;grid-row:2;grid-template-columns:1fr 1fr}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-hud>div{padding:3px 6px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-hud strong{font-size:18px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-hud>div:nth-child(3) strong{font-size:12px;line-height:1.9}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-stage{grid-column:2;grid-row:1/5;height:100%!important;padding:5px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-controls{grid-column:1;grid-row:3;grid-template-columns:1fr;align-content:center;gap:5px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-controls button{min-height:44px;padding:6px;font-size:11px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen)[data-screen=playing] .tp-footer{grid-column:1;grid-row:4;flex-direction:column;gap:1px;font-size:8px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-play{gap:4px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-grid{width:min(100%,calc(100cqh - 64px))}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-mission{min-height:12px;font-size:8px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-message{min-height:14px;font-size:10px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-timer{height:18px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-timer span{line-height:16px;font-size:10px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-target-label{font-size:8px}
.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:min-content;align-content:center;column-gap:20px;row-gap:7px;padding:12px 18px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-eyebrow{grid-column:1/-1;font-size:8px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) h2.tp-title{grid-column:1/-1;font-size:20px!important}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=menu] h2.tp-title{grid-column:1;grid-row:2;font-size:25px!important}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-title-art{grid-column:1;grid-row:3;max-height:95px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=menu] .tp-commands{grid-column:2;grid-row:2/4}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-menu-record{grid-column:1/-1;font-size:8px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-command{min-height:44px;padding-top:8px;padding-bottom:8px;font-size:12px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=select] .tp-commands{border:0;padding:0}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=settings] .tp-settings{grid-column:1;grid-row:2/4}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=settings] h2.tp-title{grid-column:2;grid-row:2}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=settings] .tp-commands{grid-column:2;grid-row:3;align-self:start}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-setting-label{padding:0}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=pause] .tp-record-note{grid-column:1;grid-row:3}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=pause] h2.tp-title{grid-column:1;grid-row:2;align-self:end}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=pause] .tp-commands{grid-column:2;grid-row:2/4;margin:0}
.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment{grid-column:1/-1;max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment .tp-command{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:100px;padding:9px 5px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment .tp-command:before{left:5px;border-left-width:5px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment strong{font-size:12px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment span{font-size:9px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-equipment b{font-size:22px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=supply] .tp-commands{grid-column:1/-1;max-width:300px;justify-self:center}
.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=result]{grid-template-columns:1fr 1fr;gap:6px 20px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=result] h2.tp-title{grid-column:1;grid-row:2;font-size:18px!important}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-points{grid-column:1;grid-row:3}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-points strong{font-size:30px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-result-stats{grid-column:1;grid-row:4;gap:3px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-result-stats>div{padding:3px 6px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-result-stats span{font-size:8px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-result-stats strong{font-size:14px}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=result] .tp-commands{grid-column:2;grid-row:2/5}.gx-target :is(.tp-expanded,.tp-shell:fullscreen) .tp-panel[data-kind=result] .tp-record-note{grid-column:1/-1;grid-row:5;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.gx-target *,.gx-target *:before,.gx-target *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
