*{box-sizing:border-box}:root{--pt-bg-1:#08111f;--pt-bg-2:#101827;--pt-bg-3:#090b12;--pt-blue:#2f80ed;--pt-blue-hover:#438fff;--pt-cyan:#59ffd2;--pt-cyan-hover:#7affdf;--pt-text:#f7fbff;--pt-muted:#9fb0c7;--pt-muted-2:#b9c8dc;--pt-soft:#dbeafe;--pt-panel:#09111fe0;--pt-panel-strong:#09111ff5;--pt-field:#ffffff0e;--pt-field-hover:#ffffff16;--pt-border:#ffffff21;--pt-border-soft:#ffffff14;--pt-border-cyan:#59ffd259;--pt-warning:#ffd36a;--pt-error:#f77;--pt-success:#59ffd2;--pt-shadow:0 24px 70px #00000038;--pt-shadow-strong:0 34px 120px #0000007a;--pt-radius-sm:10px;--pt-radius-md:14px;--pt-radius-lg:18px;--pt-radius-xl:30px}html,body{width:100%;height:100%}body{min-height:100vh;color:var(--pt-text);background:radial-gradient(circle at 18% 10%, #2f80ed57, transparent 34rem), radial-gradient(circle at 82% 4%, #59ffd22e, transparent 32rem), linear-gradient(135deg, var(--pt-bg-1) 0%, var(--pt-bg-2) 55%, var(--pt-bg-3) 100%);margin:0;font-family:Arial,Helvetica,sans-serif;overflow:hidden}button,input,textarea,select{font:inherit}button,label,summary,select,input[type=range],input[type=checkbox]{-webkit-tap-highlight-color:transparent}a{color:inherit}#app{background:radial-gradient(circle at 20% 8%, #2f80ed3d, transparent 36rem), radial-gradient(circle at 78% 4%, #59ffd21f, transparent 34rem), linear-gradient(135deg, var(--pt-bg-1) 0%, var(--pt-bg-2) 55%, var(--pt-bg-3) 100%);grid-template-columns:minmax(0,1fr) 540px;width:100vw;height:100vh;display:grid}#viewerPanel{background:radial-gradient(circle at 24% 18%,#2f80ed42,#0000 34rem),radial-gradient(circle at 72% 10%,#59ffd21c,#0000 32rem),linear-gradient(135deg,#08111ffa,#090b12fa);min-width:0;min-height:0;position:relative;overflow:hidden}#threeCanvas{touch-action:none;outline:none;width:100%;height:100%;display:block}#threeCanvas.is-selecting-surface,#threeCanvas.is-placing-model{cursor:crosshair}#settingsPanel{scrollbar-color:#59ffd247 transparent;scrollbar-width:thin;background:linear-gradient(145deg,#ffffff12,#ffffff06),#09111ff0;border-left:1px solid #ffffff1c;min-width:0;padding:20px;overflow:hidden auto;box-shadow:-24px 0 80px #00000047}#settingsPanel::-webkit-scrollbar{width:10px}#settingsPanel::-webkit-scrollbar-track{background:0 0}#settingsPanel::-webkit-scrollbar-thumb{background:#59ffd23d padding-box padding-box;border:3px solid #0000;border-radius:999px}#settingsPanel::-webkit-scrollbar-thumb:hover{background:#59ffd261 padding-box padding-box}#settingsPanel h1{color:var(--pt-text);letter-spacing:-.045em;margin:0 0 5px;font-size:30px;line-height:1}.appSubtitle{color:var(--pt-muted-2);margin:0 0 18px;font-size:14px;line-height:1.4}.allModulesLink{color:#9fe8ff;align-items:center;margin-bottom:12px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.allModulesLink:hover{color:#fff;text-decoration:underline}.seoIntro,.step-card,.settingsGroup,.result-card,.viewer-hint-card,.surface-viewer-card,.loading-card{border:1px solid var(--pt-border);background:linear-gradient(145deg, #ffffff16, #ffffff08), var(--pt-panel);box-shadow:var(--pt-shadow)}.seoIntro{border-radius:var(--pt-radius-sm);color:var(--pt-soft);margin:0 0 18px;padding:12px 14px;font-size:13px;line-height:1.45}.seoIntro p{margin:0 0 10px}.seoIntro p:last-child{margin-bottom:0}.converter-panel,.personalizer-panel{gap:10px;display:grid}.step-card{border-radius:var(--pt-radius-md);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:12px;transition:border-color .16s,background .16s,transform .16s;display:grid}.step-card.is-active{background:linear-gradient(145deg, #2f80ed2e, #59ffd20e), var(--pt-panel);box-shadow:var(--pt-shadow), 0 0 0 1px #59ffd20f;border-color:#59ffd26b}.step-number{width:30px;height:30px;color:var(--pt-cyan);background:#59ffd221;border:1px solid #59ffd26b;border-radius:999px;place-items:center;font-weight:900;display:grid}.step-card.is-active .step-number{background:#59ffd233;box-shadow:0 0 22px #59ffd224}.step-content{min-width:0}.step-content strong{color:#fff;margin-bottom:4px;font-size:14px;display:block}.step-content p{overflow-wrap:anywhere;color:var(--pt-muted-2);margin:0;font-size:12px;line-height:1.35}.upload-drop-zone{border-radius:var(--pt-radius-lg);min-height:112px;color:var(--pt-text);text-align:center;cursor:pointer;background:radial-gradient(circle at 50% 10%,#59ffd21c,#0000 18rem),#ffffff0b;border:1px dashed #59ffd261;place-items:center;gap:7px;padding:16px;transition:transform .16s,border-color .16s,background .16s;display:grid}.upload-drop-zone:hover,.upload-drop-zone.is-dragging{background:radial-gradient(circle at 50% 10%,#59ffd229,#0000 18rem),#fff1;border-color:#59ffd2b8;transform:translateY(-1px)}.upload-icon{width:44px;height:44px;color:var(--pt-cyan);background:#59ffd21f;border:1px solid #59ffd247;border-radius:999px;place-items:center;font-size:22px;font-weight:900;display:grid}.upload-drop-zone strong{font-size:17px}.upload-drop-zone small{color:var(--pt-muted-2);font-size:12px}input,textarea,select{border:1px solid var(--pt-border);background:var(--pt-field);width:100%;color:var(--pt-text);border-radius:9px;outline:none;font-family:Arial,Helvetica,sans-serif;font-size:13px;transition:border-color .15s,background .15s,box-shadow .15s}input,select{padding:9px 10px}textarea{resize:vertical;min-height:72px;padding:10px;line-height:1.4}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){background:var(--pt-field-hover)}input:focus,textarea:focus,select:focus{border-color:#59ffd275;box-shadow:0 0 0 4px #59ffd214}input:disabled,textarea:disabled,select:disabled{cursor:not-allowed;color:#8291a7;opacity:.68}input::placeholder,textarea::placeholder{color:#7f90a8}select option{color:var(--pt-text);background:#111827}button{cursor:pointer;border:0;border-radius:999px;width:100%;padding:12px;font-weight:900;transition:transform .15s,filter .15s,background .15s,border-color .15s}button:not(:disabled){background:linear-gradient(135deg, var(--pt-blue), var(--pt-cyan));color:#07111f}button:not(:disabled):hover{filter:brightness(1.08);background:linear-gradient(135deg, var(--pt-blue-hover), var(--pt-cyan-hover));transform:translateY(-1px)}button:not(:disabled):active{transform:translateY(0)}button:disabled{cursor:not-allowed;color:#8fa0b8;border:1px solid var(--pt-border-soft);opacity:.75;background:#ffffff17}.secondary-button:not(:disabled){border:1px solid var(--pt-border);color:#dbeafe;background:#fff1}.secondary-button:not(:disabled):hover{color:#fff;background:#59ffd21a;border-color:#59ffd252}.download-button:not(:disabled){color:#07111f;background:linear-gradient(135deg,#2f80ed,#59ffd2)}.text-align-field{justify-content:space-between;align-items:center;gap:10px;margin:8px 0 2px;display:flex}.text-align-label{color:var(--pt-muted-2);font-size:13px;font-weight:700}.text-align-buttons{border:1px solid var(--pt-border-soft);border-radius:var(--pt-radius-sm);background:var(--pt-field);gap:4px;padding:4px;display:inline-flex}.text-align-button{width:34px;height:30px;color:var(--pt-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.text-align-button:not(:disabled):hover{color:var(--pt-soft);background:#59ffd21a}.text-align-button.is-active:not(:disabled){border-color:var(--pt-border-cyan);color:var(--pt-cyan);background:#59ffd22e}.text-align-button:disabled{opacity:.4;cursor:not-allowed}#textCharacterCounter.is-over-limit{color:var(--pt-error);font-weight:800}.range-number{border:1px solid var(--pt-border-soft);background:var(--pt-field);width:78px;color:var(--pt-cyan);text-align:right;border-radius:8px;flex:none;padding:5px 7px;font-size:13px;font-weight:800}.range-number:focus{border-color:var(--pt-border-cyan);background:var(--pt-field-hover);color:#fff;outline:none}.range-number:disabled{opacity:.45}.range-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-number::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.range-number[type=number]{appearance:textfield}.range-unit{min-width:20px;color:var(--pt-muted);flex:none;font-size:12px;font-weight:700}.viewer-left-column{z-index:6;pointer-events:none;justify-items:start;gap:12px;max-height:calc(100% - 150px);display:grid;position:absolute;top:76px;left:18px;overflow-y:auto}.viewer-left-column>*{pointer-events:auto}.viewer-display-toolbar{justify-items:start;gap:8px;display:grid}.viewer-display-toolbar[hidden]{display:none}.display-mode-group{border:1px solid var(--pt-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08101dcc;border-radius:12px;align-items:center;gap:5px;width:248px;min-height:43px;padding:6px 7px;display:flex;box-shadow:0 12px 28px #00000029}.display-mode-group>span{width:62px;min-width:62px;color:var(--pt-muted);letter-spacing:.06em;text-transform:uppercase;padding:0 4px;font-size:8px;font-weight:900}.display-mode-button{width:29px;height:29px;color:var(--pt-muted-2);cursor:pointer;background:#ffffff09;border:1px solid #ffffff1f;border-radius:8px;place-items:center;padding:0;font-size:13px;font-weight:900;display:grid}.display-mode-button:not(:disabled):hover,.display-mode-button.is-active{color:var(--pt-cyan);background:#59ffd217;border-color:#59ffd280}.display-mode-button:disabled{opacity:.35;cursor:not-allowed}.section-view-group .display-mode-button.is-active{color:#9fe8ff;background:#9fe8ff1f;border-color:#9fe8ff99}.section-view-control{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(145deg,#2f80ed1c,#ffffff06),#08101de6;border:1px solid #9fe8ff47;border-radius:14px;width:248px;padding:12px;box-shadow:0 16px 42px #0000003b}.section-view-control[hidden]{display:none}.section-view-control-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.section-view-control-header>div{gap:3px;display:grid}.section-view-control-header strong{color:#d9f8ff;font-size:11px}.section-view-control-header small{color:var(--pt-muted);font-size:9px;line-height:1.4}.section-view-control-header button{border:1px solid var(--pt-border);width:28px;height:28px;color:var(--pt-muted-2);cursor:pointer;background:#ffffff0b;border-radius:8px;place-items:center;padding:0;display:grid}.section-close-icon{width:12px;height:12px;position:relative}.section-close-icon:before,.section-close-icon:after{content:"";background:currentColor;border-radius:999px;width:12px;height:2px;position:absolute;top:5px;left:0}.section-close-icon:before{transform:rotate(45deg)}.section-close-icon:after{transform:rotate(-45deg)}.section-view-control>label{color:var(--pt-muted-2);justify-content:space-between;gap:12px;margin-bottom:6px;font-size:9px;font-weight:800;display:flex}.section-view-control output{color:#9fe8ff}.section-view-control>input[type=range]{accent-color:#9fe8ff;width:100%;margin:0}.text-item-panel{border:1px solid var(--pt-border);border-radius:var(--pt-radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:208px;box-shadow:var(--pt-shadow);background:#09121fdb;padding:10px}.text-item-panel[hidden]{display:none}.text-item-panel-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.text-item-panel-head strong{color:var(--pt-soft);letter-spacing:.04em;text-transform:uppercase;font-size:12px}#addTextItemButton{border:1px solid var(--pt-border-cyan);width:26px;height:26px;color:var(--pt-cyan);cursor:pointer;background:#59ffd21f;border-radius:8px;padding:0;font-size:17px;font-weight:800;line-height:1}#addTextItemButton:not(:disabled):hover{color:#fff;background:#59ffd23d}#addTextItemButton:disabled{opacity:.4;cursor:not-allowed}.text-item-list{gap:5px;max-height:232px;display:grid;overflow-y:auto}.text-item-row{background:var(--pt-field);cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:6px;padding:6px 8px;transition:background .15s,border-color .15s;display:flex}.text-item-row:hover{background:var(--pt-field-hover)}.text-item-row.is-active{border-color:var(--pt-border-cyan);background:#59ffd229}.text-item-row-body{flex:auto;min-width:0}.text-item-row-name{color:var(--pt-text);font-size:12px;font-weight:800;display:block}.text-item-row-text{color:var(--pt-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.text-item-row-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex:none;padding:2px 6px;font-size:9px;font-weight:800}.text-item-row-badge.is-engrave{color:#ff9fe3;background:#ff6ad52e}.text-item-row-badge.is-emboss{color:var(--pt-cyan);background:#59ffd229}.text-item-row-delete{width:20px;height:20px;color:var(--pt-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:0;font-size:15px;line-height:1}.text-item-row-delete:hover{color:var(--pt-error);background:#ff77772e}.text-item-panel-hint{color:var(--pt-muted);margin-top:8px;font-size:10px;line-height:1.35;display:block}.viewer-tool-bar{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#09121fd1;border:1px solid #ffffff1a;border-radius:14px;gap:8px;padding:6px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.viewer-tool-bar[hidden]{display:none}.viewer-tool-button{color:#e2f0ff9e;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.viewer-tool-button:hover{color:#d8fff4;background:#59ffd21a}.viewer-tool-button.is-active{color:#59ffd2;background:#59ffd22e;border-color:#59ffd2b3}#threeCanvas.is-dragging-gizmo{cursor:grabbing}#threeCanvas.is-hovering-gizmo{cursor:grab}#resultViewToggleButton:not(:disabled){color:#59ffd2;background:#59ffd214;border:1px solid #59ffd26b}#resultViewToggleButton.is-active:not(:disabled){color:#fff;background:#59ffd233;border-color:#59ffd2bf}.settingsGroup{border-radius:16px;transition:opacity .16s,filter .16s,border-color .16s,box-shadow .16s;overflow:hidden}.settingsGroup[open]{box-shadow:var(--pt-shadow), 0 0 0 1px #59ffd20d;border-color:#59ffd257}.settingsGroup.is-disabled{opacity:.66;filter:saturate(.62)}.settingsGroup summary{cursor:pointer;-webkit-user-select:none;user-select:none;min-height:50px;color:var(--pt-text);background:linear-gradient(145deg,#ffffff13,#ffffff09);align-items:center;gap:10px;padding:13px 15px;font-size:16px;font-weight:900;list-style:none;display:flex}.settingsGroup[open] summary{border-bottom:1px solid var(--pt-border-soft);background:linear-gradient(145deg,#59ffd21a,#2f80ed12)}.settingsGroup summary:hover{background:linear-gradient(145deg,#59ffd21f,#ffffff0a)}.settingsGroup summary::-webkit-details-marker{display:none}.settingsGroup summary::marker{content:""}.settingsGroup summary:before{content:"▶";color:#fff;transform-origin:50%;flex:none;font-size:12px;line-height:1;transition:transform .16s}.settingsGroup[open] summary:before{transform:rotate(90deg)}.settingsGroupBody{gap:12px;padding:14px;display:grid}.settingsGroupBody>label{color:#dce9ff;gap:7px;font-size:13px;font-weight:800;display:grid}.modelSurfaceGroupBody{gap:11px}.panel-status-list{border:1px solid var(--pt-border-soft);background:#050a126b;border-radius:11px;gap:8px;padding:10px 11px;display:grid}.panel-status-row{grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);align-items:center;gap:12px;display:grid}.panel-status-label{color:#dce9ff;font-size:12px;font-weight:800}.panel-status-value{min-width:0;color:var(--pt-cyan);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;font-weight:800;overflow:hidden}.panel-action-stack,.exportSettingsGroupBody{gap:10px;display:grid}.model-placement-actions{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.model-placement-actions button{min-width:0;padding:8px 10px;font-size:12px;line-height:1.25}.setting-help{color:var(--pt-muted);font-size:11px;font-weight:500;line-height:1.4;display:block}#textCharacterCounter{float:right;color:#bffff0;margin-left:8px;font-weight:800}.range-value-row{grid-template-columns:minmax(0,1fr) 78px 22px;align-items:center;gap:8px;display:grid}.range-value-row input[type=range]{width:100%;height:22px;accent-color:var(--pt-cyan);cursor:pointer;background:0 0;border:none;padding:0}.range-value-row input[type=range]:focus{box-shadow:none;border:none}.range-value-row input[type=range]:disabled{cursor:not-allowed}.range-value-row output{border:1px solid var(--pt-border);min-width:74px;color:var(--pt-cyan);text-align:center;white-space:nowrap;background:#050a129e;border-radius:8px;padding:7px 8px;font-size:12px;font-weight:900;display:block}input[type=range]::-webkit-slider-runnable-track{background:#ffffff24;border-radius:999px;height:5px}input[type=range]::-webkit-slider-thumb{background:var(--pt-cyan);-webkit-appearance:none;border:2px solid #07111f;border-radius:999px;width:17px;height:17px;margin-top:-6px;box-shadow:0 0 0 3px #59ffd21f}input[type=range]::-moz-range-track{background:#ffffff24;border-radius:999px;height:5px}input[type=range]::-moz-range-progress{background:linear-gradient(90deg, var(--pt-blue), var(--pt-cyan));border-radius:999px;height:5px}input[type=range]::-moz-range-thumb{background:var(--pt-cyan);border:2px solid #07111f;border-radius:999px;width:15px;height:15px;box-shadow:0 0 0 3px #59ffd21f}.checkbox-row{cursor:pointer;align-items:flex-start;gap:9px;color:var(--pt-muted-2)!important;font-size:13px!important;font-weight:700!important;display:flex!important}.checkbox-row input{width:auto;accent-color:var(--pt-cyan);flex:none;margin:2px 0 0}.checkbox-row.is-locked{opacity:.45;cursor:not-allowed}.checkbox-row.is-locked input{cursor:not-allowed}.setting-help--locked{color:var(--pt-cyan);opacity:.85}.font-upload-row{gap:7px;display:grid}.font-upload-row .secondary-button{margin:0}.result-card{border-radius:var(--pt-radius-md);padding:13px 14px}.result-card[hidden]{display:none!important}.result-card strong{color:#fff;margin-bottom:5px;display:block}.result-card p{color:var(--pt-muted-2);margin:0;font-size:13px;line-height:1.4}.language-switcher{z-index:110;position:absolute;top:16px;left:14px}.language-button{border-radius:9px;width:auto;min-width:42px;padding:8px 12px;font-size:13px;font-weight:900;line-height:1;box-shadow:0 10px 28px #0000003d;background:linear-gradient(135deg, var(--pt-blue), var(--pt-cyan))!important;color:#07111f!important}.light-direction-control{z-index:30;border:1px solid var(--pt-border);width:auto;min-width:320px;color:var(--pt-text);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050a12b8;border-radius:999px;align-items:center;gap:12px;padding:8px 12px;display:flex;position:absolute;top:auto;bottom:24px;right:20px}.light-direction-control label{color:#dce9ff;white-space:nowrap;flex:none;font-size:12px;font-weight:900}.light-direction-control input[type=range]{cursor:pointer;background:0 0;border:none;width:180px;height:20px;padding:0}#lightDirectionValue{color:var(--pt-cyan);margin-left:4px}.main-status-badge{z-index:30;border:1px solid var(--pt-border);color:#fff;letter-spacing:.2px;pointer-events:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050a12b8;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;position:absolute;top:14px;right:16px}.main-status-badge.status-ok{color:var(--pt-cyan);border-color:#59ffd26b}.main-status-badge.status-working{color:var(--pt-warning);border-color:#ffbe3cb3}.main-status-badge.status-error{color:var(--pt-error);border-color:#ff5050bf}.viewer-hint-card{z-index:12;border-radius:var(--pt-radius-md);color:#e8e8e8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;width:min(560px,100% - 56px);padding:14px 16px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.viewer-hint-card strong{color:#fff;margin-bottom:5px;display:block}.viewer-hint-card p{color:#c7d1df;margin:0;font-size:13px;line-height:1.4}.surface-viewer-card,.surface-viewer-card[hidden]{display:none!important}.surface-viewer-card strong{color:var(--pt-cyan);margin-bottom:5px;font-size:14px;display:block}.surface-viewer-card p{color:#c7d1df;margin:0;font-size:12px;line-height:1.4}.loading-overlay[hidden]{display:none!important}.loading-overlay{z-index:1200;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 50% 20%,#59ffd229,#0000 26rem),#03070dbd;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.loading-card{border-radius:var(--pt-radius-xl);background:linear-gradient(145deg, #ffffff1c, #ffffff0b), var(--pt-panel-strong);text-align:center;width:min(420px,90%);padding:28px 24px}.loading-card h2{margin:14px 0 10px;font-size:24px}.loading-card p{color:#c7d3e3;margin:0;line-height:1.45}.loading-progress{background:#0000004d;border:1px solid #59ffd247;border-radius:999px;height:10px;margin-top:20px;overflow:hidden}.loading-progress-fill{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#3597f2,#59ffd2);width:100%;height:100%;transition:transform .18s ease-out;transform:scaleX(0);box-shadow:0 0 12px #59ffd273}.loading-progress-value{color:#59ffd2;margin-top:8px;font-size:16px;display:block}.loading-spinner{border:5px solid #ffffff24;border-top-color:var(--pt-cyan);border-radius:999px;width:54px;height:54px;margin:0 auto;animation:.9s linear infinite spin360}@keyframes spin360{to{transform:rotate(360deg)}}.legalFooter{color:#8fa0b8;text-align:center;margin-top:20px;padding-top:18px;padding-bottom:8px;font-size:11px}.legalFooter a{color:var(--pt-muted);text-decoration:none}.legalFooter a:hover{color:#fff;text-decoration:underline}.legalFooter span{color:#666;margin:0 6px}.feedbackLine{color:var(--pt-muted-2);margin:0 0 8px;font-size:12px;line-height:1.35}.feedbackLine a{color:#9fe8ff;font-weight:800}.legalLinks{line-height:1.6}pre{border:1px solid var(--pt-border);color:#dbeafe;white-space:pre-wrap;background:#050a12bd;border-radius:8px;max-height:260px;padding:12px;font-size:12px;overflow-y:auto}.mobile-unsupported-page{display:none}@media (width<=1280px){#app{grid-template-columns:minmax(0,1fr) 500px}.light-direction-control{min-width:300px;bottom:18px;right:16px}.light-direction-control input[type=range]{width:150px}}@media (width<=1120px){.light-direction-control{width:min(320px,100% - 32px);min-width:0;top:auto;bottom:16px;right:16px}.main-status-badge{top:14px}.viewer-hint-card{width:min(560px,100% - 380px);left:16px;transform:none}}@media (width<=1050px){#app{grid-template-rows:58vh 42vh;grid-template-columns:1fr}#settingsPanel{border-top:1px solid var(--pt-border);border-left:none}.viewer-hint-card{bottom:18px}.surface-viewer-card{bottom:105px}}@media (width<=900px){body{background:radial-gradient(circle at 50% 0,#2f80ed59,#0000 38%),linear-gradient(#151a24,#080b10);min-height:100vh;overflow:auto}#app{display:none!important}.mobile-unsupported-page{color:#fff;justify-content:center;align-items:center;min-height:100vh;padding:28px 18px;display:flex}.mobile-unsupported-card{border-radius:var(--pt-radius-xl);background:linear-gradient(145deg, #ffffff1c, #ffffff0b), var(--pt-panel-strong);border:1px solid var(--pt-border);width:min(420px,100%);box-shadow:var(--pt-shadow-strong);text-align:center;padding:26px 22px}.mobile-unsupported-card img{object-fit:contain;border-radius:20px;width:82px;height:82px;margin-bottom:18px}.mobile-unsupported-card h1{letter-spacing:-.035em;margin:0 0 14px;font-size:26px}.mobile-unsupported-card p{color:#c7d3e3;margin:0 0 14px;font-size:15px;line-height:1.5}.mobile-unsupported-card p:last-child{margin-bottom:0}}body.modalOpen{overflow:hidden}.font-picker-field{gap:8px;display:grid}.font-picker-field-label{color:#dce9ff;font-size:13px;font-weight:800}.fontPickerOpenButton{text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:12px 14px;display:flex}.fontPickerOpenButton strong{text-overflow:ellipsis;white-space:nowrap;max-width:55%;overflow:hidden}.selectedFontPreview{border:1px solid var(--pt-border);background:linear-gradient(145deg,#ffffff0f,#ffffff06),#050a128c;border-radius:14px;min-width:0;padding:14px}.selectedFontPreviewName{color:#dce9ff;margin-bottom:8px;font-size:13px;font-weight:800}.selectedFontPreviewSample{color:#fff;overflow-wrap:anywhere;font-size:30px;line-height:1.12;overflow:hidden}.pickerModal[hidden]{display:none!important}.pickerModal{z-index:160;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#03070d94;justify-content:center;align-items:center;padding:54px 28px 28px;display:flex;position:absolute;inset:0}.pickerModalCard{background:linear-gradient(145deg, #ffffff1c, #ffffff0b), var(--pt-panel-strong);width:min(980px,100% - 56px);max-height:calc(100% - 24px);box-shadow:var(--pt-shadow-strong);border:1px solid #ffffff24;border-radius:30px;flex-direction:column;padding:26px;display:flex;position:relative}.pickerModalClose{border-radius:10px;place-items:center;width:38px;height:38px;padding:0;font-size:24px;line-height:1;display:grid;position:absolute;top:18px;right:18px;color:#fff!important;background:#ffffff14!important}.pickerModalClose:hover{background:#ffffff24!important}.pickerModalTitle{color:var(--pt-text);margin:0 52px 6px 0;font-size:32px;line-height:1.05}.pickerModalSubtitle{color:var(--pt-muted-2);margin:0 0 16px;font-size:15px;line-height:1.45}.fontSearchInput{border-radius:14px;flex:none;margin-bottom:12px;padding:12px 14px}.fontPickerUploadCard{border:1px solid var(--pt-border);background:linear-gradient(145deg,#ffffff0e,#ffffff05),#050a126b;border-radius:16px;flex:none;margin-bottom:16px;padding:13px 15px}.fontPickerUploadTitle{color:#fff;margin-bottom:9px;font-size:17px;font-weight:900;line-height:1.2;display:block}.fontPickerImportButton{width:auto;min-width:250px;padding:10px 16px}.fontPickerImportStatus{color:var(--pt-muted);margin-top:8px;font-size:11px;line-height:1.4;display:block}.fontPickerList{scrollbar-color:#59ffd24d transparent;scrollbar-width:thin;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;min-height:0;padding-right:5px;display:grid;overflow-y:auto}.fontPickerCard{text-align:left;border:1px solid #ffffff1f;border-radius:16px;width:100%;padding:14px;position:relative;color:var(--pt-text)!important;background:linear-gradient(145deg,#ffffff0b,#ffffff04),#050a1273!important}.fontPickerCard:hover{border-color:#59ffd259;background:linear-gradient(145deg,#59ffd212,#ffffff05),#050a1280!important}.fontPickerCard.isSelected{border-color:#59ffd2b3;box-shadow:0 0 0 2px #59ffd226}.fontPickerCardHeader{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.fontPickerCardName{color:#fff;min-width:0;font-size:17px;font-weight:900;line-height:1.15}.fontPickerSelectedBadge{color:var(--pt-cyan);background:#59ffd21f;border:1px solid #59ffd266;border-radius:999px;flex:none;padding:3px 7px;font-size:10px;font-weight:900}.fontPickerCardSample{color:#f7fbff;overflow-wrap:anywhere;min-height:42px;font-size:31px;line-height:1.08;overflow:hidden}.fontPickerCardMeta{color:var(--pt-muted-2);margin-top:9px;font-size:11px;line-height:1.35}.fontPickerEmpty{color:#b8c0cc;border:1px dashed #ffffff2e;border-radius:12px;grid-column:1/-1;padding:16px;font-size:13px;line-height:1.4}@media (width<=900px){.pickerModal{padding:72px 14px 14px}.pickerModalCard{border-radius:22px;width:100%;max-width:100%;padding:18px}.pickerModalTitle{font-size:26px}.fontPickerList{grid-template-columns:1fr}.fontPickerCardSample{font-size:27px}}
