@import url('../games/viking-dash/style.css');
@font-face{font-family:Arcade;src:local('Arial')}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#20352d;background:#f7f7ef;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #527e46;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-1.7px}h1{font-size:clamp(36px,5.2vw,74px)}h2{font-size:34px}h3{font-size:24px}p+p{margin-top:14px}.header{min-height:100px;max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;gap:32px;border-bottom:1px solid #d8ddd2}.brand{font-size:29px;font-weight:900;letter-spacing:-1.6px;line-height:1.1}.brand span{color:#739653}.brand i{display:block;font-size:8px;letter-spacing:2px;font-style:normal;margin-top:8px}.brand.small{font-size:20px}nav{display:flex;gap:24px;align-items:center;margin-left:auto;font-size:13px;font-weight:bold}nav a.active{border-bottom:2px solid #20352d}nav[hidden]{display:none}.connection{border:1px solid #c9d1bf;border-radius:7px;background:transparent;padding:11px 14px;font-size:12px;font-weight:bold;display:flex;gap:9px;align-items:center}.status-dot{width:7px;height:7px;background:#b9beb2;border-radius:50%;display:inline-block}.ready .status-dot{background:#47844f;box-shadow:0 0 0 4px #e1ead5}main{max-width:1300px;padding:0 40px 80px;margin:auto;min-height:70vh}footer{border-top:1px solid #d8ddd2;max-width:1300px;margin:auto;display:flex;justify-content:space-between;gap:20px;padding:30px 40px;color:#738070;font-size:11px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;padding:68px 0 55px;align-items:center}.eyebrow{font:10px monospace;letter-spacing:2px;text-transform:uppercase;display:flex;gap:10px;align-items:center;margin-bottom:20px}.eyebrow:before{content:'';height:6px;width:6px;background:#7c995d}.hero h1{max-width:650px}.hero h1 em{font-family:Georgia,serif;font-weight:normal;color:#66834e}.hero p.description{color:#71806f;max-width:410px;margin:24px 0;line-height:1.8}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#263e30;color:#fff;border:1px solid #263e30;border-radius:6px;padding:12px 20px;font-weight:bold;font-size:12px;min-height:43px}.button:hover{background:#3a5741}.button.secondary{background:transparent;color:#263e30;border-color:#c9d1bf}.button.secondary:hover{background:#e9eddf}.button.light{background:#d9f0a8;color:#20352d;border-color:#d9f0a8}.button.danger{background:#9c4039;border-color:#9c4039}.text-button{border:none;background:none;color:inherit;padding:6px;font-size:12px;text-decoration:underline}.hero-art{position:relative;min-height:320px;border-radius:12px;background:#e9eddf;background-image:radial-gradient(#c7cebb 1px,transparent 1px);background-size:19px 19px;display:grid;place-items:center;overflow:hidden}.hero-art:before{content:'';position:absolute;width:260px;height:260px;border:1px solid #c5cfb8;border-radius:50%}.art-chip{position:absolute;font:10px monospace;background:#f7f7ef;border:1px solid #d1d7c6;border-radius:6px;padding:8px 12px;box-shadow:0 6px 20px #243a2910}.art-chip.one{top:35px;left:25px;transform:rotate(-6deg)}.art-chip.two{right:15px;bottom:40px;transform:rotate(5deg)}.microbit{position:relative;width:270px;height:180px;border-radius:18px;background:#23362f;box-shadow:14px 18px 0 #cad1bd;transform:rotate(-9deg);display:flex;align-items:center;justify-content:space-evenly;border:7px solid #172820}.microbit:after{content:'▌ ▌ ▌ ▌ ▌';position:absolute;bottom:-19px;background:#c6b675;color:#23362f;width:155px;text-align:center;font-size:25px;letter-spacing:2px;height:30px;border-radius:0 0 5px 5px}.microbit .pad{background:#7b897b;width:27px;height:27px;border:6px solid #425547;border-radius:50%;font:10px monospace;display:grid;place-items:center;color:#172820}.led-grid{display:grid;grid-template-columns:repeat(5,9px);gap:5px}.led-grid span{width:9px;height:9px;border-radius:2px;background:#364a39}.led-grid span.on{background:#d8ef9e;box-shadow:0 0 9px #c7ed7b80}.microbit .logo{position:absolute;top:8px;color:#c6b675;font-size:15px}.hero-note{font:10px monospace;color:#7c8975;margin-top:19px}.steps-strip{display:flex;align-items:center;justify-content:space-between;border-block:1px solid #d8ddd2;padding:20px 0;margin-bottom:50px;font-size:12px}.steps-strip span{display:flex;gap:12px;align-items:center}.steps-strip b{font:10px monospace;border:1px solid #c5ceba;padding:4px 7px;border-radius:4px}.steps-strip i{font-style:normal;color:#a3ad98}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-head p{font-size:13px;color:#7a8774;margin-top:10px}.pill{font:10px monospace;background:#e7ecdd;border:1px solid #d9e0ce;border-radius:30px;padding:5px 10px;white-space:nowrap}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.game-card{border:1px solid #d6ddcd;border-radius:9px;overflow:hidden;background:#fffef8;display:flex;flex-direction:column}.game-art{height:185px;position:relative;overflow:hidden;display:grid;place-items:center}.game-art.green{background:#dce7c8}.game-art.purple{background:#e0dded}.game-art.yellow{background:#f1e7c4}.game-art.pink{background:#efdbd6}.game-art.blue{background:#d9e6e9}.game-art canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.game-art .art-label{position:absolute;top:14px;left:14px;font:9px monospace;letter-spacing:1px;background:#fff9;padding:4px 8px;border-radius:3px}.card-body{padding:23px;display:flex;flex-direction:column;gap:14px;flex:1}.card-body h3{font-size:24px}.card-body p{font-size:13px;color:#78816f;flex:1}.card-foot{border-top:1px solid #e3e7db;padding-top:16px;display:flex;align-items:center;justify-content:space-between;font:10px monospace;gap:8px}.card-foot a{font:12px Arial;font-weight:bold}.lab-banner{display:grid;grid-template-columns:auto 1fr auto;gap:25px;align-items:center;margin-top:35px;padding:28px;background:#e9eedf;border:1px solid #d1dbc3;border-radius:9px}.lab-icon{font-size:33px}.lab-banner h3{font-size:23px}.lab-banner p{font-size:12px;color:#78816f;margin-top:7px}.muted{color:#75816f}.page-heading{padding:48px 0 30px}.page-heading h1{font-size:45px}.page-heading>.muted{margin-top:15px;max-width:660px}.panel{background:#fffef8;border:1px solid #d6ddcd;border-radius:9px;padding:26px}.stack{display:grid;gap:20px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.notice{padding:13px 17px;border:1px solid #d5dbc8;border-radius:6px;background:#edf1e3;font-size:13px;margin:12px 0;white-space:pre-wrap}.notice.error{background:#fbebe5;border-color:#e9c4b7;color:#843b32}.notice.success{background:#e3efda;color:#3b6534}.field{display:grid;gap:6px;margin:15px 0;font-size:12px;font-weight:bold}.field input,.field textarea,.field select,input,select,textarea{padding:11px 12px;background:#fafbf4;border:1px solid #cbd4bf;border-radius:5px;width:100%;color:#20352d}textarea{min-height:110px;resize:vertical}.auth-panel{max-width:470px;margin:0 auto 50px}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.toolbar select{width:auto}.game-frame{background:#101b19;border-radius:12px;overflow:hidden;position:relative;color:#ecf2e3}.game-toolbar{padding:16px 20px;display:flex;gap:18px;align-items:center;justify-content:space-between;border-bottom:1px solid #2a3e32;font:12px monospace}.game-frame canvas{width:100%;height:auto;aspect-ratio:16/9;display:block;image-rendering:pixelated}.game-overlay{position:absolute;inset:54px 0 0;background:#101b19dc;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;gap:16px;backdrop-filter:blur(4px)}.game-overlay[hidden]{display:none}.game-overlay h2{font-size:40px}.game-overlay p{max-width:520px;color:#c1cebb}.game-overlay select,.game-overlay input{max-width:350px}.game-overlay .notice{color:#20352d;max-width:550px}.controls-hint{display:flex;justify-content:center;gap:30px;padding:18px;font:11px monospace;border-top:1px solid #293a30}.key{border:1px solid #5e755e;border-radius:4px;padding:3px 7px;color:#d5efb4}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font:10px monospace;color:#76856c;text-transform:uppercase;letter-spacing:1px}td,th{padding:14px 10px;border-bottom:1px solid #e0e6d7}tr.highlight{background:#eaf3d9}.table-wrap{overflow-x:auto}.table-wrap .text-button{text-align:left}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat{padding:20px;border:1px solid #d7ddce;border-radius:7px}.stat strong{font-size:28px;display:block}.stat span{font:10px monospace;color:#718168}.chat-list{display:grid;gap:15px;margin:20px 0}.chat-message{padding:18px;border-radius:7px;background:#eef1e7;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.user{background:#e1ead7;margin-left:15%}.chat-message small{display:block;font:10px monospace;margin-bottom:9px;color:#74836b}.lab-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sensor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px}.sensor{border:1px solid #e0e5d6;padding:10px;border-radius:5px;font:10px monospace}.sensor strong{font-size:18px;display:block}.lab-device{min-height:250px;display:grid;place-items:center;background:#edf0e5;border-radius:6px;overflow:hidden}.lab-device .microbit{transition:transform .09s linear;box-shadow:8px 10px 0 #cad1bd}.microbit .pad.pressed{background:#d8ef9e}.microbit .logo.pressed{color:#fff7ad}.graph{display:block;width:100%;height:80px;background:#edf1e7;border-radius:5px;margin:6px 0 15px}.pixel-editor{display:grid;grid-template-columns:repeat(5,38px);gap:5px;margin:15px 0}.pixel-editor button{width:38px;height:38px;padding:0;border:1px solid #aebda5;border-radius:4px}.output-tabs{display:flex;gap:8px;flex-wrap:wrap}.log{max-height:220px;overflow:auto;font:11px monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:15px}.page-footer{margin-top:30px;font:11px monospace;color:#718168}.danger-zone{border-color:#d9afa5}.skip{position:absolute;top:-60px;left:10px;background:#fff;padding:10px;z-index:99}.skip:focus{top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#233b2c;color:white;border-radius:6px;padding:14px 22px;box-shadow:0 5px 25px #0002;max-width:90vw;z-index:100;font-size:13px}body.playing .header nav{display:none}body.playing main{max-width:1200px}body.playing .page-heading{padding-top:25px}details summary{cursor:pointer;font-weight:bold}.busy{opacity:.6}@media(min-width:1450px){.hero{padding-block:80px}.hero-art{min-height:360px}}@media(max-width:950px){.header{gap:15px;padding:20px 25px;flex-wrap:wrap}.header nav{order:3;width:100%;justify-content:center}.connection{margin-left:auto}.hero{gap:25px}.hero-art{min-height:280px}.game-grid{grid-template-columns:repeat(2,1fr)}main{padding-inline:25px}.microbit{width:235px;height:160px}.lab-layout{grid-template-columns:1fr}.hero h1{font-size:53px}}@media(max-width:620px){.hero{grid-template-columns:1fr;padding-top:38px}.hero h1{font-size:48px}.hero-art{min-height:260px}.hero p.description{margin:20px 0}.steps-strip{gap:14px;flex-wrap:wrap;margin-bottom:35px}.steps-strip i{display:none}.steps-strip span{font-size:11px}.game-grid,.columns{grid-template-columns:1fr}.game-art{height:190px}.section-head{align-items:start}.section-head h2{font-size:29px}.lab-banner{grid-template-columns:auto 1fr;padding:20px;gap:15px}.lab-banner .button{grid-column:1/-1}.header .brand{font-size:24px}.connection{font-size:10px;padding:9px}.header nav{gap:18px;font-size:12px}.page-heading h1{font-size:35px}footer{flex-wrap:wrap;padding:25px}.game-overlay h2{font-size:25px}.game-overlay{position:relative;inset:auto;min-height:230px}.game-overlay[hidden]{display:none}.game-frame canvas{aspect-ratio:4/3}.game-toolbar{font-size:10px}.controls-hint{gap:10px;font-size:9px}.panel{padding:18px}.stat-grid{grid-template-columns:1fr}.sensor-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lab-device .microbit{transition:none}}

main:focus{outline:none}
