:root{font-family:'DM Sans',sans-serif;color:#283c31;background:#e8efec;font-synthesis:none;--green:#294c3c;--line:#cad6cb}*{box-sizing:border-box}body{margin:0}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bf864b;outline-offset:3px}button{border:0;color:inherit}main{min-height:100svh;position:relative;overflow:hidden}#stage{position:fixed;inset:0}#stage canvas{width:100%;height:100%;display:block;touch-action:none}header{position:relative;display:flex;justify-content:space-between;align-items:center;padding:30px 40px;pointer-events:none}.brand{font-family:'Manrope',sans-serif;font-weight:800;font-size:21px;letter-spacing:-.8px;text-decoration:none;color:var(--green);pointer-events:auto}.mark{font-size:31px;vertical-align:-2px;margin-right:9px}.study{font-size:11px;font-weight:700;letter-spacing:2px;display:flex;gap:15px;align-items:center}.study span{border:1px solid #8caa9a;border-radius:50%;padding:6px;letter-spacing:0}.intro{position:relative;pointer-events:none;text-align:center;margin:6px auto 0;width:max-content;max-width:96vw}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;margin:0 0 10px;color:#61816e}h1{font-family:'Manrope',sans-serif;font-size:36px;font-weight:600;letter-spacing:-1.8px;margin:0}.description{font-size:14px;color:#607c6b;margin:8px 0 10px}.preview-label{font-size:11px;color:#64816f}.subjects{position:absolute;top:275px;left:38px;display:flex;flex-direction:column;padding:6px;border:1px solid #fff9;background:#f7f9f0c9;backdrop-filter:blur(16px);border-radius:19px;gap:4px;box-shadow:0 8px 32px #284f3b08}.subjects button{padding:11px 17px;border-radius:13px;background:transparent;font-size:13px;font-weight:600;text-align:left}.subjects button[aria-pressed=true]{background:var(--green);color:#f3f7ed}.view-tools{position:absolute;top:295px;right:38px;display:flex;flex-direction:column;background:#f7f9f0c9;border-radius:18px;border:1px solid #fff9;backdrop-filter:blur(16px)}.view-tools button{background:transparent;font-size:25px;width:45px;height:46px}.view-tools button:hover{color:#8c6539}.control-panel{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 32px));background:#f8faf2e8;border:1px solid #fff;border-radius:23px;padding:18px 22px 12px;box-shadow:0 10px 60px #28493215;backdrop-filter:blur(20px)}.control-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.control-group{display:flex;align-items:center;gap:18px}.caption{font-size:10px;font-weight:700;letter-spacing:1.3px;color:#748775}.segmented{display:flex;gap:4px;align-items:center}.segmented button{background:transparent;border-radius:9px;padding:8px 11px;font-size:13px;white-space:nowrap}.segmented button[aria-pressed=true]{background:#dbe6d4;color:#274536;font-weight:700}.segmented button:hover{background:#e4ebde}#pause{background:#e6edde;width:34px;height:34px;border-radius:50%;font-size:14px}.views{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.quality-label{display:flex;align-items:center;gap:8px;font-size:12px;color:#6f8070}select{appearance:auto;color:#385341;border:1px solid #c9d5c4;background:#f4f7ed;padding:5px;border-radius:6px;font-size:12px}.footer-row{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px}.gesture{font-size:10px;color:#778b7b}#stats-toggle{background:transparent;font-size:11px;white-space:nowrap;color:#637862;padding:4px 0}#fps{font-variant-numeric:tabular-nums;font-weight:700;margin-left:5px}#stats{padding:12px 0 4px;border-top:1px solid var(--line);margin-top:8px;font-size:12px;color:#58715c}#numbers{display:flex;gap:15px;flex-wrap:wrap;line-height:1.6}#numbers strong{color:#294c3c}#stats p{font-size:11px;line-height:1.5;margin:7px 0}.population{display:flex;justify-content:space-between;align-items:center}#failure{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);width:min(420px,90vw);background:#f6f8f0;padding:25px;border:1px solid #b6c6b6;border-radius:18px;z-index:5}#failure p{font-size:15px;line-height:1.5}button[disabled]{opacity:.4;cursor:default}
@media(max-width:650px){header{padding:17px 20px}.brand{font-size:18px}.mark{font-size:26px;margin-right:5px}.study{font-size:8px;letter-spacing:1.4px;gap:7px}.study span{padding:5px}.intro{margin-top:8px}.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:7px}h1{font-size:29px;letter-spacing:-1.2px}.description{font-size:12px;margin:6px 0 6px}.preview-label{font-size:10px}.subjects{top:190px;left:50%;transform:translateX(-50%);flex-direction:row;border-radius:14px;padding:4px;gap:1px}.subjects button{font-size:12px;padding:8px 12px;border-radius:9px}.view-tools{right:13px;top:270px;border-radius:14px}.view-tools button{width:36px;height:39px;font-size:23px}.control-panel{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);border-radius:19px;padding:12px 14px 9px}.caption{display:none}.control-group{gap:0}.segmented button{font-size:12px;padding:8px 9px}.views{gap:3px;margin-top:9px;padding-top:8px}.quality-label{font-size:0;gap:0}select{font-size:11px;max-width:98px}.gesture{font-size:9px;max-width:215px;line-height:1.4}.footer-row{gap:5px;margin-top:8px}#stats-toggle{font-size:10px}.angles{gap:1px}.angles button{padding:7px 8px}#pause{width:30px;height:30px}}
@media(max-height:700px) and (min-width:651px){.intro{margin-top:-30px}h1{font-size:28px}.description{margin:5px}.subjects{top:200px}.view-tools{top:200px}.control-panel{padding:10px 18px}}

.solo .intro h1,.solo .intro .eyebrow,.solo .intro .description{display:none}.solo .intro{margin-top:0}@media(max-width:650px){.solo .subjects{top:108px}}

@media(max-width:650px){.subjects{max-width:calc(100vw - 24px);overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.subjects button{flex:0 0 auto;padding:8px 10px}.control-row .segmented button{padding:8px 7px}}

.workshop-nav{display:flex;gap:8px;pointer-events:auto}.workshop-nav a{display:flex;align-items:center;min-height:44px;padding:12px 18px;border-radius:30px;color:inherit;text-decoration:none;font-size:14px;touch-action:manipulation}.workshop-nav a[aria-current="page"]{background:#e5eadf;color:var(--green);font-weight:650}.workshop-nav a:hover{background:#e5ebdf}header{gap:8px}
@media(max-width:650px){header{padding:14px 16px}.brand{font-size:16px}.mark{font-size:23px;margin-right:4px}.workshop-nav{gap:2px}.workshop-nav a{padding:9px 8px;font-size:11px;min-height:40px}}

.subjects{max-width:calc(100vw - 100px);overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.subjects button{flex:0 0 auto}@media(max-width:650px){.subjects{max-width:calc(100vw - 24px)}}
