:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;margin:0;overflow:hidden}.app{flex-direction:column;width:100vw;height:100vh;display:flex;position:relative}.toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;align-items:center;gap:12px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.brand{flex-direction:column;align-items:flex-start;gap:0;display:inline-flex}.brand-row{letter-spacing:.02em;align-items:center;gap:6px;font-weight:600;display:inline-flex}.brand-links{align-items:baseline;gap:10px;margin-left:calc(1.4em + 6px);display:inline-flex}.toolbar button.brand-link{letter-spacing:.04em;color:inherit;opacity:.5;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;border-radius:0;padding:0;font-size:10px;line-height:1;text-decoration:underline}.toolbar button.brand-link:hover{opacity:.95;background:0 0}.brand-icon{width:auto;height:1.4em;display:block}.brand-version{opacity:.42;font-size:.66em;font-weight:400}.toolbar button{font:inherit;color:#e6e6ea;cursor:pointer;white-space:nowrap;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.toolbar button:hover{background:#3d3f4a}.toolbar-group{outline-offset:4px;border-radius:6px;outline:1px solid #474956;align-items:center;gap:8px;margin:0 5px;display:inline-flex}.header-field{opacity:.9;white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:flex}.header-field-bed input{width:48px}.header-field-bed .header-field-times{opacity:.55;margin:0 -2px}.header-field-detail{gap:3px}.header-field-detail input[type=range]{accent-color:#6f9fe8;cursor:pointer;background:0 0;border:none;width:44px;height:18px;padding:0}.header-field-detail input[type=range]:disabled{cursor:progress;opacity:.5}.header-field-detail-readout{white-space:nowrap;font-variant-numeric:tabular-nums;min-width:24px}.header-field-detail-readout.is-raised{color:#d8a657}.header-field input{width:64px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.status{opacity:.85}.status.error{color:#ff8080}.import-progress{color:#cfe0f5;background:#1d2733;border-bottom:1px solid #2c3a4c;align-items:center;gap:12px;padding:6px 16px;font:13px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.import-progress-label{white-space:nowrap}.import-progress-track{background:#2c3a4c;border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.import-progress-fill{background:#4d8ee0;border-radius:3px;height:100%;transition:width .12s linear;display:block}.import-progress-track-indeterminate .import-progress-fill{will-change:transform;width:30%;transition:none;animation:1.15s ease-in-out infinite import-progress-slide}@keyframes import-progress-slide{0%{transform:translate(-120%)}to{transform:translate(360%)}}@media (prefers-reduced-motion:reduce){.import-progress-track-indeterminate .import-progress-fill{opacity:.5;width:100%;animation:none}}.export-notice{color:#b9e3c9;background:#1d2e24;border-bottom:1px solid #2c4a38;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font:13px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.export-notice button{color:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:16px;line-height:1}.warnings-bar{color:#f0d9a6;background:#3a2f1a;border-bottom:1px solid #5a4a26;flex-direction:column;gap:4px;padding:8px 16px;font:13px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.warning{align-items:center;gap:8px;display:flex}.warning:before{content:"⚠ "}.warning-dismiss{font:inherit;color:inherit;opacity:.7;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0 4px;line-height:1}.warning-dismiss:hover{opacity:1}.main-area{flex-direction:row;flex:1;min-height:0;display:flex}.sidebar{background:#24252c;border-right:1px solid #35363f;flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow-y:auto}.viewport-column{flex-direction:column;flex:1;min-width:0;display:flex}.drop-overlay{pointer-events:none;background:#4a8cff1f;border:2px dashed #4a8cff;justify-content:center;align-items:center;display:flex;position:absolute;inset:41px 0 0}.drop-overlay p{color:#eaf1ff;background:#1b1c22cc;border-radius:8px;padding:12px 24px;font:20px/1.4 system-ui,Segoe UI,Roboto,sans-serif}.toolbar-split{align-items:stretch;display:inline-flex}.toolbar-split>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.toolbar-split>button:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.toolbar-split>button.toolbar-split-compact{justify-content:center;align-items:center;padding:6px;display:inline-flex}.axes-icon{opacity:.9;width:1.4em;height:1.4em;display:block}.toolbar button.filename{color:inherit;font:inherit;cursor:text;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex-shrink:999;min-width:0;max-width:22ch;padding:0;overflow:hidden}.toolbar button.filename:hover,.toolbar button.filename:focus-visible{text-underline-offset:3px;background:0 0;text-decoration:underline}.filename-input{width:22ch;min-width:0;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;flex-shrink:999;padding:4px 6px}.viewport-wrapper{flex:1;min-height:0;position:relative}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.view-grid{grid-template-columns:repeat(2,1fr);gap:4px;display:grid;position:absolute;top:12px;right:12px}.view-grid-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:52px;height:38px;font:12px/1.2 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.view-grid-button:hover{background:#3d3f4a;border-color:#4a8cff}.view-grid-key{opacity:.6;font-size:10px}.shading-toggle{gap:4px;display:flex;position:absolute;top:148px;right:12px}.shading-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.shading-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.shading-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.shading-toggle-button.active:hover{background:#5f9bff}.projection-toggle{gap:4px;display:flex;position:absolute;top:178px;right:12px}.projection-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.projection-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.projection-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.projection-toggle-button.active:hover{background:#5f9bff}.coordinate-toggle{flex-direction:column;align-items:stretch;gap:4px;display:flex;position:absolute;top:208px;right:12px}.coordinate-toggle-buttons{gap:4px;display:flex}.coordinate-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.coordinate-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.coordinate-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.coordinate-toggle-button.active:hover{background:#5f9bff}.coordinate-toggle-select{color:#e6e6ea;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:108px;padding:3px 4px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.unit-prompt-backdrop{z-index:10;background:#0a0a0e99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.unit-prompt{color:#e6e6ea;background:#24252c;border:1px solid #3d3f4a;border-radius:10px;width:420px;max-width:calc(100vw - 48px);padding:20px 24px;font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;box-shadow:0 20px 60px #00000080}.unit-prompt h2{margin:0 0 8px;font-size:17px}.unit-prompt p{opacity:.85;margin:0 0 16px}.unit-prompt-options{flex-direction:column;gap:8px;display:flex}.unit-prompt-options button{font:inherit;color:#e6e6ea;cursor:pointer;text-align:left;background:#34363f;border:1px solid #4a4c58;border-radius:6px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.unit-prompt-options button:hover{background:#3d3f4a;border-color:#4a8cff}.unit-prompt-preview{opacity:.65;font-size:12px}.test-cube-prompt-backdrop{z-index:10;background:#0a0a0e99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.test-cube-prompt{color:#e6e6ea;background:#24252c;border:1px solid #3d3f4a;border-radius:10px;width:430px;max-width:calc(100vw - 48px);padding:20px 24px;font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;box-shadow:0 20px 60px #00000080}.test-cube-prompt h2{margin:0 0 14px;font-size:17px}.test-cube-prompt-fields{align-items:center;gap:8px;display:flex}.test-cube-prompt-fields label{align-items:center;gap:6px;display:flex}.test-cube-prompt-fields input{width:66px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:5px 7px}.test-cube-prompt-times{opacity:.6}.test-cube-prompt-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.test-cube-prompt-actions button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 14px}.test-cube-prompt-actions button:hover:not(:disabled){background:#3d3f4a}.test-cube-prompt-actions button[type=submit]{background:#2f5d96;border-color:#4d8ee0}.test-cube-prompt-actions button:disabled{opacity:.5;cursor:default}.cut-toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.cut-toolbar-label{opacity:.85;font-weight:600}.cut-toolbar-modes{border:1px solid #4a4c58;border-radius:4px;display:flex;overflow:hidden}.cut-toolbar-modes button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:none;padding:5px 12px}.cut-toolbar-modes button+button{border-left:1px solid #4a4c58}.cut-toolbar-modes button:hover{background:#3d3f4a}.cut-toolbar-modes button.active{color:#0e1116;background:#4a8cff}.cut-toolbar-kerf{opacity:.9;align-items:center;gap:6px;display:flex}.cut-toolbar-kerf input{width:64px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.cut-toolbar-rotation{opacity:.9;align-items:center;gap:8px;display:flex}.cut-toolbar-position{opacity:.9;align-items:center;gap:6px;display:flex}.cut-toolbar-position .cut-toolbar-axis input{width:46px}.cut-toolbar-position-unit{opacity:.85}.cut-toolbar-axis-pick-status{opacity:.85;font-style:italic}.cut-toolbar-pick-placement{opacity:.9;cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:6px;display:flex}.cut-toolbar-pick-placement input{accent-color:#4a8cff;cursor:pointer;width:14px;height:14px;margin:0}.cut-toolbar-rotation-label{opacity:.85}.cut-toolbar-axis{align-items:center;gap:4px;display:flex}.cut-toolbar-axis input{width:60px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.cut-toolbar-tool{opacity:.9;align-items:center;gap:8px;display:flex}.cut-toolbar-actions{gap:8px;margin-left:auto;display:flex}.cut-toolbar-actions button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.cut-toolbar-actions button:hover:not(:disabled){background:#3d3f4a}.cut-toolbar-actions button.primary{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.cut-toolbar-actions button.primary:hover:not(:disabled){background:#5f9bff}.cut-toolbar-actions button:disabled,.cut-toolbar-modes button:disabled,.cut-toolbar-kerf input:disabled,.cut-toolbar-axis input:disabled{opacity:.5;cursor:default}.piece-list{color:#e6e6ea;flex-direction:column;gap:8px;padding:12px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.piece-list-header{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.piece-list-label{opacity:.85;white-space:nowrap;font-weight:600}.piece-list-export-all{font:inherit;color:#e6e6ea;cursor:pointer;white-space:nowrap;background:#24252c;border:1px solid #4a4c58;border-radius:4px;padding:3px 8px;font-size:12px}.piece-list-export-all:hover:not(:disabled){background:#3d3f4a;border-color:#4a8cff}.piece-list-export-all:disabled{opacity:.5;cursor:default}.piece-list-explode{white-space:nowrap;align-items:center;gap:8px;display:flex}.piece-list-explode input[type=range]{accent-color:#4a8cff;width:120px}.piece-list-explode-readout{opacity:.85;width:3.5em}.piece-tree,.piece-tree-children{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.piece-tree-children{border-left:1px solid #4a4c58;margin-top:4px;padding-left:20px}.piece-row{background:#34363f;border:1px solid #4a4c58;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;display:flex}.piece-row.inactive{opacity:.6;background:0 0;border-color:#0000}.piece-row-spacer{width:13px;display:inline-block}.piece-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.piece-name{white-space:nowrap}.piece-size{white-space:nowrap;opacity:.6;font-variant-numeric:tabular-nums;font-size:11px}.piece-row button{font:inherit;color:#e6e6ea;cursor:pointer;background:#24252c;border:1px solid #4a4c58;border-radius:4px;padding:3px 8px;font-size:12px}.piece-row button:hover:not(:disabled){background:#3d3f4a;border-color:#4a8cff}.piece-row button:disabled{opacity:.5;cursor:default}.piece-row button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.piece-warning{color:#f0b429;cursor:help;font-size:.95em;line-height:1}.piece-flaws.active{color:#f0b429;border-color:#f0b429}.joint-toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.joint-toolbar-label{opacity:.85;font-weight:600}.joint-toolbar-field{opacity:.9;align-items:center;gap:6px;display:flex}.joint-toolbar-field input,.joint-toolbar-field select{width:72px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.joint-toolbar-field select{width:auto}.joint-toolbar-note{opacity:.7;cursor:help;border:1px dashed #4a4c58;border-radius:4px;padding:4px 8px}.joint-toolbar-actions{gap:8px;margin-left:auto;display:flex}.joint-toolbar-actions button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.joint-toolbar-actions button:hover:not(:disabled){background:#3d3f4a}.joint-toolbar-actions button.primary{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.joint-toolbar-actions button.primary:hover:not(:disabled){background:#5f9bff}.joint-toolbar-actions button.danger:hover:not(:disabled){background:#5a2a2a;border-color:#d95f5f}.joint-toolbar-actions button:disabled,.joint-toolbar-field input:disabled,.joint-toolbar-field select:disabled{opacity:.5;cursor:default}.joint-toolbar-direction{white-space:nowrap;font:inherit;color:#cfe0f5;cursor:pointer;background:#232a35;border:1px solid #37455a;border-radius:4px;padding:3px 8px;font-size:12px}.joint-toolbar-direction:hover:not(:disabled){border-color:#4d8ee0}.joint-toolbar-direction:disabled{opacity:.5;cursor:default}.joint-panel{color:#e6e6ea;flex-direction:column;gap:8px;padding:12px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.joint-panel-export-plate{font:inherit;color:#e6e6ea;cursor:pointer;background:#2f3b57;border:1px solid #4a8cff;border-radius:4px;margin-top:4px;padding:6px 10px;font-size:13px}.joint-panel-export-plate:hover:not(:disabled){background:#37456b}.joint-panel-export-plate:disabled{opacity:.5;cursor:default}.joint-panel-label{opacity:.85;font-weight:600}.joint-cut-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.joint-cut-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.joint-cut-names{overflow-wrap:anywhere}.joint-pair-contact{letter-spacing:.02em;color:#9a9cab;border:1px solid #4a4c58;border-radius:3px;padding:1px 5px;font-size:11px}.joint-cut-summary button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:3px 8px;font-size:12px}.joint-cut-summary button:hover:not(:disabled){background:#3d3f4a;border-color:#4a8cff}.joint-cut-summary button:disabled{opacity:.5;cursor:default}.joint-list{border-left:1px solid #4a4c58;flex-direction:column;gap:6px;margin:4px 0 0;padding-left:14px;list-style:none;display:flex}.joint-row{opacity:.95;cursor:pointer;border-radius:4px;flex-wrap:nowrap;align-items:center;gap:6px;margin:-3px -4px;padding:3px 4px;font-size:12px;display:flex}.joint-row-summary{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.joint-row:hover{background:#2c2e37}.joint-row.selected{background:#2f3b57;outline:1px solid #4a8cff}.joint-row.pattern{background:#26241c}.joint-row.pattern:hover{background:#322f22}.joint-row-instance-count{color:#f2c37b;white-space:nowrap;background:#4a3a1a;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-mode{text-transform:uppercase;letter-spacing:.02em;color:#b7bac2;white-space:nowrap;background:#34363f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-mode.dowel{color:#f2c37b;background:#4a3a1a}.joint-row-design{text-transform:uppercase;letter-spacing:.02em;color:#b7bac2;white-space:nowrap;background:#34363f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-design.teardrop{color:#8badf2;background:#23283a}.joint-row-design.finned{color:#7fcf9a;background:#23342a}.joint-row-design.fin-tab{color:#e28fce;background:#3a2334}.joint-row-design.stud-tube{color:#e0c375;background:#3a3323}.joint-row-delete{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;flex-shrink:0;margin-left:auto;padding:2px 7px;line-height:1}.joint-row-delete:hover:not(:disabled){background:#5a2a2a;border-color:#d95f5f}.joint-row-delete:disabled{opacity:.5;cursor:default}.cut-list{color:#e6e6ea;border-top:1px solid #2e3038;flex-direction:column;gap:8px;padding:12px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.cut-list-label{opacity:.85;font-weight:600}.cut-list-rows{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cut-row{opacity:.95;border-radius:4px;flex-wrap:nowrap;align-items:center;gap:6px;margin:-3px -4px;padding:3px 4px;font-size:12px;display:flex}.cut-row-index{opacity:.5;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:14px}.cut-row-summary{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.cut-row-kind{opacity:.9;background:#2f3b57;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:11px}.cut-row-carried{text-align:center;font-variant-numeric:tabular-nums;background:#26241c;border-radius:3px;flex-shrink:0;min-width:16px;padding:1px 5px;font-size:11px}.cut-row-edit,.cut-row-delete{font:inherit;color:#e6e6ea;cursor:pointer;white-space:nowrap;background:#34363f;border:1px solid #4a4c58;border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:11px}.cut-row-edit:hover:not(:disabled){background:#3d3f4a}.cut-row-delete:hover:not(:disabled){background:#5a2a2a;border-color:#d95f5f}.cut-row-edit:disabled,.cut-row-delete:disabled{opacity:.45;cursor:default}.cut-row.editing{background:#2f3b57;outline:1px solid #4a8cff}.gallery-backdrop{z-index:20;background:#08080cd1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gallery{color:#e6e6ea;background:#24252c;border:1px solid #3d3f4a;border-radius:10px;flex-direction:column;gap:14px;width:min(1180px,100%);height:100%;padding:16px 20px 18px;font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;display:flex;box-shadow:0 20px 60px #00000080}.gallery-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.gallery-titles h2{margin:0;font-size:19px;line-height:1.25}.gallery-counter{opacity:.55;font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:12px}.gallery-close{color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:6px;flex:none;width:38px;height:38px;font:26px/1 system-ui,Segoe UI,Roboto,sans-serif}.gallery-close:hover{background:#4a2f34;border-color:#7a4048}.gallery-stage{background:#17181d;border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.gallery-photo{object-fit:contain;max-width:100%;max-height:100%;display:block}.gallery-step{color:#e6e6ea;cursor:pointer;background:#24252cdb;border:1px solid #4a4c58;border-radius:8px;width:44px;height:64px;font:30px/1 system-ui,Segoe UI,Roboto,sans-serif;position:absolute;top:50%;transform:translateY(-50%)}.gallery-step:hover{background:#3d3f4af2}.gallery-step-prev{left:12px}.gallery-step-next{right:12px}.gallery-foot{justify-content:space-between;align-items:center;gap:16px;min-height:30px;display:flex}.gallery-projects{align-items:center;gap:8px;display:flex}.gallery-projects button{color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;width:30px;height:30px;font:15px/1 system-ui,Segoe UI,Roboto,sans-serif}.gallery-projects button:hover{background:#3d3f4a}.gallery-hint{opacity:.45;margin-left:4px;font-size:12px}.gallery-dots{align-items:center;gap:6px;margin-left:auto;display:flex}.gallery-dot{background:#4a4c58;border-radius:50%;width:6px;height:6px;transition:background .12s,transform .12s}.gallery-dot.is-current{background:#7fa6f5;transform:scale(1.5)}@media (prefers-reduced-motion:reduce){.gallery-dot{transition:none}}@media (width<=640px){.gallery-backdrop{padding:10px}.gallery{padding:12px 12px 14px}.gallery-step{width:34px;height:52px;font-size:24px}.gallery-hint{display:none}}.about-backdrop{z-index:20;background:#08080cd1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.about{color:#e6e6ea;background:#24252c;border:1px solid #3d3f4a;border-radius:10px;flex-direction:column;width:min(760px,100%);max-height:100%;font:14px/1.6 system-ui,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.about-head{background:#24252c;border-bottom:1px solid #35363f;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.about-head h2{margin:0;font-size:17px;line-height:1.25}.about-close{color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:6px;flex:none;width:38px;height:38px;font:26px/1 system-ui,Segoe UI,Roboto,sans-serif}.about-close:hover{background:#4a2f34;border-color:#7a4048}.about-body{overscroll-behavior:contain;flex:1;min-height:0;padding:4px 24px 24px;overflow-y:auto}.about-doc>:first-child{margin-top:16px}.about-doc>:last-child{margin-bottom:0}.about-doc h1{letter-spacing:.01em;margin:0 0 14px;font-size:20px;font-weight:600;line-height:1.3}.about-doc h2{letter-spacing:.04em;text-transform:uppercase;color:#9fb6e8;margin:26px 0 10px;font-size:15px;font-weight:600;line-height:1.3}.about-doc h3{margin:20px 0 8px;font-size:14px;font-weight:600}.about-doc p{margin:0 0 12px}.about-doc ul,.about-doc ol{margin:0 0 12px;padding-left:20px}.about-doc li{margin:0 0 8px}.about-doc li:last-child{margin-bottom:0}.about-doc li>ul,.about-doc li>ol{margin:6px 0 0}.about-doc a{color:#7fa6f5;text-underline-offset:2px;text-decoration:underline}.about-doc a:hover{color:#a8c4ff}.about-doc strong{color:#f2f2f6;font-weight:600}.about-doc em{opacity:.75}.about-doc code{background:#1b1c22;border:1px solid #35363f;border-radius:3px;padding:0 4px;font:.92em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.about-doc pre{background:#1b1c22;border:1px solid #35363f;border-radius:6px;margin:0 0 12px;padding:10px 12px;overflow-x:auto}.about-doc pre code{background:0 0;border:none;padding:0}.about-doc blockquote{opacity:.85;border-left:3px solid #3d3f4a;margin:0 0 12px;padding:2px 0 2px 14px}.about-doc hr{border:none;border-top:1px solid #35363f;margin:20px 0}.about-doc .md-table-scroll{overscroll-behavior-x:contain;margin:0 0 14px;overflow-x:auto}.about-doc table{border-collapse:collapse;width:100%;min-width:460px;font-size:13px;line-height:1.5}.about-doc thead th{text-align:left;color:#9fb6e8;letter-spacing:.03em;border-bottom:1px solid #4a4c58;padding:0 12px 7px 0;font-weight:600}.about-doc tbody td{vertical-align:top;border-top:1px solid #32333c;padding:8px 12px 8px 0}.about-doc tbody tr:first-child td{border-top:none}.about-doc th:last-child,.about-doc td:last-child{padding-right:0}.about-doc tbody td:first-child{white-space:nowrap;padding-right:16px}.about-doc img{background:#17181d;border-radius:6px;max-width:100%;height:auto;margin:12px 0;display:block}@media (width<=640px){.about-backdrop{padding:10px}.about-doc tbody td:first-child{white-space:normal}.about-head{padding:10px 12px}.about-body{padding:4px 14px 18px}}
