@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Instrument+Sans:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500&display=swap";:root{--ink: #1a2733;--panel: #ffffff;--line: rgba(30,60,90,.14);--strong-line: rgba(166, 199, 223, .45);--positive: #16a34a;--negative: #dc2626}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;color:var(--ink);font-family:Instrument Sans,sans-serif;background-color:#f0f4f8;width:100%;height:100%}#root{height:100%;width:100%;background-color:#f0f4f8}.app-shell{max-width:1780px;margin:0 auto;padding:24px}.app-header,.general-header{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px}.general-header-actions{display:inline-flex;align-items:center;gap:8px}.install-header-wrap{position:relative;display:inline-flex}.general-header-text-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;padding:7px 14px;border:1px solid rgba(20,80,140,.28);border-radius:9px;background:transparent;color:#1e5272;font-family:Spline Sans Mono,monospace;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;flex-shrink:0}.general-header-text-btn:disabled{opacity:.48;cursor:default}.general-header-btn-label{display:inline}.general-header-btn-icon{display:none}.install-help-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#0000008f;display:flex;align-items:center;justify-content:center;padding:16px}.install-help-modal{position:relative;width:min(420px,calc(100vw - 24px));border:1px solid rgba(20,80,140,.15);border-radius:14px;background:#fff;box-shadow:0 18px 36px #0000007a;padding:18px 14px 14px}.install-help-modal-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border:1px solid rgba(146,176,200,.24);border-radius:8px;background:#11212fb3;color:#c5e0f1d6;display:inline-flex;align-items:center;justify-content:center;padding:0}.install-help-modal-title{margin:0 28px 12px 0;font-family:Spline Sans Mono,monospace;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#1a3a52}.install-help-modal-text{margin:0;color:#cee6f6e6;font-family:Spline Sans Mono,monospace;font-size:.72rem;line-height:1.5}pre.install-help-modal-text{white-space:pre-wrap;word-break:break-word;max-height:52vh;overflow:auto}.install-help-steps{margin:0;padding:0;list-style:none;display:grid;gap:10px}.install-help-steps li{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:10px;color:#cee6f6e6;font-family:Spline Sans Mono,monospace;font-size:.72rem;line-height:1.45}.install-help-step-icon{width:24px;height:24px;border:1px solid rgba(20,80,140,.2);border-radius:7px;background:#e8f2f9;display:inline-flex;align-items:center;justify-content:center;color:#1a3d56}.install-help-step-icon svg{width:14px;height:14px}.install-help-emphasis{font-style:normal;font-weight:700;color:#dff3ff}.brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.brand-copy{min-width:0}.brand-logo{width:clamp(64px,7vw,102px);height:auto;flex:0 0 auto;margin-left:auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35))}.app-kicker{margin:0;font-family:Spline Sans Mono,monospace;text-transform:uppercase;font-size:.76rem;letter-spacing:.16em;opacity:.74}.app-header h1{margin:6px 0;font-family:Bebas Neue,sans-serif;font-size:clamp(2.35rem,6.2vw,4.7rem);line-height:.9;letter-spacing:.03em;color:#0f2233;text-shadow:0 12px 26px rgba(0,0,0,.45)}.app-copy{margin:0;max-width:1000px;opacity:.86;font-size:1rem;color:#2f5266}.app-grid{display:grid;gap:14px;align-items:start;grid-template-columns:minmax(340px,410px) minmax(0,1fr);grid-template-areas:"config preview" "config inspector"}.settings-panel,.preview-panel,.inspector-card,.info-panel-group{border:1px solid rgba(20,80,130,.12);border-radius:16px;background:var(--panel);box-shadow:0 20px 42px #0000005c,inset 0 1px #ffffff0a}.settings-panel{grid-area:config;padding:0;overflow:hidden}.accordion-item{border-bottom:1px solid rgba(146,176,200,.12);background:#0a141feb}.accordion-item:last-child{border-bottom:none}.accordion-item.accordion-item--open{background:#0a141feb}.accordion-header{width:100%;display:flex;align-items:center;gap:12px;padding:20px 16px;background:transparent;border:none;color:#1e3a52;font-family:Spline Sans Mono,monospace;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:color .18s ease,background .18s ease;-webkit-tap-highlight-color:transparent;background:#f7fafc}.accordion-header:hover{color:#0f2d42;background:#1a7eb50f}.accordion-header.is-open{color:#1565a0}.accordion-icon{width:18px;height:18px;flex-shrink:0;color:#2a7db5}.accordion-label{flex:1;text-align:left}.accordion-chevron{width:16px;height:16px;flex-shrink:0;opacity:.6;transition:transform .26s cubic-bezier(.4,0,.2,1)}.accordion-header.is-open .accordion-chevron{transform:rotate(180deg);opacity:.9}.accordion-body{display:grid;grid-template-rows:0fr;background:#0a141feb;overflow:hidden;opacity:0;visibility:hidden;transition:grid-template-rows .26s cubic-bezier(.4,0,.2,1)}.accordion-body.is-open{grid-template-rows:1fr;opacity:1;visibility:visible}.accordion-body-inner{min-height:0;overflow:hidden;padding:0 14px}.accordion-body.is-open .accordion-body-inner{padding-bottom:14px}@media (min-width: 769px){.accordion-body-inner>.panel-block>h2,.accordion-body-inner .map-settings-theme-part>h2,.accordion-body-inner .map-settings-layout-part>h2{display:none}}.preview-panel{grid-area:preview;padding:3px}.info-panel{grid-area:inspector;display:grid;gap:12px;grid-template-columns:1fr}.app-grid{grid-template-columns:minmax(320px,390px) minmax(0,1fr)}@media (max-width: 980px){.app-header,.general-header{grid-template-columns:1fr}.app-grid{grid-template-columns:1fr;grid-template-areas:"config" "preview" "inspector"}.info-panel{grid-template-columns:1fr}}@media (max-width: 760px){.app-shell{padding:14px}.brand-logo{width:72px}}.install-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border-radius:12px;border:1px solid rgba(94,174,212,.28);background:#0a1824e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.84rem;color:#b8d4e8}.install-prompt-text{flex:1 1 auto;min-width:0;line-height:1.45}.install-prompt-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}button.install-prompt-btn{width:auto;margin:0;padding:7px 14px;border-radius:999px;border:1px solid rgba(26,126,181,.6);background:linear-gradient(135deg,#1565a0,#0d4f82);color:#f0f9ff;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 0 10px #5eaed438;transition:border-color .15s ease,box-shadow .15s ease}button.install-prompt-btn:hover{transform:none;filter:none;border-color:#82c8f0d9;box-shadow:0 0 18px #5eaed466}button.install-prompt-dismiss{display:inline-flex;align-items:center;justify-content:center;width:auto;margin:0;padding:7px 14px;border-radius:999px;border:1px solid rgba(26,100,160,.2);background:transparent;color:#4a7a96;font-size:.8rem;font-weight:700;cursor:pointer;line-height:1;letter-spacing:.015em;box-sizing:border-box;transition:color .15s ease,border-color .15s ease,background .15s ease}button.install-prompt-dismiss:hover{transform:none;filter:none;color:#1a5272;border-color:#1a64a073;background:#5eaed406}.install-prompt-share-icon{display:inline-block;font-style:normal;font-size:1em}.install-prompt-mobile-icon{display:inline-block;vertical-align:-.15em;margin-right:8px;width:1.05em;height:1.05em;color:currentColor}.startup-location-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:420;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;background:#060c126b;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:startup-location-fadein .25s ease}.startup-location-modal.is-closing{animation:startup-location-fadeout .22s ease forwards}.startup-location-logo-wrap{width:auto;height:auto;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transform:translateY(-18px)}.startup-location-logo{width:98px;height:98px;animation:startup-location-logo-pop 1.05s cubic-bezier(.24,.78,0,1)}.startup-location-app-name{margin:0;font-family:Bebas Neue,sans-serif;font-size:2rem;line-height:.92;letter-spacing:.04em;color:#ecf5ff;text-shadow:0 2px 10px rgba(0,0,0,.45);transform:translateY(10px)}.startup-location-card{width:min(360px,calc(100% - 16px));border:1px solid rgba(20,80,140,.15);border-radius:14px;background:#fff;box-shadow:0 18px 36px #0000007a;padding:12px;display:grid;gap:10px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.startup-location-card.is-visible{opacity:1;transform:translateY(0)}.startup-location-title{margin:0;font-family:Spline Sans Mono,monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#1a3a52}.startup-location-input{width:100%;min-height:46px;border:1px solid rgba(20,80,140,.25);border-radius:10px;background:#f5f9fc;color:#0f2233;font-family:Spline Sans Mono,monospace;font-size:16px;padding:0 12px;outline:none}.startup-location-input:focus{border-color:#70b8decc;box-shadow:0 0 0 2px #4b95ba38}.startup-location-suggestions{margin:-2px 0 0;padding:0;list-style:none;border:1px solid rgba(146,176,200,.24);border-radius:10px;background:#09121bf5;max-height:176px;overflow-y:auto}.startup-location-suggestion{width:100%;border:none;border-bottom:1px solid rgba(146,176,200,.14);background:transparent;color:#dcecf7e6;font-family:Spline Sans Mono,monospace;font-size:.74rem;line-height:1.4;text-align:left;padding:10px 11px;justify-content:flex-start;text-transform:none;letter-spacing:.02em;border-radius:0}.startup-location-suggestion:last-child{border-bottom:none}.startup-location-suggestion-status{margin:0;padding:10px 11px;font-size:.72rem;color:#b4cde1b3}.startup-location-action{min-height:46px;border-radius:10px;font-family:Spline Sans Mono,monospace;font-size:.84rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent}.startup-location-action--geo{background:#eaf2f8;border-color:#1a64a04d;color:#1a3d56}.startup-location-action--geo svg{width:17px;height:17px}.startup-location-action--confirm{background:linear-gradient(135deg,#1565a0,#0d4f82);color:#fff}.startup-location-error{margin:0;color:#b91c1c;font-size:.72rem;font-family:Spline Sans Mono,monospace}@keyframes startup-location-fadein{0%{opacity:0}to{opacity:1}}@keyframes startup-location-fadeout{0%{opacity:1}to{opacity:0}}@keyframes startup-location-logo-pop{0%{opacity:0;transform:scale(.78) rotate(-7deg)}60%{opacity:1;transform:scale(1.06) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.app-shell--three-column{max-width:none!important;margin:0!important;padding:0!important}.app-shell--three-column .general-header{margin-bottom:0!important;padding:0 24px!important}.app-shell--three-column .left-panel,.app-shell--three-column .right-panel{border-radius:0!important;box-shadow:none!important}.app-shell--three-column .preview-panel{border:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}.panel-block+.panel-block{margin-top:12px}.mobile-section--theme-settings .map-settings-layout-part,.mobile-section--layout-settings .map-settings-theme-part{display:none}.panel-block h2{margin:0 0 8px;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;color:#2563a8}label{display:block;margin-bottom:9px;font-size:.84rem;font-weight:600;color:#1e3a4f}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.field-grid.triple{grid-template-columns:repeat(3,minmax(0,1fr))}.map-dimension-fields{display:grid;grid-template-columns:1fr;gap:10px}.map-size-fields-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.distance-slider-field{margin-bottom:0;display:grid;gap:8px}.distance-slider-field>span{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:10px}.distance-slider-value{font-family:Spline Sans Mono,monospace;letter-spacing:.02em;color:#0f2d42}.distance-slider-input{width:100%;margin-top:0;min-height:48px;padding:12px;border-radius:10px;text-align:right;font-family:Spline Sans Mono,monospace;font-size:.82rem;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.distance-slider-input::-webkit-outer-spin-button,.distance-slider-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.distance-slider{display:block;width:100%;margin:0;padding:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:20px;border:none;background:transparent;outline:none;cursor:pointer}.distance-slider::-moz-range-track{height:10px;border-radius:999px;border:1px solid rgba(151,183,207,.34);background:linear-gradient(180deg,#1c3345f2,#11222ff2);box-sizing:border-box}.distance-slider::-moz-range-thumb{width:20px;height:20px;border-radius:999px;border:2px solid #e8f3fb;background:radial-gradient(circle at 35% 35%,#4ca9cd,#2a7fa0 70%);box-shadow:0 0 0 2px #050d1473,0 2px 6px #00000059;box-sizing:border-box}.distance-slider-meta{position:relative;height:16px;margin-top:5px;font-family:Spline Sans Mono,monospace;font-size:.66rem;color:#64899e}.distance-slider-meta-mark{position:absolute;top:0;white-space:nowrap;line-height:1;text-shadow:0 1px 0 rgba(0,0,0,.25)}.field-grid.keep-two-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}.map-dimension-fields label{margin-bottom:0}.map-details-section{margin-top:6px}.map-details-subtitle{margin:0 0 8px;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#88b7d5}.map-details-card{border:none;border-radius:12px;background:#09121bcc;padding:0;display:grid;gap:10px}.map-details-card .map-dimension-fields{gap:0}.form-control-tall,.map-dimension-input{min-height:48px;padding:12px}.toggle-field{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-switch{position:relative;display:inline-flex;align-items:center;justify-content:center;width:58px;height:34px}.theme-switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.theme-switch-track{position:relative;display:block;width:58px;height:34px;border-radius:999px;background:#c5d5e0;transition:background-color .16s ease}.theme-switch-track:after{content:"";position:absolute;top:4px;left:4px;width:26px;height:26px;border-radius:999px;background:#eaf5fd;box-shadow:0 1px 3px #00000059;transition:transform .16s ease}.theme-switch input:checked+.theme-switch-track{background:#111827}.theme-switch input:checked+.theme-switch-track:after{transform:translate(24px)}.theme-switch input:focus-visible+.theme-switch-track{box-shadow:0 0 0 3px #4b95ba4d}.credits-toggle-field{margin-top:10px}.credits-hint{margin:2px 0 0;font-size:.74rem;line-height:1.45;color:#4a7a96;opacity:.85;font-weight:400}.credits-confirm-modal{width:min(420px,100%);max-height:unset;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #0000001f;border:1px solid #e5e7eb;background:#fff}.credits-modal-body{padding:28px 24px 20px;display:grid;gap:16px;background:#fff}.credits-modal-headline{margin:0;font-size:1.15rem;font-weight:700;color:#1e2937;line-height:1.35;letter-spacing:-.01em}.credits-modal-text{margin:0;font-size:1rem;line-height:1.65;color:#334155}.credits-modal-text strong{color:#1e2937;font-weight:700}.credits-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:8px}.credits-modal-keep{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:999px;border:1px solid #e5e7eb;background:#1e2937;color:#fff;text-decoration:none;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #0000001a}.credits-modal-keep:hover,.credits-modal-keep:focus-visible{background:#111827;border-color:#1e2937;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.credits-modal-keep .heart{font-size:1.1rem}.credits-modal-remove{padding:8px 16px;border-radius:8px;border:1px solid #e5e7eb;background:transparent;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.credits-modal-remove:hover,.credits-modal-remove:focus-visible{background:#f8fafc;border-color:#cbd5e1;color:#1e2937}input,select,button{font:inherit}input:not([type=checkbox]):not([type=radio]),select{width:100%;margin-top:4px;border:1px solid rgba(30,80,120,.25);border-radius:10px;background:#fff;padding:9px 10px;color:#0f2233;outline:none;transition:border-color .16s ease,box-shadow .16s ease}input::placeholder{color:#8eaabf}input:not([type=checkbox]):not([type=radio]):focus,select:focus{border-color:#111827;box-shadow:0 0 0 3px #1a7eb540}.location-autocomplete{position:relative;margin-top:4px}.location-autocomplete input{margin-top:0}.location-input-wrap{position:relative}.location-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.location-input-wrap input{padding-right:34px}button.location-current-btn{width:48px;min-height:48px;margin:0;padding:0;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#1e2937;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;box-shadow:0 1px 3px #0000000f}button.location-current-btn svg{width:22px;height:22px;fill:currentColor}button.location-current-btn:not(:disabled):hover,button.location-current-btn:focus-visible{border-color:#cbd5e1;background:#f8fafc;box-shadow:0 3px 6px #0000001a;transform:translateY(-1px)}.location-permission-message{margin:8px 0 0;font-size:.73rem;line-height:1.45;color:#c0392b}.location-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;border:1px solid rgba(26,100,160,.2);border-radius:10px;background:#fff;box-shadow:0 16px 28px #00000070;max-height:220px;overflow-y:auto;z-index:30}.location-suggestion{width:100%;border:none;background:transparent;color:#1a2e3d;border-radius:8px;text-align:left;padding:8px 10px;font-size:.82rem;font-weight:500}.location-suggestion:hover,.location-suggestion:focus-visible{background:#4585a933}.location-suggestion:not(:disabled):hover{transform:none;filter:none}.location-suggestion-status{padding:8px 10px;font-size:.78rem;color:#5a7d94}.theme-note{margin:0 0 8px;font-size:.8rem;opacity:.74;color:#5a7d94}.theme-active-label{margin:0;font-size:.84rem;font-weight:600;color:#1e3a4f}.theme-section{margin:0 0 10px;border:1px solid rgba(151,183,207,.34);border-radius:12px;background:#09121bcc;padding:10px}.theme-summary-header,.theme-edit-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.theme-summary-header .theme-active-label,.theme-edit-header .theme-active-label{flex:1 1 auto;min-width:0}.theme-edit-actions{display:inline-flex;align-items:center;gap:6px}.theme-summary-view .theme-card{margin:0}.theme-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.theme-summary-copy{min-width:0;flex:1 1 auto}.theme-summary-label{margin:0;font-size:1rem;font-weight:700;letter-spacing:.03em;color:#e7f2fb;text-transform:uppercase}.theme-summary-label-name{margin:0;font-size:1rem;font-weight:700;color:#e7f2fb;text-transform:uppercase}.card-scroll-list{display:block}.card-scroll-list .theme-card,.card-scroll-list .layout-card{margin:0 0 8px}.card-scroll-list .theme-card:last-child,.card-scroll-list .layout-card:last-child{margin-bottom:0}.mobile-section--theme-settings .accordion-body-inner{scrollbar-width:none;-ms-overflow-style:none}.mobile-section--theme-settings .accordion-body-inner::-webkit-scrollbar{display:none}.theme-slider{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}.theme-slider::-webkit-scrollbar{display:none}.theme-slider-wrap{position:relative;padding:0 12px}.theme-slider-chevron{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:28px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:#d8e8f459;font-size:1.15rem;font-weight:700;pointer-events:none;background:linear-gradient(90deg,#09121bdb,#09121b00)}.theme-slider-chevron--left{left:-8px}.theme-slider-chevron--right{right:-8px;background:linear-gradient(270deg,#09121bdb,#09121b00)}.theme-slider .theme-card{flex:0 0 calc((100% - 16px) / 3);width:calc((100% - 16px) / 3);min-width:calc((100% - 16px) / 3);scroll-snap-align:start}.theme-summary-actions{margin-top:8px;display:flex;justify-content:flex-end}.theme-summary-footer{margin-top:8px;display:flex;align-items:flex-start;justify-content:flex-start;gap:10px}button.theme-customize-btn{width:44px;min-height:44px;margin:0;padding:0;border:1px solid rgba(26,126,181,.3);border-radius:12px;background:linear-gradient(135deg,#e8f4fc,#d8ecf7);color:#1a4d6e;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;gap:5px;justify-content:center;transition:border-color .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);cursor:pointer}.theme-summary-head .theme-customize-btn{flex:0 0 auto}button.theme-customize-btn:not(:disabled):hover,button.theme-customize-btn:focus-visible{transform:none;filter:none;border-color:#7dd8f080;background:linear-gradient(135deg,#c8e4f5,#b8d8ee);box-shadow:0 0 0 1px #7dd8f033 inset;color:#0f3350}.marker-add-btn{padding:9px 14px;font-size:.78rem;gap:6px}.theme-customize-icon{width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;color:currentcolor}.theme-customize-icon svg{width:19px;height:19px;fill:currentcolor}button.theme-edit-done-btn{width:auto;margin:0;padding:5px 10px;border:1px solid rgba(26,100,160,.35);border-radius:8px;background:#daeef8;color:#1a3d56;font-size:.72rem;font-weight:700}button.theme-edit-done-btn:not(:disabled):hover,button.theme-edit-done-btn:focus-visible{transform:none;filter:none;border-color:#1a7eb5b3;background:#bfdfef}button.theme-reset-all-btn{width:auto;margin:0;padding:5px 10px;border:1px solid rgba(200,80,40,.35);border-radius:8px;background:#fef3ee;color:#9a3412;font-size:.72rem;font-weight:700}button.theme-reset-all-btn:not(:disabled):hover,button.theme-reset-all-btn:focus-visible{transform:none;filter:none;border-color:#c8502899;background:#fde0d2}.layout-active-label{margin:0 0 8px;font-size:.84rem;font-weight:600;color:#1e3a4f}.layout-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.layout-summary-copy{min-width:0;flex:1 1 auto}.layout-summary-label{margin:0;font-size:1rem;font-weight:700;letter-spacing:.03em;color:#e7f2fb;text-transform:uppercase}.layout-summary-label-name{text-transform:uppercase}.layout-summary-description{margin:8px 0 0;font-size:.78rem;line-height:1.42;color:#b9cfde}.section-summary-label{margin:0 0 10px;font-size:1rem;font-weight:700;letter-spacing:.03em;color:#e7f2fb;text-transform:uppercase}.section-summary-label-name{text-transform:uppercase}.layout-custom-editor{margin-bottom:10px}.layout-inline-groups{display:grid;gap:10px;margin-bottom:10px}.layout-inline-group h3{margin:0 0 6px;font-size:.92rem;font-weight:700;letter-spacing:.06em;color:#a8bfd1;text-transform:uppercase}.layout-inline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:126px;gap:8px;width:100%}.layout-inline-group,.layout-picker-group{display:grid;grid-template-columns:1fr;align-items:start}.theme-card{position:relative;width:100%;padding:0;min-height:120px;text-align:left;border:1px solid rgba(151,183,207,.34);border-radius:12px;background:#09121bdb;transition:border-color .18s ease,box-shadow .18s ease;overflow:hidden;cursor:pointer}.theme-card.is-selected{border-color:#70b8decc;box-shadow:0 0 0 2px #4b95ba38}.theme-card:hover{border-color:#70b8de99;transform:translateY(-2px)}.theme-card-name{position:absolute;left:10px;right:10px;bottom:8px;margin:0;font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#e7f2fb;z-index:2;text-shadow:0 1px 2px rgba(0,0,0,.5)}.theme-card-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;height:100%;min-height:80px;gap:0}.theme-card-palette--full{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));gap:0}.theme-card.is-selected .theme-card-palette,.theme-card:hover .theme-card-palette,.theme-card:focus-within .theme-card-palette{filter:none}.theme-card-swatch{width:100%;height:80px;border-right:1px solid rgba(214,233,247,.16)}.theme-card-swatch:last-child{border-right:none}.theme-card-name-shadow{position:absolute;left:0;right:0;bottom:0;height:50%;background:linear-gradient(to top,rgba(4,8,12,.9),transparent);pointer-events:none;z-index:1}.theme-card-description{margin:10px 0 0;font-size:.78rem;line-height:1.42;color:#b9cfde;flex:1 1 auto;min-width:0}.theme-summary-footer .theme-customize-btn{margin:0;flex:0 0 auto}.layout-card{width:100%;margin:0 0 10px;padding:8px;height:126px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #e5e7eb;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.layout-card.is-selected{border-color:#64748b;box-shadow:0 0 0 3px #64748b26;background:#f1f5f9}.layout-card:not(.is-selected):not(:disabled):hover,.layout-card:not(.is-selected):focus-visible{border-color:#cbd5e1;background:#f8fafc;box-shadow:0 4px 8px #0000000f}.layout-card-copy{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding:0}.layout-card-name{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#1e2937}.layout-card-meta{margin:3px 0 0;font-family:Spline Sans Mono,monospace;font-size:.64rem;letter-spacing:.03em;color:#64748b;text-transform:uppercase}.layout-card-symbol{width:calc(100% - 8px);height:68px;display:block;margin:10px 4px 0;border:none;background:transparent;padding:0;object-fit:contain}.layout-card-description{margin:8px 0 0;font-size:.78rem;line-height:1.42;color:#334155}.layout-card.is-selected .layout-card-name,.layout-card.is-selected .layout-card-meta,.layout-card.is-selected .layout-card-description{color:#1e2937}.picker-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;justify-content:center;align-items:center;padding:14px;background:#02080ebd;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.picker-modal{width:min(560px,100%);max-height:86vh;display:flex;flex-direction:column;border:1px solid rgba(151,183,207,.42);border-radius:14px;padding:12px;background:#081018fa;box-shadow:0 28px 52px #0000008c}.picker-modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.picker-modal-header h3{margin:0;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:#8cb6d0}button.picker-modal-close{width:28px;height:28px;margin:0;padding:0;border:1px solid rgba(151,183,207,.42);border-radius:999px;background:#142634f0;color:#d8e8f4;font-size:.8rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}button.picker-modal-close:not(:disabled):hover,button.picker-modal-close:focus-visible{transform:none;filter:none;background:#2f4f66f2}.picker-modal-body{overflow-y:auto;display:block;padding-right:3px}.picker-option-list{display:grid;gap:8px}.picker-option-list .theme-card,.picker-option-list .layout-card{margin:0}.layout-picker-groups{display:grid;gap:12px}.layout-picker-group h4{margin:0 0 7px;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;color:#87adc4}.layout-picker-group .picker-option-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:126px;width:100%}.picker-modal-footer{margin-top:10px;display:flex;justify-content:flex-end}button.picker-modal-done{border:1px solid rgba(151,183,207,.42);background:#142634f0;color:#e6f2fb;padding:8px 12px}button.picker-modal-done:not(:disabled):hover,button.picker-modal-done:focus-visible{transform:none;filter:none;background:#2f4f66f2}.palette-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}button.palette-color-item{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;margin:0;padding:5px;border:1px solid rgba(151,183,207,.26);border-radius:8px;background:#09121bd6;cursor:pointer}button.palette-color-item.is-active{border-color:#70b8decc;box-shadow:0 0 0 2px #4b95ba38}button.palette-color-item:not(:disabled):hover,button.palette-color-item:focus-visible{transform:none;filter:none;border-color:#70b8dec7;background:#142634f0}.palette-color-swatch{display:block;width:100%;height:44px;border-radius:5px;border:1px solid rgba(214,233,247,.15)}.palette-color-name{display:block;font-size:.7rem;font-weight:500;color:#a8bfd1;line-height:1.2;word-break:break-word;text-align:center}.color-picker-popup{position:relative;border:1px solid rgba(151,183,207,.42);border-radius:12px;background:#152837f5;padding:15px;max-width:500px;margin:0 auto;box-shadow:inset 0 0 0 1px #1f394dc7}.color-preset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:8px}.color-picker-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}button.color-preset-cell{aspect-ratio:1 / 1;min-height:30px;margin:0;padding:0;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:border-color .1s ease,transform .1s ease}button.color-preset-cell.is-active{border-color:#fff;box-shadow:0 0 0 2px #ffffff59}button.color-preset-cell:not(:disabled):hover,button.color-preset-cell:focus-visible{transform:scale(1.08);filter:none;border-color:#d6e9f7cc}button.color-grid-action{margin:0;min-height:44px;padding:0 8px;border:1px solid rgba(151,183,207,.42);border-radius:9px;background:#162b3af2;color:#d5e5f0;font-size:.82rem;font-weight:700;line-height:1.05;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;text-align:center}button.color-grid-action.is-active{border-color:#70b8ded1;background:#2d4e66fa}button.color-grid-action:not(:disabled):hover,button.color-grid-action:focus-visible{transform:none;filter:none;border-color:#70b8ded1;background:#2d4e66fa}button.color-grid-reset{border-color:#ffb18e94;color:#ffd7c2}.color-manual-panel{margin-top:10px;padding:12px;border:1px solid rgba(151,183,207,.34);border-radius:10px;background:#0d1923db;box-shadow:inset 0 0 0 1px #1f394d9e}.color-custom-panel{display:grid;gap:11px}.color-picker-frame{border:1px solid rgba(151,183,207,.34);border-radius:12px;padding:10px;background:#0f1c26f5}.color-picker-frame .react-colorful{width:100%;height:220px}.color-picker-frame .react-colorful__saturation{border-radius:10px 10px 0 0;border-bottom:none}.color-picker-frame .react-colorful__hue{height:20px;margin-top:10px;border-radius:999px}.color-picker-frame .react-colorful__interactive{border-radius:inherit}.color-picker-frame .react-colorful__pointer{width:20px;height:20px;border-width:2px;box-shadow:0 0 0 1px #060e14d6,0 0 0 4px #060e142e}label.color-field-label{display:flex;flex-direction:column;gap:2px;margin-bottom:0;font-size:.68rem;font-weight:600;color:#8ab0c6}.color-hex-input{width:100%;margin-top:0;border-radius:10px;min-height:50px;padding:12px 14px;font-size:1rem;font-family:Spline Sans Mono,monospace;letter-spacing:.04em;background:#1a2f40fa;border-color:#97b7cf80}.markers-summary-card{display:grid;gap:10px}.markers-summary-copy{margin:0;font-size:.78rem;line-height:1.45;color:#9fbcd0}.markers-summary-preview{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.markers-summary-preview-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border:1px solid rgba(151,183,207,.28);border-radius:999px;background:#0c1722e6;color:#b8cedd;font-family:Spline Sans Mono,monospace;font-size:.68rem}.markers-section__copy,.markers-section__empty,.markers-section__hint{margin:0;font-size:.78rem;line-height:1.45;color:#9fbcd0}.markers-section__content{margin-top:12px;display:grid;gap:12px}.markers-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.markers-section-head-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.marker-info-wrap{position:relative;display:inline-flex}.marker-info-wrap--bottom{justify-self:end}button.marker-info-btn{width:24px;height:24px;border:1px solid rgba(151,183,207,.32);border-radius:999px;background:#0f1c28e6;color:#b6cfe0}button.marker-info-btn:not(:disabled):hover,button.marker-info-btn:focus-visible{transform:none;filter:none;border-color:#70b8deb8;background:#243e50f0}.marker-info-btn svg{width:13px;height:13px}.marker-info-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:8;width:min(320px,70vw);padding:8px 10px;border:1px solid rgba(151,183,207,.34);border-radius:8px;background:#070e15f7;color:#c2d8e7;font-size:.72rem;line-height:1.45;opacity:0;pointer-events:none;transition:opacity .14s ease}.marker-info-wrap:hover .marker-info-popover,.marker-info-wrap:focus-within .marker-info-popover{opacity:1}.markers-section__list{display:grid;gap:10px}.markers-section__mobile-strip{display:flex;align-items:stretch;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-x;padding-top:10px;padding-right:16px;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}.markers-section__mobile-strip::-webkit-scrollbar{display:none}.markers-section__marker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.marker-mobile-card{position:relative;flex:0 0 clamp(90px,30%,116px);min-width:clamp(90px,30%,116px);scroll-snap-align:start;border:1px solid rgba(151,183,207,.26);border-radius:10px;background:#0a141fc7}.marker-mobile-card.is-selected{border-color:#70b8ded1;box-shadow:0 0 0 2px #4b95ba33}button.marker-mobile-card__select{width:100%;min-height:72px;margin:0;padding:8px 6px 7px;border:none;border-radius:10px;background:transparent;color:#d8e8f4;display:grid;justify-items:center;align-content:center;gap:7px}button.marker-mobile-card__select:not(:disabled):hover,button.marker-mobile-card__select:focus-visible{transform:none;filter:none;background:#142736f0}.marker-mobile-card__label{width:100%;font-size:.64rem;line-height:1.25;font-weight:700;text-align:center;color:#d9e8f4;white-space:normal;word-break:break-word}button.marker-mobile-card__delete{position:absolute;top:0;right:0;transform:translate(35%,-35%);z-index:1;width:28px;height:28px;margin:0;padding:0;border-radius:999px;border:1px solid rgba(255,152,129,.34);background:#522c24db;color:#ffd5cb;display:inline-flex;align-items:center;justify-content:center}button.marker-mobile-card__delete svg{width:15px;height:15px}button.marker-mobile-card__delete:not(:disabled):hover,button.marker-mobile-card__delete:focus-visible{transform:translate(35%,-35%);filter:none;border-color:#ff9881b8;background:#61352cf0}.markers-section__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.markers-section__actions .marker-row__icon-btn{flex:1 1 0;min-width:0}button.marker-delete-all-btn{width:100%;margin:0;min-height:40px;padding:8px 12px;border-radius:10px;background:#522c24d1;border-color:#ff988157;color:#ffd5cb;display:inline-flex;align-items:center;justify-content:center;gap:8px}button.marker-delete-all-btn:not(:disabled):hover,button.marker-delete-all-btn:focus-visible{transform:none;filter:none;border-color:#ff9881b8;background:#61352ceb}.marker-delete-confirm-modal{width:min(420px,100%);max-height:unset}.marker-delete-modal-body{padding:16px;display:grid;gap:12px;background:linear-gradient(180deg,#ff7c6b1a,#0a1824)}.marker-delete-modal-headline{margin:0;font-size:1rem;font-weight:700;color:#e4f2fc}.marker-delete-modal-text{margin:0;font-size:.9rem;color:#b8cedd}.marker-delete-modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}button.marker-delete-modal-cancel{width:auto;margin:0;padding:8px 12px;border:1px solid rgba(151,183,207,.42);border-radius:9px;background:#142634f0;color:#e8f3fb}button.marker-delete-modal-cancel:not(:disabled):hover,button.marker-delete-modal-cancel:focus-visible{transform:none;filter:none;border-color:#70b8ded1;background:#2c4e66fa}button.marker-delete-modal-confirm{width:auto;margin:0;padding:8px 12px;border-radius:9px;border:1px solid rgba(255,152,129,.42);background:#522c24e0;color:#ffd5cb;display:inline-flex;align-items:center;gap:8px}button.marker-delete-modal-confirm:not(:disabled):hover,button.marker-delete-modal-confirm:focus-visible{transform:none;filter:none;border-color:#ff9881b8;background:#61352ceb}.marker-settings-card,.marker-editor-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(151,183,207,.26);border-radius:12px;background:#0a141fc7}.marker-editor-card.is-disabled{opacity:.55}.marker-settings-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.marker-settings-card__header h3{margin:0;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#8cb6d0}button.marker-settings-card__reset-btn{width:auto;margin:0;padding:7px 10px;background:#492d22d6;border-color:#ffb18e94;color:#ffd7c2}.marker-editor-toolbar-btn{min-width:108px;justify-content:center}.marker-editor-toolbar-btn--danger{background:#492d22d6;border-color:#ffb18e94;color:#ffd7c2}.marker-editor-toolbar-btn--danger:not(:disabled):hover,.marker-editor-toolbar-btn--danger:focus-visible{transform:none;filter:none;border-color:#ffb18ed9;background:#603a2beb}.marker-settings-card__theme-color{display:grid;gap:6px}.marker-settings-card__theme-label{font-size:.84rem;font-weight:600;color:#d9e7f2}.marker-header-action-btn{min-width:128px}.marker-header-settings-btn.is-compact{min-width:40px;width:40px;padding:0}.marker-header-action-btn.is-active{border-color:#70b8ded1;background:#2a485df2}.marker-settings-toggle-hint{margin:0;width:100%;font-size:.72rem;line-height:1.35;color:#8fb0c6}.marker-settings-card__theme-note{margin:0;font-size:.74rem;line-height:1.45;color:#8fb0c6}.marker-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.marker-row__summary{display:flex;align-items:center;gap:10px;min-width:0}.marker-row__title{font-size:.84rem;font-weight:700;color:#e7f2fb}.marker-row__actions{display:flex;align-items:center;gap:8px}button.marker-row__icon-btn{width:auto;min-width:90px;height:38px;margin:0;padding:0 12px;border-radius:10px;background:#122534f0;border-color:#97b7cf57;color:#d8e8f4;display:inline-flex;align-items:center;justify-content:center;gap:7px}.marker-row__icon-btn-icon{display:inline-flex;align-items:center;justify-content:center}.marker-row__icon-btn-label{font-size:.76rem;letter-spacing:.02em}button.marker-row__icon-btn--danger{min-width:38px;padding:0;background:#522c24d1;border-color:#ff988157;color:#ffd5cb}.marker-editor-card__details{padding-top:10px;border-top:1px solid rgba(151,183,207,.18);display:grid;gap:10px}.marker-editor-card__stack{display:grid;gap:10px}.marker-editor-card__size-row,.marker-editor-card__color-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:4px}.marker-editor-card__size-slider{display:block;width:100%;margin:0;padding:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:26px;border:none;background:transparent;outline:none;cursor:pointer}.marker-editor-card__size-slider::-webkit-slider-runnable-track{height:12px;border-radius:999px;border:1px solid rgba(151,183,207,.34);background:linear-gradient(180deg,#1c3345f2,#11222ff2);box-sizing:border-box}.marker-editor-card__size-slider::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;margin-top:-6px;border-radius:999px;border:2px solid #e8f3fb;background:radial-gradient(circle at 35% 35%,#4ca9cd,#2a7fa0 70%);box-shadow:0 0 0 2px #050d1473,0 2px 6px #00000059;box-sizing:border-box}.marker-editor-card__size-slider::-moz-range-track{height:12px;border-radius:999px;border:1px solid rgba(151,183,207,.34);background:linear-gradient(180deg,#1c3345f2,#11222ff2);box-sizing:border-box}.marker-editor-card__size-slider::-moz-range-thumb{width:22px;height:22px;border-radius:999px;border:2px solid #e8f3fb;background:radial-gradient(circle at 35% 35%,#4ca9cd,#2a7fa0 70%);box-shadow:0 0 0 2px #050d1473,0 2px 6px #00000059;box-sizing:border-box}.marker-editor-card__size-slider::-moz-range-progress{height:12px;border-radius:999px;background:linear-gradient(180deg,#2b5f7ef2,#235470f2)}.marker-editor-card__size-input{width:88px}.marker-editor-card__color-input{width:54px;min-width:54px;min-height:48px;padding:4px;border-radius:10px;cursor:pointer}.marker-editor-card__color-row--readonly{grid-template-columns:auto auto;justify-content:start}.marker-editor-card__color-swatch{width:48px;min-width:48px;min-height:48px;border:1px solid rgba(151,183,207,.26);border-radius:10px;background:#000}.marker-color-control{margin-top:4px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}button.marker-color-display-btn{width:auto;margin:0;padding:0;border:none;background:none;display:inline-flex;align-items:center;gap:8px}button.marker-color-display-btn:not(:disabled):hover,button.marker-color-display-btn:focus-visible{transform:none;filter:none}button.marker-color-edit-btn{width:auto;margin:0;padding:5px 10px;border-radius:8px;border:1px solid rgba(151,183,207,.34);background:#132635f0;color:#d8e8f4;font-size:.72rem;font-weight:700}button.marker-color-edit-btn:not(:disabled):hover,button.marker-color-edit-btn:focus-visible{transform:none;filter:none;border-color:#70b8ded1;background:#2a485df2}.marker-editor-card__color-value{display:inline-flex;align-items:center;min-height:48px;padding:0 12px;border:1px solid rgba(151,183,207,.26);border-radius:10px;background:#09121bd6;color:#ebf3fa;font-family:Spline Sans Mono,monospace;font-size:.8rem;letter-spacing:.04em}.marker-editor-card__icon-field{margin-bottom:0}.marker-picker{margin-top:6px;display:grid;gap:10px}.marker-picker__section-title{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8cb6d0}.marker-picker__divider{width:100%;height:1px;background:#97b7cf38}.marker-picker__divider--actions{margin-top:-2px}.marker-picker__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}button.marker-picker__option{display:grid;justify-items:center;gap:6px;margin:0;padding:8px 6px;border:1px solid rgba(151,183,207,.28);border-radius:10px;background:#0c1722e6}button.marker-picker__option--uploaded{position:relative}button.marker-picker__option--upload-tile{border-style:dashed;border-color:#70b8de85;background:#101f2ce6}button.marker-picker__option--toggle{border-style:dashed;border-color:#97b7cf57;background:#0e1b27eb}button.marker-picker__option.is-selected{border-color:#70b8ded1;box-shadow:0 0 0 2px #4b95ba38}button.marker-picker__option:not(:disabled):hover,button.marker-picker__option:focus-visible{transform:none;filter:none;border-color:#70b8decc;background:#162a3af5}.marker-picker__label{font-size:.68rem;line-height:1.2;color:#b8cedd}.marker-picker__uploaded-empty{margin:0;font-size:.74rem;color:#8fb0c6}.marker-picker__upload-plus{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid rgba(112,184,222,.52);color:#cfe6f5;font-size:1rem;font-weight:700}.marker-picker__toggle-sign{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:#d8e8f4;font-size:1.4rem;font-weight:700;line-height:1}.marker-picker__remove-uploaded{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:999px;border:1px solid rgba(255,152,129,.4);background:#522c24e6;color:#ffd5cb;font-size:.72rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.marker-picker__remove-uploaded:hover,.marker-picker__remove-uploaded:focus-visible{border-color:#ff9881b8;background:#61352cf2}.marker-picker__actions{display:flex;flex-wrap:wrap;gap:8px}button.marker-picker__toggle,button.marker-picker__upload{width:auto;margin:0;padding:7px 10px;border-radius:9px;background:#132635f0;border-color:#97b7cf57;color:#d8e8f4;font-size:.74rem;display:inline-flex;align-items:center;gap:6px}button.marker-picker__clear-uploaded{background:#522c24d1;border-color:#ff988157;color:#ffd5cb}.marker-picker__file-input{display:none}.marker-picker__error{margin:0;font-size:.72rem;color:#ffb39a}.marker-visual{width:var(--marker-size);height:var(--marker-size);display:inline-flex;align-items:center;justify-content:center;color:var(--marker-color)}.marker-settings-screen .marker-visual,.markers-summary-preview .marker-visual{filter:drop-shadow(0 0 1px rgba(255,255,255,.82)) drop-shadow(0 0 3px rgba(5,13,20,.72))}.marker-visual__icon,.marker-visual__image{width:100%;height:100%}.marker-visual__image-mask{width:100%;height:100%;display:block;background:currentcolor;mask-image:var(--marker-mask-url);-webkit-mask-image:var(--marker-mask-url);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:contain;-webkit-mask-size:contain}.marker-visual__icon{display:inline-flex;align-items:center;justify-content:center;color:inherit}.marker-visual__icon svg{width:100%;height:100%;display:block}.marker-visual__image{object-fit:contain}.action-row{display:grid;gap:8px;margin-top:10px}.export-map-label{margin:0;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;color:#7de4a6}.action-row>button{width:100%;padding:8px 12px}.download-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}button.download-format-btn{margin:0;min-height:42px;padding:10px 12px;display:grid;grid-auto-flow:column;justify-content:center;align-items:center;gap:8px}button.export-map-btn{border:1px solid rgba(120,221,161,.56);background:linear-gradient(135deg,#2a7e4ff5,#1d6740f5);color:#effff5}button.export-map-btn:not(:disabled):hover,button.export-map-btn:focus-visible{border-color:#93ebb7e0;background:linear-gradient(135deg,#328d59fa,#227549fa)}.download-btn-icon{display:inline-flex;align-items:center;justify-content:center}.download-btn-icon svg{width:20px;height:20px}.download-btn-icon.is-spinning{animation:export-icon-spin .9s linear infinite}.download-btn-icon path{fill:none;stroke:currentcolor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@keyframes export-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button{border:1px solid transparent;border-radius:11px;padding:10px 12px;cursor:pointer;font-weight:700;transition:transform .14s ease,filter .14s ease}button.icon-only-btn{padding:0;display:inline-flex;align-items:center;justify-content:center}button:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.05)}button.theme-card:not(:disabled):hover,button.theme-card:focus-visible{transform:none;filter:none}.picker-option-list--themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.picker-option-list--themes .theme-card{width:100%}button:disabled{opacity:.52;cursor:not-allowed}button[type=submit]{background:linear-gradient(135deg,#1a6f8c,#2f8eaf);color:#f4fbff}button.location-clear-btn{position:absolute;top:50%;right:8px;transform:translateY(-50%);z-index:1;width:20px;height:20px;margin:0;padding:0;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#1e2937;font-size:.85rem;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #00000014;transition:all .2s ease}button.location-clear-btn:not(:disabled):hover,button.location-clear-btn:focus-visible{background:#f1f5f9;border-color:#cbd5e1;color:#111827;box-shadow:0 2px 5px #0000001f;transform:translateY(-50%) scale(1.08)}.ghost{background:#ff844f24;border-color:#ff8e5e52;color:#ffc6aa}.status,.error{margin:10px 0 0;font-size:.8rem}.status{color:var(--positive)}.error{color:var(--negative)}@media (max-width: 760px){.field-grid,.field-grid.triple{grid-template-columns:1fr}.field-grid.keep-two-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-summary-header,.theme-edit-header{align-items:center;flex-direction:row}.card-scroll-list{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}.card-scroll-list::-webkit-scrollbar{display:none}.card-scroll-list .theme-card{margin:0;flex:0 0 min(72vw,280px);width:min(72vw,280px);min-height:144px;scroll-snap-align:start}.card-scroll-list .theme-card{filter:brightness(.75)}.card-scroll-list .theme-card .theme-card-palette,.card-scroll-list .theme-card .theme-card-swatch{min-height:144px}.layout-inline-groups,.layout-picker-groups{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}.layout-inline-groups::-webkit-scrollbar,.layout-picker-groups::-webkit-scrollbar{display:none}.layout-inline-group,.layout-picker-group,.layout-inline-list.card-scroll-list,.picker-option-list.card-scroll-list{display:contents}.layout-inline-group h3,.layout-picker-group h4{display:none}.layout-inline-groups .layout-card,.layout-picker-groups .layout-card{margin:0;flex:0 0 min(44vw,164px);width:min(44vw,164px);height:168px;scroll-snap-align:start}.layout-inline-groups .layout-card .layout-card-symbol,.layout-picker-groups .layout-card .layout-card-symbol{width:calc(100% - 8px);height:104px;margin:10px 4px 0;object-fit:contain}.theme-edit-actions{width:auto;justify-content:flex-end}.palette-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-preset-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.color-picker-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.color-picker-popup{max-width:100%;padding:15px}button.color-preset-cell{min-height:40px}button.color-grid-action{min-height:48px;font-size:.84rem}.color-picker-frame .react-colorful{height:200px}.marker-settings-card__header,.marker-row{flex-direction:column;align-items:stretch}.marker-color-control{align-items:stretch}.marker-picker__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.markers-section__marker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.marker-row__actions{justify-content:flex-end}.color-hex-input{min-height:56px;font-size:1.04rem}.form-control-tall,.map-dimension-input{min-height:56px;padding:13px 12px}.action-row{grid-template-columns:1fr}.picker-modal-backdrop{padding:8px}.picker-modal{max-height:92vh;padding:10px}}@media (min-width: 761px){.theme-mobile-slider{display:none}.theme-summary-view>.theme-card{display:block}.picker-option-list--themes .theme-card:hover .theme-card-swatch,.picker-option-list--themes .theme-card:focus-visible .theme-card-swatch{margin-left:4px}.picker-option-list--themes .theme-card:hover .theme-card-swatch:first-child,.picker-option-list--themes .theme-card:focus-visible .theme-card-swatch:first-child{margin-left:0}}.selected-theme-card{margin-bottom:24px;padding:18px;border-radius:16px;background:#14263480;border:1px solid rgba(112,184,222,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.selected-theme-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.selected-theme-badge{font-family:Spline Sans Mono,monospace;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#88b7d5;background:#88b7d51f;padding:4px 8px;border-radius:20px}.theme-customize-label{margin-left:6px;font-size:.7rem;font-weight:500}.selected-theme-content{display:flex;flex-direction:column;gap:12px}.selected-theme-name{margin:0;font-size:1.3rem;font-weight:700;color:#e7f2fb;text-transform:uppercase;letter-spacing:.03em;line-height:1.2}.selected-theme-description{margin:0;font-size:.8rem;line-height:1.45;color:#b9cfde}.selected-theme-palette{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.selected-theme-swatch{width:36px;height:36px;border-radius:10px;border:1px solid rgba(214,233,247,.25);transition:transform .15s ease,box-shadow .15s ease;cursor:default}.selected-theme-swatch:hover{transform:scale(1.08);box-shadow:0 2px 8px #0000004d}.theme-options-section{margin-top:8px}.theme-options-title{margin:0 0 14px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#88b7d5}.theme-grid-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.theme-grid-list .theme-card{margin:0;width:100%;min-height:110px}.theme-grid-list .theme-card-palette,.theme-grid-list .theme-card-swatch{min-height:70px}.theme-grid-list .theme-card-name{font-size:.75rem;bottom:6px;left:8px;right:8px}@media (max-width: 500px){.theme-grid-list{grid-template-columns:1fr}}.theme-grid-list .theme-card:hover{transform:translateY(-2px);border-color:#70b8de99}.theme-vertical-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;padding-right:4px}.theme-vertical-list::-webkit-scrollbar{width:6px}.theme-vertical-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.theme-vertical-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.theme-vertical-item{display:flex;align-items:center;gap:12px;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%;box-shadow:0 1px 2px #00000008}.theme-vertical-item:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f}.theme-vertical-item.is-selected{background:#f1f5f9;border-color:#64748b;box-shadow:0 2px 5px #00000014}.theme-vertical-preview{display:flex;gap:2px;flex-shrink:0}.theme-vertical-swatch{width:24px;height:24px;border-radius:4px;border:1px solid #e2e8f0}.theme-vertical-info{flex:1;min-width:0}.theme-vertical-name{display:block;font-size:.8rem;font-weight:600;color:#1e2937;text-transform:uppercase;letter-spacing:.3px}.theme-vertical-description{display:block;font-size:.65rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-vertical-check{flex-shrink:0;color:#0f172a;font-size:1.1rem;font-weight:700}.style-subsection{margin-bottom:20px}.style-subsection:last-child{margin-bottom:0}.style-subsection-title{margin:0 0 12px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1e3a4f}.distance-control{display:flex;flex-direction:column;gap:8px}.distance-control>span:first-child{font-size:.75rem;color:#1e2937;font-weight:500}.distance-slider-group{display:flex;align-items:center;gap:12px}.distance-label{font-size:.65rem;font-family:Spline Sans Mono,monospace;color:#64748b;white-space:nowrap}.distance-slider{flex:1;height:4px;-webkit-appearance:none;background:#e2e8f0;border-radius:9999px;outline:none}.distance-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.distance-slider::-webkit-slider-thumb:hover{background:#111827;transform:scale(1.08)}.distance-slider::-moz-range-thumb{width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003}.distance-value{font-family:Spline Sans Mono,monospace;font-size:.7rem;color:#1e2937;font-weight:500;min-width:36px;text-align:right}.layers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.layer-toggle{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#d9e7f2;cursor:pointer}.layer-toggle input{width:16px;height:16px;cursor:pointer}.layout-categories{display:flex;flex-direction:column;gap:20px}.layout-category-title{margin:0 0 12px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1e3a4f}.layout-grid{display:grid;gap:12px}.layout-grid--print,.layout-grid--social_media,.layout-grid--wallpaper,.layout-grid--web{grid-template-columns:repeat(2,1fr)}.style-group{margin-bottom:18px}.style-group-label{display:block;margin-bottom:8px;font-size:.8rem;font-weight:600;color:#1e3a4f}.alignment-buttons{display:flex;gap:6px;background:#f8f9fa;padding:5px;border-radius:12px;width:fit-content;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d}.alignment-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:none;border-radius:8px;color:#374151;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.alignment-btn:hover{background:#f1f3f5;color:#111827}.alignment-btn.is-active{background:#111827;color:#fff;box-shadow:0 1px 3px #0000001a}.alignment-btn.is-active:hover{background:#1f2937}.alignment-icon{font-size:.9rem}.alignment-label{font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase}.size-buttons{display:flex;gap:10px}.size-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease;flex:1;box-shadow:0 1px 3px #0000000d}.size-btn:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 5px #00000014}.size-btn.is-active{background:#f1f5f9;border-color:#64748b;box-shadow:0 2px 6px #0000001a}.size-preview{font-weight:700;color:#1e2937;font-size:1.1rem}.size-label{font-family:Spline Sans Mono,monospace;font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.opacity-slider-container{display:flex;align-items:center;gap:12px;padding:8px 0}.opacity-icon{font-size:1rem;color:#64748b;opacity:.7}.opacity-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,#37abcb4d,#37abcbe6);border-radius:3px;outline:none}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.opacity-slider::-webkit-slider-thumb:hover{background:#111827;transform:scale(1.05)}.opacity-value{float:right;font-family:Spline Sans Mono,monospace;font-size:.7rem}.font-selector-label{display:block;margin:12px 0}.font-selector-title{display:block;margin-bottom:6px;font-size:.8rem;font-weight:600;color:#1e3a4f}.export-section-content{display:flex;justify-content:center;margin-top:8px}.left-panel-scroll,.right-panel-scroll{padding:20px 16px;display:flex;flex-direction:column;gap:24px}.panel-section{border-bottom:1px solid rgba(146,176,200,.1)}.panel-section:last-child{border-bottom:none;padding-bottom:0}.panel-section-title{margin:0 0 16px;font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#111827}.export-container{display:flex;justify-content:center;margin-top:8px}.export-container .desktop-export-fab{position:static;width:100%;display:flex;flex-direction:column;align-items:stretch;gap:10px;background:transparent;box-shadow:none;padding:0}.export-container .desktop-export-btn{width:100%;min-width:auto;padding:12px 16px;font-size:.85rem;white-space:nowrap}.export-container .desktop-export-flyout{display:flex;flex-direction:column;gap:8px;max-height:none;opacity:1;pointer-events:auto;transform:none;position:static;overflow:visible}.export-container .desktop-export-fab:hover .desktop-export-flyout{max-height:none}.export-container .desktop-export-btn--primary{display:none}.export-buttons-panel{display:flex;flex-direction:column;gap:10px;width:100%}.export-panel-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:12px;font-family:Spline Sans Mono,monospace;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease;border:1px solid transparent;width:100%}.export-panel-btn:disabled{opacity:.6;cursor:not-allowed}.export-panel-btn:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.05)}.export-panel-btn-icon{width:18px;height:18px}.export-panel-btn-icon.is-spinning{animation:export-spin .9s linear infinite}.export-panel-btn--png{background:#e8f2fbf5;border-color:#b4d2eb8c;color:#0d1f2e}.export-panel-btn--png:not(:disabled):hover{background:#dcecfa;border-color:#8cb9dccc;color:#091826}.export-panel-btn--pdf{background:#301608eb;border-color:#ff8e5e5c;color:#ffc6aa}.export-panel-btn--pdf:not(:disabled):hover{background:#411e0af5;border-color:#ff8e5ea3;color:#ffd5be}.export-panel-btn--svg{background:linear-gradient(135deg,#2a7e4ff5,#1d6740f5);border-color:#78dda18f;color:#effff5}.export-panel-btn--svg:not(:disabled):hover{background:linear-gradient(135deg,#328d59fa,#227549fa);border-color:#93ebb7e0;color:#f0fff6}.export-buttons-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.export-row-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:10px;font-family:Spline Sans Mono,monospace;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:1px solid transparent;width:100%;white-space:nowrap}.export-row-btn:disabled{opacity:.6;cursor:not-allowed}.export-row-btn:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.05)}.export-row-btn-icon{width:16px;height:16px}.export-row-btn-icon.is-spinning{animation:export-spin .9s linear infinite}@keyframes export-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-row-btn--png{background:#e8f2fbf5;border-color:#b4d2eb8c;color:#0d1f2e}.export-row-btn--png:not(:disabled):hover{background:#dcecfa;border-color:#8cb9dccc;color:#091826}.export-row-btn--pdf{background:#301608eb;border-color:#ff8e5e5c;color:#ffc6aa}.export-row-btn--pdf:not(:disabled):hover{background:#411e0af5;border-color:#ff8e5ea3;color:#ffd5be}.export-row-btn--svg{background:linear-gradient(135deg,#2a7e4ff5,#1d6740f5);border-color:#78dda18f;color:#effff5}.export-row-btn--svg:not(:disabled):hover{background:linear-gradient(135deg,#328d59fa,#227549fa);border-color:#93ebb7e0;color:#f0fff6}@media (max-width: 500px){.export-buttons-row{grid-template-columns:1fr;gap:8px}.export-row-btn{padding:12px}}.location-banner{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:200;width:min(560px,calc(100% - 32px));background:#fffffffa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(26,126,181,.25);border-radius:16px;box-shadow:0 8px 32px #0006;animation:banner-slide-in .3s cubic-bezier(.32,.72,0,1)}@keyframes banner-slide-in{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.location-banner-content{padding:16px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.location-banner-icon{font-size:1.8rem;flex-shrink:0}.location-banner-text{flex:1;min-width:160px}.location-banner-text strong{display:block;font-family:Spline Sans Mono,monospace;font-size:.85rem;color:#0f2233;margin-bottom:4px}.location-banner-text span{font-size:.75rem;color:#4a6d82;line-height:1.3}.location-banner-search{position:relative;min-width:220px;flex:2}.location-banner-input-wrapper{position:relative;display:flex;align-items:center}.location-banner-search-icon{position:absolute;left:12px;width:16px;height:16px;color:#88b7d5;pointer-events:none}.location-banner-input{width:100%;padding:10px 32px 10px 38px;background:#142634e6;border:1px solid rgba(151,183,207,.3);border-radius:10px;color:#e8f4ff;font-family:Spline Sans Mono,monospace;font-size:.85rem;outline:none}.location-banner-input:focus{border-color:#111827;box-shadow:0 0 0 2px #4b95ba33}.location-banner-clear{position:absolute;right:10px;width:20px;height:20px;background:#1e3547e6;border:none;border-radius:50%;color:#d2e3ef;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.location-banner-clear:hover{background:#2f4f66f2}.location-banner-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#091018fa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(146,176,200,.2);border-radius:10px;max-height:200px;overflow-y:auto;z-index:201;list-style:none;padding:6px;margin:0}.location-banner-suggestion{width:100%;padding:10px 12px;text-align:left;background:transparent;border:none;border-radius:8px;color:#dfebf6;font-size:.8rem;cursor:pointer}.location-banner-suggestion:hover{background:#5eaed426}.location-banner-suggestion-status{padding:10px 12px;font-size:.75rem;color:#8fb0c6}.location-banner-actions{display:flex;gap:8px;flex-shrink:0}.location-banner-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.location-banner-btn--geo{background:#e8f3fa;border-color:#1a64a04d;color:#1a3d56}.location-banner-btn--geo:hover:not(:disabled){background:#2f4f66f2;border-color:#70b8de80;transform:translateY(-1px)}.location-banner-btn--geo:disabled{opacity:.6;cursor:not-allowed}.location-banner-btn--geo svg{width:14px;height:14px}.location-banner-btn--dismiss{background:transparent;border-color:#1a64a033;color:#4a7a96}.location-banner-btn--dismiss:hover{background:#1a7eb514;border-color:#5eaed466;color:#0f3d5a;transform:translateY(-1px)}.location-banner-btn--dismiss svg{width:12px;height:12px}@media (max-width: 768px){.location-banner{top:66px;width:calc(100% - 16px)}.location-banner-content{flex-direction:column;align-items:stretch;gap:12px}.location-banner-text{text-align:center}.location-banner-actions{justify-content:center}}.format-group{margin-bottom:16px}.format-label{display:block;margin-bottom:8px;font-size:.8rem;font-weight:600;color:#1e2937;letter-spacing:.3px}.orientation-buttons{display:flex;gap:10px}.orientation-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;color:#475569;font-family:Spline Sans Mono,monospace;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000000a}.orientation-btn:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 5px #0000000f}.orientation-btn.is-active{background:#111827;border-color:#111827;color:#fff;box-shadow:0 2px 6px #0000001f}.orientation-icon{font-size:1.1rem;line-height:1}.custom-size-fields{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.format-hint{margin:12px 0 0;font-size:.7rem;color:#64748b;font-family:Spline Sans Mono,monospace;font-weight:500}.poster-viewport{position:relative;min-height:850px;border-radius:14px;border:1px solid rgba(20,80,140,.2);background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%),radial-gradient(circle at 82% 16%,rgba(77,161,201,.28),transparent 32%),linear-gradient(145deg,#f7f5f4,#dce8f2);display:grid;place-items:center;overflow:hidden}.poster-viewport:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(20,80,140,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,140,.08) 1px,transparent 1px);background-size:26px 26px}.poster-frame{position:relative;z-index:1;aspect-ratio:var(--poster-aspect, 2 / 3);width:min(100%,calc(82vh * var(--poster-aspect, .6666667)));max-width:100%;max-height:82vh;overflow:hidden;border-radius:4px;border:1px solid rgba(20,80,140,.2)}.map-container{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden}.map-container .maplibregl-control-container{display:none}.poster-fade{position:absolute;left:0;right:0;height:25%;pointer-events:none;z-index:2}.poster-fade--top{top:0}.poster-fade--bottom{bottom:0}.poster-text-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;container-type:size}.poster-marker-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.poster-marker-overlay.is-edit-mode{pointer-events:auto;touch-action:none;overscroll-behavior:contain}.poster-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.poster-marker.is-draggable{pointer-events:auto;cursor:grab;touch-action:none}.poster-marker.is-draggable.is-dragging{cursor:grabbing}.poster-marker.is-selected{filter:none}.poster-marker.is-selected .marker-visual{border:2px solid var(--marker-highlight-color, rgba(26,101,180,.85));border-radius:999px;box-shadow:0 0 0 1px #071018ad}.poster-city{position:absolute;left:0;right:0;margin:0;font-weight:700;text-transform:uppercase;line-height:1.1;transform:translateY(-50%);white-space:pre-wrap}.poster-divider{position:absolute;left:40%;right:40%;border:0;border-top:2px solid currentcolor;height:0;margin:0;transform:translateY(-50%)}.poster-country{position:absolute;left:0;right:0;margin:0;font-weight:300;font-size:2.6cqh;text-transform:uppercase;line-height:1.2;transform:translateY(-50%);letter-spacing:.15em;opacity:.85}.poster-coords{position:absolute;left:0;right:0;margin:0;font-family:Spline Sans Mono,monospace;font-weight:400;font-size:1.6cqh;opacity:.65;transform:translateY(-50%);letter-spacing:.08em}.poster-attribution{position:absolute;font-family:Spline Sans Mono,monospace;font-weight:300;font-size:.85cqh;text-align:right;opacity:.55}.poster-credits{position:absolute;font-family:Spline Sans Mono,monospace;font-weight:300;font-size:.85cqh;text-align:left;opacity:.55}@media (max-width: 980px){.poster-viewport{min-height:400px}.poster-frame{width:min(100%,calc(68vh * var(--poster-aspect, .6666667)));max-height:68vh}}.map-control-hint{display:flex;align-items:center;gap:5px;margin:0;padding:4px 8px;border-radius:7px;background:#14508c14;font-family:Spline Sans Mono,monospace;font-size:.7rem;color:#14508cb3;text-align:center;white-space:pre-line}.map-control-hint-icon{flex-shrink:0;font-size:.8em}.app-shell--three-column .preview-panel .poster-viewport{min-height:unset!important;border:none!important;border-radius:0!important;background:#f7f5f4!important;margin:0!important;padding:0!important}.app-shell--three-column .preview-panel .poster-viewport:before{display:none!important}.mobile-nav-wrapper,.mobile-nav,.mobile-marker-edit-done,.mobile-marker-size-bar,.mobile-persistent-footer{display:none}@media (max-width: 768px),(hover: none) and (pointer: coarse){html,body{overscroll-behavior-x:none;background-color:#f0f4f8!important}.mobile-nav-wrapper{display:flex;align-items:center;position:fixed;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:16px;right:16px;z-index:100;gap:8px}html[data-display-mode=standalone] .mobile-nav-wrapper{bottom:calc(4px + env(safe-area-inset-bottom,0px))}.mobile-nav{display:flex;flex:1;min-width:0;height:60px;border-radius:26px;background:#fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid #e5e7eb;box-shadow:0 8px 32px #0000008c,0 2px 8px #00000059,inset 0 1px #ffffff0d;overflow:hidden;position:relative}.mobile-nav-scroll-container{flex:1;min-width:0;height:100%;position:relative;overflow:hidden}.mobile-nav-tabs{display:flex;height:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.mobile-nav-tabs::-webkit-scrollbar{display:none}.mobile-nav-fade{position:absolute;top:0;right:0;bottom:0;width:30px;pointer-events:none;background:linear-gradient(to right,transparent,#ffffff 70%,#ffffff 100%);border-radius:0 20px 20px 0}.mobile-nav-fade:after{content:"";position:absolute;top:50%;right:6px;width:6px;height:6px;border-top:1.5px solid rgba(180,205,225,.35);border-right:1.5px solid rgba(180,205,225,.35);transform:translateY(-50%) rotate(45deg)}.mobile-nav-tab{flex-shrink:0;width:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;margin:0;padding:6px 0;border:none;border-radius:20px;background:transparent;color:#64748b;font-size:.58rem;font-weight:600;font-family:Spline Sans Mono,monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent;scroll-snap-align:start}.mobile-nav-tab:not(:disabled):hover{transform:none;filter:none}.mobile-nav-tab.is-active{background:#37abcb29;color:#1565a0}.mobile-nav-icon{width:19px;height:19px}.mobile-nav-label{line-height:1}.mobile-nav-settings{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:20px;background:#fff;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #0000008c,0 2px 8px #00000059,inset 0 1px #ffffff0d;color:#64748b;cursor:default;-webkit-tap-highlight-color:transparent}.mobile-nav-settings-icon{width:20px;height:20px}.mobile-marker-edit-done{position:fixed;left:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:101;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 12px;border:1px solid rgba(112,184,222,.48);border-radius:12px;background:#0a141ff5;color:#d8e8f4;box-shadow:0 8px 20px #00000061,0 2px 8px #0000003d;font-family:Spline Sans Mono,monospace;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase}.mobile-marker-edit-done svg{width:14px;height:14px}html[data-display-mode=standalone] .mobile-marker-edit-done{bottom:calc(74px + env(safe-area-inset-bottom,0px))}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;justify-content:flex-end}.mobile-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#02060a38;backdrop-filter:none;-webkit-backdrop-filter:none;touch-action:none;animation:backdrop-fadein .2s ease}@keyframes backdrop-fadein{0%{opacity:0}to{opacity:1}}.mobile-drawer-sheet{position:relative;z-index:1;background:#0b141efa;border-top:1px solid rgba(146,176,200,.16);border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);height:min(38vh,360px);max-height:84vh;display:flex;flex-direction:column;animation:sheet-slidein .28s cubic-bezier(.32,.72,0,1);transition:transform .28s cubic-bezier(.32,.72,0,1),height .24s cubic-bezier(.32,.72,0,1)}.mobile-drawer-sheet.is-expanded{height:calc(100vh - 64px)}@keyframes sheet-slidein{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-drawer-handle{flex-shrink:0;width:100%;padding:14px 0 10px;display:flex;justify-content:center;align-items:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.mobile-drawer-handle:after{content:"";display:block;width:44px;height:5px;background:#b4cde159;border-radius:3px}.mobile-drawer-handle:active{cursor:grabbing}.mobile-drawer-handle:active:after{background:#7dd8f080}.mobile-drawer-content{overflow-y:auto;overscroll-behavior:contain;padding:8px 16px calc(24px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.mobile-drawer-content .info-panel{display:block}.mobile-drawer-content .info-panel-group{border:none;border-radius:0;background:transparent;box-shadow:none;padding:0}.mobile-drawer-content .settings-panel{margin:0;padding:0;border:none;border-radius:0;background:#0b141efa;box-shadow:none}.mobile-drawer-content .accordion-item,.mobile-drawer-content .accordion-body,.mobile-drawer-content .map-dimension-fields{background:#0b141efa}.mobile-drawer-content .panel-block h2,.accordion-header{display:none}.accordion-body{grid-template-rows:1fr;opacity:1;visibility:visible}.accordion-body-inner{padding:0}.accordion-item{border-bottom:none}.app-shell{padding:0;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));background:#f0f4f8}html[data-display-mode=standalone] .app-shell{padding-top:env(safe-area-inset-top,0px)}.general-header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;z-index:100;min-height:62px;position:sticky;top:0;box-shadow:0 1px 4px #0000000d}.header-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.header-title{font-family:Bebas Neue,sans-serif;font-size:1.45rem;font-weight:700;letter-spacing:.03em;color:#1e2937}.header-tagline{font-family:Spline Sans Mono,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:#64748b}.general-header-actions{display:flex;align-items:center;gap:10px}.header-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background:transparent;color:#475569;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.header-btn-label{display:none}.app-shell--three-column{display:flex;flex-direction:column}.left-panel{order:2}.preview-panel{order:1}.right-panel{order:3}.preview-panel{border:none;border-radius:0;background:transparent;box-shadow:none;padding:0}.poster-viewport{min-height:calc(100vh - 190px);border:none;border-radius:0;margin:0;padding:14px 0 10px}.poster-viewport:before{display:none}.poster-frame{width:calc(100% - 24px);max-height:150vh;z-index:2;overflow:visible;border-radius:4px;border:1px solid rgba(20,80,140,.2);margin-bottom:56px}.map-controls{position:relative;left:50%;transform:translate(-50%);width:auto;max-width:calc(100% - 24px);margin:8px auto;z-index:10;padding:8px 16px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;background:#fffffff7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:40px;border:1px solid rgba(146,176,200,.25);box-shadow:0 4px 12px #00000026}.map-control-group{display:inline-flex;gap:8px;align-items:center}.map-control-slider-row{display:inline-flex;align-items:center;gap:8px}.map-control-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#1e2937;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.map-control-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.map-control-btn:disabled{opacity:.5;cursor:not-allowed}.map-control-btn--primary{background:#f1f5f9;border-color:#64748b;color:#1e2937}.map-control-slider{width:100px;height:4px;-webkit-appearance:none;background:#e2e8f0;border-radius:9999px;outline:none}.map-control-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 5px #00000026}@media (max-width: 480px){.map-control-btn span{display:none}.map-control-btn{padding:6px 10px}.map-control-slider{width:80px}}@media (max-width: 600px){.map-control-slider{width:70px}}.mobile-section{animation:mobile-section-fadein .18s ease}@keyframes mobile-section-fadein{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.export-buttons-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.export-row-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:10px;font-family:Spline Sans Mono,monospace;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:1px solid transparent;width:100%}.export-row-btn:disabled{opacity:.6;cursor:not-allowed}.export-row-btn:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.05)}.export-row-btn-icon{width:16px;height:16px}.export-row-btn-icon.is-spinning{animation:export-spin .9s linear infinite}@keyframes export-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-row-btn--png{background:var(--ink);border-color:#96c8eb66;color:#e8f4fc}.export-row-btn--png:not(:disabled):hover{background:#128ddb;border-color:#8cb9dccc;color:#f0faff}.export-row-btn--pdf{background:var(--ink);border-color:#ff8e5e80;color:#ffdece}.export-row-btn--pdf:not(:disabled):hover{background:#e75a1c;border-color:#ff8e5ea3;color:#ffd5be}.export-row-btn--svg{background:var(--ink);border-color:#4abe7899;color:#f0fdf4}.export-row-btn--svg:not(:disabled):hover{background:linear-gradient(135deg,#328d59fa,#227549fa);border-color:#93ebb7e0;color:#f0fff6}.style-subsection{margin-bottom:20px}.style-subsection:last-child{margin-bottom:0}.style-subsection-title{margin:0 0 12px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1e3a4f}.distance-control{display:flex;flex-direction:column;gap:8px}.distance-control>span:first-child{font-size:.75rem;color:#1e2937;font-weight:500}.distance-slider-group{display:flex;align-items:center;gap:12px}.distance-label{font-size:.65rem;font-family:Spline Sans Mono,monospace;color:#64748b;white-space:nowrap}.distance-slider{flex:1;height:4px;-webkit-appearance:none;background:#e2e8f0;border-radius:9999px;outline:none}.distance-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.distance-slider::-webkit-slider-thumb:hover{background:#111827;transform:scale(1.08)}.distance-slider::-moz-range-thumb{width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003}.distance-value{font-family:Spline Sans Mono,monospace;font-size:.7rem;color:#1e2937;font-weight:500;min-width:36px;text-align:right}.layers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.layer-toggle{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#1e2937;cursor:pointer;padding:6px 8px;border-radius:6px;transition:all .2s ease}.layer-toggle:hover{background:#f8fafc}.layer-toggle input{width:16px;height:16px;cursor:pointer;accent-color:#1e2937}.layer-toggle input[type=checkbox]{accent-color:#334155}.layer-toggle:has(input:checked){background:#f1f5f9;font-weight:500}}.desktop-header,.desktop-nav-bar,.desktop-location-row-wrap,.desktop-settings-slide,.desktop-export-fab,.desktop-install-badge,.desktop-settings-deco,.desktop-left-panel{display:none}@media (min-width: 769px) and (hover: hover) and (pointer: fine){html,body,#root{height:100%;margin:0;padding:0}.app-shell--three-column{display:grid;grid-template-columns:320px 1fr 320px;grid-template-rows:62px 1fr auto;grid-template-areas:"header header header" "left   center right" "footer footer footer";height:100vh;width:100vw;overflow:hidden;background:#e8eef4;position:fixed;top:0;left:0;right:0;bottom:0}.app-shell--three-column .general-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;margin:0;padding:0 24px;background:#f7f5f4;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000f;z-index:50;gap:20px;height:62px;width:100%}.app-shell--three-column .left-panel{grid-area:left;overflow-y:auto;border-right:1px solid rgba(146,176,200,.15);background:#f7f5f4;height:100%}.app-shell--three-column .preview-panel{grid-area:center;padding:0;overflow:hidden;position:relative;height:100%;width:100%}.app-shell--three-column .right-panel{grid-area:right;overflow-y:auto;border-left:1px solid rgba(146,176,200,.15);background:#f7f5f4;height:100%}.app-shell--three-column .app-footer{grid-area:footer;margin-top:0;padding:8px 16px;background:#fffffff7;border-top:1px solid rgba(146,176,200,.1);display:flex;align-items:center;justify-content:space-between}.header-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.header-logo{height:32px;width:auto}.header-brand-text{display:flex;flex-direction:column;line-height:1.2}.header-title{margin:0;font-family:Bebas Neue,sans-serif;font-size:1.4rem;line-height:1;letter-spacing:.03em;color:#1e2937;font-weight:700}.header-tagline{margin:0;font-family:Spline Sans Mono,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:#64748b}.header-social{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.header-social-link{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(146,176,200,.2);border-radius:8px;background:#0a141fc7;color:#c3dcf0db;text-decoration:none;font-size:.75rem;font-weight:500;transition:all .2s ease}.header-social-link:hover{background:#5eaed41a;border-color:#5eaed480;color:#c8e8f8;transform:translateY(-1px)}.header-social-link--github{background:#142634e6}.header-social-link--kofi{background:#301608d9}.header-social-icon{width:14px;height:14px}.header-social-label{font-family:Spline Sans Mono,monospace;font-size:.7rem}.header-stars-count{display:inline-flex;align-items:center;gap:3px;font-family:Spline Sans Mono,monospace;font-size:.65rem;font-weight:600;color:#ffd985}.header-star-icon{width:10px;height:10px}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #e5e7eb;border-radius:8px;background:transparent;color:#475569;font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:all .2s ease}.header-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#1e2937;transform:translateY(-1px)}.header-btn-icon{width:14px;height:14px}.header-btn-label{display:inline}.app-shell--three-column .preview-panel{position:relative;overflow:hidden}.app-shell--three-column .preview-panel .poster-viewport{position:absolute;top:0;right:0;bottom:0;left:0;min-height:unset;height:100%;width:100%;display:flex;align-items:center;justify-content:center;background:#f7f5f4}.app-shell--three-column .preview-panel .poster-frame{position:relative;margin:0 auto;max-height:85vh;width:min(calc(100% - 80px),calc(85vh * var(--poster-aspect, .6666667)));overflow:visible;z-index:10}.app-shell--three-column .preview-panel .map-container{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden}.map-controls{position:fixed;top:65px;left:50%;transform:translate(-50%);z-index:100;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:8px 16px;display:flex;flex-direction:row;align-items:center;gap:12px;border:1px solid rgba(146,176,200,.25);box-shadow:0 4px 12px #0006}.map-control-group{display:flex;gap:8px;align-items:center}.map-control-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#1e2937;font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.map-control-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 5px #00000014;transform:translateY(-1px)}.map-control-btn:disabled{opacity:.5;cursor:not-allowed}.map-control-btn--primary{background:#f1f5f9;border-color:#64748b;color:#1e2937}.map-control-btn--primary:hover:not(:disabled){background:#e2e8f0;border-color:#475569}.map-control-slider{width:160px;height:4px;-webkit-appearance:none;background:#e2e8f0;border-radius:9999px;outline:none}.map-control-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 5px #00000026}.map-control-slider::-moz-range-thumb{width:14px;height:14px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 5px #00000026}.map-control-slider-row{display:flex;align-items:center;gap:8px}.attribution-modal{width:min(460px,100%);max-height:90vh;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #0000001f;border:1px solid #e5e7eb;background:#fff}.attribution-modal-body{padding:28px 24px 20px;display:grid;gap:16px;background:#fff;overflow-y:auto;max-height:90vh}.attribution-list{display:grid;gap:10px}.attribution-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid #e5e7eb;background:#f8fafc}.attribution-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.attribution-icon--blue{background:#e0f0ff;color:#1a6fa8}.attribution-icon--green{background:#e6f4ea;color:#2d7a3a}.attribution-icon--purple{background:#f0eaff;color:#6b3fa0}.attribution-icon--amber{background:#fff4e0;color:#a06000}.attribution-item-content{display:grid;gap:3px;min-width:0}.attribution-item-title{margin:0;font-size:.85rem;font-weight:700;color:#1e2937}.attribution-item-desc{margin:0;font-size:.78rem;color:#64748b;line-height:1.5}.attribution-item-link{font-size:.75rem;color:#1a6fa8;text-decoration:none}.attribution-item-link:hover{text-decoration:underline}.attribution-nav-btn{opacity:.85}.attribution-nav-btn:hover{opacity:1}.left-panel-scroll,.right-panel-scroll{padding:20px 16px;display:flex;flex-direction:column;gap:24px;height:100%;overflow-y:auto}.panel-section{border-bottom:1px solid rgba(146,176,200,.1)}.panel-section:last-child{border-bottom:none;padding-bottom:0}.panel-section-title{margin:0 0 16px;font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#111827}.theme-vertical-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;padding-right:4px}.theme-vertical-list::-webkit-scrollbar{width:6px}.theme-vertical-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.theme-vertical-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.theme-vertical-item{display:flex;align-items:center;gap:12px;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%;box-shadow:0 1px 2px #00000008}.theme-vertical-item:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 4px #0000000f}.theme-vertical-item.is-selected{background:#f1f5f9;border-color:#64748b;box-shadow:0 2px 5px #00000014}.theme-vertical-preview{display:flex;gap:2px;flex-shrink:0}.theme-vertical-swatch{width:24px;height:24px;border-radius:4px;border:1px solid #e2e8f0}.theme-vertical-info{flex:1;min-width:0}.theme-vertical-name{display:block;font-size:.8rem;font-weight:600;color:#1e2937;text-transform:uppercase;letter-spacing:.3px}.theme-vertical-description{display:block;font-size:.65rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-vertical-check{flex-shrink:0;color:#0f172a;font-size:1.1rem;font-weight:700}.style-subsection{margin-bottom:20px}.style-subsection:last-child{margin-bottom:0}.style-subsection-title{margin:0 0 12px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1e3a4f}.distance-control{display:flex;flex-direction:column;gap:8px}.distance-control>span:first-child{font-size:.75rem;color:#1e2937;font-weight:500}.distance-slider-group{display:flex;align-items:center;gap:12px}.distance-label{font-size:.65rem;font-family:Spline Sans Mono,monospace;color:#64748b;white-space:nowrap}.distance-slider{flex:1;height:4px;-webkit-appearance:none;background:#e2e8f0;border-radius:9999px;outline:none}.distance-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.distance-slider::-webkit-slider-thumb:hover{background:#111827;transform:scale(1.08)}.distance-slider::-moz-range-thumb{width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003}.distance-value{font-family:Spline Sans Mono,monospace;font-size:.7rem;color:#1e2937;font-weight:500;min-width:36px;text-align:right}.layers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.layer-toggle{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#1e2937;cursor:pointer;padding:6px 8px;border-radius:6px;transition:all .2s ease}.layer-toggle:hover{background:#f8fafc}.layer-toggle input{width:16px;height:16px;cursor:pointer;accent-color:#1e2937}.layer-toggle input[type=checkbox]{accent-color:#111827}.layer-toggle:has(input:checked){background:#f1f5f9;font-weight:500}.layout-categories{display:flex;flex-direction:column;gap:20px}.layout-category-title{margin:0 0 12px;font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1e3a4f}.layout-grid{display:grid;gap:12px}.layout-grid--print,.layout-grid--social_media,.layout-grid--wallpaper,.layout-grid--web{grid-template-columns:repeat(2,1fr)}.style-group{margin-bottom:18px}.style-group-label{display:block;margin-bottom:8px;font-size:.8rem;font-weight:600;color:#1e3a4f}.alignment-buttons{display:flex;gap:6px;background:#f8f9fa;padding:5px;border-radius:12px;width:fit-content;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d}.alignment-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:none;border-radius:8px;color:#374151;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.alignment-btn:hover{background:#f1f3f5;color:#111827}.alignment-btn.is-active{background:#111827;color:#fff;box-shadow:0 1px 3px #0000001a}.alignment-btn.is-active:hover{background:#1f2937}.alignment-icon{font-size:.9rem}.alignment-label{font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase}.size-buttons{display:flex;gap:10px}.size-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease;flex:1;box-shadow:0 1px 3px #0000000d}.size-btn:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 5px #00000014}.size-btn.is-active{background:#f1f5f9;border-color:#64748b;box-shadow:0 2px 6px #0000001a}.size-preview{font-weight:700;color:#1e2937;font-size:1.1rem}.size-label{font-family:Spline Sans Mono,monospace;font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.opacity-slider-container{display:flex;align-items:center;gap:12px;padding:8px 0}.opacity-icon{font-size:1rem;color:#64748b;opacity:.85}.opacity-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e2e8f0;border-radius:3px;outline:none;background:linear-gradient(90deg,#cbd5e1,#94a3b8)}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003;transition:all .2s ease}.opacity-slider::-webkit-slider-thumb:hover{background:#111827;transform:scale(1.05)}.opacity-slider::-moz-range-thumb{width:16px;height:16px;background:#1e2937;border:2px solid #ffffff;border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0003}.opacity-value{float:right;font-family:Spline Sans Mono,monospace;font-size:.7rem;color:#1e2937;font-weight:500;min-width:32px;text-align:right}.font-selector-label{display:block;margin:12px 0}.font-selector-title{display:block;margin-bottom:6px;font-size:.8rem;font-weight:600;color:#1e3a4f}.export-buttons-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.export-row-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:10px;font-family:Spline Sans Mono,monospace;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border:1px solid transparent;width:100%}.export-row-btn:disabled{opacity:.6;cursor:not-allowed}.export-row-btn:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.05)}.export-row-btn-icon{width:16px;height:16px}.export-row-btn-icon.is-spinning{animation:export-spin .9s linear infinite}@keyframes export-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-row-btn--png{background:var(--ink);border-color:#96c8eb66;color:#e8f4fc}.export-row-btn--png:not(:disabled):hover{background:#128ddb;border-color:#8cb9dccc;color:#f0faff}.export-row-btn--pdf{background:var(--ink);border-color:#ff8e5e80;color:#ffdece}.export-row-btn--pdf:not(:disabled):hover{background:#e75a1c;border-color:#ff8e5ea3;color:#ffd5be}.export-row-btn--svg{background:var(--ink);border-color:#4abe7899;color:#f0fdf4}.export-row-btn--svg:not(:disabled):hover{background:linear-gradient(135deg,#328d59fa,#227549fa);border-color:#93ebb7e0;color:#f0fff6}.poster-ghost-layer,.settings-info-card{display:none!important}@media (max-width: 1200px){.app-shell--three-column{grid-template-columns:280px 1fr 280px}}@media (max-width: 1000px){.app-shell--three-column{grid-template-columns:260px 1fr 260px}}@media (max-width: 900px){.header-social,.header-tagline{display:none}}}.desktop-layout-label{display:none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #1a2733;--ink-mid: #4a6278;--ink-light: #8aa5bb;--panel: #ffffff;--bg: #f0f4f8;--bg-warm: #f7f5f4;--line: rgba(30, 60, 90, .12);--line-strong: rgba(166, 199, 223, .45);--blue: #3eaff7;--blue-dark: #128ddb;--green: #59d388;--orange: #db845e;--accent: #4da1c9}html{scroll-behavior:smooth}body{font-family:Instrument Sans,sans-serif;background:var(--bg);color:var(--ink);overflow-x:hidden}.landing-page nav{position:sticky;top:0;z-index:100;height:62px;background:var(--bg-warm);border-bottom:1px solid var(--line-strong);box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.landing-page .nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.landing-page .nav-logo{width:32px;height:32px;background:var(--ink);display:grid;place-items:center;flex-shrink:0}.landing-page .nav-logo img{width:32px;height:32px}.landing-page .nav-brand-text{display:flex;flex-direction:column;line-height:1.2}.landing-page .nav-title{font-family:Bebas Neue,sans-serif;font-size:1.4rem;letter-spacing:.04em;color:var(--ink);line-height:1}.landing-page .nav-tagline{font-family:Spline Sans Mono,monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light)}.landing-page .nav-links{display:flex;align-items:center;gap:4px;flex:1;justify-content:center}.landing-page .nav-links a{font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);text-decoration:none;padding:6px 14px;border-radius:8px;transition:all .18s ease}.landing-page .nav-links a:hover{background:#14508c12;color:var(--ink)}.landing-page .nav-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.landing-page .btn-ghost{font-family:Spline Sans Mono,monospace;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-mid);background:transparent;border:1px solid var(--line-strong);border-radius:8px;padding:8px 16px;cursor:pointer;transition:all .18s ease;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.landing-page .btn-ghost:hover{background:var(--bg);border-color:var(--ink-light);color:var(--ink);transform:translateY(-1px)}.landing-page .btn-primary{font-family:Spline Sans Mono,monospace;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#e8f4fc;background:var(--ink);border:1px solid rgba(150,200,235,.25);border-radius:8px;padding:9px 18px;cursor:pointer;transition:all .18s ease;text-decoration:none;display:inline-flex;align-items:center;gap:7px}.landing-page .btn-primary:hover{background:#243646;transform:translateY(-1px);box-shadow:0 4px 14px #1a273340}.landing-page .hero{position:relative;min-height:calc(100vh - 62px);display:flex;align-items:center;overflow:hidden;padding:80px 32px 60px}.landing-page .hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%),radial-gradient(circle at 78% 20%,rgba(77,161,201,.22),transparent 40%),radial-gradient(circle at 15% 80%,rgba(89,211,136,.1),transparent 35%),linear-gradient(145deg,#f7f5f4,#dce8f2);z-index:0}.landing-page .hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(20,80,140,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,140,.07) 1px,transparent 1px);background-size:32px 32px;z-index:0}.landing-page .hero-inner{position:relative;z-index:1;max-width:1200px;width:100%;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}.landing-page .hero-left{display:flex;flex-direction:column;gap:28px}.landing-page .hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;background:#3eaff71a;border:1px solid rgba(62,175,247,.3);border-radius:999px;font-family:Spline Sans Mono,monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--blue-dark);width:fit-content}.landing-page .hero-badge-dot{width:6px;height:6px;background:var(--blue);border-radius:50%;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.landing-page .hero-title{font-family:Bebas Neue,sans-serif;font-size:clamp(3.2rem,6vw,5.2rem);line-height:.95;letter-spacing:.02em;color:var(--ink)}.landing-page .hero-title .line-accent{color:var(--accent);display:block}.landing-page .hero-sub{font-size:1.05rem;line-height:1.65;color:var(--ink-mid);max-width:420px}.landing-page .hero-ctas{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.landing-page .btn-hero{font-family:Spline Sans Mono,monospace;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#e8f4fc;background:var(--ink);border:1px solid rgba(150,200,235,.2);border-radius:10px;padding:14px 28px;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 16px #1a273333}.landing-page .btn-hero:hover{background:#243646;transform:translateY(-2px);box-shadow:0 8px 24px #1a273347}.landing-page .btn-hero-arrow{transition:transform .2s ease}.landing-page .btn-hero:hover .btn-hero-arrow{transform:translate(3px)}.landing-page .hero-social-proof{display:flex;align-items:center;gap:16px}.landing-page .hero-stat-chip{display:flex;align-items:center;gap:6px;font-family:Spline Sans Mono,monospace;font-size:.68rem;color:var(--ink-mid)}.landing-page .hero-stat-chip .dot{width:4px;height:4px;border-radius:50%;background:var(--line-strong)}.landing-page .hero-right{position:relative;display:flex;justify-content:center;align-items:center}.landing-page .mockup-wrap{position:relative;width:340px}.landing-page .mockup-shadow{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);width:70%;height:40px;background:radial-gradient(ellipse,rgba(26,39,51,.25),transparent 70%);filter:blur(12px)}.landing-page .mockup-poster{width:240px;aspect-ratio:2/3;margin:0 auto;display:block;border-radius:6px;overflow:hidden;border:1px solid rgba(20,80,140,.2);box-shadow:0 2px 8px #00000014,0 16px 48px #1a27332e,inset 0 1px #fffc;position:relative;z-index:2;background:linear-gradient(145deg,#f7f5f4,#dce8f2)}.landing-page .mockup-poster-inner{width:100%;height:100%;background-image:url(assets/hanover_blueprint.png);background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:14%;position:relative;overflow:hidden}.landing-page .mockup-roads{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.landing-page .mockup-roads:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),radial-gradient(circle at 40% 45%,rgba(255,255,255,.08) 0,transparent 50%);background-size:28px 28px,28px 28px,100% 100%}.landing-page .mockup-roads:after{content:"";position:absolute;top:15%;left:-10%;width:130%;height:3px;background:#ffffff40;transform:rotate(-22deg);box-shadow:0 18px #ffffff26,0 -32px #ffffff1a}.landing-page .mockup-city-label{font-family:Bebas Neue,sans-serif;font-size:2.2rem;letter-spacing:.04em;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.25);line-height:1;text-align:center;position:relative;z-index:2}.landing-page .mockup-divider{width:60%;height:1.5px;background:#fff9;margin:6px auto;position:relative;z-index:2}.landing-page .mockup-country-label{font-family:Spline Sans Mono,monospace;font-size:.55rem;text-transform:uppercase;letter-spacing:.15em;color:#fffc;text-align:center;position:relative;z-index:2}.landing-page .mockup-coords{font-family:Spline Sans Mono,monospace;font-size:.42rem;letter-spacing:.06em;color:#ffffff8c;position:relative;z-index:2;margin-top:4px}.landing-page .mockup-chip{position:absolute;background:var(--panel);border:1px solid var(--line-strong);border-radius:10px;padding:8px 12px;font-family:Spline Sans Mono,monospace;font-size:.65rem;color:var(--ink-mid);box-shadow:0 4px 16px #0000001a;white-space:nowrap;animation:float 4s ease-in-out infinite}.landing-page .mockup-chip--theme{top:8%;right:-20px;animation-delay:0s}.landing-page .mockup-chip--export{bottom:25%;left:-30px;animation-delay:1.4s}.landing-page .mockup-chip--layouts{top:42%;right:-28px;animation-delay:2.6s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.landing-page .chip-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.landing-page .chip-dot--blue{background:var(--blue)}.landing-page .chip-dot--green{background:var(--green)}.landing-page .chip-dot--orange{background:var(--orange)}.landing-page section{padding:100px 32px}.landing-page .section-inner{max-width:1100px;margin:0 auto}.landing-page .section-label{font-family:Spline Sans Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:14px}.landing-page .section-label:before{content:"";display:block;width:20px;height:1.5px;background:var(--accent)}.landing-page .section-title{font-family:Bebas Neue,sans-serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:.03em;color:var(--ink);line-height:1.05;margin-bottom:14px}.landing-page .section-sub{font-size:.95rem;color:var(--ink-mid);line-height:1.7;max-width:520px}.landing-page .features{background:var(--bg-warm);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.landing-page .features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:52px}.landing-page .feature-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:28px 26px;transition:all .22s ease;position:relative;overflow:hidden}.landing-page .feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--accent));opacity:0;transition:opacity .22s ease}.landing-page .feature-card:hover{border-color:#4da1c966;box-shadow:0 8px 28px #14508c1a;transform:translateY(-3px)}.landing-page .feature-card:hover:before{opacity:1}.landing-page .feature-icon{width:44px;height:44px;border-radius:12px;background:var(--bg);border:1px solid var(--line-strong);display:grid;place-items:center;margin-bottom:20px;font-size:1.2rem}.landing-page .feature-count{font-family:Bebas Neue,sans-serif;font-size:3rem;color:var(--ink);line-height:1;letter-spacing:.02em}.landing-page .feature-count span{font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:600;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;vertical-align:middle;margin-left:4px}.landing-page .feature-name{font-size:.92rem;font-weight:700;color:var(--ink);margin:6px 0 8px}.landing-page .feature-desc{font-size:.84rem;color:var(--ink-mid);line-height:1.6}.landing-page .gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:52px}.landing-page .gallery-item{aspect-ratio:2/3;border-radius:10px;overflow:hidden;border:1px solid var(--line-strong);cursor:pointer;transition:all .22s ease;position:relative}.landing-page .gallery-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 16px 40px #1a273333;border-color:#4da1c966}.landing-page .gallery-poster{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:12%;position:relative}.landing-page .gallery-poster--1{background-image:url(assets/hanover_contrast.png);background-size:cover;background-position:center}.landing-page .gallery-poster--2{background-image:url(assets/hanover_noir.png);background-size:cover;background-position:center}.landing-page .gallery-poster--3{background-image:url(assets/hanover_emerald.png);background-size:cover;background-position:center}.landing-page .gallery-poster--4{background-image:url(assets/manchester.png);background-size:cover;background-position:center}.landing-page .gallery-roads{position:absolute;top:0;right:0;bottom:0;left:0}.landing-page .gallery-roads:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.landing-page .gallery-poster--1 .gallery-roads:before{display:none}.landing-page .gallery-text{position:relative;z-index:2;text-align:center}.landing-page .gallery-city{font-family:Bebas Neue,sans-serif;letter-spacing:.04em;line-height:1;font-size:1.6rem}.landing-page .gallery-poster--1 .gallery-city{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.landing-page .gallery-poster--2 .gallery-city{color:#7adba0}.landing-page .gallery-poster--3 .gallery-city{color:#f0c4a8}.landing-page .gallery-poster--4 .gallery-city{color:#2a1f14}.landing-page .gallery-hr{width:55%;height:1px;margin:5px auto}.landing-page .gallery-poster--1 .gallery-hr{background:#ffffff8c}.landing-page .gallery-poster--2 .gallery-hr{background:#7adba066}.landing-page .gallery-poster--3 .gallery-hr{background:#f0c4a866}.landing-page .gallery-poster--4 .gallery-hr{background:#2a1f144d}.landing-page .gallery-country{font-family:Spline Sans Mono,monospace;font-size:.5rem;text-transform:uppercase;letter-spacing:.15em}.landing-page .gallery-poster--1 .gallery-country{color:#ffffffb3}.landing-page .gallery-poster--2 .gallery-country{color:#7adba099}.landing-page .gallery-poster--3 .gallery-country{color:#f0c4a899}.landing-page .gallery-poster--4 .gallery-country{color:#2a1f148c}.landing-page .gallery-item-tag{position:absolute;top:10px;left:10px;background:#0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:6px;padding:3px 8px;font-family:Spline Sans Mono,monospace;font-size:.56rem;color:#fffc;text-transform:uppercase;letter-spacing:.08em}.landing-page .testimonials{background:var(--bg-warm);border-top:1px solid var(--line-strong)}.landing-page .testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}.landing-page .testi-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:16px}.landing-page .testi-stars{display:flex;gap:3px;color:#ffd985;font-size:.85rem}.landing-page .testi-quote{font-size:.9rem;color:var(--ink);line-height:1.65;flex:1}.landing-page .testi-quote:before{content:"“"}.landing-page .testi-quote:after{content:"”"}.landing-page .testi-author{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.landing-page .testi-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:Bebas Neue,sans-serif;font-size:1rem;color:#fff;flex-shrink:0}.landing-page .testi-avatar--a{background:linear-gradient(135deg,#3eaff7,#128ddb)}.landing-page .testi-avatar--b{background:linear-gradient(135deg,#59d388,#2c9a5a)}.landing-page .testi-avatar--c{background:linear-gradient(135deg,#db845e,#b05a30)}.landing-page .testi-name{font-size:.84rem;font-weight:700;color:var(--ink)}.landing-page .testi-handle{font-family:Spline Sans Mono,monospace;font-size:.65rem;color:var(--ink-light)}.landing-page .stats{background:var(--ink);border-top:1px solid rgba(150,200,235,.1)}.landing-page .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#96c8eb1a;border:1px solid rgba(150,200,235,.1);border-radius:16px;overflow:hidden;margin-top:0}.landing-page .stat-cell{background:#ffffff08;padding:44px 36px;text-align:center}.landing-page .stat-value{font-family:Bebas Neue,sans-serif;font-size:3.8rem;color:#fff;line-height:1;letter-spacing:.03em}.landing-page .stat-value em{font-style:normal;color:var(--blue)}.landing-page .stat-label{font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#96c8eb99;margin-top:8px}.landing-page .stats .section-inner{display:flex;flex-direction:column;gap:52px}.landing-page .stats .section-label{color:#4da1c9cc}.landing-page .stats .section-label:before{background:#4da1c9cc}.landing-page .stats .section-title{color:#fff}.landing-page .cta{position:relative;overflow:hidden;background:radial-gradient(circle at 30% 50%,rgba(77,161,201,.18),transparent 55%),radial-gradient(circle at 80% 30%,rgba(89,211,136,.1),transparent 40%),linear-gradient(145deg,#f7f5f4,#dce8f2);border-top:1px solid var(--line-strong)}.landing-page .cta-grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(20,80,140,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,140,.06) 1px,transparent 1px);background-size:32px 32px}.landing-page .cta-inner{position:relative;z-index:1;max-width:700px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:28px}.landing-page .cta .section-label{margin:0 auto}.landing-page .cta .section-label:before{display:none}.landing-page .cta .section-title{margin-bottom:0}.landing-page .cta .section-sub{max-width:440px;text-align:center}.landing-page .cta-btns{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.landing-page .fade-up{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s ease}.landing-page .stagger>*{transition-delay:0s}.landing-page .stagger>*:nth-child(1){transition-delay:.05s}.landing-page .stagger>*:nth-child(2){transition-delay:.15s}.landing-page .stagger>*:nth-child(3){transition-delay:.25s}.landing-page .stagger>*:nth-child(4){transition-delay:.35s}@media (max-width: 900px){.landing-page .hero-inner{grid-template-columns:1fr;gap:48px;text-align:center}.landing-page .hero-left{align-items:center}.landing-page .hero-sub{text-align:center}.landing-page .hero-right{order:-1}.landing-page .mockup-chip--theme,.landing-page .mockup-chip--export,.landing-page .mockup-chip--layouts{display:none}.landing-page .features-grid{grid-template-columns:1fr;gap:16px}.landing-page .gallery-grid{grid-template-columns:repeat(2,1fr)}.landing-page .testimonials-grid,.landing-page .stats-grid{grid-template-columns:1fr}.landing-page .nav-links{display:none}.landing-page .footer-inner{flex-direction:column;text-align:center;gap:16px}.landing-page footer-links{flex-wrap:wrap;justify-content:center}}@media (max-width: 600px){.landing-page nav{padding:0 20px}.landing-page section{padding:72px 20px}.landing-page .hero{padding:60px 20px 50px}.landing-page .gallery-grid{grid-template-columns:repeat(2,1fr);gap:12px}.landing-page .cta-btns{flex-direction:column}}@media (min-width: 0px){.landing-page .nav-links a.is-active{color:var(--ink);font-weight:600}.landing-page .page-header{position:relative;padding:80px 32px 72px;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%),radial-gradient(circle at 70% 30%,rgba(77,161,201,.2),transparent 45%),linear-gradient(145deg,#f7f5f4,#dce8f2);border-bottom:1px solid var(--line-strong);overflow:hidden}.landing-page .page-header-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(20,80,140,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,140,.06) 1px,transparent 1px);background-size:32px 32px}.landing-page .page-header-inner{position:relative;z-index:1;max-width:760px;margin:0 auto}.landing-page .breadcrumb{display:flex;align-items:center;gap:8px;font-family:Spline Sans Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);margin-bottom:20px}.landing-page .breadcrumb a{color:var(--ink-light);text-decoration:none;transition:color .15s}.landing-page .breadcrumb a:hover{color:var(--accent)}.landing-page .breadcrumb-sep{opacity:.4}.landing-page .page-header h1{font-family:Bebas Neue,sans-serif;font-size:clamp(3rem,6vw,5rem);letter-spacing:.03em;line-height:.95;color:var(--ink);margin-bottom:20px}.landing-page .page-header h1 em{font-style:normal;color:var(--accent)}.landing-page .page-header p{font-size:1.05rem;line-height:1.7;color:var(--ink-mid);max-width:580px}.landing-page .page-body{max-width:1100px;margin:0 auto;padding:80px 32px;display:flex;flex-direction:column;gap:80px}.landing-page .section-body{font-size:.95rem;line-height:1.75;color:var(--ink-mid);max-width:640px}.landing-page .section-body+.section-body{margin-top:12px}.landing-page .mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.landing-page .mission-visual{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line-strong);aspect-ratio:4/3;background:radial-gradient(circle at 60% 35%,rgba(77,161,201,.35),transparent 55%),linear-gradient(145deg,#c8dce8,#8faec6 50%,#6a90ae)}.landing-page .mission-visual-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:22px 22px}.landing-page .mission-visual-road{position:absolute;background:#ffffff40}.landing-page .road-1{top:38%;left:0;right:0;height:2px;transform:rotate(-8deg)}.landing-page .road-2{top:0;bottom:0;left:45%;width:2px}.landing-page .road-3{top:65%;left:0;right:0;height:1.5px;transform:rotate(4deg);background:#ffffff26}.landing-page .mission-visual-pin{position:absolute;top:34%;left:42%;width:20px;height:20px;background:var(--ink);border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px #0000004d}.landing-page .mission-visual-label{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-family:Bebas Neue,sans-serif;font-size:1.8rem;color:#fff;letter-spacing:.05em;text-shadow:0 2px 8px rgba(0,0,0,.3);white-space:nowrap}.landing-page .values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.landing-page .value-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:26px 24px;transition:all .22s ease}.landing-page .value-card:hover{border-color:#4da1c966;transform:translateY(-3px);box-shadow:0 8px 28px #14508c1a}.landing-page .value-icon{font-size:1.6rem;margin-bottom:14px;display:block}.landing-page .value-name{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:8px}.landing-page .value-desc{font-size:.84rem;color:var(--ink-mid);line-height:1.6}.landing-page .stack-section{background:var(--bg-warm);border:1px solid var(--line-strong);border-radius:18px;padding:52px}.landing-page .stack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-strong);border-radius:12px;overflow:hidden;margin-top:40px}.landing-page .stack-card{background:var(--panel);padding:32px 28px;display:flex;flex-direction:column;gap:16px;transition:background .18s ease}.landing-page .stack-card:hover{background:var(--bg)}.landing-page .stack-card-logo{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--line-strong)}.landing-page .stack-card-logo svg{width:28px;height:28px}.landing-page .stack-card-logo--osm{background:linear-gradient(135deg,#7dce8e,#3da854)}.landing-page .stack-card-logo--nominatim{background:linear-gradient(135deg,#7ab4e8,#3478c8)}.landing-page .stack-card-logo--maplibre{background:linear-gradient(135deg,#e8a87a,#c86a30)}.landing-page .stack-card-name{font-family:Bebas Neue,sans-serif;font-size:1.4rem;letter-spacing:.04em;color:var(--ink);line-height:1}.landing-page .stack-card-role{font-family:Spline Sans Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-top:-10px}.landing-page .stack-card-desc{font-size:.85rem;color:var(--ink-mid);line-height:1.65;flex:1}.landing-page .stack-card-link{font-family:Spline Sans Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:5px;transition:gap .15s ease}.landing-page .stack-card-link:hover{gap:8px}.landing-page .stack-note{margin-top:24px;padding:16px 20px;background:#3eaff712;border:1px solid rgba(62,175,247,.2);border-radius:10px;font-size:.84rem;color:var(--ink-mid);line-height:1.6}.landing-page .stack-note strong{color:var(--ink)}.landing-page .timeline{position:relative;padding-left:28px;margin-top:40px;display:flex;flex-direction:column;gap:0}.landing-page .timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line-strong)}.landing-page .timeline-item{position:relative;padding:0 0 36px 28px}.landing-page .timeline-item:last-child{padding-bottom:0}.landing-page .timeline-dot{position:absolute;left:-21px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--panel);border:2px solid var(--accent)}.landing-page .timeline-dot.is-now{background:var(--accent)}.landing-page .timeline-date{font-family:Spline Sans Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);margin-bottom:4px}.landing-page .timeline-title{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:4px}.landing-page .timeline-desc{font-size:.85rem;color:var(--ink-mid);line-height:1.6}.landing-page .cta-strip{background:var(--ink);border-radius:18px;padding:52px 48px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;position:relative;overflow:hidden}.landing-page .cta-strip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(150,200,235,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(150,200,235,.05) 1px,transparent 1px);background-size:32px 32px}.landing-page .cta-strip-text{position:relative;z-index:1}.landing-page .cta-strip-title{font-family:Bebas Neue,sans-serif;font-size:2.2rem;letter-spacing:.04em;color:#fff;line-height:1;margin-bottom:8px}.landing-page .cta-strip-sub{font-size:.9rem;color:#96c8ebb3;line-height:1.5}.landing-page .cta-strip-actions{display:flex;align-items:center;gap:12px;position:relative;z-index:1;flex-wrap:wrap}.landing-page .btn-light{font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);background:#fff;border:1px solid rgba(255,255,255,.3);border-radius:10px;padding:12px 22px;cursor:pointer;transition:all .18s ease;text-decoration:none;display:inline-flex;align-items:center;gap:7px}.landing-page .btn-light:hover{background:#f0f8ff;transform:translateY(-2px);box-shadow:0 6px 18px #00000040}.landing-page .btn-ghost-light{font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#96c8ebcc;background:transparent;border:1px solid rgba(150,200,235,.25);border-radius:10px;padding:12px 22px;cursor:pointer;transition:all .18s ease;text-decoration:none;display:inline-flex;align-items:center;gap:7px}.landing-page .btn-ghost-light:hover{background:#96c8eb1a;border-color:#96c8eb80;color:#c8e8f8;transform:translateY(-2px)}}@media (min-width: 0px){.landing-page .page-body--contact{display:grid;grid-template-columns:1fr 380px;gap:60px;align-items:start}.landing-page .channels{display:flex;flex-direction:column;gap:16px;margin-top:40px}.landing-page .channel-card{display:flex;align-items:flex-start;gap:20px;background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:24px 26px;text-decoration:none;color:inherit;transition:all .22s ease;position:relative;overflow:hidden}.landing-page .channel-card:after{content:"→";position:absolute;right:24px;top:50%;transform:translateY(-50%) translate(4px);font-size:1rem;color:var(--accent);opacity:0;transition:all .22s ease}.landing-page .channel-card:hover{border-color:#4da1c973;box-shadow:0 8px 28px #14508c1a;transform:translateY(-3px)}.landing-page .channel-card:hover:after{opacity:1;transform:translateY(-50%) translate(0)}.landing-page .channel-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--line-strong);font-size:1.3rem}.landing-page .channel-icon--general{background:linear-gradient(135deg,#dce8f2,#c4d8ea)}.landing-page .channel-icon--bug{background:linear-gradient(135deg,#fdecea,#f5c8c4)}.landing-page .channel-icon--feature{background:linear-gradient(135deg,#e8f5ec,#c4e8ce)}.landing-page .channel-icon--github{background:linear-gradient(135deg,#e8eaf0,#cdd2de)}.landing-page .channel-text{flex:1;min-width:0}.landing-page .channel-name{font-size:.96rem;font-weight:700;color:var(--ink);margin-bottom:4px}.landing-page .channel-desc{font-size:.84rem;color:var(--ink-mid);line-height:1.55;margin-bottom:10px}.landing-page .channel-cta{display:inline-flex;align-items:center;gap:6px;font-family:Spline Sans Mono,monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--accent)}.landing-page .sidebar{display:flex;flex-direction:column;gap:20px}.landing-page .sidebar-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:26px 24px}.landing-page .sidebar-card-title{font-family:Spline Sans Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);font-weight:600;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.landing-page .sidebar-faq{display:flex;flex-direction:column;gap:18px}.landing-page .faq-q{font-size:.88rem;font-weight:700;color:var(--ink);margin-bottom:5px;display:flex;align-items:flex-start;gap:8px}.landing-page .faq-q:before{content:"Q.";font-family:Spline Sans Mono,monospace;font-size:.7rem;color:var(--accent);flex-shrink:0;padding-top:2px}.landing-page .faq-a{font-size:.83rem;color:var(--ink-mid);line-height:1.6;padding-left:22px}.landing-page .sidebar-response-times{display:flex;flex-direction:column;gap:12px}.landing-page .rt-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.landing-page .rt-label{font-size:.84rem;color:var(--ink-mid)}.landing-page .rt-badge{font-family:Spline Sans Mono,monospace;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px}.landing-page .rt-badge--fast{background:#59d38826;color:#1a7a42;border:1px solid rgba(89,211,136,.3)}.landing-page .rt-badge--med{background:#3eaff71f;color:#1560a0;border:1px solid rgba(62,175,247,.28)}.landing-page .rt-badge--slow{background:#db845e1f;color:#8a3a10;border:1px solid rgba(219,132,94,.28)}.landing-page .sidebar-card--dark{background:var(--ink);border-color:#96c8eb1a}.landing-page .sidebar-card--dark .sidebar-card-title{color:#96c8eb80;border-bottom-color:#96c8eb1a}.landing-page .community-links{display:flex;flex-direction:column;gap:10px}.landing-page .community-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(150,200,235,.1);text-decoration:none;color:#c8e8f8d9;font-size:.85rem;font-weight:500;transition:all .18s ease}.landing-page .community-link:hover{background:#4da1c91f;border-color:#4da1c94d;color:#c8e8f8;transform:translate(3px)}.landing-page .community-link-icon{width:32px;height:32px;border-radius:8px;background:#ffffff12;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;flex-shrink:0;font-size:.9rem}.landing-page .community-link-label{flex:1}.landing-page .community-link-sub{display:block;font-size:.7rem;color:#96c8eb80;margin-top:1px;font-family:Spline Sans Mono,monospace}.landing-page .community-link-arrow{font-size:.8rem;color:#96c8eb59}.landing-page .note-bar{grid-column:1 / -1;background:#3eaff712;border:1px solid rgba(62,175,247,.2);border-radius:12px;padding:18px 24px;display:flex;align-items:center;gap:16px;font-size:.86rem;color:var(--ink-mid);line-height:1.55}.landing-page .note-bar-icon{font-size:1.3rem;flex-shrink:0}.landing-page .note-bar a{color:var(--accent);text-decoration:none;font-weight:600}.landing-page .note-bar a:hover{text-decoration:underline}}.landing-page .page-header{position:relative;padding:80px 32px 72px;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%),radial-gradient(circle at 80% 20%,rgba(77,161,201,.16),transparent 42%),radial-gradient(circle at 10% 70%,rgba(89,211,136,.08),transparent 38%),linear-gradient(145deg,#f7f5f4,#dce8f2);border-bottom:1px solid var(--line-strong);overflow:hidden}.landing-page .page-header-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(20,80,140,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(20,80,140,.06) 1px,transparent 1px);background-size:32px 32px}.landing-page .page-header-inner{position:relative;z-index:1;max-width:760px;margin:0 auto}.landing-page .breadcrumb{display:flex;align-items:center;gap:8px;font-family:Spline Sans Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);margin-bottom:20px}.landing-page .breadcrumb a{color:var(--ink-light);text-decoration:none;transition:color .15s}.landing-page .breadcrumb a:hover{color:var(--accent)}.landing-page .breadcrumb-sep{opacity:.4}.landing-page .page-header h1{font-family:Bebas Neue,sans-serif;font-size:clamp(3rem,6vw,5rem);letter-spacing:.03em;line-height:.95;color:var(--ink);margin-bottom:20px}.landing-page .page-header h1 em{font-style:normal;color:var(--accent)}.landing-page .page-header-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}.landing-page .meta-chip{display:inline-flex;align-items:center;gap:6px;font-family:Spline Sans Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid)}.landing-page .meta-chip svg{width:12px;height:12px;color:var(--accent)}.landing-page .page-header p{font-size:1.05rem;line-height:1.7;color:var(--ink-mid);max-width:560px}.landing-page .page-body--privacy{max-width:1100px;margin:0 auto;padding:72px 32px 80px;display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start}.landing-page .toc{position:sticky;top:82px;background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:22px 20px}.landing-page .toc-title{font-family:Spline Sans Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);font-weight:600;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.landing-page .toc-list{list-style:none;display:flex;flex-direction:column;gap:2px}.landing-page .toc-list a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:.8rem;color:var(--ink-mid);text-decoration:none;transition:all .15s ease;line-height:1.35}.landing-page .toc-list a:hover{background:#14508c0f;color:var(--ink)}.landing-page .toc-list a.is-active{background:#4da1c91a;color:var(--accent);font-weight:600}.landing-page .toc-num{font-family:Spline Sans Mono,monospace;font-size:.6rem;color:var(--ink-light);flex-shrink:0;width:16px}.landing-page .toc-updated{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-family:Spline Sans Mono,monospace;font-size:.62rem;color:var(--ink-light);line-height:1.5}.landing-page .content{display:flex;flex-direction:column;gap:0}.landing-page .summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:56px}.landing-page .summary-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;padding:20px 18px}.landing-page .summary-card-icon{font-size:1.4rem;margin-bottom:10px;display:block}.landing-page .summary-card-title{font-size:.88rem;font-weight:700;color:var(--ink);margin-bottom:5px}.landing-page .summary-card-desc{font-size:.78rem;color:var(--ink-mid);line-height:1.55}.landing-page .policy-section{padding:48px 0;border-bottom:1px solid var(--line)}.landing-page .policy-section:last-child{border-bottom:none;padding-bottom:0}.landing-page .policy-section-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.landing-page .policy-section-num{font-family:Bebas Neue,sans-serif;font-size:2.8rem;color:var(--line-strong);line-height:1;flex-shrink:0;letter-spacing:.03em;-webkit-user-select:none;user-select:none}.landing-page .policy-section-label{font-family:Spline Sans Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600;margin-bottom:4px}.landing-page .policy-section-title{font-family:Bebas Neue,sans-serif;font-size:1.9rem;letter-spacing:.03em;color:var(--ink);line-height:1.05}.landing-page .policy-body{font-size:.92rem;line-height:1.8;color:var(--ink-mid)}.landing-page .policy-body p+p{margin-top:14px}.landing-page .policy-body strong{color:var(--ink);font-weight:700}.landing-page .policy-body a{color:var(--accent);text-decoration:none;font-weight:500}.landing-page .policy-body a:hover{text-decoration:underline}.landing-page .policy-highlight{margin:20px 0;padding:18px 20px;border-radius:10px;display:flex;gap:14px;align-items:flex-start;font-size:.88rem;line-height:1.65}.landing-page .policy-highlight--good{background:#59d38814;border:1px solid rgba(89,211,136,.25);color:var(--ink-mid)}.landing-page .policy-highlight--good strong{color:#1a6636}.landing-page .policy-highlight--note{background:#3eaff714;border:1px solid rgba(62,175,247,.22);color:var(--ink-mid)}.landing-page .policy-highlight--note strong{color:var(--blue-dark)}.landing-page .policy-highlight--warn{background:#db845e14;border:1px solid rgba(219,132,94,.22);color:var(--ink-mid)}.landing-page .policy-highlight--warn strong{color:#8a3a10}.landing-page .policy-highlight-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px}.landing-page .policy-list{margin:14px 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}.landing-page .policy-list li{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--ink-mid);line-height:1.6}.landing-page .policy-list li:before{content:"—";color:var(--accent);flex-shrink:0;font-family:Spline Sans Mono,monospace;font-size:.75rem;margin-top:3px}.landing-page .third-party-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.84rem}.landing-page .third-party-table thead tr{background:var(--bg);border-bottom:2px solid var(--line-strong)}.landing-page .third-party-table th{font-family:Spline Sans Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-light);padding:10px 14px;text-align:left;font-weight:600}.landing-page .third-party-table tbody tr{border-bottom:1px solid var(--line)}.landing-page .third-party-table tbody tr:last-child{border-bottom:none}.landing-page .third-party-table tbody tr:hover{background:#14508c06}.landing-page .third-party-table td{padding:12px 14px;color:var(--ink-mid);vertical-align:top;line-height:1.5}.landing-page .third-party-table td:first-child{font-weight:600;color:var(--ink)}.landing-page .third-party-table td a{color:var(--accent);text-decoration:none}.landing-page .third-party-table td a:hover{text-decoration:underline}.landing-page .purpose-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-family:Spline Sans Mono,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.landing-page .purpose-badge--map{background:#4da1c91f;color:#1560a0;border:1px solid rgba(77,161,201,.25)}.landing-page .purpose-badge--geo{background:#59d3881a;color:#1a6636;border:1px solid rgba(89,211,136,.25)}.landing-page .purpose-badge--render{background:#db845e1a;color:#8a3a10;border:1px solid rgba(219,132,94,.25)}.landing-page .contact-strip{margin-top:0;background:var(--ink);border-radius:14px;padding:36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;position:relative;overflow:hidden}.landing-page .contact-strip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(150,200,235,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(150,200,235,.05) 1px,transparent 1px);background-size:28px 28px}.landing-page .contact-strip-text{position:relative;z-index:1}.landing-page .contact-strip-title{font-family:Bebas Neue,sans-serif;font-size:1.8rem;letter-spacing:.04em;color:#fff;line-height:1;margin-bottom:6px}.landing-page .contact-strip-sub{font-size:.86rem;color:#96c8eba6}.landing-page footer{background:var(--bg-warm);border-top:1px solid var(--line-strong);padding:32px}.landing-page .footer-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-page .footer-brand{font-family:Bebas Neue,sans-serif;font-size:1.2rem;letter-spacing:.04em;color:var(--ink)}.landing-page .footer-links{display:flex;align-items:center;gap:24px}.landing-page .footer-links a{font-family:Spline Sans Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mid);text-decoration:none;transition:color .15s}.landing-page .footer-links a:hover{color:var(--ink)}.landing-page .footer-copy{font-family:Spline Sans Mono,monospace;font-size:.62rem;color:var(--ink-light)}.landing-page .fade-up{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}.landing-page .fade-up.is-visible{opacity:1;transform:translateY(0)}@media (max-width: 960px){.landing-page .page-body--privacy{grid-template-columns:1fr;gap:40px}.landing-page .toc{position:static}.landing-page .summary-grid{grid-template-columns:1fr;gap:12px}}@media (max-width: 600px){.landing-page .page-body{padding:48px 20px 64px}.landing-page .page-header{padding:60px 20px 56px}.landing-page .contact-strip{flex-direction:column;text-align:center;align-items:center}.landing-page .third-party-table{display:block;overflow-x:auto}}
