/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.grow{flex-grow:1}.resize{resize:both}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#26383c;--paper:#edf1ec}*{box-sizing:border-box}html,body{background:var(--paper);min-height:100%;margin:0;overflow:hidden}body{color:var(--ink);font-family:Arial,Helvetica,sans-serif}button{font:inherit}.lab-shell{background:radial-gradient(circle at 50% 42%,#ffffffeb,#ffffff14 55%),linear-gradient(145deg,#edf2ef,#e5ebe7);width:100vw;height:100svh;position:relative;overflow:hidden}canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.burst-ripple{z-index:2;pointer-events:none;border:2px solid #ffffffd1;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;animation:.52s ease-out forwards burst-ripple;position:absolute}@keyframes burst-ripple{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(9)}}.ui-layer{pointer-events:none;position:absolute;inset:0}.ui-layer>*{pointer-events:auto;transition:opacity .2s,transform .2s}.ui-layer.is-hidden>*{opacity:0;pointer-events:none}.ui-toggle{z-index:3;color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#fafcf9bd;border:1px solid #26383c24;border-radius:999px;padding:8px 14px;transition:opacity .25s;position:absolute;top:28px;left:50%;transform:translate(-50%)}.ui-toggle:hover{background:#fff}.clean .ui-toggle{opacity:0;pointer-events:none}.clean.awake .ui-toggle{opacity:1;pointer-events:auto}.portals{pointer-events:none;letter-spacing:.04em;font:700 8px Arial;transition:opacity .25s;position:absolute;inset:0}.clean .portals{opacity:0}.portals i{color:#4d9d97b8;border-color:currentColor;font-style:normal;display:block;position:absolute}.portals .edge.left,.portals .edge.right{border-left:2px dashed;width:22px;height:12%}.portals .edge.top,.portals .edge.bottom{border-top:2px dashed;width:12%;height:18px}.portals .left{padding-left:7px;top:32%;left:0}.portals .right{text-align:right;border-right:2px dashed;padding-right:7px;top:32%;right:0;border-left:0!important}.portals .top{padding-top:7px;top:0;left:26%}.portals .bottom{border-bottom:2px dashed;padding-bottom:7px;bottom:0;left:26%;border-top:0!important}.portals .back{color:#846fa7b8;border:2px dashed;width:12vh;height:12vh;padding:7px;top:44%;left:calc(32% - 6vh)}.portals .two{color:#cf776cb8}.portals .four{color:#c59d49b8}.portals .five{color:#547cb7b8}.portals .right.entry{top:62%}.portals .top.entry{left:62%}.portals .six{color:#419d5bb8;top:62%}.portals .top.entry.seven{color:#be4f7ab8;left:26%}.portals .eight{color:#4f43adb8;left:calc(68% - 6vh)}.portals .right.entry.nine{color:#cf8037b8;top:32%}.portals .ten{color:#7c9d38b8;left:62%}.portals .wall-exit{color:#c45258cc}.portals .wall-exit.left,.portals .wall-exit.right{border-left:2px dashed;width:22px;height:8%;padding-left:7px;top:46%}.portals .wall-exit.right{text-align:right;border-left:0;border-right:2px dashed;padding:0 7px 0 0;left:auto;right:0}.portals .wall-exit.top,.portals .wall-exit.bottom{text-align:center;border-top:2px dashed;width:12%;height:18px;padding-top:7px;top:0;left:44%}.portals .wall-exit.bottom{border-top:0;border-bottom:2px dashed;padding:0 0 7px;top:auto;bottom:0}.portals .wall-exit.back-wall{text-align:center;border:2px dashed;width:10vh;height:10vh;padding:7px;top:calc(50% - 5vh);left:calc(50% - 5vh)}.portals .corner-exit{border:2px dashed #c45258cc;width:26px;height:26px}.portals .corner-exit.rear{opacity:.56;width:20px;height:20px}.portals .tl.front{top:4px;left:4px}.portals .tl.rear{top:34px;left:34px}.portals .tr.front{top:4px;right:4px}.portals .tr.rear{top:34px;right:34px}.portals .bl.front{bottom:4px;left:4px}.portals .bl.rear{bottom:34px;left:34px}.portals .br.front{bottom:4px;right:4px}.portals .br.rear{bottom:34px;right:34px}.lab-title{position:absolute;top:28px;left:32px}.lab-title p{letter-spacing:.18em;text-transform:uppercase;opacity:.55;margin:0 0 8px;font-size:11px;font-weight:700}.lab-title h1{letter-spacing:-.035em;margin:0;font:400 32px/1.05 Georgia,serif}.readout{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f9fbf899;border:1px solid #26383c1f;border-radius:16px;min-width:218px;padding:8px 16px;display:grid;position:absolute;top:28px;right:28px;box-shadow:0 12px 40px #3a48440f}.readout div{border-bottom:1px solid #26383c14;justify-content:space-between;gap:24px;padding:7px 0;display:flex}.readout div:last-child{border:0}.readout span{letter-spacing:.13em;opacity:.48;font-size:9px;font-weight:700}.readout strong{font:400 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.controls{gap:8px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.controls button{min-width:92px;color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#fafcf9bd;border:1px solid #26383c24;border-radius:999px;padding:10px 17px}.controls button:hover{background:#fff}.controls button:focus-visible{outline-offset:3px;outline:2px solid #638d91}.hint{opacity:.48;margin:0;font-size:11px;position:absolute;bottom:28px;left:28px}.tuning{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f9fbf8ad;border:1px solid #26383c1f;border-radius:14px;width:250px;padding:10px 14px;position:absolute;bottom:25px;right:28px}.presets{grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:5px;display:grid}.presets button{color:var(--ink);cursor:pointer;background:#ffffff73;border:1px solid #26383c1f;border-radius:999px;padding:6px 4px;font-size:10px}.presets button.active{color:#fff;background:#496f70;border-color:#496f70}.shape-switch{grid-template-columns:auto 1fr 1.35fr;align-items:center;gap:5px;padding:2px 0 4px;display:grid}.shape-switch span{padding-right:4px}.shape-switch button{color:var(--ink);cursor:pointer;background:#ffffff73;border:1px solid #26383c1f;border-radius:999px;padding:6px 4px;font-size:10px}.shape-switch button.active{color:#fff;background:#496f70;border-color:#496f70}.tuning label{padding:5px 0;display:block}.tuning span{letter-spacing:.12em;opacity:.62;justify-content:space-between;font-size:9px;font-weight:700;display:flex}.tuning input{accent-color:#496f70;cursor:pointer;width:100%;margin:7px 0 0;display:block}@media (width<=640px){.ui-toggle{padding:8px 12px;font-size:12px;top:16px;left:auto;right:16px;transform:none}.lab-title{top:20px;left:20px}.lab-title h1{font-size:25px}.lab-title p{max-width:110px}.readout{grid-template-columns:repeat(4,1fr);min-width:0;padding:8px 12px;inset:auto 16px 350px}.readout div{border:0;padding:6px 0;display:block}.readout span,.readout strong{display:block}.readout strong{margin-top:4px;font-size:9px}.readout div:first-child,.hint{display:none}.controls{bottom:max(14px, env(safe-area-inset-bottom));gap:6px}.controls button{min-width:76px;padding:10px 13px}.tuning{grid-template-columns:1fr 1fr;gap:8px 18px;width:auto;max-height:calc(100svh - 220px);display:grid;bottom:72px;left:16px;right:16px;overflow-y:auto}.presets{grid-column:1/-1;margin-bottom:0}.shape-switch{grid-column:1/-1}}
