:root{--paper: #edefec;--ink: #17201b;--accent: #ff4d12;--accent-deep: #d63a00;--contour: #c9cfc7;--moss: #5e6b5f;--card: #ffffff;--radius: 14px;font-family:Archivo,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}.header{position:relative;padding:20px 16px 14px;overflow:hidden;border-bottom:1px solid var(--contour)}.header svg.contours{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.55;pointer-events:none}.brand{position:relative;font-family:Archivo Black,sans-serif;font-size:26px;letter-spacing:.04em;text-transform:uppercase}.brand em{font-style:normal;color:var(--accent)}.tagline{position:relative;margin:2px 0 0;font-size:13px;color:var(--moss)}.lang-toggle{position:absolute;top:14px;right:14px;display:flex;gap:3px}.lang-toggle button{font:inherit;font-size:11px;font-weight:600;letter-spacing:.06em;padding:4px 9px;border:1px solid var(--contour);border-radius:999px;background:var(--paper);color:var(--moss)}.lang-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.app{max-width:560px;margin:0 auto;padding:0 12px}.canvas-wrap{margin:14px 0 10px}.editor{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;touch-action:none;border:1px solid var(--contour);background:repeating-conic-gradient(#adb2ad,#adb2ad 25%,#b7bcb6 0%,#b7bcb6 50%) 0 0 / 16px 16px;box-shadow:0 6px 24px #17201b14;container-type:inline-size}.editor .photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.editor.has-photo{background:var(--ink)}.editor.story{aspect-ratio:9 / 16}.editor.feed{aspect-ratio:1 / 1}.draggable{position:absolute;cursor:grab;-webkit-user-select:none;user-select:none}.draggable:active{cursor:grabbing}.draggable:focus-visible{outline:2px dashed var(--accent);outline-offset:4px}.route-box{touch-action:none}.route-box>svg{display:block;width:100%;height:100%;overflow:visible}.route-box .resize:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-box .resize{position:absolute;right:-8px;bottom:-8px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--paper);border:2px solid var(--paper);display:grid;place-items:center;font-size:12px;touch-action:none}@keyframes draw{to{stroke-dashoffset:0}}.route-path,.route-reveal{animation:draw 1.4s ease-out forwards}@media (prefers-reduced-motion: reduce){.route-path,.route-reveal{animation:none;stroke-dashoffset:0!important}}.stat{line-height:1.15}.stat .label{display:block;opacity:.85}.stat .value{display:block;font-weight:700}.stat [contenteditable]{outline:none;min-width:2ch}.stat [contenteditable]:focus{border-bottom:1px dashed currentColor;-webkit-user-select:text;user-select:text}.stat .remove,.stat .grab,.route-box .grab{position:absolute;width:24px;height:24px;padding:0;border-radius:50%;border:none;background:var(--ink);color:var(--paper);line-height:1;display:none;place-items:center}.stat .grab,.stat .remove{top:-28px}.stat .grab{left:0;cursor:grab}.stat .remove{right:0}.route-box .grab{top:-8px;left:-8px;cursor:grab}.stat:focus-within .remove,.stat:hover .remove,.stat:focus-within .grab,.stat:hover .grab,.route-box:focus-within .grab,.route-box:hover .grab{display:grid}.stat .remove svg,.stat .grab svg,.route-box .grab svg,.route-box .resize svg{display:block;width:auto;height:auto;overflow:visible}.guide{position:absolute;background:var(--accent);pointer-events:none;z-index:3}.guide-v{top:0;bottom:0;width:1px}.guide-h{left:0;right:0;height:1px}.editor-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--moss);font-size:14px;padding:24px}.card{background:var(--card);border:1px solid var(--contour);border-radius:var(--radius);padding:14px;margin:10px 0}.card h2{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--moss)}.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs button{flex:1;padding:9px 8px;border:1px solid var(--contour);background:transparent;border-radius:999px;font:inherit;font-size:13px;color:var(--ink)}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.field{margin:10px 0}.field label{display:block;font-size:13px;margin-bottom:4px;color:var(--moss)}input[type=text],input[type=search]{width:100%;padding:11px 12px;border:1px solid var(--contour);border-radius:10px;font:inherit;background:var(--paper)}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.file .file-btn{font:inherit;font-weight:600;font-size:14px;padding:10px 16px;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink)}.file .file-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.file .file-name{margin:8px 0 0;font-size:13px;color:var(--moss);overflow-wrap:anywhere}.suggest{list-style:none;margin:4px 0 0;padding:0;border:1px solid var(--contour);border-radius:10px;overflow:hidden}.suggest li button{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:var(--card);font:inherit;font-size:13px}.suggest li+li button{border-top:1px solid var(--contour)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>.field{flex:1;min-width:120px;margin:0}input[type=color]{width:44px;height:34px;padding:0;border:1px solid var(--contour);border-radius:8px;background:none}select,input[type=range]{font:inherit}select{padding:9px 10px;border-radius:10px;border:1px solid var(--contour);background:var(--paper);width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;padding:11px 16px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink)}.btn.primary{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.btn.strava{font-size:19px;font-weight:700}.btn.strava{background:#fc4c02;border-color:#fc4c02;color:#fff}.btn:disabled{opacity:.5}.shape-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shape-grid .btn{padding:10px 6px;font-size:13px}.shape-grid .btn[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.shape-grid.previews{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:8px}.shape-grid.previews .btn{flex-direction:column;gap:6px;padding:10px 6px 8px;font-size:11.5px;font-weight:600;line-height:1.15;border-radius:var(--radius)}.shape-grid.previews .btn svg{width:34px;height:34px;display:block}.check{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink)}.check input{width:17px;height:17px;accent-color:var(--accent)}.error{color:#b3261e;font-size:13px;margin:8px 0 0}.hint{color:var(--moss);font-size:12px;margin:6px 0 0}.export-bar{position:sticky;bottom:0;display:flex;gap:10px;align-items:center;justify-content:space-between;max-width:560px;margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--contour)}.export-bar{flex-wrap:wrap}.export-error{flex-basis:100%;margin:0;text-align:center}.preset-toggle{display:flex;gap:4px}.preset-toggle button{font:inherit;font-size:13px;padding:8px 12px;border-radius:999px;border:1px solid var(--contour);background:transparent}.preset-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
