@font-face{font-family:Red Hat Display;src:url('./assets/lab-visual/red-hat-display-regular.ttf') format('truetype');font-weight:400;font-display:swap}
*{box-sizing:border-box}html{background:#0c0817;color:#f5edff;font-family:'Red Hat Display',sans-serif}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,label{touch-action:manipulation}button{cursor:pointer}a[aria-disabled=true]{opacity:.35;pointer-events:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,label:has(input:focus-visible){outline:2px solid #f18ad3;outline-offset:7px}header{padding:25px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8caff19}header img{display:block;width:130px;height:45px;object-fit:contain;filter:brightness(0) invert(1)}header nav{display:flex;align-items:center;gap:30px;font-size:14px;color:#c7b4db}header nav [aria-current]{color:#fff;border-bottom:1px solid #ed8bcc;padding:4px 0}.hero{padding:65px 5% 55px;display:grid;grid-template-columns:1.4fr 1fr;gap:10%;align-items:end}.hero h1{font-size:clamp(56px,6.7vw,110px);font-weight:400;letter-spacing:-.065em;line-height:.98;margin:0}.hero h1 span{display:block;color:#f29ada}.hero p{font-size:clamp(17px,1.6vw,23px);color:#b9a7cc;line-height:1.5;max-width:430px;margin:0 0 4px}.workspace{margin:0 5%;border-top:1px solid #c694e94d}.workbar{display:flex;justify-content:space-between;gap:25px;padding:22px 0;align-items:center}.pick{display:flex;flex-wrap:wrap;gap:25px;align-items:center}.text-button,.file-label{border:0;border-bottom:1px solid #b16be488;background:none;color:#f9e6ff;padding:8px 0;font-size:17px;cursor:pointer}.text-button:hover,.file-label:hover{color:#f59bdc}.sample{color:#ae96c7;font-size:14px}.file-label input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.local{font-size:12px;letter-spacing:.04em;color:#a18ab7}.visual-grid{display:grid;grid-template-columns:minmax(0,1fr) 245px;background:#120c20;min-height:400px}.stage{position:relative;min-height:400px;display:flex;align-items:center;justify-content:center;padding:32px;background:radial-gradient(ellipse at 50% 30%,#29163e,#0e0a19 78%);overflow:hidden}.stage.dragging{outline:2px solid #f29ada;outline-offset:-4px}.stage canvas{display:block;max-width:100%;max-height:66vh;width:auto;height:auto;box-shadow:0 20px 80px #0005}.stage-note{position:absolute;left:24px;bottom:15px;color:#c6afd8;font-size:11px;letter-spacing:.04em;pointer-events:none}.controls{padding:32px 25px;border-left:1px solid #dcbeff16;display:flex;flex-direction:column;gap:32px}.controls h2{font-size:15px;font-weight:400;margin:0 0 18px;color:#a991be}.mode-list{display:grid;gap:13px}.mode-list label{font-size:16px;color:#b39acb;cursor:pointer;display:flex;gap:10px;align-items:center}.mode-list label:has(input:checked){color:#fff}.mode-list input{accent-color:#eb8fd3;width:13px;height:13px;margin:0}.opacity{display:block;font-size:14px;color:#b9a0cf}.range-line{display:flex;justify-content:space-between;gap:10px}.opacity input{display:block;width:100%;margin:20px 0 0;accent-color:#e58acd;cursor:pointer}.spectrum{height:8px;background:linear-gradient(90deg,#0e0822,#421f7e,#9934bd,#ed53a0,#ffac60,#fff4c2);margin:13px 0}.scale-label{display:flex;justify-content:space-between;color:#977eaf;font-size:11px}.meaning{font-size:12px;line-height:1.55;color:#9c83b4;margin:12px 0 0}.export{margin-top:auto;width:fit-content;color:#f4d7ef}.feedback{min-height:52px;display:flex;align-items:center;border-bottom:1px solid #d4a1ef26;font-size:13px;color:#b99bce;padding:16px 0;position:relative}.feedback[data-state=error]{color:#ffb0b8}.feedback[data-state=busy]:before{content:'';position:absolute;top:0;left:0;width:30%;height:2px;background:linear-gradient(90deg,transparent,#ed8bd5,transparent);animation:load 1.6s linear infinite}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(330%)}}.method{padding:55px 5% 65px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6%}.method h2{font-size:25px;font-weight:400;letter-spacing:-.035em;margin:0 0 18px}.method p{color:#927ca8;font-size:14px;line-height:1.65;margin:0}.method a{color:#c4a3d8;border-bottom:1px solid #b174d766}.technical{margin:0 5% 55px;border-top:1px solid #d7b4ef26;border-bottom:1px solid #d7b4ef26;padding:20px 0}.technical summary{cursor:pointer;color:#bba0cd;font-size:14px}.technical p{color:#907b9e;font-size:13px;line-height:1.6;max-width:900px}.technical a{border-bottom:1px solid #896097}.foot{padding:0 5% 40px;display:flex;justify-content:space-between;color:#705984;font-size:12px;gap:30px}.foot a{color:#a182bc}.foot span{max-width:600px}.hidden{display:none!important}
@media(max-width:800px){header{padding:18px 6%}header img{width:110px}header nav{gap:17px;font-size:12px}.hero{padding:45px 6% 35px;grid-template-columns:1fr;gap:25px}.hero h1{font-size:clamp(49px,10vw,76px)}.hero p{font-size:17px;max-width:530px}.workspace{margin:0 6%}.workbar{align-items:start;flex-direction:column;gap:12px}.visual-grid{grid-template-columns:1fr}.stage{min-height:320px;padding:25px 18px 35px}.stage canvas{max-height:62vh}.stage-note{left:18px;font-size:10px}.controls{border-left:0;border-top:1px solid #dcbeff16;display:grid;grid-template-columns:1fr 1fr;padding:25px;gap:25px}.mode-list{gap:12px}.controls h2{font-size:13px}.mode-list label{font-size:14px}.export{align-self:end;font-size:16px}.method{grid-template-columns:1fr;gap:30px;padding:40px 6%}.technical{margin:0 6% 35px}.foot{padding:0 6% 30px;flex-direction:column;gap:15px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
