@font-face{font-family:Game2020;src:url("fonts/Vazirmatn-Regular.woff2") format("woff2"),url("fonts/Vazirmatn-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Game2020;src:url("fonts/Vazirmatn-Bold.woff2") format("woff2"),url("fonts/Vazirmatn-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
:root{--ink:#111d38;--muted:#7c88a2;--line:#dce5f4;--blue:#2675f4;--violet:#5b58ef;--cyan:#37b8e8;--good:#15816e;--bad:#b4415d}
*{box-sizing:border-box}
html{min-height:100%;background:#f5f7ff}
body{position:relative;margin:0;min-height:100vh;overflow-x:hidden;color:var(--ink);font:400 16px/1.85 Game2020,Tahoma,Arial,sans-serif;background:radial-gradient(circle at 82% 10%,rgba(57,184,232,.18),transparent 30%),radial-gradient(circle at 8% 72%,rgba(91,88,239,.14),transparent 34%),linear-gradient(145deg,#f9fbff 0%,#f2f5ff 56%,#f8f5ff 100%);padding:24px 5%}
body:before,body:after{position:fixed;z-index:0;color:#5067e9;opacity:.065;font:700 126px/1 Arial;pointer-events:none}
body:before{content:"△";top:19%;left:3%;transform:rotate(-12deg)}
body:after{content:"○";right:2%;bottom:6%;font-size:170px}
a{color:var(--blue);text-decoration:none}
.topbar,.shell,footer{position:relative;z-index:1}
.topbar{width:100%;max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.98);border-radius:24px;padding:16px 24px;box-shadow:0 18px 55px rgba(43,61,121,.10),inset 0 -1px 0 rgba(86,105,164,.08)}
.identity{display:flex;align-items:center}.identity strong{display:block;font-size:19px;font-weight:700}.identity small{display:block;margin-top:2px;color:#8994aa;font:10px/1.5 Arial;letter-spacing:2.5px}
.badge{position:relative;display:inline-block;width:58px;height:58px;margin-left:14px;border-radius:18px;color:#fff;text-align:center;font:700 27px/58px Arial;background:linear-gradient(145deg,var(--blue),var(--cyan));box-shadow:0 12px 25px rgba(38,117,244,.28)}
.badge:after{content:"";position:absolute;inset:2px;border:1px solid rgba(255,255,255,.25);border-radius:16px}
.platform{padding:8px 13px;border:1px solid #dfe6f7;border-radius:999px;color:#5b6a8a;background:#f8faff;font:700 10px/1 Arial;letter-spacing:2px}
.shell{width:100%;max-width:980px;margin:0 auto}
.hero{position:relative;text-align:center;padding:40px 0 23px}
.hero:after{content:"×   ○   △   □";display:block;margin:11px auto 0;color:#6371e7;font:700 13px/1 Arial;letter-spacing:7px;opacity:.55}
.eyebrow{display:inline-block;padding:5px 12px;border:1px solid rgba(86,99,232,.16);border-radius:999px;color:#5864e9;background:rgba(255,255,255,.48);font:700 10px/1.4 Arial;letter-spacing:3px}
h1{margin:12px 0 4px;font-size:38px;line-height:1.5;font-weight:700;letter-spacing:0}
h1 span{display:inline-block;color:var(--violet);background:linear-gradient(90deg,var(--violet),var(--blue));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{margin:0;color:#7c879e;font-size:14px}
.status-card{position:relative;overflow:hidden;min-height:200px;padding:26px 34px;text-align:center;background:rgba(255,255,255,.94);border:1px solid rgba(210,220,239,.9);border-radius:26px;box-shadow:0 20px 55px rgba(45,62,126,.10),inset 0 1px 0 #fff}
.status-card:before{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet))}
.status-card:after{content:"□";position:absolute;left:22px;bottom:4px;color:#5266eb;font:700 72px/1 Arial;opacity:.035}
.card-label{display:inline-flex;align-items:center;padding:5px 12px;margin-bottom:13px;border-radius:999px;color:#6f7d98;background:#f4f6fd;font-size:12px}
.status-dot{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:linear-gradient(145deg,var(--blue),var(--violet));box-shadow:0 0 0 5px rgba(82,96,238,.09)}
#state{font-size:19px;font-weight:700;overflow-wrap:break-word}
#det{margin-top:8px;color:#7b879f;font-size:13px}#det b{color:#405274;font-weight:700}
#cache{min-height:20px;margin-top:5px;color:#71809b;font-size:12px}
.ok,.cacheok,.safe{color:var(--good)!important}.bad,.danger{color:var(--bad)!important}.warn{color:#82652e!important}
button{min-width:260px;margin:18px auto 0;padding:14px 34px;border:0;border-radius:15px;color:#fff;cursor:pointer;background:linear-gradient(110deg,var(--violet),#3554ed);box-shadow:0 13px 28px rgba(67,80,233,.28);font:700 15px/1.4 Game2020,Tahoma,Arial,sans-serif}
button:focus{outline:3px solid rgba(82,102,238,.35);outline-offset:4px}button[hidden]{display:none}
.features{display:flex;margin:16px -5px 0}.features>div{position:relative;flex:1;margin:0 5px;padding:11px 8px;text-align:center;border:1px solid rgba(216,225,241,.95);border-radius:17px;background:rgba(255,255,255,.7);box-shadow:0 8px 24px rgba(51,68,124,.045)}
.features>div:before{content:"";display:block;width:22px;height:3px;margin:0 auto 7px;border-radius:5px;background:linear-gradient(90deg,var(--cyan),var(--violet))}.features b{display:block;font-size:13px;font-weight:700}.features span{display:block;color:#8a95aa;font-size:10px}
footer{margin:24px auto 6px;text-align:center;color:#8591a8;font-size:11px}footer>a{display:block;color:#3f5ae9;font:700 24px/1.7 Arial;letter-spacing:3px}footer small{display:block;margin-top:4px;font:10px/1.5 Arial;letter-spacing:1px}
.execution #state,.execution #out{display:none}#spin{width:50px;height:50px;margin:22px auto;border:4px solid #e4e9fb;border-top-color:var(--violet);border-right-color:var(--blue);border-radius:50%;animation:spin .9s linear infinite;box-shadow:0 0 0 8px rgba(83,98,235,.04)}
@keyframes spin{to{transform:rotate(360deg)}}#msg,.done-text{display:none}.running-text{margin:8px 0;color:#7e8aa2;font-size:13px}
body.done #spin,body.fail #spin,body.done .running-text,body.fail .running-text{display:none}body.fail #msg{display:block;margin:25px auto;color:var(--bad);font-weight:700}body.done .done-text{display:block;margin:25px auto;color:var(--good);font-weight:700}
body.log #spin,body.log .running-text{display:none}body.log #state,body.log #out{display:block;direction:ltr;text-align:left}body.log #out{max-height:370px;margin-top:13px;padding:13px;overflow:auto;border:1px solid #dde4f3;border-radius:13px;background:#f4f6fc;white-space:pre-wrap;font:12px/1.65 monospace}
.legacy-execution #state{display:block;direction:ltr;font-size:18px;font-weight:700}.legacy-execution #out{display:none}.legacy-execution #spin{display:block}
@media(max-width:600px){body{padding:14px}.topbar{padding:14px 16px;border-radius:20px}.platform{display:none}.badge{width:50px;height:50px;line-height:50px;border-radius:15px;font-size:24px}.identity strong{font-size:17px}.hero{padding:32px 0 20px}h1{font-size:29px}h1 span{display:block}.hero p{font-size:12px}.status-card{min-height:190px;padding:23px 17px;border-radius:22px}#state{font-size:16px}.features b{font-size:12px}.features span{font-size:9px}button{width:100%;min-width:0;font-size:14px}footer{margin-top:22px}}
/* Full console view: the document itself never scrolls in landscape. */
@media screen and (orientation:landscape) and (min-width:640px){html,body{width:100%;height:100%;min-height:0;overflow:hidden}body{padding:12px 3vw;display:flex;flex-direction:column}.topbar{flex:0 0 auto;max-width:1180px;padding:8px 18px;border-radius:18px}.badge{width:42px;height:42px;line-height:42px;border-radius:12px;font-size:21px}.badge:after{border-radius:10px}.identity strong{font-size:16px}.identity small{font-size:8px}.platform{font-size:9px;padding:6px 10px}.shell{flex:1 1 auto;min-height:0;max-width:1100px;display:flex;align-items:stretch;flex-wrap:wrap;padding-top:10px}.hero{width:38%;padding:10px 24px 10px 4px;display:flex;flex-direction:column;justify-content:center;text-align:right}.hero:after{margin:10px 0 0 auto}.eyebrow{align-self:flex-start;font-size:9px}h1{margin:8px 0 4px;font-size:28px;line-height:1.4}h1 span{display:block}.hero p{font-size:12px;line-height:1.7}.status-card{width:62%;min-height:0;padding:13px 22px;border-radius:20px;display:flex;flex-direction:column;justify-content:center}.card-label{align-self:center;margin-bottom:6px;padding:3px 10px;font-size:10px}#state{font-size:16px;line-height:1.55}#det{margin-top:4px;font-size:12px;line-height:1.5}#cache{min-height:0;margin-top:3px;font-size:11px;line-height:1.5}#cache:empty{display:none}button{margin-top:8px;padding:9px 25px;font-size:13px}.features{width:100%;height:65px;flex:0 0 65px;margin:10px -4px 0}.features>div{margin:0 4px;padding:6px}.features>div:before{margin-bottom:3px}.features b{font-size:11px;line-height:1.45}.features span{font-size:9px;line-height:1.45}footer{flex:0 0 auto;display:flex;align-items:center;justify-content:center;margin:7px 0 0;line-height:1.4}footer>a{display:inline-block;margin:0 18px;font-size:18px}footer small{margin:0;font-size:9px}#spin{width:43px;height:43px;margin:10px auto}.running-text{margin:5px 0}.legacy-execution #state{font-size:15px}body.log .status-card{justify-content:flex-start}body.log #wrap{min-height:0;display:flex;flex:1 1 auto;flex-direction:column}body.log #out{flex:1 1 auto;min-height:0;max-height:none;margin-top:5px;padding:8px;overflow:auto}}
@media screen and (orientation:landscape) and (min-width:640px) and (max-height:560px){body{padding:7px 3vw}.topbar{padding:5px 15px}.badge{width:34px;height:34px;line-height:34px;font-size:18px}.identity strong{font-size:14px}.identity small{display:none}.shell{padding-top:6px}.hero{padding:5px 18px 5px 4px}.hero:after{display:none}.eyebrow{font-size:8px;padding:3px 8px}h1{font-size:22px;margin:4px 0 2px}.hero p{font-size:10px}.status-card{padding:7px 17px}.card-label{margin-bottom:3px}#state{font-size:13px}#det,#cache{font-size:10px}button{margin-top:5px;padding:7px 20px}.features{height:48px;flex-basis:48px;margin-top:6px}.features>div{padding:3px}.features>div:before{display:none}.features b{font-size:10px}.features span{font-size:8px}footer{margin-top:4px;font-size:9px}footer>a{font-size:16px}#spin{width:34px;height:34px;margin:6px auto;border-width:3px}.running-text{font-size:10px;margin:2px 0}}
@media(prefers-reduced-motion:reduce){#spin{animation:none}}
