/* EL ARTEFACTO · SISTEMA CAÍDO — v0.1.0 */
:root{--ink:#0a141a;--ink2:#101e26;--panel:#14232c;--edge:#354956;--teal:#94d9c8;--teal2:#42a999;--brass:#c0a471;--paper:#e9e2d2;--paperink:#262e2b;--muted:#92a1a8;--red:#e77765;--amber:#e3b56e;--green:#71c7a7;--sans:"Arial Narrow","Roboto Condensed",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"Courier New",Consolas,monospace}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:#ecf1ed;font-family:var(--sans);font-size:15px;min-height:100vh;overflow-x:hidden;background-image:radial-gradient(ellipse at 70% -10%,#1c3840 0,transparent 43%),radial-gradient(ellipse at 8% 85%,#13292a 0,transparent 42%),linear-gradient(#0d1920,#090f15)}
.grain{pointer-events:none;position:fixed;inset:0;z-index:20;opacity:.13;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 3px,rgba(195,230,228,.05) 3px,rgba(195,230,228,.05) 4px);mix-blend-mode:screen}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}em{font-style:normal;color:var(--teal)}p{line-height:1.65}::selection{background:var(--teal);color:#101a1d}
.shell{max-width:1280px;padding:0 42px;margin:auto}.topnav,.game-topbar{display:flex;align-items:center;justify-content:space-between}.topnav{height:104px;border-bottom:1px solid rgba(188,215,212,.18)}.brand,.game-brand{display:flex;gap:13px;align-items:center}.brand-mark{font-family:Georgia,serif;color:var(--teal);font-size:39px;font-weight:400;line-height:1}.brand strong,.game-brand b{display:block;letter-spacing:.22em;font-size:14px;font-weight:800}.brand small,.game-brand small{display:block;letter-spacing:.23em;color:var(--muted);font-family:var(--mono);font-size:9px;margin-top:4px}.topnav-right{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--muted)}.live-dot,.presence{display:inline-block;width:7px;height:7px;border-radius:50%;background:#75caa8;box-shadow:0 0 11px rgba(117,202,168,.7);margin-right:8px}
.hero-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:34px;align-items:center;padding:88px 0 92px}.hero-copy{position:relative;z-index:2}.eyebrow,.micro-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--brass);font-weight:700}.eyebrow{display:flex;gap:14px;align-items:center}.eyebrow .line{display:block;width:28px;height:1px;background:var(--brass)}.hero-copy h1,.lobby-intro h1,.end-wrap h1{font-size:clamp(56px,6.3vw,94px);line-height:.97;letter-spacing:-.055em;font-weight:900;margin:26px 0}.hero-copy h1 em{font-style:italic;font-family:Georgia,serif;font-weight:400;letter-spacing:-.08em}.lead{font-size:19px;max-width:460px;line-height:1.55;color:#d3e0dd}.hero-summary{color:#9fb1b4;max-width:460px;font-size:14px}.hero-summary strong{color:#ecf1ed}.hero-facts{display:flex;gap:42px;border-top:1px solid rgba(187,206,201,.2);margin-top:40px;padding-top:26px}.hero-facts div{display:flex;flex-direction:column;gap:4px}.hero-facts strong{font-size:29px;font-weight:700;letter-spacing:-.04em}.hero-facts small{font-size:9px;font-family:var(--mono);letter-spacing:.12em;color:var(--muted)}
.hero-visual{position:relative;padding:35px 2px 10px;perspective:900px}.hero-visual:before{content:"";position:absolute;width:95%;height:80%;background:#265054;filter:blur(80px);opacity:.28;left:10%;top:10%}.hero-device{position:relative;padding:29px 27px 17px;border-radius:17px;background:linear-gradient(125deg,#35434a 0,#202c32 12%,#2c3a3c 45%,#18242a 79%,#445055 100%);box-shadow:inset 0 0 0 3px #4d5c5e,inset 0 0 0 8px #243138,0 35px 80px #000b,7px 13px 0 #0b1115;transform:rotate(-3deg);max-width:590px;margin:auto;border:1px solid #526065}.hero-device:before{content:"";position:absolute;inset:12px;border:1px solid #69737140;border-radius:9px;pointer-events:none}.corner-bolt,.machine-screw{position:absolute;width:16px;height:16px;border:2px solid #647272;border-radius:50%;display:grid;place-items:center;color:#83908f;font:15px var(--mono);box-shadow:inset 0 2px 4px #0009;z-index:2}.corner-bolt.a,.machine-screw.top-left{top:7px;left:7px}.corner-bolt.b,.machine-screw.top-right{top:7px;right:7px}.corner-bolt.c,.machine-screw.bottom-left{bottom:7px;left:7px}.corner-bolt.d,.machine-screw.bottom-right{bottom:7px;right:7px}.device-top,.hero-device-footer{display:flex;justify-content:space-between;gap:12px;color:#b8bdb5;font:9px var(--mono);letter-spacing:.15em;margin:0 12px 14px}.hero-device-footer{margin:15px 12px 0;color:#aeb4ac;font-size:8px}.hero-device-footer span:first-child{color:var(--amber)}.hero-terminal{background:repeating-linear-gradient(180deg,#071f1b 0,#071f1b 3px,#0c3027 4px);border:10px solid #101e22;border-radius:10px;padding:24px 18px 22px;min-height:177px;box-shadow:inset 0 0 28px #44c2a04a,0 2px 4px #0008;display:flex;flex-direction:column;justify-content:center;gap:10px;position:relative;overflow:hidden}.terminal-lines,.monitor-lines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,#94f5df08 4px);pointer-events:none}.hero-terminal-top{font:10px var(--mono);color:#72c4a7;letter-spacing:.09em}.hero-terminal strong{font:700 clamp(19px,2.6vw,35px) var(--mono);letter-spacing:.06em;color:#edbd79;text-shadow:0 0 18px #eda65b60}.hero-terminal>span:last-child{font:9px var(--mono);color:#7bb7aa;letter-spacing:.13em}.hero-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.hero-control{background:linear-gradient(145deg,#283638,#172329);border:2px solid #111e24;border-radius:6px;box-shadow:inset 0 0 0 1px #526064,0 3px 6px #071116b0;min-height:115px;padding:11px}.hero-control>span{display:block;color:#b6bebc;letter-spacing:.12em;font:8px var(--mono)}.hero-control.three{grid-column:span 2;min-height:103px}.small-glyphs{display:flex;justify-content:space-between;gap:5px;margin-top:16px}.small-glyphs b{display:grid;place-items:center;background:#15282c;border:1px solid #587375;border-radius:4px;color:#d6bd84;font-size:26px;width:24%;height:45px;box-shadow:0 3px 2px #0008}.mock-switches{display:flex;justify-content:center;gap:19px;margin-top:13px}.mock-switches i{width:13px;height:44px;background:linear-gradient(90deg,#111a1b,#566b68,#172124);border-radius:4px;box-shadow:0 0 0 2px #101719,inset 0 2px 3px #99aaa441;position:relative}.mock-switches i:after{content:"";position:absolute;background:#aeb7af;width:19px;height:9px;left:-3px;top:8px;border:2px solid #59615c}.mock-switches i:nth-child(even):after{top:25px}.mock-dials{display:flex;justify-content:space-around;gap:20px;margin-top:5px}.mock-dials i{width:58px;height:58px;border:7px solid #121d20;border-radius:50%;background:radial-gradient(circle,#475e60,#213135 65%);box-shadow:0 0 0 2px #849189,0 5px 8px #0009;position:relative}.mock-dials i:after{content:"";position:absolute;top:-3px;left:19px;width:5px;height:14px;border-radius:3px;background:#e0c58c;transform-origin:2px 24px;transform:rotate(45deg)}.mock-dials i:nth-child(2):after{transform:rotate(150deg)}.mock-dials i:nth-child(3):after{transform:rotate(275deg)}.visual-caption{font:10px var(--mono);letter-spacing:.12em;color:var(--muted);text-align:center;margin-top:29px}.visual-caption span{color:var(--brass)}
.start-section{padding:0 0 94px}.start-head{display:flex;align-items:end;justify-content:space-between;gap:30px;border-top:1px solid #34464b;padding-top:30px;margin-bottom:25px}.start-head h2{font-size:40px;letter-spacing:-.05em;margin:8px 0 0}.start-head p{font-size:13px;color:var(--muted);max-width:320px}.start-box{border:1px solid #355059;background:#101d26;box-shadow:0 22px 45px #0003}.tabbar{display:flex;border-bottom:1px solid #31464d}.tabbar button{background:none;color:#7f979c;border:0;border-right:1px solid #31464d;padding:22px 28px;font:700 11px var(--mono);letter-spacing:.1em;flex:1}.tabbar button.active{background:#183039;color:var(--teal);box-shadow:inset 0 -2px var(--teal)}.start-form{padding:31px 34px 35px;display:flex;flex-direction:column;gap:19px;max-width:900px}.field{min-width:0;display:flex;flex-direction:column;gap:10px;flex:1}.field label,.role-prompt{font:700 10px var(--mono);letter-spacing:.13em;color:#b0c4c3}.field input,.field select{border:1px solid #43595f;border-radius:3px;color:#eef3e9;background:#1b2d36;height:51px;padding:0 16px;outline:none;width:100%;appearance:none}.field input:focus,.field select:focus{border-color:var(--teal)}.field input::placeholder{color:#728a92}.field select{background-image:linear-gradient(45deg,transparent 50%,#a9c0c0 50%),linear-gradient(135deg,#a9c0c0 50%,transparent 50%);background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;background-size:5px 5px;background-repeat:no-repeat}.field select option{background:#15252c;color:#fff}.form-row{display:flex;gap:17px}.form-hint{font-size:12px;color:var(--muted);margin:0}.form-hint strong{color:#dbe8e2}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid transparent;padding:16px 20px;min-height:54px;font:700 11px var(--mono);letter-spacing:.1em;transition:transform .15s,background .15s}.btn:hover:enabled{transform:translateY(-2px)}.btn-primary{background:var(--teal);color:#0b2829}.btn-primary:hover:enabled{background:#c1f2df}.start-form>.btn{margin-top:6px;min-width:260px;align-self:start}.btn-outline{color:#cdebe2;border-color:#63817f;background:#172a30}.btn-outline:hover{background:#25424a}.code-input{text-transform:uppercase;letter-spacing:.25em;font-family:var(--mono);font-weight:bold}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:13px}.role-choice{display:block;position:relative;cursor:pointer}.role-choice input{position:absolute;opacity:0}.role-choice span{display:flex;flex-direction:column;gap:7px;min-height:82px;padding:17px;border:1px solid #40565c;background:#172931}.role-choice input:checked+span{border-color:var(--teal);background:#1d393b;box-shadow:inset 0 0 0 1px #94d9c875}.role-choice b{font:700 12px var(--mono);letter-spacing:.06em}.role-choice small{font-size:12px;color:var(--muted)}.landing-footer{display:flex;justify-content:space-between;gap:15px;padding:25px 0;border-top:1px solid #34464b;color:#7f989e;font:9px var(--mono);letter-spacing:.12em}
/* Game */
.game-topbar{height:82px;max-width:1340px;padding:0 30px;margin:auto;border-bottom:1px solid #2b434b}.game-brand .brand-mark{font-size:33px}.game-brand b{font-size:12px}.topbar-actions{display:flex;gap:14px;align-items:center}.room-id{font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}.room-id b{font-size:14px;color:var(--teal);letter-spacing:.14em}.user-role{border:1px solid #4c706f;color:#a8dcda;background:#163035;padding:9px 11px;font:9px var(--mono);letter-spacing:.08em}.user-role.analyst{border-color:#7e7162;color:#eed7a5;background:#332d25}.icon-button{border:1px solid #3b5660;background:#19313a;color:#a9c8c5;width:37px;height:37px;border-radius:3px;font-size:19px}.game-shell{max-width:1340px;margin:auto;padding:0 30px 55px}.game-meta{display:flex;justify-content:space-between;margin:19px 0;color:#728c93;font:9px var(--mono);letter-spacing:.12em}.hud{background:linear-gradient(135deg,#182d36,#14252e);border:1px solid #3a535c;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:0;margin-bottom:17px}.hud>div{padding:16px 23px;min-height:91px;border-right:1px solid #3a535c}.hud>div:last-child{border:0}.hud-label{display:block;color:#829fa4;font:9px var(--mono);letter-spacing:.13em;margin-bottom:10px}.hud-main strong{display:block;font:700 38px var(--mono);color:#e9e4d7;letter-spacing:.045em;line-height:1}.hud-main strong.critical{color:#ff9a87;animation:alarm 1s infinite alternate}@keyframes alarm{to{opacity:.5}}.hud-stat>b{font:700 27px var(--mono);color:#dcebe4}.hud-stat b small{color:#88a6a9;font-size:15px}.failure-dots{display:flex;gap:10px;padding-top:5px}.failure-dots span{width:19px;height:19px;border:2px solid #658075;background:#234637;transform:rotate(45deg)}.failure-dots span.used{background:#ad4b3f;border-color:#e87869;box-shadow:0 0 12px #ed554c6b}.network-state{font-size:11px!important;letter-spacing:.03em;color:var(--green)!important}.role-caption{display:flex;align-items:center;gap:15px;margin:0 0 19px;padding:12px 16px;border-left:2px solid var(--teal);background:#102029}.role-bullet{color:var(--teal);font-size:30px}.role-caption b{font:700 10px var(--mono);letter-spacing:.14em;color:#d5e8e0}.role-caption p{margin:4px 0 0;color:#a4b7bb;font-size:12px;line-height:1.5}
/* Real machine */
.machine{position:relative;background:linear-gradient(134deg,#425057,#233037 9%,#33434a 48%,#1b2a32 91%,#4b5a5d);border:1px solid #68767a;border-radius:12px;padding:28px 33px 20px;box-shadow:inset 0 0 0 4px #19252c,inset 0 0 0 6px #556367,0 18px 50px #0007}.machine:before{content:"";position:absolute;inset:16px;border:1px solid #7b8e8c3b;border-radius:3px;pointer-events:none}.machine-screw{width:17px;height:17px}.machine-model{display:flex;justify-content:space-between;gap:10px;margin:0 10px 14px;color:#c3c7b9;font:10px var(--mono);letter-spacing:.1em}.main-monitor{background:#071d1b;border:9px solid #162a2d;box-shadow:inset 0 0 30px #51c9a32b,0 4px 0 #0c171b;position:relative;overflow:hidden;border-radius:7px;padding:17px 20px 22px}.main-monitor:after{content:"";position:absolute;inset:0;border:1px solid #5da18b3b;pointer-events:none}.monitor-head{display:flex;justify-content:space-between;color:#7cc3af;font:10px var(--mono);letter-spacing:.08em}.monitor-blink{color:#9aca9b;animation:alarm 2s infinite alternate}.monitor-content{display:grid;grid-template-columns:1fr 185px;gap:20px;align-items:end;padding-top:16px}.terminal-prompt{color:#76a69c;font:10px var(--mono)}.monitor-content h2{font:700 clamp(23px,3vw,38px) var(--mono);color:#dbb982;letter-spacing:.055em;margin:8px 0;text-shadow:0 0 19px #ad81514d}.monitor-content p{color:#89b7ac;font:11px var(--mono);line-height:1.5;margin:0;max-width:640px}.monitor-progress{text-align:right}.monitor-progress small{color:#89b7ac;font:9px var(--mono)}.monitor-progress b{display:block;color:#a4d6c6;font:26px var(--mono);margin:7px 0}.progress-track{background:#193a33;height:7px;border:1px solid #3a796b}.progress-track i{display:block;height:100%;background:#97d9bb;box-shadow:0 0 14px #80d5b2}.machine-modules-title{display:flex;justify-content:space-between;color:#c9d1c2;font:9px var(--mono);letter-spacing:.1em;margin:24px 7px 12px}.machine-modules-title span:last-child{color:#92a59f}.machine-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.module-tile{position:relative;min-width:0;height:236px;display:flex;flex-direction:column;text-align:left;align-items:stretch;background:linear-gradient(140deg,#202f34,#13242a);border:1px solid #6a7b7c;border-radius:6px;color:#dce5db;box-shadow:inset 0 0 0 3px #111f26,0 5px 7px #081015ab;padding:17px 15px;transition:transform .15s,border-color .15s,box-shadow .15s}.module-tile:hover{transform:translateY(-3px);border-color:var(--teal)}.module-tile.selected{border-color:var(--brass);box-shadow:inset 0 0 0 2px #152830,0 0 0 2px #beaa7a55,0 7px 8px #081015ab}.module-tile.is-done{background:linear-gradient(135deg,#1d3531,#182825);border-color:#659488}.module-number{font:9px var(--mono);letter-spacing:.08em;color:#aaaf9b}.module-icon{font-size:27px;color:var(--brass);margin-top:12px}.module-tile strong{font-weight:650;font-size:15px;margin-top:4px;min-height:35px;line-height:1.2}.module-foot{font:9px var(--mono);letter-spacing:.035em;color:#b4c0b3;margin-top:auto;padding-top:9px;border-top:1px solid #50616573}.is-done .module-foot{color:#98d9bb}.preview-glyphs,.preview-switches,.preview-dials{display:flex;gap:5px;align-items:center;justify-content:center;margin:auto 0 10px;min-height:40px}.preview-glyphs span{flex:1;text-align:center;padding:6px 0;background:#12292f;border:1px solid #3f6061;font-size:18px;color:#d4c69e}.preview-switches{gap:10px}.preview-switches i{width:13px;height:31px;border-radius:3px;background:#0f191f;border:1px solid #506c6a;position:relative}.preview-switches i:after{content:"";position:absolute;left:-3px;top:17px;width:17px;height:7px;background:#8ba19a;border-radius:1px}.preview-switches i.on:after{top:4px;background:#c6d4ba}.preview-dials i{height:31px;width:31px;border-radius:50%;background:#394a4e;border:5px solid #17282c;box-shadow:0 0 0 1px #7c8980;position:relative}.preview-dials i:after{content:"";position:absolute;background:#d4bd86;top:-4px;left:10px;width:3px;height:10px;transform-origin:1.5px 16px;transform:rotate(var(--angle))}.preview-terminal{margin:auto 0 13px;font:24px var(--mono);color:#90cab7}.preview-terminal span{animation:alarm .6s infinite alternate}.preview-done{display:grid;place-items:center;font-size:52px;color:#7fbba7;margin:auto}.machine-bottom{display:flex;justify-content:space-between;gap:10px;margin:20px 8px 0;color:#bcad93;font:9px var(--mono);letter-spacing:.08em}
/* Active module details */
.detail-panel{margin:20px 0 0;background:#172934;border:1px solid #445d64;border-top:3px solid var(--brass);scroll-margin-top:24px}.detail-head{display:flex;justify-content:space-between;gap:20px;padding:25px 28px;border-bottom:1px solid #3a525b}.detail-head h2{font-size:30px;letter-spacing:-.04em;margin:8px 0 4px}.detail-head p{font-size:12px;color:#9dafb5;margin:0}.detail-status{font:10px var(--mono);letter-spacing:.06em;align-self:start;white-space:nowrap}.detail-status.good{color:#89d7b8}.detail-status.warn{color:#e2b475}.detail-content{padding:24px 28px 29px}.module-data{display:flex;align-items:center;flex-wrap:wrap;gap:16px 32px;font:10px var(--mono);letter-spacing:.055em;color:#a2bac0;background:#10232d;padding:15px 20px;border:1px solid #324e56}.module-data>span{display:flex;align-items:center;gap:9px}.module-data strong{font-size:12px;color:#ecede3}.data-side{margin-left:auto}.light-label{display:flex;align-items:center;gap:8px;font:700 11px var(--mono)}.light-label i{display:inline-block;width:13px;height:13px;border-radius:50%;box-shadow:0 0 12px currentColor;background:currentColor}.light-label.rojo{color:#e06d5d}.light-label.ambar{color:#e5bd74}.light-label.verde{color:#74d0aa}.light-label.azul{color:#6cb4e3}.symbol-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;max-width:860px;margin:25px auto}.glyph-button{height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(150deg,#364648,#182b30);border:3px solid #5d7270;box-shadow:inset 0 0 0 4px #13252a,0 7px 0 #0b141b;color:#f0d99c;border-radius:9px;transition:transform .1s,background .1s}.glyph-button:hover{background:#2a4748}.glyph-button:active{transform:translateY(5px);box-shadow:inset 0 0 0 4px #13252a,0 2px 0 #0b141b}.glyph-button>span{font-size:59px;line-height:1.2}.glyph-button small{font:9px var(--mono);color:#abc4ba;letter-spacing:.12em;margin-top:8px}.tiny-hint{text-align:center;color:#829ca3;font:11px var(--mono)}.switchboard{display:flex;justify-content:center;gap:clamp(12px,3vw,50px);margin:30px auto}.switch-holder{display:flex;flex-direction:column;align-items:center;gap:13px;border:0;background:transparent;color:#c6cfbf}.switch-index{font:700 16px var(--mono)}.actual-switch{width:47px;height:113px;background:#0b171b;border:4px solid #55666a;border-radius:8px;position:relative;box-shadow:inset 0 3px 15px #000b,0 3px 0 #080f15}.actual-switch i{position:absolute;left:5px;right:5px;bottom:8px;height:42px;background:linear-gradient(90deg,#647674,#c5d2c4 45%,#657775);border:1px solid #d0d6cd;border-radius:4px;box-shadow:0 4px 7px #000a;transition:bottom .15s}.actual-switch.on i{bottom:53px;box-shadow:0 -3px 7px #0008}.switch-state{font:9px var(--mono);color:#94a9aa}.btn-verify{display:flex;margin:6px auto 0;width:min(370px,100%)}.dial-row{display:flex;justify-content:center;gap:clamp(12px,4vw,70px);margin:32px auto}.dial-item{text-align:center;min-width:0}.dial-name{font:10px var(--mono);letter-spacing:.12em;color:#d9d2b6}.dial{position:relative;width:118px;height:118px;margin:20px auto;border-radius:50%;background:radial-gradient(circle,#394e51 0,#34494a 55%,#1a2c31 56%);border:11px solid #15262b;box-shadow:0 0 0 2px #70807e,0 8px 11px #0008,inset 0 0 0 3px #4e6562}.dial:before{content:"";position:absolute;inset:-16px;border:3px dotted #78918966;border-radius:50%}.dial-needle{position:absolute;top:1px;left:calc(50% - 3px);background:#e7c891;width:6px;height:28px;border-radius:4px;transform-origin:3px 45px;transform:rotate(var(--rotation));transition:transform .13s}.dial-mid{position:absolute;inset:0;display:grid;place-items:center;font:700 27px var(--mono);color:#e1e9d9}.dial-actions{display:flex;align-items:center;gap:14px;justify-content:center;font:11px var(--mono);color:#9bb0b2}.dial-actions button{background:#2e484e;border:1px solid #637e7d;color:#e9ede4;border-radius:3px;width:37px;height:37px;font-size:21px}.dial-actions button:hover{background:#4a6c70}.terminal-work{background:repeating-linear-gradient(180deg,#0a2420,#0a2420 4px,#0a2923 5px);border:8px solid #102326;border-radius:4px;box-shadow:inset 0 0 40px #56beac22;padding:25px;max-width:850px;margin:auto;color:#a0dbbd;font:12px var(--mono);letter-spacing:.025em}.terminal-work>span{display:block;color:#6ea696;border-bottom:1px solid #336053;padding-bottom:10px;margin-bottom:21px}.terminal-line{margin:11px 0}.terminal-line b{color:#f4c586}.terminal-input-wrap{display:flex;gap:10px;margin-top:24px}.terminal-input-wrap input{max-width:210px;min-width:0;background:#081b18;border:1px solid #497364;color:#e0f8dd;letter-spacing:.35em;font:700 24px var(--mono);text-align:center;border-radius:2px}.terminal-input-wrap .btn{flex:1;max-width:230px}.terminal-last{margin-top:24px;color:#668d7f;font:10px var(--mono)}.solved-state{display:flex;align-items:center;gap:20px;padding:35px 29px;color:#a1d9c1}.solved-state>span{font-size:54px}.solved-state b{font:700 16px var(--mono);letter-spacing:.1em}.solved-state p{color:#a4b8b1;font-size:13px;margin:4px 0}.game-footer{display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between;border-top:1px solid #345057;color:#8199a0;padding:18px 0;margin-top:29px;font:9px var(--mono);letter-spacing:.06em}.mini-link{border:0;border-bottom:1px solid #bda576;color:#d8caab;background:none;font:9px var(--mono);padding:0 0 3px}
/* Technical manual — high contrast alternative to machine */
.manual{display:grid;grid-template-columns:245px minmax(0,1fr);align-items:start;min-height:710px}.manual-sidebar{background:linear-gradient(180deg,#29373a,#1a292c);border:1px solid #6a776e;min-height:710px;color:#dce0d4}.manual-sidebar-top{padding:29px 19px 24px;border-bottom:2px solid #101b20;display:flex;flex-direction:column;gap:8px}.manual-sidebar-top span{color:#baaa8a;font:10px var(--mono);letter-spacing:.13em}.manual-sidebar-top strong{font:700 26px var(--mono);letter-spacing:.1em}.manual-sidebar-top small{font:9px var(--mono);color:#96a9a8;letter-spacing:.09em}.manual-nav{padding:12px 0}.manual-nav button{border:0;border-left:3px solid transparent;background:none;color:#b4c1b9;display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:17px 13px;font-size:13px}.manual-nav button.selected{border-left-color:#e1c88f;color:#f0e1b7;background:#43504b88}.manual-nav button:hover{background:#4554515a}.manual-nav button span{font:10px var(--mono);color:#a8aa9a}.manual-nav button b{font-weight:600;flex:1}.manual-nav button i{font-style:normal;color:var(--green)}.sidebar-note{font:9px var(--mono);color:#829e98;letter-spacing:.09em;margin:40px 17px 15px;line-height:2}.manual-paper{background:var(--paper);color:var(--paperink);border:1px solid #ada698;box-shadow:inset 0 0 0 12px #ded6c6,0 18px 55px #0007;padding:28px 44px 32px;min-height:760px;position:relative;background-image:linear-gradient(120deg,transparent 0,#f2ece126 55%,transparent 70%)}.paper-topline,.paper-footer{display:flex;justify-content:space-between;gap:10px;color:#75766c;font:9px var(--mono);letter-spacing:.06em;padding-bottom:14px;border-bottom:1px solid #a8a698}.paper-footer{border:0;border-top:1px solid #a8a698;padding-top:18px;padding-bottom:0;margin-top:40px}.manual-page{max-width:780px;margin:0 auto}.paper-index{font:700 11px var(--mono);letter-spacing:.14em;color:#8f5d43;display:block;margin:34px 0 14px}.manual-page h1{font-size:clamp(39px,4.2vw,62px);letter-spacing:-.06em;line-height:1.05;margin:0 0 21px;font-weight:800}.manual-page h1 em{color:#7b6b53;font-family:Georgia,serif;font-weight:400;font-style:italic}.paper-lead{font-size:16px;color:#3a453e;max-width:660px;line-height:1.75}.paper-rule{height:1px;background:#b6b0a2;margin:28px 0}.manual-page h3{font-size:17px;letter-spacing:-.01em;margin:27px 0 12px;border-bottom:1px solid #bbb3a3;padding-bottom:9px}.manual-page p{font-size:14px;line-height:1.65;color:#465049}.numbered{padding-left:24px;font-size:14px;line-height:1.7}.numbered li{padding-left:5px;margin:10px 0}.numbered li::marker{font:bold 12px var(--mono);color:#956b52}.warning-note{border-left:4px solid #ad6f4e;background:#d9caba63;padding:16px 19px;margin:24px 0;color:#584737}.warning-note b{font:700 10px var(--mono);letter-spacing:.11em;color:#875338}.warning-note p{margin:6px 0 0;font-size:13px;color:#594e42}.paper-small{font-size:12px!important;color:#6e7169!important}.guide-table{border-collapse:collapse;width:100%;font:13px var(--mono);margin:17px 0 24px}.guide-table th{text-align:left;background:#c7c5b8;font-size:10px;letter-spacing:.05em}.guide-table td,.guide-table th{border:1px solid #b1aea0;padding:10px 9px}.guide-table tr:nth-child(even) td{background:#dbd9cc85}.guide-table.compact{max-width:510px}.priority-table{border:1px solid #adae9d}.priority-table>div{display:grid;grid-template-columns:98px 1fr;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #adae9d}.priority-table>div:last-child{border-bottom:0}.priority-table>div>span{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.priority-table i{font-style:normal;text-align:center;font-size:25px}.chip{padding:7px 6px;font:10px var(--mono);text-align:center;border-left:4px solid}.chip.green{border-color:#548e74;background:#d4e0d2}.chip.amber{border-color:#b28b4c;background:#e7d9bd}.chip.red{border-color:#b25c51;background:#e1c9c5}.symbol-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.symbol-legend span{font-size:11px;display:flex;align-items:center;gap:6px}.symbol-legend i{font-style:normal;font-size:22px;color:#775d3c}.formula{background:#d8d1be;padding:17px;font:700 14px var(--mono);border-left:3px solid #a58e6d}
/* Lobby and End */
.lobby-wrap,.end-wrap{max-width:1020px;padding:55px 30px 70px;margin:auto}.lobby-intro h1{font-size:clamp(52px,6vw,76px);margin:15px 0}.lobby-intro h1 em{font-family:Georgia,serif;font-weight:400;font-style:italic}.lobby-intro p{max-width:630px;color:#aabfbd;font-size:15px}.lobby-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:17px;margin-top:30px}.lobby-code-card,.participants-card{border:1px solid #426169;background:#142832;padding:28px;min-height:360px}.giant-code{font:700 clamp(38px,5vw,60px) var(--mono);letter-spacing:.12em;color:var(--teal);margin:22px 0}.share-row{display:flex;gap:8px}.share-row button{flex:1;justify-content:center;padding:10px;font-size:9px;min-height:46px}.divider-line{border-top:1px solid #405960;margin:24px 0 10px}.lobby-setting{display:flex;justify-content:space-between;padding:10px 0;gap:15px;font:10px var(--mono);color:#91b2b6}.lobby-setting b{color:#ebeddd}.section-line{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #43595f;padding-bottom:18px}.section-line h3{font:700 12px var(--mono);letter-spacing:.06em;margin:0}.count-pill{font:10px var(--mono);color:#9ec8b6}.players-list{margin:14px 0 25px;min-height:150px}.person{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid #2a4148}.avatar{display:grid;place-items:center;width:33px;height:33px;border:1px solid #5a7777;background:#263e43;color:#e9d6ad;font:700 13px var(--mono)}.person-name{flex:1;font-size:13px;overflow-wrap:anywhere}.person-name small{color:#79959a;font:9px var(--mono)}.person-role{font:10px var(--mono);color:#accbc7}.person-role.analyst{color:#dfc397}.presence{margin:0;width:7px;height:7px}.presence.offline{background:#78564b;box-shadow:none}.lobby-help{background:#0d242d;padding:13px 14px;font-size:12px;color:#abbfbd;line-height:1.5}.lobby-help b{color:#a8e5c0}.start-lobby{width:100%;margin-top:14px}.waiting-row{display:flex;align-items:center;gap:13px;justify-content:center;padding-top:20px;font:11px var(--mono);color:#b7cabe}.text-button{background:transparent;border:0;color:#819fa4;font:10px var(--mono);letter-spacing:.07em}.leave{display:block;margin:24px auto}.end-wrap{text-align:center;padding-top:90px}.end-emblem{font-family:Georgia,serif;font-size:63px;width:110px;height:110px;border:1px solid #6a8e89;display:grid;place-items:center;border-radius:50%;margin:0 auto 30px;box-shadow:inset 0 0 40px #84d7ba21;color:#a6e6c7}.end-emblem.lost{border-color:#bc6355;color:#e08d74}.end-wrap h1{margin:20px 0;font-size:clamp(59px,8vw,107px)}.end-wrap h1 em{font-family:Georgia,serif;font-weight:400;font-style:italic}.end-wrap>p{color:#9eb9b9;font-size:17px;max-width:560px;margin:0 auto 35px}.end-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;max-width:740px;margin:35px auto}.end-stats>div{padding:22px;background:#192b35;border:1px solid #425760}.end-stats span{display:block;color:#94b1b0;font:10px var(--mono);margin-bottom:15px;min-height:25px}.end-stats b{font:700 26px var(--mono)}.end-wrap>.btn{min-width:320px;margin:20px auto}.end-footnote{font:11px var(--mono);color:#7e999a;display:block;margin-top:20px}.toast{position:fixed;right:24px;bottom:25px;z-index:60;pointer-events:none;max-width:min(440px,calc(100vw - 48px));border:1px solid #7cae9f;background:#1d3b39;box-shadow:0 12px 40px #0009;color:#e3f6eb;padding:18px 24px;font:12px var(--mono);line-height:1.6;opacity:0;transform:translateY(20px);transition:.2s;visibility:hidden}.toast.show{opacity:1;transform:none;visibility:visible}.toast.error,.toast.fail{background:#462d2a;border-color:#ca7864}.toast.win,.toast.success{background:#1d493e}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;font:11px var(--mono);letter-spacing:.15em;color:#a6cabf}.loading-ring{width:35px;height:35px;border-radius:50%;border:2px solid #4b716c;border-top-color:#a9dbcc;animation:spin .85s linear infinite}.loading-ring.small{width:18px;height:18px;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}
/* Tablet & mobile */
@media(max-width:1020px){.hero-layout{grid-template-columns:1fr;gap:30px;padding:55px 0 65px}.hero-visual{max-width:660px;width:100%;margin:0 auto}.hero-copy h1{font-size:clamp(62px,9vw,95px)}.machine-modules{grid-template-columns:repeat(2,minmax(0,1fr))}.module-tile{height:200px}.manual{grid-template-columns:190px minmax(0,1fr)}.manual-paper{padding:25px 30px;box-shadow:inset 0 0 0 7px #ded6c6}.game-shell{padding:0 20px 45px}}
@media(max-width:650px){.shell{padding:0 20px}.topnav{height:75px}.brand strong{font-size:12px}.brand small{font-size:8px}.brand-mark{font-size:31px}.topnav-right{font-size:8px}.hero-layout{padding:48px 0 62px}.hero-copy h1{font-size:clamp(51px,12.5vw,75px);margin:21px 0}.lead{font-size:16px}.hero-summary{font-size:13px}.hero-facts{gap:22px;margin-top:25px}.hero-facts strong{font-size:24px}.hero-facts small{font-size:8px}.hero-visual{padding:0 0 10px}.hero-device{padding:25px 18px 15px;transform:rotate(-1deg)}.hero-terminal{min-height:138px;padding:14px 11px;border-width:7px}.hero-terminal strong{font-size:clamp(19px,6vw,30px)}.hero-controls{gap:8px}.hero-control{min-height:105px}.hero-control.three{min-height:95px}.mock-switches{gap:13px}.mock-dials i{height:46px;width:46px}.mock-dials i:after{left:13px;transform-origin:2px 18px}.hero-device-footer{font-size:7px}.start-head{display:block}.start-head h2{font-size:33px}.start-head p{font-size:12px}.start-form{padding:23px 16px}.form-row{flex-direction:column}.tabbar button{padding:18px 9px;font-size:9px}.role-options{grid-template-columns:1fr}.role-choice span{min-height:65px}.start-form>.btn{width:100%}.landing-footer{font-size:8px;flex-wrap:wrap}.landing-footer span:nth-child(2){display:none}.game-topbar{padding:0 12px;height:70px}.game-brand{gap:7px}.game-brand .brand-mark{font-size:29px}.game-brand b{font-size:10px;letter-spacing:.1em}.game-brand small{font-size:7px;letter-spacing:.05em}.topbar-actions{gap:5px}.room-id{display:none}.user-role{font-size:8px;padding:8px 5px}.icon-button{height:33px;width:33px}.game-shell{padding:0 10px 35px}.game-meta{font-size:8px;margin:12px 2px}.game-meta span:last-child{display:none}.hud{grid-template-columns:1.2fr 1fr 1fr}.hud>div{padding:14px 9px;min-height:77px}.hud .hide-small{display:none}.hud-label{font-size:8px;min-height:18px}.hud-main strong{font-size:29px}.hud-stat>b{font-size:19px}.hud-stat b small{font-size:11px}.failure-dots{gap:5px}.failure-dots span{height:13px;width:13px}.role-caption{padding:12px 10px;margin-bottom:12px}.role-caption p{font-size:11px}.machine{padding:26px 15px 17px;border-radius:8px}.machine-model{font-size:8px;margin:0 7px 10px}.machine-model span:last-child{display:none}.main-monitor{border-width:6px;padding:11px 12px 17px}.monitor-head{font-size:8px}.monitor-content{grid-template-columns:1fr;gap:13px}.monitor-content h2{font-size:22px}.monitor-content p{font-size:10px}.monitor-progress{display:flex;align-items:center;gap:10px;text-align:left}.monitor-progress b{font-size:17px;margin:0}.progress-track{flex:1}.machine-modules-title{font-size:8px}.machine-modules-title span:last-child{display:none}.machine-modules{gap:9px}.module-tile{height:175px;padding:11px}.module-number{font-size:8px}.module-icon{font-size:23px;margin-top:6px}.module-tile strong{font-size:13px;min-height:33px}.module-foot{font-size:8px}.preview-glyphs span{font-size:14px;padding:4px 0}.preview-terminal{font-size:19px}.preview-dials i{height:22px;width:22px}.preview-dials i:after{top:-3px;left:4px;transform-origin:1.5px 10px;height:9px}.machine-bottom{font-size:8px}.machine-bottom span:last-child{display:none}.detail-panel{margin-top:12px}.detail-head{padding:19px 15px;flex-wrap:wrap}.detail-head h2{font-size:25px}.detail-status{font-size:9px}.detail-content{padding:15px 10px 24px}.module-data{padding:11px;gap:10px 17px;font-size:9px}.data-side{margin-left:0}.symbol-buttons{gap:8px;margin:20px auto}.glyph-button{height:108px;border-width:2px}.glyph-button>span{font-size:43px}.glyph-button small{font-size:7px}.switchboard{gap:12px}.actual-switch{width:41px;height:100px}.actual-switch i{height:37px}.actual-switch.on i{bottom:47px}.switch-state{font-size:7px}.dial-row{gap:4px}.dial{height:84px;width:84px;border-width:7px;margin:17px auto}.dial-needle{height:21px;transform-origin:3px 30px}.dial-actions{gap:5px}.dial-actions button{width:31px;height:34px}.dial-actions span{font-size:9px}.dial-name{font-size:9px}.terminal-work{padding:18px 11px;border-width:5px;font-size:10px}.terminal-input-wrap{flex-wrap:wrap}.terminal-input-wrap input{height:52px}.terminal-input-wrap .btn{min-height:52px}.game-footer{font-size:8px}.game-footer span:nth-child(2){display:none}.manual{display:block}.manual-sidebar{min-height:auto}.manual-sidebar-top{padding:17px}.manual-sidebar-top strong{font-size:21px}.manual-nav{display:flex;overflow:auto;white-space:nowrap;padding:0}.manual-nav button{width:auto;min-width:145px;flex:0 0 auto;border-left:0;border-bottom:3px solid transparent;font-size:11px;padding:14px 11px}.manual-nav button.selected{border-bottom-color:#e1c88f}.sidebar-note{display:none}.manual-paper{padding:22px 20px;min-height:640px;box-shadow:inset 0 0 0 5px #ded6c6}.paper-topline,.paper-footer{font-size:8px}.paper-topline span:last-child{display:none}.manual-page h1{font-size:42px}.paper-lead{font-size:14px}.manual-page h3{font-size:16px}.guide-table{font-size:11px}.guide-table td,.guide-table th{padding:8px 5px}.priority-table>div{grid-template-columns:62px 1fr;gap:4px;padding:6px}.priority-table i{font-size:18px}.chip{font-size:8px}.symbol-legend{grid-template-columns:repeat(2,1fr)}.lobby-wrap,.end-wrap{padding:40px 17px 60px}.lobby-intro h1{font-size:54px}.lobby-grid{grid-template-columns:1fr}.lobby-code-card,.participants-card{padding:21px;min-height:auto}.giant-code{font-size:45px}.share-row button{font-size:8px}.end-wrap{padding-top:50px}.end-wrap h1{font-size:61px}.end-stats{grid-template-columns:1fr;gap:8px}.end-stats>div{display:flex;align-items:center;justify-content:space-between;padding:15px}.end-stats span{margin:0;min-height:0;text-align:left;font-size:9px}.end-stats b{font-size:20px}.end-wrap>.btn{min-width:0;width:100%}}
#print-full-manual{display:none}
@media print{#app,#toast,.grain{display:none!important}#print-full-manual{display:block!important;color:#262e2b;background:white;padding:0 10px}.print-section{break-after:page;page-break-after:always}.print-section:last-child{break-after:auto;page-break-after:auto}.manual-page h1{font-size:46px}.manual-page .paper-index{margin-top:16px}body{background:white;color:black}.grain,.game-topbar,.hud,.game-meta,.role-caption,.manual-sidebar,.game-footer,.toast{display:none!important}.game-shell{max-width:none;padding:0}.manual{display:block}.manual-paper{border:0;box-shadow:none;min-height:0;padding:8px 0;color:black}.manual-page{max-width:none}.paper-index{margin-top:18px}.paper-footer{margin-top:18px}*{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
