@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap";.terminal{background-color:#011627e6;-webkit-backdrop-filter:blur(8px) saturate(80%);backdrop-filter:blur(8px) saturate(80%);border-radius:5px;margin-bottom:20px;color:#fff;display:flex;flex-direction:column;height:100%;border:4px solid rgb(22,22,22);font-size:10px}.terminal .terminal-window{display:flex;flex-direction:column;height:100%}.tab-header{padding:4px 4px 0;border-bottom:1px solid #666}.tabs{display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.tab-btn{background-color:#333;color:#bbb;border:1px solid #444;padding:4px 10px;cursor:pointer;margin-right:2px;border-radius:5px 5px 0 0;transition:background-color .2s ease,box-shadow .2s ease;font-size:12px}.tab-btn:hover{background-color:#444;color:#fff;box-shadow:0 2px 6px #0006}.tab-btn.active{background-color:#555;color:#fff;box-shadow:0 4px 8px #0009;border-bottom:1px solid #666}.tab-content{overflow:auto;padding:10px;border-radius:0 0 5px 5px;flex-grow:1}.children-content{padding:10px;border-top:1px solid #444}.main-area-terminal{grid-area:main-area}.card{max-width:400px;position:relative;box-shadow:none}.card img{display:block;height:auto;max-width:100%}.card.card-back:hover{transform:none}.card.selected-for-play{border:2px solid #3eb8ff;box-shadow:0 0 10px #3eb8ff80;transition:all .3s ease}.card.card-special .card-cost,.card.card-special .card-body,.card.card-special .card-header{border-color:#fff;border-image:linear-gradient(to right,darkblue,darkorchid) 1}.card.card-bug .card-cost,.card.card-bug .card-body,.card.card-bug .card-header{border-color:#dc3545}.card.card-function .card-cost,.card.card-function .card-body,.card.card-function .card-header{border-color:#007bff}.card.card-loop .card-cost,.card.card-loop .card-body,.card.card-loop .card-header{border-color:#28a745}.card.card-variable .card-cost,.card.card-variable .card-body,.card.card-variable .card-header{border-color:#ffc107}.hand{display:grid;grid-template-columns:repeat(7,1fr);gap:1%}.hand .card{transform-origin:bottom center}.hand-terminal{grid-area:hand}.initialize-terminal{grid-area:initialize}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh}.loading-spinner{border:8px solid #f3f3f3;border-top:8px solid #3498db;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{margin-top:16px;font-size:18px;color:#fff}.landing-page{height:100vh;display:grid;grid-template-columns:1fr;grid-template-rows:1fr 2fr;grid-row-gap:10vw;animation:fade 1s ease-in-out .5s forwards;opacity:0}.landing-page .game-title{font-size:9vw;text-align:center;text-shadow:0 0 10px #fff;font-weight:100;color:#fff;margin-bottom:10vw;grid-area:1/1/3/2}.landing-page .input-container{display:flex;flex-direction:column;grid-area:2/1/3/2}.landing-page .input-container form{display:flex;flex-direction:column;align-items:center}.landing-page input{margin-bottom:1vw;text-transform:uppercase}@keyframes fade{0%{opacity:0}to{opacity:1}}.buy-row{display:grid;grid-template-columns:repeat(6,1fr);gap:1%}.refresh-container{margin-top:1rem;text-align:center}.refresh-container .refresh-btn{background:#1e1e1e;border:1px solid #3eb8ff;color:#3eb8ff;padding:.5rem 1rem;font-family:monospace;cursor:pointer;transition:all .2s}.refresh-container .refresh-btn:hover{background:#3eb8ff;color:#1e1e1e}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.modal{color:#fff;border-radius:10px;max-width:500px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center}.modal .card{width:50vw;max-width:500px;margin-bottom:2rem}.card-actions{display:flex;gap:1rem;flex-direction:column;width:100%;padding:0 2rem}.card-actions button{padding:.75rem 2rem;cursor:pointer;border-radius:5px;transition:all .2s ease;font-weight:700;font-size:1rem}.card-actions button:last-child{background-color:#333;color:#ff3e3e;border:1px solid #ff3e3e}.card-actions button:last-child:hover{background-color:#ff3e3e;color:#333}.card-actions button:first-child{background-color:#0f0;color:#333;border:1px solid #00ff00}.card-actions button:first-child:hover:not(:disabled){background-color:#333;color:#0f0;border:1px solid #00ff00}.card-actions button:disabled{background-color:#333;color:#666;border-color:#666;cursor:not-allowed}.card-actions p{color:red}.console{color:#999;font-size:12px}.console .value{position:relative}.console .value.flash{animation:flash-animation 1s ease-out}.speed-toggle{margin-top:1rem;display:flex;gap:.5rem;justify-content:space-between}.speed-toggle .toggle-btn{background:#1e1e1e;border:1px solid #3eb8ff;color:#3eb8ff;padding:.5rem 1rem;cursor:pointer;transition:all .2s;font-family:monospace;font-size:.78rem}.speed-toggle .toggle-btn:hover{background:#2d2d2d}.speed-toggle .toggle-btn.active{background:#3eb8ff;color:#1e1e1e}.nuke-container{margin-top:.75rem;border-top:1px solid #3eb8ff;padding-top:.75rem}.nuke-container .nuke-btn{width:100%;padding:.55rem;background:#1e1e1e;border:1px solid #ff3e3e;color:#ff3e3e;font-family:monospace;cursor:pointer;transition:all .2s}.nuke-container .nuke-btn:hover{background:#ff3e3e;color:#1e1e1e}@keyframes flash-animation{0%{text-shadow:0 0 0 var(--flash-color)}20%{text-shadow:0 0 10px var(--flash-color)}to{text-shadow:0 0 0 var(--flash-color)}}.program{position:relative}.program .card-list{padding:1rem}.program .helper-text{position:absolute;bottom:-2rem;left:0;right:0;text-align:center;color:#666;font-size:.875rem;padding:.5rem;background:rgba(0,0,0,.05);border-radius:4px}.program .card-wrapper{position:relative;margin:.5rem 0}.program .card-wrapper.executing{animation:pulse 1.5s infinite}.program .program-container{display:flex;flex-direction:column}.program .program-card{position:relative;margin:10px 0}.program .highlight-slot{height:2rem;background-color:#3eb8ff1a;border:2px dashed #3eb8ff;display:flex;align-items:center;justify-content:center;color:#3eb8ff;cursor:pointer;margin:.5rem 0;transition:all .2s ease}.program .highlight-slot:hover{background-color:#3eb8ff33}.program .highlight-slot.disabled{background-color:#ff3e3e1a;border-color:#ff3e3e;color:#ff3e3e;cursor:not-allowed}.program .highlight-slot.disabled:hover{background-color:#ff3e3e1a}.program .card-item{margin:.5rem 0;padding:.75rem;border:1px solid #2d2d2d;background:#1e1e1e;cursor:pointer;transition:all .2s ease;position:relative}.program .card-item[data-type=special]{border-left:3px solid #9d4edd}.program .card-item[data-type=bug]{border-left:3px solid #ff3e3e}.program .card-item[data-type=variable]{border-left:3px solid #ff9f1c}.program .card-item[data-type=function]{border-left:3px solid #3eb8ff}.program .card-item[data-type=loop]{border-left:3px solid #00ff00}.program .card-item.selected{background:#2d4f69;border-color:#3eb8ff}.program .card-item:hover{border-color:#3eb8ff}.program .card-item .card-content h4{margin:0 0 .5rem;color:#e6e6e6}.program .card-item .card-content .card-code{color:#9cdcfe}.program .card-item.invalid-selection{background:rgba(255,62,62,.2);border-color:#ff3e3e}.program .loop-card .block-content{margin-left:1.5rem;border-left:2px solid #3eb8ff;padding-left:1rem}.program .loop-card .block-content .nested-card-wrapper{position:relative;margin:.5rem 0}.program .loop-card .block-content .nested-card-wrapper .highlight-slot{margin-left:-.5rem}.program .loop-card .block-content .nested-card-wrapper .card-item{margin:0}.program .loop-card .block-content .loop-block{min-height:2rem;border-left:2px solid #3eb8ff;padding-left:1rem;margin:.5rem 0}.program .loop-card .block-content .loop-block:empty{padding:.5rem 1rem}.program .loop-card .block-content .loop-block .nested-slot{margin-left:-.5rem;border-style:dashed;background-color:#3eb8ff0d}.program .loop-card .block-content .loop-block .nested-slot:hover{background-color:#3eb8ff1a}@keyframes pulse{0%{box-shadow:0 0 #3eb8ff66}70%{box-shadow:0 0 0 10px #3eb8ff00}to{box-shadow:0 0 #3eb8ff00}}.toasts-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:1000}.toast{position:relative;background:#1e1e1e;color:#e6e6e6;padding:12px 24px;border-radius:4px;border:1px solid #3eb8ff;box-shadow:0 4px 6px #0000001a;font-family:monospace;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.closing{animation:slideOut .3s ease-in forwards}.discard-banner{position:fixed;top:0;left:0;right:0;background:rgba(255,62,62,.1);border-bottom:2px solid #ff3e3e;padding:.5rem;z-index:100;font-family:monospace}.discard-banner .discard-message{display:flex;justify-content:center;align-items:center;gap:1rem;color:#ff3e3e;font-weight:700}.discard-banner .discard-message .warning-icon{animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.turn-indicator{position:fixed;top:1rem;right:1rem;padding:.5rem 1rem;border-radius:4px;font-family:monospace;background:#1e1e1e;border:1px solid #3eb8ff;color:#3eb8ff;z-index:9}.turn-indicator.my-turn{background:#3eb8ff;color:#1e1e1e;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.8}to{opacity:1}}.game-over-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:1000}.game-over-modal{background:#1e1e1e;border:2px solid #00ff00;padding:2rem;border-radius:4px;text-align:center;font-family:monospace;color:#e6e6e6;animation:dropIn .5s ease-out}.game-over-modal h2{color:#0f0;margin-bottom:1rem}.game-over-modal button{margin-top:1rem;background:#00ff00;color:#1e1e1e;border:none;padding:.5rem 1rem;cursor:pointer;font-family:monospace;transition:all .2s}.game-over-modal button:hover{background:#1e1e1e;color:#0f0;border:1px solid #00ff00}.game-container.game-ended{filter:blur(2px);pointer-events:none}@keyframes dropIn{0%{transform:translateY(-100px);opacity:0}to{transform:translateY(0);opacity:1}}.disconnected-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:1000}.disconnected-modal{background:#1e1e1e;border:2px solid #ff3e3e;padding:2rem;border-radius:4px;text-align:center;font-family:monospace;color:#e6e6e6}.disconnected-modal h2{color:#ff3e3e;margin-bottom:1rem}.disconnected-modal .share-link{margin-top:1rem;padding:1rem;background:#2d2d2d;border-radius:4px}.disconnected-modal .share-link code{display:block;padding:.5rem;background:#1e1e1e;margin-top:.5rem;-webkit-user-select:all;user-select:all}.game-container.player-disconnected{filter:grayscale(.5);pointer-events:none}.help-modal{background:#1e1e1e;border:1px solid #3eb8ff;padding:2rem;border-radius:4px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;font-family:monospace;color:#e6e6e6}.help-modal h2{color:#3eb8ff;margin-bottom:1.5rem}.help-modal section{margin-bottom:1.5rem}.help-modal section h3{color:#3eb8ff;margin-bottom:.5rem}.help-modal section ul{list-style:none;padding:0}.help-modal section ul li{margin-bottom:.5rem;line-height:1.4}.help-modal kbd{background:#2d2d2d;padding:2px 6px;border:1px solid #666;border-radius:3px;margin:0 2px}.help-modal .close-btn{margin-top:1rem;padding:.5rem 1rem;background:#2d2d2d;border:1px solid #3eb8ff;color:#3eb8ff;cursor:pointer;font-family:monospace;transition:all .2s}.help-modal .close-btn:hover{background:#3eb8ff;color:#1e1e1e}.help-btn{position:fixed;bottom:20px;left:20px;width:40px;height:40px;border-radius:50%;background:#1e1e1e;border:2px solid #3eb8ff;color:#3eb8ff;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1000;transition:all .2s}.help-btn:hover{background:#3eb8ff;color:#1e1e1e}body,html{height:100%;margin:0}body{background:#011627 url(/bg.jpg) repeat;font-family:IBM Plex Mono,monospace}*{box-sizing:border-box;margin:0;padding:0}#root{margin:0;height:100%;width:100%;overflow:hidden;padding:2rem;position:relative}.game-container{height:100%;width:1200px;display:grid;margin:0 auto;gap:1rem;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;grid-template-areas:"main-area main-area initialize" "main-area main-area initialize" "hand hand hand"}.game-container.discard-mode:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;border:4px solid #ff3e3e;pointer-events:none;animation:borderPulse 2s infinite;z-index:1000}button{display:inline-block;padding:.5vw 1vw;font-size:1vw;text-align:center;text-decoration:none;cursor:pointer;border:1px solid #ff00ff;color:#f0f;background:#011627;border-radius:0;font-family:inherit;transition:all .2s ease-in-out}button:hover{background:#ff00ff;color:#011627}input[type=text]{width:100%;max-width:25vw;padding:.5vw 1vw;font-size:1vw;border:1px solid #ff00ff;font-family:inherit;color:#fff;background:#011627;border-radius:0;transition:all .2s ease-in-out}input[type=text]:focus{outline:none;border-color:#f0f;box-shadow:0 0 5px #00ff0080}@keyframes borderPulse{0%{opacity:.2}50%{opacity:.8}to{opacity:.2}}.hljs{display:block;overflow-x:auto;padding:.5em;background:#011627;color:#d6deeb}.hljs-keyword{color:#c792ea;font-style:italic}.hljs-built_in{color:#addb67;font-style:italic}.hljs-type{color:#82aaff}.hljs-literal{color:#ff5874}.hljs-number{color:#f78c6c}.hljs-regexp{color:#5ca7e4}.hljs-string{color:#ecc48d}.hljs-subst{color:#d3423e}.hljs-symbol{color:#82aaff}.hljs-class{color:#ffcb8b}.hljs-function{color:#82aaff}.hljs-title{color:#dcdcaa;font-style:italic}.hljs-params{color:#7fdbca}.hljs-comment{color:#637777;font-style:italic}.hljs-doctag{color:#7fdbca}.hljs-meta,.hljs-meta-keyword{color:#82aaff}.hljs-meta-string{color:#ecc48d}.hljs-section{color:#82b1ff}.hljs-tag,.hljs-name,.hljs-builtin-name,.hljs-attr{color:#7fdbca}.hljs-attribute{color:#80cbc4}.hljs-variable{color:#addb67}.hljs-bullet{color:#d9f5dd}.hljs-code{color:#80cbc4}.hljs-emphasis{color:#c792ea;font-style:italic}.hljs-strong{color:#addb67;font-weight:700}.hljs-formula{color:#c792ea}.hljs-link{color:#ff869a}.hljs-quote{color:#697098;font-style:italic}.hljs-selector-tag{color:#ff6363}.hljs-selector-id{color:#fad430}.hljs-selector-class{color:#addb67;font-style:italic}.hljs-selector-attr,.hljs-selector-pseudo{color:#c792ea;font-style:italic}.hljs-template-tag{color:#c792ea}.hljs-template-variable{color:#addb67}.hljs-addition{color:#addb67;font-style:italic}.hljs-deletion{color:#ef535090;font-style:italic}
