@font-face{font-family:'Rubik';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/rubik-hebrew.woff2) format('woff2');unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;}
@font-face{font-family:'Rubik';font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/rubik-latin.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#e3ded6;font-family:Rubik,Assistant,Arial,sans-serif;color:#28313d}
body.dark{background:#020617;color:#e4e0da}
.stage{position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;background:#f5f2ed;overflow:hidden;direction:rtl}
body.dark .stage{background:#0b1222}
.abs{position:absolute}
button{font-family:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{cursor:not-allowed;opacity:.38}
.card{background:#fff;border-radius:22px;box-shadow:0 2px 0 rgba(15,23,42,.04),0 10px 30px rgba(15,23,42,.08)}
body.dark .card{background:#111a2e;box-shadow:none;border:2px solid #33405a}
header.top{position:absolute;top:0;right:0;width:1920px;height:96px;display:flex;align-items:center;gap:22px;padding:0 32px}
.brand{display:flex;align-items:center;gap:16px}
.brand .logo{width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,#5b77a3,#7b9cc4);display:grid;place-items:center}
.brand h1{font-size:38px;font-weight:800;letter-spacing:-.3px}
.brand small{display:block;font-size:20px;font-weight:500;color:#64748b}
.spacer{flex:1}
.tbtn{height:56px;padding:0 22px;border-radius:16px;background:#fff;color:#28313d;font-size:22px;font-weight:600;box-shadow:0 1px 0 rgba(0,0,0,.05),0 4px 14px rgba(15,23,42,.08);display:inline-flex;align-items:center;gap:10px}
body.dark .tbtn{background:#2a3446;color:#e4e0da}
.tbtn[aria-pressed=true]{background:#46607e;color:#fff}
body.dark .tbtn[aria-pressed=true]{background:#e4e0da;color:#28313d}
canvas.sim{position:absolute;touch-action:none}
.ro{display:flex;flex-direction:column;justify-content:center;padding:14px 22px}
.ro .lab{font-size:22px;font-weight:600;color:#475569;display:flex;align-items:center;gap:10px}
body.dark .ro .lab{color:#94a3b8}
.ro .val{font-weight:800;font-variant-numeric:tabular-nums;direction:ltr;text-align:right;line-height:1.05}
.ro .val small{font-size:.42em;font-weight:600;color:#64748b;margin-inline-start:.25em}
.unit{font-size:18px;padding:4px 10px;border-radius:10px;background:#ebe7e1;color:#28313d;font-weight:700}
body.dark .unit{background:#33405a;color:#e4e0da}
.dot{width:16px;height:16px;border-radius:50%;display:inline-block;flex:none}
.dot.heavy{background:radial-gradient(circle at 35% 35%,#8fa0ff,#3446d4 60%,#1b2490)}
.dot.light{background:radial-gradient(circle at 35% 35%,#ffc09a,#ec6a1c 60%,#a83c05);width:12px;height:12px}
.sec-t{font-size:22px;font-weight:700;color:#334155;margin-bottom:10px}
body.dark .sec-t{color:#d3cec6}
.spin{display:flex;align-items:center;gap:10px}
.spin .nm{font-size:24px;font-weight:600;flex:1;display:flex;align-items:center;gap:10px}
.spin .nm small{font-size:17px;color:#64748b;font-weight:500}
.spin button{min-width:72px;height:58px;border-radius:14px;background:#ebe7e1;font-size:24px;font-weight:700;color:#28313d;direction:ltr}
body.dark .spin button{background:#33405a;color:#e4e0da}
.spin .cnt{min-width:76px;text-align:center;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}
.heatrow{display:flex;gap:14px}
.hbtn{flex:1;height:84px;border-radius:18px;font-size:28px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;user-select:none;-webkit-user-select:none;position:relative;overflow:hidden}
.hbtn.heat{background:#b8694d}.hbtn.cool{background:#5a82a8}
.hbtn .lvl{position:absolute;inset:auto 0 0 0;height:8px;background:rgba(255,255,255,.85);transform-origin:right;transform:scaleX(0)}
.hbtn.on{box-shadow:inset 0 0 0 5px rgba(255,255,255,.75)}
.seg{display:grid;gap:8px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span small{display:block;font-size:15px;font-weight:500;opacity:.8}
.seg span{flex-direction:column;display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;padding:6px 10px;border-radius:14px;background:#ebe7e1;font-size:20px;font-weight:600;border:3px solid transparent;cursor:pointer;line-height:1.15}
body.dark .seg span{background:#33405a}
.seg input:checked+span{background:#46607e;color:#fff}
body.dark .seg input:checked+span{background:#e4e0da;color:#28313d}
.seg input:focus-visible+span{border-color:#7b9cc4}
.seg input:disabled+span{opacity:.4;cursor:not-allowed}
.tog{white-space:nowrap;display:flex;align-items:center;gap:10px;font-size:20px;font-weight:600;padding:8px 14px;border-radius:14px;background:#ebe7e1;cursor:pointer;user-select:none}
body.dark .tog{background:#33405a}
.tog input{width:24px;height:24px;accent-color:#28313d}
.abtn{height:68px;border-radius:16px;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;background:#ebe7e1;color:#28313d;position:relative;overflow:hidden}
body.dark .abtn{background:#33405a;color:#e4e0da}
.abtn.primary{background:#46607e;color:#fff}
body.dark .abtn.primary{background:#e4e0da;color:#28313d}
.abtn .fill{position:absolute;inset:0;background:rgba(14,165,233,.28);transform-origin:right;transform:scaleX(0)}
.abtn .t{position:relative}
.notice{position:absolute;max-width:760px;background:#46607e;color:#fff;border-radius:18px;padding:18px 24px;font-size:24px;font-weight:500;display:none;gap:16px;align-items:flex-start;line-height:1.35}
.notice.show{display:flex}
.notice button{background:#fff;color:#28313d;border-radius:12px;padding:8px 16px;font-size:20px;font-weight:700;flex:none}
.hist{position:absolute;display:none}
.hist.show{display:block}
.hist canvas{width:100%;height:100%}
.hist .ht{position:absolute;top:12px;right:18px;font-size:20px;font-weight:700}
.hist .lg{position:absolute;top:12px;left:18px;font-size:16px;color:#475569;display:flex;gap:14px;align-items:center}
body.dark .hist .lg{color:#94a3b8}
.rotate{display:none}
body.portrait .rotate{display:flex;position:fixed;inset:auto 10px 10px 10px;z-index:9;background:#46607e;color:#fff;border-radius:14px;padding:10px 14px;font-size:15px;direction:rtl;align-items:center;gap:10px;font-family:Rubik,sans-serif}
body.portrait .rotate button{margin-inline-start:auto;background:#fff;color:#28313d;border-radius:8px;padding:4px 10px;font-size:14px}
.credit{font-size:16px;color:#64748b}
.credit a{color:inherit}
.hidden-num .ro .val{visibility:hidden}
.hidden-num .ro .val::before{content:"?";visibility:visible;position:absolute}
:focus-visible{outline:4px solid #7b9cc4;outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.togs{display:grid;grid-template-columns:auto auto;gap:8px}
.togs .tog{font-size:17px;padding:6px 10px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.msteps{display:flex;align-items:center;margin-inline-start:28px}
.ms{display:flex;align-items:center}
.ms .c{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:19px;font-weight:700;border:3px solid #94a3b8;color:#64748b;background:#fff;transition:all .3s}
.ms .ln{width:26px;height:4px;background:#d3cec6;position:relative;overflow:hidden}
.ms .ln i{position:absolute;inset:0;background:#6f9a7c;transform-origin:right;transform:scaleX(0);transition:transform .5s}
.ms.done .c{background:#6f9a7c;border-color:#6f9a7c;color:#fff}
.ms.done .ln i{transform:scaleX(1)}
.ms.cur .c{width:52px;height:52px;background:#5b77a3;border-color:#5b77a3;color:#fff;font-size:22px;box-shadow:0 0 0 6px rgba(52,70,212,.15)}
.ms button{background:none;padding:0}
.ctl{position:absolute}
.lockmsg{display:none;position:absolute;inset:0;border-radius:22px;background:rgba(243,246,251,.86);align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#334155;backdrop-filter:blur(1px)}
.ctl.locked .lockmsg{display:flex}
.mpanel{display:flex;flex-direction:column;padding:26px 30px 24px;overflow:hidden}
.mp-k{font-size:20px;font-weight:600;color:#5b77a3}
.mp-t{font-size:38px;font-weight:800;margin:4px 0 14px;line-height:1.15}
.ph{display:flex;align-items:flex-start;margin-bottom:18px}
.ph .s{display:flex;flex-direction:column;align-items:center;gap:6px;width:76px;flex:none}
.ph .s .c{width:38px;height:38px;border-radius:50%;border:3px solid #94a3b8;display:grid;place-items:center;font-weight:700;font-size:18px;color:#64748b;background:#fff;transition:all .3s}
.ph .s span{font-size:17px;font-weight:600;color:#64748b}
.ph .ln{flex:1;height:4px;background:#d3cec6;margin-top:18px;position:relative;overflow:hidden}
.ph .ln i{position:absolute;inset:0;background:#6f9a7c;transform-origin:right;transform:scaleX(0);transition:transform .5s}
.ph .s.done .c{background:#6f9a7c;border-color:#6f9a7c;color:#fff}
.ph .s.done span{color:#15803d}
.ph .ln.done i{transform:scaleX(1)}
.ph .s.cur .c{width:46px;height:46px;margin-top:-4px;background:#5b77a3;border-color:#5b77a3;color:#fff}
.ph .s.cur span{color:#5b77a3;font-weight:800}
.mbody{flex:1;overflow-y:auto;padding-inline-end:4px;font-size:23px;line-height:1.5;scrollbar-width:thin}
.mbody p{margin-bottom:12px}
.mbody .q{font-weight:700;font-size:25px;margin:6px 0 12px}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;gap:14px;align-items:center;text-align:right;padding:14px 18px;border-radius:16px;background:#f1eee9;font-size:22px;font-weight:500;color:#28313d;border:3px solid transparent;line-height:1.35;width:100%}
.opt .rd{width:26px;height:26px;border-radius:50%;border:3px solid #64748b;flex:none;background:#fff}
.opt[aria-checked=true]{border-color:#28313d;background:#fff}
.opt[aria-checked=true] .rd{border:8px solid #3d4f66}
.opt.tried{opacity:.55}
.opt.tried .rd{border-color:#b91c1c}
.opt.right{border-color:#6f9a7c;background:#f0fdf4}
.opt.right .rd{border:8px solid #6f9a7c}
.opt:disabled{cursor:default;opacity:1}
.mine{display:inline-flex;gap:8px;align-items:center;background:#eef2ff;color:#5b77a3;border-radius:12px;padding:6px 14px;font-size:19px;font-weight:600;margin-bottom:12px}
.tasks{list-style:none;display:flex;flex-direction:column;gap:10px;margin:6px 0 14px}
.tasks li{display:flex;gap:14px;align-items:flex-start;padding:12px 16px;border-radius:14px;background:#f8fafc;border:2px solid #e4e0da;transition:background .4s,border-color .4s}
.tasks li .ck{width:34px;height:34px;border-radius:50%;border:3px solid #94a3b8;flex:none;display:grid;place-items:center;font-size:20px;font-weight:800;color:#64748b;background:#fff;transition:all .35s}
.tasks li.done{background:#f0fdf4;border-color:#86efac}
.tasks li.done .ck{background:#6f9a7c;border-color:#6f9a7c;color:#fff}
.tasks li.next{border-color:#5b77a3;background:#fff}
.tasks li small{display:block;font-size:18px;color:#475569}
.mt{width:100%;border-collapse:collapse;font-size:21px;font-variant-numeric:tabular-nums;text-align:center;margin:4px 0 12px}
.mt th{font-size:16px;color:#64748b;font-weight:600;padding:4px}
.mt td{border-top:2px solid #e4e0da;padding:6px 4px}
.res{border-radius:18px;background:#eef2ff;padding:16px 20px;margin:8px 0 6px}
.res h3{font-size:24px;margin-bottom:6px}
.big{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}
.fb{border-radius:16px;padding:14px 18px;margin-top:12px;font-size:21px}
.fb.ok{background:#f0fdf4;border:2px solid #86efac}
.fb.no{background:#fff7ed;border:2px solid #fdba74}
.disc{border-radius:22px;padding:22px 24px;background:linear-gradient(135deg,#5b77a3,#5a82a8);color:#fff;margin:6px 0 14px}
.disc .k{font-size:18px;font-weight:600;opacity:.85}
.disc h3{font-size:30px;margin:4px 0 8px;line-height:1.2}
.disc p{font-size:22px;margin:0}
.disc .law{display:inline-block;margin-top:12px;background:rgba(255,255,255,.18);border-radius:12px;padding:6px 14px;font-size:22px;font-weight:700;direction:ltr}
.mfoot{display:flex;gap:12px;align-items:center;padding-top:16px;border-top:2px solid #e4e0da;margin-top:10px}
.mfoot .need{flex:1;font-size:19px;color:#475569;line-height:1.3}
.go{height:68px;padding:0 30px;border-radius:18px;background:#5b77a3;color:#fff;font-size:25px;font-weight:700;flex:none}
.go.sec{background:#ebe7e1;color:#28313d}
.go:disabled{background:#d3cec6;color:#475569;opacity:1}
.mbtn{width:100%;height:66px;margin:4px 0 10px}
.nb{padding:30px 36px;overflow-y:auto;z-index:5}
.nb h2{font-size:36px;margin-bottom:16px}
.nbgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.nbc{border-radius:18px;padding:16px 18px;background:#eef2ff;min-height:150px}
.nbc.lockd{background:#f1eee9;color:#94a3b8;display:grid;place-items:center;font-size:22px}
.nbc .k{font-size:16px;color:#5b77a3;font-weight:600}
.nbc h3{font-size:22px;margin:4px 0}
.nbc p{font-size:18px;line-height:1.4}

.fold{position:absolute;left:1210px;top:150px;width:40px;height:84px;border-radius:14px 0 0 14px;background:#46607e;color:#fff;font-size:26px;font-weight:700;z-index:3}
.mtab{display:none;position:absolute;left:1840px;top:108px;width:56px;height:956px;border-radius:18px;background:#5b77a3;color:#fff;font-size:24px;font-weight:700;writing-mode:vertical-rl;letter-spacing:1px}
.stage.collapsed .mpanel,.stage.collapsed .fold{display:none}
.stage.collapsed .mtab{display:block}
.stage.collapsed #cv{width:1800px!important}
.stage.collapsed #ro,.stage.collapsed #ctl,.stage.collapsed #sbar{width:1800px!important}

.info{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e4e0da;color:#334155;font-size:18px;font-weight:800;font-family:Georgia,serif;font-style:italic}
.pop{position:absolute;z-index:6;max-width:560px;background:#46607e;color:#fff;border-radius:16px;padding:16px 20px;font-size:21px;line-height:1.45;display:none}
.pop.show{display:block}
.more{margin-top:10px}
.more button{background:#ebe7e1;border-radius:12px;padding:8px 16px;font-size:20px;font-weight:600;color:#28313d}
.more ul{margin:10px 22px 0 0;font-size:21px}
.more li{margin-bottom:8px}

.seg input:disabled:checked+span{opacity:1}

.pfold{position:absolute;left:1360px;top:740px;width:30px;height:96px;border-radius:12px 0 0 12px;background:#46607e;color:#fff;font-size:22px;z-index:3}
.ptab{display:none;position:absolute;left:1846px;top:300px;width:56px;height:480px;border-radius:18px;background:#46607e;color:#fff;font-size:24px;font-weight:700;writing-mode:vertical-rl}
body.dark .pfold,body.dark .ptab{background:#e4e0da;color:#28313d}
.stage.pc #pdrawer,.stage.pc .pfold{display:none}
.stage.pc .ptab{display:block}
.stage.pc #roP{height:400px!important}.stage.pc #roP .val{font-size:180px}
.stage.pc #roT{top:496px!important;height:250px!important}.stage.pc #roT .val{font-size:130px!important}
.stage.pc #roV,.stage.pc #roN{top:758px!important;height:200px!important}.stage.pc #roV .val,.stage.pc #roN .val{font-size:76px!important}


/* ---- round 2: controls shared by both modes (student sizes; projector overrides below) ---- */
.pumpsel{display:flex;gap:10px;align-items:center}
.pumpsel .pl{font-size:22px;font-weight:700;color:#334155;white-space:nowrap}
body.dark .pumpsel .pl{color:#d3cec6}
.pumpsel button{flex:1;height:58px;border-radius:14px;background:#ebe7e1;color:#28313d;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;border:3px solid transparent}
.pumpsel button b{font-variant-numeric:tabular-nums;font-weight:800;opacity:.8}
.pumpsel button[aria-pressed=true]{background:#46607e;color:#fff}
body.dark .pumpsel button{background:#33405a;color:#e4e0da}
body.dark .pumpsel button[aria-pressed=true]{background:#e4e0da;color:#28313d}
.dd{position:relative}
.ddb{width:100%;height:58px;border-radius:14px;background:#ebe7e1;color:#28313d;font-size:22px;display:flex;gap:12px;align-items:center;padding:0 18px}
.ddb .ddl{color:#475569;font-weight:600}
.ddb b{font-weight:800}
.ddb .tri{margin-inline-start:auto;font-size:.9em}
body.dark .ddb{background:#33405a;color:#e4e0da}
body.dark .ddb .ddl{color:#94a3b8}
.ddm{position:absolute;bottom:calc(100% + 8px);right:0;left:0;list-style:none;background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(15,23,42,.25);padding:8px;z-index:10}
.ddm li{padding:12px 18px;font-size:22px;font-weight:600;border-radius:12px;cursor:pointer}
.ddm li:hover,.ddm li:focus{background:#e4e0da;outline:none}
.ddm li[aria-selected=true]{background:#46607e;color:#fff}
body.dark .ddm{background:#111a2e;border:2px solid #33405a}
body.dark .ddm li:hover,body.dark .ddm li:focus{background:#33405a}
body.dark .ddm li[aria-selected=true]{background:#e4e0da;color:#28313d}
.tinfo{font-size:20px;font-weight:700;color:#047857;white-space:nowrap}
body.dark .tinfo{color:#6ee7b7}
.morepop{padding:22px 24px;z-index:6;display:flex;flex-direction:column;gap:10px}
.morepop[hidden]{display:none}
.morepop .spd{display:flex;gap:30px;font-size:30px;font-variant-numeric:tabular-nums}
.morepop .credit{font-size:20px;margin-top:8px;line-height:1.4}
/* projector: everything readable from the back; nothing under 24px */
.proj header.top{height:76px;padding:0 24px;gap:16px}
.proj .brand .logo{width:52px;height:52px}
.proj .brand h1{font-size:36px}
.proj .tbtn{height:58px;font-size:26px;padding:0 20px}
.proj .ro .lab{font-size:30px;font-weight:700}
.proj .unit{font-size:26px;padding:4px 12px}
.proj .bigP .val{font-size:150px}
.proj .ro .val small{font-size:.4em}
.proj .pbar{display:flex;gap:12px;align-items:center;height:64px}
.proj .tog{font-size:26px;padding:8px 16px;height:58px}
.proj .tog input{width:30px;height:30px}
.proj .tinfo{font-size:26px}
.proj .pctl{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.proj .pumpsel .pl{font-size:26px}
.proj .pumpsel button{height:66px;font-size:28px}
.proj .heatrow .hbtn{height:78px;font-size:32px}
.proj .ddb{height:66px;font-size:28px}
.proj .ddm li{font-size:28px;padding:14px 20px}
.proj .arow{display:grid;grid-template-columns:1fr 1fr 1.45fr;gap:12px}
.proj .abtn{height:66px;font-size:26px}
.proj .spin .nm{font-size:28px}.proj .spin .nm small{font-size:22px}
.proj .spin button{font-size:28px;height:62px}
.proj .sec-t{font-size:26px}
.proj .notice{font-size:30px}.proj .notice button{font-size:26px}
.proj .hist .ht{font-size:28px}.proj .hist .lg{font-size:24px}
.proj .ptab{font-size:28px}

.sbar{display:flex;gap:10px;align-items:center;height:48px}
.sbar .tog{font-size:20px;height:46px}
.tbtn.sm{height:46px;font-size:20px;padding:0 16px}
.student .ro .lab{font-size:20px}
.student .ddb,.student .pumpsel button{height:62px}

/* background: soft lab bench photo-illustration (generated), muted under a light veil */
.stage{background:#f5f2ed url(bg-lab.webp) center/cover no-repeat}
.stage::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,242,237,.42),rgba(245,242,237,.18) 60%,rgba(245,242,237,.10));pointer-events:none}
body.dark .stage{background:#0b1222}
body.dark .stage::before{display:none}
.card{background:rgba(255,255,255,.9);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.tinfo.chip{background:rgba(255,255,255,.92);border-radius:14px;padding:8px 16px;box-shadow:0 4px 14px rgba(40,49,61,.12);z-index:2}
.tinfo.chip[hidden]{display:none}
body.dark .tinfo.chip{background:#111a2e}

/* ---- round 2: record buttons, tracks ---- */
.abtn .fill{background:rgba(150,178,204,.5)}
#ro{grid-template-columns:1.2fr 1.1fr 1fr 1fr}
#ro.hasrec{grid-template-columns:1.05fr 1fr .85fr 1fr 1.1fr}
.rowrec{height:92px;border-radius:18px;font-size:26px;line-height:1.15;box-shadow:0 4px 14px rgba(40,49,61,.14)}
.rowrec[hidden]{display:none}
.rec .t small{display:block;font-size:.66em;font-weight:500;opacity:.85}
.rec.pending{background:#5f7896}
.rechint{display:block;margin-top:6px;color:#4f6077;font-size:.95em}
.trackchip{font-size:22px;background:rgba(255,255,255,.85)}
.rules{margin:10px 0 0;padding:0 26px 0 0;font-size:28px;font-weight:700;line-height:1.6}
body.track-reg #uT{cursor:default;opacity:1}
.unit{direction:ltr;unicode-bidi:isolate}
