/* Headline Games house-art v1.1 · action mode. Shared shell loads after this file. */
:root{--market-ink:#17324d;--market-soft:#6f8aa0;--device:#a7c4d8;--circuit:#55b9a5}
*{box-sizing:border-box}
[hidden]{display:none!important}
button{font:inherit}
.game-shell{width:100%;margin:0 auto 40px}
body.is-playing{overflow:hidden}
.screen{min-width:0}
.intro{display:grid;grid-template-columns:minmax(0,48%) minmax(0,52%);align-items:stretch}
.hero-stage{margin:24px 0 24px 24px;min-height:510px;background:#dbe6ef}
.hero-stage>svg{position:absolute;inset:0;width:100%;height:100%}
.hero-cart{position:absolute;left:46%;top:40%;width:clamp(44px,11%,72px);filter:drop-shadow(5px 6px 0 #07132322);animation:hero-cart 1.9s ease-in-out infinite}
.hero-cart svg{display:block;width:100%;height:auto}
.hero-steps{position:absolute;left:7%;right:7%;bottom:7%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;pointer-events:none}
.hero-steps span{padding:6px 4px;color:#36566d;background:#fffaf0e8;border-left:4px solid #28527a;border-radius:5px;font-size:clamp(.55rem,1.3vw,.72rem);font-weight:850;line-height:1.2;text-align:center}.hero-steps b{color:#071323;font-size:1.12em}
.intro-copy{display:flex;flex-direction:column;justify-content:center}
.intro h1{margin:8px 0 6px;font-size:clamp(3.1rem,6.5vw,6.6rem);line-height:.92;letter-spacing:-.055em}
html:lang(ja) .intro h1{font-size:clamp(3rem,6.1vw,5.8rem);letter-spacing:-.035em}
.eyebrow{margin:0;font-size:.78rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.dek{margin:0 0 12px;color:#36566d;font-size:clamp(1.02rem,2vw,1.4rem);font-weight:850;line-height:1.35}
.key-help{margin:12px 0 0;color:#526477;font-size:.75rem;text-align:center}
.error{width:min(720px,calc(100% - 28px));margin:30px auto;padding:30px;background:#fffaf0;border:4px solid #071323;border-radius:24px;text-align:center}
.play{width:min(860px,calc(100% - 24px));margin:10px auto 24px;border:4px solid #071323;border-radius:24px;background:#fffaf0;box-shadow:0 10px 0 #07132324;overflow:hidden}
.play-hud{height:56px;padding:6px 8px;display:grid;grid-template-columns:.7fr .65fr .7fr 1.5fr auto;align-items:center;gap:6px;background:#fffaf0;border-bottom:2px solid #a9b8c5}
.play-hud>div{min-width:0;display:flex;flex-direction:column;align-items:center;color:#526477;font-size:.58rem;font-weight:900;letter-spacing:.04em;line-height:1.16}
.play-hud b{max-width:100%;color:#071323;font-size:.9rem;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pause-button,.nudge-controls button{min-width:46px;min-height:42px;padding:6px 8px;border:2px solid #071323;border-radius:9px;background:#fff;color:#071323;box-shadow:0 3px 0 #071323;font-weight:900;cursor:pointer}.pause-button:active,.nudge-controls button:active{transform:translateY(2px);box-shadow:0 1px 0 #071323}.nudge-controls button:disabled{opacity:.34;box-shadow:none;cursor:not-allowed}
.market-world{position:relative;height:min(64svh,520px);min-height:400px;overflow:hidden;background:#dbe6ef;touch-action:none;user-select:none;isolation:isolate;cursor:grab}
.market-world.is-braking{cursor:grabbing}
.floor{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.cap-state{position:absolute;left:24%;top:48%;z-index:3;width:52%;height:auto;opacity:.13;pointer-events:none}
.company-label{position:absolute;top:55%;z-index:4;width:24%;padding:4px 6px;color:#071323;background:#fffaf0db;border-left:5px solid #28527a;border-radius:4px;pointer-events:none;font-size:clamp(.5rem,1.5vw,.72rem);line-height:1.15;text-align:center}.company-label b{display:block;font-size:1.15em}.company-label span{color:#526477;font-weight:800}.company-label.goal{left:8%}.company-label.nvidia{right:8%;border-left-color:#55b9a5}
.target-band{position:absolute;left:46%;top:36%;z-index:5;width:5%;height:24%;transform:translateX(-50%);background:#f8c35a38;border-left:3px dashed #17324d;border-right:3px solid #f36f45;pointer-events:none}.target-band i{position:absolute;left:50%;top:0;bottom:0;width:3px;background:#fffaf0;transform:translateX(-50%)}.target-band span{position:absolute;left:50%;top:-26px;padding:2px 5px;transform:translateX(-50%);color:#071323;background:#f8c35a;border-radius:4px;font-size:clamp(.5rem,1.4vw,.68rem);font-weight:950;white-space:nowrap}
.target-band i{transition:opacity .2s ease}.target-band.is-advanced i{opacity:0}
.cart{--cart-x:84%;position:absolute;left:var(--cart-x);top:34%;z-index:12;width:clamp(92px,16%,142px);aspect-ratio:360/220;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(5px 6px 0 #07132322);will-change:left}.cart svg{display:block;width:100%;height:100%;overflow:visible}.cart.is-docking{animation:cart-dock .22s ease-out}
.shove{position:absolute;left:18%;right:18%;top:38%;z-index:6;height:18%;pointer-events:none;opacity:.82}.shove svg{width:100%;height:100%}.shove b{position:absolute;left:50%;top:50%;padding:4px 8px;transform:translate(-50%,-50%);color:#071323;background:#fffaf0e8;border-left:5px solid #f36f45;border-radius:4px;font-size:.72rem;font-weight:950;white-space:nowrap}
.coach{position:absolute;left:50%;top:12%;z-index:16;padding:6px 10px;transform:translateX(-50%);color:#071323;background:#f8c35a;border:2px solid #071323;border-radius:7px;box-shadow:0 3px 0 #071323;font-size:.72rem;font-weight:950;pointer-events:none;animation:coach 1s ease-in-out infinite;white-space:nowrap}
.nudge-controls{position:absolute;right:3%;top:12%;z-index:18;display:flex;gap:6px}.nudge-controls button{min-width:44px;min-height:44px;padding:3px;font-size:1.1rem}
.closing-tape{position:absolute;left:27%;right:27%;bottom:2%;z-index:8;height:23%;pointer-events:none}.closing-tape svg{position:absolute;inset:0;width:100%;height:100%}.tape-labels{position:absolute;inset:34% 4% 17%;display:grid;grid-template-columns:repeat(3,1fr);gap:5%}.tape-labels span{display:grid;place-items:center;color:#526477;font-size:clamp(.48rem,1.3vw,.68rem);font-weight:950;text-align:center}.tape-labels span[data-outcome="perfect"]{color:#071323}.tape-labels span[data-outcome="success"]{color:#236b5e}.tape-labels span[data-outcome="nvidia"],.tape-labels span[data-outcome="hype"]{color:#b62b1f}
.feedback{position:absolute;left:50%;bottom:25%;z-index:15;max-width:70%;margin:0;padding:6px 10px;transform:translateX(-50%);color:#071323;background:#fffaf0e8;border-left:5px solid #28527a;border-radius:5px;font-size:clamp(.66rem,1.8vw,.82rem);font-weight:950;text-align:center;pointer-events:none}.feedback[data-mode="brake"]{border-left-color:#f36f45}.feedback[data-mode="perfect"]{border-left-color:#f8c35a}.feedback[data-mode="miss"]{border-left-color:#d9563f}
.pause-layer{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff;background:#102a43eb}.pause-layer b{font-size:clamp(1.15rem,4vw,2rem)}
.result{width:min(1040px,calc(100% - 28px));margin:12px auto 30px;display:grid;grid-template-columns:minmax(0,52%) minmax(0,48%);background:#fffaf0;border:4px solid #071323;border-radius:28px;box-shadow:0 10px 0 #07132324;overflow:hidden}
.result-art{position:relative;min-height:520px;overflow:hidden;background:#dbe6ef}.result-floor{position:absolute;inset:0;width:100%;height:100%}.result-cart{position:absolute;left:43%;top:33%;width:24%;height:auto;filter:drop-shadow(4px 5px 0 #07132322)}.result-tape{position:absolute;left:8%;right:8%;bottom:4%;width:84%;height:auto}
.result-copy{padding:28px;display:flex;flex-direction:column;justify-content:center;min-width:0}.result-copy h2{margin:5px 0 8px;font-size:clamp(1.5rem,3vw,2.65rem);line-height:1.08;overflow-wrap:anywhere}.score-line{display:flex;align-items:baseline;gap:7px}.score-line strong{font-size:clamp(4rem,9vw,7rem);line-height:.9}.score-line span{font-weight:900;color:#526477}.rank-line{margin:8px 0 14px;font-weight:850}.rank-line b{display:inline-block;margin:0 8px;padding:3px 7px;color:#fff;background:#28527a;border-radius:4px}
.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.result-stats p{margin:0;padding:8px 10px;color:#36566d;background:#edf3f7;border-left:4px solid #6fc8e8;border-radius:5px;font-size:.82rem;font-weight:800}.result-stats p:last-child{grid-column:1/-1;background:#fff7dc;border-left-color:#f8c35a}.result-actions{display:grid;gap:9px}.news-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.news-links a{color:#28527a;font-weight:850;text-underline-offset:3px}.disclaimer{color:#526477;font-size:.72rem;line-height:1.5}
@keyframes hero-cart{50%{transform:translateX(15px)}}@keyframes coach{50%{transform:translate(-50%,-3px)}}@keyframes cart-dock{50%{scale:1.08}100%{scale:1}}
@media(max-width:760px){.intro{display:block}.hero-stage{margin:12px 12px 0;min-height:0;aspect-ratio:16/9}.intro-copy{display:block}.intro h1{font-size:clamp(3rem,14vw,4.5rem);line-height:.98}.market-world{height:calc(100svh - 138px);min-height:320px}.result{display:block}.result-art{min-height:0;aspect-ratio:16/10}.result-copy{padding:24px}.result-stats{grid-template-columns:1fr}.feedback{max-width:78%}.company-label{top:56%}.closing-tape{left:22%;right:22%}}
@media(max-width:430px){.play{width:calc(100% - 16px);margin-top:8px;border-width:3px}.play-hud{height:50px;padding:4px;grid-template-columns:.6fr .65fr .65fr 1.25fr auto;gap:3px}.play-hud>div{font-size:.5rem}.play-hud b{font-size:.7rem}.pause-button{min-width:42px;min-height:40px;padding:4px;font-size:.62rem}.market-world{min-height:300px}.cart{width:23%;min-width:82px}.target-band{top:34%;height:25%;width:7%}.target-band span{top:-22px}.company-label{width:28%;font-size:.47rem}.company-label.goal{left:5%}.company-label.nvidia{right:5%}.coach{top:9%;font-size:.62rem}.nudge-controls{right:2%;top:8%}.nudge-controls button{min-width:42px;min-height:42px}.closing-tape{left:17%;right:17%;height:25%}.feedback{bottom:26%;font-size:.64rem}.result-copy{padding:20px 16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}


/* v2: one dominant left-to-right stopping runway */
.cap-state{left:31%;top:12%;width:38%;opacity:.055}
.company-label{top:8%;width:22%;padding:7px 9px;background:#fffaf0f2;border-left-width:6px;font-size:clamp(.56rem,1.5vw,.76rem)}
.company-label.nvidia{left:5%;right:auto;border-left-color:#55b9a5}
.company-label.goal{left:auto;right:5%;border-left-color:#f8c35a}
.target-band{left:80%;top:29%;width:7%;height:47%;background:#f8c35a22;border:0;border-left:6px solid #f36f45;transform:translateX(-50%)}
.target-band i{left:0;top:0;bottom:0;width:5px;background:#fffaf0;transform:translateX(-100%)}
.target-band span{left:50%;top:-54px;min-width:76px;padding:4px 8px;display:grid;gap:0;border:3px solid #071323;border-radius:9px;box-shadow:0 4px 0 #071323;background:#f8c35a;line-height:1;text-align:center}
.target-band span b{font-size:1.45rem}
.target-band span small{margin-top:3px;font-size:.58rem;letter-spacing:.05em}
.overrun-zone{position:absolute;left:82%;right:2%;top:29%;bottom:28%;z-index:2;border:3px dashed #d9563f;border-left:0;border-radius:0 12px 12px 0;background:repeating-linear-gradient(135deg,#d9563f17 0 12px,#fffaf008 12px 24px);pointer-events:none;transition:background .15s ease}
.overrun-zone span{position:absolute;right:8px;top:8px;color:#b62b1f;font-size:.62rem;font-weight:950;letter-spacing:.08em}
.market-world.is-overrun .overrun-zone{background:repeating-linear-gradient(135deg,#d9563f3d 0 12px,#fffaf012 12px 24px)}
.cart{--cart-x:8%;top:53%;width:clamp(96px,17%,148px)}
.position-value{position:absolute;left:50%;top:-22px;z-index:2;min-width:48px;padding:3px 7px;transform:translateX(-50%);color:#071323;background:#fffaf0;border:3px solid #17324d;border-radius:999px;box-shadow:0 3px 0 #17324d;font-size:.85rem;font-weight:950;text-align:center}
.position-value.is-perfect{background:#f8c35a;scale:1.14}
.coach{top:20%}
.nudge-controls{top:18%}
.shove{top:42%}
.closing-tape{left:29%;right:29%;bottom:0;height:20%}
.feedback{bottom:21%;max-width:74%}

@media(max-width:760px){
  .company-label{top:7%;width:25%}
  .cart{top:54%}
  .coach{top:19%}
  .closing-tape{left:23%;right:23%;height:20%}
  .feedback{bottom:21%}
}
@media(max-width:430px){
  .company-label{top:6%;width:29%;font-size:.5rem}
  .company-label.nvidia{left:3%}.company-label.goal{right:3%}
  .target-band{left:80%;top:31%;height:45%;width:9%}
  .target-band span{top:-49px;min-width:68px}
  .target-band span b{font-size:1.25rem}
  .overrun-zone{left:83%;right:1%;top:31%;bottom:24%}
  .cart{top:55%;width:24%;min-width:86px}
  .position-value{top:-19px;font-size:.72rem}
  .coach{top:20%;font-size:.6rem}
  .nudge-controls{top:17%}
  .closing-tape{left:18%;right:18%;height:19%}
  .feedback{bottom:19%;font-size:.62rem}
}
