.mac-scene{padding:clamp(12px,3vw,36px);background:radial-gradient(ellipse at top,#303d58,#101522 75%)}
.mac-screen{display:grid;align-items:center;padding:5cqw;background:radial-gradient(at 25% 0%,#345886,#101a2e 80%);color:#eef5ff}
.mac-screen.mac-off{background:#07090d}
.mac-panel{width:min(100%,34rem);margin:auto;padding:clamp(12px,4cqw,32px);border:1px solid #9ab9ec55;border-radius:12px;background:#111d32db;box-shadow:0 12px 35px #060b1d88}
.mac-panel h2{font-size:clamp(17px,4cqw,30px);margin:0}
.mac-panel p{margin:.5em 0 1em;color:#c3d1ec}
.mac-panel button,.mac-panel input{margin:.2em;padding:.45em .75em;border-radius:7px;border:1px solid #91b7ee;background:#202f4c;color:#f0f6ff}
.mac-panel button:hover{background:#355078}
.mac-mission .mission-footer{margin-top:auto}
.mac-lab.mac-zoomed .lab-layout{grid-template-columns:minmax(0,1fr)}
.mac-desktop{position:relative;display:block;padding:0;background:radial-gradient(ellipse at 83% 73%,#f697a4 0,transparent 48%),radial-gradient(ellipse at 10% 68%,#507be0,transparent 59%),linear-gradient(144deg,#172349,#754fb0 62%,#3a437f)}
.mac-menu{display:flex;justify-content:space-between;gap:8px;padding:.25em .85em;background:#15204770;color:white;font-size:clamp(9px,1.65cqw,13px);font-weight:650;white-space:pre;overflow:hidden}
.mac-menu span:last-child{overflow:hidden;text-overflow:ellipsis}
.mac-dock{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);display:flex;gap:clamp(4px,1.25cqw,11px);padding:clamp(4px,1cqw,9px);border:1px solid #ffffff60;border-radius:clamp(12px,3cqw,22px);background:#24355470;backdrop-filter:blur(14px);box-shadow:0 5px 22px #121b3966,inset 0 1px 0 #ffffff44;z-index:2}
.mac-dock-icon{width:clamp(32px,8cqw,58px);aspect-ratio:1;overflow:hidden;padding:0;border:1px solid #ffffff4d;border-radius:24%;background:linear-gradient(#343c4b,#131824);box-shadow:0 3px 7px #0a11276b;transition:transform .16s}
.mac-dock-icon:hover,.mac-dock-icon:focus-visible{transform:translateY(-4px) scale(1.06)}
.mac-dock-icon svg{display:block;width:100%;height:100%}
.mac-icon-finder{background:#128de9}
.mac-icon-purge{margin-left:4px;background:linear-gradient(145deg,#263841,#11141b);border-color:#ff7893}
.mac-app-window{position:absolute;inset:15% 14% 24%;padding:1.6em 1.2em;overflow:auto;background:#f2f5fa;color:#253047;border:1px solid white;border-radius:12px;box-shadow:0 15px 34px #10183166}
.mac-app-window h2{margin:.3em 0}
.mac-app-window button{float:left;margin-right:.7em;border:0;border-radius:50%;background:#ff6964;color:#461514;width:23px;height:23px;padding:0}
.mac-mini{position:relative;width:clamp(135px,25%,220px);margin:12px auto 14px;filter:drop-shadow(0 10px 10px #0009)}
.mac-mini-body{display:block;width:100%;height:auto}
.mac-mini-light{fill:#5b5651}
.mac-scene:has(#mac-led.on) .mac-mini-light{fill:#fff;filter:drop-shadow(0 0 2px #d4e8ff)}
.mac-mini button{position:absolute;left:12%;bottom:-13px;width:28px;height:24px;padding:0;border:1px solid #68717c;border-radius:7px;background:#252c36;color:white;touch-action:none;opacity:0}
.mac-mini:hover button,.mac-mini button:focus-visible{opacity:1}
@media (hover:none){.mac-mini button{opacity:1}}
.mac-lab.mac-zoomed .mac-mini{display:none}

/* PURGE: prototyp střílečky. Velikosti v cqw, kontejnerem je obrazovka Macu. */
.purge{position:absolute;inset:0;overflow:hidden;background:#d6d9de;color:#14171c;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;outline:none;user-select:none;-webkit-user-select:none}
.purge-view{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}
.purge button{font:inherit;color:inherit;cursor:pointer}
.purge-bar{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:clamp(20px,3.2cqw,30px);padding-left:1.2cqw;background:#f4f5f7d9;backdrop-filter:blur(8px);font-size:clamp(10px,1.35cqw,13px);font-weight:600;white-space:nowrap}
.purge-bar small{margin-left:.6em;font-weight:400;opacity:.6;font-size:.85em}
.purge-bar-right{display:flex;align-items:center;height:100%;gap:.4em}
.purge-bar button{height:100%;padding:0 .8em;background:none;border:0;font-weight:500}
.purge-bar button:hover{background:#0000001a}
.purge-bar button[data-g=exit]:hover{background:#ff4865;color:#fff}
.purge-bar button[hidden]{display:none}
.purge-fs svg{display:block;width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.5}
.purge-fps{margin-right:.3em;font:600 .92em/1 ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;color:#0a7a3e}
.purge-fps small{margin:0;color:#14171c;opacity:.75;font-size:1em;font-weight:500}
.purge-cross{position:absolute;left:50%;top:50%;width:clamp(14px,2cqw,22px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;background:linear-gradient(#ff2d4d,#ff2d4d) center/100% 2px no-repeat,linear-gradient(#ff2d4d,#ff2d4d) center/2px 100% no-repeat;mix-blend-mode:multiply}
.purge-cross.hit{transform:translate(-50%,-50%) rotate(45deg) scale(1.3);mix-blend-mode:normal}
.purge-hurt{position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(ellipse at center,#ff000000 40%,#e0102fa6)}
.purge-hud{position:absolute;left:1.4cqw;bottom:1.4cqw;display:flex;flex-direction:column;gap:.5em;padding:.6em .9em;border:1px solid #ffffff90;border-radius:clamp(6px,1cqw,11px);background:#f4f5f7cc;backdrop-filter:blur(8px);font-size:clamp(10px,1.3cqw,14px);font-weight:600;pointer-events:none}
.purge-hp{display:flex;align-items:center;gap:.6em}
.purge-hp b{font-size:.8em;letter-spacing:.08em}
.purge-hp-bar{display:block;width:clamp(56px,11cqw,130px);height:clamp(6px,.8cqw,9px);border-radius:9px;overflow:hidden;background:#0000002b}
.purge-hp-bar i{display:block;height:100%;background:#17a35d;transition:width .15s}
.purge-hp-bar i.low{background:#ff2d4d}
.purge-count{font-size:.8em;letter-spacing:.08em}
.purge-msg{position:absolute;left:50%;top:clamp(26px,4.4cqw,42px);transform:translateX(-50%);width:max-content;max-width:70%;margin:0;padding:.5em .95em;border-radius:99px;background:#14171ce0;color:#fff;font-size:clamp(10px,1.5cqw,15px);opacity:0;transition:opacity .2s;pointer-events:none}
.purge-msg.on{opacity:1}
.purge-pad{position:absolute;right:1.4cqw;bottom:1.4cqw;display:none;grid-template-columns:repeat(3,clamp(30px,5cqw,52px));grid-auto-rows:clamp(30px,5cqw,52px);gap:clamp(2px,.4cqw,4px)}
.purge-pad button,.purge-fire{padding:0;border:1px solid #ffffffb0;background:#f4f5f7b3;touch-action:none}
.purge-pad button{border-radius:6px;font-size:clamp(11px,1.8cqw,18px)}
.purge-pad button:active{background:#fff}
.purge-fire{position:absolute;left:1.4cqw;bottom:clamp(58px,10cqw,110px);display:none;width:clamp(44px,8cqw,84px);aspect-ratio:1;border-radius:50%;color:#ff2d4d;font-size:clamp(16px,3cqw,32px)}
.purge-fire:active{background:#ffd5dc}
@media(pointer:coarse){.purge-pad{display:grid}.purge-fire{display:block}}
.purge-freeze{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;background:#f4f5f78c;backdrop-filter:grayscale(1) blur(1.5px);font-size:clamp(12px,2.2cqw,24px);pointer-events:none}
.purge-freeze[hidden]{display:none}
.purge-freeze small{font-size:.65em;opacity:.65}
.purge-wheel{width:clamp(30px,6cqw,66px);aspect-ratio:1;border-radius:50%;background:conic-gradient(#ff3b5c,#ffb31a,#ffe11f,#35d07f,#2ba8ff,#9a5cff,#ff3b5c);box-shadow:inset -3px -5px 9px #0004,inset 3px 4px 7px #fff8;animation:purge-spin .7s linear infinite}
@keyframes purge-spin{to{transform:rotate(360deg)}}
.purge-splash{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4cqw;padding:3cqw;background:#f4f5f7e6;backdrop-filter:blur(10px);text-align:center}
.purge-splash[hidden]{display:none}
.purge-splash h2{margin:0;font-size:clamp(30px,9cqw,92px);font-weight:200;letter-spacing:.2em;margin-right:-.2em;color:#14171c}
.purge-splash p{margin:0;font-size:clamp(12px,2cqw,20px)}
.purge-splash small{font-size:clamp(9px,1.25cqw,13px);line-height:1.55;opacity:.7}
.purge-splash button{padding:.55em 1.5em;border:1px solid #14171c40;border-radius:99px;background:#fff;font-size:clamp(11px,1.6cqw,16px)}
.purge-splash .purge-go{border-color:#ff2d4d;background:#ff2d4d;color:#fff;font-weight:600}
.purge-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7em}
.purge-splash.purge-panic{background:#0b0b0dd9;backdrop-filter:blur(5px);color:#fff}
.purge-panic-box{display:flex;flex-direction:column;align-items:center;gap:1cqw;max-width:62cqw;padding:3cqw 4cqw;border:1px solid #ffffff40;border-radius:1.6cqw;background:#1b1c20f2}
.purge-panic-box b{font-size:clamp(26px,6cqw,62px);font-weight:300;line-height:1}
.purge-panic-box p{font-size:clamp(10px,1.6cqw,16px)}
.purge-panic-box p[lang=en]{opacity:.55}
@container (max-width:820px){.purge-bar>span:first-child small{display:none}}
@container (max-width:520px){.purge-fps small{display:none}}
@media(prefers-reduced-motion:reduce){.purge-wheel{animation:none}}

.mac-texture-editor{padding:clamp(8px,2cqw,20px)}
.mac-pixel-grid{display:grid;grid-template-columns:repeat(8,1fr);width:min(32cqw,180px);margin:.5em 0;border:1px solid #7891a7}
.mac-pixel-grid button{aspect-ratio:1;border-radius:0;margin:0;padding:0;border:1px solid #0002}
.mac-texture-editor h2{font-size:clamp(14px,3cqw,24px)}
