:root{color-scheme:dark;--navy:#0b2133;--panel:#153247;--panel-light:#1c3d53;--blue:#b9ddf7;--ink:#081522;--green:#95d9b5;--red:#f0a0ac;--steel:#dbe8ed;--text:#e5f1f6;--muted:#9db6c7;--line:#315066;--focus:#ff85ab;font-family:"Aptos","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:radial-gradient(ellipse at 85% 0,#163b50 0,transparent 42rem),var(--navy);color:var(--text);min-width:300px}
button,input{font:inherit}
button{border:0;border-radius:11px;cursor:pointer;color:var(--ink);background:var(--blue);font-weight:750;-webkit-tap-highlight-color:transparent}
button:disabled{opacity:.44;cursor:default}
button:not(:disabled){transition:background-color .16s,box-shadow .16s,transform .16s}
button:not(:disabled):hover{filter:brightness(1.06)}
button:not(:disabled):active{transform:translateY(1px)}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
button svg{display:block}
img{display:block;max-width:100%}
a{color:var(--blue);text-underline-offset:4px}
h1,h2,h3,p{margin:0}
.app-shell{max-width:1440px;margin:0 auto;padding:0 36px}
.skip-link{position:fixed;left:16px;top:-100px;z-index:2000;padding:14px 20px;color:var(--ink);background:var(--blue);border-radius:10px}
.skip-link:focus{top:12px}
.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:13px;background:transparent;color:var(--text);text-align:left;padding:0}
.brand-icon{display:grid;place-items:center;width:43px;height:47px;color:var(--blue);flex:0 0 auto}
.brand-icon svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.brand-kicker{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.21em;margin-bottom:5px}
.brand strong{display:block;font-size:21px;font-weight:780;letter-spacing:-.65px;line-height:1.12}
.brand strong>span{color:var(--green)}
.top-actions{display:flex;align-items:center;gap:8px}
.icon-button{height:40px;min-width:40px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px}
.icon-button .desktop-label{font-size:12px}
.icon-button[aria-pressed="true"]{background:var(--green)}
main:focus{outline:none}
.eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.17em;line-height:1.3}
.eyebrow i,.aircraft-label i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #95d9b512}
.home-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0 24px}
.home-heading h1{font-size:clamp(30px,3.3vw,45px);line-height:1.08;letter-spacing:-1.7px;font-weight:780;margin-top:9px}
.shift-tag{border:1px solid var(--line);border-radius:30px;padding:9px 14px;font-size:11px;font-weight:650;color:var(--muted);white-space:nowrap}
.hero{position:relative;height:420px;border-radius:22px;overflow:hidden;background:#274655;border:1px solid #59717a;isolation:isolate}
.hero>img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#071b2b9c 0,#071b2b16 60%,transparent 80%),linear-gradient(0deg,#061726d9 0,transparent 38%);pointer-events:none}
.hero-title{position:absolute;top:35px;left:38px;text-shadow:0 2px 18px #071b2b80}
.hero-title>span{font-size:10px;letter-spacing:.2em;font-weight:800;color:#c6e6fa}
.hero-title h2{font-size:clamp(32px,3.7vw,49px);font-weight:780;line-height:1.04;letter-spacing:-1.7px;margin-top:13px}
.aircraft-label{position:absolute;display:flex;align-items:center;gap:9px;bottom:21px;left:27px;color:#e3f0f4;font-size:10px;font-weight:650;letter-spacing:.025em}
.home-bottom{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;margin-top:18px}
.mission-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mission-card{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:center;column-gap:15px;text-align:left;min-height:142px;padding:20px 30px 20px 14px;border-radius:18px;border:2px solid transparent;overflow:hidden}
.mission-card.completed{border-color:var(--green)}
.mission-card .mini-part{grid-row:1/4;align-self:center;width:92px;height:87px;display:grid;place-items:center}
.mini-part svg{width:100%;height:100%}
.card-number{display:block;color:#355972;font-size:9px;font-weight:850;letter-spacing:.15em;margin-bottom:5px}
.mission-card strong{display:block;font-size:20px;letter-spacing:-.5px;line-height:1.15}
.mission-card small{display:block;color:#375a70;font-size:11px;font-weight:550;line-height:1.35;margin-top:7px}
.mission-card .arrow{position:absolute;right:13px;top:14px;font-size:22px;font-weight:500}
.mission-card:not(:disabled):hover{box-shadow:0 8px 24px #0002;transform:translateY(-3px)}
.home-quique{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:16px}
.home-quique img{width:77px;height:103px;object-fit:cover;object-position:50% 25%;border-radius:12px;flex:0 0 auto}
.home-quique strong{color:var(--green);font-size:16px}
.home-quique p{color:#c4d8e3;font-size:13px;line-height:1.5;margin-top:7px}
.job-heading{display:flex;align-items:center;gap:20px;padding:23px 0 17px}
.job-heading>div{flex:1;min-width:0}
.job-heading h1{font-size:clamp(24px,2.6vw,34px);line-height:1.13;letter-spacing:-.9px;margin-top:4px}
.back-button,.small-button{padding:10px 14px;font-size:12px;min-height:38px}
.back-button{background:#c2dce9}
#restart-button{background:var(--red)}
.job-progress{height:4px;background:#29475d;border-radius:9px;margin-bottom:18px;overflow:hidden}
.job-progress>div{height:100%;width:0;background:var(--green);border-radius:inherit;transition:width .4s ease}
.work-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;align-items:stretch}
.work-area{min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:19px;overflow:hidden}
.board-top{height:55px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 17px}
.board-top>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}
.step-number{display:grid;place-items:center;width:29px;height:29px;flex:0 0 auto;border:1px solid #5c7c92;border-radius:9px;color:var(--blue);font-size:11px;font-weight:800}
#step-title{font-size:15px;letter-spacing:-.2px;line-height:1.2}
.zoom-controls{display:flex;align-items:center;gap:3px;flex:0 0 auto}
.zoom-controls button{min-width:29px;height:29px;border-radius:7px;font-size:15px;padding:0 7px}
.zoom-controls #zoom-reset{font-size:10px;min-width:32px}
.workboard{position:relative;width:100%;aspect-ratio:900/580;min-height:310px;max-height:520px;overflow:hidden;background:radial-gradient(ellipse at 50% 34%,#f0f6f8 0,#dbe8ed 58%,#c2d4dc 100%);isolation:isolate}
.board-grid{position:absolute;inset:0;opacity:.4;background-image:linear-gradient(#809eac22 1px,transparent 1px),linear-gradient(90deg,#809eac22 1px,transparent 1px);background-size:35px 35px;pointer-events:none}
.art-viewport{position:absolute;inset:0;overflow:hidden}
#mechanical-art{width:100%;height:100%;transform-origin:center;transition:transform .22s ease}
#mechanical-art>svg{display:block;width:100%;height:100%;overflow:visible}
.board-badge{position:absolute;bottom:11px;left:15px;color:#526e7d;font-size:8px;font-weight:800;letter-spacing:.15em;pointer-events:none}
.part-target{cursor:pointer;outline:none}
.part-target.movable{cursor:grab;touch-action:none}
.part-target.movable:active{cursor:grabbing}
.part-target:focus-visible{outline:none;filter:drop-shadow(0 0 6px var(--focus)) drop-shadow(0 0 2px var(--focus))}
.part-target.hinted{filter:drop-shadow(0 0 6px #d85778) drop-shadow(0 0 2px #d85778);animation:hint-pulse 1.1s ease-in-out 3}
.part-target.drop-ready{filter:drop-shadow(0 0 7px #1c9564) drop-shadow(0 0 2px #1c9564)}
.part-target.dragging{opacity:.35}
@keyframes hint-pulse{50%{filter:drop-shadow(0 0 11px #ee668c) drop-shadow(0 0 4px #ee668c)}}
.flashlight{position:absolute;width:150px;height:150px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#ffffff42 0,#f2fcff2b 35%,#e4faff0a 62%,transparent 70%);border:1px solid #f6ffffa1;box-shadow:0 0 34px #e3faff77;pointer-events:none;z-index:3}
.stage-complete{position:absolute;top:12px;right:13px;display:flex;align-items:center;gap:7px;background:var(--green);color:var(--ink);border:1px solid #4b9f76;border-radius:30px;padding:7px 12px;font-size:11px;box-shadow:0 3px 12px #27493517;pointer-events:none}
.stage-complete>span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#0e543b;color:#d4f2e2}
.carry-pill{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);z-index:5;padding:8px 13px;border-radius:30px;background:var(--navy);color:var(--blue);font-size:11px;font-weight:750;box-shadow:0 3px 12px #05162533;max-width:calc(100% - 26px);text-align:center;pointer-events:none}
.interaction-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;min-height:41px;font-size:11px;color:#c5dce9;line-height:1.4}
#piece-count{flex:0 0 auto;color:var(--green);font-weight:800;font-size:12px}
.toolbox{display:flex;flex-direction:column;gap:15px;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:19px;padding:19px 16px}
.toolbox-heading{display:flex;flex-direction:column;gap:5px}
.toolbox-heading>strong{font-size:20px;letter-spacing:-.4px}
.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.tool{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:75px;padding:8px 5px;font-size:10px;line-height:1.2;border:2px solid transparent;text-align:center}
.tool svg{width:30px;height:30px;flex:0 0 auto}
.tool.selected{background:var(--green);border-color:#2d775b;box-shadow:0 0 0 2px #95d9b536}
.inventory{min-width:0}
.inventory:empty{display:none}
.inventory-title{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.13em;margin-bottom:8px}
.spare-part{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:87px;padding:9px;border:2px dashed #6e91a8;background:#d1e8f4;border-radius:12px;font-size:11px;line-height:1.3;cursor:grab;touch-action:none}
.spare-part svg{width:58px;height:58px;flex:0 0 auto}
.spare-part.carried{border:2px solid var(--green);background:var(--green);box-shadow:0 0 0 3px #95d9b529}
.parts-tray{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:112px;margin-top:auto;padding:13px 9px;border:2px dashed #627f92;background:#25485e;color:#cce1ec;text-align:center;overflow:hidden}
.parts-tray .tray-icon{font-size:26px;line-height:1;color:var(--blue)}
.parts-tray strong{display:block;font-size:12px}
.parts-tray small{display:block;font-size:9px;font-weight:500;margin-top:3px;color:#a7c3d5}
.parts-tray.active,.parts-tray.drop-ready{border-color:var(--green);background:#2c6156;color:#d7f4e7;box-shadow:inset 0 0 20px #95d9b514}
#tray-contents{display:flex;align-items:center;justify-content:center;gap:4px;max-height:40px}
#tray-contents:empty{display:none}
#tray-contents svg{height:31px;width:31px}
.torque-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 15px;border-top:1px solid var(--line);padding:12px 17px 16px}
.torque-caption{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px}
.torque-caption strong{color:var(--blue);font-size:12px}
.torque-caption span{color:#b6cdda}
.torque-track{position:relative;height:33px;background:#657d8d;border:1px solid #94aab8;border-radius:9px;overflow:hidden}
.torque-zone{position:absolute;top:0;bottom:0;left:40%;width:30%;background:var(--green);border-left:2px solid #288c60;border-right:2px solid #288c60}
.torque-needle{position:absolute;z-index:2;top:0;bottom:0;left:0;width:4px;margin-left:-2px;background:var(--ink);box-shadow:0 0 0 1px #e1f3fc}
.torque-track>span{position:absolute;top:50%;transform:translateY(-50%);color:#092135;font-size:8px;font-weight:850;letter-spacing:.06em;pointer-events:none}
.torque-track>span:first-of-type{left:9px}
.torque-track>span:last-of-type{right:9px}
#torque-stop{min-height:33px;padding:6px 14px;background:var(--green);font-size:11px}
.coach{display:flex;align-items:center;gap:19px;margin-top:17px;padding:13px 16px 13px 13px;border:1px solid #91b8d1;border-radius:19px;background:#cee4f3;color:var(--ink);box-shadow:0 8px 30px #020f1a18}
.coach>img{width:74px;height:87px;flex:0 0 auto;object-fit:cover;object-position:50% 24%;border-radius:12px}
.coach-bubble{min-width:0;flex:1}
.coach-label{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.coach-label strong{font-size:10px;letter-spacing:.15em;font-weight:850}
.coach-label span{color:#527188;font-size:8px;font-weight:750;letter-spacing:.12em}
.coach p{font-size:17px;font-weight:550;line-height:1.4;max-width:70ch}
.coach.warning{background:#f3d4dd;border-color:#e0a2b3}
.coach.success{background:#d1eedf;border-color:#84c4a3}
.coach-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch;min-width:145px;flex:0 0 auto}
.next-button{min-height:43px;padding:10px 17px;font-size:13px;border:1px solid #8fbbda;box-shadow:0 2px 0 #8fbbda;white-space:nowrap}
.next-button.success,.next-button.ready,.success-button,button.success,button.confirm{background:var(--green);border-color:#68ad8b}
.hint-button{padding:6px 10px;background:transparent;color:#2d526b;font-size:10px;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.complete-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:25px;text-align:center;background:#0b2133ed;backdrop-filter:blur(5px);color:var(--text);z-index:12}
.complete-medal{display:grid;place-items:center;background:var(--green);border:6px solid #bbebd2;color:#0b4431;border-radius:50%;width:68px;height:68px;font-size:34px;font-weight:800;box-shadow:0 0 0 7px #95d9b514;margin-bottom:2px}
.complete-overlay h2{font-size:33px;letter-spacing:-.9px}
.complete-overlay p{color:#b5cedd;font-size:13px;line-height:1.45;max-width:42ch}
.score{color:var(--green);font-size:35px;font-weight:850;line-height:1.1}
.score small{font-size:12px;font-weight:600;color:#adc8d8;margin-left:5px}
.completion-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:4px}
.completion-actions button{min-height:40px;padding:10px 17px;font-size:12px}
#drag-ghost{position:fixed;left:0;top:0;width:110px;height:110px;transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none;z-index:1000;opacity:.9;filter:drop-shadow(0 10px 9px #071b2b66)}
#drag-ghost svg,#drag-ghost img{display:block;width:100%;height:100%;object-fit:contain}
footer{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:70px;padding:20px 1px;color:#89a6b8;font-size:9px;letter-spacing:.045em}
footer b{color:var(--green);padding:0 4px}
footer button{background:transparent;color:#b5d1e2;font-size:10px;padding:6px 0;text-decoration:underline;text-underline-offset:3px}
#save-status{text-align:right;letter-spacing:0}
.notice{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:15px;width:max-content;max-width:calc(100% - 28px);padding:13px 14px 13px 18px;z-index:1500;border:1px solid #bfe1f5;border-radius:13px;background:var(--blue);color:var(--ink);box-shadow:0 8px 30px #00121e66;font-size:13px;font-weight:650}
.notice button{background:var(--red);width:29px;height:29px;flex:0 0 auto;border-radius:8px;font-size:21px;line-height:1}
dialog{position:fixed;width:min(540px,calc(100% - 28px));max-height:min(88dvh,760px);overflow-y:auto;margin:auto;border:1px solid #668da5;border-radius:22px;padding:29px;background:var(--panel);color:var(--text);box-shadow:0 30px 100px #00101dcc}
dialog::backdrop{background:#021321b8;backdrop-filter:blur(5px)}
.close-button{position:absolute;right:14px;top:14px;width:31px;height:31px;background:var(--red);font-size:22px;border-radius:9px}
.dialog-kicker{display:block;color:var(--green);font-size:9px;font-weight:850;letter-spacing:.18em;margin:2px 30px 13px 0}
dialog h2{font-size:28px;letter-spacing:-.65px;line-height:1.15;margin:0 25px 16px 0}
dialog h3{margin-top:18px;font-size:15px}
dialog p{font-size:14px;line-height:1.55;color:#c4dbe8;margin-bottom:14px}
.guide-figure{display:grid;place-items:center;height:180px;background:var(--steel);border-radius:13px;margin-bottom:18px;overflow:hidden}
.guide-figure svg{width:100%;height:100%}
.guide-dots{display:flex;justify-content:center;gap:7px;margin:20px 0 15px}
.guide-dots span{width:6px;height:6px;border-radius:50%;background:#668094}
.guide-dots span.active{width:20px;border-radius:5px;background:var(--blue)}
.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:18px}
.dialog-actions button{min-height:40px;padding:10px 17px;font-size:12px}
.dialog-actions .cancel,button.cancel{background:var(--red)}
.source-links{display:grid;gap:9px;margin:18px 0 0;padding:0;list-style:none}
.source-links a{font-size:12px;line-height:1.5}
@media(max-width:1120px){
.app-shell{padding:0 25px}.home-bottom{grid-template-columns:minmax(0,1fr) 260px}.mission-card{grid-template-columns:70px minmax(0,1fr);column-gap:10px;padding-left:10px}.mission-card .mini-part{width:70px;height:75px}.mission-card strong{font-size:17px}.work-layout{grid-template-columns:minmax(0,1fr) 205px;gap:14px}.toolbox{padding:16px 12px}.coach p{font-size:15px}
}
@media(max-width:900px){
.home-bottom{grid-template-columns:1fr}.home-quique{padding:11px 15px}.home-quique img{width:46px;height:54px}.home-quique p{margin-top:3px;font-size:12px}.home-quique strong{font-size:13px}.mission-card{grid-template-columns:86px minmax(0,1fr);min-height:125px}.mission-card .mini-part{width:86px;height:80px}.work-layout{grid-template-columns:minmax(0,1fr) 180px;gap:12px}.toolbox{padding:14px 10px;gap:12px}.toolbox-heading>strong{font-size:17px}.tool{min-height:68px;font-size:9px}.coach{gap:13px}.coach-actions{min-width:123px}.coach>img{width:60px;height:76px}
}
@media(max-width:740px){
.app-shell{padding:0 14px}.topbar{height:75px;gap:8px}.brand{gap:7px}.brand-icon,.brand-icon svg{width:30px;height:34px}.brand-kicker{font-size:8px;letter-spacing:.13em;margin-bottom:4px}.brand strong{font-size:16px;letter-spacing:-.55px}.top-actions{gap:5px}.icon-button{height:32px;min-width:31px;padding:0 8px;border-radius:9px;font-size:16px}.desktop-label{display:none}
.home-heading{padding:21px 0 18px;align-items:flex-end;gap:12px}.home-heading h1{font-size:32px;letter-spacing:-1.3px;margin-top:8px}.home-heading .eyebrow{font-size:8px;letter-spacing:.11em}.shift-tag{max-width:115px;white-space:normal;border:0;text-align:right;padding:0 0 3px;font-size:9px;line-height:1.4}.hero{height:300px;border-radius:16px}.hero>img{object-position:48% 60%}.hero-title{top:23px;left:21px}.hero-title>span{font-size:8px;letter-spacing:.14em}.hero-title h2{font-size:34px;line-height:1.04;margin-top:9px;letter-spacing:-1.2px}.hero-overlay{background:linear-gradient(90deg,#071b2b8f,transparent 86%),linear-gradient(0deg,#061726d9,transparent 30%)}.aircraft-label{font-size:8px;left:18px;bottom:16px;gap:8px}
.home-bottom{gap:11px;margin-top:12px}.mission-cards{gap:9px}.mission-card{min-height:138px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:15px 13px 13px;border-radius:14px}.mission-card .mini-part{width:62px;height:59px;position:absolute;right:6px;top:8px;opacity:.94}.card-number{font-size:8px;max-width:78px;margin:0 0 29px;line-height:1.3}.mission-card strong{font-size:16px;letter-spacing:-.4px}.mission-card small{font-size:9px;margin-top:6px;line-height:1.25}.mission-card .arrow{font-size:17px;right:11px;top:auto;bottom:12px}.home-quique{border-radius:14px;gap:12px}
.job-heading{display:grid;grid-template-columns:74px minmax(0,1fr) 68px;gap:10px;padding:15px 0 12px}.job-heading h1{font-size:23px;letter-spacing:-.7px;line-height:1.1;margin-top:4px}.job-heading .eyebrow{font-size:8px;letter-spacing:.1em}.back-button,.small-button{min-height:33px;padding:8px 9px;font-size:10px;border-radius:9px}.job-progress{margin-bottom:11px;height:3px}.work-layout{display:flex;flex-direction:column;gap:9px}.work-area{border-radius:14px}.board-top{height:43px;padding:0 10px;gap:7px}.board-top>div:first-child{gap:7px}.step-number{width:23px;height:23px;border-radius:7px;font-size:9px}#step-title{font-size:12px;line-height:1.15}.zoom-controls{gap:3px}.zoom-controls button{width:25px;height:25px;min-width:25px;padding:0 5px;font-size:14px}.zoom-controls #zoom-reset{min-width:27px;font-size:9px}
.workboard{height:clamp(255px,38dvh,390px);min-height:255px;max-height:none;aspect-ratio:auto}.board-grid{background-size:25px 25px}.board-badge{left:10px;bottom:8px;font-size:6px;letter-spacing:.12em}.flashlight{width:95px;height:95px}.stage-complete{top:9px;right:9px;font-size:9px;padding:5px 9px;gap:5px}.stage-complete>span{width:16px;height:16px}.carry-pill{bottom:11px;padding:6px 11px;font-size:9px}.interaction-bar{min-height:31px;padding:7px 10px;font-size:9px;gap:7px;line-height:1.3}#piece-count{font-size:10px}
.toolbox{display:grid;grid-template-columns:minmax(0,1fr) 94px;gap:7px 8px;padding:9px;border-radius:14px}.toolbox-heading{display:none}.tools{grid-column:1;grid-row:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;align-self:start}.tool{min-height:53px;padding:5px 2px;gap:4px;font-size:8px;line-height:1.05;border-width:1.5px;border-radius:8px}.tool svg{width:23px;height:23px}.tool.selected{box-shadow:0 0 0 1px #95d9b544}.inventory{grid-column:1;grid-row:2;display:flex;align-items:center;gap:7px}.inventory-title{flex:0 0 auto;max-width:58px;margin:0;font-size:7px;line-height:1.3;letter-spacing:.06em}.spare-part{min-height:45px;padding:3px 7px;gap:6px;border-radius:8px;border-width:1.5px;font-size:9px}.spare-part svg{width:36px;height:36px}.parts-tray{grid-column:2;grid-row:1/3;min-height:60px;height:100%;width:94px;margin:0;padding:6px 3px;gap:3px;border-width:1.5px;border-radius:9px}.parts-tray .tray-icon{font-size:20px}.parts-tray strong{font-size:10px}.parts-tray small{font-size:7px;line-height:1.2;margin-top:2px}#tray-contents{max-height:22px;gap:2px}#tray-contents svg{width:20px;height:20px}
.torque-panel{padding:8px 10px 10px;gap:7px 8px}.torque-caption{gap:8px;font-size:8px}.torque-caption strong{font-size:10px}.torque-track{height:27px;border-radius:6px}.torque-track>span{font-size:6px}#torque-stop{min-height:27px;font-size:9px;padding:5px 9px}
.coach{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:25;gap:9px;padding:9px;margin-top:10px;border-radius:14px;box-shadow:0 8px 28px #00172455}.coach>img{width:54px;height:66px;border-radius:8px}.coach-label{gap:7px;margin-bottom:5px}.coach-label strong{font-size:8px;letter-spacing:.1em}.coach-label span{display:none}.coach p{font-size:12px;line-height:1.35;font-weight:600}.coach-actions{min-width:83px;max-width:99px;gap:6px}.next-button{min-height:35px;padding:8px 7px;font-size:10px;border-radius:8px;white-space:normal;line-height:1.2}.hint-button{padding:3px 4px;font-size:8px}
.complete-overlay{padding:17px;gap:9px}.complete-medal{width:47px;height:47px;border-width:4px;font-size:24px;margin:0}.complete-overlay h2{font-size:25px;letter-spacing:-.65px}.complete-overlay p{font-size:11px;max-width:32ch}.score{font-size:27px}.score small{font-size:9px}.completion-actions{gap:7px;margin-top:2px}.completion-actions button{min-height:34px;padding:8px 12px;font-size:10px}#drag-ghost{width:82px;height:82px}
footer{min-height:68px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:18px 1px 15px;font-size:7px}footer button{font-size:9px}#save-status{grid-column:1/-1;text-align:left;font-size:8px}.notice{bottom:max(12px,env(safe-area-inset-bottom));padding:10px 10px 10px 13px;gap:10px;font-size:11px;border-radius:11px}dialog{padding:24px 20px;border-radius:18px}dialog h2{font-size:25px}dialog p{font-size:13px}.guide-figure{height:150px}
}
@media(max-width:360px){
.app-shell{padding:0 10px}.brand strong{font-size:14px}.brand-icon,.brand-icon svg{width:27px}.top-actions{gap:4px}.icon-button{min-width:27px;height:30px;padding:0 6px}.job-heading{grid-template-columns:64px minmax(0,1fr) 59px;gap:7px}.job-heading h1{font-size:20px}.back-button,.small-button{font-size:9px;padding:7px}.coach{gap:7px;padding:8px}.coach>img{width:43px;height:59px}.coach p{font-size:11px}.coach-actions{min-width:75px;max-width:83px}.next-button{font-size:9px}.toolbox{grid-template-columns:minmax(0,1fr) 80px}.parts-tray{width:80px}.tool{font-size:7px}
}
#torque-control{position:absolute;inset:0;width:100%;height:100%;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:none;z-index:3;border:0;border-radius:0;padding:0}
#torque-control::-webkit-slider-runnable-track{height:100%;background:transparent}
#torque-control::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;height:100%;width:10px;border-radius:3px;border:2px solid #d9eff8;background:#081522;box-shadow:0 0 0 1px #081522}
#torque-control::-moz-range-track{height:100%;background:transparent}
#torque-control::-moz-range-thumb{height:28px;width:8px;border-radius:3px;border:2px solid #d9eff8;background:#081522}
#torque-control:disabled{cursor:default;opacity:.65}#torque-needle{display:none}
.portrait{display:block;overflow:hidden;flex:0 0 auto;border-radius:12px;background:#e8e3d5}
.home-quique .portrait{width:77px;height:103px}.coach .portrait{width:74px;height:87px}
.home-quique .portrait img,.coach .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transform:scale(1.8);transform-origin:50% 0;border-radius:0}
@media(max-width:900px){.home-quique .portrait{width:46px;height:54px}.coach .portrait{width:60px;height:76px}}
@media(max-width:740px){.coach .portrait{width:54px;height:66px;border-radius:8px}}
@media(max-width:360px){.coach .portrait{width:43px;height:59px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Acceso al catálogo oficial desde la edición pública. */
.catalog-return{color:#b5d1e2;font-size:10px;padding:6px 0;text-underline-offset:3px}
.catalog-return:focus-visible{outline:2px solid var(--green);outline-offset:4px}

/* Quique welcomes the player before opening the job selection. */
.welcome-screen{max-width:1120px;margin:0 auto;min-height:100svh;padding:clamp(28px,6vh,64px) 32px 24px;display:flex;flex-direction:column;justify-content:center}
.welcome-heading{margin-bottom:26px}
.welcome-heading .brand-kicker{color:var(--blue);margin-bottom:12px}
.welcome-heading h1{font-size:clamp(29px,4.3vw,48px);letter-spacing:-1.6px;line-height:1.1}
.welcome-heading h1 span{color:var(--green)}
.welcome-card{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);overflow:hidden;border:1px solid #426379;border-radius:26px;background:linear-gradient(130deg,#1d4258,var(--panel));box-shadow:0 24px 80px #0003}
.welcome-portrait{position:relative;margin:0;min-height:430px;isolation:isolate;background:#163247}
.welcome-portrait>img{width:100%;height:100%;object-fit:cover;object-position:50% 27%}
.welcome-portrait::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#061725e8);pointer-events:none}
.welcome-portrait figcaption{position:absolute;left:28px;bottom:26px;z-index:1;display:grid;gap:6px;color:var(--text)}
.welcome-portrait figcaption strong{font-size:24px;letter-spacing:.12em;color:var(--green)}
.welcome-portrait figcaption span{font-size:12px}
.welcome-message{align-self:center;padding:38px 40px}
.welcome-message .eyebrow{color:var(--green)}
.welcome-message h2{font-size:clamp(28px,3.2vw,39px);letter-spacing:-1px;line-height:1.12;margin:12px 0 16px}
.welcome-intro{font-size:17px;line-height:1.5;color:#d7e7f0}
.welcome-intro span{display:block;color:var(--muted);font-size:14px;margin-top:3px}
.welcome-challenge{font-size:22px;font-weight:750;line-height:1.28;margin-top:25px}
.welcome-guidance{font-size:15px;line-height:1.6;color:#bcd2e0;margin-top:12px}
.welcome-start{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:56px;padding:16px 20px;font-size:17px;margin-top:26px;border-radius:12px;box-shadow:0 5px 18px #071b2b40}
.welcome-start span{font-size:24px;line-height:1}
.welcome-note{display:block;font-size:11px;color:var(--muted);text-align:center;margin-top:13px}
.welcome-catalog{align-self:center;color:var(--muted);font-size:12px;margin-top:22px;padding:8px}
@media(max-width:640px){
  .welcome-screen{padding:24px max(18px,env(safe-area-inset-left)) 16px;justify-content:flex-start}
  .welcome-heading{margin-bottom:19px}
  .welcome-heading .brand-kicker{font-size:9px;letter-spacing:.14em;margin-bottom:10px}
  .welcome-heading h1{font-size:30px;letter-spacing:-1px}
  .welcome-card{grid-template-columns:1fr;border-radius:20px}
  .welcome-portrait{min-height:0;height:164px}
  .welcome-portrait>img{width:146px;height:164px;object-position:50% 22%;margin:0 auto;position:relative;z-index:1}
  .welcome-portrait::after{inset:0;background:linear-gradient(90deg,#123348ee,#12334866),url('./assets/hangar-quique.webp') center 58%/cover;z-index:0}
  .welcome-portrait figcaption{left:15px;bottom:12px;gap:3px;z-index:2;padding:6px 9px;border-radius:7px;background:#0b2133dc}
  .welcome-portrait figcaption strong{font-size:11px;letter-spacing:.1em}
  .welcome-portrait figcaption span{font-size:9px}
  .welcome-message{padding:22px}
  .welcome-message .eyebrow{font-size:9px}
  .welcome-message h2{font-size:28px;margin:9px 0 12px}
  .welcome-intro{font-size:15px;line-height:1.45}
  .welcome-intro span{font-size:12px}
  .welcome-challenge{font-size:20px;margin-top:20px}
  .welcome-guidance{font-size:13px;line-height:1.5;margin-top:10px}
  .welcome-start{font-size:16px;min-height:52px;margin-top:20px}
  .welcome-note{font-size:10px;margin-top:12px}
  .welcome-catalog{font-size:11px;margin-top:14px}
}
@media(max-height:550px) and (min-width:641px){
  .welcome-screen{padding:20px 24px 12px;justify-content:flex-start}
  .welcome-heading{margin-bottom:14px}
  .welcome-heading h1{font-size:30px}
  .welcome-portrait{min-height:320px}
  .welcome-message{padding:22px 28px}
  .welcome-message h2{font-size:29px;margin:8px 0}
  .welcome-intro{font-size:14px}
  .welcome-challenge{font-size:19px;margin-top:14px}
  .welcome-guidance{font-size:13px;margin-top:8px}
  .welcome-start{margin-top:16px;min-height:48px;padding:12px 18px}
  .welcome-catalog{margin-top:10px}
}
