:root{--bg:#fff8ef;--card:#fff;--text:#16181d;--mute:#5a6272;--line:#ecdcc6;--navy:#1b2a6b;--navy-ink:#fff;--or:#ff8a1f;--or-d:#b84b00;--or-ink:#1a1100;--ok:#16794a;--okbg:#e3f6ea;--bad:#c0281b;--badbg:#fde8e5;--soft:#fff1de;--shadow:0 1px 0 #0000000d,0 10px 26px -16px #7a4a1a55;--pcb:#0f5a52;--pcb2:#0b4640;--pcbline:#2f8f84;
--font:Tajawal,"Segoe UI",Tahoma,"Noto Sans Arabic",sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14161b;--card:#1d2027;--text:#f4efe7;--mute:#a7adba;--line:#2f333d;--navy:#9db4ff;--navy-ink:#10163a;--or-d:#ffad5c;--ok:#5fd394;--okbg:#173326;--bad:#ff8b7d;--badbg:#3a1d1a;--soft:#2a2016;--shadow:0 10px 26px -16px #000;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#14161b;--card:#1d2027;--text:#f4efe7;--mute:#a7adba;--line:#2f333d;--navy:#9db4ff;--navy-ink:#10163a;--or-d:#ffad5c;--ok:#5fd394;--okbg:#173326;--bad:#ff8b7d;--badbg:#3a1d1a;--soft:#2a2016;--shadow:0 10px 26px -16px #000;color-scheme:dark}
.exr .exh{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:8px}
.exr .num{flex:none;background:var(--navy);color:var(--navy-ink);border-radius:16px;padding:6px 16px;font-weight:900;font-size:.95em;line-height:1.5}
.exr h1{font-size:clamp(1.5rem,1.2rem + 1.6vw,2.2rem);line-height:1.35;margin:0;font-weight:900;text-wrap:balance;flex:1 1 280px;min-width:0}
.exr .obj{background:var(--soft);border-radius:14px;padding:12px 18px;margin:10px 0 18px;font-size:.95em}
.exr .obj b{display:block;color:var(--or-d)}
.exr .obj ul{margin:4px 0 0;padding-inline-start:20px}
.exr .progress{display:flex;gap:8px;margin-bottom:6px}
.exr .progress span{flex:1;height:8px;border-radius:9px;background:var(--line);transition:background .4s}
.exr .progress span.on{background:var(--or)}
.exr .plabel{font-size:.82em;color:var(--mute);margin-bottom:14px}
.exr .coach{display:flex;gap:12px;align-items:center;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:8px 14px 8px 10px;margin-top:14px;box-shadow:var(--shadow)}
.exr .board,.exr .tray,.exr ol.steps{user-select:none;-webkit-user-select:none}
.exr .coach .mp-box{flex:none;width:68px;height:68px}
.exr .coach .mp-box svg{width:100%;height:100%;display:block}
.exr .coach p{margin:0;font-weight:500;line-height:1.6;font-size:.96em}
.exr .coach.ok{border-color:var(--ok);background:var(--okbg)}
.exr .coach.bad{border-color:var(--bad);background:var(--badbg)}
.exr section.part{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:clamp(14px,3vw,24px);margin-bottom:18px;box-shadow:var(--shadow)}
.exr .part h2{margin:0 0 4px;font-size:1.25rem;font-weight:900;display:flex;gap:10px;align-items:center}
.exr .part h2 i{font-style:normal;flex:none;width:34px;height:34px;border-radius:50%;background:var(--or);color:var(--or-ink);display:grid;place-items:center;font-size:1rem}
.exr .part.done h2 i{background:var(--ok);color:#fff}
.exr .part .how{color:var(--mute);margin:0 0 14px;font-size:.93em}
.exr ol.steps{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:s}
.exr ol.steps li{display:flex;gap:10px;align-items:center;background:var(--bg);border:2px solid var(--line);border-radius:14px;padding:8px 10px;min-height:56px;user-select:none;-webkit-user-select:none}
.exr ol.steps li.drag{opacity:.55;border-style:dashed;border-color:var(--or)}
.exr ol.steps li.ok{border-color:var(--ok);background:var(--okbg)}
.exr ol.steps li.bad{border-color:var(--bad);background:var(--badbg)}
.exr .grip{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--mute);cursor:grab;touch-action:none;font-size:1.3rem;line-height:1}
.exr .grip:active{cursor:grabbing}
.exr .stext{flex:1;min-width:0;font-weight:500}
.exr .mv{display:flex;flex-direction:row;gap:4px;flex:none}
.exr .mv button{width:44px;height:44px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:8px;font:700 .8rem var(--font);cursor:pointer;padding:0}
.exr .mv button:focus-visible,.exr .btn:focus-visible,.exr .nchip:focus-visible,.exr .zone:focus-visible,.exr .grip:focus-visible{outline:3px solid #2f6fd6;outline-offset:2px}
.exr .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;border:0;border-radius:14px;background:var(--or);color:var(--or-ink);font:800 1em var(--font);cursor:pointer;box-shadow:0 4px 0 #b84b0055}
.exr .btn.sec{background:var(--card);color:var(--text);border:2px solid var(--line);box-shadow:none}
.exr .btn:hover{transform:translateY(-1px)}
.exr .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.exr .board{position:relative;width:100%;max-width:640px;margin:0 auto;aspect-ratio:600/420;container-type:inline-size}
.exr .board svg.pcb{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:16px}
.exr .zone{position:absolute;border:2px dashed #ffffffcc;border-radius:8px;background:#ffffff1f;padding:0;color:#fff;cursor:pointer;font:800 .8rem var(--font);display:grid;place-items:center}
.exr .zone:hover,.exr .zone.hot{background:#ffd24f66;border-color:#ffd24f}
.exr .zone .zq{opacity:.9;font-size:1rem}
.exr .zone.filled{border-style:solid;border-color:#2dd47a;background:#2dd47a33;cursor:default}
.exr .zone.shake{animation:sh .4s;border-color:#ff6b5a;background:#ff6b5a44}
@keyframes sh{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.exr .zone .ztag{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;background:#16181d;color:#fff;border:2px solid #2dd47a;border-radius:9px;padding:0 9px;font:800 12.5px/22px var(--font);z-index:2;pointer-events:none}
.exr .zone.in .ztag{position:static;transform:none;border:0;background:none;padding:0;font-size:12.5px}
.exr .zone .ztag.up{bottom:calc(100% + 4px)}
.exr .zone .ztag.dn{top:calc(100% + 4px)}
.exr .cap{position:absolute;color:#ffffffb3;font:700 11px var(--font);pointer-events:none;direction:ltr}
.exr .tray{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px 0 0;min-height:52px}
.exr .nchip{min-height:48px;padding:6px 16px;border-radius:12px;border:2px solid var(--navy);background:var(--card);color:var(--text);font:800 1rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.exr .nchip.sel{background:var(--navy);color:var(--navy-ink)}
.exr .nchip.ghost{position:fixed;z-index:50;pointer-events:none;box-shadow:0 12px 24px #0006;transform:translate(-50%,-50%) rotate(-3deg);background:var(--or);border-color:var(--or);color:var(--or-ink)}
.exr .hint{margin-top:12px;background:var(--soft);border-radius:12px;padding:10px 14px;font-size:.92em}
.exr .hint ul{margin:6px 0 0;padding-inline-start:20px}
.exr details summary{cursor:pointer;font-weight:800;min-height:44px;display:flex;align-items:center}
.exr .disc q{font-weight:800;quotes:none;display:block;margin-bottom:10px}
.exr .reveal{background:var(--soft);border-radius:14px;padding:12px 16px;margin-top:10px}
.exr .reveal small{display:block;color:var(--mute);margin-top:6px}
.exr .final{text-align:center;display:none}
.exr .final.show{display:block}
.exr .final .mp-box{width:140px;height:140px;margin:0 auto}
.exr .final .mp-box svg{width:100%;height:100%}
.exr .final h2{justify-content:center}
@media (prefers-reduced-motion:reduce){}
.exr .zone.pin{border-style:solid;border-color:#ffffffcc;background:#ffffff14}
.exr .zone.pin:hover{background:#ffd24f44;border-color:#ffd24f}
.exr .zone.pin.seen{border-color:#2dd47a}
.exr .zone.pin.on{box-shadow:0 0 0 3px #ffd24f;background:#ffd24f44}
.exr .zone .ztag.nm{border-color:#ffd24f}
.exr .zone[data-n]::after{content:attr(data-n);position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;background:#ffd24f;color:#16181d;font:800 12px/22px var(--font);text-align:center;z-index:3;pointer-events:none}
.exr .count{font-size:.88em;color:var(--mute);margin:10px 0 0;text-align:center}
.exr .demo{margin-top:12px}
.exr .zone.filled::after{background:#2dd47a}
.exr .coach b{color:var(--or-d)}
.exr .b3{position:relative;width:100%;max-width:920px;margin:0 auto;aspect-ratio:2400/1720;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.exr .b3 .zin>img{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.exr .b3 img.layer{opacity:0;transform:translateY(-7%);transition:opacity .35s,transform .45s cubic-bezier(.2,.9,.3,1.2)}
.exr .b3 img.layer.on{opacity:1;transform:none}
.exr .b3 .zone{border-radius:6px}
.exr .b3 .zone.pin{border:2px solid #ffffffb0;background:#ffffff10}
.exr .b3 .zone.drop{border:2px dashed #ffd24f;background:#ffd24f1f;box-shadow:0 0 0 1px #0006}
.exr .b3 .zone.drop.hot{background:#ffd24f66;border-style:solid}
.exr .b3 .zone.done{border:2px solid #2dd47a;background:#2dd47a22}
.exr .b3 .zone.done.slot{border-color:transparent;background:none}
.exr .tray{gap:10px}
.exr .cardi{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px 4px;border-radius:14px;border:2px solid var(--navy);background:var(--card);color:var(--text);font:800 .92rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;min-height:48px}
.exr .cardi img{height:58px;width:auto;max-width:150px;pointer-events:none;filter:drop-shadow(0 3px 3px #0004)}
.exr .cardi.sel{background:var(--navy);color:var(--navy-ink)}
.exr .cardi.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-60%) scale(1.15) rotate(-2deg);box-shadow:0 16px 30px #0007;border-color:var(--or);background:var(--card)}
.exr .trayh{font-size:.85em;color:var(--mute);text-align:center;margin:14px 0 0;font-weight:700}
.exr .toggle{display:flex;justify-content:center;margin-top:10px}
.exr .b3 .zone.in .ztag{position:static;transform:none;background:#16181dd9;border:2px solid #ffd24f;padding:0 8px;font-size:12px;line-height:20px}
.exr .b3 .zone.out{z-index:7!important}
.exr .b3 .zone.pin.on{z-index:9!important}
.exr .phone-tip{display:none}
@media(max-width:560px){.exr .learnb .zone.pin .ztag{display:none}.exr .learnb .zone.pin.on .ztag{display:block}.exr .phone-tip{display:block}}
@media(max-width:560px){.exr .b3 .zone .ztag{font-size:10.5px;line-height:17px;padding:0 6px;border-width:1.5px}.exr .b3 .zone.in .ztag{font-size:10.5px;line-height:17px}.exr .zone[data-n]::after{width:18px;height:18px;font-size:10px;line-height:18px;top:-8px;right:-8px}}
.exr .snd{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 14px;border-radius:99px;border:2px solid var(--line);background:var(--card);color:var(--text);font:700 .85rem var(--font);cursor:pointer}
.exr .snd svg{width:20px;height:20px}
.exr .lockable{position:relative}
.exr .lock{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#0b1512b8;border-radius:14px;color:#fff;text-align:center;padding:16px;backdrop-filter:blur(2px)}
.exr .lock div{max-width:30ch;font-weight:700;line-height:1.7}
.exr .lock .btn{margin-top:10px}
.exr .dress{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
@media(max-width:560px){.exr .dress{grid-template-columns:1fr;justify-items:center}}
.exr .mpdrop{width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 50% 40%,var(--soft),var(--card));border:3px dashed var(--or);display:grid;place-items:end center;position:relative;overflow:visible}
.exr .mpdrop.hot{background:#ffd24f55;border-style:solid}
.exr .mpdrop svg{width:112%;height:auto;margin-bottom:-4px}
.exr .mpdrop.shake{animation:sh .4s}
.exr .worn{display:flex;flex-direction:column;gap:8px;min-width:0}
.exr .worn .wp{display:inline-flex;gap:8px;align-items:center;border-radius:99px;padding:4px 14px;font-weight:800;font-size:.9rem;width:fit-content}
.exr .worn .wp.ok{background:var(--okbg);color:var(--ok);border:1.5px solid var(--ok)}
.exr .worn .wp.no{background:var(--soft);color:var(--mute);border:1.5px dashed var(--line)}
.exr .ready{font-weight:900;color:var(--ok)}
.exr .gear{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px 6px;min-width:96px;border-radius:14px;border:2px solid var(--navy);background:var(--card);color:var(--text);font:800 .9rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.exr .gear svg{width:46px;height:46px;pointer-events:none}
.exr .gear.sel{background:var(--navy);color:var(--navy-ink)}
.exr .gear.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-60%) scale(1.1);box-shadow:0 14px 26px #0007;border-color:var(--or)}
.exr .lens{position:absolute;width:150px;height:150px;border-radius:50%;border:3px solid #fff;box-shadow:0 8px 24px #0008,inset 0 0 0 1px #0004;pointer-events:none;z-index:15;display:none;background-repeat:no-repeat;transform:translate(-50%,-50%)}
.exr .b3.zoom{cursor:none;touch-action:none}
.exr .btn.on{background:var(--navy);color:var(--navy-ink);border-color:var(--navy)}
.exr .notch{margin-top:10px;background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:8px 10px}
.exr .notch svg{width:100%;height:auto;display:block}
.exr .notch p{margin:4px 0 0;font-size:.88em;color:var(--mute)}
.exr .b3c{position:relative;width:100%;max-width:640px;margin:0 auto;aspect-ratio:1200/1000;user-select:none;-webkit-user-select:none;border-radius:14px;overflow:hidden}
.exr .b3c .zin>img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transition:opacity .3s}
.exr .b3c img.off{opacity:0}
.exr .b3c img.lift{transition:transform .5s ease-in,opacity .5s ease-in;transform:translateY(-18%) scale(1.04);opacity:0}
.exr .b3c img.drop{animation:dropin .45s cubic-bezier(.2,.9,.3,1.2)}
@keyframes dropin{from{transform:translateY(-14%);opacity:0}to{transform:none;opacity:1}}
.exr .b3c .hit{position:absolute;border:2px dashed #ffd24f;border-radius:10px;background:#ffd24f14;cursor:pointer;padding:0;z-index:8}
.exr .b3c .hit[hidden]{display:none}
.exr .b3c .hit.hot{background:#ffd24f55}
.exr .b3c .hit.pulse{animation:pl 1.2s ease-in-out infinite}
@keyframes pl{0%,100%{box-shadow:0 0 0 0 #ffd24faa}50%{box-shadow:0 0 0 10px #ffd24f00}}
.exr .b3c .mark{position:absolute;border:3px solid #ff5a4a;border-radius:50%;z-index:9;pointer-events:none;animation:pl 1s ease-in-out infinite}
.exr .simgrid{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:820px){.exr .simgrid{grid-template-columns:1.4fr 1fr;align-items:start}}
.exr .ssteps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.exr .ssteps li{display:flex;gap:10px;align-items:center;padding:6px 10px;border-radius:12px;border:1.5px solid var(--line);font-weight:500;font-size:.95em;color:var(--mute)}
.exr .ssteps li b{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--text);font-size:.85em}
.exr .ssteps li.now{border-color:var(--or);color:var(--text);background:var(--soft)}
.exr .ssteps li.now b{background:var(--or);color:var(--or-ink)}
.exr .ssteps li.ok{color:var(--ok)}
.exr .ssteps li.ok b{background:var(--ok);color:#fff}
.exr .table{margin-top:12px;border-radius:14px;border:2px dashed var(--line);padding:10px;min-height:96px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--card) 0 12px,var(--bg) 12px 24px)}
.exr .table .lbl{width:100%;text-align:center;font-size:.82em;color:var(--mute);font-weight:700}
.exr .part3d{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px;border-radius:14px;border:2px solid var(--navy);background:var(--card);color:var(--text);font:800 .85rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.exr .part3d img{height:74px;width:auto;pointer-events:none;transition:transform .25s}
.exr .part3d.sel{border-color:var(--or);box-shadow:0 0 0 3px #ff8a1f55}
.exr .part3d.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-60%) scale(1.15);box-shadow:0 14px 26px #0007}
.exr .rot{display:flex;gap:6px}
.exr .rot button{min-width:44px;min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);font:800 1rem var(--font);cursor:pointer}
.exr .gamebar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}
.exr .ask{font-size:1.15rem;font-weight:900;min-height:1.8em}
.exr .ask em{font-style:normal;color:var(--or-d)}
.exr .stats{display:flex;gap:8px;font-variant-numeric:tabular-nums}
.exr .stats span{background:var(--soft);border-radius:99px;padding:2px 12px;font-weight:800;font-size:.9rem}
.exr .b3 .gz{position:absolute;padding:0;border:0;background:none;cursor:pointer;z-index:6;border-radius:8px}
.exr .b3 .gz.right{box-shadow:0 0 0 3px #2dd47a;background:#2dd47a33}
.exr .b3 .gz.wrong{box-shadow:0 0 0 3px #ff5a4a;background:#ff5a4a33}
.exr .b3 .gz.show{box-shadow:0 0 0 3px #ffd24f;background:#ffd24f44;animation:pl 1s ease-in-out 2}
.exr .stars{font-size:2rem;letter-spacing:4px;color:#f5b301;text-align:center}
.exr .best{text-align:center;color:var(--mute);font-size:.9em}
.exr .exh{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:8px}
.exr .zone .zq{opacity:.9;font-size:1rem}
.exr .bins{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.exr .bin{border:2.5px dashed var(--line);border-radius:16px;padding:10px;min-height:140px;background:var(--bg);cursor:pointer;transition:background .2s}
.exr .bin.hot{background:#ffd24f33;border-color:#ffd24f}
.exr .bin h3{margin:0 0 8px;text-align:center;font-size:1.05rem}
.exr .bin .bl{display:flex;flex-direction:column;gap:6px}
.exr .scard{font-size:.9rem!important;line-height:1.5;text-align:start;white-space:normal;min-height:44px}
.exr .scard.placed{pointer-events:none;background:var(--okbg);border-color:var(--ok);color:var(--ok);cursor:default;opacity:1}
.exr .mcq .mq{font-weight:800;font-size:1.05rem;margin:4px 0 10px}
.exr .mopts{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:10px}
.exr .mopt{min-height:48px;padding:8px 12px;border-radius:12px;border:2px solid var(--line);background:var(--card);color:var(--text);font:700 .95rem var(--font);cursor:pointer}
.exr .mopt.ok{border-color:var(--ok);background:var(--okbg);color:var(--ok)}
.exr .mopt.no{border-color:var(--bad);background:var(--badbg);color:var(--bad)}
.exr .dg{position:relative;width:100%;max-width:560px;margin:0 auto;user-select:none;-webkit-user-select:none}
.exr .dg>svg{width:100%;height:auto;display:block}
.exr .bdt,.exr .fpt{position:absolute;border:2px dashed #e0a800;border-radius:9px;background:#ffd24f30;color:var(--text);font:800 .78rem var(--font);cursor:pointer;padding:0 4px;display:grid;place-items:center;white-space:nowrap;overflow:hidden}
.exr .bdt.hot,.exr .fpt.hot{background:#ffd24f88;border-style:solid}
.exr .bdt.done{border:2px solid var(--ok);background:var(--okbg);color:var(--ok)}
.exr .fpt{background:transparent;border-color:transparent}
.exr .fpt.hot{border-color:#ffd24f}
.exr .fpt:hover{border-color:#ffd24f88}
.exr .plug2{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;border-radius:14px;border:2px solid var(--navy);background:var(--card);color:var(--text);font:700 .82rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;min-width:110px}
.exr .plug2.sel{border-color:var(--or);box-shadow:0 0 0 3px #ff8a1f55}
.exr .plug2.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-60%) scale(1.08);box-shadow:0 14px 26px #0007}
.exr .plug2 b{font-size:.85rem}
.exr .plug2 small{color:var(--mute);font-size:.75rem}
.exr .plug2 .pl{display:flex;gap:2px;padding:3px;background:#1b1e24;border-radius:4px}
.exr .plug2 .pl i{width:14px;height:10px;border-radius:2px;display:block}
.exr .plug2 .pl.flipped{flex-direction:row-reverse}
.exr .plug2 .flip{margin-top:2px;min-height:44px;min-width:64px;border-radius:8px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);font:700 .75rem var(--font);cursor:pointer}
.exr .trsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}
.exr .trglow{fill:none;stroke:#ffd24f;stroke-width:16;stroke-linejoin:round;stroke-linecap:round;opacity:.45}
.exr .trdash{fill:none;stroke:#fff;stroke-width:6;stroke-dasharray:14 16;stroke-linecap:round;stroke-linejoin:round;animation:flow 1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-30}}
.exr .trend{fill:none;stroke:#ffd24f;stroke-width:5}
.exr .trbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.exr .trbtns .btn{min-height:44px;padding:6px 14px;font-size:.9rem}
.exr .meter{display:grid;gap:14px;grid-template-columns:1fr;align-items:start}
@media(min-width:760px){.exr .meter{grid-template-columns:1.3fr 1fr}}
.exr .mcard{position:relative;max-width:520px;width:100%;margin:0 auto;background:var(--bg);border-radius:14px;padding:6px}
.exr .mcard>img{width:100%;height:auto;display:block}
.exr .tp{position:absolute;transform:translate(-50%,-50%);border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;width:44px;height:44px;z-index:3}
.exr .tp span{position:absolute;top:36px;white-space:nowrap}
.exr .tp i{width:20px;height:20px;border-radius:50%;background:#d9dde3;border:3px solid #ffd24f;box-shadow:0 0 0 2px #0006}
.exr .tp span{font:800 11px var(--font);background:#16181dd9;color:#fff;border-radius:6px;padding:0 5px}
.exr .tp.hot i{background:#ffd24f}
.exr .probe-on{position:absolute;width:14px;height:40px;border-radius:7px 7px 3px 3px;transform:translate(-50%,-100%);z-index:4;pointer-events:none;box-shadow:0 4px 8px #0006}
.exr .probe-on.red{background:linear-gradient(#ff6b5a,#b3241a)}
.exr .probe-on.black{background:linear-gradient(#4a4f5a,#0d0f13);margin-left:9px}
.exr .mm{background:#ffd23f;border-radius:22px;padding:14px;border:3px solid #1c1f26;max-width:300px;margin:0 auto;box-shadow:0 10px 22px #0004}
.exr .lcd{background:#b9c7a5;color:#1c2416;border-radius:10px;font:800 2.2rem/1.2 "Courier New",monospace;text-align:center;min-height:56px;padding:6px;direction:ltr;font-variant-numeric:tabular-nums}
.exr .dial{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.exr .dial button{min-height:44px;border-radius:10px;border:2px solid #1c1f26;background:#2b2f38;color:#fff;font:800 .9rem var(--font);cursor:pointer}
.exr .dial button.on{background:#ff8a1f;color:#1a1100}
.exr .probes{display:flex;gap:10px;justify-content:center;margin-top:10px}
.exr .probe{min-height:48px;padding:6px 14px;border-radius:12px;border:2px solid #1c1f26;font:800 .9rem var(--font);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.exr .probe.red{background:#e2493a;color:#fff}
.exr .probe.black{background:#1c1f26;color:#fff}
.exr .probe.sel{box-shadow:0 0 0 3px #ffd24f}
.exr .probe.ghost{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-60%)}
.exr .got{display:flex;gap:8px;justify-content:center;margin-top:10px;flex-wrap:wrap}
.exr .got span{border:1.5px dashed var(--line);border-radius:99px;padding:2px 12px;font-weight:800;font-size:.85rem;color:var(--mute)}
.exr .got span.ok{border-style:solid;border-color:var(--ok);color:var(--ok);background:var(--okbg)}
.exr .fpbtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.exr .b3,.exr .b3c{overflow:hidden;touch-action:pan-y}
.exr .zin{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.exr .zoomed{cursor:grab}
.exr .zbtns{position:absolute;bottom:8px;left:8px;z-index:12;display:flex;flex-direction:row;gap:6px}
.exr .zbtns button{width:44px;height:44px;border-radius:12px;border:0;background:#16181db3;color:#fff;font:800 1.25rem/1 var(--font);cursor:pointer;box-shadow:0 3px 8px #0005}
.exr .zbtns button:focus-visible{outline:3px solid #2f6fd6;outline-offset:2px}
.exr .v3d{margin-top:12px}
.exr .v3stage{position:relative;width:100%;max-width:920px;margin:0 auto;aspect-ratio:4/3;max-height:78vh;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#e9eef3,#cfd8e2);touch-action:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .v3stage{background:radial-gradient(circle at 50% 35%,#232831,#151920)}}
:root[data-theme="dark"] .v3stage{background:radial-gradient(circle at 50% 35%,#232831,#151920)}
.exr .v3stage canvas{display:block;width:100%;height:100%;outline:none}
.exr .v3load{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#3a4150;font-weight:700;padding:16px}
.exr .v3bar{width:min(260px,70vw);height:8px;border-radius:9px;background:#ffffff99;overflow:hidden;margin:8px auto 0}
.exr .v3bar b{display:block;height:100%;width:0;background:var(--or);transition:width .2s}
.exr .v3tip{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:#16181dcc;color:#fff;border-radius:99px;padding:4px 14px;font-size:.8rem;font-weight:700;text-align:center;width:max-content;max-width:calc(100% - 20px);pointer-events:none;transition:opacity .6s}
.exr .b3.fs,.exr .b3c.fs,.exr .v3stage.fs{position:fixed;inset:0;z-index:9000;width:auto;max-width:none;max-height:none;aspect-ratio:auto;margin:0;border-radius:0;touch-action:none}
.exr .b3.fs,.exr .b3c.fs{background:#0b0d12}
.exr .fs .zbtns{position:fixed;bottom:max(12px,env(safe-area-inset-bottom,0px));left:12px;z-index:9002}
.exr .fs .zbtns [data-z=fs],.exr .v3stage.fs .v3fs{position:fixed;top:max(12px,env(safe-area-inset-top,0px));right:12px;z-index:9003}
.exr .v3fs{position:absolute;top:10px;right:10px;z-index:5;width:44px;height:44px;border-radius:12px;border:0;background:#16181db3;color:#fff;font:800 1.25rem/1 var(--font);cursor:pointer;box-shadow:0 3px 8px #0005}
.exr .fstoast{position:fixed;top:max(12px,env(safe-area-inset-top,0px));left:12px;right:72px;z-index:9001;background:#16181def;color:#fff;border-radius:12px;padding:10px 14px;font-weight:700;line-height:1.6;pointer-events:none}
.exr .fstoast[hidden]{display:none}
.exr .stlist{margin:8px 0 12px;padding-inline-start:1.6em}
.exr .stlist li{margin:6px 0;line-height:1.8}
.exr .dmstat{font-weight:800;margin:6px 0;color:var(--or-d)}
.exr .zone.screw{border-radius:50%;border:2px dashed #ffd24f;background:#ffd24f33;font-weight:800;font-size:.9rem}
.exr .zone.find{border:2px dashed #ffffffcc;border-radius:8px;background:#ffffff18}
@media(min-width:760px){.exr .b3{width:min(100%,920px,calc((72vh - 105px)*1.39));min-width:min(100%,420px)}.exr section.part .tray{position:sticky;bottom:0;z-index:30;background:var(--card);margin:10px -8px 0;padding:8px;border-top:2px solid var(--line);box-shadow:0 -10px 14px -12px #0003;max-height:30vh;overflow-y:auto}}
@media(min-width:760px){.exr [id^=bd].dg{max-width:min(560px,calc((82vh - 110px)*1.055))}.exr .dg{max-width:min(560px,calc((82vh - 110px)*1.9))}.exr .b3c{max-width:min(640px,calc((82vh - 110px)*1.2))}.exr .mcard{max-width:min(520px,calc((82vh - 110px)*2.08))}}
@media(min-width:760px){.exr section.part .tray .cardi img{height:36px}.exr section.part .tray .cardi{padding:4px 8px 3px;font-size:.85rem}.exr section.part .tray{gap:6px}}
.exr .exbar{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-top:14px}