
:root{color-scheme:dark;--navy:#0c1831;--cyan:#63f7eb;--gold:#ffe6a2}*{box-sizing:border-box}body{margin:0;background:#08132a;color:#edf7ff;font:15px system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}button,select,input{font:inherit}button,select{color:inherit;background:#1b3155;border:1px solid #466083;border-radius:12px;cursor:pointer}button{padding:10px 15px}button:hover{background:#294669}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--cyan);border-color:var(--cyan);color:#082a38;font-weight:800}button.primary:hover{background:#a2fff4}.shell{height:90vh;height:min(850px,90vh);height:min(850px,90dvh);min-height:390px;display:flex;flex-direction:column}.top{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 26px;background:#0b1835f5;border-bottom:1px solid #345481;z-index:2}.brand{display:flex;align-items:center;gap:13px}.robot-logo{width:34px;height:31px;background:#d9f7ff;border:2px solid #6ddfcf;border-radius:10px;display:grid;place-items:center;color:#005c68;font-weight:900}.name{font-size:23px;font-weight:900;letter-spacing:1px;line-height:1}.name small{display:block;font-size:10px;font-weight:600;color:#8faac9;letter-spacing:2px;margin-top:7px}.badge{font-size:10px;letter-spacing:1px;color:#ffe6a2;border:1px solid #bb945b77;border-radius:5px;padding:4px 6px}.stats{display:flex;gap:29px;text-align:center}.stat small{font-size:10px;letter-spacing:1.5px;display:block;color:#96aecb}.stat strong{font-size:23px;font-variant-numeric:tabular-nums}.actions{display:flex;gap:8px}.icon{width:40px;height:40px;display:grid;place-items:center;padding:0;font-size:17px}.arena{position:relative;flex:1;min-height:0;isolation:isolate;background:#173b68;overflow:hidden}canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.trail-label{position:absolute;top:21px;left:24px;font-size:10px;letter-spacing:2px;color:#d4eaff;opacity:.8;pointer-events:none}.progress{position:absolute;right:25px;top:25px;display:flex;align-items:center;flex-direction:column;gap:9px;pointer-events:none}.progress .tube{height:150px;width:13px;border-radius:10px;background:#101f3bba;border:1px solid #9bc6e65c;display:flex;align-items:flex-end;padding:2px;overflow:hidden}.progress .fill{width:100%;height:0;border-radius:8px;background:linear-gradient(#a5fff6,#19b8d1);box-shadow:0 0 15px #55ffe6;transition:height .2s}.progress small{font-size:11px;font-variant-numeric:tabular-nums}.tray{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:min(550px,calc(100% - 160px));padding:14px 25px 12px;border:1px solid #5cb9e591;border-radius:25px;background:linear-gradient(145deg,#102341ed,#0a1630f2);box-shadow:0 10px 45px #07132899,inset 0 1px 0 #b9f5ff20;text-align:center;cursor:text}.tray h2{font-size:17px;margin:0 0 10px;font-weight:650;color:#d9e9ff}.letters{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:49px}.letter{min-width:35px;height:47px;display:inline-grid;place-items:center;background:#253d60;border:1px solid #4f6c90;border-radius:10px;font-size:27px;font-weight:750;font-family:ui-monospace,monospace}.letter.done{color:#6bfff0;background:#0868788c;border-color:#31dbc7}.letter.current{background:#ffe6a2;color:#17243e;border-color:#fff4ce;box-shadow:0 0 14px #ffd57033}.tray p{margin:9px 0 0;font-size:11px;color:#aec5e4}.tray.error{border-color:#ff7c93;animation:shake .16s 2}.corner{position:absolute;bottom:30px;background:#0c213ddd;border:1px solid #7398bf6b;border-radius:16px;padding:9px 14px;min-width:96px;text-align:center;pointer-events:none}.corner strong{font-size:24px;color:#7efaf1}.corner small{display:block;color:#adc4e0;font-size:9px;letter-spacing:1px}.corner.left{left:24px}.corner.right{right:24px}.combo{position:absolute;left:24px;top:49px;font-weight:750;color:#ffe3a1;font-size:13px;pointer-events:none}.danger{position:absolute;top:20px;left:50%;transform:translateX(-50%);color:#ffe5ba;background:#5c2845c9;padding:7px 15px;border:1px solid #ffb37c77;border-radius:30px;font-size:12px;pointer-events:none}.hidden{display:none!important}.overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:20px;background:#06142c70;backdrop-filter:blur(6px)}.panel{width:min(480px,100%);max-height:100%;overflow:auto;background:linear-gradient(150deg,#172d50f5,#0b1933fa);border:1px solid #6b9bc180;border-radius:28px;box-shadow:0 25px 80px #03102799;padding:29px;text-align:center}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#78fff0;font-weight:750}.panel h1{font-size:42px;letter-spacing:1px;margin:8px 0 9px;font-weight:900}.panel h2{font-size:31px;margin:8px 0 12px}.panel p{color:#bed1e9;font-size:14px;line-height:1.65;margin:10px 0}.avatar{width:88px;height:71px;margin:15px auto 12px;border:4px solid #a1f5ef;border-radius:24px;background:linear-gradient(#efffff,#93becd);box-shadow:0 0 45px #34eddd2a;position:relative;transform:rotate(-5deg)}.avatar:before{content:'⌒ ⌒';display:grid;place-items:center;position:absolute;inset:10px 7px;border-radius:14px;background:#0a2436;color:#59ffe6;font-size:24px;font-weight:bold}.avatar:after{content:'';position:absolute;width:5px;height:18px;background:#8de8ea;top:-20px;left:39px;border-radius:6px}.settings{display:flex;gap:12px;justify-content:center;margin:18px 0}.settings label{display:flex;flex-direction:column;gap:5px;text-align:left;font-size:10px;color:#afc7e2;letter-spacing:1px;flex:1}.settings select{padding:10px 8px;min-width:0;width:100%;font-size:13px}.wide{width:100%;padding:14px}.panel .foot{font-size:10px;color:#8ba6c9;margin-top:14px}.panel .buttons{display:flex;gap:9px;margin-top:18px}.panel .buttons button{flex:1}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.result-stats div{background:#09182a80;border:1px solid #46648660;padding:12px 5px;border-radius:12px}.result-stats strong{font-size:23px;color:#76f7ec;display:block}.result-stats small{color:#a9c0db;font-size:10px}.kbd{padding:1px 5px;border:1px solid #527094;border-radius:5px;background:#213957;color:#dfebff;font:11px ui-monospace,monospace}.mobile-input{font-size:16px;position:absolute;opacity:.015;width:1px;height:1px;bottom:160px;left:50%;padding:0;border:0}.status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.footer{height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 25px;background:#09162d;color:#6f8cac;font-size:10px}.toast{position:absolute;top:70px;left:50%;transform:translateX(-50%);background:#081a33eb;border:1px solid #4d829a;border-radius:12px;padding:9px 15px;font-size:12px;z-index:8;pointer-events:none;white-space:nowrap}@keyframes shake{50%{transform:translateX(calc(-50% + 4px))}}@media(max-width:650px){.top{padding:10px 12px;gap:10px;min-height:65px}.name{font-size:16px}.name small{font-size:8px;letter-spacing:1px}.badge,.robot-logo{display:none}.stats{gap:12px}.stat strong{font-size:18px}.stat small{font-size:8px;letter-spacing:.5px}.actions{gap:5px}.icon{width:33px;height:34px;font-size:14px}.tray{width:calc(100% - 28px);bottom:67px;padding:12px 12px 10px;border-radius:19px}.tray h2{font-size:14px;margin-bottom:8px}.letter{min-width:26px;height:36px;font-size:21px;border-radius:7px}.letters{gap:4px;min-height:36px}.tray p{font-size:10px}.corner{bottom:13px;min-width:86px;padding:6px 12px;border-radius:12px}.corner strong{font-size:19px}.corner.left{left:15px}.corner.right{right:15px}.progress{right:14px;top:19px}.progress .tube{height:95px}.trail-label{left:15px;top:20px;font-size:8px;letter-spacing:1px}.combo{left:15px;top:40px;font-size:11px}.danger{top:15px;font-size:10px;padding:5px 9px}.panel{padding:22px;border-radius:23px}.panel h1{font-size:34px}.panel p{font-size:13px}.footer{padding:0 15px;font-size:8px}.footer span:last-child{display:none}.panel .avatar{margin-top:12px;width:75px;height:61px}.panel .avatar:after{left:33px}.settings{margin:14px 0}.overlay{padding:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}.rr-wrap{max-width:1500px;margin:0 auto;padding:18px}.rr-game{border:1px solid #426386;border-radius:20px;overflow:hidden}.rr-topline{display:flex;justify-content:space-between;margin-bottom:12px;gap:12px}.rr-topline a,.rr-guide a{color:#91f7ed}.rr-gate{min-height:370px;background:linear-gradient(90deg,#0b1835eb,#0b18356b),url(./assets/sky-tower.jpg) center/cover;border:1px solid #587ba0;border-radius:24px;padding:40px;display:flex;align-items:center}.rr-gate h2{font-size:36px}.rr-gate p{max-width:580px;line-height:1.8;color:#cce0f5}.rr-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.rr-links a{padding:11px 17px;color:#0b263d;background:#88f9e5;border-radius:10px;text-decoration:none;font-weight:700}.rr-guide{max-width:1050px;margin:35px auto;line-height:1.8;color:#c8d9ed}.rr-guide h1,.rr-guide h2{color:#f1f8ff}.rr-guide section{margin:25px 0}.rr-guide h1{font-size:30px}.avatar{background:transparent url(./assets/robot.webp) center/contain no-repeat;border:0;border-radius:0;box-shadow:none;transform:none;width:100px;height:105px}.avatar:before,.avatar:after{display:none}.mobile-input{font-size:16px;opacity:1;width:150px;height:24px;left:50%;transform:translateX(-50%);bottom:0;background:#102543;color:#bddeef;border-radius:6px;text-align:center}.footer{height:32px}.shell:fullscreen{height:100vh;height:100dvh;max-height:none}.panel{background:linear-gradient(150deg,#142d4deb,#0b1933f5)}@media(max-width:650px){.rr-wrap{padding:10px}.rr-gate{padding:25px}.shell{height:85vh;height:85dvh;min-height:480px}.rr-game{border-radius:14px}.rr-guide{padding:0 8px}.rr-guide h1{font-size:26px}.mobile-input{width:125px;font-size:16px;height:23px}}@media(max-width:420px){.top{flex-wrap:wrap;padding:9px 12px;gap:9px}.top .brand{order:1}.top .actions{order:2;margin-left:auto}.top .stats{order:3;width:100%;justify-content:center;gap:35px}.stat strong{white-space:nowrap}.top .name{font-size:15px}.top .icon{width:32px;height:32px}}

/* Safari flex/canvas sizing: intrinsic canvas height must not grow the arena. */
.arena{flex:1 1 0%;min-width:0}.shell:-webkit-full-screen{height:100vh;max-height:none}.overlay{-webkit-backdrop-filter:blur(6px)}
