:root{--blue:#003a63;--red:#e51937;--white:#f5f5f0;--gold:#f4c95d;--cyan:#58d7ee;--ink:#06131e}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#04101a;color:var(--white);font-family:Arial Black,Arial,sans-serif}body{background:radial-gradient(circle at 50% -10%,#12608f,#04101a 55%,#010509)}button{font:inherit;cursor:pointer}.game-shell{width:min(100%,980px);min-height:100svh;margin:auto;position:relative;overflow:hidden;background:linear-gradient(145deg,#063b60,#061522);box-shadow:0 0 80px #000}.screen{display:none;min-height:100svh;position:relative}.screen.active{display:flex;flex-direction:column;animation:enter .4s ease both}.start-screen{justify-content:flex-end}.box-art{position:absolute;inset:0}.box-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,#00192d99 48%,#04111eea 75%)}.box-art img{width:100%;height:72%;object-fit:cover;object-position:center top}.start-card{position:relative;z-index:2;padding:26px 22px max(28px,env(safe-area-inset-bottom));text-align:center}.eyebrow{margin:0 0 9px;color:var(--gold);letter-spacing:.15em;font-size:.76rem}.start-card h1,.final-card h2,.elevator-screen h2{margin:0;font-size:clamp(3rem,13vw,6.7rem);line-height:.8;letter-spacing:-.075em;text-shadow:5px 5px 0 var(--red),9px 9px 0 #000}.start-card h1 span,.final-card h2 span{color:var(--gold)}.start-card>p:not(.eyebrow,.event-mini){max-width:600px;margin:18px auto;font:700 1rem/1.45 Arial,sans-serif}.primary,.secondary{border:0;padding:15px 22px;min-height:52px;clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%);transition:.15s}.primary{background:var(--red);color:#fff;box-shadow:5px 5px 0 var(--gold)}.secondary{background:var(--white);color:var(--blue)}.primary:active,.secondary:active,.dice-btn:active{transform:translateY(3px)}.event-mini{font-size:.72rem;letter-spacing:.08em;margin:20px 0 0}.board-screen{padding-bottom:190px;background:radial-gradient(circle at 20% 5%,#16608d,#061522 35%)}.game-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#001d33f5;border-bottom:3px solid var(--red);box-shadow:0 4px 20px #0007}.game-header strong{display:block;font-size:clamp(.95rem,4vw,1.35rem);letter-spacing:-.04em}.mini{display:block;color:var(--gold);font-size:.54rem;letter-spacing:.14em}.sound-btn{border:1px solid #ffffff80;background:#082e4b;color:#fff;padding:8px;font-size:.61rem}.scorebar{position:sticky;top:59px;z-index:29;display:grid;grid-template-columns:repeat(3,1fr);background:#04111eee;padding:7px 13px;border-bottom:1px solid #ffffff2c;text-align:center;font-size:.56rem}.scorebar b{display:block;color:var(--gold);font-size:.93rem}.board-wrap{padding:25px 10px 35px}.board{height:1130px;position:relative;max-width:760px;margin:auto;border:5px solid #e8dfbd;background:radial-gradient(circle at 30% 30%,#ffffff10 0 3px,transparent 4px),linear-gradient(135deg,#164c70,#082943);background-size:25px 25px,auto;box-shadow:9px 9px 0 var(--red),inset 0 0 45px #0008;overflow:hidden}.board:before{content:"HOWARD HOMECOMING • THE ROAD TO PWRMV V";position:absolute;inset:12px 0 auto;text-align:center;color:#ffffff55;font-size:.67rem;letter-spacing:.12em}.route-line{position:absolute;inset:0;width:100%;height:100%}.route-line path{fill:none;stroke:#f5f5f080;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(3px 3px 0 #00101c)}.space{position:absolute;width:54px;height:54px;transform:translate(-50%,-50%);border:4px solid #f8f4e8;border-radius:16px;background:var(--gold);box-shadow:4px 5px 0 #00101c;display:grid;place-items:center;color:#061522;z-index:2}.space:nth-of-type(4n+1){background:var(--red);color:#fff}.space:nth-of-type(4n+2){background:var(--cyan)}.space:nth-of-type(4n+3){background:#fff}.space.checkpoint{width:68px;height:68px;border-radius:50%;background:var(--blue);color:#fff;border-color:var(--gold);box-shadow:0 0 0 4px var(--red),6px 7px 0 #00101c}.space.reached{filter:brightness(1.3);box-shadow:0 0 24px var(--gold),5px 6px 0 #00101c}.space-num{font-size:.65rem}.landmark{font-size:1.42rem}.space-label{position:absolute;z-index:3;transform:translate(-50%,0);width:122px;text-align:center;font-size:.62rem;line-height:1.05;text-shadow:2px 2px 0 #000,0 0 5px #000;pointer-events:none}.space-label b{display:inline-block;background:#001c31e8;padding:4px 5px;border:1px solid #ffffff38}.bison-token{position:absolute;z-index:12;width:52px;height:52px;display:grid;place-items:center;font-size:2.45rem;transform:translate(-50%,-72%);filter:drop-shadow(0 5px 2px #000);transition:left .2s,top .2s}.bison-token.stomp{animation:stomp .2s}.turn-card{position:fixed;z-index:40;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,980px);display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom));background:#001b2ff7;border-top:4px solid var(--gold);box-shadow:0 -12px 35px #000b}.turn-copy span{font-size:.6rem;color:var(--red);letter-spacing:.13em}.turn-copy strong{display:block;font-size:.95rem;margin:2px 0}.turn-copy p{font:700 .75rem/1.3 Arial,sans-serif;margin:0;color:#cad8e1;max-width:540px}.dice-btn{width:86px;min-height:94px;border:0;background:var(--red);color:white;box-shadow:5px 5px 0 var(--gold)}.dice-btn:disabled{filter:grayscale(.7);opacity:.6}.die{font-size:2.3rem;display:block;line-height:1}.dice-btn b{font-size:.75rem}.elevator-screen{align-items:center;justify-content:center;text-align:center;padding:35px 20px;background:radial-gradient(circle,#174d6e,#030b11)}.elevator-screen h2{font-size:clamp(3rem,14vw,6.5rem);margin-bottom:28px}.elevator{width:min(86vw,430px);border:10px solid #747b7e;background:#111;box-shadow:12px 12px 0 var(--red)}.floor-readout{padding:12px;background:#050505;color:#e84b40;font-size:.8rem;letter-spacing:.2em}.floor-readout b{font-size:1.7rem}.doors{height:390px;display:flex;position:relative;overflow:hidden;background:#242a2d}.doors i{width:50%;background:linear-gradient(90deg,#444,#a9afb1 30%,#5a5f61);border:1px solid #222;transition:transform 1s}.doors.open i:first-child{transform:translateX(-102%)}.doors.open i:nth-child(2){transform:translateX(102%)}.door-logo{position:absolute;inset:45% 0 auto;font-size:2rem;transition:opacity .4s}.door-logo b{color:var(--red)}.doors.open .door-logo{opacity:0}.elevator-copy{font:700 1rem Arial;margin-top:25px}.final-screen{justify-content:flex-end}.party-image{position:absolute;inset:0}.party-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#081a2545,#001321a6 50%,#02090ff5 79%)}.party-image img{width:100%;height:72%;object-fit:cover}.flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#fff9,transparent 20%);animation:flash 1.4s infinite alternate}.final-card{position:relative;z-index:2;text-align:center;padding:24px 18px max(25px,env(safe-area-inset-bottom));background:#001321e8;border-top:4px solid white}.final-card h2{font-size:clamp(2.4rem,11vw,5.6rem)}.final-stats{display:flex;justify-content:center;gap:28px;margin:18px 0 10px;color:var(--gold);font-size:.65rem}.final-stats b{display:block;font-size:1.25rem}.event-lockup{max-width:610px;margin:10px auto 18px;padding:12px;border-block:2px solid var(--gold)}.event-lockup>*{display:block;margin:3px}.event-lockup h3{font-size:2rem;margin:0}.event-lockup h3 em{font-style:normal;color:var(--red)}.event-lockup strong{color:var(--gold)}.event-lockup span{font-size:.75rem;letter-spacing:.12em}.event-lockup p{font:700 .88rem Arial}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:540px;margin:auto}.share-status{font:700 .78rem Arial;min-height:1em}.toast{position:fixed;z-index:80;left:50%;top:16%;transform:translate(-50%,-150px);background:#fff;color:#071521;padding:14px 18px;border-left:7px solid var(--red);box-shadow:0 18px 50px #0009;transition:.25s;max-width:88%;width:max-content;font:700 .9rem Arial}.toast.show{transform:translate(-50%,0)}@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1}}@keyframes stomp{50%{transform:translate(-50%,-88%) scale(1.15) rotate(-5deg)}}@keyframes flash{to{opacity:.15}}@media(min-width:720px){.board-screen{padding-bottom:150px}.board{height:1200px}.space{width:62px;height:62px}.space.checkpoint{width:76px;height:76px}.space-label{width:150px;font-size:.72rem}.turn-card{padding-inline:35px}.turn-copy strong{font-size:1.15rem}.turn-copy p{font-size:.9rem}.dice-btn{width:110px}.final-card{border:4px solid white;box-shadow:10px 10px 0 var(--red);margin:40px auto;width:min(90%,680px)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
