:root{color:#f1f1eb;background:radial-gradient(circle at center,#235f9e,#15395f 52%,#15395f);font-family:Inter,IBM Plex Sans,Segoe UI,sans-serif;font-weight:300;--top-overlay-gap: 1rem;--top-right-gap: 2rem;--logo-width: min(16rem, 28.8vw)}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%}body{min-height:100vh;background:radial-gradient(circle at center,#235f9e,#15395f 52%,#15395f)}button,input,select{font:inherit}button{border:1px solid rgba(247,220,153,.28);background:#102235d6;color:#f6edd7;padding:.55rem .8rem;border-radius:999px;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}button:hover,button.selected{background:#f7dc9924}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{width:100vw;height:100vh;background:radial-gradient(circle at center,#235f9e,#15395f 52%,#15395f)}.workspace{position:relative;width:100%;height:100%;overflow:hidden}.viewer{width:100vw;height:100vh;background:transparent}.shortcut-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:2rem;background:#050f1b7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shortcut-overlay-card{width:min(960px,100%);max-height:min(80vh,780px);overflow:auto;padding:1.2rem 1.3rem;border-radius:24px;background:#0d2238f5;border:1px solid rgba(247,220,153,.22);box-shadow:0 24px 70px #00000057}.shortcut-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.shortcut-overlay-close{min-width:2.2rem;width:2.2rem;height:2.2rem;padding:0;font-size:1.2rem}.shortcut-overlay-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.shortcut-section{padding:.9rem 1rem;border-radius:18px;background:#f7dc990f;border:1px solid rgba(247,220,153,.14)}.shortcut-section-title{margin-bottom:.75rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#f7dc99c2}.shortcut-row{display:grid;grid-template-columns:minmax(72px,auto) 1fr;gap:.75rem;align-items:start;padding:.28rem 0}.shortcut-keys{color:#f7dc99}.shortcut-description{color:#f1f1ebe6}.overlay-panel{position:absolute;z-index:3}.top-left-panel{top:var(--top-overlay-gap);left:var(--top-overlay-gap);width:calc(100vw - (var(--top-overlay-gap) * 2) - var(--top-right-gap) - var(--logo-width));display:flex;flex-direction:column;gap:.85rem}.top-right-logo{top:var(--top-overlay-gap);right:var(--top-right-gap);pointer-events:none}.app-logo{display:block;width:var(--logo-width);height:auto}.datum-list-panel{top:50%;left:1rem;transform:translateY(-50%);width:320px;max-height:none;overflow:visible;display:flex;flex-direction:column;gap:.55rem}.bottom-left-panel{left:1rem;bottom:1rem;width:min(360px,calc(100vw - 2rem))}.bottom-right-panel{right:1rem;bottom:1rem;width:min(920px,calc(100vw - 2rem))}.top-controls,.instruction-card,.transform-card,.clip-card,.datum-item,.empty-state{background:#102c4ec7;border:1px solid rgba(247,220,153,.16);box-shadow:0 12px 36px #030c1540;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-controls,.instruction-card,.transform-card,.clip-card,.empty-state{border-radius:18px}.top-controls{display:flex;gap:1.6rem;align-items:center;padding:.85rem 1rem;flex-wrap:wrap;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.control-group{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.button-strip{display:flex;gap:.45rem;flex-wrap:wrap}.tool-button{min-width:2.2rem;width:2.2rem;height:2.2rem;padding:0;font-weight:600;border-radius:50%}.constraint-button{width:2.2rem;height:2.2rem;padding:0;font-size:.92rem;border-radius:50%}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center}.button-icon{width:1.2rem;height:1.2rem;display:block;object-fit:contain}.tool-button .button-icon,.view-control-button .button-icon,.constraint-button .button-icon{width:1.3rem;height:1.3rem}.has-tooltip:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .55rem);transform:translate(-50%) translateY(.2rem);opacity:0;pointer-events:none;min-width:max-content;max-width:18rem;padding:.35rem .5rem;border-radius:10px;background:#081627f0;border:1px solid rgba(247,220,153,.3);color:#f6edd7;font-size:.8rem;line-height:1.25;white-space:normal;box-shadow:0 10px 24px #030c1547;transition:opacity .12s ease,transform .12s ease;z-index:10}.has-tooltip{position:relative}.has-tooltip:hover:after,.has-tooltip:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-bottom:after{top:calc(100% + .55rem);bottom:auto;transform:translate(-50%) translateY(-.2rem)}.tooltip-bottom:hover:after,.tooltip-bottom:focus-visible:after{transform:translate(-50%) translateY(0)}.plane-button-xy{border-color:#5c86ff85}.plane-button-yz{border-color:#ff7b7b8f}.plane-button-xz{border-color:#63d47f8f}.axis-button-x{border-color:#ff7b7b8f}.axis-button-y{border-color:#63d47f8f}.axis-button-z{border-color:#5c86ff85}.instruction-card{padding:.9rem 1rem;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.instruction-card p{margin:0;color:#f1f1ebeb}.step-row{display:flex;gap:.45rem;margin-bottom:.75rem}.step-dot{width:1.7rem;height:1.7rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #3ad0ff;color:#3ad0ff;font-size:.88rem}.step-dot.done{background:#54ff21;border-color:#54ff21;color:#15395f;font-weight:700}.save-button{min-width:9rem}.toolbar-actions{margin-left:1.35rem}.datum-item{display:flex;align-items:center;justify-content:space-between;gap:.45rem;border-radius:16px;padding:.35rem;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.datum-item.selected{border-color:#f7dc996b}.datum-item.hovered{border-color:#ffd1666b}.datum-body{flex:1;display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-width:0}.datum-main{display:flex;align-items:center;justify-content:flex-start;border:none;background:transparent;padding:.3rem .4rem;border-radius:12px;text-align:left}.datum-main:hover,.datum-main.selected{background:#f7dc9914}.datum-constraint-list{display:inline-flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.constraint-token{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .3rem .18rem .35rem;border-radius:999px;border:1px solid currentColor;line-height:1}.constraint-token .button-icon{width:1.3rem;height:1.3rem}.constraint-token-xy{color:#7fa4ff}.constraint-token-yz{color:#ff8f8f}.constraint-token-xz{color:#74e292}.constraint-token-x{color:#ff8f8f}.constraint-token-y{color:#74e292}.constraint-token-z{color:#7fa4ff}.token-remove,.datum-remove{border:none;background:transparent;padding:0;width:1rem;min-width:1rem;height:1rem;color:inherit}.datum-remove{width:1.5rem;min-width:1.5rem;height:1.5rem;color:#f6edd7b3}.transform-card{padding:1rem;display:flex;flex-direction:column;gap:.95rem;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.clip-card{padding:1rem;display:flex;align-items:center;background:transparent;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.clip-toolbar{display:flex;align-items:center;gap:.75rem;width:100%}.clip-toolbar-stats{flex:0 0 auto;white-space:nowrap}.view-controls{display:flex;gap:.5rem;flex-wrap:nowrap;flex:0 0 auto}.view-control-button{min-width:2.2rem;width:2.2rem;height:2.2rem;padding:0;border-radius:50%}.clip-toolbar-range{flex:1 1 auto;min-width:16rem;display:grid;grid-template-columns:auto minmax(12rem,1fr) auto;align-items:center;gap:.85rem}.clip-lock-button{flex:0 0 auto;justify-content:center;width:2.2rem;min-width:2.2rem;height:2.2rem;padding:0;border-radius:50%}.clip-slider-stack{position:relative;height:2rem}.clip-range-label,.clip-range-value{color:#f1f1ebe6;font-size:.92rem;white-space:nowrap}.clip-slider-stack:before{content:"";position:absolute;top:50%;left:0;right:0;height:.35rem;transform:translateY(-50%);border-radius:999px;background:#f7dc9929}.clip-slider-range{position:absolute;top:50%;height:.35rem;transform:translateY(-50%);border-radius:999px;background:#f7dc998c}.clip-slider{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}.clip-slider::-webkit-slider-runnable-track{height:100%;background:transparent}.clip-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1rem;height:1rem;margin-top:.5rem;border-radius:50%;border:1px solid rgba(247,220,153,.72);background:#f7dc99;box-shadow:0 0 0 3px #15395f80;cursor:pointer;pointer-events:auto}.clip-slider::-moz-range-track{height:100%;background:transparent}.clip-slider::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;border:1px solid rgba(247,220,153,.72);background:#f7dc99;box-shadow:0 0 0 3px #15395f80;cursor:pointer;pointer-events:auto}.clip-slider:disabled::-webkit-slider-thumb,.clip-slider:disabled::-moz-range-thumb{opacity:.5;cursor:not-allowed}.transform-values{display:flex;flex-direction:column;gap:.75rem;color:#f1f1ebeb}.transform-group{display:flex;flex-direction:column;gap:.18rem}.transform-title{font-size:.92rem}.transform-line{white-space:nowrap;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-weight:400}.transform-axis-value{display:inline-block}.transform-axis-x{color:#ff7b7bf5}.transform-axis-y{color:#63d47ff5}.transform-axis-z{color:#5c86fff5}.transform-meta{display:flex;flex-direction:column;gap:.25rem;margin-top:.9rem;color:#f1f1ebd1;font-size:.84rem;line-height:1.35}.transform-meta-line{white-space:normal}.bottom-actions{display:flex;align-items:flex-start;margin-top:1rem}.save-menu{position:relative}.save-menu-dropdown{position:absolute;left:0;bottom:calc(100% + .55rem);min-width:18rem;padding:.45rem;display:flex;flex-direction:column;gap:.25rem;border:1px solid rgba(247,220,153,.28);border-radius:1.45rem;background:#102235f5;box-shadow:0 .9rem 2rem #040a124d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.save-menu-title{padding:.2rem .4rem .35rem;color:#f1f1ebd1;font-size:.84rem}.save-menu-option{width:100%;justify-content:flex-start;border-radius:999px;text-align:left;white-space:nowrap}.manual-flip-group{gap:.45rem}.manual-flip-group button{width:2.2rem;min-width:2.2rem;height:2.2rem;padding:0;border-radius:50%}.stats-line{color:#f1f1ebc2;font-size:.92rem}.empty-state{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:2;width:min(520px,calc(100vw - 3rem));padding:1.25rem 1.4rem;display:flex;flex-direction:column;gap:.45rem;text-align:center}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#0a1f3561;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drop-overlay-card{padding:1rem 1.25rem;border-radius:18px;border:1px solid rgba(247,220,153,.28);background:#102c4eeb;color:#f6edd7}.error-text{color:#ffb4a2}@media (max-width: 900px){.top-left-panel{width:calc(100vw - 2rem)}.datum-list-panel{top:auto;bottom:9.75rem;transform:none;max-height:32vh;width:min(320px,calc(100vw - 2rem))}.clip-toolbar{flex-wrap:wrap}.clip-toolbar-range{order:3;width:100%;grid-template-columns:1fr;gap:.45rem}}
