.ipo-page{--ipo-blue:#084dcc;--ipo-ink:#11172f;--ipo-paper:#fffbea;--ipo-pink:#ff4d96;--ipo-yellow:#ffe344;background:var(--ipo-blue);color:var(--ipo-paper)}
.ipo-page .mission-hud{background:var(--ipo-paper);color:var(--ipo-ink);position:relative;z-index:10;height:76px;border-bottom:3px solid var(--ipo-ink)}
.ipo-room{height:calc(100svh - 76px);min-height:640px;display:grid;grid-template-rows:34px minmax(0,1fr) 54px;overflow:hidden}
.ipo-topline{display:flex;justify-content:space-between;padding:10px 30px 0;font:700 10px/1.2 monospace;letter-spacing:.15em}
.ipo-layout{display:grid;grid-template-columns:46% 54%;min-height:0;padding:12px 30px 18px;max-width:1800px;width:100%;margin:auto;height:100%}
.ipo-stage{position:relative;isolation:isolate;min-width:0;min-height:0;overflow:hidden}
.ipo-stage:before{content:"";position:absolute;inset:26% 4% 10% -16%;background:#02a8c3;transform:rotate(-14deg);clip-path:polygon(0 16%,100% 0,94% 80%,0 100%);z-index:-2}
.ipo-orbit{position:absolute;width:73%;aspect-ratio:1;top:16%;left:13%;border:1px solid #ffffff3b;border-radius:50%;z-index:-1;box-shadow:0 0 0 22px #ffffff08,0 0 0 66px #ffffff06}
.ipo-backword{position:absolute;font:900 italic clamp(130px,22vw,345px)/1 sans-serif;color:#ffffff12;top:20%;left:-2%;transform:rotate(-12deg);z-index:-1;white-space:nowrap}
.ipo-stage h1{font-size:clamp(55px,6.9vw,110px);font-weight:950;font-style:italic;line-height:1.05;letter-spacing:-.06em;transform:rotate(-5deg);margin:24px 0 10px 14px;text-shadow:4px 5px 0 var(--ipo-ink);position:relative;z-index:2}
.ipo-subtitle{font-weight:750;font-size:clamp(13px,1.25vw,20px);transform:rotate(-5deg);margin:20px 0 0 24px;color:var(--ipo-yellow);position:relative;z-index:2}
.ipo-rider{position:absolute;width:105%;max-width:none;height:78%;object-fit:contain;bottom:0;left:-4%;filter:drop-shadow(9px 14px 0 #061d6b55);animation:koi-drift 7s ease-in-out infinite;transform-origin:55% 55%}
.ipo-stage-stamp{position:absolute;right:8%;bottom:4%;font:950 italic clamp(25px,3.2vw,48px)/.88 sans-serif;transform:rotate(-8deg);color:var(--ipo-yellow);text-shadow:3px 3px 0 var(--ipo-ink);pointer-events:none}
.ipo-console{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;margin:8px 0 0 12px;filter:drop-shadow(8px 8px 0 #081c65)}
.ipo-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0 8px 0 0}
.ipo-tabs button{background:#05308a;color:#d9eaff;border:2px solid var(--ipo-ink);border-bottom:0;min-height:53px;padding:8px 12px;font-size:clamp(12px,1.15vw,17px);font-weight:850;cursor:pointer;clip-path:polygon(0 8px,10px 0,100% 0,100% 100%,0 100%);text-align:left;display:flex;gap:9px;align-items:center}
.ipo-tabs button span{font:700 10px monospace;opacity:.65}.ipo-tabs button[aria-selected=true]{background:var(--ipo-yellow);color:var(--ipo-ink)}
.ipo-tabs button:focus-visible{outline:3px solid white;outline-offset:-5px}.ipo-panel{background:var(--ipo-paper);color:var(--ipo-ink);border:3px solid var(--ipo-ink);padding:20px;overflow:auto;min-height:0;scrollbar-color:var(--ipo-ink) var(--ipo-paper);scrollbar-width:thin;overscroll-behavior:contain}.ipo-panel[hidden]{display:none}
.ipo-plan-a{background:var(--ipo-pink);border:2px solid var(--ipo-ink);padding:16px 20px 13px;position:relative;box-shadow:4px 4px 0 var(--ipo-ink);margin:0 4px 22px 0}
.ipo-plan-label{display:flex;justify-content:space-between;font:800 12px/1.1 monospace;letter-spacing:.07em}.ipo-plan-label b{font:850 15px sans-serif}.ipo-plan-a h2{font-size:clamp(36px,4.1vw,66px);line-height:1.05;font-style:italic;letter-spacing:-.05em;margin:13px 0 10px;font-weight:950}.ipo-plan-a p{font-weight:750;line-height:1.55;margin:0}.ipo-plan-a .ipo-dynamic{font-size:12px;margin-top:9px;padding-top:9px;border-top:1px solid #11172f60;font-weight:600}
.ipo-standard h2{font-size:15px;font-weight:850;margin:0 0 8px}.ipo-numbers{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ipo-ink);border-bottom:2px solid var(--ipo-ink);padding:8px 0 12px}.ipo-numbers>div+div{border-left:2px solid var(--ipo-ink);padding-left:24px}.ipo-numbers strong{font:950 italic clamp(65px,7.6vw,110px)/1 sans-serif;letter-spacing:-.08em;display:block}.ipo-numbers small{font-size:14px;letter-spacing:0;margin-left:9px;font-style:normal}.ipo-numbers h3{font-size:14px;margin:5px 0 0;line-height:1.2;font-weight:800}.ipo-cash{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:2px solid var(--ipo-ink);gap:10px}.ipo-cash h2{font-size:14px;margin:0}.ipo-cash p{margin:0;font-size:13px;font-weight:700}.ipo-cash strong{font:900 italic 34px/1 sans-serif;margin-right:6px}
.ipo-plan-b{display:flex;gap:13px;padding:18px 0 0}.ipo-plan-b>span{font:900 italic 36px/1 sans-serif;background:var(--ipo-yellow);border:2px solid var(--ipo-ink);width:45px;height:46px;text-align:center;flex-shrink:0}.ipo-plan-b h2{font-size:15px;line-height:1.35;margin:0 0 6px}.ipo-plan-b p{font-size:13px;line-height:1.65;margin:0}.ipo-note{font-size:11px;line-height:1.65;margin:15px 0 0;color:#53536a}
.ipo-panel-heading>span{font:750 11px monospace;letter-spacing:.08em}.ipo-panel-heading h2{font-size:clamp(28px,3.2vw,46px);font-weight:950;font-style:italic;line-height:1.12;letter-spacing:-.035em;margin:17px 0}.ipo-panel-heading>p{font-size:14px;line-height:1.7;margin:0 0 22px}
.ipo-timeline{list-style:none;padding:0;margin:0}.ipo-timeline li{display:grid;grid-template-columns:43px 1fr;gap:14px;padding:0 0 27px;position:relative}.ipo-timeline li:before{content:"";position:absolute;left:19px;top:35px;bottom:0;border-left:2px dashed var(--ipo-blue)}.ipo-timeline li:last-child:before{display:none}.ipo-timeline li>span{font:850 16px/38px monospace;width:40px;height:40px;background:var(--ipo-yellow);border:2px solid var(--ipo-ink);text-align:center;z-index:1}.ipo-timeline h3{font-size:16px;line-height:1.5;margin:5px 0 7px}.ipo-timeline p{font-size:14px;line-height:1.65;margin:0}
.ipo-tool{display:grid;grid-template-columns:28px minmax(0,1fr) 30px;gap:10px;background:var(--ipo-yellow);border:2px solid var(--ipo-ink);padding:20px 16px;color:var(--ipo-ink);margin:0 5px 20px 0;box-shadow:5px 5px 0 var(--ipo-ink);text-decoration:none;transition:transform .15s,box-shadow .15s}.ipo-tool:nth-child(2){background:#ff91bf}.ipo-tool:nth-child(3){background:#86e6e2}.ipo-tool:hover,.ipo-tool:focus-visible{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ipo-ink)}.ipo-tool>span{font:800 12px monospace}.ipo-tool h3{font:950 italic clamp(21px,2.8vw,38px)/1 sans-serif;margin:0 0 12px;letter-spacing:-.04em}.ipo-tool p{font-size:13px;line-height:1.6;margin:0}.ipo-tool>b{font-size:28px;line-height:1}.ipo-tool small{grid-column:2;font-size:10px;font-weight:800}
.ipo-page .screen-bottom{display:flex;align-items:center;justify-content:space-between;padding:8px 30px;border-top:1px solid #ffffff40;gap:16px;font-size:11px;min-width:0}.ipo-page .screen-bottom>span{white-space:nowrap;color:#b9d6ff}.ipo-page .screen-bottom nav{display:flex;gap:15px;flex-wrap:wrap;justify-content:flex-end}.ipo-page .screen-bottom nav a{color:var(--ipo-paper);font-weight:700;text-decoration:none}.ipo-page .screen-bottom nav a[aria-current=page]{color:var(--ipo-yellow)}.ipo-page kbd{font:700 10px monospace;border:1px solid #ffffff70;padding:2px 4px;margin-right:3px}.ipo-page .mission-footer{background:var(--ipo-ink);color:#d3e0ff;border-color:#ffffff40}.ipo-page .mission-footer a{color:inherit}
@keyframes koi-drift{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@media(min-width:901px) and (max-height:800px){.ipo-room{min-height:560px}.ipo-plan-a h2{font-size:43px}.ipo-plan-a{padding:12px 16px;margin-bottom:17px}.ipo-panel{padding:16px}.ipo-numbers strong{font-size:80px}.ipo-plan-b{padding-top:13px}.ipo-stage h1{margin-top:15px}}
@media(max-width:1100px){.ipo-layout{grid-template-columns:43% 57%;padding-left:20px;padding-right:20px}.ipo-page .screen-bottom>span{display:none}.ipo-page .screen-bottom nav{justify-content:center;width:100%}.ipo-stage h1{font-size:65px}.ipo-subtitle{margin-left:15px}.ipo-stage-stamp{right:5%;bottom:10%}.ipo-plan-a h2{font-size:43px}}
@media(max-width:900px){.ipo-page .mission-hud{height:66px}.ipo-page .hud-location{display:none}.ipo-room{height:auto;min-height:0;overflow:visible;display:block}.ipo-topline{padding:12px 18px 0;font-size:8px}.ipo-layout{display:block;padding:0 15px 25px;height:auto}.ipo-stage{height:420px;overflow:visible}.ipo-stage h1{font-size:72px;padding-top:15px;margin:12px 0 0 8px}.ipo-subtitle{font-size:14px;margin:19px 0 0 16px}.ipo-stage:before{inset:35% -6% 10% -15%}.ipo-rider{height:80%;width:100%;left:0;bottom:-4%}.ipo-backword{font-size:230px;left:8%;top:26%}.ipo-orbit{width:65%;top:25%;left:17%}.ipo-stage-stamp{font-size:34px;right:2%;bottom:6%}.ipo-console{margin:12px 4px 0 0;filter:drop-shadow(5px 5px 0 #081c65);grid-template-rows:auto auto}.ipo-tabs{gap:4px;margin:0}.ipo-tabs button{min-height:52px;font-size:13px;padding:10px 9px;gap:7px}.ipo-panel{overflow:visible;padding:19px 16px;overscroll-behavior:auto}.ipo-plan-a h2{font-size:48px}.ipo-numbers strong{font-size:90px}.ipo-plan-a p{font-size:14px}.ipo-plan-a .ipo-dynamic{font-size:12px}.ipo-page .screen-bottom{padding:18px 20px}.ipo-page .screen-bottom nav{gap:13px 17px}.ipo-page .mission-footer{padding:24px 20px}.ipo-panel-heading h2{font-size:34px}.ipo-tool h3{font-size:30px}.ipo-tool{padding:20px 13px}.ipo-note{font-size:11px}}
@media(max-width:420px){.ipo-stage{height:365px}.ipo-stage h1{font-size:64px}.ipo-rider{height:77%;width:110%;left:-5%;bottom:-2%}.ipo-stage-stamp{font-size:29px;bottom:4%;right:2%}.ipo-tabs button{font-size:12px;padding:9px 7px;gap:5px}.ipo-tabs button span{font-size:8px}.ipo-plan-a h2{font-size:43px}.ipo-numbers strong{font-size:78px}.ipo-numbers>div+div{padding-left:15px}.ipo-numbers h3{font-size:13px}.ipo-plan-b h2{font-size:14px}.ipo-tool h3{font-size:27px}}
@media(prefers-reduced-motion:reduce){.ipo-rider{animation:none}.ipo-tool{transition:none}}
/* Keep this room's palette independent from the inherited mission-page theme. */
body.mission-page.ipo-page{background:var(--ipo-blue)!important;color:var(--ipo-paper)}
.ipo-page .mission-hud{background:var(--ipo-ink);color:var(--ipo-paper);border-bottom-color:#ffffff25}
.ipo-page .mission-hud .back-lobby{color:var(--ipo-paper);border-color:#ffffff40}.ipo-page .hud-location{color:#adcfff}
@media(min-width:901px){.ipo-rider{width:96%;left:1%;height:76%}}
@media(max-width:900px){.ipo-stage{height:450px}.ipo-rider{height:69%;bottom:0}}
@media(max-width:420px){.ipo-stage{height:435px}.ipo-rider{height:65%;bottom:0}.ipo-stage-stamp{bottom:3%}}
.ipo-machine{position:absolute;pointer-events:none;object-fit:contain;z-index:0;opacity:.7}.ipo-machine-pipe{width:22%;height:auto;left:-3%;top:28%;transform:rotate(-6deg)}.ipo-machine-beam{width:35%;height:auto;right:-3%;top:18%}.ipo-machine-gear{width:37%;height:auto;right:-5%;bottom:-2%;opacity:.85}.ipo-rider{z-index:1}.ipo-stage-stamp{z-index:3}
@media(max-width:900px){.ipo-machine-pipe{width:22%;top:38%;left:-7%}.ipo-machine-beam{width:35%;top:33%;right:-5%}.ipo-machine-gear{width:36%;right:-4%;bottom:-1%}}
@media(min-width:901px){.ipo-machine-pipe{top:-1%;left:-6%;opacity:.5}.ipo-machine-beam{top:-1%;right:-3%}}
@media(max-width:900px){.ipo-machine-pipe{top:34%;left:-8%;opacity:.55}.ipo-machine-beam{top:29%;right:-7%}}
