{
  "version": 3,
  "sources": ["/cdn/shop/t/506/assets/massimo-ozel-olcu.js?massimo_ui_build=v147-ar-display-canvas-source"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n\n  var BUILD = \"v317-region-biye-accent\";\n  window.__MASSIMO_OZEL_OLCU_UI_BUILD__ = BUILD;\n  window.__MASSIMO_OZEL_OLCU_UI_PATCH__ = BUILD;\n  var EXPECTED_PREVIEW_BUILD = \"v269-region-biye-accent\";\n  var PREVIEW_PATCH_ASSET = \"massimo-ozel-olcu-preview.js\";\n  function massimoAssetPrefix() {\n    var current = document.currentScript && document.currentScript.src || \"\";\n    if (current.indexOf(\"/assets/\") >= 0) return current.slice(0, current.indexOf(\"/assets/\") + 8);\n    var scripts = Array.prototype.slice.call(document.scripts || []);\n    for (var i = 0; i < scripts.length; i++) {\n      var src = scripts[i].src || \"\";\n      if (src.indexOf(\"/assets/massimo-ozel-olcu-\") >= 0) return src.slice(0, src.indexOf(\"/assets/\") + 8);\n    }\n    return \"/cdn/shop/t/530/assets/\";\n  }\n  function expectedPreviewReady() {\n    return !!window.MassimoOzelOlcuPreview && window.__MASSIMO_OZEL_OLCU_PREVIEW_BUILD__ === EXPECTED_PREVIEW_BUILD;\n  }\n  function loadExpectedPreviewPatch() {\n    if (expectedPreviewReady() || window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADING__ || window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADED__) return;\n    window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADING__ = true;\n    var script = document.createElement(\"script\");\n    script.async = false;\n    script.src = massimoAssetPrefix() + PREVIEW_PATCH_ASSET + \"?v=1780562200000&massimo_preview_patch=\" + encodeURIComponent(BUILD) + \"&t=\" + Date.now();\n    script.onload = function () {\n      window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADING__ = false;\n      window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADED__ = Date.now();\n    };\n    script.onerror = function () {\n      window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_LOADING__ = false;\n      window.__MASSIMO_OZEL_OLCU_PREVIEW_PATCH_ERROR__ = Date.now();\n    };\n    document.head.appendChild(script);\n  }\n  if (window.MassimoOzelOlcuPreview && !expectedPreviewReady()) loadExpectedPreviewPatch();\n  var initialPreviewThemeId = new URLSearchParams(window.location.search || \"\").get(\"preview_theme_id\") || \"\";\n\n  var INITIAL_EDGE_TYPE = \"bordur\";\n  var INITIAL_FAMILY = \"canvas\";\n  var INITIAL_FABRIC_ID = \"canvas-06\";\n\n  var state = {\n    edgeType: \"bordur\",\n    family: \"canvas\",\n    fabric: null,\n    doubleTarget: \"outer\",\n    doubleFabrics: {\n      outer: null,\n      inner: null\n    },\n    shapeType: \"dikdortgen\",\n    shapePresetKey: \"organik\",\n    shapePresetLabel: \"Organik\",\n    shapeRadii: null,\n    shapePickerOpen: false,\n    shapePickerCategory: \"all\",\n    designMode: false,\n    designTemplateId: \"grid-2x2-arc\",\n    designRegionCount: 4,\n    designRegionId: \"\",\n    designPickerOpen: false,\n    designPickerCategory: \"panel\",\n    designGuideAutoPlayed: false,\n    designGuidePlaying: false,\n    designGuideLinesHidden: true,\n    designCornerTarget: \"all\",\n    designEdgeTarget: \"all\",\n    designCornerModes: {},\n    designEdgeModes: {},\n    designPremiumVariant: {\n      insertShape: \"none\",\n      seamStyle: \"balanced\",\n      outerForm: \"template\"\n    },\n    designAssignments: {},\n    previewVisible: false,\n    width: 160,\n    length: 230\n  };\n\n  var designGuideIdSeq = 0;\n\n  var ZOOM_LEVELS = [\n    { label: \"1x\", scale: 1 },\n    { label: \"1.5x\", scale: 1.5 },\n    { label: \"2.5x\", scale: 2.5 },\n    { label: \"4x\", scale: 4 }\n  ];\n  var DEFAULT_PREVIEW_MAX_CANVAS_WIDTH = 1600;\n  var DEFAULT_PREVIEW_MAX_CANVAS_HEIGHT = 2200;\n  // v159: Source image width 8192 \u2192 12288 (kalite bump). Sorun \u00E7\u0131karsa 8192'ye geri al.\n  // ROLLBACK: bu sat\u0131r\u0131 `var ZOOM_IMAGE_WIDTH = 8192;` olarak de\u011Fi\u015Ftir + yeniden y\u00FCkle.\n  var ZOOM_IMAGE_WIDTH = 12288;\n  var ZOOM_RENDER_MAX_SIDE = 8192;\n  var LENS_SIZE = 184;\n  var HIGH_DETAIL_TEXTURE_QUALITIES = [\"cordoba\", \"ibiza\", \"lasis\", \"barceleno\"];\n  var MOBILE_HIGH_DETAIL_IMAGE_WIDTH = 2400;\n  var MOBILE_HIGH_DETAIL_MAX_CANVAS_WIDTH = 1200;\n  var MOBILE_HIGH_DETAIL_MAX_CANVAS_HEIGHT = 1725;\n  var MOBILE_HIGH_DETAIL_ZOOM_MAX_CANVAS_WIDTH = 1400;\n  var MOBILE_HIGH_DETAIL_ZOOM_MAX_CANVAS_HEIGHT = 2015;\n  var MOBILE_ZOOM_RENDER_MAX_SIDE = 2400;\n\n  var SHAPE_PRESETS = [\n    { key: \"organik\", label: \"Organik\", seed: [0.92, 0.98, 0.88, 1.02, 0.94, 0.86, 1.00, 0.91] },\n    { key: \"damla\", label: \"Damla\", seed: [0.78, 0.86, 0.98, 1.10, 1.04, 0.92, 0.82, 0.72] },\n    { key: \"nehir\", label: \"Nehir Ta\u015F\u0131\", seed: [0.88, 0.95, 1.00, 0.96, 0.90, 0.84, 0.92, 0.98] },\n    { key: \"yaprak\", label: \"Yaprak\", seed: [0.70, 0.84, 1.06, 1.10, 1.04, 0.86, 0.72, 0.66] },\n    { key: \"bulut\", label: \"Bulut\", seed: [0.94, 1.02, 0.91, 1.04, 0.90, 1.00, 0.93, 0.88] },\n    { key: \"cakil\", label: \"\u00C7ak\u0131l\", seed: [0.86, 0.94, 0.89, 1.02, 0.96, 0.87, 0.92, 1.00] },\n    { key: \"zen-amorf-01\", label: \"Zen Amorf 01\", source: \"zen-amorf-reference\", radii: [0.819, 0.842, 0.873, 0.91, 0.952, 0.996, 1.037, 1.072, 1.094, 1.103, 1.096, 1.071, 1.031, 0.984, 0.941, 0.914, 0.907, 0.918, 0.944, 0.98, 1.018, 1.054, 1.083, 1.102, 1.11, 1.107, 1.092, 1.062, 1.02, 0.972, 0.924, 0.885, 0.855, 0.835, 0.825, 0.824, 0.833, 0.852, 0.881, 0.918, 0.961, 1.005, 1.045, 1.077, 1.1, 1.112, 1.117, 1.118, 1.113, 1.1, 1.076, 1.037, 0.987, 0.933, 0.885, 0.849, 0.832, 0.836, 0.858, 0.894, 0.938, 0.977, 1.003, 1.007, 0.99, 0.954, 0.908, 0.864, 0.828, 0.807, 0.8, 0.805] },\n    { key: \"zen-amorf-02\", label: \"Zen Amorf 02\", source: \"zen-amorf-reference\", radii: [0.978, 0.968, 0.96, 0.954, 0.95, 0.949, 0.95, 0.953, 0.957, 0.959, 0.959, 0.957, 0.955, 0.953, 0.955, 0.959, 0.968, 0.978, 0.99, 0.999, 1.005, 1.006, 1.003, 0.998, 0.994, 0.99, 0.986, 0.98, 0.969, 0.951, 0.927, 0.901, 0.878, 0.862, 0.857, 0.865, 0.884, 0.914, 0.948, 0.983, 1.011, 1.029, 1.035, 1.032, 1.021, 1.006, 0.991, 0.978, 0.968, 0.963, 0.963, 0.965, 0.971, 0.98, 0.994, 1.013, 1.037, 1.061, 1.082, 1.098, 1.106, 1.106, 1.098, 1.085, 1.07, 1.056, 1.044, 1.033, 1.022, 1.011, 1, 0.989] },\n    { key: \"zen-amorf-03\", label: \"Zen Amorf 03\", source: \"zen-amorf-reference\", radii: [0.975, 0.984, 0.996, 1.011, 1.031, 1.052, 1.074, 1.092, 1.106, 1.114, 1.118, 1.118, 1.114, 1.103, 1.084, 1.057, 1.025, 0.995, 0.972, 0.958, 0.953, 0.958, 0.97, 0.988, 1.009, 1.03, 1.046, 1.053, 1.052, 1.045, 1.034, 1.022, 1.011, 1.003, 0.996, 0.991, 0.987, 0.984, 0.981, 0.978, 0.976, 0.975, 0.973, 0.972, 0.97, 0.966, 0.959, 0.949, 0.938, 0.926, 0.917, 0.913, 0.919, 0.933, 0.957, 0.987, 1.02, 1.049, 1.07, 1.079, 1.077, 1.069, 1.057, 1.043, 1.028, 1.013, 0.999, 0.988, 0.979, 0.973, 0.97, 0.971] },\n    { key: \"zen-amorf-04\", label: \"Zen Amorf 04\", source: \"zen-amorf-reference\", radii: [0.993, 0.995, 0.993, 0.987, 0.979, 0.968, 0.955, 0.943, 0.934, 0.934, 0.943, 0.959, 0.977, 0.992, 1.001, 1.005, 1.004, 1, 0.995, 0.989, 0.982, 0.977, 0.976, 0.979, 0.989, 1.004, 1.02, 1.033, 1.039, 1.035, 1.023, 1.004, 0.981, 0.96, 0.943, 0.935, 0.938, 0.953, 0.978, 1.007, 1.035, 1.057, 1.069, 1.074, 1.073, 1.07, 1.064, 1.057, 1.046, 1.032, 1.016, 1.003, 0.994, 0.991, 0.995, 1.001, 1.008, 1.012, 1.01, 1.004, 0.996, 0.988, 0.981, 0.976, 0.971, 0.967, 0.964, 0.963, 0.966, 0.972, 0.981, 0.988] },\n    { key: \"zen-amorf-05\", label: \"Zen Amorf 05\", source: \"zen-amorf-reference\", radii: [1.001, 1.002, 1.008, 1.017, 1.031, 1.049, 1.069, 1.088, 1.103, 1.113, 1.117, 1.118, 1.114, 1.105, 1.088, 1.065, 1.041, 1.023, 1.016, 1.023, 1.041, 1.065, 1.088, 1.105, 1.114, 1.118, 1.117, 1.111, 1.1, 1.084, 1.064, 1.043, 1.025, 1.01, 1, 0.994, 0.992, 0.994, 1, 1.01, 1.025, 1.043, 1.064, 1.084, 1.1, 1.111, 1.117, 1.118, 1.114, 1.105, 1.088, 1.066, 1.042, 1.024, 1.018, 1.024, 1.042, 1.066, 1.088, 1.105, 1.114, 1.118, 1.117, 1.113, 1.103, 1.089, 1.07, 1.05, 1.033, 1.019, 1.009, 1.003] }\n  ];\n\n  var SHAPE_PRESET_CATEGORIES = [\n    { id: \"all\", label: \"50 Amorf\" },\n    { id: \"top\", label: \"En \u00C7ok Satan\" },\n    { id: \"soft\", label: \"Yumu\u015Fak / Minimal\" },\n    { id: \"runner\", label: \"Dikey / Runner\" },\n    { id: \"blob\", label: \"Blob / Bulut\" },\n    { id: \"character\", label: \"Karakterli\" }\n  ];\n\n  var AMORF_SALES_SHAPE_PRESETS = [\n    { key: \"amorf-fasulye-soft\", label: \"Fasulye Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 1, category: \"top\", radii: [0.965,0.956,0.951,0.948,0.946,0.949,0.959,0.969,0.975,0.982,0.996,1.009,1.013,1.016,1.023,1.026,1.019,1.012,1.007,0.998,0.986,0.978,0.972,0.962,0.955,0.952,0.947,0.94,0.935,0.933,0.927,0.917,0.91,0.907,0.901,0.889,0.88,0.876,0.874,0.867,0.862,0.863,0.869,0.877,0.89,0.908,0.933,0.961,0.995,1.036,1.074,1.092,1.104,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.107,1.073,1.044,1.022,1.003,0.982] },\n    { key: \"amorf-cakil-dikey\", label: \"\u00C7ak\u0131l Dikey\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 2, category: \"top\", radii: [0.992,1.012,1.035,1.053,1.066,1.083,1.107,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.118,1.102,1.089,1.076,1.058,1.039,1.023,1.003,0.977,0.953,0.934,0.913,0.888,0.866,0.85,0.838,0.825,0.812,0.803,0.8,0.802,0.805,0.809,0.819,0.834,0.853,0.874,0.898,0.929,0.963,0.995,1.025,1.059,1.088,1.102,1.112,1.118,1.107,1.09,1.073,1.049,1.024,1.002,0.984,0.968,0.955,0.949,0.946,0.943,0.944,0.951,0.962,0.972,0.98] },\n    { key: \"amorf-yumusak-kare\", label: \"Yumu\u015Fak Kare\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 3, category: \"top\", radii: [0.996,0.992,0.99,0.985,0.983,0.986,0.989,0.984,0.976,0.972,0.968,0.954,0.937,0.926,0.918,0.909,0.903,0.903,0.909,0.918,0.934,0.956,0.978,0.994,1.011,1.033,1.05,1.051,1.049,1.052,1.05,1.037,1.022,1.014,1.008,0.999,0.992,0.992,0.994,0.995,0.997,1.006,1.014,1.013,1.01,1.011,1.011,1.001,0.987,0.979,0.973,0.966,0.961,0.962,0.968,0.977,0.992,1.013,1.034,1.048,1.064,1.083,1.098,1.095,1.089,1.087,1.082,1.064,1.045,1.032,1.021,1.008] },\n    { key: \"amorf-bulut-genis\", label: \"Bulut Geni\u015F\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 4, category: \"top\", radii: [1.115,1.085,1.058,1.028,0.997,0.974,0.962,0.962,0.972,0.986,0.994,0.995,0.997,1.003,1.004,0.998,0.994,0.996,1.003,1.014,1.03,1.053,1.079,1.097,1.109,1.12,1.12,1.12,1.093,1.06,1.031,0.998,0.966,0.944,0.94,0.954,0.981,1.009,1.028,1.042,1.057,1.06,1.04,1.014,0.994,0.976,0.958,0.944,0.937,0.933,0.928,0.924,0.926,0.933,0.937,0.925,0.909,0.9,0.895,0.892,0.887,0.884,0.888,0.901,0.925,0.962,1.008,1.055,1.087,1.112,1.12,1.12] },\n    { key: \"amorf-bel-oyuk\", label: \"Bel Oyuk\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 5, category: \"top\", radii: [0.831,0.821,0.816,0.819,0.827,0.842,0.864,0.89,0.921,0.959,1.004,1.05,1.09,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.112,1.07,1.021,0.977,0.937,0.898,0.865,0.839,0.819,0.803,0.793,0.788,0.789,0.791,0.796,0.806,0.822,0.841,0.861,0.88,0.904,0.935,0.97,0.999,1.028,1.064,1.103,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.08,1.043,1,0.957,0.922,0.895,0.871,0.849] },\n    { key: \"amorf-sag-lob\", label: \"Sa\u011F Lob\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 6, category: \"top\", radii: [1.069,1.074,1.082,1.086,1.09,1.101,1.114,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.118,1.103,1.09,1.074,1.054,1.038,1.023,1.001,0.98,0.964,0.948,0.925,0.903,0.887,0.872,0.849,0.826,0.808,0.794,0.779,0.762,0.747,0.738,0.732,0.727,0.724,0.725,0.731,0.741,0.756,0.776,0.802,0.834,0.867,0.906,0.953,1.001,1.039,1.078,1.119,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.118,1.101,1.088,1.081,1.077,1.071] },\n    { key: \"amorf-sol-lob\", label: \"Sol Lob\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 7, category: \"top\", radii: [0.733,0.733,0.737,0.742,0.75,0.763,0.781,0.803,0.826,0.853,0.887,0.925,0.958,0.994,1.035,1.072,1.094,1.112,1.12,1.12,1.12,1.12,1.12,1.12,1.119,1.106,1.092,1.075,1.062,1.055,1.051,1.047,1.049,1.057,1.066,1.073,1.084,1.102,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.113,1.089,1.061,1.031,1.005,0.981,0.953,0.927,0.907,0.887,0.862,0.84,0.824,0.809,0.79,0.773,0.761,0.753,0.746,0.738] },\n    { key: \"amorf-kaya-oval\", label: \"Kaya Oval\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 8, category: \"top\", radii: [1.02,1.02,1.02,1.013,1.003,0.997,0.996,0.996,0.994,0.997,1.004,1.011,1.014,1.021,1.027,1.025,1.017,1.009,1,0.979,0.957,0.94,0.926,0.914,0.907,0.905,0.907,0.913,0.924,0.938,0.948,0.955,0.965,0.98,0.989,0.988,0.987,0.992,0.997,0.995,0.991,0.991,0.996,1.002,1.007,1.017,1.031,1.045,1.055,1.067,1.081,1.085,1.082,1.08,1.075,1.057,1.037,1.022,1.009,0.996,0.988,0.985,0.984,0.987,0.995,1.006,1.012,1.014,1.019,1.029,1.033,1.027] },\n    { key: \"amorf-damla-genis\", label: \"Damla Geni\u015F\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 9, category: \"top\", radii: [0.951,0.945,0.94,0.926,0.913,0.905,0.901,0.895,0.884,0.874,0.87,0.867,0.862,0.86,0.863,0.87,0.88,0.896,0.914,0.931,0.95,0.971,0.984,0.992,1.002,1.008,1.001,0.99,0.983,0.977,0.964,0.948,0.937,0.931,0.927,0.919,0.913,0.913,0.919,0.928,0.937,0.949,0.969,0.994,1.02,1.049,1.083,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.115,1.093,1.071,1.045,1.024,1.01,0.998,0.98,0.962] },\n    { key: \"amorf-zen-yumurta\", label: \"Zen Yumurta\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 10, category: \"top\", radii: [0.886,0.876,0.872,0.869,0.87,0.877,0.889,0.903,0.916,0.934,0.956,0.976,0.985,0.992,1,1.001,0.992,0.983,0.975,0.962,0.95,0.942,0.936,0.93,0.929,0.928,0.922,0.916,0.914,0.913,0.905,0.895,0.888,0.887,0.888,0.887,0.888,0.895,0.908,0.925,0.943,0.968,1,1.037,1.071,1.108,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.097,1.074,1.05,1.017,0.986,0.963,0.944,0.923,0.901] },\n    { key: \"amorf-ikili-lob\", label: \"\u0130kili Lob\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 11, category: \"top\", radii: [1.054,1.073,1.091,1.095,1.094,1.097,1.099,1.087,1.064,1.04,1.021,0.998,0.972,0.95,0.936,0.932,0.937,0.949,0.965,0.982,1.003,1.027,1.043,1.046,1.048,1.049,1.042,1.026,1.012,1.003,0.994,0.987,0.983,0.986,0.991,0.995,1.003,1.017,1.029,1.03,1.026,1.026,1.025,1.011,0.986,0.961,0.941,0.918,0.894,0.873,0.862,0.86,0.868,0.884,0.904,0.927,0.954,0.985,1.009,1.02,1.028,1.037,1.037,1.029,1.021,1.018,1.016,1.014,1.016,1.024,1.034,1.042] },\n    { key: \"amorf-yaprak-oval\", label: \"Yaprak Oval\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 12, category: \"top\", radii: [0.812,0.817,0.826,0.837,0.847,0.862,0.883,0.908,0.932,0.956,0.986,1.019,1.047,1.071,1.097,1.117,1.12,1.12,1.12,1.11,1.098,1.086,1.067,1.046,1.029,1.013,0.998,0.988,0.982,0.978,0.972,0.971,0.976,0.985,0.991,0.995,1.003,1.018,1.038,1.053,1.063,1.076,1.096,1.118,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.118,1.098,1.078,1.053,1.03,1.009,0.985,0.963,0.944,0.925,0.904,0.886,0.873,0.859,0.844,0.831,0.824,0.821,0.817,0.812] },\n    { key: \"amorf-kabuk-form\", label: \"Kabuk Form\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 13, category: \"top\", radii: [1.036,1.04,1.039,1.022,1.001,0.985,0.971,0.949,0.928,0.914,0.906,0.9,0.9,0.907,0.918,0.932,0.953,0.98,1.007,1.025,1.042,1.065,1.084,1.083,1.078,1.078,1.072,1.048,1.021,0.999,0.979,0.954,0.93,0.914,0.904,0.9,0.903,0.913,0.929,0.95,0.977,1.013,1.049,1.075,1.101,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.11,1.085,1.06,1.023,0.987,0.959,0.937,0.918,0.904,0.898,0.897,0.903,0.915,0.934,0.955,0.971,0.988,1.012,1.032,1.036] },\n    { key: \"amorf-mantar-soft\", label: \"Mantar Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 14, category: \"top\", radii: [0.916,0.92,0.926,0.933,0.944,0.962,0.985,1.008,1.038,1.075,1.111,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.114,1.095,1.079,1.06,1.043,1.033,1.023,1.006,0.987,0.974,0.963,0.946,0.925,0.908,0.896,0.887,0.879,0.875,0.877,0.884,0.896,0.915,0.939,0.963,0.984,1.007,1.03,1.041,1.04,1.04,1.036,1.016,0.993,0.975,0.959,0.942,0.931,0.923,0.918,0.916,0.919,0.922,0.921,0.918,0.92,0.924,0.922,0.917] },\n    { key: \"amorf-kum-parca\", label: \"Kum Par\u00E7a\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 15, category: \"top\", radii: [1.06,1.052,1.046,1.034,1.018,1.007,0.996,0.98,0.965,0.954,0.943,0.923,0.903,0.89,0.882,0.877,0.878,0.885,0.898,0.917,0.942,0.976,1.009,1.029,1.046,1.068,1.084,1.078,1.065,1.056,1.046,1.031,1.018,1.01,1.008,1.01,1.018,1.028,1.033,1.035,1.041,1.048,1.048,1.045,1.047,1.052,1.053,1.054,1.06,1.068,1.068,1.058,1.05,1.047,1.04,1.015,0.987,0.965,0.949,0.933,0.919,0.91,0.908,0.913,0.926,0.947,0.974,1,1.018,1.036,1.056,1.065] },\n    { key: \"amorf-organik-runner\", label: \"Organik Runner\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 16, category: \"runner\", radii: [0.827,0.827,0.833,0.84,0.843,0.846,0.853,0.867,0.885,0.902,0.916,0.933,0.956,0.982,1.011,1.047,1.091,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.112,1.063,1.013,0.97,0.937,0.911,0.888,0.864,0.843,0.829,0.821,0.82,0.823,0.826,0.832,0.844,0.862,0.887,0.915,0.947,0.986,1.032,1.078,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.083,1.046,1.014,0.986,0.956,0.926,0.901,0.884,0.873,0.861,0.846,0.834] },\n    { key: \"amorf-dar-koridor\", label: \"Dar Koridor\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 17, category: \"runner\", radii: [0.834,0.842,0.857,0.875,0.891,0.905,0.924,0.951,0.985,1.019,1.041,1.06,1.083,1.103,1.11,1.115,1.12,1.12,1.12,1.12,1.12,1.12,1.108,1.071,1.024,0.978,0.939,0.907,0.875,0.849,0.83,0.817,0.81,0.804,0.799,0.799,0.804,0.816,0.834,0.856,0.877,0.896,0.92,0.952,0.993,1.035,1.065,1.093,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.064,1.018,0.977,0.939,0.907,0.882,0.866,0.854,0.845,0.836,0.832] },\n    { key: \"amorf-uzun-cakil\", label: \"Uzun \u00C7ak\u0131l\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 18, category: \"runner\", radii: [0.863,0.866,0.875,0.887,0.896,0.908,0.926,0.953,0.982,1.007,1.035,1.069,1.105,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.085,1.039,0.995,0.958,0.923,0.885,0.85,0.823,0.803,0.787,0.77,0.756,0.748,0.745,0.748,0.754,0.761,0.773,0.792,0.817,0.848,0.883,0.925,0.977,1.037,1.096,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.078,1.038,1.003,0.968,0.937,0.914,0.899,0.888,0.875,0.866] },\n    { key: \"amorf-kose-oyuk\", label: \"K\u00F6\u015Fe Oyuk\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 19, category: \"character\", radii: [0.979,0.998,1.016,1.021,1.023,1.028,1.035,1.033,1.028,1.028,1.031,1.033,1.035,1.044,1.055,1.066,1.078,1.096,1.114,1.12,1.12,1.12,1.12,1.12,1.113,1.101,1.082,1.051,1.02,0.994,0.969,0.939,0.913,0.894,0.881,0.873,0.871,0.875,0.886,0.901,0.922,0.952,0.984,1.012,1.04,1.073,1.106,1.12,1.12,1.12,1.12,1.12,1.102,1.078,1.052,1.012,0.971,0.937,0.908,0.881,0.858,0.842,0.834,0.833,0.839,0.851,0.865,0.88,0.9,0.926,0.95,0.965] },\n    { key: \"amorf-cift-bel\", label: \"\u00C7ift Bel\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 20, category: \"character\", radii: [0.899,0.913,0.928,0.935,0.937,0.941,0.951,0.963,0.971,0.981,0.998,1.021,1.05,1.085,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.079,1.022,0.971,0.924,0.884,0.853,0.832,0.821,0.818,0.822,0.83,0.838,0.846,0.859,0.877,0.896,0.909,0.916,0.927,0.943,0.961,0.975,0.991,1.015,1.045,1.08,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.094,1.051,1.004,0.96,0.926,0.901,0.886,0.879,0.879,0.883,0.888,0.892] },\n    { key: \"amorf-huni-soft\", label: \"Huni Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 21, category: \"runner\", radii: [0.92,0.913,0.91,0.908,0.908,0.914,0.926,0.94,0.954,0.971,0.995,1.021,1.039,1.058,1.079,1.093,1.097,1.099,1.095,1.072,1.045,1.019,0.986,0.949,0.916,0.888,0.86,0.836,0.818,0.805,0.795,0.789,0.789,0.793,0.8,0.808,0.821,0.841,0.864,0.886,0.908,0.936,0.971,1.008,1.036,1.067,1.104,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.097,1.072,1.04,1.01,0.987,0.969,0.952,0.934] },\n    { key: \"amorf-akarsu\", label: \"Akarsu\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 22, category: \"character\", radii: [0.946,0.934,0.923,0.906,0.886,0.871,0.861,0.852,0.844,0.839,0.84,0.848,0.863,0.884,0.911,0.942,0.977,1.019,1.061,1.09,1.115,1.12,1.12,1.12,1.12,1.12,1.116,1.084,1.056,1.031,1.002,0.97,0.943,0.923,0.907,0.893,0.884,0.881,0.884,0.891,0.901,0.919,0.941,0.964,0.987,1.014,1.045,1.072,1.091,1.11,1.12,1.12,1.12,1.12,1.116,1.107,1.1,1.096,1.089,1.077,1.067,1.06,1.051,1.041,1.035,1.031,1.022,1.008,0.999,0.993,0.983,0.964] },\n    { key: \"amorf-dalgali-kenar\", label: \"Dalgal\u0131 Kenar\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 23, category: \"character\", radii: [1.061,1.037,1.018,0.995,0.975,0.961,0.957,0.961,0.973,0.993,1.012,1.021,1.027,1.037,1.048,1.053,1.057,1.066,1.07,1.055,1.035,1.019,0.999,0.965,0.931,0.905,0.894,0.901,0.92,0.947,0.974,0.996,1.02,1.048,1.063,1.042,1.009,0.982,0.96,0.938,0.919,0.907,0.904,0.911,0.927,0.951,0.974,0.987,0.997,1.012,1.028,1.037,1.047,1.061,1.07,1.061,1.047,1.036,1.022,0.993,0.963,0.941,0.934,0.944,0.967,0.997,1.026,1.048,1.07,1.096,1.109,1.09] },\n    { key: \"amorf-sarmal-dis\", label: \"Sarmal D\u0131\u015F\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 24, category: \"character\", radii: [0.957,0.95,0.948,0.947,0.952,0.962,0.975,0.986,0.998,1.014,1.031,1.04,1.045,1.053,1.059,1.053,1.043,1.036,1.027,1.009,0.992,0.978,0.964,0.947,0.934,0.925,0.915,0.905,0.899,0.897,0.892,0.885,0.882,0.882,0.882,0.875,0.87,0.87,0.872,0.871,0.87,0.874,0.883,0.892,0.903,0.919,0.941,0.965,0.992,1.025,1.059,1.08,1.093,1.106,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.095,1.062,1.031,1.008,0.989,0.971] },\n    { key: \"amorf-yarim-bulut\", label: \"Yar\u0131m Bulut\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 25, category: \"blob\", radii: [1.046,1.051,1.059,1.063,1.064,1.07,1.076,1.072,1.062,1.053,1.048,1.039,1.027,1.019,1.016,1.014,1.015,1.02,1.026,1.024,1.016,1.009,1.002,0.984,0.96,0.94,0.926,0.919,0.917,0.923,0.938,0.962,0.996,1.037,1.071,1.092,1.111,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.1,1.065,1.032,1.001,0.959,0.911,0.869,0.835,0.809,0.789,0.776,0.769,0.773,0.788,0.812,0.844,0.877,0.904,0.931,0.964,0.995,1.012,1.019,1.028,1.039,1.044] },\n    { key: \"amorf-kidney-luks\", label: \"Kidney L\u00FCks\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 26, category: \"runner\", radii: [0.888,0.893,0.902,0.911,0.923,0.941,0.964,0.987,1.006,1.029,1.057,1.081,1.098,1.116,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.113,1.09,1.062,1.038,1.012,0.977,0.943,0.917,0.892,0.862,0.833,0.811,0.795,0.781,0.769,0.761,0.759,0.762,0.77,0.783,0.802,0.828,0.86,0.895,0.938,0.992,1.047,1.09,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.083,1.042,1.007,0.974,0.945,0.923,0.907,0.897,0.89] },\n    { key: \"amorf-mars-tasi\", label: \"Mars Ta\u015F\u0131\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 27, category: \"character\", radii: [1.049,1.048,1.045,1.031,1.014,1.004,0.999,0.999,1.004,1.016,1.033,1.051,1.072,1.1,1.12,1.12,1.112,1.105,1.093,1.059,1.021,0.991,0.967,0.946,0.931,0.922,0.918,0.916,0.918,0.925,0.93,0.926,0.921,0.922,0.924,0.923,0.924,0.931,0.941,0.95,0.963,0.981,0.996,0.995,0.987,0.983,0.976,0.956,0.932,0.913,0.902,0.899,0.905,0.918,0.937,0.96,0.989,1.025,1.056,1.068,1.075,1.086,1.092,1.083,1.072,1.067,1.064,1.058,1.056,1.06,1.063,1.056] },\n    { key: \"amorf-lava-soft\", label: \"Lava Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 28, category: \"character\", radii: [1.067,1.062,1.051,1.023,0.992,0.967,0.945,0.922,0.902,0.889,0.883,0.883,0.889,0.901,0.915,0.928,0.944,0.967,0.989,1.002,1.014,1.032,1.051,1.062,1.071,1.086,1.101,1.108,1.113,1.12,1.12,1.118,1.102,1.09,1.073,1.037,0.997,0.963,0.933,0.9,0.871,0.849,0.838,0.84,0.851,0.868,0.891,0.919,0.953,0.994,1.031,1.05,1.065,1.085,1.098,1.088,1.07,1.058,1.047,1.028,1.008,0.995,0.988,0.987,0.992,1.003,1.017,1.03,1.044,1.064,1.079,1.076] },\n    { key: \"amorf-kum-tepesi\", label: \"Kum Tepesi\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 29, category: \"blob\", radii: [1.096,1.069,1.044,1.015,0.98,0.95,0.925,0.904,0.887,0.877,0.874,0.878,0.888,0.905,0.923,0.939,0.959,0.984,1.009,1.021,1.032,1.048,1.062,1.063,1.059,1.058,1.057,1.046,1.031,1.022,1.014,1.006,1.001,1.001,1.004,1.012,1.024,1.038,1.046,1.055,1.068,1.074,1.069,1.062,1.058,1.049,1.029,1.007,0.992,0.979,0.96,0.94,0.925,0.917,0.911,0.905,0.901,0.904,0.913,0.925,0.937,0.955,0.979,1.006,1.029,1.05,1.077,1.102,1.113,1.116,1.12,1.118] },\n    { key: \"amorf-cicek-sade\", label: \"\u00C7i\u00E7ek Sade\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 30, category: \"character\", radii: [1.034,1.042,1.045,1.028,1.003,0.983,0.971,0.971,0.981,0.999,1.023,1.048,1.076,1.109,1.12,1.12,1.098,1.071,1.042,1.003,0.966,0.938,0.926,0.933,0.95,0.972,0.987,0.992,0.996,1,0.988,0.958,0.925,0.901,0.886,0.881,0.884,0.894,0.912,0.936,0.97,1.012,1.052,1.071,1.072,1.072,1.069,1.052,1.025,1,0.987,0.989,1.004,1.028,1.052,1.067,1.081,1.094,1.088,1.055,1.015,0.982,0.955,0.932,0.915,0.907,0.912,0.93,0.958,0.993,1.021,1.03] },\n    { key: \"amorf-petal-tek\", label: \"Petal Tek\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 31, category: \"runner\", radii: [0.938,0.949,0.966,0.982,0.999,1.022,1.054,1.09,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.09,1.044,0.993,0.947,0.909,0.879,0.852,0.831,0.817,0.808,0.803,0.8,0.802,0.809,0.822,0.836,0.848,0.864,0.887,0.912,0.934,0.951,0.972,0.994,1.01,1.019,1.028,1.035,1.033,1.03,1.028,1.021,1.014,1.01,1.002,0.995,0.99,0.982,0.971,0.963,0.958,0.951,0.941,0.934,0.932,0.934,0.934,0.934] },\n    { key: \"amorf-petal-cift\", label: \"Petal \u00C7ift\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 32, category: \"character\", radii: [1.043,1.052,1.061,1.062,1.058,1.06,1.066,1.071,1.076,1.085,1.097,1.105,1.109,1.116,1.12,1.109,1.089,1.071,1.049,1.012,0.975,0.945,0.921,0.903,0.891,0.887,0.889,0.899,0.916,0.936,0.954,0.967,0.984,1.005,1.02,1.021,1.02,1.025,1.03,1.026,1.019,1.017,1.019,1.021,1.022,1.029,1.039,1.045,1.048,1.054,1.058,1.048,1.029,1.012,0.992,0.96,0.926,0.899,0.88,0.866,0.859,0.859,0.865,0.88,0.902,0.928,0.95,0.968,0.989,1.015,1.035,1.04] },\n    { key: \"amorf-organik-kalkan\", label: \"Organik Kalkan\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 33, category: \"runner\", radii: [0.957,0.978,0.999,1.01,1.02,1.036,1.055,1.07,1.079,1.092,1.108,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.116,1.12,1.12,1.12,1.12,1.12,1.12,1.116,1.092,1.06,1.032,1.009,0.983,0.955,0.931,0.915,0.902,0.889,0.879,0.876,0.878,0.883,0.89,0.902,0.921,0.941,0.958,0.978,1.003,1.027,1.039,1.05,1.061,1.061,1.049,1.037,1.022,0.994,0.966,0.942,0.919,0.898,0.881,0.87,0.863,0.86,0.864,0.87,0.876,0.884,0.899,0.916,0.931,0.942] },\n    { key: \"amorf-yassi-kaya\", label: \"Yass\u0131 Kaya\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 34, category: \"soft\", radii: [1.12,1.12,1.12,1.12,1.089,1.063,1.042,1.028,1.021,1.015,1.006,0.998,0.996,0.994,0.983,0.967,0.955,0.949,0.944,0.935,0.927,0.926,0.93,0.936,0.942,0.953,0.969,0.984,0.991,0.998,1.01,1.021,1.03,1.042,1.06,1.084,1.114,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.086,1.047,0.999,0.954,0.918,0.89,0.865,0.845,0.832,0.824,0.821,0.817,0.816,0.822,0.832,0.845,0.856,0.871,0.892,0.919,0.949,0.985,1.028,1.072,1.102,1.12,1.12,1.12] },\n    { key: \"amorf-ekru-zen\", label: \"Ekru Zen\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 35, category: \"soft\", radii: [0.954,0.957,0.962,0.961,0.957,0.956,0.961,0.967,0.973,0.982,0.996,1.013,1.029,1.048,1.069,1.081,1.085,1.089,1.086,1.064,1.036,1.011,0.983,0.954,0.928,0.91,0.896,0.888,0.886,0.888,0.891,0.895,0.905,0.918,0.928,0.932,0.937,0.947,0.96,0.966,0.969,0.976,0.989,1.003,1.016,1.033,1.056,1.081,1.104,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.111,1.102,1.082,1.05,1.021,0.997,0.978,0.964,0.956,0.952,0.948,0.946,0.949,0.956,0.959,0.956] },\n    { key: \"amorf-golge-oval\", label: \"G\u00F6lge Oval\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 36, category: \"soft\", radii: [0.986,0.991,0.998,1,0.998,1.001,1.01,1.019,1.025,1.033,1.047,1.065,1.082,1.102,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.097,1.059,1.023,0.991,0.959,0.931,0.91,0.895,0.884,0.877,0.877,0.88,0.884,0.886,0.891,0.902,0.914,0.919,0.919,0.923,0.931,0.937,0.935,0.934,0.937,0.944,0.949,0.957,0.971,0.986,1.002,1.023,1.043,1.052,1.059,1.066,1.065,1.056,1.049,1.043,1.03,1.017,1.009,1.004,0.996,0.989,0.988,0.991,0.992,0.988] },\n    { key: \"amorf-soft-blob\", label: \"Soft Blob\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 37, category: \"blob\", radii: [1.049,1.025,1.005,0.987,0.973,0.965,0.961,0.957,0.955,0.959,0.963,0.962,0.959,0.962,0.969,0.978,0.991,1.01,1.029,1.04,1.052,1.067,1.073,1.055,1.03,1.01,0.987,0.956,0.926,0.904,0.894,0.897,0.909,0.929,0.953,0.978,1.007,1.044,1.077,1.089,1.093,1.101,1.106,1.096,1.08,1.07,1.06,1.044,1.027,1.015,1.002,0.976,0.949,0.927,0.908,0.888,0.87,0.861,0.862,0.878,0.905,0.94,0.978,1.011,1.049,1.091,1.12,1.12,1.12,1.118,1.11,1.081] },\n    { key: \"amorf-river-stone\", label: \"River Stone\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 38, category: \"blob\", radii: [0.965,0.972,0.979,0.978,0.973,0.973,0.975,0.969,0.957,0.948,0.941,0.93,0.916,0.905,0.899,0.894,0.892,0.895,0.903,0.913,0.927,0.946,0.965,0.98,0.998,1.018,1.031,1.036,1.043,1.051,1.052,1.044,1.037,1.035,1.031,1.02,1.009,1.005,1.003,0.999,0.995,0.996,1.003,1.009,1.016,1.028,1.045,1.059,1.07,1.086,1.102,1.109,1.111,1.116,1.118,1.107,1.093,1.083,1.069,1.048,1.029,1.015,1,0.984,0.974,0.968,0.962,0.957,0.956,0.96,0.964,0.963] },\n    { key: \"amorf-corner-flow\", label: \"Corner Flow\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 39, category: \"character\", radii: [0.914,0.903,0.896,0.888,0.879,0.874,0.873,0.874,0.874,0.878,0.886,0.894,0.901,0.909,0.921,0.931,0.936,0.945,0.954,0.959,0.961,0.968,0.975,0.979,0.985,0.996,1.008,1.019,1.034,1.053,1.07,1.084,1.102,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.105,1.081,1.059,1.042,1.027,1.01,0.996,0.988,0.983,0.978,0.977,0.98,0.983,0.983,0.985,0.992,0.995,0.99,0.984,0.984,0.983,0.97,0.957,0.949,0.942,0.93] },\n    { key: \"amorf-minik-nook\", label: \"Minik Nook\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 40, category: \"blob\", radii: [0.956,0.943,0.933,0.921,0.911,0.905,0.905,0.906,0.909,0.917,0.93,0.944,0.956,0.971,0.989,1.001,1.009,1.02,1.028,1.024,1.019,1.016,1.01,1.001,0.995,0.992,0.989,0.987,0.99,0.996,1,1.003,1.011,1.024,1.034,1.038,1.043,1.055,1.066,1.067,1.062,1.061,1.062,1.057,1.042,1.027,1.016,1.002,0.984,0.968,0.957,0.95,0.946,0.948,0.955,0.967,0.984,1.005,1.023,1.038,1.055,1.071,1.076,1.073,1.072,1.072,1.06,1.041,1.025,1.013,0.998,0.976] },\n    { key: \"amorf-yuva\", label: \"Yuva\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 41, category: \"blob\", radii: [1.049,1.044,1.039,1.024,1.008,0.998,0.989,0.972,0.956,0.945,0.937,0.927,0.92,0.918,0.921,0.924,0.931,0.944,0.959,0.971,0.985,1.005,1.024,1.033,1.042,1.056,1.067,1.063,1.055,1.052,1.047,1.027,1.004,0.987,0.971,0.948,0.924,0.908,0.895,0.883,0.875,0.873,0.875,0.88,0.889,0.904,0.922,0.937,0.954,0.978,1.002,1.016,1.03,1.05,1.068,1.074,1.078,1.088,1.096,1.094,1.09,1.092,1.095,1.089,1.083,1.083,1.084,1.077,1.071,1.071,1.07,1.06] },\n    { key: \"amorf-tek-omuz\", label: \"Tek Omuz\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 42, category: \"runner\", radii: [1.023,1.027,1.035,1.041,1.049,1.064,1.084,1.106,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.076,1.029,0.987,0.943,0.903,0.872,0.847,0.826,0.809,0.799,0.793,0.791,0.79,0.792,0.8,0.812,0.823,0.832,0.844,0.862,0.88,0.89,0.899,0.913,0.927,0.934,0.939,0.947,0.957,0.963,0.971,0.982,0.992,1.003,1.018,1.03,1.039,1.05,1.06,1.061,1.058,1.059,1.06,1.052,1.042,1.036,1.035,1.031,1.025] },\n    { key: \"amorf-genis-omuz\", label: \"Geni\u015F Omuz\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 43, category: \"runner\", radii: [0.982,0.984,0.989,0.993,0.999,1.013,1.032,1.053,1.079,1.113,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.118,1.1,1.08,1.058,1.04,1.026,1.009,0.985,0.963,0.948,0.931,0.906,0.881,0.861,0.847,0.833,0.821,0.814,0.812,0.816,0.827,0.844,0.867,0.891,0.914,0.94,0.967,0.985,0.992,0.999,1.003,0.995,0.983,0.975,0.968,0.961,0.957,0.958,0.959,0.962,0.969,0.978,0.981,0.981,0.984,0.989,0.99,0.985] },\n    { key: \"amorf-yari-kalp\", label: \"Yar\u0131 Kalp\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 44, category: \"character\", radii: [1.046,1.065,1.085,1.093,1.097,1.105,1.114,1.113,1.102,1.093,1.086,1.071,1.05,1.03,1.013,0.992,0.971,0.954,0.941,0.926,0.914,0.907,0.901,0.895,0.892,0.892,0.891,0.888,0.889,0.892,0.894,0.893,0.896,0.904,0.912,0.916,0.924,0.937,0.953,0.966,0.98,0.999,1.023,1.042,1.058,1.078,1.1,1.115,1.12,1.12,1.12,1.12,1.114,1.101,1.087,1.061,1.034,1.012,0.992,0.971,0.955,0.945,0.938,0.935,0.939,0.947,0.956,0.966,0.981,1.001,1.02,1.032] },\n    { key: \"amorf-bumerang-soft\", label: \"Bumerang Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 45, category: \"character\", radii: [1.014,1.04,1.061,1.065,1.064,1.068,1.069,1.054,1.037,1.025,1.015,0.999,0.984,0.975,0.97,0.964,0.962,0.966,0.971,0.972,0.974,0.982,0.99,0.986,0.981,0.982,0.979,0.965,0.95,0.939,0.931,0.917,0.906,0.9,0.9,0.904,0.914,0.93,0.951,0.975,1.005,1.043,1.08,1.105,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.12,1.117,1.074,1.028,0.99,0.957,0.922,0.892,0.869,0.855,0.85,0.852,0.861,0.875,0.892,0.915,0.945,0.974,0.995] },\n    { key: \"amorf-oval-bozum\", label: \"Oval Bozum\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 46, category: \"blob\", radii: [1.007,0.993,0.983,0.975,0.97,0.971,0.978,0.984,0.99,1,1.012,1.016,1.009,1.001,0.996,0.991,0.985,0.984,0.991,1.004,1.025,1.049,1.067,1.075,1.082,1.087,1.078,1.059,1.041,1.028,1.014,1,0.992,0.989,0.988,0.984,0.984,0.99,0.994,0.985,0.97,0.958,0.95,0.937,0.919,0.903,0.894,0.892,0.899,0.913,0.931,0.949,0.967,0.989,1.008,1.009,1.005,1.004,1.005,1.005,1.009,1.018,1.026,1.037,1.053,1.069,1.072,1.065,1.06,1.057,1.049,1.028] },\n    { key: \"amorf-kiyi-soft\", label: \"K\u0131y\u0131 Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 47, category: \"blob\", radii: [0.961,0.951,0.94,0.923,0.904,0.889,0.877,0.865,0.856,0.853,0.853,0.857,0.866,0.88,0.895,0.911,0.93,0.956,0.983,1,1.018,1.041,1.067,1.083,1.093,1.107,1.12,1.12,1.12,1.12,1.12,1.12,1.117,1.113,1.112,1.108,1.106,1.108,1.109,1.108,1.112,1.115,1.11,1.103,1.101,1.097,1.081,1.062,1.049,1.038,1.02,0.999,0.982,0.971,0.961,0.946,0.932,0.924,0.921,0.918,0.915,0.916,0.922,0.931,0.935,0.942,0.954,0.965,0.967,0.969,0.973,0.972] },\n    { key: \"amorf-yamuk-soft\", label: \"Yamuk Soft\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 48, category: \"character\", radii: [1.067,1.083,1.097,1.096,1.09,1.088,1.089,1.083,1.074,1.069,1.069,1.069,1.072,1.079,1.089,1.092,1.093,1.097,1.096,1.075,1.049,1.027,0.998,0.959,0.922,0.891,0.865,0.844,0.828,0.818,0.815,0.818,0.827,0.842,0.856,0.866,0.878,0.895,0.911,0.916,0.917,0.921,0.928,0.932,0.934,0.94,0.952,0.966,0.983,1.007,1.033,1.051,1.068,1.088,1.105,1.106,1.102,1.1,1.091,1.068,1.044,1.027,1.012,0.999,0.992,0.991,0.995,1.001,1.014,1.032,1.049,1.058] },\n    { key: \"amorf-sahil-cizgi\", label: \"Sahil \u00C7izgi\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 49, category: \"character\", radii: [1.044,1.037,1.029,1.013,0.99,0.97,0.957,0.95,0.949,0.956,0.969,0.989,1.016,1.051,1.083,1.094,1.101,1.112,1.12,1.12,1.12,1.12,1.12,1.104,1.082,1.066,1.056,1.049,1.047,1.051,1.056,1.057,1.062,1.066,1.06,1.04,1.018,0.997,0.966,0.93,0.898,0.874,0.857,0.846,0.842,0.845,0.854,0.871,0.895,0.923,0.946,0.961,0.977,0.998,1.014,1.008,0.997,0.991,0.987,0.976,0.962,0.951,0.947,0.947,0.951,0.961,0.977,0.993,1.007,1.024,1.043,1.05] },\n    { key: \"amorf-mono-organik\", label: \"Mono Organik\", source: \"amorf-sales-50\", preferredShape: \"amorf\", rank: 50, category: \"blob\", radii: [0.976,0.974,0.975,0.972,0.968,0.969,0.975,0.983,0.991,1.003,1.02,1.036,1.044,1.054,1.065,1.069,1.065,1.064,1.064,1.062,1.063,1.067,1.068,1.067,1.069,1.069,1.055,1.033,1.016,0.998,0.971,0.94,0.914,0.894,0.877,0.86,0.847,0.84,0.837,0.835,0.836,0.841,0.85,0.861,0.87,0.882,0.9,0.921,0.944,0.972,1.004,1.034,1.062,1.094,1.12,1.12,1.12,1.12,1.12,1.12,1.116,1.097,1.075,1.054,1.039,1.028,1.016,1.005,0.999,0.998,0.994,0.985] }\n  ];\n\n  SHAPE_PRESETS = SHAPE_PRESETS.concat(AMORF_SALES_SHAPE_PRESETS);\n\n  var DESIGN_TEMPLATES = [\n    { id: \"grid-2x2-arc\", label: \"4 B\u00F6lge Yayl\u0131\", outerShape: \"rect\" },\n    { id: \"side-panel-arc\", label: \"Yan Panel Yay\", outerShape: \"rect\" },\n    { id: \"diagonal-triangle\", label: \"\u00DC\u00E7gen B\u00F6l\u00FCml\u00FC\", outerShape: \"rect\" },\n    { id: \"rounded-runner\", label: \"Oval U\u00E7lu\", outerShape: \"rect\" },\n    { id: \"custom-lite\", label: \"Serbest Hafif\", outerShape: \"rect\" },\n    { id: \"grid-2x2\", label: \"4 Kare Blok\", outerShape: \"rect\" },\n    { id: \"vertical-2\", label: \"\u0130ki Dikey Panel\", outerShape: \"rect\" },\n    { id: \"horizontal-2\", label: \"\u0130ki Yatay Panel\", outerShape: \"rect\" },\n    { id: \"vertical-thirds\", label: \"\u00DC\u00E7 Dikey Blok\", outerShape: \"rect\" },\n    { id: \"horizontal-thirds\", label: \"\u00DC\u00E7 Yatay Blok\", outerShape: \"rect\" },\n    { id: \"center-panel\", label: \"Orta Panel\", outerShape: \"rect\" },\n    { id: \"corner-blocks\", label: \"K\u00F6\u015Fe Bloklar\u0131\", outerShape: \"rect\" },\n    { id: \"frame-inner\", label: \"\u0130\u00E7 \u00C7er\u00E7eve\", outerShape: \"rect\" },\n    { id: \"diagonal-split\", label: \"\u00C7apraz \u0130ki Par\u00E7a\", outerShape: \"rect\" },\n    { id: \"chevron-v\", label: \"V B\u00F6l\u00FCml\u00FC\", outerShape: \"rect\" },\n    { id: \"mosaic-5\", label: \"Be\u015Fli Mozaik\", outerShape: \"rect\" },\n    { id: \"six-panel\", label: \"Alt\u0131l\u0131 Panel\", outerShape: \"rect\" },\n    { id: \"arch-end\", label: \"Tek U\u00E7 Yay\", outerShape: \"rect\" },\n    { id: \"asymmetric-blocks\", label: \"Asimetrik Blok\", outerShape: \"rect\" },\n    { id: \"wave-partition\", label: \"Dalga B\u00F6l\u00FCml\u00FC\", outerShape: \"rect\" },\n    { id: \"amorf-papatya-param\", label: \"Papatya Parametrik\", outerShape: \"organic\", preferredShape: \"amorf\", category: \"amorf-piece\", source: \"parametric-petal\", countOptions: [4, 5, 6, 7, 8] },\n    { id: \"premium-quarter-arc-block\", label: \"Premium: Yayl\u0131 Blok\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-pinwheel-kite\", label: \"Premium: Kite\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-faceted-polygon\", label: \"Premium: Facet\", outerShape: \"polygon\", premium: true, preferredShape: \"amorf\" },\n    { id: \"premium-rounded-inset-frame\", label: \"Premium: \u0130\u00E7 Panel\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-arch-panel\", label: \"Premium: Kemer Panel\", outerShape: \"arch\", premium: true, preferredShape: \"oval\" },\n    { id: \"premium-multi-arc-block\", label: \"Premium: \u00C7oklu Yay\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-organic-island\", label: \"Premium: Ada\", outerShape: \"organic\", premium: true, preferredShape: \"amorf\" },\n    { id: \"premium-diagonal-ribbon\", label: \"Premium: \u00C7apraz \u015Eerit\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-corner-fan\", label: \"Premium: K\u00F6\u015Fe Fan\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-capsule-split\", label: \"Premium: Kaps\u00FCl\", outerShape: \"oval\", premium: true, preferredShape: \"oval\" },\n    { id: \"premium-stepped-geometric\", label: \"Premium: Kademeli\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-medallion-frame\", label: \"Premium: Madalyon\", outerShape: \"rect\", premium: true, preferredShape: \"yuvarlak\" },\n    { id: \"premium-wave-layers\", label: \"Premium: Dalga Katman\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-vertical-flow\", label: \"Premium: Dikey Ak\u0131\u015F\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-sunburst\", label: \"Premium: G\u00FCne\u015F Dilim\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-orbit-fan\", label: \"Premium: Orbit Fan\", outerShape: \"organic\", premium: true, preferredShape: \"amorf\" },\n    { id: \"premium-portal-frame\", label: \"Premium: Portal Frame\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-tangram-facet\", label: \"Premium: Tangram\", outerShape: \"polygon\", premium: true, preferredShape: \"amorf\" },\n    { id: \"premium-hex-cut\", label: \"Premium: Hexa Kesim\", outerShape: \"polygon\", premium: true, preferredShape: \"amorf\" },\n    { id: \"premium-lens-panel\", label: \"Premium: Lens Panel\", outerShape: \"oval\", premium: true, preferredShape: \"oval\" },\n    { id: \"premium-cross-axis\", label: \"Premium: Aks Kesi\u015Fim\", outerShape: \"rect\", premium: true, preferredShape: \"dikdortgen\" },\n    { id: \"premium-trapezoid-rhythm\", label: \"Premium: Trapez Ritim\", outerShape: \"polygon\", premium: true, preferredShape: \"amorf\" }\n  ];\n\n  var DESIGN_TEMPLATE_CATEGORIES = [\n    { id: \"panel\", label: \"Panel ve Blok\" },\n    { id: \"flow\", label: \"Ak\u0131\u015F / Organik\" },\n    { id: \"amorf-piece\", label: \"Par\u00E7al\u0131 Amorf\" },\n    { id: \"oval\", label: \"Oval / Yuvarlak\" },\n    { id: \"geometric\", label: \"\u00C7apraz / Geometrik\" },\n    { id: \"premium\", label: \"Premium\" }\n  ];\n\n  var STANDARD_TEMPLATE_CATEGORIES = {\n    \"grid-2x2-arc\": \"panel\",\n    \"side-panel-arc\": \"panel\",\n    \"rounded-runner\": \"oval\",\n    \"custom-lite\": \"panel\",\n    \"grid-2x2\": \"panel\",\n    \"vertical-2\": \"panel\",\n    \"horizontal-2\": \"panel\",\n    \"vertical-thirds\": \"panel\",\n    \"horizontal-thirds\": \"panel\",\n    \"center-panel\": \"panel\",\n    \"corner-blocks\": \"panel\",\n    \"frame-inner\": \"panel\",\n    \"diagonal-triangle\": \"geometric\",\n    \"diagonal-split\": \"geometric\",\n    \"chevron-v\": \"geometric\",\n    \"mosaic-5\": \"panel\",\n    \"six-panel\": \"panel\",\n    \"arch-end\": \"oval\",\n    \"asymmetric-blocks\": \"panel\",\n    \"wave-partition\": \"flow\",\n    \"amorf-papatya-param\": \"amorf-piece\"\n  };\n\n  var CLAUDE_AMORF_TEMPLATE_SPECS = [\n    { id: \"amorf-nilufer\", label: \"Nil\u00FCfer\", layout: \"petal-center\", outerStyle: \"lotus\", count: 7, petals: 6, labels: [\"Yaprak 1\", \"Yaprak 2\", \"Yaprak 3\", \"Yaprak 4\", \"Yaprak 5\", \"Yaprak 6\", \"Merkez\"] },\n    { id: \"amorf-deniz-kabugu-spiral\", label: \"Deniz Kabu\u011Fu Spiral\", layout: \"shell\", outerStyle: \"shell\", count: 6, labels: [\"\u0130\u00E7 Spiral\", \"Kabuk Kat\u0131 1\", \"Kabuk Kat\u0131 2\", \"Kabuk Kat\u0131 3\", \"Kabuk Kat\u0131 4\", \"D\u0131\u015F Kabuk\"] },\n    { id: \"amorf-palmet\", label: \"Palmet\", layout: \"palmet\", outerStyle: \"fan\", count: 7, labels: [\"Orta Palmet\", \"Sol Yaprak\", \"Sa\u011F Yaprak\", \"\u00DCst Dilim\", \"Sol Dilim\", \"Sa\u011F Dilim\", \"Alt K\u00F6k\"] },\n    { id: \"amorf-orkide\", label: \"Orkide\", layout: \"petal-center\", outerStyle: \"orchid\", count: 6, petals: 5, labels: [\"Ta\u00E7 1\", \"Ta\u00E7 2\", \"Ta\u00E7 3\", \"Ta\u00E7 4\", \"Ta\u00E7 5\", \"Merkez\"] },\n    { id: \"amorf-yaprak-kumesi\", label: \"Yaprak K\u00FCmesi\", layout: \"leaf-cluster\", outerStyle: \"leaf\", count: 6, labels: [\"\u00DCst Yaprak\", \"Sol Yaprak\", \"Sa\u011F Yaprak\", \"Orta Yaprak\", \"Alt Sol Yaprak\", \"Alt Sa\u011F Yaprak\"] },\n    { id: \"amorf-cakil-kumesi\", label: \"\u00C7ak\u0131l K\u00FCmesi\", layout: \"pebble\", outerStyle: \"pebble\", count: 7, labels: [\"\u00C7ak\u0131l 1\", \"\u00C7ak\u0131l 2\", \"\u00C7ak\u0131l 3\", \"\u00C7ak\u0131l 4\", \"\u00C7ak\u0131l 5\", \"\u00C7ak\u0131l 6\", \"\u00C7ak\u0131l 7\"] },\n    { id: \"amorf-dalga-seritleri\", label: \"Dalga \u015Eeritleri\", layout: \"wave-bands\", outerStyle: \"wave\", count: 5, labels: [\"\u00DCst Dalga\", \"A\u00E7\u0131k \u015Eerit\", \"Orta Dalga\", \"G\u00F6lge \u015Eerit\", \"Alt Dalga\"] },\n    { id: \"amorf-hilal-halka\", label: \"Hilal Halka\", layout: \"crescent-ring\", outerStyle: \"crescent\", count: 5, labels: [\"\u0130\u00E7 Hilal\", \"Sol Halka\", \"\u00DCst Halka\", \"Sa\u011F Halka\", \"D\u0131\u015F Hilal\"] },\n    { id: \"amorf-yelpaze-dilimleri\", label: \"Yelpaze Dilimleri\", layout: \"fan\", outerStyle: \"fan\", count: 7, labels: [\"Dilim 1\", \"Dilim 2\", \"Dilim 3\", \"Dilim 4\", \"Dilim 5\", \"Dilim 6\", \"Merkez K\u00F6k\"] },\n    { id: \"amorf-spiral-parcalar\", label: \"Spiral Par\u00E7alar\", layout: \"spiral\", outerStyle: \"spiral\", count: 6, labels: [\"Spiral 1\", \"Spiral 2\", \"Spiral 3\", \"Spiral 4\", \"Spiral 5\", \"Spiral 6\"] },\n    { id: \"amorf-bulut-parcalari\", label: \"Bulut Par\u00E7alar\u0131\", layout: \"cloud\", outerStyle: \"cloud\", count: 6, labels: [\"Bulut 1\", \"Bulut 2\", \"Bulut 3\", \"Bulut 4\", \"Bulut 5\", \"Bulut 6\"] },\n    { id: \"amorf-uc-bolge-ortusme\", label: \"\u00DC\u00E7 B\u00F6lge \u00D6rt\u00FC\u015Fme\", layout: \"overlap-bands\", outerStyle: \"overlap\", count: 3, labels: [\"Sol Form\", \"Orta Form\", \"Sa\u011F Form\"] },\n    { id: \"amorf-organik-mozaik\", label: \"Organik Mozaik\", layout: \"mosaic\", outerStyle: \"mosaic\", count: 8, labels: [\"Mozaik 1\", \"Mozaik 2\", \"Mozaik 3\", \"Mozaik 4\", \"Mozaik 5\", \"Mozaik 6\", \"Mozaik 7\", \"Mozaik 8\"] },\n    { id: \"amorf-yolluk-yapraklar\", label: \"Yolluk Yapraklar\", layout: \"runner-leaves\", outerStyle: \"runner\", count: 5, labels: [\"\u00DCst Yaprak\", \"\u0130kinci Yaprak\", \"Orta Yaprak\", \"D\u00F6rd\u00FCnc\u00FC Yaprak\", \"Alt Yaprak\"] },\n    { id: \"amorf-damla-cember\", label: \"Damla \u00C7ember\", layout: \"drop-ring\", outerStyle: \"drop\", count: 7, labels: [\"Damla 1\", \"Damla 2\", \"Damla 3\", \"Damla 4\", \"Damla 5\", \"Damla 6\", \"Merkez\"] },\n    { id: \"amorf-yonca\", label: \"Yonca\", layout: \"clover\", outerStyle: \"clover\", count: 5, labels: [\"Yaprak 1\", \"Yaprak 2\", \"Yaprak 3\", \"Yaprak 4\", \"Merkez\"] },\n    { id: \"amorf-kapsul-akis\", label: \"Kaps\u00FCl Ak\u0131\u015F\", layout: \"capsule-flow\", outerStyle: \"capsule\", count: 5, labels: [\"\u00DCst Kaps\u00FCl\", \"Ak\u0131\u015F 1\", \"Orta Kaps\u00FCl\", \"Ak\u0131\u015F 2\", \"Alt Kaps\u00FCl\"] },\n    { id: \"amorf-cift-hilal\", label: \"\u00C7ift Hilal\", layout: \"double-crescent\", outerStyle: \"double-crescent\", count: 4, labels: [\"Sol Hilal\", \"\u0130\u00E7 Sol\", \"\u0130\u00E7 Sa\u011F\", \"Sa\u011F Hilal\"] },\n    { id: \"amorf-organik-alti-bolge\", label: \"Organik Alt\u0131 B\u00F6lge\", layout: \"organic-six\", outerStyle: \"organic-six\", count: 6, labels: [\"\u00DCst Sol\", \"\u00DCst Sa\u011F\", \"Orta Sol\", \"Orta Merkez\", \"Orta Sa\u011F\", \"Alt Form\"] }\n  ];\n\n  var CLAUDE_AMORF_TEMPLATE_SPEC_BY_ID = {};\n  CLAUDE_AMORF_TEMPLATE_SPECS.forEach(function (spec) {\n    CLAUDE_AMORF_TEMPLATE_SPEC_BY_ID[spec.id] = spec;\n  });\n\n  var ORGANIC_TEMPLATE_SPECS = [\n    {\"id\":\"pastel-nehir\",\"label\":\"Pastel Nehir\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.23,0.18,0.16,0.19,0.2,0.17],[0.43,0.39,0.36,0.38,0.42,0.41,0.34],[0.6,0.56,0.56,0.61,0.64,0.59,0.52],[0.77,0.74,0.78,0.83,0.83,0.77,0.72],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"krem-s-yolu\",\"label\":\"Krem S Yolu\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.41,0.36,0.3,0.31,0.38,0.38,0.29],[0.7,0.64,0.63,0.7,0.75,0.69,0.59],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Alan\",\"Yumu\u015Fak Yol\",\"Sa\u011F Alan\"]},\n    {\"id\":\"kahve-serit\",\"label\":\"Kahve \u015Eerit\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.2,0.17,0.16,0.19,0.22,0.2,0.17],[0.34,0.32,0.34,0.39,0.39,0.35,0.32],[0.47,0.48,0.53,0.57,0.55,0.5,0.49],[0.62,0.65,0.72,0.73,0.7,0.66,0.68],[0.79,0.84,0.89,0.88,0.84,0.84,0.88],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Koyu\",\"Kum \u0130nce\",\"Orta Ak\u0131\u015F\",\"Krem \u015Eerit\",\"Renk Yolu\",\"Sa\u011F G\u00F6lge\"]},\n    {\"id\":\"leylak-akis\",\"label\":\"Leylak Ak\u0131\u015F\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.19,0.21,0.26,0.28,0.25,0.22],[0.39,0.39,0.44,0.49,0.47,0.42,0.41],[0.56,0.6,0.67,0.69,0.65,0.61,0.63],[0.75,0.82,0.88,0.88,0.83,0.82,0.87],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"zeytin-mola\",\"label\":\"Zeytin Mola\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.26,0.21,0.22,0.25,0.22,0.14,0.13],[0.47,0.47,0.52,0.52,0.44,0.38,0.38],[0.7,0.75,0.8,0.76,0.67,0.63,0.65],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"menderes-krem\",\"label\":\"Menderes Krem\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.23,0.22,0.26,0.27,0.22,0.15,0.16],[0.47,0.5,0.55,0.52,0.43,0.39,0.44],[0.72,0.79,0.81,0.75,0.66,0.66,0.72],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"sakin-pastel\",\"label\":\"Sakin Pastel\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.2,0.4,0.6,0.8,1],\"curves\":[[0,0,0,0,0,0],[0.18,0.19,0.23,0.22,0.17,0.14],[0.38,0.43,0.45,0.4,0.34,0.35],[0.6,0.66,0.65,0.58,0.54,0.57],[0.83,0.86,0.82,0.77,0.76,0.81],[1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"kum-bej-yol\",\"label\":\"Kum Bej Yol\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.18,0.22,0.25,0.22,0.17,0.18,0.25],[0.4,0.45,0.45,0.39,0.36,0.4,0.47],[0.63,0.67,0.63,0.57,0.57,0.63,0.67],[0.85,0.86,0.81,0.78,0.8,0.85,0.85],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"mint-kavis\",\"label\":\"Mint Kavis\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.26,0.23,0.21,0.24,0.29,0.29],[0.43,0.43,0.4,0.42,0.48,0.5,0.48],[0.62,0.59,0.58,0.64,0.7,0.7,0.66],[0.79,0.76,0.78,0.86,0.9,0.89,0.84],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"terra-akis\",\"label\":\"Terra Ak\u0131\u015F\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.22,0.17,0.14,0.16,0.17,0.13],[0.43,0.39,0.35,0.36,0.4,0.38,0.3],[0.6,0.55,0.55,0.59,0.61,0.56,0.5],[0.77,0.73,0.76,0.81,0.81,0.74,0.7],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"bohem-serit\",\"label\":\"Bohem \u015Eerit\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.25,0.21,0.17,0.17,0.2,0.2,0.14],[0.42,0.38,0.37,0.4,0.43,0.38,0.32],[0.58,0.55,0.58,0.63,0.63,0.56,0.51],[0.75,0.75,0.81,0.84,0.81,0.74,0.73],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"cayir-krem\",\"label\":\"\u00C7ay\u0131r Krem\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.2,0.4,0.6,0.8,1],\"curves\":[[0,0,0,0,0,0],[0.3,0.25,0.22,0.26,0.29,0.26],[0.51,0.47,0.49,0.55,0.55,0.48],[0.71,0.71,0.78,0.83,0.79,0.71],[1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"deniz-kumu\",\"label\":\"Deniz Kumu\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.19,0.19,0.24,0.25,0.22,0.18],[0.39,0.38,0.43,0.47,0.45,0.39,0.37],[0.56,0.59,0.66,0.68,0.63,0.58,0.59],[0.75,0.81,0.87,0.86,0.81,0.79,0.83],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"sis-kivrim\",\"label\":\"Sis K\u0131vr\u0131m\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.26,0.23,0.27,0.33,0.32,0.26,0.25],[0.47,0.5,0.57,0.59,0.54,0.49,0.51],[0.7,0.78,0.85,0.83,0.76,0.74,0.8],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"krem-kivrak\",\"label\":\"Krem K\u0131vrak\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.23,0.21,0.25,0.25,0.19,0.13,0.13],[0.47,0.5,0.54,0.5,0.41,0.38,0.4],[0.72,0.79,0.8,0.73,0.64,0.63,0.68],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"lila-zeytin\",\"label\":\"Lila Zeytin\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.18,0.19,0.22,0.2,0.14,0.11,0.15],[0.38,0.42,0.44,0.39,0.32,0.32,0.37],[0.6,0.65,0.63,0.56,0.52,0.54,0.59],[0.83,0.86,0.81,0.75,0.74,0.78,0.79],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"kahve-krem-s\",\"label\":\"Kahve Krem S\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.18,0.21,0.23,0.2,0.15,0.15,0.22],[0.4,0.44,0.44,0.37,0.34,0.37,0.43],[0.63,0.66,0.62,0.56,0.55,0.6,0.63],[0.85,0.85,0.8,0.76,0.78,0.82,0.81],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"yesil-menderes\",\"label\":\"Ye\u015Fil Menderes\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.25,0.22,0.19,0.22,0.26,0.26],[0.43,0.42,0.39,0.4,0.45,0.48,0.44],[0.62,0.58,0.57,0.62,0.68,0.68,0.62],[0.79,0.75,0.77,0.84,0.89,0.86,0.81],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"organik-yol\",\"label\":\"Organik Yol\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.3,0.31,0.26,0.26,0.31,0.35,0.32],[0.54,0.51,0.49,0.54,0.61,0.61,0.54],[0.75,0.71,0.74,0.82,0.88,0.84,0.77],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"renkli-menderes\",\"label\":\"Renkli Menderes\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.21,0.17,0.12,0.12,0.14,0.13,0.08],[0.35,0.31,0.29,0.32,0.33,0.29,0.25],[0.49,0.45,0.47,0.51,0.5,0.43,0.42],[0.62,0.62,0.66,0.68,0.65,0.59,0.58],[0.78,0.8,0.84,0.84,0.79,0.75,0.76],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Koyu\",\"Kum \u0130nce\",\"Orta Ak\u0131\u015F\",\"Krem \u015Eerit\",\"Renk Yolu\",\"Sa\u011F G\u00F6lge\"]},\n    {\"id\":\"yumusak-kanyon\",\"label\":\"Yumu\u015Fak Kanyon\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.19,0.16,0.19,0.21,0.18,0.12],[0.4,0.37,0.38,0.42,0.42,0.36,0.3],[0.57,0.56,0.61,0.64,0.61,0.53,0.51],[0.74,0.77,0.83,0.84,0.78,0.73,0.74],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"toprak-nehri\",\"label\":\"Toprak Nehri\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.18,0.18,0.22,0.23,0.19,0.14],[0.39,0.38,0.42,0.45,0.42,0.36,0.34],[0.56,0.59,0.65,0.66,0.6,0.55,0.56],[0.75,0.81,0.86,0.84,0.78,0.76,0.79],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"gri-kumul\",\"label\":\"Gri Kumul\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.26,0.22,0.26,0.31,0.29,0.23,0.22],[0.47,0.49,0.56,0.58,0.52,0.46,0.48],[0.7,0.77,0.84,0.82,0.74,0.71,0.76],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"sari-turkuaz-u\",\"label\":\"Sar\u0131 Turkuaz U\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"band\",\"stops\":[0,0.2,0.4,0.6,0.8,1],\"curves\":[[0,0,0,0,0,0],[0.19,0.19,0.24,0.27,0.24,0.21],[0.37,0.42,0.47,0.47,0.41,0.4],[0.58,0.65,0.68,0.65,0.6,0.61],[0.8,0.87,0.87,0.82,0.81,0.85],[1,1,1,1,1,1]],\"labels\":[\"Sol Krem\",\"\u0130lk Ak\u0131\u015F\",\"Orta Yol\",\"\u0130kinci Ak\u0131\u015F\",\"Sa\u011F Krem\"]},\n    {\"id\":\"meltem-serit\",\"label\":\"Meltem \u015Eerit\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"band\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.23,0.26,0.24,0.16,0.13,0.16],[0.48,0.52,0.54,0.47,0.38,0.38,0.44],[0.76,0.81,0.78,0.69,0.63,0.66,0.71],[1,1,1,1,1,1,1]],\"labels\":[\"Sol Ton\",\"Krem Yol\",\"Renk Ge\u00E7i\u015F\",\"Sa\u011F Ton\"]},\n    {\"id\":\"yaprak-pano\",\"label\":\"Yaprak Pano\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.18,0.18,0.22,0.24,0.22,0.17],[0.4,0.37,0.4,0.43,0.43,0.39,0.36],[0.57,0.58,0.62,0.64,0.61,0.57,0.57],[0.77,0.79,0.83,0.83,0.79,0.76,0.8],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"oval-serit\",\"label\":\"Oval \u015Eerit\",\"outerShape\":\"oval\",\"preferredShape\":\"oval\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.14,0.13,0.16,0.19,0.2,0.17,0.15],[0.27,0.28,0.31,0.34,0.32,0.29,0.29],[0.41,0.43,0.47,0.47,0.44,0.43,0.45],[0.56,0.59,0.61,0.6,0.57,0.57,0.61],[0.71,0.74,0.75,0.72,0.71,0.73,0.78],[0.87,0.89,0.87,0.85,0.86,0.9,0.93],[1,1,1,1,1,1,1]],\"labels\":[\"Tepe Ton\",\"Pudra Bant\",\"Mavi Bant\",\"Somon Bant\",\"Mavi Alt\",\"Pudra Alt\",\"Dip Ton\"]},\n    {\"id\":\"firca-sarmal\",\"label\":\"F\u0131r\u00E7a Sarmal\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.15,0.16,0.21,0.25,0.24,0.2,0.19],[0.31,0.34,0.39,0.4,0.38,0.35,0.37],[0.48,0.53,0.56,0.55,0.52,0.51,0.56],[0.66,0.71,0.72,0.69,0.67,0.69,0.75],[0.85,0.88,0.87,0.83,0.84,0.89,0.92],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"ikili-sarmal\",\"label\":\"\u0130kili Sarmal\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.17,0.18,0.21,0.22,0.16,0.1,0.1],[0.37,0.4,0.43,0.4,0.32,0.3,0.3],[0.59,0.63,0.62,0.56,0.5,0.5,0.52],[0.82,0.84,0.8,0.73,0.7,0.71,0.75],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"optik-akis\",\"label\":\"Optik Ak\u0131\u015F\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.14,0.17,0.2,0.18,0.13,0.09,0.09],[0.32,0.36,0.37,0.33,0.27,0.25,0.28],[0.51,0.54,0.52,0.46,0.42,0.43,0.47],[0.7,0.7,0.66,0.6,0.59,0.62,0.65],[0.88,0.85,0.8,0.76,0.78,0.81,0.82],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"kabuk-katman\",\"label\":\"Kabuk Katman\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.14,0.19,0.21,0.19,0.14,0.12,0.14],[0.33,0.37,0.37,0.33,0.29,0.29,0.32],[0.53,0.55,0.52,0.47,0.45,0.47,0.51],[0.71,0.7,0.65,0.62,0.62,0.66,0.68],[0.88,0.85,0.8,0.78,0.81,0.85,0.84],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"petal-kesit\",\"label\":\"Petal Kesit\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.25,0.21,0.16,0.16,0.21,0.25],[0.45,0.43,0.37,0.35,0.38,0.44,0.46],[0.64,0.6,0.55,0.56,0.61,0.66,0.65],[0.82,0.76,0.74,0.79,0.84,0.86,0.82],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"sakin-petal\",\"label\":\"Sakin Petal\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.2,0.4,0.6,0.8,1],\"curves\":[[0,0,0,0,0,0],[0.26,0.25,0.2,0.17,0.19,0.25],[0.46,0.42,0.37,0.37,0.42,0.47],[0.64,0.58,0.56,0.59,0.65,0.68],[0.8,0.76,0.76,0.82,0.87,0.87],[1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"dogal-katman\",\"label\":\"Do\u011Fal Katman\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.26,0.24,0.2,0.19,0.23,0.29,0.29],[0.45,0.41,0.38,0.4,0.46,0.49,0.48],[0.62,0.57,0.57,0.62,0.68,0.68,0.66],[0.78,0.76,0.79,0.85,0.88,0.87,0.85],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"bulut-harita\",\"label\":\"Bulut Harita\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.26,0.2,0.14,0.13,0.16,0.16,0.12],[0.43,0.37,0.33,0.35,0.37,0.36,0.3],[0.6,0.54,0.54,0.57,0.58,0.54,0.5],[0.77,0.74,0.76,0.79,0.77,0.72,0.7],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"parca-kume\",\"label\":\"Par\u00E7a K\u00FCme\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.18,0.15,0.17,0.19,0.18,0.13],[0.42,0.36,0.36,0.39,0.4,0.36,0.31],[0.59,0.55,0.57,0.6,0.59,0.54,0.51],[0.76,0.76,0.79,0.8,0.77,0.72,0.73],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"sicak-menderes\",\"label\":\"S\u0131cak Menderes\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.18,0.17,0.21,0.22,0.19,0.14],[0.4,0.37,0.39,0.42,0.41,0.36,0.33],[0.57,0.57,0.61,0.62,0.59,0.54,0.54],[0.77,0.79,0.82,0.81,0.77,0.74,0.77],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"tarak-kavis\",\"label\":\"Tarak Kavis\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.17,0.15,0.17,0.2,0.2,0.17,0.13],[0.32,0.32,0.35,0.37,0.35,0.31,0.3],[0.48,0.5,0.53,0.53,0.49,0.46,0.49],[0.65,0.68,0.7,0.68,0.64,0.64,0.68],[0.83,0.86,0.86,0.82,0.8,0.82,0.88],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"yan-kivrim\",\"label\":\"Yan K\u0131vr\u0131m\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.18,0.19,0.23,0.27,0.25,0.2,0.18],[0.37,0.4,0.45,0.46,0.42,0.38,0.4],[0.58,0.63,0.66,0.64,0.59,0.58,0.62],[0.8,0.84,0.85,0.81,0.77,0.79,0.86],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"cift-yol\",\"label\":\"\u00C7ift Yol\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.17,0.2,0.26,0.29,0.26,0.22,0.22],[0.37,0.43,0.48,0.47,0.42,0.4,0.44],[0.59,0.65,0.67,0.64,0.6,0.61,0.67],[0.82,0.86,0.85,0.8,0.79,0.83,0.9],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"orta-menderes\",\"label\":\"Orta Menderes\",\"outerShape\":\"rect\",\"preferredShape\":\"dikdortgen\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.2,0.25,0.29,0.27,0.19,0.13,0.13],[0.48,0.53,0.55,0.49,0.4,0.38,0.41],[0.77,0.81,0.78,0.69,0.63,0.64,0.69],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"\u0130lk Kat\",\"\u0130kinci Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"kanyon-katman\",\"label\":\"Kanyon Katman\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.17,0.22,0.25,0.21,0.15,0.12,0.14],[0.4,0.45,0.44,0.38,0.32,0.32,0.36],[0.63,0.65,0.61,0.55,0.52,0.55,0.58],[0.86,0.84,0.78,0.73,0.73,0.77,0.79],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"yaprak-kat\",\"label\":\"Yaprak Kat\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.25,0.2,0.14,0.14,0.18,0.22],[0.45,0.42,0.36,0.33,0.36,0.41,0.43],[0.64,0.59,0.54,0.54,0.59,0.63,0.62],[0.82,0.76,0.73,0.77,0.82,0.83,0.79],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"renkli-bulut\",\"label\":\"Renkli Bulut\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.21,0.21,0.16,0.13,0.15,0.19,0.21],[0.38,0.35,0.3,0.3,0.34,0.37,0.37],[0.53,0.48,0.46,0.48,0.53,0.54,0.52],[0.67,0.63,0.63,0.67,0.71,0.7,0.67],[0.81,0.78,0.81,0.86,0.88,0.85,0.83],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"yatay-boya\",\"label\":\"Yatay Boya\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.2,0.16,0.15,0.18,0.22,0.23],[0.37,0.34,0.31,0.32,0.37,0.4,0.38],[0.52,0.48,0.47,0.51,0.55,0.56,0.53],[0.65,0.63,0.65,0.7,0.72,0.71,0.69],[0.8,0.8,0.84,0.88,0.88,0.86,0.86],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"yumurta-serit\",\"label\":\"Yumurta \u015Eerit\",\"outerShape\":\"oval\",\"preferredShape\":\"oval\",\"orientation\":\"stack\",\"stops\":[0,0.2,0.4,0.6,0.8,1],\"curves\":[[0,0,0,0,0,0],[0.21,0.19,0.16,0.18,0.22,0.25],[0.36,0.33,0.32,0.36,0.4,0.41],[0.5,0.48,0.5,0.54,0.57,0.56],[0.64,0.64,0.68,0.72,0.73,0.71],[0.79,0.82,0.87,0.9,0.89,0.87],[1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"serbest-katman\",\"label\":\"Serbest Katman\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.24,0.18,0.14,0.15,0.17,0.16,0.1],[0.42,0.36,0.35,0.37,0.38,0.34,0.3],[0.59,0.55,0.56,0.59,0.57,0.51,0.5],[0.76,0.75,0.78,0.79,0.75,0.7,0.7],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"fistik-yol\",\"label\":\"F\u0131st\u0131k Yol\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.22,0.17,0.16,0.19,0.2,0.17,0.11],[0.4,0.36,0.38,0.4,0.39,0.34,0.3],[0.57,0.57,0.6,0.61,0.57,0.52,0.51],[0.77,0.78,0.81,0.8,0.75,0.71,0.74],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst Krem\",\"Yumu\u015Fak Kat\",\"Orta Ak\u0131\u015F\",\"G\u00F6lge Kat\",\"Alt Krem\"]},\n    {\"id\":\"mavi-halka\",\"label\":\"Mavi Halka\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.17,0.14,0.16,0.19,0.18,0.14,0.1],[0.32,0.31,0.34,0.36,0.33,0.29,0.27],[0.48,0.49,0.52,0.52,0.47,0.44,0.46],[0.65,0.68,0.69,0.66,0.62,0.61,0.65],[0.83,0.85,0.85,0.81,0.78,0.8,0.85],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]},\n    {\"id\":\"yay-hatlari\",\"label\":\"Yay Hatlar\u0131\",\"outerShape\":\"organic\",\"preferredShape\":\"amorf\",\"orientation\":\"stack\",\"stops\":[0,0.16,0.32,0.5,0.68,0.84,1],\"curves\":[[0,0,0,0,0,0,0],[0.15,0.15,0.19,0.22,0.2,0.15,0.13],[0.31,0.33,0.37,0.37,0.34,0.3,0.31],[0.48,0.52,0.54,0.52,0.48,0.46,0.5],[0.66,0.7,0.7,0.66,0.63,0.64,0.69],[0.85,0.87,0.85,0.8,0.8,0.84,0.89],[1,1,1,1,1,1,1]],\"labels\":[\"\u00DCst A\u00E7\u0131k\",\"Pudra Kat\",\"Mavi Kat\",\"Somon Kat\",\"G\u00F6lge Kat\",\"Alt A\u00E7\u0131k\"]}\n  ];\n\n  var ORGANIC_TEMPLATE_SPEC_BY_ID = {};\n  ORGANIC_TEMPLATE_SPECS.forEach(function (spec) {\n    ORGANIC_TEMPLATE_SPEC_BY_ID[spec.id] = spec;\n  });\n\n  function templateCategoryFor(item) {\n    if (item.category) return item.category;\n    if (item.premium) return \"premium\";\n    if (item.source === \"gpt-organic\") return item.outerShape === \"oval\" ? \"oval\" : \"flow\";\n    if (STANDARD_TEMPLATE_CATEGORIES[item.id]) return STANDARD_TEMPLATE_CATEGORIES[item.id];\n    if (item.outerShape === \"oval\" || item.outerShape === \"arch\") return \"oval\";\n    if (item.outerShape === \"polygon\") return \"geometric\";\n    return \"panel\";\n  }\n\n  function normalizeDesignTemplateMeta(item) {\n    var fixedRegionCount = Number(item.fixedRegionCount || 0);\n    var normalized = Object.assign({}, item);\n    normalized.source = normalized.source || (normalized.premium ? \"premium\" : \"core\");\n    normalized.category = templateCategoryFor(normalized);\n    normalized.preferredShape = normalized.preferredShape || (normalized.outerShape === \"oval\" ? \"oval\" : \"dikdortgen\");\n    if (fixedRegionCount > 0) normalized.fixedRegionCount = fixedRegionCount;\n    return normalized;\n  }\n\n  var ORGANIC_DESIGN_TEMPLATES = ORGANIC_TEMPLATE_SPECS.map(function (spec) {\n    return {\n      id: spec.id,\n      label: spec.label,\n      outerShape: spec.outerShape,\n      preferredShape: spec.preferredShape,\n      source: \"gpt-organic\",\n      category: spec.outerShape === \"oval\" ? \"oval\" : \"flow\",\n      fixedRegionCount: spec.labels.length\n    };\n  });\n\n  var CLAUDE_AMORF_DESIGN_TEMPLATES = CLAUDE_AMORF_TEMPLATE_SPECS.map(function (spec) {\n    return {\n      id: spec.id,\n      label: spec.label,\n      outerShape: \"organic\",\n      preferredShape: \"amorf\",\n      source: \"claude-amorf\",\n      category: \"amorf-piece\",\n      fixedRegionCount: spec.count,\n      countOptions: [spec.count]\n    };\n  });\n\n  DESIGN_TEMPLATES = DESIGN_TEMPLATES.concat(CLAUDE_AMORF_DESIGN_TEMPLATES).concat(ORGANIC_DESIGN_TEMPLATES).map(normalizeDesignTemplateMeta);\n\n  function $(root, sel) {\n    return root.querySelector(sel);\n  }\n\n  function $all(root, sel) {\n    return Array.prototype.slice.call(root.querySelectorAll(sel));\n  }\n\n  function firstImageCandidate(item) {\n    if (!item) return \"\";\n    if (item.image) return item.image;\n    if (Array.isArray(item.imageCandidates)) return item.imageCandidates[0] || \"\";\n    return \"\";\n  }\n\n  function optionValue(primary, secondary) {\n    if (primary !== undefined && primary !== null) return primary;\n    if (secondary !== undefined && secondary !== null) return secondary;\n    return undefined;\n  }\n\n  function finiteNumber(value, fallback) {\n    var n = Number(value);\n    return Number.isFinite(n) ? n : fallback;\n  }\n\n  function normalizeKey(value) {\n    return String(value || \"\")\n      .toLowerCase()\n      .replace(/\\u0130/g, \"i\")\n      .replace(/\\u0131/g, \"i\")\n      .replace(/[^a-z0-9-]+/g, \"-\")\n      .replace(/^-+|-+$/g, \"\");\n  }\n\n  function isQualityConfig(config, qualities) {\n    config = config || {};\n    qualities = qualities || [];\n    var quality = normalizeKey(config.qualityCode || config.qualityLabel || \"\");\n    var handle = normalizeKey(config.productHandle || config.shopifyHandle || config.handle || \"\");\n    var title = normalizeKey(config.name || config.title || \"\");\n    return qualities.some(function (item) {\n      var key = normalizeKey(item);\n      if (!key) return false;\n      return quality === key\n        || handle.indexOf(\"massimo-carpet-\" + key + \"-\") === 0\n        || new RegExp(\"(^|-)\" + key + \"($|-)\").test(title);\n    });\n  }\n\n  function isCordobaConfig(config) {\n    return isQualityConfig(config, [\"cordoba\"]);\n  }\n\n  function hasHighDetailTextureParams(config) {\n    config = config || {};\n    var params = config.previewParams || {};\n    var pipeline = normalizeKey(optionValue(params.renderPipeline, config.renderPipeline));\n    var maxW = finiteNumber(optionValue(params.maxCanvasWidth, config.maxCanvasWidth), 0);\n    var maxH = finiteNumber(optionValue(params.maxCanvasHeight, config.maxCanvasHeight), 0);\n    var sourceW = finiteNumber(optionValue(params.sourceImageWidth, config.sourceImageWidth), 0);\n    var textureW = finiteNumber(optionValue(params.textureImageWidth, config.textureImageWidth), 0);\n    return pipeline === \"barcelona160x230\" && maxW >= 1000 && maxH >= 1000 && sourceW >= 2048 && textureW >= 2048;\n  }\n\n  function isHighDetailTextureConfig(config) {\n    return isQualityConfig(config, HIGH_DETAIL_TEXTURE_QUALITIES) && hasHighDetailTextureParams(config);\n  }\n\n  function isMobilePreviewViewport() {\n    try {\n      if (window.matchMedia && window.matchMedia(\"(max-width: 767px)\").matches) return true;\n    } catch (err) {}\n    var viewportW = finiteNumber(window.innerWidth, 9999);\n    var screenW = window.screen ? finiteNumber(window.screen.width, 9999) : 9999;\n    var ua = String(navigator.userAgent || \"\");\n    return Math.min(viewportW, screenW) <= 767 || /Android|iPhone|iPod|Mobile/i.test(ua);\n  }\n\n  function highDetailMobileCap(config, value, fallback, maxValue) {\n    var n = finiteNumber(value, fallback);\n    if (isMobilePreviewViewport() && isQualityConfig(config, HIGH_DETAIL_TEXTURE_QUALITIES)) return Math.min(n, maxValue);\n    return n;\n  }\n\n  function mobileZoomRenderMaxSide() {\n    return isMobilePreviewViewport() ? MOBILE_ZOOM_RENDER_MAX_SIDE : ZOOM_RENDER_MAX_SIDE;\n  }\n\n  function fallbackColor(item) {\n    var key = String((item && (item.id || item.label)) || \"\").toLowerCase();\n    var colors = {\n      \"canvas-02\": \"#b9aa96\",\n      \"canvas-06\": \"#9f927e\",\n      \"canvas-14\": \"#c6b8a2\",\n      \"canvas-24\": \"#8d8171\",\n      \"canvas-26\": \"#756b5f\",\n      \"canvas-33\": \"#d1c2aa\",\n      \"canvas-47\": \"#6f665e\",\n      \"canvas-48\": \"#a99b87\",\n      \"canvas-49\": \"#8f8272\",\n      \"canvas-64\": \"#cfc3b4\",\n      \"canvas-66\": \"#b2a391\",\n      \"canvas-84\": \"#5f5a52\",\n      \"alcantara-02\": \"#c3b6a5\",\n      \"alcantara-05\": \"#9b8c7b\",\n      \"alcantara-09\": \"#776f67\",\n      \"alcantara-11\": \"#b0a596\",\n      \"alcantara-16\": \"#d2c5b4\",\n      \"alcantara-17\": \"#8a7969\",\n      \"alcantara-19\": \"#665c54\",\n      \"alcantara-20\": \"#a18f7d\"\n    };\n    return (item && item.color) || colors[key] || \"#9a8d7d\";\n  }\n\n  function fallbackSwatch(item) {\n    var color = fallbackColor(item);\n    var label = String((item && item.label) || \"\").replace(/[<&>\"]/g, \"\");\n    var svg = \"<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'>\"\n      + \"<rect width='160' height='160' fill='\" + color + \"'/>\"\n      + \"<path d='M0 35H160M0 76H160M0 117H160M35 0V160M76 0V160M117 0V160' stroke='rgba(255,255,255,.16)' stroke-width='2'/>\"\n      + \"<text x='80' y='86' text-anchor='middle' font-family='Arial' font-size='18' fill='rgba(255,255,255,.82)'>\" + label + \"</text>\"\n      + \"</svg>\";\n    return \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(svg);\n  }\n\n  function pickPreviewBaseImage(config) {\n    var images = Array.isArray(config.productImages) ? config.productImages.filter(Boolean) : [];\n    return images[0] || config.previewBaseImage || config.sourceImage || \"\";\n  }\n\n  function pickPatternImage(config) {\n    var images = Array.isArray(config.productImages) ? config.productImages.filter(Boolean) : [];\n    return images[1] || config.patternImage || \"\";\n  }\n\n  function pickRenderPatternImage(config) {\n    var params = config && config.previewParams || {};\n    return params.singleSurfaceImage || config.singleSurfaceImage || pickPatternImage(config);\n  }\n\n  function pickDisplayImage(config) {\n    var images = Array.isArray(config.productImages) ? config.productImages.filter(Boolean) : [];\n    return images[0] || config.displayImage || pickPreviewBaseImage(config);\n  }\n\n  function setOriginalView(root, src) {\n    var previewBox = $(root, \".massimo-oo__preview\");\n    var img = $(root, \"[data-massimo-main-image]\");\n    if (img && src) img.src = src;\n    if (previewBox) previewBox.classList.remove(\"is-preview\");\n    setMeasureOverlayVisible(root, false);\n    /* v165: Galeri orijinal resme d\u00F6n\u00FCnce rehber overlay'i de gizle */\n    setDesignGuideOverlayVisible(root, false);\n    state.previewVisible = false;\n  }\n\n  function hasDrawablePreviewCanvas(root) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!canvas || canvas.width <= 1 || canvas.height <= 1) return false;\n    if (!canvas.__massimoRenderedAt) return false;\n    if (canvas.__massimoRenderedWidth !== canvas.width || canvas.__massimoRenderedHeight !== canvas.height) return false;\n    if (canvas.__massimoRenderedShapeType !== normalizeShapeType(state.shapeType)) return false;\n    if (canvas.__massimoRenderedEdgeType !== state.edgeType) return false;\n    return true;\n  }\n\n  function setPreviewView(root) {\n    var previewBox = $(root, \".massimo-oo__preview\");\n    if (!hasDrawablePreviewCanvas(root)) {\n      if (previewBox) previewBox.classList.remove(\"is-preview\");\n      setMeasureOverlayVisible(root, false);\n      state.previewVisible = false;\n      window.__MASSIMO_PREVIEW_EMPTY_CANVAS_GUARD__ = {\n        quality: root && root.__massimoConfig && root.__massimoConfig.qualityCode || \"\",\n        pattern: root && root.__massimoConfig && root.__massimoConfig.patternCode || \"\",\n        at: Date.now()\n      };\n      return false;\n    }\n    if (previewBox) previewBox.classList.add(\"is-preview\");\n    state.previewVisible = true;\n    scheduleMeasureOverlaySync(root);\n    return true;\n  }\n\n  function massimoThemeAssetUrl(fileName) {\n    var fallback = fileName;\n    try {\n      var scripts = document.getElementsByTagName(\"script\");\n      for (var i = scripts.length - 1; i >= 0; i -= 1) {\n        var src = scripts[i] && scripts[i].src || \"\";\n        if (/massimo-ozel-olcu-v244\\.min\\.js/i.test(src)) {\n          return src.split(\"?\")[0].replace(/massimo-ozel-olcu-v244\\.min\\.js$/i, fileName);\n        }\n      }\n    } catch (err) {}\n    return fallback;\n  }\n\n  function ensurePreviewLoading(root) {\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    if (!previewBox) return null;\n    var loader = previewBox.querySelector(\"[data-massimo-preview-loading]\");\n    if (loader) return loader;\n    loader = document.createElement(\"div\");\n    loader.className = \"massimo-oo__preview-loader\";\n    loader.setAttribute(\"data-massimo-preview-loading\", \"\");\n    loader.setAttribute(\"aria-live\", \"polite\");\n    loader.setAttribute(\"aria-atomic\", \"true\");\n    loader.hidden = true;\n    var inner = document.createElement(\"div\");\n    inner.className = \"massimo-oo__preview-loader-inner\";\n    var logo = document.createElement(\"img\");\n    logo.src = massimoThemeAssetUrl(\"massimo-logo-loader.png\");\n    logo.alt = \"Massimo\";\n    var text = document.createElement(\"span\");\n    text.textContent = \"Hal\\u0131n\\u0131z tasarlan\\u0131yor\";\n    inner.appendChild(logo);\n    inner.appendChild(text);\n    loader.appendChild(inner);\n    previewBox.appendChild(loader);\n    return loader;\n  }\n\n  function setPreviewLoading(root, visible, token) {\n    if (!root) return;\n    if (token != null && token !== root.__massimoPreviewLoadingToken) return;\n    var previewBox = $(root, \".massimo-oo__preview\");\n    var loader = ensurePreviewLoading(root);\n    if (previewBox) previewBox.classList.toggle(\"is-rendering-preview\", !!visible);\n    if (loader) loader.hidden = !visible;\n  }\n\n  function beginPreviewLoading(root) {\n    if (!root) return 0;\n    var token = (root.__massimoPreviewLoadingToken || 0) + 1;\n    root.__massimoPreviewLoadingToken = token;\n    setPreviewLoading(root, true, token);\n    return token;\n  }\n\n  function endPreviewLoading(root, token) {\n    setPreviewLoading(root, false, token);\n  }\n\n  function formatCm(value) {\n    var n = finiteNumber(value, 0);\n    if (Math.abs(n - Math.round(n)) < 0.05) return String(Math.round(n));\n    return String(Math.round(n * 10) / 10).replace(\".\", \",\");\n  }\n\n  function currentOutputGeometry() {\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__;\n    return last && last.outputGeometry ? last.outputGeometry : null;\n  }\n\n  function ensureMeasureOverlay(root) {\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    if (!previewBox) return null;\n    var overlay = previewBox.querySelector(\"[data-massimo-measure-overlay]\");\n    if (overlay) return overlay;\n    overlay = document.createElement(\"div\");\n    overlay.className = \"massimo-oo__measure\";\n    overlay.setAttribute(\"data-massimo-measure-overlay\", \"\");\n    overlay.setAttribute(\"aria-hidden\", \"true\");\n    overlay.hidden = true;\n    overlay.innerHTML = [\n      '<div class=\"massimo-oo__measure-box\" data-massimo-measure-box>',\n      '<div class=\"massimo-oo__measure-line massimo-oo__measure-line--h\"><span data-massimo-measure-width></span></div>',\n      '<div class=\"massimo-oo__measure-line massimo-oo__measure-line--v\"><span data-massimo-measure-length></span></div>',\n      '</div>',\n      '<div class=\"massimo-oo__measure-card\" data-massimo-measure-copy></div>'\n    ].join(\"\");\n    previewBox.appendChild(overlay);\n    return overlay;\n  }\n\n  function ensureMeasureSummary(root) {\n    var gallery = root && $(root, \"[data-massimo-gallery]\");\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    if (!gallery || !previewBox) return null;\n    var summary = gallery.querySelector(\"[data-massimo-measure-summary]\");\n    if (summary) return summary;\n    summary = document.createElement(\"div\");\n    summary.className = \"massimo-oo__measure-summary\";\n    summary.setAttribute(\"data-massimo-measure-summary\", \"\");\n    summary.hidden = true;\n    gallery.insertBefore(summary, previewBox);\n    return summary;\n  }\n\n  function setMeasureOverlayVisible(root, visible) {\n    var overlay = root && $(root, \"[data-massimo-measure-overlay]\");\n    if (overlay) overlay.hidden = !visible;\n    var summary = root && $(root, \"[data-massimo-measure-summary]\");\n    if (summary) summary.hidden = !visible;\n  }\n\n  function scheduleMeasureOverlaySync(root) {\n    syncMeasureOverlay(root);\n    if (window.requestAnimationFrame) {\n      window.requestAnimationFrame(function () { syncMeasureOverlay(root); });\n    } else {\n      setTimeout(function () { syncMeasureOverlay(root); }, 0);\n    }\n  }\n\n  function setDesignGuideOverlayVisible(root, visible) {\n    var overlay = root && $(root, \"[data-massimo-design-guide-overlay]\");\n    if (overlay) overlay.hidden = !visible;\n  }\n\n  function scheduleDesignGuideOverlaySync(root) {\n    syncDesignGuideOverlay(root);\n    if (window.requestAnimationFrame) {\n      window.requestAnimationFrame(function () { syncDesignGuideOverlay(root); });\n    } else {\n      setTimeout(function () { syncDesignGuideOverlay(root); }, 0);\n    }\n  }\n\n  function syncMeasureOverlay(root) {\n    var overlay = ensureMeasureOverlay(root);\n    var geometry = currentOutputGeometry();\n    if (!overlay || !geometry) return;\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    var canvasEl = root && $(root, \"[data-massimo-preview-canvas]\");\n    var canvas = geometry.canvas || {};\n    var box = geometry.shapeBoundsPx || geometry.boundsPx || {};\n    var canvasW = Math.max(1, finiteNumber(canvas.width, 1));\n    var canvasH = Math.max(1, finiteNumber(canvas.height, 1));\n    var canvasLeft = 0;\n    var canvasTop = 0;\n    var canvasWidth = 100;\n    var canvasHeight = 100;\n    var previewWidthPx = 0;\n    var previewHeightPx = 0;\n    if (previewBox && canvasEl && previewBox.getBoundingClientRect && canvasEl.getBoundingClientRect) {\n      var previewRect = previewBox.getBoundingClientRect();\n      var canvasRect = canvasEl.getBoundingClientRect();\n      if (previewRect.width > 0 && previewRect.height > 0 && canvasRect.width > 0 && canvasRect.height > 0) {\n        previewWidthPx = previewRect.width;\n        previewHeightPx = previewRect.height;\n        canvasLeft = (canvasRect.left - previewRect.left) / previewRect.width * 100;\n        canvasTop = (canvasRect.top - previewRect.top) / previewRect.height * 100;\n        canvasWidth = canvasRect.width / previewRect.width * 100;\n        canvasHeight = canvasRect.height / previewRect.height * 100;\n      }\n    }\n    canvasLeft = Math.max(0, Math.min(100, canvasLeft));\n    canvasTop = Math.max(0, Math.min(100, canvasTop));\n    canvasWidth = Math.max(1, Math.min(100 - canvasLeft, canvasWidth));\n    canvasHeight = Math.max(1, Math.min(100 - canvasTop, canvasHeight));\n    var rawLeft = Math.max(0, Math.min(100, finiteNumber(box.x, 0) / canvasW * 100));\n    var rawTop = Math.max(0, Math.min(100, finiteNumber(box.y, 0) / canvasH * 100));\n    var rawWidth = Math.max(2, Math.min(100 - rawLeft, finiteNumber(box.w, canvasW) / canvasW * 100));\n    var rawHeight = Math.max(2, Math.min(100 - rawTop, finiteNumber(box.h, canvasH) / canvasH * 100));\n    var left = canvasLeft + rawLeft / 100 * canvasWidth;\n    var top = canvasTop + rawTop / 100 * canvasHeight;\n    var width = Math.max(2, Math.min(100 - left, rawWidth / 100 * canvasWidth));\n    var height = Math.max(2, Math.min(100 - top, rawHeight / 100 * canvasHeight));\n    if (!previewWidthPx && previewBox && previewBox.clientWidth) previewWidthPx = previewBox.clientWidth;\n    if (!previewHeightPx && previewBox && previewBox.clientHeight) previewHeightPx = previewBox.clientHeight;\n    var boxLeftPx = previewWidthPx ? left / 100 * previewWidthPx : 0;\n    var boxTopPx = previewHeightPx ? top / 100 * previewHeightPx : 0;\n    var boxRightPx = previewWidthPx ? (left + width) / 100 * previewWidthPx : 0;\n    var boxBottomPx = previewHeightPx ? (top + height) / 100 * previewHeightPx : 0;\n    var spaceLeftPx = Math.max(0, boxLeftPx);\n    var spaceRightPx = previewWidthPx ? Math.max(0, previewWidthPx - boxRightPx) : 999;\n    var spaceTopPx = Math.max(0, boxTopPx);\n    var spaceBottomPx = previewHeightPx ? Math.max(0, previewHeightPx - boxBottomPx) : 999;\n    var verticalSide = spaceRightPx >= 46 || spaceRightPx >= spaceLeftPx ? \"right\" : \"left\";\n    var verticalSpace = verticalSide === \"right\" ? spaceRightPx : spaceLeftPx;\n    var verticalOffset = verticalSpace >= 54 ? 34 : Math.max(14, Math.min(34, verticalSpace - 8));\n    var hMode = \"top\";\n    var hOffset = 24;\n    if (spaceTopPx < 34 && spaceBottomPx >= 34) hMode = \"bottom\";\n    else if (spaceTopPx < 34) {\n      hMode = \"inside\";\n      hOffset = 16;\n    }\n    overlay.classList.toggle(\"is-v-left\", verticalSide === \"left\");\n    overlay.classList.toggle(\"is-h-bottom\", hMode === \"bottom\");\n    overlay.classList.toggle(\"is-h-inside\", hMode === \"inside\");\n    overlay.style.setProperty(\"--measure-left\", left.toFixed(3) + \"%\");\n    overlay.style.setProperty(\"--measure-top\", top.toFixed(3) + \"%\");\n    overlay.style.setProperty(\"--measure-width\", width.toFixed(3) + \"%\");\n    overlay.style.setProperty(\"--measure-height\", height.toFixed(3) + \"%\");\n    overlay.style.setProperty(\"--measure-v-offset\", verticalOffset.toFixed(0) + \"px\");\n    overlay.style.setProperty(\"--measure-h-offset\", hOffset.toFixed(0) + \"px\");\n\n    var orderLabel = formatCm(geometry.orderWidthCm) + \" x \" + formatCm(geometry.orderLengthCm) + \" cm\";\n    var visibleLabel = formatCm(geometry.visibleWidthCm) + \" x \" + formatCm(geometry.visibleLengthCm) + \" cm\";\n    var widthLabel = overlay.querySelector(\"[data-massimo-measure-width]\");\n    var lengthLabel = overlay.querySelector(\"[data-massimo-measure-length]\");\n    var copy = overlay.querySelector(\"[data-massimo-measure-copy]\");\n    var summary = ensureMeasureSummary(root);\n    if (widthLabel) widthLabel.textContent = formatCm(geometry.visibleWidthCm || geometry.orderWidthCm) + \" cm\";\n    if (lengthLabel) lengthLabel.textContent = formatCm(geometry.visibleLengthCm || geometry.orderLengthCm) + \" cm\";\n    var showVisible = geometry.shapeType && geometry.shapeType !== \"dikdortgen\"\n      || Math.abs(finiteNumber(geometry.visibleWidthCm, 0) - finiteNumber(geometry.orderWidthCm, 0)) >= 0.5\n      || Math.abs(finiteNumber(geometry.visibleLengthCm, 0) - finiteNumber(geometry.orderLengthCm, 0)) >= 0.5;\n    var copyHtml = showVisible\n      ? '<span>Giydirme \u00F6l\u00E7\u00FCs\u00FC</span><strong>Sipari\u015F: ' + escapeHtml(orderLabel) + '</strong><em>G\u00F6r\u00FCnen \u015Fekil: ' + escapeHtml(visibleLabel) + '</em>'\n      : '<span>Giydirme \u00F6l\u00E7\u00FCs\u00FC</span><strong>Sipari\u015F: ' + escapeHtml(orderLabel) + '</strong>';\n    if (copy) {\n      copy.innerHTML = copyHtml;\n    }\n    if (summary) {\n      summary.innerHTML = copyHtml;\n      summary.hidden = !state.previewVisible;\n    }\n    overlay.hidden = !state.previewVisible;\n  }\n\n  function normalizeZoomSrc(src) {\n    src = String(src || \"\").trim();\n    if (!src) return \"\";\n    if (src.indexOf(\"//\") === 0) return window.location.protocol + src;\n    return src;\n  }\n\n  function zoomSizedImage(src, width) {\n    src = normalizeZoomSrc(src);\n    if (!src || src.indexOf(\"data:\") === 0) return src;\n    if (/[?&]width=\\d+/.test(src)) return src.replace(/([?&]width=)\\d+/, \"$1\" + width);\n    return src + (src.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"width=\" + width;\n  }\n\n  function previewParamNumber(config, key, fallback) {\n    var params = config && config.previewParams || {};\n    return finiteNumber(optionValue(params[key], config && config[key]), fallback);\n  }\n\n  function highResolutionImage(src, width) {\n    return zoomSizedImage(src, Math.max(1200, Math.round(width || ZOOM_IMAGE_WIDTH)));\n  }\n\n  function isCompactZoomViewport() {\n    var w = Math.max(0, Number(window.innerWidth) || 0);\n    var h = Math.max(0, Number(window.innerHeight) || 0);\n    var shortSide = Math.min(w || 9999, h || 9999);\n    return shortSide <= 700 || /Mobi|Android|iPhone|iPad/i.test(navigator.userAgent || \"\");\n  }\n\n  function qualityTextureTileDataUrl(root) {\n    var config = (root && root.__massimoConfig) || {};\n    if (!isHighDetailTextureConfig(config)) return \"\";\n    // 2026-05-19: Barcelona pattern d\u00FCz hal\u0131 g\u00F6rseli, kuma\u015F yak\u0131n \u00E7ekim de\u011Fil \u2014 tile k\u00FCp artifact verir\n    if (normalizeKey(config.qualityCode || config.qualityLabel || \"\") === \"barceleno\") return \"\";\n    var preview = root && root.__massimoPreview;\n    var img = preview && preview.patternImg;\n    var naturalW = img && (img.naturalWidth || img.width) || 0;\n    var naturalH = img && (img.naturalHeight || img.height) || 0;\n    if (!img || naturalW < 1 || naturalH < 1) return \"\";\n    var src = normalizeZoomSrc(preview.patternImage || pickPatternImage(config));\n    var size = Math.max(2048, Math.min(4096, Math.round(previewParamNumber(config, \"zoomTextureTileSize\", ZOOM_IMAGE_WIDTH))));\n    var cache = root.__massimoQualityTextureTile;\n    if (cache && cache.src === src && cache.size === size && cache.dataUrl) {\n      window.__MASSIMO_TEXTURE_TILE_LAST__ = cache.debug;\n      return cache.dataUrl;\n    }\n    try {\n      var canvas = document.createElement(\"canvas\");\n      canvas.width = size;\n      canvas.height = size;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.imageSmoothingEnabled = false;\n      ctx.fillStyle = \"#fff\";\n      ctx.fillRect(0, 0, size, size);\n      for (var y = 0; y < size; y += naturalH) {\n        for (var x = 0; x < size; x += naturalW) {\n          ctx.drawImage(img, x, y);\n        }\n      }\n      var dataUrl = canvas.toDataURL(\"image/jpeg\", 0.96);\n      var debug = {\n        mode: \"quality-raw-texture-tile-4k\",\n        source: src,\n        quality: normalizeKey(config.qualityCode || config.qualityLabel || \"\"),\n        sourceNaturalWidth: naturalW,\n        sourceNaturalHeight: naturalH,\n        outputWidth: size,\n        outputHeight: size,\n        scale: 1,\n        smoothing: false\n      };\n      root.__massimoQualityTextureTile = { src: src, size: size, dataUrl: dataUrl, debug: debug };\n      window.__MASSIMO_TEXTURE_TILE_LAST__ = debug;\n      return dataUrl;\n    } catch (err) {\n      window.__MASSIMO_TEXTURE_TILE_ERROR__ = err && err.message || String(err);\n      return \"\";\n    }\n  }\n\n  function cssUrl(src) {\n    return String(src || \"\").replace(/\"/g, \"%22\");\n  }\n\n  function escapeHtml(value) {\n    return String(value == null ? \"\" : value)\n      .replace(/&/g, \"&amp;\")\n      .replace(/</g, \"&lt;\")\n      .replace(/>/g, \"&gt;\")\n      .replace(/\"/g, \"&quot;\")\n      .replace(/'/g, \"&#39;\");\n  }\n\n  function technicalIconSvg(id) {\n    var icon = String(id || \"\").toLowerCase();\n    var common = \"viewBox='0 0 48 48' aria-hidden='true' focusable='false'\";\n    if (icon === \"klass23\") {\n      return \"<svg \" + common + \"><path d='M7 22 24 8l17 14v18H7V22Z'/><path d='M16 40V26h8v14M28 40V26h7v14M14 21h5m10 0h5' fill='none'/><text x='24' y='16' text-anchor='middle'>23</text></svg>\";\n    }\n    if (icon === \"klass22\") {\n      return \"<svg \" + common + \"><path d='M7 22 24 8l17 14v18H7V22Z'/><path d='M16 40V26h8v14M28 40V26h7v14M14 21h5m10 0h5' fill='none'/><text x='24' y='16' text-anchor='middle'>22</text></svg>\";\n    }\n    if (icon === \"resds\") {\n      return \"<svg \" + common + \"><path d='M10 34h28M15 34l6-21h12l-6 21'/><path d='M16 22h19M19 14l10 20' fill='none'/><text x='24' y='43' text-anchor='middle'>DS</text></svg>\";\n    }\n    if (icon === \"cfls1\") {\n      return \"<svg \" + common + \"><path d='M24 7c8 7 1 10 8 17 3 3 4 8 1 12-5 7-18 7-22 0-4-7 0-13 5-17 2 6 7 7 8 0 1-4-2-7 0-12Z'/><text x='24' y='43' text-anchor='middle'>Cfl-s1</text></svg>\";\n    }\n    if (icon === \"lc5\") {\n      return \"<svg \" + common + \"><path d='M9 28c6-9 12-9 18-3 5 5 8 3 12-3' fill='none'/><path d='M12 35h24M14 31h20M16 39h16' fill='none'/><text x='24' y='13' text-anchor='middle'>LC5</text></svg>\";\n    }\n    if (icon === \"lc3\") {\n      return \"<svg \" + common + \"><path d='M9 28c6-9 12-9 18-3 5 5 8 3 12-3' fill='none'/><path d='M12 35h24M14 31h20M16 39h16' fill='none'/><text x='24' y='13' text-anchor='middle'>LC3</text></svg>\";\n    }\n    if (icon === \"electr\") {\n      return \"<svg \" + common + \"><path d='M29 5 13 27h12l-6 16 17-23H24l5-15Z'/><text x='24' y='43' text-anchor='middle'>ESD</text></svg>\";\n    }\n    if (icon === \"acouimpact\") {\n      return \"<svg \" + common + \"><path d='M9 25c7-8 23-8 30 0M13 30c5-5 17-5 22 0M17 35c4-3 10-3 14 0' fill='none'/><circle cx='24' cy='18' r='5'/></svg>\";\n    }\n    if (icon === \"castoro\") {\n      return \"<svg \" + common + \"><circle cx='18' cy='32' r='6' fill='none'/><circle cx='34' cy='32' r='5' fill='none'/><path d='M18 26V12h8m0 0 5 8h7M21 20h11l2 12' fill='none'/></svg>\";\n    }\n    if (icon === \"stairso\") {\n      return \"<svg \" + common + \"><path d='M8 38h8v-7h8v-7h8v-7h8V9' fill='none'/><path d='M9 23 23 10l15 13v15H9V23Z'/></svg>\";\n    }\n    if (icon === \"efl\") {\n      return \"<svg \" + common + \"><path d='M24 6c-7 8 0 11 5 18 2 3 2 8-1 11-5 5-15 4-19-1-3-4-2-10 2-13 2 4 6 5 7 0 1-3-2-6 0-9 1-2 3-4 6-6Z'/><text x='24' y='44' text-anchor='middle' font-size='8' font-weight='700'>EFL</text></svg>\";\n    }\n    if (icon === \"efls1\") {\n      return \"<svg \" + common + \"><path d='M24 6c-7 8 0 11 5 18 2 3 2 8-1 11-5 5-15 4-19-1-3-4-2-10 2-13 2 4 6 5 7 0 1-3-2-6 0-9 1-2 3-4 6-6Z'/><text x='24' y='44' text-anchor='middle' font-size='7' font-weight='700'>Efl-s1</text></svg>\";\n    }\n    if (icon === \"dl\") {\n      return \"<svg \" + common + \"><circle cx='24' cy='22' r='6' fill='none' stroke-width='2'/><path d='M24 4v6M24 34v6M6 22h6M36 22h6M11 9l4 4M37 9l-4 4M11 35l4-4M37 35l-4-4' fill='none' stroke-width='2'/><text x='24' y='44' text-anchor='middle' font-size='8' font-weight='700'>DL</text></svg>\";\n    }\n    if (icon === \"na\") {\n      return \"<svg \" + common + \"><path d='M8 28c4-2 6 2 10 0s6-2 10 0 6 2 10 0M8 35c4-2 6 2 10 0s6-2 10 0 6 2 10 0' fill='none' stroke-width='2'/><path d='M24 6l-4 14h8L24 6Z'/><text x='24' y='44' text-anchor='middle' font-size='8' font-weight='700'>NA</text></svg>\";\n    }\n    if (icon === \"pcp\") {\n      return \"<svg \" + common + \"><circle cx='24' cy='22' r='14' fill='none' stroke-width='2'/><path d='M14 12l20 20' stroke-width='3'/><text x='24' y='44' text-anchor='middle' font-size='8' font-weight='700'>PCP</text></svg>\";\n    }\n    if (icon === \"hcho\") {\n      return \"<svg \" + common + \"><circle cx='24' cy='22' r='14' fill='none' stroke-width='2'/><path d='M14 12l20 20' stroke-width='3'/><text x='24' y='44' text-anchor='middle' font-size='7' font-weight='700'>HCHO</text></svg>\";\n    }\n    if (icon === \"feltback\") {\n      return \"<svg \" + common + \"><rect x='8' y='20' width='32' height='14' fill='none' stroke-width='2'/><path d='M8 26h32M8 31h32' stroke-width='1'/><text x='24' y='44' text-anchor='middle' font-size='7' font-weight='700'>FELT</text></svg>\";\n    }\n    if (icon === \"comfortback\") {\n      return \"<svg \" + common + \"><path d='M6 28c4-4 8-4 12 0s8 4 12 0 8-4 12 0' fill='none' stroke-width='2'/><path d='M6 34h36' stroke-width='2'/><text x='24' y='44' text-anchor='middle' font-size='7' font-weight='700'>SOFT</text></svg>\";\n    }\n    if (icon === \"eurofins\") {\n      return \"<svg \" + common + \"><circle cx='24' cy='24' r='15' fill='none'/><path d='M15 25h18M18 18h12M18 32h12' fill='none'/><text x='24' y='12' text-anchor='middle'>EU</text></svg>\";\n    }\n    if (icon === \"blueangel\") {\n      return \"<svg \" + common + \"><circle cx='24' cy='24' r='15' fill='none'/><path d='M16 29c4-8 12-8 16 0M19 21c2-4 8-4 10 0' fill='none'/><text x='24' y='43' text-anchor='middle'>BA</text></svg>\";\n    }\n    return \"<svg \" + common + \"><circle cx='24' cy='24' r='15' fill='none'/><path d='M24 14v12M24 33h.1' fill='none'/></svg>\";\n  }\n\n  function normalizeShapeType(value) {\n    var shape = String(value || \"dikdortgen\").toLowerCase();\n    if (shape === \"daire\" || shape === \"yuvarlak\" || shape === \"circle\") return \"yuvarlak\";\n    if (shape === \"oval\" || shape === \"ellipse\") return \"oval\";\n    if (shape === \"amorf\" || shape === \"organic\") return \"amorf\";\n    return \"dikdortgen\";\n  }\n\n  function shapeLabel(type) {\n    var labels = {\n      dikdortgen: \"Dikd\u00F6rtgen\",\n      amorf: \"Amorf\",\n      yuvarlak: \"Yuvarlak\",\n      oval: \"Oval\"\n    };\n    return labels[normalizeShapeType(type)] || \"Dikd\u00F6rtgen\";\n  }\n\n  function radiiFromSeed(seed) {\n    var source = Array.isArray(seed) && seed.length ? seed : (SHAPE_PRESETS[0].radii || SHAPE_PRESETS[0].seed);\n    var out = [];\n    for (var i = 0; i < 72; i++) {\n      var t = i / 72 * source.length;\n      var i0 = Math.floor(t) % source.length;\n      var i1 = (i0 + 1) % source.length;\n      var f = t - Math.floor(t);\n      var v = source[i0] * (1 - f) + source[i1] * f;\n      out.push(Math.max(0.66, Math.min(1.12, v)));\n    }\n    return out;\n  }\n\n  function smoothAmorfRadiiValues(radii) {\n    if (!Array.isArray(radii) || radii.length < 8) return radii;\n    var current = radii.map(function (value) {\n      return Math.max(0.66, Math.min(1.12, Number(value) || 1));\n    });\n    for (var pass = 0; pass < 2; pass++) {\n      var next = [];\n      for (var i = 0; i < current.length; i++) {\n        var p2 = current[(i - 2 + current.length) % current.length];\n        var p1 = current[(i - 1 + current.length) % current.length];\n        var c = current[i];\n        var n1 = current[(i + 1) % current.length];\n        var n2 = current[(i + 2) % current.length];\n        next.push(Math.max(0.66, Math.min(1.12, (p2 + p1 * 2 + c * 4 + n1 * 2 + n2) / 10)));\n      }\n      current = next;\n    }\n    return current;\n  }\n\n  function presetRadii(preset) {\n    var radii = radiiFromSeed((preset && (preset.radii || preset.seed)) || null);\n    return presetPoints(preset) ? radii : smoothAmorfRadiiValues(radii);\n  }\n\n  function normalizeShapePoints(points) {\n    if (!Array.isArray(points) || points.length < 3) return null;\n    var out = [];\n    for (var i = 0; i < points.length; i++) {\n      var point = points[i];\n      if (!Array.isArray(point) || point.length < 2) continue;\n      var x = Number(point[0]);\n      var y = Number(point[1]);\n      if (!Number.isFinite(x) || !Number.isFinite(y)) continue;\n      out.push([Math.max(-0.25, Math.min(1.25, x)), Math.max(-0.25, Math.min(1.25, y))]);\n    }\n    return out.length >= 3 ? out : null;\n  }\n\n  function presetPoints(preset) {\n    var fromPreset = normalizeShapePoints(preset && preset.points);\n    if (fromPreset) return fromPreset;\n    var def = preset && preset.key ? AMORF_BESTSELLER_SHAPE_POINTS[String(preset.key).toLowerCase()] : null;\n    return normalizeShapePoints(def && def.points);\n  }\n\n  function presetByKey(key) {\n    key = String(key || \"\").toLowerCase();\n    return SHAPE_PRESETS.find(function (item) { return item.key === key; }) || SHAPE_PRESETS[0];\n  }\n\n  function shapePresetCategoryById(id) {\n    id = String(id || \"all\");\n    return SHAPE_PRESET_CATEGORIES.find(function (item) { return item.id === id; }) || SHAPE_PRESET_CATEGORIES[0];\n  }\n\n  function shapePresetCategoryFor(preset) {\n    if (preset && preset.category) return shapePresetCategoryById(preset.category);\n    return shapePresetCategoryById(\"soft\");\n  }\n\n  function salesShapePresets() {\n    return SHAPE_PRESETS.filter(function (item) { return item.source === \"amorf-sales-50\"; });\n  }\n\n  function shapePresetItemsForCategory(categoryId) {\n    categoryId = String(categoryId || \"all\");\n    if (categoryId === \"all\") {\n      var sales = salesShapePresets();\n      return sales.length ? sales : SHAPE_PRESETS.slice();\n    }\n    return SHAPE_PRESETS.filter(function (item) {\n      return shapePresetCategoryFor(item).id === categoryId;\n    });\n  }\n\n  function currentShapePayload() {\n    var type = normalizeShapeType(state.shapeType);\n    var dynamic = dynamicAmorfShapePayload(type);\n    if (dynamic) return dynamic;\n    var preset = presetByKey(state.shapePresetKey);\n    var points = type === \"amorf\" ? presetPoints(preset) : null;\n    return {\n      type: type,\n      label: shapeLabel(type),\n      presetKey: type === \"amorf\" ? preset.key : \"\",\n      presetLabel: type === \"amorf\" ? (state.shapePresetLabel || preset.label) : \"\",\n      radii: type === \"amorf\" ? (state.shapeRadii || presetRadii(preset)) : null,\n      points: points,\n      widthCm: state.width,\n      lengthCm: state.length\n    };\n  }\n\n  function designTemplateShapeType(template) {\n    template = template || {};\n    if (isSpecialAmorfDesignTemplate(template)) return \"amorf\";\n    var outer = String(template.outerShape || \"rect\").toLowerCase();\n    if (outer === \"rect\" || outer === \"rectangle\" || outer === \"dikdortgen\") return \"dikdortgen\";\n    if (template.preferredShape) return normalizeShapeType(template.preferredShape);\n    if (outer === \"oval\" || outer === \"ellipse\") return \"oval\";\n    if (outer === \"yuvarlak\" || outer === \"daire\" || outer === \"circle\" || outer === \"round\") return \"yuvarlak\";\n    return \"amorf\";\n  }\n\n  function shapePayloadForDesignTemplate(template) {\n    var shape = currentShapePayload();\n    var type = designTemplateShapeType(template);\n    if (type === shape.type) return shape;\n    return Object.assign({}, shape, {\n      type: type,\n      label: shapeLabel(type),\n      presetKey: type === \"amorf\" ? shape.presetKey : \"\",\n      presetLabel: type === \"amorf\" ? shape.presetLabel : \"\",\n      radii: type === \"amorf\" ? shape.radii : null,\n      points: type === \"amorf\" ? shape.points : null\n    });\n  }\n\n  function currentRenderShapePayload(config) {\n    var template = designTemplateById(state.designTemplateId);\n    if (state.designMode && designEnabledFor(config)) return shapePayloadForDesignTemplate(template);\n    return currentShapePayload();\n  }\n\n  function designEnabledFor(config) {\n    var quality = normalizeQuality(config && config.qualityCode);\n    var handle = String(config && (config.handle || config.productHandle || config.shopifyHandle) || window.location.pathname || \"\").toLowerCase();\n    var title = String(config && (config.title || config.productTitle || \"\") || \"\").toLowerCase();\n    return quality === \"cordoba\" || quality === \"toledo\" || handle.indexOf(\"cordoba\") >= 0 || title.indexOf(\"cordoba\") >= 0;\n  }\n\n  function shouldOpenDesignByDefault(config) {\n    if (!designEnabledFor(config)) return false;\n    try {\n      var params = new URLSearchParams(window.location.search || \"\");\n      if (params.get(\"dv\") || params.get(\"previewId\")) return false;\n    } catch (err) {}\n    return true;\n  }\n\n  function designTemplateById(id) {\n    id = String(id || \"\").toLowerCase();\n    return DESIGN_TEMPLATES.find(function (item) { return item.id === id; }) || DESIGN_TEMPLATES[0];\n  }\n\n  function clampDesignRegionCount(value) {\n    return Math.max(1, Math.min(8, Math.round(Number(value) || 4)));\n  }\n\n  function isParametricPetalTemplate(template) {\n    return !!(template && template.source === \"parametric-petal\");\n  }\n\n  function isClaudeAmorfTemplate(template) {\n    return !!(template && template.source === \"claude-amorf\" && CLAUDE_AMORF_TEMPLATE_SPEC_BY_ID[template.id]);\n  }\n\n  function isSpecialAmorfDesignTemplate(template) {\n    return isParametricPetalTemplate(template) || isClaudeAmorfTemplate(template);\n  }\n\n  function specialAmorfEdgesActive() {\n    return !!(state.designMode && isSpecialAmorfDesignTemplate(designTemplateById(state.designTemplateId)));\n  }\n\n  function isShapeLockedDesignTemplate(template) {\n    return !!(state.designMode && isSpecialAmorfDesignTemplate(template));\n  }\n\n  function lockShapeToDesignTemplate(template) {\n    if (!isShapeLockedDesignTemplate(template)) return false;\n    state.shapeType = \"amorf\";\n    state.shapePresetKey = template.id;\n    state.shapePresetLabel = template.label;\n    state.shapeRadii = null;\n    state.shapePickerOpen = false;\n    return true;\n  }\n\n  function exitDesignModeForManualShape(root) {\n    state.designMode = false;\n    state.designPickerOpen = false;\n    state.designGuideAutoPlayed = false;\n    state.designGuidePlaying = false;\n    state.shapePickerOpen = false;\n    if (document.body) {\n      document.body.classList.remove(\"massimo-oo-template-picker-open\");\n      document.body.classList.remove(\"massimo-oo-shape-picker-open\");\n    }\n    if (root) {\n      root.classList.remove(\"is-design-assign-mode\");\n      setDesignGuideOverlayVisible(root, false);\n    }\n  }\n\n  function templateCountOptions(template) {\n    if (template && Array.isArray(template.countOptions) && template.countOptions.length) {\n      return template.countOptions.map(function (value) {\n        return clampDesignRegionCount(value);\n      }).filter(function (value, idx, arr) {\n        return arr.indexOf(value) === idx;\n      });\n    }\n    return [1, 2, 3, 4, 5, 6, 7, 8];\n  }\n\n  function templateFixedRegionCount(template) {\n    var fixed = Number(template && template.fixedRegionCount);\n    return Number.isFinite(fixed) && fixed > 0 ? Math.round(fixed) : 0;\n  }\n\n  function designRegionCountForTemplate(template, requested) {\n    var fixed = templateFixedRegionCount(template);\n    if (fixed) return fixed;\n    var options = templateCountOptions(template);\n    var wanted = Math.round(Number(requested) || (options[0] || 4));\n    var best = options[0] || clampDesignRegionCount(wanted);\n    var bestDistance = Math.abs(best - wanted);\n    options.forEach(function (option) {\n      var distance = Math.abs(option - wanted);\n      if (distance < bestDistance) {\n        best = option;\n        bestDistance = distance;\n      }\n    });\n    return best;\n  }\n\n  function templateRegionCountLabel(template, count) {\n    if (isParametricPetalTemplate(template)) return count + \" yaprak + merkez\";\n    if (isClaudeAmorfTemplate(template)) return count + \" \u00FCretim b\u00F6lgesi\";\n    return count + \" b\u00F6lge\";\n  }\n\n  function templateCategoryById(id) {\n    return DESIGN_TEMPLATE_CATEGORIES.find(function (item) { return item.id === id; }) || DESIGN_TEMPLATE_CATEGORIES[0];\n  }\n\n  function templateCategoryLabel(template) {\n    return templateCategoryById((template && template.category) || \"panel\").label;\n  }\n\n  function templateShapeBadge(template) {\n    var shape = normalizeShapeType(template && (template.preferredShape || template.outerShape));\n    return shapeLabel(shape);\n  }\n\n  function isPremiumTemplate(template) {\n    return !!(template && template.premium);\n  }\n\n  function defaultPremiumVariant() {\n    return {\n      insertShape: \"none\",\n      seamStyle: \"balanced\",\n      outerForm: \"template\"\n    };\n  }\n\n  function currentPremiumVariant() {\n    return Object.assign(defaultPremiumVariant(), state.designPremiumVariant || {});\n  }\n\n  function premiumVariantLabel(variant) {\n    variant = Object.assign(defaultPremiumVariant(), variant || {});\n    var inserts = {\n      none: \"Ek \u015Fekil yok\",\n      oval: \"Oval i\u00E7 \u015Fekil\",\n      triangle: \"\u00DC\u00E7gen ek\",\n      polygon: \"Polygon ek\"\n    };\n    var seams = {\n      balanced: \"Dengeli\",\n      angular: \"Keskin\",\n      curved: \"Yayl\u0131\"\n    };\n    var outer = {\n      template: \"\u015Eablon d\u0131\u015F formu\",\n      selected: \"Se\u00E7ili hal\u0131 \u015Fekli\"\n    };\n    return (outer[variant.outerForm] || outer.template) + \" / \"\n      + (seams[variant.seamStyle] || seams.balanced) + \" / \"\n      + (inserts[variant.insertShape] || inserts.none);\n  }\n\n  function emptyCornerModes(mode) {\n    mode = mode || \"square\";\n    return {\n      topLeft: mode,\n      topRight: mode,\n      bottomRight: mode,\n      bottomLeft: mode\n    };\n  }\n\n  function emptyEdgeModes(mode) {\n    mode = mode || \"straight\";\n    return {\n      top: mode,\n      right: mode,\n      bottom: mode,\n      left: mode\n    };\n  }\n\n  function cornerModeLabel(mode) {\n    return ({ square: \"90 derece\", round: \"Yuvarlak\", oval: \"Oval yay\" })[mode] || \"90 derece\";\n  }\n\n  function edgeModeLabel(mode) {\n    return ({ straight: \"D\u00FCz\", curveIn: \"\u0130\u00E7e yay\", curveOut: \"D\u0131\u015Fa yay\" })[mode] || \"D\u00FCz\";\n  }\n\n  function cornerTargetLabel(target) {\n    return ({\n      all: \"T\u00FCm\u00FC\",\n      topLeft: \"Sol \u00DCst\",\n      topRight: \"Sa\u011F \u00DCst\",\n      bottomRight: \"Sa\u011F Alt\",\n      bottomLeft: \"Sol Alt\"\n    })[target] || \"T\u00FCm\u00FC\";\n  }\n\n  function edgeTargetLabel(target) {\n    return ({\n      all: \"T\u00FCm\u00FC\",\n      top: \"\u00DCst\",\n      right: \"Sa\u011F\",\n      bottom: \"Alt\",\n      left: \"Sol\"\n    })[target] || \"T\u00FCm\u00FC\";\n  }\n\n  function normalizeCornerMode(mode) {\n    mode = String(mode || \"square\");\n    return mode === \"round\" || mode === \"oval\" ? mode : \"square\";\n  }\n\n  function normalizeEdgeMode(mode) {\n    mode = String(mode || \"straight\");\n    return mode === \"curveIn\" || mode === \"curveOut\" ? mode : \"straight\";\n  }\n\n  function normalizeCornerTarget(target) {\n    target = String(target || \"all\");\n    return [\"all\", \"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"].indexOf(target) >= 0 ? target : \"all\";\n  }\n\n  function normalizeEdgeTarget(target) {\n    target = String(target || \"all\");\n    return [\"all\", \"top\", \"right\", \"bottom\", \"left\"].indexOf(target) >= 0 ? target : \"all\";\n  }\n\n  function selectedRegionCornerModes(regionId) {\n    return Object.assign(emptyCornerModes(\"square\"), state.designCornerModes[regionId] || {});\n  }\n\n  function selectedRegionEdgeModes(regionId) {\n    return Object.assign(emptyEdgeModes(\"straight\"), state.designEdgeModes[regionId] || {});\n  }\n\n  function normalizedPathFromCm(region, widthCm, lengthCm) {\n    return {\n      type: \"cmBox\",\n      x: region.xCm / Math.max(1, widthCm),\n      y: region.yCm / Math.max(1, lengthCm),\n      w: region.widthCm / Math.max(1, widthCm),\n      h: region.heightCm / Math.max(1, lengthCm)\n    };\n  }\n\n  function makeDesignRegion(id, label, xCm, yCm, widthCm, heightCm, widthTotal, lengthTotal, cornerDefault, edgeDefault) {\n    var cornerModes = Object.assign(emptyCornerModes(cornerDefault || \"square\"), state.designCornerModes[id] || {});\n    var edgeModes = Object.assign(emptyEdgeModes(edgeDefault || \"straight\"), state.designEdgeModes[id] || {});\n    var region = {\n      id: id,\n      label: label,\n      xCm: Math.round(xCm * 10) / 10,\n      yCm: Math.round(yCm * 10) / 10,\n      widthCm: Math.round(widthCm * 10) / 10,\n      heightCm: Math.round(heightCm * 10) / 10,\n      cornerModes: cornerModes,\n      edgeModes: edgeModes,\n      stitchEdges: [\"all\"]\n    };\n    region.path = normalizedPathFromCm(region, widthTotal, lengthTotal);\n    return region;\n  }\n\n  function makePolygonDesignRegion(id, label, points, widthTotal, lengthTotal) {\n    var xs = points.map(function (pt) { return pt[0] * widthTotal; });\n    var ys = points.map(function (pt) { return pt[1] * lengthTotal; });\n    var xMin = Math.min.apply(Math, xs);\n    var yMin = Math.min.apply(Math, ys);\n    var xMax = Math.max.apply(Math, xs);\n    var yMax = Math.max.apply(Math, ys);\n    return {\n      id: id,\n      label: label,\n      xCm: Math.round(xMin * 10) / 10,\n      yCm: Math.round(yMin * 10) / 10,\n      widthCm: Math.round((xMax - xMin) * 10) / 10,\n      heightCm: Math.round((yMax - yMin) * 10) / 10,\n      cornerModes: emptyCornerModes(\"square\"),\n      edgeModes: emptyEdgeModes(\"straight\"),\n      stitchEdges: [\"diagonal\"],\n      path: {\n        type: \"polygon\",\n        points: points\n      }\n    };\n  }\n\n  function commandBounds(commands) {\n    var xs = [];\n    var ys = [];\n    (commands || []).forEach(function (cmd) {\n      for (var i = 1; i < cmd.length; i += 2) {\n        xs.push(Number(cmd[i]) || 0);\n        ys.push(Number(cmd[i + 1]) || 0);\n      }\n    });\n    if (!xs.length) return { xMin: 0, yMin: 0, xMax: 1, yMax: 1 };\n    return {\n      xMin: Math.max(0, Math.min.apply(Math, xs)),\n      yMin: Math.max(0, Math.min.apply(Math, ys)),\n      xMax: Math.min(1, Math.max.apply(Math, xs)),\n      yMax: Math.min(1, Math.max.apply(Math, ys))\n    };\n  }\n\n  function makeCommandDesignRegion(id, label, commands, widthTotal, lengthTotal, role) {\n    var bounds = commandBounds(commands);\n    return {\n      id: id,\n      label: label,\n      xCm: Math.round(bounds.xMin * widthTotal * 10) / 10,\n      yCm: Math.round(bounds.yMin * lengthTotal * 10) / 10,\n      widthCm: Math.round((bounds.xMax - bounds.xMin) * widthTotal * 10) / 10,\n      heightCm: Math.round((bounds.yMax - bounds.yMin) * lengthTotal * 10) / 10,\n      cornerModes: emptyCornerModes(\"square\"),\n      edgeModes: emptyEdgeModes(\"straight\"),\n      stitchEdges: [\"production\"],\n      productionRole: role || \"piece\",\n      path: {\n        type: \"commands\",\n        commands: commands\n      }\n    };\n  }\n\n  function petalOuterRadiusAt(angle, count) {\n    count = Math.max(4, Math.min(12, Math.round(Number(count) || 6)));\n    var phase = angle + Math.PI / 2;\n    var lobe = (Math.cos(count * phase) + 1) / 2;\n    var softLobe = Math.pow(lobe, 0.58);\n    var valley = Math.pow(1 - lobe, 1.2);\n    return Math.max(0.30, Math.min(0.485, 0.315 + softLobe * 0.17 - valley * 0.01));\n  }\n\n  function petalShapeRadii(count) {\n    count = Math.max(4, Math.min(12, Math.round(Number(count) || 6)));\n    var samples = Math.max(72, Math.min(168, count * 14));\n    var out = [];\n    for (var i = 0; i < samples; i++) {\n      var angle = i / samples * Math.PI * 2;\n      out.push(petalOuterRadiusAt(angle, count) / 0.43);\n    }\n    return out;\n  }\n\n  function petalOuterPoints(count) {\n    var radii = petalShapeRadii(count);\n    return radii.map(function (radius, idx) {\n      var angle = idx / radii.length * Math.PI * 2;\n      return [0.5 + Math.cos(angle) * 0.43 * radius, 0.5 + Math.sin(angle) * 0.43 * radius];\n    });\n  }\n\n  function dynamicAmorfShapePayload(type) {\n    var template = designTemplateById(state.designTemplateId);\n    if (!state.designMode || (!isParametricPetalTemplate(template) && !isClaudeAmorfTemplate(template))) return null;\n    if (isClaudeAmorfTemplate(template)) return claudeAmorfShapePayload(template);\n    var count = designRegionCountForTemplate(template, state.designRegionCount);\n    var points = petalOuterPoints(count);\n    return {\n      type: \"amorf\",\n      label: shapeLabel(\"amorf\"),\n      presetKey: template.id,\n      presetLabel: template.label + \" / \" + templateRegionCountLabel(template, count),\n      radii: petalShapeRadii(count),\n      points: points,\n      outlineCommands: smoothClosedCommands(points, 0.68),\n      widthCm: state.width,\n      lengthCm: state.length\n    };\n  }\n\n  function polarPoint(cx, cy, radius, angle, xScale, yScale) {\n    return [cx + Math.cos(angle) * radius * (xScale || 1), cy + Math.sin(angle) * radius * (yScale || 1)];\n  }\n\n  function circleCommands(cx, cy, rx, ry) {\n    var k = 0.5522847498;\n    return [[\"M\", cx + rx, cy], [\"C\", cx + rx, cy + ry * k, cx + rx * k, cy + ry, cx, cy + ry], [\"C\", cx - rx * k, cy + ry, cx - rx, cy + ry * k, cx - rx, cy], [\"C\", cx - rx, cy - ry * k, cx - rx * k, cy - ry, cx, cy - ry], [\"C\", cx + rx * k, cy - ry, cx + rx, cy - ry * k, cx + rx, cy], [\"Z\"]];\n  }\n\n  function petalCommands(index, count, widthCm, lengthCm) {\n    var tau = Math.PI * 2;\n    var angle = -Math.PI / 2 + index * tau / count;\n    var half = Math.PI / count;\n    var a0 = angle - half;\n    var a1 = angle + half;\n    var center = [0.5, 0.5];\n    var innerRx = 0.145;\n    var innerRy = innerRx * Math.max(0.2, Math.min(5, widthCm / Math.max(1, lengthCm)));\n    function innerPoint(a) {\n      return [center[0] + Math.cos(a) * innerRx, center[1] + Math.sin(a) * innerRy];\n    }\n    var pts = [innerPoint(a0)];\n    var steps = Math.max(7, Math.round(28 / count));\n    for (var s = 0; s <= steps; s++) {\n      var outerAngle = a0 + (a1 - a0) * s / steps;\n      pts.push(polarPoint(center[0], center[1], petalOuterRadiusAt(outerAngle, count), outerAngle));\n    }\n    pts.push(innerPoint(a1));\n    var innerSteps = Math.max(3, Math.round(14 / count));\n    for (var i = 1; i < innerSteps; i++) {\n      pts.push(innerPoint(a1 - (a1 - a0) * i / innerSteps));\n    }\n    return smoothClosedCommands(pts, 0.58);\n  }\n\n  function parametricPetalRegions(template, count, widthCm, lengthCm) {\n    count = designRegionCountForTemplate(template, count);\n    var out = [];\n    for (var i = 0; i < count; i++) {\n      out.push(makeCommandDesignRegion(template.id + \"-petal-\" + (i + 1), \"Yaprak \" + (i + 1), petalCommands(i, count, widthCm, lengthCm), widthCm, lengthCm, \"petal\"));\n    }\n    var centerRx = 0.145;\n    var centerRy = centerRx * Math.max(0.2, Math.min(5, widthCm / Math.max(1, lengthCm)));\n    out.push(makeCommandDesignRegion(template.id + \"-center\", \"Merkez\", circleCommands(0.5, 0.5, centerRx, centerRy), widthCm, lengthCm, \"center\"));\n    return out;\n  }\n\n  function claudeAmorfSpec(template) {\n    return CLAUDE_AMORF_TEMPLATE_SPEC_BY_ID[(template && template.id) || \"\"] || null;\n  }\n\n  function clampUnit(value) {\n    return Math.max(0, Math.min(1, Number(value) || 0));\n  }\n\n  function smoothClosedCommands(points, tension) {\n    points = (points || []).filter(function (pt) {\n      return pt && Number.isFinite(Number(pt[0])) && Number.isFinite(Number(pt[1]));\n    }).map(function (pt) {\n      return [clampUnit(pt[0]), clampUnit(pt[1])];\n    });\n    if (points.length < 3) return rectCommands(0, 0, 1, 1);\n    var t = Math.max(0.2, Math.min(1.15, Number(tension) || 0.72));\n    var out = [[\"M\", points[0][0], points[0][1]]];\n    for (var i = 0; i < points.length; i++) {\n      var p0 = points[(i - 1 + points.length) % points.length];\n      var p1 = points[i];\n      var p2 = points[(i + 1) % points.length];\n      var p3 = points[(i + 2) % points.length];\n      out.push([\n        \"C\",\n        clampUnit(p1[0] + (p2[0] - p0[0]) * t / 6),\n        clampUnit(p1[1] + (p2[1] - p0[1]) * t / 6),\n        clampUnit(p2[0] - (p3[0] - p1[0]) * t / 6),\n        clampUnit(p2[1] - (p3[1] - p1[1]) * t / 6),\n        p2[0],\n        p2[1]\n      ]);\n    }\n    out.push([\"Z\"]);\n    return out;\n  }\n\n  function rotatedPoint(cx, cy, x, y, angle) {\n    var ca = Math.cos(angle);\n    var sa = Math.sin(angle);\n    return [\n      cx + x * ca - y * sa,\n      cy + x * sa + y * ca\n    ];\n  }\n\n  function smoothRegion(templateId, idx, label, points, widthCm, lengthCm, role) {\n    return makeCommandDesignRegion(\n      templateId + \"-r\" + (idx + 1),\n      label,\n      smoothClosedCommands(points, 0.76),\n      widthCm,\n      lengthCm,\n      role || \"piece\"\n    );\n  }\n\n  function ellipseBlobCommands(cx, cy, rx, ry, rotation, seed, points) {\n    var out = [];\n    var steps = Math.max(8, Math.round(points || 12));\n    for (var i = 0; i < steps; i++) {\n      var a = i / steps * Math.PI * 2;\n      var wobble = 1 + Math.sin(a * 2.1 + seed) * 0.045 + Math.cos(a * 3.4 + seed * 0.7) * 0.032;\n      out.push(rotatedPoint(cx, cy, Math.cos(a) * rx * wobble, Math.sin(a) * ry * wobble, rotation || 0));\n    }\n    return smoothClosedCommands(out, 0.86);\n  }\n\n  function leafPieceCommands(cx, cy, rx, ry, rotation, bias) {\n    var b = Number(bias) || 0;\n    var pts = [\n      rotatedPoint(cx, cy, 0, -ry * (1.05 + b), rotation),\n      rotatedPoint(cx, cy, rx * 0.72, -ry * 0.48, rotation),\n      rotatedPoint(cx, cy, rx * 0.98, ry * 0.08, rotation),\n      rotatedPoint(cx, cy, rx * 0.38, ry * 0.78, rotation),\n      rotatedPoint(cx, cy, 0, ry * (0.98 - b * 0.2), rotation),\n      rotatedPoint(cx, cy, -rx * 0.38, ry * 0.78, rotation),\n      rotatedPoint(cx, cy, -rx * 0.98, ry * 0.08, rotation),\n      rotatedPoint(cx, cy, -rx * 0.72, -ry * 0.48, rotation)\n    ];\n    return smoothClosedCommands(pts, 0.9);\n  }\n\n  function softPetalPieceCommands(index, count, options) {\n    options = options || {};\n    var tau = Math.PI * 2;\n    var angle = (options.startAngle || -Math.PI / 2) + index * tau / count;\n    var half = Math.PI / count * (options.halfFactor || 0.9);\n    var cx = options.cx || 0.5;\n    var cy = options.cy || 0.5;\n    var inner = options.inner || 0.14;\n    var shoulder = options.shoulder || 0.34;\n    var outer = options.outer || 0.49;\n    var xs = options.xScale || 1;\n    var ys = options.yScale || 1;\n    var jitter = Math.sin(index * 1.73 + count) * (options.jitter || 0.012);\n    var pts = [\n      polarPoint(cx, cy, inner, angle - half * 0.72, xs, ys),\n      polarPoint(cx, cy, shoulder, angle - half, xs, ys),\n      polarPoint(cx, cy, outer + jitter, angle - half * 0.22, xs, ys),\n      polarPoint(cx, cy, outer + jitter * 0.6, angle, xs, ys),\n      polarPoint(cx, cy, outer + jitter, angle + half * 0.22, xs, ys),\n      polarPoint(cx, cy, shoulder, angle + half, xs, ys),\n      polarPoint(cx, cy, inner, angle + half * 0.72, xs, ys),\n      polarPoint(cx, cy, inner * 0.72, angle, xs, ys)\n    ];\n    return smoothClosedCommands(pts, 0.92);\n  }\n\n  function ringSectorCommands(cx, cy, inner, outer, a0, a1, xScale, yScale, steps) {\n    var pts = [];\n    steps = Math.max(4, Math.round(steps || 8));\n    for (var i = 0; i <= steps; i++) {\n      var a = a0 + (a1 - a0) * i / steps;\n      pts.push(polarPoint(cx, cy, outer, a, xScale || 1, yScale || 1));\n    }\n    for (var j = steps; j >= 0; j--) {\n      var b = a0 + (a1 - a0) * j / steps;\n      pts.push(polarPoint(cx, cy, inner, b, xScale || 1, yScale || 1));\n    }\n    return smoothClosedCommands(pts, 0.72);\n  }\n\n  function smoothCurveStackRegions(templateId, labels, xStops, curves, widthCm, lengthCm) {\n    var out = [];\n    for (var i = 0; i < labels.length; i++) {\n      var points = [];\n      for (var a = 0; a < xStops.length; a++) points.push([xStops[a], curves[i][a]]);\n      for (var b = xStops.length - 1; b >= 0; b--) points.push([xStops[b], curves[i + 1][b]]);\n      out.push(makeCommandDesignRegion(templateId + \"-r\" + (i + 1), labels[i], smoothClosedCommands(points, 0.68), widthCm, lengthCm, \"band\"));\n    }\n    return out;\n  }\n\n  function smoothCurveBandRegions(templateId, labels, yStops, curves, widthCm, lengthCm) {\n    var out = [];\n    for (var i = 0; i < labels.length; i++) {\n      var points = [];\n      for (var a = 0; a < yStops.length; a++) points.push([curves[i][a], yStops[a]]);\n      for (var b = yStops.length - 1; b >= 0; b--) points.push([curves[i + 1][b], yStops[b]]);\n      out.push(makeCommandDesignRegion(templateId + \"-r\" + (i + 1), labels[i], smoothClosedCommands(points, 0.68), widthCm, lengthCm, \"band\"));\n    }\n    return out;\n  }\n\n  function claudePetalCenterRegions(spec, widthCm, lengthCm) {\n    var petals = spec.petals || Math.max(4, (spec.count || 6) - 1);\n    var labels = spec.labels || [];\n    var out = [];\n    for (var i = 0; i < petals; i++) {\n      out.push(makeCommandDesignRegion(spec.id + \"-petal-\" + (i + 1), labels[i] || (\"Yaprak \" + (i + 1)), softPetalPieceCommands(i, petals, {\n        inner: spec.outerStyle === \"orchid\" ? 0.13 : 0.15,\n        shoulder: spec.outerStyle === \"orchid\" ? 0.32 : 0.34,\n        outer: spec.outerStyle === \"orchid\" ? 0.49 : 0.47,\n        halfFactor: spec.outerStyle === \"orchid\" ? 1.02 : 0.88,\n        jitter: 0.012\n      }), widthCm, lengthCm, \"petal\"));\n    }\n    out.push(makeCommandDesignRegion(spec.id + \"-center\", labels[petals] || \"Merkez\", circleCommands(0.5, 0.5, 0.16, 0.16), widthCm, lengthCm, \"center\"));\n    return out;\n  }\n\n  function claudeFanRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var count = spec.count || labels.length || 7;\n    var out = [];\n    var start = -Math.PI * 0.86;\n    var end = -Math.PI * 0.14;\n    var anchor = spec.layout === \"palmet\" ? [0.5, 0.72] : [0.5, 0.82];\n    var sectorCount = spec.layout === \"palmet\" ? count - 1 : count - 1;\n    for (var i = 0; i < sectorCount; i++) {\n      var a0 = start + (end - start) * i / sectorCount;\n      var a1 = start + (end - start) * (i + 1) / sectorCount;\n      out.push(makeCommandDesignRegion(spec.id + \"-fan-\" + (i + 1), labels[i] || (\"Dilim \" + (i + 1)), ringSectorCommands(anchor[0], anchor[1], 0.04, 0.72, a0, a1, 0.9, 0.78, 7), widthCm, lengthCm, \"fan\"));\n    }\n    out.push(makeCommandDesignRegion(spec.id + \"-root\", labels[sectorCount] || \"Merkez K\u00F6k\", ellipseBlobCommands(anchor[0], anchor[1] - 0.01, 0.12, 0.09, 0, 4.7, 12), widthCm, lengthCm, \"center\"));\n    return out.slice(0, count);\n  }\n\n  function claudeShellRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var count = spec.count || labels.length || 6;\n    var out = [];\n    for (var i = 0; i < count; i++) {\n      var inner = 0.04 + i * 0.055;\n      var outer = inner + 0.18 + i * 0.018;\n      var a0 = -Math.PI * 1.12 + i * 0.16;\n      var a1 = Math.PI * 0.55 + i * 0.12;\n      out.push(makeCommandDesignRegion(spec.id + \"-shell-\" + (i + 1), labels[i] || (\"Spiral \" + (i + 1)), ringSectorCommands(0.46, 0.58, inner, outer, a0, a1, 1.05, 0.8, 10), widthCm, lengthCm, \"spiral\"));\n    }\n    return out;\n  }\n\n  function claudeLeafClusterRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var leaves = [\n      [0.50, 0.25, 0.13, 0.22, 0.06],\n      [0.35, 0.40, 0.13, 0.22, -0.76],\n      [0.64, 0.40, 0.13, 0.22, 0.76],\n      [0.50, 0.49, 0.14, 0.24, 0.02],\n      [0.40, 0.66, 0.145, 0.225, -0.38],\n      [0.60, 0.66, 0.145, 0.225, 0.38]\n    ];\n    var zOrder = [0, 1, 2, 5, 3, 4];\n    return leaves.map(function (leaf, idx) {\n      var region = makeCommandDesignRegion(spec.id + \"-leaf-\" + (idx + 1), labels[idx] || (\"Yaprak \" + (idx + 1)), leafPieceCommands(leaf[0], leaf[1], leaf[2], leaf[3], leaf[4], 0.04), widthCm, lengthCm, \"leaf\");\n      region.zIndex = zOrder[idx] == null ? idx : zOrder[idx];\n      return region;\n    });\n  }\n\n  function claudePebbleRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var pebbles = [\n      [0.36, 0.29, 0.17, 0.14, -0.25],\n      [0.61, 0.30, 0.18, 0.13, 0.22],\n      [0.48, 0.44, 0.20, 0.16, -0.06],\n      [0.28, 0.56, 0.15, 0.17, 0.58],\n      [0.67, 0.57, 0.17, 0.16, -0.44],\n      [0.43, 0.72, 0.18, 0.13, 0.28],\n      [0.61, 0.75, 0.13, 0.11, -0.18]\n    ];\n    return pebbles.map(function (item, idx) {\n      return makeCommandDesignRegion(spec.id + \"-pebble-\" + (idx + 1), labels[idx] || (\"\u00C7ak\u0131l \" + (idx + 1)), ellipseBlobCommands(item[0], item[1], item[2], item[3], item[4], idx + 1.2, 14), widthCm, lengthCm, \"pebble\");\n    });\n  }\n\n  function claudeWaveBandRegions(spec, widthCm, lengthCm) {\n    var stops = [0, 0.18, 0.37, 0.58, 0.78, 1];\n    var curves = [\n      [0, 0, 0, 0, 0, 0],\n      [0.18, 0.14, 0.19, 0.25, 0.23, 0.18],\n      [0.38, 0.33, 0.35, 0.43, 0.46, 0.40],\n      [0.58, 0.56, 0.61, 0.66, 0.63, 0.56],\n      [0.80, 0.83, 0.84, 0.78, 0.76, 0.82],\n      [1, 1, 1, 1, 1, 1]\n    ];\n    return smoothCurveStackRegions(spec.id, spec.labels, stops, curves, widthCm, lengthCm);\n  }\n\n  function claudeOverlapBandRegions(spec, widthCm, lengthCm) {\n    var stops = [0, 0.16, 0.34, 0.55, 0.78, 1];\n    var curves = [\n      [0, 0, 0, 0, 0, 0],\n      [0.33, 0.24, 0.28, 0.42, 0.36, 0.28],\n      [0.66, 0.58, 0.63, 0.76, 0.71, 0.60],\n      [1, 1, 1, 1, 1, 1]\n    ];\n    return smoothCurveBandRegions(spec.id, spec.labels, stops, curves, widthCm, lengthCm);\n  }\n\n  function claudeCapsuleFlowRegions(spec, widthCm, lengthCm) {\n    var stops = [0, 0.2, 0.4, 0.6, 0.8, 1];\n    var curves = [\n      [0, 0, 0, 0, 0, 0],\n      [0.20, 0.17, 0.19, 0.24, 0.22, 0.19],\n      [0.39, 0.38, 0.43, 0.46, 0.41, 0.36],\n      [0.60, 0.64, 0.66, 0.60, 0.56, 0.59],\n      [0.82, 0.84, 0.79, 0.75, 0.78, 0.84],\n      [1, 1, 1, 1, 1, 1]\n    ];\n    return smoothCurveStackRegions(spec.id, spec.labels, stops, curves, widthCm, lengthCm);\n  }\n\n  function claudeCrescentRingRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var arcs = [\n      [0.08, 0.25, -2.55, 0.85],\n      [0.23, 0.38, -2.7, -1.15],\n      [0.26, 0.44, -1.25, 0.1],\n      [0.25, 0.40, 0.0, 1.25],\n      [0.38, 0.54, -2.3, 1.05]\n    ];\n    return arcs.map(function (arc, idx) {\n      return makeCommandDesignRegion(spec.id + \"-crescent-\" + (idx + 1), labels[idx] || (\"Hilal \" + (idx + 1)), ringSectorCommands(0.52, 0.54, arc[0], arc[1], arc[2], arc[3], 1.0, 0.78, 10), widthCm, lengthCm, \"crescent\");\n    });\n  }\n\n  function claudeDropRingRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var out = [];\n    for (var i = 0; i < 6; i++) {\n      var angle = -Math.PI / 2 + i * Math.PI * 2 / 6;\n      var c = polarPoint(0.5, 0.5, 0.28, angle, 1, 1);\n      out.push(makeCommandDesignRegion(spec.id + \"-drop-\" + (i + 1), labels[i] || (\"Damla \" + (i + 1)), leafPieceCommands(c[0], c[1], 0.105, 0.185, angle + Math.PI / 2, 0.12), widthCm, lengthCm, \"drop\"));\n    }\n    out.push(makeCommandDesignRegion(spec.id + \"-center\", labels[6] || \"Merkez\", circleCommands(0.5, 0.5, 0.16, 0.16), widthCm, lengthCm, \"center\"));\n    return out;\n  }\n\n  function claudeCloudRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var clouds = [\n      [0.38, 0.32, 0.22, 0.16, -0.2],\n      [0.62, 0.35, 0.24, 0.17, 0.24],\n      [0.34, 0.53, 0.20, 0.19, 0.42],\n      [0.56, 0.54, 0.25, 0.19, -0.12],\n      [0.43, 0.73, 0.22, 0.15, 0.18],\n      [0.67, 0.72, 0.18, 0.14, -0.34]\n    ];\n    return clouds.map(function (item, idx) {\n      return makeCommandDesignRegion(spec.id + \"-cloud-\" + (idx + 1), labels[idx] || (\"Bulut \" + (idx + 1)), ellipseBlobCommands(item[0], item[1], item[2], item[3], item[4], idx + 3.1, 16), widthCm, lengthCm, \"cloud\");\n    });\n  }\n\n  function claudeMosaicRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var cells = [\n      [[0.08, 0.08], [0.42, 0.06], [0.36, 0.30], [0.12, 0.38]],\n      [[0.42, 0.06], [0.72, 0.10], [0.66, 0.36], [0.36, 0.30]],\n      [[0.72, 0.10], [0.92, 0.22], [0.82, 0.50], [0.66, 0.36]],\n      [[0.12, 0.38], [0.36, 0.30], [0.40, 0.58], [0.14, 0.68]],\n      [[0.36, 0.30], [0.66, 0.36], [0.61, 0.66], [0.40, 0.58]],\n      [[0.66, 0.36], [0.82, 0.50], [0.74, 0.76], [0.61, 0.66]],\n      [[0.14, 0.68], [0.40, 0.58], [0.50, 0.90], [0.18, 0.86]],\n      [[0.40, 0.58], [0.74, 0.76], [0.50, 0.90]]\n    ];\n    return cells.map(function (pts, idx) {\n      return smoothRegion(spec.id, idx, labels[idx] || (\"Mozaik \" + (idx + 1)), pts, widthCm, lengthCm, \"mosaic\");\n    });\n  }\n\n  function claudeRunnerLeavesRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var leaves = [\n      [0.48, 0.17, 0.14, 0.22, -0.14],\n      [0.57, 0.34, 0.13, 0.21, 0.40],\n      [0.42, 0.50, 0.14, 0.24, -0.42],\n      [0.58, 0.67, 0.13, 0.21, 0.36],\n      [0.46, 0.84, 0.14, 0.22, -0.14]\n    ];\n    return leaves.map(function (leaf, idx) {\n      return makeCommandDesignRegion(spec.id + \"-runner-leaf-\" + (idx + 1), labels[idx] || (\"Yaprak \" + (idx + 1)), leafPieceCommands(leaf[0], leaf[1], leaf[2], leaf[3], leaf[4], 0.05), widthCm, lengthCm, \"leaf\");\n    });\n  }\n\n  function claudeDoubleCrescentRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var stops = [0, 0.16, 0.36, 0.58, 0.78, 1];\n    var curves = [\n      [0, 0, 0, 0, 0, 0],\n      [0.27, 0.20, 0.22, 0.34, 0.32, 0.25],\n      [0.48, 0.46, 0.52, 0.57, 0.53, 0.45],\n      [0.72, 0.80, 0.76, 0.65, 0.70, 0.78],\n      [1, 1, 1, 1, 1, 1]\n    ];\n    return smoothCurveBandRegions(spec.id, labels, stops, curves, widthCm, lengthCm);\n  }\n\n  function claudeOrganicSixRegions(spec, widthCm, lengthCm) {\n    var labels = spec.labels || [];\n    var cells = [\n      [[0.08, 0.08], [0.52, 0.06], [0.45, 0.34], [0.14, 0.42]],\n      [[0.52, 0.06], [0.92, 0.16], [0.78, 0.44], [0.45, 0.34]],\n      [[0.14, 0.42], [0.45, 0.34], [0.42, 0.68], [0.12, 0.76]],\n      [[0.45, 0.34], [0.78, 0.44], [0.62, 0.72], [0.42, 0.68]],\n      [[0.78, 0.44], [0.92, 0.70], [0.66, 0.90], [0.62, 0.72]],\n      [[0.12, 0.76], [0.42, 0.68], [0.66, 0.90], [0.24, 0.92]]\n    ];\n    return cells.map(function (pts, idx) {\n      return smoothRegion(spec.id, idx, labels[idx] || (\"B\u00F6lge \" + (idx + 1)), pts, widthCm, lengthCm, \"mosaic\");\n    });\n  }\n\n  function claudeAmorfRegions(template, widthCm, lengthCm) {\n    var spec = claudeAmorfSpec(template);\n    if (!spec) return null;\n    if (spec.layout === \"petal-center\" || spec.layout === \"clover\") return claudePetalCenterRegions(spec.layout === \"clover\" ? Object.assign({}, spec, { petals: 4 }) : spec, widthCm, lengthCm);\n    if (spec.layout === \"fan\" || spec.layout === \"palmet\") return claudeFanRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"shell\" || spec.layout === \"spiral\") return claudeShellRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"leaf-cluster\") return claudeLeafClusterRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"pebble\") return claudePebbleRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"wave-bands\") return claudeWaveBandRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"overlap-bands\") return claudeOverlapBandRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"capsule-flow\") return claudeCapsuleFlowRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"crescent-ring\") return claudeCrescentRingRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"drop-ring\") return claudeDropRingRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"cloud\") return claudeCloudRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"mosaic\") return claudeMosaicRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"runner-leaves\") return claudeRunnerLeavesRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"double-crescent\") return claudeDoubleCrescentRegions(spec, widthCm, lengthCm);\n    if (spec.layout === \"organic-six\") return claudeOrganicSixRegions(spec, widthCm, lengthCm);\n    return claudeWaveBandRegions(spec, widthCm, lengthCm);\n  }\n\n  function claudeAmorfShapeRadii(spec) {\n    var count = 104;\n    var out = [];\n    var style = (spec && spec.outerStyle) || \"organic\";\n    var lobes = spec && (spec.petals || (style === \"clover\" ? 4 : 0));\n    for (var i = 0; i < count; i++) {\n      var a = i / count * Math.PI * 2;\n      var r = 0.96 + Math.sin(a * 2.2 + 0.4) * 0.035 + Math.cos(a * 3.1) * 0.025;\n      if (style === \"lotus\" || style === \"orchid\" || style === \"clover\" || style === \"drop\") {\n        var lobe = (Math.cos((lobes || 6) * (a + Math.PI / 2)) + 1) / 2;\n        r = 0.78 + Math.pow(lobe, 0.62) * 0.32 + Math.sin(a * 2.5) * 0.015;\n      } else if (style === \"fan\" || style === \"palmet\") {\n        r = 0.82 + Math.max(0, Math.sin(a + Math.PI / 2)) * 0.22 + Math.cos(a * 4) * 0.025;\n      } else if (style === \"runner\") {\n        r = 0.86 + Math.abs(Math.sin(a)) * 0.18 + Math.sin(a * 3) * 0.02;\n      } else if (style === \"shell\" || style === \"spiral\" || style === \"crescent\" || style === \"double-crescent\") {\n        r = 0.88 + Math.sin(a - 0.6) * 0.11 + Math.cos(a * 2.2) * 0.045;\n      } else if (style === \"pebble\" || style === \"cloud\" || style === \"overlap\") {\n        r = 0.91 + Math.sin(a * 2.1 + 0.7) * 0.08 + Math.cos(a * 5.2) * 0.035;\n      } else if (style === \"capsule\") {\n        r = 0.89 + Math.abs(Math.sin(a)) * 0.12 + Math.cos(a * 2) * 0.03;\n      } else if (style === \"mosaic\" || style === \"organic-six\") {\n        r = 0.93 + Math.sin(a * 3.0 + 0.2) * 0.055 + Math.cos(a * 4.4) * 0.025;\n      } else if (style === \"leaf\") {\n        r = 0.88 + Math.sin(a - Math.PI / 2) * 0.09 + Math.cos(a * 2) * 0.055;\n      }\n      out.push(Math.max(0.68, Math.min(1.16, r)));\n    }\n    return out;\n  }\n\n  function claudeAmorfOuterPoints(spec) {\n    return claudeAmorfShapeRadii(spec).map(function (radius, idx, arr) {\n      var angle = idx / arr.length * Math.PI * 2;\n      return [\n        0.5 + Math.cos(angle) * 0.42 * radius,\n        0.5 + Math.sin(angle) * 0.42 * radius\n      ];\n    });\n  }\n\n  function claudeAmorfShapePayload(template) {\n    var spec = claudeAmorfSpec(template);\n    var count = templateFixedRegionCount(template) || (spec && spec.count) || 1;\n    return {\n      type: \"amorf\",\n      label: shapeLabel(\"amorf\"),\n      presetKey: template.id,\n      presetLabel: template.label + \" / \" + templateRegionCountLabel(template, count),\n      radii: claudeAmorfShapeRadii(spec),\n      points: claudeAmorfOuterPoints(spec),\n      outlineCommands: smoothClosedCommands(claudeAmorfOuterPoints(spec), 0.7),\n      widthCm: state.width,\n      lengthCm: state.length\n    };\n  }\n\n  function massimoCurveBandRegions(templateId, labels, yStops, curves, widthCm, lengthCm) {\n    var out = [];\n    for (var i = 0; i < labels.length; i++) {\n      var points = [];\n      for (var a = 0; a < yStops.length; a++) {\n        points.push([curves[i][a], yStops[a]]);\n      }\n      for (var b = yStops.length - 1; b >= 0; b--) {\n        points.push([curves[i + 1][b], yStops[b]]);\n      }\n      out.push(makePolygonDesignRegion(templateId + \"-r\" + (i + 1), labels[i], points, widthCm, lengthCm));\n    }\n    return out;\n  }\n\n  function massimoCurveStackRegions(templateId, labels, xStops, curves, widthCm, lengthCm) {\n    var out = [];\n    for (var i = 0; i < labels.length; i++) {\n      var points = [];\n      for (var a = 0; a < xStops.length; a++) {\n        points.push([xStops[a], curves[i][a]]);\n      }\n      for (var b = xStops.length - 1; b >= 0; b--) {\n        points.push([xStops[b], curves[i + 1][b]]);\n      }\n      out.push(makePolygonDesignRegion(templateId + \"-r\" + (i + 1), labels[i], points, widthCm, lengthCm));\n    }\n    return out;\n  }\n\n  function organicTemplateRegions(template, widthCm, lengthCm, requestedCount) {\n    var spec = ORGANIC_TEMPLATE_SPEC_BY_ID[(template && template.id) || \"\"];\n    if (!spec || !Array.isArray(spec.labels) || !Array.isArray(spec.stops) || !Array.isArray(spec.curves)) return null;\n    // Kullan\u0131c\u0131 spec.labels.length'den farkl\u0131 say\u0131 se\u00E7tiyse organic curve geometrisi\n    // o say\u0131y\u0131 temsil edemez \u2192 null d\u00F6n, caller gridLayoutRegions'a fallback yaps\u0131n.\n    if (Number.isFinite(requestedCount) && requestedCount > 0 && requestedCount !== spec.labels.length) {\n      return null;\n    }\n    if (spec.orientation === \"stack\") {\n      return massimoCurveStackRegions(spec.id, spec.labels, spec.stops, spec.curves, widthCm, lengthCm);\n    }\n    return massimoCurveBandRegions(spec.id, spec.labels, spec.stops, spec.curves, widthCm, lengthCm);\n  }\n\n  function makeProductionSeam(id, label, commands) {\n    return {\n      id: id,\n      label: label || id,\n      path: {\n        type: \"commands\",\n        commands: commands\n      }\n    };\n  }\n\n  function gridLayoutRegions(count, widthCm, lengthCm, cornerDefault, edgeDefault) {\n    count = clampDesignRegionCount(count);\n    var rows = count <= 2 ? 1 : count <= 4 ? 2 : 2;\n    var cols = count === 1 ? 1 : count === 2 ? 2 : count <= 4 ? 2 : 3;\n    var out = [];\n    for (var i = 0; i < count; i++) {\n      var row = Math.floor(i / cols);\n      var col = i % cols;\n      var itemsInRow = Math.min(cols, count - row * cols);\n      var cw = widthCm / itemsInRow;\n      var ch = lengthCm / rows;\n      out.push(makeDesignRegion(\n        \"region-\" + (i + 1),\n        \"B\u00F6lge \" + (i + 1),\n        col * cw,\n        row * ch,\n        cw,\n        ch,\n        widthCm,\n        lengthCm,\n        cornerDefault,\n        edgeDefault\n      ));\n    }\n    return out;\n  }\n\n  function verticalStripRegions(count, widthCm, lengthCm, cornerDefault, edgeDefault) {\n    count = clampDesignRegionCount(count);\n    var out = [];\n    var cw = widthCm / count;\n    for (var i = 0; i < count; i++) {\n      out.push(makeDesignRegion(\"v-\" + (i + 1), \"Panel \" + (i + 1), i * cw, 0, cw, lengthCm, widthCm, lengthCm, cornerDefault, edgeDefault));\n    }\n    return out;\n  }\n\n  function horizontalStripRegions(count, widthCm, lengthCm, cornerDefault, edgeDefault) {\n    count = clampDesignRegionCount(count);\n    var out = [];\n    var ch = lengthCm / count;\n    for (var i = 0; i < count; i++) {\n      out.push(makeDesignRegion(\"h-\" + (i + 1), \"Panel \" + (i + 1), 0, i * ch, widthCm, ch, widthCm, lengthCm, cornerDefault, edgeDefault));\n    }\n    return out;\n  }\n\n  function sidePanelRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) return gridLayoutRegions(1, widthCm, lengthCm, \"square\", \"straight\");\n    var sideW = widthCm * 0.34;\n    var out = [makeDesignRegion(\"side-panel\", \"Yan Panel\", 0, 0, sideW, lengthCm, widthCm, lengthCm, \"round\", \"straight\")];\n    var rest = count - 1;\n    var rowH = lengthCm / rest;\n    for (var i = 0; i < rest; i++) {\n      out.push(makeDesignRegion(\"panel-\" + (i + 1), \"Panel \" + (i + 1), sideW, i * rowH, widthCm - sideW, rowH, widthCm, lengthCm, \"square\", \"straight\"));\n    }\n    return out;\n  }\n\n  function centerPanelRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 2) return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    var leftW = widthCm * 0.24;\n    var centerW = widthCm * 0.52;\n    var out = [\n      makeDesignRegion(\"left-side\", \"Sol Yan\", 0, 0, leftW, lengthCm, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"center-main\", \"Orta Panel\", leftW, 0, centerW, lengthCm, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"right-side\", \"Sa\u011F Yan\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm, widthCm, lengthCm, \"square\", \"straight\")\n    ];\n    if (count >= 4) {\n      out = [\n        makeDesignRegion(\"left-side\", \"Sol Yan\", 0, 0, leftW, lengthCm, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-top\", \"Orta \u00DCst\", leftW, 0, centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-bottom\", \"Orta Alt\", leftW, lengthCm * 0.5, centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-side\", \"Sa\u011F Yan\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    if (count >= 5) {\n      out = [\n        makeDesignRegion(\"left-top\", \"Sol \u00DCst\", 0, 0, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-top\", \"Orta \u00DCst\", leftW, 0, centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-bottom\", \"Orta Alt\", leftW, lengthCm * 0.5, centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-side\", \"Sa\u011F Yan\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    if (count >= 6) {\n      out.pop();\n      out.push(\n        makeDesignRegion(\"right-top\", \"Sa\u011F \u00DCst\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-bottom\", \"Sa\u011F Alt\", leftW + centerW, lengthCm * 0.5, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\")\n      );\n    }\n    if (count === 7) {\n      out = [\n        makeDesignRegion(\"left-top\", \"Sol \u00DCst\", 0, 0, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-top\", \"Orta \u00DCst\", leftW, 0, centerW, lengthCm / 3, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-middle\", \"Orta\", leftW, lengthCm / 3, centerW, lengthCm / 3, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-bottom\", \"Orta Alt\", leftW, lengthCm * 2 / 3, centerW, lengthCm / 3, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-top\", \"Sa\u011F \u00DCst\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-bottom\", \"Sa\u011F Alt\", leftW + centerW, lengthCm * 0.5, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    } else if (count >= 8) {\n      var halfCenter = centerW * 0.5;\n      out = [\n        makeDesignRegion(\"left-top\", \"Sol \u00DCst\", 0, 0, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, leftW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-top-left\", \"Orta Sol \u00DCst\", leftW, 0, halfCenter, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-top-right\", \"Orta Sa\u011F \u00DCst\", leftW + halfCenter, 0, halfCenter, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-bottom-left\", \"Orta Sol Alt\", leftW, lengthCm * 0.5, halfCenter, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"center-bottom-right\", \"Orta Sa\u011F Alt\", leftW + halfCenter, lengthCm * 0.5, halfCenter, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-top\", \"Sa\u011F \u00DCst\", leftW + centerW, 0, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"right-bottom\", \"Sa\u011F Alt\", leftW + centerW, lengthCm * 0.5, widthCm - leftW - centerW, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    return out.slice(0, count);\n  }\n\n  function cornerBlocksRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 3) return sidePanelRegions(count, widthCm, lengthCm);\n    if (count === 4) return gridLayoutRegions(4, widthCm, lengthCm, \"square\", \"straight\");\n    if (count === 5) {\n      return [\n        makeDesignRegion(\"top-left\", \"Sol \u00DCst\", 0, 0, widthCm * 0.34, lengthCm * 0.42, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"top-center\", \"\u00DCst Orta\", widthCm * 0.34, 0, widthCm * 0.32, lengthCm * 0.42, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"top-right\", \"Sa\u011F \u00DCst\", widthCm * 0.66, 0, widthCm * 0.34, lengthCm * 0.42, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"bottom-left\", \"Sol Alt\", 0, lengthCm * 0.42, widthCm * 0.5, lengthCm * 0.58, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"bottom-right\", \"Sa\u011F Alt\", widthCm * 0.5, lengthCm * 0.42, widthCm * 0.5, lengthCm * 0.58, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    if (count === 6) return gridLayoutRegions(6, widthCm, lengthCm, \"square\", \"straight\");\n    if (count === 7) {\n      return [\n        makeDesignRegion(\"top-left\", \"Sol \u00DCst\", 0, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"top-center\", \"\u00DCst Orta\", widthCm / 3, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"top-right\", \"Sa\u011F \u00DCst\", widthCm * 2 / 3, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"middle-left\", \"Orta Sol\", 0, lengthCm * 0.34, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"middle-right\", \"Orta Sa\u011F\", widthCm * 0.5, lengthCm * 0.34, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"bottom-left\", \"Sol Alt\", 0, lengthCm * 0.67, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"bottom-right\", \"Sa\u011F Alt\", widthCm * 0.5, lengthCm * 0.67, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    return [\n      makeDesignRegion(\"top-left\", \"Sol \u00DCst\", 0, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"top-center\", \"\u00DCst Orta\", widthCm / 3, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"top-right\", \"Sa\u011F \u00DCst\", widthCm * 2 / 3, 0, widthCm / 3, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"middle-left\", \"Orta Sol\", 0, lengthCm * 0.34, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"middle-right\", \"Orta Sa\u011F\", widthCm * 0.5, lengthCm * 0.34, widthCm * 0.5, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"bottom-left\", \"Sol Alt\", 0, lengthCm * 0.67, widthCm / 3, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"bottom-center\", \"Alt Orta\", widthCm / 3, lengthCm * 0.67, widthCm / 3, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"bottom-right\", \"Sa\u011F Alt\", widthCm * 2 / 3, lengthCm * 0.67, widthCm / 3, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\")\n    ];\n  }\n\n  function frameInnerRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 4) return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    var topH = lengthCm * 0.22;\n    var bottomH = lengthCm * 0.22;\n    var leftW = widthCm * 0.22;\n    var rightW = widthCm * 0.22;\n    var innerTop = topH / lengthCm;\n    var innerBottom = 1 - bottomH / lengthCm;\n    var innerLeft = leftW / widthCm;\n    var innerRight = 1 - rightW / widthCm;\n    var frame = [\n      makeDesignRegion(\"top-frame\", \"\u00DCst \u00C7er\u00E7eve\", 0, 0, widthCm, topH, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"left-frame\", \"Sol \u00C7er\u00E7eve\", 0, topH, leftW, lengthCm - topH - bottomH, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"right-frame\", \"Sa\u011F \u00C7er\u00E7eve\", widthCm - rightW, topH, rightW, lengthCm - topH - bottomH, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"bottom-frame\", \"Alt \u00C7er\u00E7eve\", 0, lengthCm - bottomH, widthCm, bottomH, widthCm, lengthCm, \"square\", \"straight\")\n    ];\n    return frame.concat(nestedInsetInnerRegions(count - frame.length, innerLeft, innerTop, innerRight, innerBottom, widthCm, lengthCm)).slice(0, count);\n  }\n\n  function diagonalStripRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) return gridLayoutRegions(1, widthCm, lengthCm, \"square\", \"straight\");\n    var shift = Math.min(0.22, 0.42 / count);\n    var out = [];\n    for (var i = 0; i < count; i++) {\n      var t0 = i / count;\n      var t1 = (i + 1) / count;\n      var b0 = i === 0 ? 0 : Math.max(0, t0 - shift);\n      var b1 = i === count - 1 ? 1 : Math.max(0, t1 - shift);\n      var pts = [[t0, 0], [t1, 0], [b1, 1], [b0, 1]];\n      if (i === 0) pts[0] = [0, 0];\n      if (i === count - 1) pts[1] = [1, 0];\n      out.push(makePolygonDesignRegion(\"diagonal-\" + (i + 1), \"\u00C7apraz \" + (i + 1), pts, widthCm, lengthCm));\n    }\n    return out;\n  }\n\n  function chevronRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 2) return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (count === 3) {\n      return [\n        makeDesignRegion(\"chevron-top\", \"\u00DCst V\", 0, 0, widthCm, lengthCm * 0.44, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"chevron-left\", \"Sol Alt\", 0, lengthCm * 0.44, widthCm * 0.5, lengthCm * 0.56, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"chevron-right\", \"Sa\u011F Alt\", widthCm * 0.5, lengthCm * 0.44, widthCm * 0.5, lengthCm * 0.56, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n  }\n\n  function mosaicRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 4) return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    var out = [\n      makeDesignRegion(\"mosaic-left\", \"Sol B\u00FCy\u00FCk\", 0, 0, widthCm * 0.38, lengthCm, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"mosaic-top\", \"\u00DCst Orta\", widthCm * 0.38, 0, widthCm * 0.32, lengthCm * 0.46, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"mosaic-top-right\", \"Sa\u011F \u00DCst\", widthCm * 0.70, 0, widthCm * 0.30, lengthCm * 0.46, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"mosaic-bottom\", \"Alt Orta\", widthCm * 0.38, lengthCm * 0.46, widthCm * 0.32, lengthCm * 0.54, widthCm, lengthCm, \"square\", \"straight\"),\n      makeDesignRegion(\"mosaic-bottom-right\", \"Sa\u011F Alt\", widthCm * 0.70, lengthCm * 0.46, widthCm * 0.30, lengthCm * 0.54, widthCm, lengthCm, \"square\", \"straight\")\n    ];\n    if (count >= 6) {\n      out = [\n        makeDesignRegion(\"mosaic-left-top\", \"Sol \u00DCst\", 0, 0, widthCm * 0.38, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, widthCm * 0.38, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-top\", \"\u00DCst Orta\", widthCm * 0.38, 0, widthCm * 0.32, lengthCm * 0.46, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-top-right\", \"Sa\u011F \u00DCst\", widthCm * 0.70, 0, widthCm * 0.30, lengthCm * 0.46, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-bottom\", \"Alt Orta\", widthCm * 0.38, lengthCm * 0.46, widthCm * 0.32, lengthCm * 0.54, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-bottom-right\", \"Sa\u011F Alt\", widthCm * 0.70, lengthCm * 0.46, widthCm * 0.30, lengthCm * 0.54, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    if (count === 7) {\n      out = [\n        makeDesignRegion(\"mosaic-left-top\", \"Sol \u00DCst\", 0, 0, widthCm * 0.34, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, widthCm * 0.34, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-center-top\", \"Orta \u00DCst\", widthCm * 0.34, 0, widthCm * 0.33, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-right-top\", \"Sa\u011F \u00DCst\", widthCm * 0.67, 0, widthCm * 0.33, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-center-middle\", \"Orta\", widthCm * 0.34, lengthCm * 0.34, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-right-middle\", \"Sa\u011F Orta\", widthCm * 0.67, lengthCm * 0.34, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-bottom\", \"Alt Blok\", widthCm * 0.34, lengthCm * 0.67, widthCm * 0.66, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    } else if (count >= 8) {\n      out = [\n        makeDesignRegion(\"mosaic-left-top\", \"Sol \u00DCst\", 0, 0, widthCm * 0.34, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-left-bottom\", \"Sol Alt\", 0, lengthCm * 0.5, widthCm * 0.34, lengthCm * 0.5, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-center-top\", \"Orta \u00DCst\", widthCm * 0.34, 0, widthCm * 0.33, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-right-top\", \"Sa\u011F \u00DCst\", widthCm * 0.67, 0, widthCm * 0.33, lengthCm * 0.34, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-center-middle\", \"Orta\", widthCm * 0.34, lengthCm * 0.34, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-right-middle\", \"Sa\u011F Orta\", widthCm * 0.67, lengthCm * 0.34, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-center-bottom\", \"Orta Alt\", widthCm * 0.34, lengthCm * 0.67, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\"),\n        makeDesignRegion(\"mosaic-right-bottom\", \"Sa\u011F Alt\", widthCm * 0.67, lengthCm * 0.67, widthCm * 0.33, lengthCm * 0.33, widthCm, lengthCm, \"square\", \"straight\")\n      ];\n    }\n    return out.slice(0, count);\n  }\n\n  function archEndRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) return gridLayoutRegions(1, widthCm, lengthCm, \"square\", \"straight\");\n    var out = horizontalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    return out;\n  }\n\n  function asymmetricRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 2) return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    var leftW = widthCm * 0.62;\n    var out = [makeDesignRegion(\"asym-main\", \"B\u00FCy\u00FCk Alan\", 0, 0, leftW, lengthCm, widthCm, lengthCm, \"square\", \"straight\")];\n    var rest = count - 1;\n    var rowH = lengthCm / rest;\n    for (var i = 0; i < rest; i++) {\n      out.push(makeDesignRegion(\"asym-side-\" + (i + 1), \"Yan \" + (i + 1), leftW, i * rowH, widthCm - leftW, rowH, widthCm, lengthCm, \"square\", \"straight\"));\n    }\n    return out;\n  }\n\n  function wavePartitionRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n  }\n\n  function rectCommands(x0, y0, x1, y1) {\n    return [[\"M\", x0, y0], [\"L\", x1, y0], [\"L\", x1, y1], [\"L\", x0, y1], [\"Z\"]];\n  }\n\n  function polyCommands(points) {\n    return points.map(function (pt, idx) {\n      return [idx ? \"L\" : \"M\", pt[0], pt[1]];\n    }).concat([[\"Z\"]]);\n  }\n\n  function archCurvePoint(t) {\n    var omt = 1 - t;\n    return [\n      omt * omt * 0 + 2 * omt * t * 0.5 + t * t * 1,\n      omt * omt * 0.3 + 2 * omt * t * -0.08 + t * t * 0.3\n    ];\n  }\n\n  function archCurveControl(t0, t1) {\n    var p = archCurvePoint(t0);\n    var span = t1 - t0;\n    var dx = (1 - t0) * 0.5 + t0 * 0.5;\n    var dy = (1 - t0) * -0.38 + t0 * 0.38;\n    return [p[0] + span * dx, p[1] + span * dy];\n  }\n\n  function archBandCommands(t0, t1, bottomY) {\n    var p0 = archCurvePoint(t0);\n    var pc = archCurveControl(t0, t1);\n    var p1 = archCurvePoint(t1);\n    return [\n      [\"M\", p0[0], p0[1]],\n      [\"Q\", pc[0], pc[1], p1[0], p1[1]],\n      [\"L\", p1[0], bottomY],\n      [\"L\", p0[0], bottomY],\n      [\"Z\"]\n    ];\n  }\n\n  function perimeterPoint(t) {\n    t = ((t % 1) + 1) % 1;\n    if (t < 0.25) return [t / 0.25, 0];\n    if (t < 0.5) return [1, (t - 0.25) / 0.25];\n    if (t < 0.75) return [1 - (t - 0.5) / 0.25, 1];\n    return [0, 1 - (t - 0.75) / 0.25];\n  }\n\n  function perimeterSegmentPoints(t0, t1) {\n    if (t1 < t0) t1 += 1;\n    var points = [perimeterPoint(t0)];\n    var startCorner = Math.floor(t0 * 4) + 1;\n    var endCorner = Math.floor(t1 * 4);\n    for (var c = startCorner; c <= endCorner; c++) {\n      var cornerT = c / 4;\n      if (cornerT > t0 + 0.0001 && cornerT < t1 - 0.0001) {\n        points.push(perimeterPoint(cornerT));\n      }\n    }\n    points.push(perimeterPoint(t1));\n    return points;\n  }\n\n  function productionTopology(template, variant, regions, seams, nodes) {\n    return {\n      familyId: template.id.replace(/^premium-/, \"\"),\n      templateId: template.id,\n      label: template.label,\n      variant: Object.assign(defaultPremiumVariant(), variant || {}),\n      outerPath: template.outerShape || \"rect\",\n      faces: regions,\n      regions: regions,\n      seams: seams || [],\n      nodes: nodes || []\n    };\n  }\n\n  function fanTopology(template, count, widthCm, lengthCm, anchor, start, label) {\n    count = clampDesignRegionCount(count);\n    var regions = [];\n    var seams = [];\n    var nodes = [{ id: \"center\", x: anchor[0], y: anchor[1] }];\n    for (var i = 0; i < count; i++) {\n      var segment = perimeterSegmentPoints(start + i / count, start + (i + 1) / count);\n      var p0 = segment[0];\n      regions.push(makePolygonDesignRegion(\n        \"fan-\" + (i + 1),\n        (label || \"Kesim\") + \" \" + (i + 1),\n        [anchor].concat(segment),\n        widthCm,\n        lengthCm\n      ));\n      if (i > 0) seams.push(makeProductionSeam(\"fan-seam-\" + i, \"Fan seam \" + i, [[\"M\", anchor[0], anchor[1]], [\"L\", p0[0], p0[1]]]));\n    }\n    return productionTopology(template, currentPremiumVariant(), regions, seams, nodes);\n  }\n\n  function diagonalRibbonTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    var regions = [];\n    var seams = [];\n    var shift = currentPremiumVariant().seamStyle === \"angular\" ? 0.34 : 0.22;\n    for (var i = 0; i < count; i++) {\n      var t0 = i / count;\n      var t1 = (i + 1) / count;\n      var b0 = i === 0 ? 0 : Math.max(0, t0 - shift);\n      var b1 = i === count - 1 ? 1 : Math.max(0, t1 - shift);\n      regions.push(makePolygonDesignRegion(\"ribbon-\" + (i + 1), \"\u015Eerit \" + (i + 1), [[t0, 0], [t1, 0], [b1, 1], [b0, 1]], widthCm, lengthCm));\n      if (i > 0) seams.push(makeProductionSeam(\"ribbon-seam-\" + i, \"\u00C7apraz seam \" + i, [[\"M\", t0, 0], [\"L\", b0, 1]]));\n    }\n    return productionTopology(template, currentPremiumVariant(), regions, seams);\n  }\n\n  function steppedTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"step-full\", \"Ana Par\u00E7a\", rectCommands(0, 0, 1, 1), widthCm, lengthCm, \"block\")\n      ], []);\n    }\n    if (count === 2) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"step-left\", \"Sol Kademe\", rectCommands(0, 0, 0.58, 1), widthCm, lengthCm, \"block\"),\n        makeCommandDesignRegion(\"step-right\", \"Sa\u011F Kademe\", rectCommands(0.58, 0, 1, 1), widthCm, lengthCm, \"block\")\n      ], [\n        makeProductionSeam(\"step-v\", \"Dikey kademe\", [[\"M\", 0.58, 0], [\"L\", 0.58, 1]])\n      ]);\n    }\n    if (count <= 3) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"step-main\", \"Ana Par\u00E7a\", rectCommands(0, 0, 0.58, 1), widthCm, lengthCm, \"block\"),\n        makeCommandDesignRegion(\"step-top\", \"\u00DCst Kademe\", rectCommands(0.58, 0, 1, 0.46), widthCm, lengthCm, \"block\"),\n        makeCommandDesignRegion(\"step-bottom\", \"Alt Kademe\", rectCommands(0.58, 0.46, 1, 1), widthCm, lengthCm, \"block\")\n      ].slice(0, count), [\n        makeProductionSeam(\"step-v\", \"Dikey kademe\", [[\"M\", 0.58, 0], [\"L\", 0.58, 1]]),\n        makeProductionSeam(\"step-h\", \"Yatay kademe\", [[\"M\", 0.58, 0.46], [\"L\", 1, 0.46]])\n      ]);\n    }\n    return productionTopology(template, currentPremiumVariant(), gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\"), []);\n  }\n\n  function quarterArcTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"arc-full\", \"Ana Par\u00E7a\", rectCommands(0, 0, 1, 1), widthCm, lengthCm, \"block\")\n      ], []);\n    }\n    if (count === 2) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"arc-left\", \"Sol Blok\", rectCommands(0, 0, 0.5, 1), widthCm, lengthCm, \"block\"),\n        makeCommandDesignRegion(\"arc-right\", \"Sa\u011F Yay Blok\", rectCommands(0.5, 0, 1, 1), widthCm, lengthCm, \"arc\")\n      ], [\n        makeProductionSeam(\"arc-v\", \"Dikey seam\", [[\"M\", 0.5, 0], [\"L\", 0.5, 1]])\n      ]);\n    }\n    if (count <= 3) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"arc-left\", \"Sol Blok\", rectCommands(0, 0, 0.5, 1), widthCm, lengthCm, \"block\"),\n        makeCommandDesignRegion(\"arc-top\", \"\u00DCst Yay\", [[\"M\", 0.5, 0], [\"L\", 1, 0], [\"L\", 1, 0.5], [\"Q\", 0.72, 0.56, 0.5, 0.5], [\"Z\"]], widthCm, lengthCm, \"arc\"),\n        makeCommandDesignRegion(\"arc-bottom\", \"Alt Yay\", [[\"M\", 0.5, 0.5], [\"Q\", 0.72, 0.56, 1, 0.5], [\"L\", 1, 1], [\"L\", 0.5, 1], [\"Z\"]], widthCm, lengthCm, \"arc\")\n      ].slice(0, count), [\n        makeProductionSeam(\"arc-center\", \"Tamamlay\u0131c\u0131 yay\", [[\"M\", 0.5, 0], [\"L\", 0.5, 0.5], [\"Q\", 0.72, 0.56, 1, 0.5]])\n      ]);\n    }\n    var regions = count >= 7\n      ? gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\")\n      : cornerBlocksRegions(count, widthCm, lengthCm);\n    return productionTopology(template, currentPremiumVariant(), regions.slice(0, count), [\n      makeProductionSeam(\"arc-v\", \"Dikey seam\", [[\"M\", 0.5, 0], [\"L\", 0.5, 1]]),\n      makeProductionSeam(\"arc-h\", \"Yatay seam\", [[\"M\", 0, 0.5], [\"L\", 1, 0.5]]),\n      makeProductionSeam(\"arc-q1\", \"Yay seam\", [[\"M\", 0.5, 0.5], [\"Q\", 0.73, 0.56, 1, 0.5]]),\n      makeProductionSeam(\"arc-q2\", \"Yay seam\", [[\"M\", 0.5, 0.5], [\"Q\", 0.54, 0.75, 0.5, 1]])\n    ]);\n  }\n\n  function waveBoundaryPoint(t) {\n    return [t, 0.5 + 0.12 * Math.sin(Math.PI * 2 * t)];\n  }\n\n  function waveBoundaryControl(t0, t1) {\n    var tm = (t0 + t1) / 2;\n    return [tm, 0.5 + 0.16 * Math.sin(Math.PI * 2 * tm)];\n  }\n\n  function waveTopCommands(t0, t1) {\n    var p0 = waveBoundaryPoint(t0);\n    var p1 = waveBoundaryPoint(t1);\n    var c = waveBoundaryControl(t0, t1);\n    return [[\"M\", t0, 0], [\"L\", t1, 0], [\"L\", p1[0], p1[1]], [\"Q\", c[0], c[1], p0[0], p0[1]], [\"Z\"]];\n  }\n\n  function waveBottomCommands(t0, t1) {\n    var p0 = waveBoundaryPoint(t0);\n    var p1 = waveBoundaryPoint(t1);\n    var c = waveBoundaryControl(t0, t1);\n    return [[\"M\", p0[0], p0[1]], [\"Q\", c[0], c[1], p1[0], p1[1]], [\"L\", t1, 1], [\"L\", t0, 1], [\"Z\"]];\n  }\n\n  function multiArcTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"multi-full\", \"Ana Par\u00E7a\", rectCommands(0, 0, 1, 1), widthCm, lengthCm, \"block\")\n      ], []);\n    }\n    if (count % 2 === 1) {\n      return productionTopology(template, currentPremiumVariant(), cornerBlocksRegions(count, widthCm, lengthCm), [\n        makeProductionSeam(\"multi-wave-main\", \"Ana yay seam\", [[\"M\", 0, 0.5], [\"Q\", 0.25, 0.66, 0.5, 0.5], [\"Q\", 0.75, 0.34, 1, 0.5]]),\n        makeProductionSeam(\"multi-wave-side\", \"Yan yay seam\", [[\"M\", 0.5, 0], [\"Q\", 0.62, 0.28, 0.5, 0.5], [\"Q\", 0.38, 0.72, 0.5, 1]])\n      ]);\n    }\n    var topCount = Math.ceil(count / 2);\n    var bottomCount = count - topCount;\n    var regions = [];\n    var seams = [\n      makeProductionSeam(\"multi-wave-main\", \"Ana yay seam\", [[\"M\", 0, 0.5], [\"Q\", 0.25, 0.66, 0.5, 0.5], [\"Q\", 0.75, 0.34, 1, 0.5]])\n    ];\n    for (var i = 0; i < topCount; i++) {\n      var t0 = i / topCount;\n      var t1 = (i + 1) / topCount;\n      regions.push(makeCommandDesignRegion(\"multi-top-\" + (i + 1), \"\u00DCst Yay \" + (i + 1), waveTopCommands(t0, t1), widthCm, lengthCm, \"arc\"));\n      if (i > 0) seams.push(makeProductionSeam(\"multi-top-seam-\" + i, \"\u00DCst seam \" + i, [[\"M\", t0, 0], [\"L\", t0, waveBoundaryPoint(t0)[1]]]));\n    }\n    for (var j = 0; j < bottomCount; j++) {\n      var b0 = j / Math.max(1, bottomCount);\n      var b1 = (j + 1) / Math.max(1, bottomCount);\n      regions.push(makeCommandDesignRegion(\"multi-bottom-\" + (j + 1), \"Alt Yay \" + (j + 1), waveBottomCommands(b0, b1), widthCm, lengthCm, \"arc\"));\n      if (j > 0) seams.push(makeProductionSeam(\"multi-bottom-seam-\" + j, \"Alt seam \" + j, [[\"M\", b0, waveBoundaryPoint(b0)[1]], [\"L\", b0, 1]]));\n    }\n    return productionTopology(template, currentPremiumVariant(), regions.slice(0, count), seams);\n  }\n\n  function capsuleSplitTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"capsule-full\", \"Ana Kaps\u00FCl\", rectCommands(0, 0, 1, 1), widthCm, lengthCm, \"capsule\")\n      ], []);\n    }\n    if (count === 2) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"capsule-top\", \"\u00DCst Kaps\u00FCl\", rectCommands(0, 0, 1, 0.5), widthCm, lengthCm, \"capsule\"),\n        makeCommandDesignRegion(\"capsule-bottom\", \"Alt Kaps\u00FCl\", rectCommands(0, 0.5, 1, 1), widthCm, lengthCm, \"capsule\")\n      ], [makeProductionSeam(\"capsule-mid\", \"Kaps\u00FCl orta seam\", [[\"M\", 0, 0.5], [\"L\", 1, 0.5]])]);\n    }\n    if (count <= 4) {\n      return productionTopology(template, currentPremiumVariant(), horizontalStripRegions(count, widthCm, lengthCm, \"round\", \"straight\"), []);\n    }\n    var regions = mosaicRegions(count, widthCm, lengthCm);\n    return productionTopology(template, currentPremiumVariant(), regions.slice(0, count), [\n      makeProductionSeam(\"capsule-head-seam\", \"\u00DCst kaps\u00FCl seam\", [[\"M\", 0, 0.18], [\"L\", 1, 0.18]]),\n      makeProductionSeam(\"capsule-mid-seam\", \"Orta kaps\u00FCl seam\", [[\"M\", 0, 0.45], [\"L\", 1, 0.45]]),\n      makeProductionSeam(\"capsule-foot-seam\", \"Alt kaps\u00FCl seam\", [[\"M\", 0, 0.73], [\"L\", 1, 0.73]])\n    ]);\n  }\n\n  function nestedInsetInnerRegions(innerCount, l, t, r, b, widthCm, lengthCm) {\n    var cx = (l + r) / 2;\n    var cy = (t + b) / 2;\n    if (innerCount <= 1) {\n      return [\n        makeCommandDesignRegion(\"inset-center\", \"\u0130\u00E7 Par\u00E7a\", rectCommands(l, t, r, b), widthCm, lengthCm, \"insert\")\n      ];\n    }\n    if (innerCount === 2) {\n      return [\n        makeCommandDesignRegion(\"inset-left\", \"\u0130\u00E7 Sol\", rectCommands(l, t, cx, b), widthCm, lengthCm, \"insert\"),\n        makeCommandDesignRegion(\"inset-right\", \"\u0130\u00E7 Sa\u011F\", rectCommands(cx, t, r, b), widthCm, lengthCm, \"insert\")\n      ];\n    }\n    if (innerCount === 3) {\n      return [\n        makeCommandDesignRegion(\"inset-top\", \"\u0130\u00E7 \u00DCst\", rectCommands(l, t, r, cy), widthCm, lengthCm, \"insert\"),\n        makeCommandDesignRegion(\"inset-bottom-left\", \"\u0130\u00E7 Sol Alt\", rectCommands(l, cy, cx, b), widthCm, lengthCm, \"insert\"),\n        makeCommandDesignRegion(\"inset-bottom-right\", \"\u0130\u00E7 Sa\u011F Alt\", rectCommands(cx, cy, r, b), widthCm, lengthCm, \"insert\")\n      ];\n    }\n    return [\n      makeCommandDesignRegion(\"inset-top-left\", \"\u0130\u00E7 Sol \u00DCst\", rectCommands(l, t, cx, cy), widthCm, lengthCm, \"insert\"),\n      makeCommandDesignRegion(\"inset-top-right\", \"\u0130\u00E7 Sa\u011F \u00DCst\", rectCommands(cx, t, r, cy), widthCm, lengthCm, \"insert\"),\n      makeCommandDesignRegion(\"inset-bottom-left\", \"\u0130\u00E7 Sol Alt\", rectCommands(l, cy, cx, b), widthCm, lengthCm, \"insert\"),\n      makeCommandDesignRegion(\"inset-bottom-right\", \"\u0130\u00E7 Sa\u011F Alt\", rectCommands(cx, cy, r, b), widthCm, lengthCm, \"insert\")\n    ];\n  }\n\n  function nestedInsetSeams(innerCount, l, t, r, b) {\n    var cx = (l + r) / 2;\n    var cy = (t + b) / 2;\n    var seams = [\n      makeProductionSeam(\"inset-top-boundary\", \"\u00DCst i\u00E7 s\u0131n\u0131r\", [[\"M\", 0, t], [\"L\", 1, t]]),\n      makeProductionSeam(\"inset-bottom-boundary\", \"Alt i\u00E7 s\u0131n\u0131r\", [[\"M\", 0, b], [\"L\", 1, b]]),\n      makeProductionSeam(\"inset-left-boundary\", \"Sol i\u00E7 s\u0131n\u0131r\", [[\"M\", l, t], [\"L\", l, b]]),\n      makeProductionSeam(\"inset-right-boundary\", \"Sa\u011F i\u00E7 s\u0131n\u0131r\", [[\"M\", r, t], [\"L\", r, b]])\n    ];\n    if (innerCount === 2) {\n      seams.push(makeProductionSeam(\"inset-center-v\", \"\u0130\u00E7 dikey s\u0131n\u0131r\", [[\"M\", cx, t], [\"L\", cx, b]]));\n    } else if (innerCount === 3) {\n      seams.push(makeProductionSeam(\"inset-center-h\", \"\u0130\u00E7 yatay s\u0131n\u0131r\", [[\"M\", l, cy], [\"L\", r, cy]]));\n      seams.push(makeProductionSeam(\"inset-bottom-v\", \"\u0130\u00E7 alt dikey s\u0131n\u0131r\", [[\"M\", cx, cy], [\"L\", cx, b]]));\n    } else if (innerCount >= 4) {\n      seams.push(makeProductionSeam(\"inset-center-v\", \"\u0130\u00E7 dikey s\u0131n\u0131r\", [[\"M\", cx, t], [\"L\", cx, b]]));\n      seams.push(makeProductionSeam(\"inset-center-h\", \"\u0130\u00E7 yatay s\u0131n\u0131r\", [[\"M\", l, cy], [\"L\", r, cy]]));\n    }\n    return seams;\n  }\n\n  function insetTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    var v = currentPremiumVariant();\n    var l = 0.22, t = 0.24, r = 0.78, b = 0.76;\n    var regions;\n    if (count <= 3) {\n      regions = centerPanelRegions(count, widthCm, lengthCm);\n    } else if (count === 4) {\n      regions = gridLayoutRegions(4, widthCm, lengthCm, \"square\", \"straight\");\n    } else {\n      var frame = [\n        makeCommandDesignRegion(\"frame-top\", \"\u00DCst \u00C7er\u00E7eve\", rectCommands(0, 0, 1, t), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"frame-left\", \"Sol \u00C7er\u00E7eve\", rectCommands(0, t, l, b), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"frame-right\", \"Sa\u011F \u00C7er\u00E7eve\", rectCommands(r, t, 1, b), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"frame-bottom\", \"Alt \u00C7er\u00E7eve\", rectCommands(0, b, 1, 1), widthCm, lengthCm, \"frame\")\n      ];\n      regions = frame.concat(nestedInsetInnerRegions(count - frame.length, l, t, r, b, widthCm, lengthCm));\n    }\n    return productionTopology(template, v, regions.slice(0, count), count > 4 ? nestedInsetSeams(count - 4, l, t, r, b) : []);\n  }\n\n  function offsetInsetTopology(template, count, widthCm, lengthCm, l, t, r, b) {\n    count = clampDesignRegionCount(count);\n    if (count <= 3) return productionTopology(template, currentPremiumVariant(), centerPanelRegions(count, widthCm, lengthCm), []);\n    if (count === 4) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"offset-top-left\", \"\u00DCst Sol\", rectCommands(0, 0, r, t), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"offset-top-right\", \"\u00DCst Sa\u011F\", rectCommands(r, 0, 1, t), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"offset-lower-left\", \"Alt Sol\", rectCommands(0, t, l, 1), widthCm, lengthCm, \"frame\"),\n        makeCommandDesignRegion(\"offset-lower-right\", \"Alt Sa\u011F\", rectCommands(l, t, 1, 1), widthCm, lengthCm, \"frame\")\n      ], [\n        makeProductionSeam(\"offset-v\", \"Ofset dikey seam\", [[\"M\", l, t], [\"L\", l, 1]]),\n        makeProductionSeam(\"offset-h\", \"Ofset yatay seam\", [[\"M\", 0, t], [\"L\", 1, t]])\n      ]);\n    }\n    var frame = [\n      makeCommandDesignRegion(\"offset-frame-top\", \"\u00DCst Frame\", rectCommands(0, 0, 1, t), widthCm, lengthCm, \"frame\"),\n      makeCommandDesignRegion(\"offset-frame-left\", \"Sol Frame\", rectCommands(0, t, l, b), widthCm, lengthCm, \"frame\"),\n      makeCommandDesignRegion(\"offset-frame-right\", \"Sa\u011F Frame\", rectCommands(r, t, 1, b), widthCm, lengthCm, \"frame\"),\n      makeCommandDesignRegion(\"offset-frame-bottom\", \"Alt Frame\", rectCommands(0, b, 1, 1), widthCm, lengthCm, \"frame\")\n    ];\n    var regions = frame.concat(nestedInsetInnerRegions(count - frame.length, l, t, r, b, widthCm, lengthCm));\n    return productionTopology(template, currentPremiumVariant(), regions.slice(0, count), nestedInsetSeams(count - 4, l, t, r, b));\n  }\n\n  function crossAxisTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count <= 2) return productionTopology(template, currentPremiumVariant(), verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\"), []);\n    if (count === 3) return productionTopology(template, currentPremiumVariant(), centerPanelRegions(count, widthCm, lengthCm), []);\n    if (count === 4) return productionTopology(template, currentPremiumVariant(), gridLayoutRegions(4, widthCm, lengthCm, \"square\", \"straight\"), []);\n    if (count === 5) {\n      return productionTopology(template, currentPremiumVariant(), [\n        makeCommandDesignRegion(\"cross-top\", \"\u00DCst Aks\", rectCommands(0, 0, 1, 0.28), widthCm, lengthCm, \"axis\"),\n        makeCommandDesignRegion(\"cross-left\", \"Sol Aks\", rectCommands(0, 0.28, 0.32, 0.72), widthCm, lengthCm, \"axis\"),\n        makeCommandDesignRegion(\"cross-center\", \"Merkez\", rectCommands(0.32, 0.28, 0.68, 0.72), widthCm, lengthCm, \"axis\"),\n        makeCommandDesignRegion(\"cross-right\", \"Sa\u011F Aks\", rectCommands(0.68, 0.28, 1, 0.72), widthCm, lengthCm, \"axis\"),\n        makeCommandDesignRegion(\"cross-bottom\", \"Alt Aks\", rectCommands(0, 0.72, 1, 1), widthCm, lengthCm, \"axis\")\n      ], [\n        makeProductionSeam(\"cross-h1\", \"\u00DCst aks seam\", [[\"M\", 0, 0.28], [\"L\", 1, 0.28]]),\n        makeProductionSeam(\"cross-h2\", \"Alt aks seam\", [[\"M\", 0, 0.72], [\"L\", 1, 0.72]])\n      ]);\n    }\n    if (count === 6) return productionTopology(template, currentPremiumVariant(), cornerBlocksRegions(6, widthCm, lengthCm), []);\n    return productionTopology(template, currentPremiumVariant(), mosaicRegions(count, widthCm, lengthCm), []);\n  }\n\n  function archPanelTopology(template, count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    var archCap = makeCommandDesignRegion(\n      \"arch-cap\",\n      \"Kemer Kapak\",\n      [[\"M\", 0, 0.3], [\"Q\", 0.5, -0.08, 1, 0.3], [\"L\", 1, 0], [\"L\", 0, 0], [\"Z\"]],\n      widthCm,\n      lengthCm,\n      \"arch\"\n    );\n    function upperRegion(id, label, t0, t1) {\n      return makeCommandDesignRegion(id, label, archBandCommands(t0, t1, 0.52), widthCm, lengthCm, \"arch\");\n    }\n    var archUpper = upperRegion(\"arch-upper\", \"Kemer Alt Raf\", 0, 1);\n    var upperHalfLeft = upperRegion(\"arch-upper-left\", \"Sol \u00DCst Raf\", 0, 0.5);\n    var upperHalfRight = upperRegion(\"arch-upper-right\", \"Sa\u011F \u00DCst Raf\", 0.5, 1);\n    var upperLeft = upperRegion(\"arch-upper-left\", \"Sol \u00DCst Raf\", 0, 0.34);\n    var upperCenter = upperRegion(\"arch-upper-center\", \"Orta \u00DCst Raf\", 0.34, 0.66);\n    var upperRight = upperRegion(\"arch-upper-right\", \"Sa\u011F \u00DCst Raf\", 0.66, 1);\n    var regions;\n    if (count === 1) {\n      regions = gridLayoutRegions(1, widthCm, lengthCm, \"square\", \"straight\");\n    } else if (count === 2) {\n      regions = [\n        archCap,\n        makeCommandDesignRegion(\"arch-body\", \"Kemer Govde\", [[\"M\", 0, 0.3], [\"Q\", 0.5, -0.08, 1, 0.3], [\"L\", 1, 1], [\"L\", 0, 1], [\"Z\"]], widthCm, lengthCm, \"panel\")\n      ];\n    } else if (count === 3) {\n      regions = [\n        archCap,\n        archUpper,\n        makeCommandDesignRegion(\"arch-lower\", \"Alt Govde\", rectCommands(0, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    } else if (count === 4) {\n      regions = [\n        archCap,\n        archUpper,\n        makeCommandDesignRegion(\"arch-left\", \"Sol Panel\", rectCommands(0, 0.52, 0.5, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-right\", \"Sag Panel\", rectCommands(0.5, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    } else if (count === 5) {\n      regions = [\n        archCap,\n        upperHalfLeft,\n        upperHalfRight,\n        makeCommandDesignRegion(\"arch-lower-left\", \"Sol Alt\", rectCommands(0, 0.52, 0.5, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-right\", \"Sag Alt\", rectCommands(0.5, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    } else if (count === 6) {\n      regions = [\n        archCap,\n        upperLeft,\n        upperCenter,\n        upperRight,\n        makeCommandDesignRegion(\"arch-lower-left\", \"Sol Alt\", rectCommands(0, 0.52, 0.5, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-right\", \"Sag Alt\", rectCommands(0.5, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    } else if (count === 7) {\n      regions = [\n        archCap,\n        upperLeft,\n        upperCenter,\n        upperRight,\n        makeCommandDesignRegion(\"arch-lower-left\", \"Sol Alt\", rectCommands(0, 0.52, 0.32, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-center\", \"Orta Alt\", rectCommands(0.32, 0.52, 0.68, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-right\", \"Sag Alt\", rectCommands(0.68, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    } else {\n      regions = [\n        archCap,\n        upperLeft,\n        upperCenter,\n        upperRight,\n        makeCommandDesignRegion(\"arch-lower-left\", \"Sol Alt\", rectCommands(0, 0.52, 0.32, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-center-top\", \"Orta Alt Ust\", rectCommands(0.32, 0.52, 0.68, 0.76), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-center-bottom\", \"Orta Alt Alt\", rectCommands(0.32, 0.76, 0.68, 1), widthCm, lengthCm, \"panel\"),\n        makeCommandDesignRegion(\"arch-lower-right\", \"Sag Alt\", rectCommands(0.68, 0.52, 1, 1), widthCm, lengthCm, \"panel\")\n      ];\n    }\n    return productionTopology(template, currentPremiumVariant(), regions.slice(0, count), [\n      makeProductionSeam(\"arch-curve\", \"Kemer seam\", [[\"M\", 0, 0.3], [\"Q\", 0.5, -0.08, 1, 0.3]]),\n      makeProductionSeam(\"arch-panels\", \"Panel seam\", [[\"M\", 0, 0.52], [\"L\", 1, 0.52]])\n    ]);\n  }\n\n  function premiumTopologyForTemplate(template, count, widthCm, lengthCm) {\n    if (!isPremiumTemplate(template)) return null;\n    var id = template.id;\n    if (id === \"premium-quarter-arc-block\") return quarterArcTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-pinwheel-kite\") return fanTopology(template, count, widthCm, lengthCm, [0.5, 0.5], 0.125, \"Kite\");\n    if (id === \"premium-faceted-polygon\") return fanTopology(template, count, widthCm, lengthCm, [0.72, 0.44], 0.04, \"Facet\");\n    if (id === \"premium-rounded-inset-frame\") return insetTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-arch-panel\") return archPanelTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-multi-arc-block\") return multiArcTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-organic-island\") return insetTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-diagonal-ribbon\") return diagonalRibbonTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-corner-fan\") return fanTopology(template, count, widthCm, lengthCm, [0.06, 0.08], 0.0, \"Fan\");\n    if (id === \"premium-capsule-split\") return capsuleSplitTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-stepped-geometric\") return steppedTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-medallion-frame\") return insetTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-wave-layers\") return multiArcTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-vertical-flow\") return diagonalRibbonTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-sunburst\") return fanTopology(template, count, widthCm, lengthCm, [0.5, 0.5], 0, \"G\u00FCne\u015F\");\n    if (id === \"premium-orbit-fan\") return fanTopology(template, count, widthCm, lengthCm, [0.32, 0.62], 0.18, \"Orbit\");\n    if (id === \"premium-portal-frame\") return offsetInsetTopology(template, count, widthCm, lengthCm, 0.18, 0.18, 0.82, 0.82);\n    if (id === \"premium-tangram-facet\") return fanTopology(template, count, widthCm, lengthCm, [0.44, 0.56], 0.06, \"Tangram\");\n    if (id === \"premium-hex-cut\") return fanTopology(template, count, widthCm, lengthCm, [0.54, 0.46], 0.875, \"Hexa\");\n    if (id === \"premium-lens-panel\") return offsetInsetTopology(template, count, widthCm, lengthCm, 0.26, 0.20, 0.74, 0.80);\n    if (id === \"premium-cross-axis\") return crossAxisTopology(template, count, widthCm, lengthCm);\n    if (id === \"premium-trapezoid-rhythm\") return diagonalRibbonTopology(template, count, widthCm, lengthCm);\n    return null;\n  }\n\n  function runnerRegions(count, widthCm, lengthCm) {\n    count = clampDesignRegionCount(count);\n    if (count === 1) return gridLayoutRegions(1, widthCm, lengthCm, \"square\", \"straight\");\n    return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n  }\n\n  function designRegionsForTemplate(template, count, widthCm, lengthCm) {\n    var id = (template && template.id) || \"grid-2x2-arc\";\n    count = designRegionCountForTemplate(template, count);\n    if (isParametricPetalTemplate(template)) return parametricPetalRegions(template, count, widthCm, lengthCm);\n    if (isClaudeAmorfTemplate(template)) return claudeAmorfRegions(template, widthCm, lengthCm);\n    var premium = premiumTopologyForTemplate(template, count, widthCm, lengthCm);\n    if (premium) return premium.regions || premium.faces || [];\n    var organic = organicTemplateRegions(template, widthCm, lengthCm, count);\n    if (organic) return organic;\n    if (id === \"grid-2x2\") return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"vertical-2\") return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"horizontal-2\") return horizontalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"vertical-thirds\") return verticalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"horizontal-thirds\") return horizontalStripRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"side-panel-arc\") return sidePanelRegions(count, widthCm, lengthCm);\n    if (id === \"center-panel\") return centerPanelRegions(count, widthCm, lengthCm);\n    if (id === \"corner-blocks\") return cornerBlocksRegions(count, widthCm, lengthCm);\n    if (id === \"frame-inner\") return frameInnerRegions(count, widthCm, lengthCm);\n    if (id === \"diagonal-split\") return diagonalStripRegions(count, widthCm, lengthCm);\n    if (id === \"chevron-v\") return chevronRegions(count, widthCm, lengthCm);\n    if (id === \"mosaic-5\") return mosaicRegions(count, widthCm, lengthCm);\n    if (id === \"six-panel\") return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n    if (id === \"arch-end\") return archEndRegions(count, widthCm, lengthCm);\n    if (id === \"asymmetric-blocks\") return asymmetricRegions(count, widthCm, lengthCm);\n    if (id === \"wave-partition\") return wavePartitionRegions(count, widthCm, lengthCm);\n    if (id === \"rounded-runner\") return runnerRegions(count, widthCm, lengthCm);\n    if (id === \"custom-lite\") return gridLayoutRegions(count, widthCm, lengthCm, \"round\", \"straight\");\n    if (id === \"diagonal-triangle\" && clampDesignRegionCount(count) === 3) {\n      return [\n        makePolygonDesignRegion(\"left-triangle\", \"Sol \u00DC\u00E7gen\", [[0, 0], [0.55, 0], [0, 1]], widthCm, lengthCm),\n        makePolygonDesignRegion(\"center-triangle\", \"Orta \u00DC\u00E7gen\", [[0.55, 0], [1, 0], [0.45, 1], [0, 1]], widthCm, lengthCm),\n        makePolygonDesignRegion(\"right-triangle\", \"Sa\u011F \u00DC\u00E7gen\", [[1, 0], [1, 1], [0.45, 1]], widthCm, lengthCm)\n      ];\n    }\n    return gridLayoutRegions(count, widthCm, lengthCm, \"square\", \"straight\");\n  }\n\n  function setSelectedRegionCornerMode(regionId, target, mode) {\n    if (!regionId) return;\n    target = normalizeCornerTarget(target);\n    mode = normalizeCornerMode(mode);\n    var next = selectedRegionCornerModes(regionId);\n    if (target === \"all\") next = emptyCornerModes(mode);\n    else next[target] = mode;\n    state.designCornerModes[regionId] = next;\n  }\n\n  function setSelectedRegionEdgeMode(regionId, target, mode) {\n    if (!regionId) return;\n    target = normalizeEdgeTarget(target);\n    mode = normalizeEdgeMode(mode);\n    var next = selectedRegionEdgeModes(regionId);\n    if (target === \"all\") next = emptyEdgeModes(mode);\n    else next[target] = mode;\n    state.designEdgeModes[regionId] = next;\n  }\n\n  function highResDesignImage(image) {\n    image = String(image || \"\");\n    if (!image) return \"\";\n    var out = image.replace(/([?&])width=\\d+/i, \"$1width=1400\");\n    if (out === image && (image.indexOf(\"cdn.shopify.com\") >= 0 || image.indexOf(\"/files/\") >= 0)) {\n      out += (image.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"width=1400\";\n    }\n    return out;\n  }\n\n  function normalizeDesignGuideSource(source) {\n    if (!source) return source;\n    var image = highResDesignImage(source.image || source.patternImage || source.src || \"\");\n    return Object.assign({}, source, { image: image });\n  }\n\n  function compactDesignAssignment(source) {\n    if (!isDesignPatternSource(source)) return null;\n    var image = highResDesignImage(source.image || source.patternImage || source.src || \"\");\n    return {\n      type: source.type || \"pattern\",\n      id: source.id || source.label || \"\",\n      label: source.label || source.id || \"\",\n      image: image,\n      color: source.color || \"\"\n    };\n  }\n\n  function productConfigToDesignSource(productConfig) {\n    var normalized = normalizeProductConfig(productConfig || {});\n    var qualityCode = normalizeQuality(normalized.qualityCode || normalized.quality || \"\");\n    var groups = groupedProducts();\n    var qualityLabel = (groups[qualityCode] && groups[qualityCode].meta && groups[qualityCode].meta.label) || normalized.qualityLabel || qualityCode || \"Desen\";\n    var patternCode = normalized.patternCode || normalized.key || normalized.productHandle || \"\";\n    var image = highResDesignImage(normalized.patternImage || (normalized.productImages && (normalized.productImages[1] || normalized.productImages[0])) || \"\");\n    return {\n      type: \"pattern\",\n      id: productKey(qualityCode, patternCode),\n      label: qualityLabel + \" \" + (normalized.patternCode || patternCode || \"\"),\n      image: image,\n      qualityCode: qualityCode,\n      patternCode: normalized.patternCode || patternCode || \"\"\n    };\n  }\n\n  function isDesignPatternSource(source) {\n    if (!source) return false;\n    var type = String(source.type || source.sourceType || \"\").toLowerCase();\n    if (type && type !== \"pattern\" && type !== \"product-pattern\" && type !== \"design-upload\") return false;\n    if (type === \"kartela\" || type === \"edge-fabric\" || type === \"fabric\") return false;\n    return !!(source.image || source.patternImage || source.src);\n  }\n\n  function isBaseDesignAssignment(config, source) {\n    if (!source) return false;\n    config = config || {};\n    var activeKey = String(productKey(config.qualityCode, config.patternCode) || \"\").toLowerCase();\n    var sourceId = String(source.id || source.productKey || \"\").toLowerCase();\n    if (activeKey && sourceId && sourceId === activeKey) return true;\n    var activePattern = String(config.patternCode || \"\").trim().toLowerCase();\n    var sourcePattern = String(source.patternCode || \"\").trim().toLowerCase();\n    var activeQuality = normalizeQuality(config.qualityCode || config.quality || \"\");\n    var sourceQuality = normalizeQuality(source.qualityCode || source.quality || \"\");\n    if (activePattern && sourcePattern && activePattern === sourcePattern && (!activeQuality || !sourceQuality || activeQuality === sourceQuality)) return true;\n    var productImages = Array.isArray(config.productImages) ? config.productImages : [];\n    var activeImage = highResDesignImage(config.patternImage || productImages[1] || productImages[0] || \"\").split(\"?\")[0];\n    var sourceImage = highResDesignImage(source.image || source.patternImage || source.src || \"\").split(\"?\")[0];\n    return !!(activeImage && sourceImage && activeImage === sourceImage);\n  }\n\n  function cordobaPatternSources(config) {\n    var groups = groupedProducts();\n    var qualityCode = normalizeQuality(config && config.qualityCode);\n    var products = groups[qualityCode] && groups[qualityCode].products ? groups[qualityCode].products : [];\n    if (!products.length && designEnabledFor(config)) products = [config];\n    return products.map(function (item) {\n      return productConfigToDesignSource(item);\n    }).filter(function (item) { return !!item.image; });\n  }\n\n  function kartelaDesignSources(config) {\n    var families = (config && config.kartelas) || {};\n    var out = [];\n    [\"canvas\", \"alcantara\"].forEach(function (familyKey) {\n      (families[familyKey] || []).forEach(function (item) {\n        out.push({\n          type: \"kartela\",\n          id: \"kartela-\" + (item.id || item.label || \"\"),\n          label: (item.familyLabel || (familyKey === \"canvas\" ? \"Canvas\" : \"Alacantra\")) + \" \" + (item.label || item.id || \"\"),\n          image: firstImageCandidate(item) || fallbackSwatch(item),\n          color: fallbackColor(item)\n        });\n      });\n    });\n    return out;\n  }\n\n  function designSources(config) {\n    return cordobaPatternSources(config)\n      .concat(state.designUploads || [])\n      .filter(isDesignPatternSource);\n  }\n\n  function defaultDesignAssignments(config, template) {\n    return {};\n  }\n\n  function currentDesignPayload(config) {\n    var template = designTemplateById(state.designTemplateId);\n    var active = !!state.designMode && designEnabledFor(config);\n    var count = designRegionCountForTemplate(template, state.designRegionCount);\n    var premiumTopology = premiumTopologyForTemplate(template, count, state.width, state.length);\n    var regions = premiumTopology ? (premiumTopology.regions || premiumTopology.faces || []) : designRegionsForTemplate(template, count, state.width, state.length);\n    var assignments = Object.assign({}, defaultDesignAssignments(config || {}, template), state.designAssignments || {});\n    var shape = active ? shapePayloadForDesignTemplate(template) : currentShapePayload();\n    var specialAmorf = isSpecialAmorfDesignTemplate(template);\n    var cleanMultiRegionSurface = specialAmorf || count > 1;\n    return {\n      active: active,\n      templateId: template.id,\n      label: template.label,\n      topology: premiumTopology ? \"production-template-v1\" : \"partition-no-hole-v1\",\n      premium: !!premiumTopology,\n      premiumVariant: premiumTopology ? premiumTopology.variant : null,\n      designTopology: premiumTopology,\n      regionCount: count,\n      outerShape: template.outerShape || \"rect\",\n      stitchesVisible: !state.designGuideLinesHidden,\n      cutoutOutsideRegions: specialAmorf,\n      clipCutoutToShape: specialAmorf,\n      preserveRegionGaps: false,\n      cleanRegionTexture: specialAmorf,\n      cleanRegionBaseLuma: cleanMultiRegionSurface,\n      pieceEdgeMode: specialAmorf ? state.edgeType : \"\",\n      pieceEdgeScope: specialAmorf ? \"regions\" : \"\",\n      regions: regions,\n      assignments: assignments,\n      shape: shape,\n      widthCm: state.width,\n      lengthCm: state.length\n    };\n  }\n\n  function designAssignmentsLabel(payload) {\n    if (!payload || !payload.assignments) return \"\";\n    return (payload.regions || []).map(function (region) {\n      var source = payload.assignments[region.id];\n      if (!source) return \"\";\n      return region.label + \": \" + (source.label || source.id || \"\");\n    }).filter(Boolean).join(\" / \");\n  }\n\n  function designLayoutLabel(payload) {\n    return (payload && payload.regions || []).map(function (region) {\n      var corners = region.cornerModes || {};\n      return region.label + \": \" + region.xCm + \",\" + region.yCm + \" / \" + region.widthCm + \"x\" + region.heightCm\n        + \" cm / k\u00F6\u015Fe \" + Object.keys(corners).map(function (key) { return key + \"=\" + cornerModeLabel(corners[key]); }).join(\",\");\n    }).join(\" / \");\n  }\n\n  function shapeAreaM2() {\n    var base = Math.max(0, state.width * state.length / 10000);\n    var type = normalizeShapeType(state.shapeType);\n    if (type === \"dikdortgen\") return base;\n    if (type === \"oval\") return base * Math.PI / 4;\n    if (type === \"yuvarlak\") {\n      var d = Math.min(state.width, state.length);\n      return Math.PI * d * d / 40000;\n    }\n    return base * 0.72;\n  }\n\n  function shapePerimeterM() {\n    var w = Math.max(1, state.width) / 100;\n    var h = Math.max(1, state.length) / 100;\n    var type = normalizeShapeType(state.shapeType);\n    if (type === \"yuvarlak\") return Math.PI * Math.min(w, h);\n    if (type === \"oval\") {\n      var a = w / 2;\n      var b = h / 2;\n      return Math.PI * (3 * (a + b) - Math.sqrt((3 * a + b) * (a + 3 * b)));\n    }\n    if (type === \"amorf\") return (w + h) * 1.55;\n    return (w + h) * 2;\n  }\n\n  window.MassimoOzelOlcuShape = {\n    getPresetList: function () {\n      return SHAPE_PRESETS.map(function (item) {\n        return {\n          key: item.key,\n          label: item.label,\n          source: item.source || \"\",\n          category: shapePresetCategoryFor(item).id,\n          rank: item.rank || 0,\n          radii: presetRadii(item),\n          points: presetPoints(item)\n        };\n      });\n    },\n    getShape: function () {\n      return currentShapePayload();\n    }\n  };\n\n  function zoomProductTextureSource(root) {\n    // 2026-05-21: galeri-2 doku detay\u0131 yeterli \u00E7\u00F6z\u00FCn\u00FCrl\u00FCkte (1000x1000+); 4K tile (3x4 grid\n    // tekrar) yerine do\u011Frudan productImages[1] g\u00F6sterilir. Eski tile mant\u0131\u011F\u0131 `qualityTextureTileDataUrl`\n    // h\u00E2l\u00E2 duruyor \u2014 pattern image bulunamad\u0131\u011F\u0131 edge case'lerde fallback olarak \u00E7a\u011Fr\u0131l\u0131r.\n    var config = (root && root.__massimoConfig) || {};\n    var width = highDetailMobileCap(config, ZOOM_IMAGE_WIDTH, ZOOM_IMAGE_WIDTH, MOBILE_HIGH_DETAIL_IMAGE_WIDTH);\n    var src = zoomSizedImage(pickPatternImage(config), width);\n    if (src) return src;\n    return qualityTextureTileDataUrl(root) || \"\";\n  }\n\n  function zoomTextureSource(root) {\n    return zoomProductTextureSource(root);\n  }\n\n  function zoomSizedSource(src) {\n    return zoomSizedImage(src || \"\", ZOOM_IMAGE_WIDTH);\n  }\n\n  function designRegionZoomSourceInfo(root, config, regionId) {\n    config = (root && root.__massimoConfig) || config || {};\n    if (!regionId || !state.designMode || !designEnabledFor(config)) return null;\n    var design = currentDesignPayload(config);\n    var assignment = design.assignments && design.assignments[regionId];\n    if (!assignment || !assignment.image) return null;\n    var region = regionById(config, regionId);\n    var info = {\n      sourceType: \"design-region\",\n      regionId: regionId,\n      sourceLabel: (region && region.label ? region.label + \" / \" : \"\") + (assignment.label || assignment.id || \"\"),\n      src: zoomSizedSource(assignment.image)\n    };\n    var zoom = root && root.__massimoZoom;\n    if (zoom) zoom.designRegionSourceInfo = info;\n    return info;\n  }\n\n  function zoomActiveDesignRegionSource(root) {\n    var config = (root && root.__massimoConfig) || {};\n    if (!state.designMode || !designEnabledFor(config)) return null;\n    var zoom = root && root.__massimoZoom;\n    if (zoom && zoom.designRegionSourceInfo && zoom.designRegionSourceInfo.sourceType === \"design-region\" && zoom.designRegionSourceInfo.src) return zoom.designRegionSourceInfo;\n    if (zoom && zoom.lensSourceInfo && zoom.lensSourceInfo.sourceType === \"design-region\" && zoom.lensSourceInfo.src) return zoom.lensSourceInfo;\n    return designRegionZoomSourceInfo(root, config, state.designRegionId);\n  }\n\n  function zoomTextureSourceInfo(root) {\n    return zoomActiveDesignRegionSource(root) || zoomDefaultSource(root);\n  }\n\n  function zoomOriginalSource(root) {\n    var config = (root && root.__massimoConfig) || {};\n    var main = root && $(root, \"[data-massimo-main-image]\");\n    var src = main && (main.currentSrc || main.src) || \"\";\n    if (!src && Array.isArray(config.productImages) && config.productImages.length) src = config.productImages[0];\n    if (!src) src = config.sourceImage || config.image || \"\";\n    return zoomSizedImage(src, highDetailMobileCap(config, ZOOM_IMAGE_WIDTH, ZOOM_IMAGE_WIDTH, MOBILE_HIGH_DETAIL_IMAGE_WIDTH));\n  }\n\n  function zoomCanvasTo4kDataUrl(canvas, maxSide) {\n    if (!canvas || !canvas.width || !canvas.height) return \"\";\n    var sourceW = Math.max(1, canvas.width);\n    var sourceH = Math.max(1, canvas.height);\n    var renderMaxSide = Math.max(1, finiteNumber(maxSide, ZOOM_RENDER_MAX_SIDE));\n    var scale = Math.min(renderMaxSide / sourceW, renderMaxSide / sourceH);\n    if (!Number.isFinite(scale) || scale <= 1.01) return canvas.toDataURL(\"image/png\");\n    var out = document.createElement(\"canvas\");\n    out.width = Math.max(1, Math.round(sourceW * scale));\n    out.height = Math.max(1, Math.round(sourceH * scale));\n    var octx = out.getContext(\"2d\");\n    octx.imageSmoothingEnabled = true;\n    octx.imageSmoothingQuality = \"high\";\n    octx.drawImage(canvas, 0, 0, out.width, out.height);\n    return out.toDataURL(\"image/png\");\n  }\n\n  function zoomRenderedDesignRegionSource(root, sourceInfo) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!canvas || !canvas.width || !canvas.height) return \"\";\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__ || {};\n    var regions = last.design && last.design.regionPixels || [];\n    var regionId = sourceInfo && sourceInfo.regionId || \"\";\n    var region = regions.find(function (item) { return item && item.id === regionId; }) || null;\n    if (!region) return zoomCanvasTo4kDataUrl(canvas, mobileZoomRenderMaxSide());\n    var pad = 0;\n    var sx = Math.max(0, Math.round(finiteNumber(region.x, 0) - pad));\n    var sy = Math.max(0, Math.round(finiteNumber(region.y, 0) - pad));\n    var right = Math.min(canvas.width, Math.round(finiteNumber(region.x, 0) + finiteNumber(region.w, 1) + pad));\n    var bottom = Math.min(canvas.height, Math.round(finiteNumber(region.y, 0) + finiteNumber(region.h, 1) + pad));\n    var sw = Math.max(1, right - sx);\n    var sh = Math.max(1, bottom - sy);\n    var renderMaxSide = Math.max(1, finiteNumber(mobileZoomRenderMaxSide(), ZOOM_RENDER_MAX_SIDE));\n    var scale = Math.min(2, Math.max(1, Math.min(renderMaxSide / sw, renderMaxSide / sh)));\n    var out = document.createElement(\"canvas\");\n    out.width = Math.max(1, Math.round(sw * scale));\n    out.height = Math.max(1, Math.round(sh * scale));\n    var octx = out.getContext(\"2d\");\n    if (!octx) return \"\";\n    octx.imageSmoothingEnabled = true;\n    octx.imageSmoothingQuality = \"high\";\n    try {\n      octx.drawImage(canvas, sx, sy, sw, sh, 0, 0, out.width, out.height);\n      return out.toDataURL(\"image/png\");\n    } catch (err) {\n      return \"\";\n    }\n  }\n\n  function zoomCurrentFabricSource(root) {\n    var config = (root && root.__massimoConfig) || {};\n    if (!edgeUsesFabric(state.edgeType, config)) return null;\n    var fabric = null;\n    var label = \"\";\n    if (edgeUsesDoubleFabric(state.edgeType, config)) {\n      fabric = state.doubleFabrics[state.doubleTarget] || state.doubleFabrics.outer || state.doubleFabrics.inner || null;\n      label = (state.doubleTarget === \"inner\" ? \"\u0130\u00E7 Bord\u00FCr \" : \"D\u0131\u015F Bord\u00FCr \") + fabricName(fabric);\n    } else {\n      fabric = state.fabric;\n      label = fabricName(fabric);\n    }\n    if (!fabric || !fabric.image) return null;\n    return {\n      sourceType: \"edge-fabric\",\n      regionId: \"\",\n      sourceLabel: label || fabricName(fabric),\n      src: zoomSizedSource(fabric.image)\n    };\n  }\n\n  function zoomCanvasPoint(root, event) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!canvas || !event) return null;\n    var rect = canvas.getBoundingClientRect();\n    if (!rect.width || !rect.height || !canvas.width || !canvas.height) return null;\n    return {\n      x: (event.clientX - rect.left) * canvas.width / rect.width,\n      y: (event.clientY - rect.top) * canvas.height / rect.height\n    };\n  }\n\n  function zoomVisibleDisplayTarget(root) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    var main = root && $(root, \"[data-massimo-main-image]\");\n    var canvasRect = canvas && canvas.getBoundingClientRect ? canvas.getBoundingClientRect() : null;\n    if (canvasRect && canvasRect.width && canvasRect.height) return canvas;\n    var mainRect = main && main.getBoundingClientRect ? main.getBoundingClientRect() : null;\n    if (mainRect && mainRect.width && mainRect.height) return main;\n    return canvas || main || null;\n  }\n\n  function zoomUseCanvasLens(root) {\n    return false;\n  }\n\n  function zoomCanvasLensInfo(root, event) {\n    var regionInfo = event ? zoomRegionSource(root, event) : zoomActiveDesignRegionSource(root);\n    if (regionInfo) return Object.assign({}, regionInfo, { src: \"canvas\" });\n    return {\n      sourceType: \"render\",\n      regionId: \"\",\n      sourceLabel: \"Tasarim onizleme\",\n      src: \"canvas\"\n    };\n  }\n\n  function drawCanvasLens(root, event, displayRect) {\n    var zoom = root && root.__massimoZoom;\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!zoom || !canvas || !zoom.lensCanvas || typeof canvas.getContext !== \"function\") return false;\n    var rect = displayRect || canvas.getBoundingClientRect();\n    if (!rect || !rect.width || !rect.height || !canvas.width || !canvas.height) return false;\n    var level = ZOOM_LEVELS[zoom.levelIndex] || ZOOM_LEVELS[0];\n    var scale = Math.max(1, finiteNumber(level && level.scale, 1));\n    var dpr = Math.max(1, Math.min(2, finiteNumber(window.devicePixelRatio, 1)));\n    var outSize = Math.max(64, Math.round(LENS_SIZE * dpr));\n    if (zoom.lensCanvas.width !== outSize || zoom.lensCanvas.height !== outSize) {\n      zoom.lensCanvas.width = outSize;\n      zoom.lensCanvas.height = outSize;\n    }\n    var ctx = zoom.lensCtx || zoom.lensCanvas.getContext(\"2d\");\n    if (!ctx) return false;\n    zoom.lensCtx = ctx;\n    ctx.clearRect(0, 0, outSize, outSize);\n    ctx.fillStyle = \"#fff\";\n    ctx.fillRect(0, 0, outSize, outSize);\n    ctx.imageSmoothingEnabled = true;\n    ctx.imageSmoothingQuality = \"high\";\n    var cx = (event.clientX - rect.left) * canvas.width / rect.width;\n    var cy = (event.clientY - rect.top) * canvas.height / rect.height;\n    var sourceW = Math.max(1, LENS_SIZE / scale * canvas.width / rect.width);\n    var sourceH = Math.max(1, LENS_SIZE / scale * canvas.height / rect.height);\n    var sx = cx - sourceW / 2;\n    var sy = cy - sourceH / 2;\n    var sourceX = Math.max(0, sx);\n    var sourceY = Math.max(0, sy);\n    var sourceRight = Math.min(canvas.width, sx + sourceW);\n    var sourceBottom = Math.min(canvas.height, sy + sourceH);\n    var clippedW = Math.max(1, sourceRight - sourceX);\n    var clippedH = Math.max(1, sourceBottom - sourceY);\n    var dx = (sourceX - sx) / sourceW * outSize;\n    var dy = (sourceY - sy) / sourceH * outSize;\n    var dw = clippedW / sourceW * outSize;\n    var dh = clippedH / sourceH * outSize;\n    try {\n      ctx.drawImage(canvas, sourceX, sourceY, clippedW, clippedH, dx, dy, dw, dh);\n    } catch (err) {\n      return false;\n    }\n    return true;\n  }\n\n  function zoomPointerOnEdgeBand(root, event) {\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__;\n    var point = zoomCanvasPoint(root, event);\n    var bounds = last && (last.shape && finiteNumber(last.shape.w, 0) > 0 ? last.shape : last.bounds);\n    if (!point || !bounds) return false;\n    var depth = finiteNumber(last.edgeMetrics && last.edgeMetrics.visualDepth, 0);\n    if (depth <= 0) return false;\n    var x = finiteNumber(bounds.x, 0);\n    var y = finiteNumber(bounds.y, 0);\n    var w = finiteNumber(bounds.w, 0);\n    var h = finiteNumber(bounds.h, 0);\n    if (w <= 0 || h <= 0) return false;\n    var px = point.x;\n    var py = point.y;\n    var inOuter = px >= x && px <= x + w && py >= y && py <= y + h;\n    if (!inOuter) return false;\n    var safety = 3;\n    var innerDepth = Math.min(Math.max(1, depth + safety), Math.max(1, Math.min(w, h) / 2));\n    var inInner = px >= x + innerDepth && px <= x + w - innerDepth\n      && py >= y + innerDepth && py <= y + h - innerDepth;\n    return !inInner;\n  }\n\n  function zoomPointerOnDesignBody(root, event) {\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__;\n    var point = zoomCanvasPoint(root, event);\n    var body = designHitBody(last);\n    if (!point || !body) return false;\n    return point.x >= body.x && point.x <= body.x + body.w\n      && point.y >= body.y && point.y <= body.y + body.h;\n  }\n\n  function zoomEdgeFabricSource(root, event) {\n    if (!zoomPointerOnEdgeBand(root, event)) return null;\n    return zoomCurrentFabricSource(root);\n  }\n\n  function regionById(config, regionId) {\n    var design = currentDesignPayload(config || {});\n    return (design.regions || []).find(function (region) { return region.id === regionId; }) || null;\n  }\n\n  function zoomRegionSource(root, event) {\n    var config = (root && root.__massimoConfig) || {};\n    if (!state.designMode || !designEnabledFor(config)) return null;\n    var regionId = regionIdFromCanvasEvent(root, event);\n    if (!regionId) return null;\n    var design = currentDesignPayload(config);\n    var assignment = design.assignments && design.assignments[regionId];\n    if (!assignment || !assignment.image) return null;\n    var region = regionById(config, regionId);\n    return {\n      sourceType: \"design-region\",\n      regionId: regionId,\n      sourceLabel: (region && region.label ? region.label + \" / \" : \"\") + (assignment.label || assignment.id || \"\"),\n      src: zoomSizedSource(assignment.image)\n    };\n  }\n\n  function zoomDefaultSource(root) {\n    return {\n      sourceType: \"product-pattern\",\n      regionId: \"\",\n      sourceLabel: root && root.__massimoConfig && root.__massimoConfig.patternCode ? \"Desen \" + root.__massimoConfig.patternCode : \"Desen\",\n      src: zoomProductTextureSource(root)\n    };\n  }\n\n  function zoomLensSource(root, event) {\n    var config = (root && root.__massimoConfig) || {};\n    if (state.designMode && designEnabledFor(config)) {\n      var regionSource = zoomRegionSource(root, event);\n      if (regionSource) return regionSource;\n      if (zoomPointerOnDesignBody(root, event)) return null;\n    }\n    return zoomEdgeFabricSource(root, event) || zoomDefaultSource(root);\n  }\n\n  function zoomPatternLabel(root, sourceInfo) {\n    var config = (root && root.__massimoConfig) || {};\n    var id = identityFromText(config.productHandle || config.shopifyHandle || config.handle, config.title);\n    var pattern = String(config.patternCode || (id && id.pattern) || \"\").trim();\n    if (pattern) return \"Desen \" + pattern;\n    return sourceInfo && sourceInfo.sourceLabel || \"Desen\";\n  }\n\n  function zoomActiveEdgeLabel(root) {\n    var config = (root && root.__massimoConfig) || {};\n    var edge = getEdgeTypes(config)[state.edgeType] || {};\n    return edge.label || state.edgeType || \"\";\n  }\n\n  function zoomActiveFabricLabel(root) {\n    var config = (root && root.__massimoConfig) || {};\n    if (!edgeUsesFabric(state.edgeType, config)) return \"\";\n    if (edgeUsesDoubleFabric(state.edgeType, config)) return doubleFabricLabel();\n    return fabricName(state.fabric);\n  }\n\n  function zoomSourceMeta(root, sourceInfo) {\n    sourceInfo = sourceInfo || {};\n    var sourceType = sourceInfo.sourceType || \"product-pattern\";\n    var edgeLabel = zoomActiveEdgeLabel(root);\n    var fabricLabel = zoomActiveFabricLabel(root);\n    var detail = String(sourceInfo.sourceLabel || \"\").trim();\n    var meta = {\n      kindLabel: zoomPatternLabel(root, sourceInfo),\n      detailLabel: \"Doku g\u00F6rseli\",\n      edgeLabel: edgeLabel,\n      fabricLabel: fabricLabel,\n      sourceType: sourceType,\n      regionId: sourceInfo.regionId || \"\"\n    };\n\n    if (sourceType === \"edge-fabric\") {\n      meta.kindLabel = (edgeLabel || \"Bord\u00FCr\") + \" kuma\u015F\u0131\";\n      meta.detailLabel = detail || fabricLabel || \"Kartela se\u00E7imi\";\n    } else if (sourceType === \"design-region\") {\n      meta.kindLabel = \"Tasar\u0131m b\u00F6lgesi\";\n      meta.detailLabel = detail || \"B\u00F6lge deseni\";\n    } else if (sourceType === \"render\") {\n      meta.kindLabel = \"Giydirme\";\n      meta.detailLabel = edgeLabel ? edgeLabel + (fabricLabel ? \" / \" + fabricLabel : \"\") : \"\u00D6nizleme\";\n    }\n\n    return meta;\n  }\n\n  function setZoomInfoText(container, meta, levelLabel) {\n    if (!container || !meta) return;\n    var kind = container.querySelector(\"[data-massimo-zoom-kind]\");\n    var detail = container.querySelector(\"[data-massimo-zoom-detail]\");\n    var level = container.querySelector(\"[data-massimo-zoom-level-text]\");\n    if (kind) kind.textContent = meta.kindLabel || \"Detay\";\n    if (detail) detail.textContent = meta.detailLabel || \"\";\n    if (level) level.textContent = levelLabel || \"\";\n  }\n\n  function updateZoomInfo(root, meta) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || !meta) return;\n    zoom.lastMeta = meta;\n    var level = ZOOM_LEVELS[zoom.levelIndex] || ZOOM_LEVELS[0];\n    setZoomInfoText(zoom.lensLabel, meta, level && level.label);\n    setZoomInfoText(zoom.modalInfo, meta, level && level.label);\n  }\n\n  function positionZoomLabel(root, event, previewRect) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || !zoom.lensLabel || zoom.lensLabel.hidden || !previewRect || !previewRect.width || !previewRect.height) return;\n    var pointerX = event.clientX - previewRect.left;\n    var pointerY = event.clientY - previewRect.top;\n    var gap = 14;\n    var radius = LENS_SIZE / 2;\n    var safe = 8;\n    var labelW = zoom.lensLabel.offsetWidth || 206;\n    var labelH = zoom.lensLabel.offsetHeight || 58;\n    var left = pointerX + radius + gap;\n    var top = pointerY - radius + 4;\n\n    if (left + labelW > previewRect.width - safe) left = pointerX - radius - gap - labelW;\n    if (top < safe) top = pointerY + radius - labelH - 4;\n    left = Math.max(safe, Math.min(left, previewRect.width - labelW - safe));\n    top = Math.max(safe, Math.min(top, previewRect.height - labelH - safe));\n\n    zoom.lensLabel.classList.toggle(\"is-left\", left < pointerX);\n    zoom.lensLabel.style.transform = \"translate3d(\" + Math.round(left) + \"px,\" + Math.round(top) + \"px,0)\";\n  }\n\n  function writeZoomDebug(root, payload, meta) {\n    payload = payload || {};\n    meta = meta || {};\n    var previous = window.__MASSIMO_ZOOM_LAST__ || {};\n    window.__MASSIMO_ZOOM_LAST__ = Object.assign({}, payload, {\n      kindLabel: meta.kindLabel || \"\",\n      detailLabel: meta.detailLabel || \"\",\n      edgeLabel: meta.edgeLabel || \"\",\n      fabricLabel: meta.fabricLabel || \"\",\n      sourceType: meta.sourceType || payload.sourceType || \"\",\n      regionId: meta.regionId || payload.regionId || \"\",\n      sourceChanges: previous.sourceChanges || 0,\n      at: Date.now()\n    });\n  }\n\n  function zoomRenderAvailable(root) {\n    return !!(root && root.__massimoPreview);\n  }\n\n  function zoomUseCurrentCanvasSnapshot(root, config) {\n    var design = currentDesignPayload(config || {});\n    return !!(state.designMode || (design && design.active));\n  }\n\n  function zoomRenderSource(root) {\n    var config = (root && root.__massimoConfig) || {};\n    var preview = root && root.__massimoPreview;\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!zoomRenderAvailable(root) || !canvas || !canvas.width || !canvas.height) {\n      return Promise.resolve(\"\");\n    }\n    enforceSpecialAmorfEdge(config);\n    if (zoomUseCurrentCanvasSnapshot(root, config)) {\n      try {\n        window.__MASSIMO_ZOOM_RENDER_SOURCE__ = {\n          mode: \"current-canvas-snapshot\",\n          reason: state.designMode ? \"design-mode\" : \"active-design-template\",\n          canvasWidth: canvas.width || 0,\n          canvasHeight: canvas.height || 0\n        };\n        return Promise.resolve(zoomCanvasTo4kDataUrl(canvas, mobileZoomRenderMaxSide()));\n      } catch (err) {\n        reportError(root, err);\n        return Promise.resolve(\"\");\n      }\n    }\n    preview.shape = currentRenderShapePayload(config);\n    preview.design = currentDesignPayload(config);\n    if (isHighDetailTextureConfig(config) && preview && typeof preview.renderArSurface === \"function\") {\n      var sourceWidth = highDetailMobileCap(config, previewParamNumber(config, \"sourceImageWidth\", ZOOM_IMAGE_WIDTH), ZOOM_IMAGE_WIDTH, MOBILE_HIGH_DETAIL_IMAGE_WIDTH);\n      var textureWidth = previewParamNumber(config, \"zoomTextureImageWidth\", previewParamNumber(config, \"textureImageWidth\", ZOOM_IMAGE_WIDTH));\n      // v159: zoom modal canvas 4096x5800 \u2014 8K texture source ile birlikte 4x g\u00F6r\u00FCnt\u00FClemede\n      // maksimum kalite. Sorun \u00E7\u0131karsa 3200x4400'e (v158) geri al.\n      // ROLLBACK: Math.max(3200, ...) ve Math.max(4400, ...) olarak de\u011Fi\u015Ftir.\n      var mobileZoomMaxW = previewParamNumber(config, \"mobileZoomMaxCanvasWidth\", MOBILE_HIGH_DETAIL_ZOOM_MAX_CANVAS_WIDTH);\n      var mobileZoomMaxH = previewParamNumber(config, \"mobileZoomMaxCanvasHeight\", MOBILE_HIGH_DETAIL_ZOOM_MAX_CANVAS_HEIGHT);\n      var maxCanvasWidth = highDetailMobileCap(config, previewParamNumber(config, \"zoomMaxCanvasWidth\", Math.max(4096, previewParamNumber(config, \"maxCanvasWidth\", 2048))), 4096, mobileZoomMaxW);\n      var maxCanvasHeight = highDetailMobileCap(config, previewParamNumber(config, \"zoomMaxCanvasHeight\", Math.max(5800, previewParamNumber(config, \"maxCanvasHeight\", 2896))), 5800, mobileZoomMaxH);\n      var zoomOutputMaxSide = mobileZoomRenderMaxSide();\n      return preview.renderArSurface({\n        sourceImage: highResolutionImage(pickPreviewBaseImage(config) || preview.sourceImage, sourceWidth),\n        patternImage: highResolutionImage(pickRenderPatternImage(config) || preview.patternImage, textureWidth),\n        textureRepeatX: previewParamNumber(config, \"zoomTextureRepeatX\", previewParamNumber(config, \"textureRepeatX\", 16)),\n        textureRepeatY: previewParamNumber(config, \"zoomTextureRepeatY\", previewParamNumber(config, \"textureRepeatY\", 23)),\n        textureMicroDetailStrength: previewParamNumber(config, \"zoomTextureMicroDetailStrength\", previewParamNumber(config, \"textureMicroDetailStrength\", 0)),\n        textureMicroDetailLowPassRatio: previewParamNumber(config, \"textureMicroDetailLowPassRatio\", 0.055),\n        maxCanvasWidth: maxCanvasWidth,\n        maxCanvasHeight: maxCanvasHeight\n      }).then(function (render) {\n        var renderCanvas = render && render.canvas;\n        if (!renderCanvas || !renderCanvas.width || !renderCanvas.height) return zoomCanvasTo4kDataUrl(canvas, zoomOutputMaxSide);\n        window.__MASSIMO_ZOOM_RENDER_SOURCE__ = {\n          mode: \"quality-high-resolution-render\",\n          quality: normalizeKey(config.qualityCode || config.qualityLabel || \"\"),\n          canvasWidth: renderCanvas.width,\n          canvasHeight: renderCanvas.height,\n          renderTargetSide: render.renderTargetSide || Math.max(renderCanvas.width, renderCanvas.height),\n          sourceMode: render.sourceMode || \"\",\n          mobileCapped: isMobilePreviewViewport(),\n          textureWidth: textureWidth\n        };\n        return zoomCanvasTo4kDataUrl(renderCanvas, zoomOutputMaxSide);\n      }).catch(function (err) {\n        reportError(root, err);\n        return zoomCanvasTo4kDataUrl(canvas, zoomOutputMaxSide);\n      });\n    }\n    return renderPreview(root, preview, { showPreview: false, config: config })\n      .then(function () {\n        try {\n          return zoomCanvasTo4kDataUrl(canvas, mobileZoomRenderMaxSide());\n        } catch (err) {\n          reportError(root, err);\n          return \"\";\n        }\n      })\n      .catch(function (err) {\n        reportError(root, err);\n        return \"\";\n      });\n  }\n\n  function setupZoom(root) {\n    if (!root || root.__massimoZoom || !document.body) return;\n    var previewBox = $(root, \".massimo-oo__preview\");\n    if (!previewBox) return;\n\n    var button = document.createElement(\"button\");\n    button.type = \"button\";\n    button.className = \"massimo-oo__zoom-button\";\n    button.setAttribute(\"aria-label\", \"Tam ekran onizleme\");\n    button.setAttribute(\"aria-expanded\", \"false\");\n    button.dataset.massimoZoomOpen = \"1\";\n\n    var lens = document.createElement(\"div\");\n    lens.className = \"massimo-oo__zoom-lens\";\n    lens.hidden = true;\n    var lensCanvas = document.createElement(\"canvas\");\n    lensCanvas.className = \"massimo-oo__zoom-lens-canvas\";\n    lensCanvas.setAttribute(\"aria-hidden\", \"true\");\n    lens.appendChild(lensCanvas);\n\n    var lensLabel = document.createElement(\"div\");\n    lensLabel.className = \"massimo-oo__zoom-label\";\n    lensLabel.hidden = true;\n    lensLabel.setAttribute(\"aria-live\", \"polite\");\n    lensLabel.innerHTML = \"\"\n      + \"<span class='massimo-oo__zoom-label-kind' data-massimo-zoom-kind></span>\"\n      + \"<span class='massimo-oo__zoom-label-detail' data-massimo-zoom-detail></span>\";\n\n    var modal = document.createElement(\"div\");\n    modal.className = \"massimo-oo-zoom\";\n    modal.hidden = true;\n    modal.dataset.massimoZoomModal = \"1\";\n    modal.setAttribute(\"role\", \"dialog\");\n    modal.setAttribute(\"aria-modal\", \"true\");\n    modal.setAttribute(\"aria-label\", \"Massimo detayli gorunum\");\n    modal.innerHTML = \"\"\n      + \"<div class='massimo-oo-zoom__backdrop' data-massimo-zoom-close></div>\"\n      + \"<div class='massimo-oo-zoom__dialog'>\"\n      + \"  <div class='massimo-oo-zoom__header'>\"\n      + \"    <div class='massimo-oo-zoom__heading'>\"\n      + \"      <div class='massimo-oo-zoom__title'>Detayl\u0131 g\u00F6r\u00FCn\u00FCm</div>\"\n      + \"      <div class='massimo-oo-zoom__info' data-massimo-zoom-info aria-live='polite'>\"\n      + \"        <span class='massimo-oo-zoom__info-kind' data-massimo-zoom-kind>Doku</span>\"\n      + \"        <span class='massimo-oo-zoom__info-detail' data-massimo-zoom-detail>G\u00F6rsel detay</span>\"\n      + \"        <span class='massimo-oo-zoom__info-level' data-massimo-zoom-level-text>1x</span>\"\n      + \"      </div>\"\n      + \"    </div>\"\n      + \"    <button class='massimo-oo-zoom__close' type='button' data-massimo-zoom-close aria-label='Kapat'>Kapat</button>\"\n      + \"  </div>\"\n      + \"  <div class='massimo-oo-zoom__controls'>\"\n      + \"    <div class='massimo-oo-zoom__levels massimo-oo-zoom__steps' aria-label='Giydirme ve doku buyutme akisi'></div>\"\n      + \"  </div>\"\n      + \"  <div class='massimo-oo-zoom__stage' data-massimo-zoom-stage>\"\n      + \"    <img class='massimo-oo-zoom__image' data-massimo-zoom-image alt=''>\"\n      + \"    <div class='massimo-oo-zoom__message' data-massimo-zoom-message></div>\"\n      + \"  </div>\"\n      + \"</div>\";\n\n    previewBox.appendChild(button);\n    previewBox.appendChild(lens);\n    previewBox.appendChild(lensLabel);\n    document.body.appendChild(modal);\n\n    var zoom = {\n      button: button,\n      lens: lens,\n      lensLabel: lensLabel,\n      lensCanvas: lensCanvas,\n      lensCtx: lensCanvas.getContext(\"2d\"),\n      lensFrame: 0,\n      lensMoveFrame: 0,\n      lensPendingEvent: null,\n      lensX: 0,\n      lensY: 0,\n      lensSourceKey: \"\",\n      lensSourceInfo: null,\n      designRegionSourceInfo: null,\n      modal: modal,\n      modalInfo: modal.querySelector(\"[data-massimo-zoom-info]\"),\n      stage: modal.querySelector(\"[data-massimo-zoom-stage]\"),\n      image: modal.querySelector(\"[data-massimo-zoom-image]\"),\n      message: modal.querySelector(\"[data-massimo-zoom-message]\"),\n      mode: \"render\",\n      levelIndex: 0,\n      isOpen: false,\n      src: \"\",\n      dragging: false,\n      panX: 0,\n      panY: 0,\n      startX: 0,\n      startY: 0,\n      lastMeta: null\n    };\n    root.__massimoZoom = zoom;\n\n    var levels = modal.querySelector(\".massimo-oo-zoom__levels\");\n    [\n      { mode: \"render\", label: \"Giydirme\" },\n      { mode: \"texture\", label: \"Doku\" }\n    ].forEach(function (group) {\n      var groupNode = document.createElement(\"div\");\n      groupNode.className = \"massimo-oo-zoom__step-group\";\n      groupNode.dataset.massimoZoomStepGroup = group.mode;\n      var groupTitle = document.createElement(\"span\");\n      groupTitle.className = \"massimo-oo-zoom__step-title\";\n      groupTitle.textContent = group.label;\n      var groupButtons = document.createElement(\"div\");\n      groupButtons.className = \"massimo-oo-zoom__step-buttons\";\n      groupNode.appendChild(groupTitle);\n      groupNode.appendChild(groupButtons);\n      ZOOM_LEVELS.forEach(function (level, idx) {\n        var levelBtn = document.createElement(\"button\");\n        levelBtn.type = \"button\";\n        levelBtn.textContent = level.label;\n        levelBtn.setAttribute(\"aria-label\", group.label + \" \" + level.label);\n        levelBtn.dataset.massimoZoomStep = \"1\";\n        levelBtn.dataset.massimoZoomMode = group.mode;\n        levelBtn.dataset.massimoZoomLevel = String(idx);\n        levelBtn.setAttribute(\"aria-pressed\", group.mode === zoom.mode && idx === zoom.levelIndex ? \"true\" : \"false\");\n        levelBtn.addEventListener(\"click\", function () {\n          setZoomStep(root, group.mode, idx);\n        });\n        groupButtons.appendChild(levelBtn);\n      });\n      levels.appendChild(groupNode);\n    });\n\n    button.addEventListener(\"click\", function (event) {\n      event.stopPropagation();\n      openZoom(root, \"render\");\n    });\n\n    previewBox.addEventListener(\"click\", function (event) {\n      if (event.defaultPrevented) return;\n      if (event.target && event.target.closest && event.target.closest(\"button, a, input, select, textarea, [data-massimo-zoom-close]\")) return;\n      var clickRegionSource = zoomRegionSource(root, event);\n      if (clickRegionSource && root.__massimoZoom) root.__massimoZoom.designRegionSourceInfo = clickRegionSource;\n      openZoom(root, \"render\");\n    });\n\n    previewBox.addEventListener(\"pointerenter\", function (event) {\n      if (event.pointerType === \"touch\") return;\n      showLens(root, event);\n    });\n    previewBox.addEventListener(\"pointermove\", function (event) {\n      if (event.pointerType === \"touch\") return;\n      var zoom = root && root.__massimoZoom;\n      if (zoom && zoom.lens && zoom.lens.hidden) showLens(root, event);\n      else queueLensMove(root, event);\n    });\n    previewBox.addEventListener(\"pointerleave\", function () {\n      hideLens(root);\n    });\n\n    $all(modal, \"[data-massimo-zoom-close]\").forEach(function (closeBtn) {\n      closeBtn.addEventListener(\"click\", function () {\n        closeZoom(root);\n      });\n    });\n\n    zoom.stage.addEventListener(\"pointerdown\", function (event) {\n      if (!zoom.src) return;\n      event.preventDefault();\n      zoom.dragging = true;\n      zoom.startX = event.clientX - zoom.panX;\n      zoom.startY = event.clientY - zoom.panY;\n      zoom.stage.setPointerCapture(event.pointerId);\n      zoom.stage.classList.add(\"is-dragging\");\n    });\n    zoom.stage.addEventListener(\"pointermove\", function (event) {\n      if (!zoom.dragging) return;\n      zoom.panX = event.clientX - zoom.startX;\n      zoom.panY = event.clientY - zoom.startY;\n      applyZoomTransform(root);\n    });\n    zoom.stage.addEventListener(\"pointerup\", function (event) {\n      zoom.dragging = false;\n      zoom.stage.classList.remove(\"is-dragging\");\n      try { zoom.stage.releasePointerCapture(event.pointerId); } catch (e) {}\n    });\n    zoom.stage.addEventListener(\"pointercancel\", function () {\n      zoom.dragging = false;\n      zoom.stage.classList.remove(\"is-dragging\");\n    });\n\n    document.addEventListener(\"keydown\", function (event) {\n      if (event.key === \"Escape\" && zoom.isOpen) closeZoom(root);\n    });\n\n    setZoomLevel(root, zoom.levelIndex);\n    refreshZoom(root);\n  }\n\n  function showLens(root, event) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || zoom.isOpen) return;\n    if (zoomUseCanvasLens(root)) {\n      var canvasInfo = zoomCanvasLensInfo(root, event);\n      zoom.lensSourceKey = \"render|canvas\";\n      zoom.lensSourceInfo = canvasInfo;\n      if (canvasInfo && canvasInfo.sourceType === \"design-region\") zoom.designRegionSourceInfo = canvasInfo;\n      zoom.lensTextureSrc = \"\";\n      zoom.lens.style.backgroundImage = \"none\";\n      zoom.lens.style.backgroundRepeat = \"no-repeat\";\n      zoom.lens.style.backgroundSize = \"\";\n      if (zoom.lensCanvas) zoom.lensCanvas.style.display = \"block\";\n      updateZoomInfo(root, zoomSourceMeta(root, canvasInfo));\n      zoom.lens.hidden = false;\n      if (zoom.lensLabel) zoom.lensLabel.hidden = false;\n      moveLens(root, event);\n      return;\n    }\n    var info = zoomLensSource(root, event);\n    if (!info || !info.src) return;\n    applyLensSource(root, info);\n    updateZoomInfo(root, zoomSourceMeta(root, info));\n    zoom.lens.style.backgroundRepeat = \"no-repeat\";\n    zoom.lens.style.backgroundSize = (ZOOM_LEVELS[zoom.levelIndex].scale * 160) + \"%\";\n    if (zoom.lensCanvas) {\n      zoom.lensCanvas.style.display = \"none\";\n      if (zoom.lensCtx && zoom.lensCanvas.width && zoom.lensCanvas.height) {\n        zoom.lensCtx.clearRect(0, 0, zoom.lensCanvas.width, zoom.lensCanvas.height);\n      }\n    }\n    zoom.lens.hidden = false;\n    if (zoom.lensLabel) zoom.lensLabel.hidden = false;\n    moveLens(root, event);\n  }\n\n  function applyLensSource(root, info) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || !info || !info.src) return false;\n    var key = [info.sourceType || \"\", info.regionId || \"\", info.sourceLabel || \"\", info.src].join(\"|\");\n    if (zoom.lensSourceKey === key) return false;\n    zoom.lensSourceKey = key;\n    zoom.lensSourceInfo = info;\n    if (info.sourceType === \"design-region\") zoom.designRegionSourceInfo = info;\n    zoom.lensTextureSrc = info.src;\n    zoom.lens.style.backgroundImage = \"url(\\\"\" + cssUrl(info.src) + \"\\\")\";\n    if (window.__MASSIMO_ZOOM_LAST__) {\n      window.__MASSIMO_ZOOM_LAST__.sourceChanges = (window.__MASSIMO_ZOOM_LAST__.sourceChanges || 0) + 1;\n    }\n    return true;\n  }\n\n  function queueLensMove(root, event) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || zoom.lens.hidden) return;\n    zoom.lensPendingEvent = {\n      clientX: event.clientX,\n      clientY: event.clientY,\n      pointerType: event.pointerType\n    };\n    if (zoom.lensMoveFrame) return;\n    zoom.lensMoveFrame = window.requestAnimationFrame(function () {\n      var latest = zoom.lensPendingEvent;\n      zoom.lensPendingEvent = null;\n      zoom.lensMoveFrame = 0;\n      if (latest) moveLens(root, latest);\n    });\n  }\n\n  function moveLens(root, event) {\n    var zoom = root && root.__massimoZoom;\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    if (!zoom || zoom.lens.hidden || !previewBox) return;\n    var displayTarget = zoomVisibleDisplayTarget(root);\n    var displayRect = displayTarget ? displayTarget.getBoundingClientRect() : previewBox.getBoundingClientRect();\n    if (!displayRect.width || !displayRect.height) displayRect = previewBox.getBoundingClientRect();\n    if (!displayRect.width || !displayRect.height) {\n      hideLens(root);\n      return;\n    }\n    var x = event.clientX - displayRect.left;\n    var y = event.clientY - displayRect.top;\n    if (x < 0 || y < 0 || x > displayRect.width || y > displayRect.height) {\n      hideLens(root);\n      return;\n    }\n    if (zoomUseCanvasLens(root)) {\n      var canvasInfo = zoomCanvasLensInfo(root, event);\n      zoom.lensSourceInfo = canvasInfo;\n      if (canvasInfo && canvasInfo.sourceType === \"design-region\") zoom.designRegionSourceInfo = canvasInfo;\n      if (!drawCanvasLens(root, event, displayRect)) {\n        hideLens(root);\n        return;\n      }\n      zoom.lens.style.backgroundImage = \"none\";\n      zoom.lens.style.backgroundSize = \"\";\n      zoom.lensTextureSrc = \"canvas\";\n      if (zoom.lensCanvas) zoom.lensCanvas.style.display = \"block\";\n      var canvasMeta = zoomSourceMeta(root, canvasInfo);\n      updateZoomInfo(root, canvasMeta);\n      var canvasPreviewRect = previewBox.getBoundingClientRect();\n      zoom.lens.style.transform = \"translate3d(\" + (event.clientX - canvasPreviewRect.left) + \"px,\" + (event.clientY - canvasPreviewRect.top) + \"px,0) translate(-50%,-50%)\";\n      if (zoom.lensLabel) zoom.lensLabel.hidden = false;\n      positionZoomLabel(root, event, canvasPreviewRect);\n      writeZoomDebug(root, {\n        mode: \"lens-canvas-render\",\n        level: ZOOM_LEVELS[zoom.levelIndex].label,\n        pattern: root.__massimoConfig && root.__massimoConfig.patternCode,\n        sourceType: \"render\",\n        regionId: \"\",\n        sourceLabel: canvasInfo.sourceLabel,\n        sourcePreview: \"current-canvas\"\n      }, canvasMeta);\n      return;\n    }\n    var sourceInfo = zoomLensSource(root, event);\n    if (!sourceInfo || !sourceInfo.src) {\n      hideLens(root);\n      return;\n    }\n    applyLensSource(root, sourceInfo);\n    var meta = zoomSourceMeta(root, sourceInfo);\n    updateZoomInfo(root, meta);\n    var previewRect = previewBox.getBoundingClientRect();\n    zoom.lens.style.transform = \"translate3d(\" + (event.clientX - previewRect.left) + \"px,\" + (event.clientY - previewRect.top) + \"px,0) translate(-50%,-50%)\";\n    zoom.lens.style.backgroundPosition = (displayRect.width ? (x / displayRect.width * 100) : 50) + \"% \"\n      + (displayRect.height ? (y / displayRect.height * 100) : 50) + \"%\";\n    if (zoom.lensLabel) zoom.lensLabel.hidden = false;\n    positionZoomLabel(root, event, previewRect);\n    writeZoomDebug(root, {\n      mode: \"lens-texture\",\n      level: ZOOM_LEVELS[zoom.levelIndex].label,\n      pattern: root.__massimoConfig && root.__massimoConfig.patternCode,\n      sourceType: sourceInfo && sourceInfo.sourceType || \"\",\n      regionId: sourceInfo && sourceInfo.regionId || \"\",\n      sourceLabel: sourceInfo && sourceInfo.sourceLabel || \"\",\n      sourcePreview: zoom.lensTextureSrc || \"\"\n    }, meta);\n  }\n\n  function hideLens(root) {\n    var zoom = root && root.__massimoZoom;\n    if (zoom) {\n      zoom.lens.hidden = true;\n      zoom.lens.style.backgroundImage = \"\";\n      if (zoom.lensLabel) {\n        zoom.lensLabel.hidden = true;\n        zoom.lensLabel.classList.remove(\"is-left\");\n        zoom.lensLabel.style.transform = \"\";\n      }\n      zoom.lensSourceKey = \"\";\n      zoom.lensSourceInfo = null;\n      zoom.lensPendingEvent = null;\n      if (zoom.lensMoveFrame) {\n        window.cancelAnimationFrame(zoom.lensMoveFrame);\n        zoom.lensMoveFrame = 0;\n      }\n      if (zoom.lensFrame) {\n        window.cancelAnimationFrame(zoom.lensFrame);\n        zoom.lensFrame = 0;\n      }\n    }\n  }\n\n  function scheduleLensDraw(root) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || zoom.lensFrame) return;\n    zoom.lensFrame = window.requestAnimationFrame(function () {\n      zoom.lensFrame = 0;\n      drawLens(root);\n    });\n  }\n\n  function drawLens(root) {\n    // Hover lens intentionally uses the 2nd gallery texture via CSS background.\n    // Render/canvas detail remains available in the modal Giydirme steps.\n    return;\n  }\n\n  function openZoom(root, preferredMode) {\n    setupZoom(root);\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    zoom.levelIndex = 0;\n    zoom.panX = 0;\n    zoom.panY = 0;\n    zoom.baseImageWidth = 0;\n    zoom.isOpen = true;\n    zoom.modal.hidden = false;\n    zoom.modal.classList.add(\"is-open\");\n    zoom.button.setAttribute(\"aria-expanded\", \"true\");\n    document.body.classList.add(\"massimo-oo-zoom-open\");\n    setZoomMode(root, preferredMode || zoom.mode || \"render\");\n    var closeBtn = zoom.modal.querySelector(\".massimo-oo-zoom__close\");\n    if (closeBtn) closeBtn.focus();\n  }\n\n  function closeZoom(root) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    zoom.isOpen = false;\n    zoom.modal.classList.remove(\"is-open\");\n    zoom.modal.hidden = true;\n    zoom.button.setAttribute(\"aria-expanded\", \"false\");\n    document.body.classList.remove(\"massimo-oo-zoom-open\");\n    zoom.button.focus();\n  }\n\n  function setZoomMode(root, mode) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return Promise.resolve(null);\n    if (mode === \"render\" && !zoomRenderAvailable(root)) mode = \"texture\";\n    if (mode === \"original\" && !zoomOriginalSource(root)) mode = \"texture\";\n    var nextMode = mode || \"render\";\n    if (nextMode !== zoom.mode) zoom.levelIndex = 0;\n    zoom.mode = nextMode;\n    zoom.panX = 0;\n    zoom.panY = 0;\n    updateZoomControls(root);\n    if (zoom.mode === \"render\") {\n      zoom.message.textContent = \"4K giydirme hazirlaniyor...\";\n      zoom.stage.classList.add(\"is-loading\");\n      return zoomRenderSource(root).then(function (src) {\n        setZoomImage(root, src, \"render\");\n      });\n    }\n    if (zoom.mode === \"original\") {\n      setZoomImage(root, zoomOriginalSource(root), \"original\");\n      return Promise.resolve(null);\n    }\n    var textureInfo = zoomTextureSourceInfo(root);\n    var textureSrc = textureInfo && textureInfo.src;\n    setZoomImage(root, textureSrc, \"texture\", textureInfo);\n    return Promise.resolve(null);\n  }\n\n  function setZoomLevel(root, levelIndex) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    zoom.levelIndex = Math.max(0, Math.min(ZOOM_LEVELS.length - 1, Number(levelIndex) || 0));\n    zoom.panX = 0;\n    zoom.panY = 0;\n    updateZoomControls(root);\n    applyZoomTransform(root);\n    if (zoom.lens && !zoom.lens.hidden) {\n      zoom.lens.style.backgroundSize = (ZOOM_LEVELS[zoom.levelIndex].scale * 160) + \"%\";\n      scheduleLensDraw(root);\n    }\n    if (zoom.lastMeta) updateZoomInfo(root, zoom.lastMeta);\n    if (window.__MASSIMO_ZOOM_LAST__) {\n      window.__MASSIMO_ZOOM_LAST__.level = ZOOM_LEVELS[zoom.levelIndex].label;\n      window.__MASSIMO_ZOOM_LAST__.kindLabel = zoom.lastMeta && zoom.lastMeta.kindLabel || window.__MASSIMO_ZOOM_LAST__.kindLabel || \"\";\n      window.__MASSIMO_ZOOM_LAST__.detailLabel = zoom.lastMeta && zoom.lastMeta.detailLabel || window.__MASSIMO_ZOOM_LAST__.detailLabel || \"\";\n      window.__MASSIMO_ZOOM_LAST__.at = Date.now();\n    }\n  }\n\n  function setZoomStep(root, mode, levelIndex) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return Promise.resolve(null);\n    mode = mode || \"render\";\n    levelIndex = Math.max(0, Math.min(ZOOM_LEVELS.length - 1, Number(levelIndex) || 0));\n    if (zoom.mode === mode) {\n      setZoomLevel(root, levelIndex);\n      return Promise.resolve(null);\n    }\n    return setZoomMode(root, mode).then(function () {\n      setZoomLevel(root, levelIndex);\n      return null;\n    });\n  }\n\n  function setZoomImage(root, src, mode, sourceInfoOverride) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    src = normalizeZoomSrc(src);\n    var sourceInfo = sourceInfoOverride || (mode === \"render\"\n      ? { sourceType: \"render\", sourceLabel: \"Giydirme yuksek cozunurluk\", src: src }\n      : (mode === \"original\"\n        ? { sourceType: \"original\", sourceLabel: \"Hali gorseli\", src: src }\n        : zoomDefaultSource(root)));\n    var meta = zoomSourceMeta(root, sourceInfo);\n    zoom.src = src;\n    zoom.stage.classList.remove(\"is-loading\");\n    if (!src) {\n      zoom.image.removeAttribute(\"src\");\n      zoom.image.alt = \"\";\n      zoom.stage.classList.add(\"is-empty\");\n      zoom.message.textContent = mode === \"render\"\n        ? \"Giydirme goruntusu henuz hazir degil.\"\n        : (mode === \"original\" ? \"Hali gorseli bulunamadi.\" : \"Doku gorseli bulunamadi.\");\n    } else {\n      zoom.stage.classList.remove(\"is-empty\");\n      zoom.message.textContent = \"\";\n      zoom.image.alt = mode === \"render\" ? \"Massimo giydirme detayi\" : (mode === \"original\" ? \"Massimo hali gorseli\" : \"Massimo doku detayi\");\n      zoom.image.src = src;\n    }\n    applyZoomTransform(root);\n    updateZoomInfo(root, meta);\n    writeZoomDebug(root, {\n      mode: mode,\n      level: ZOOM_LEVELS[zoom.levelIndex].label,\n      pattern: root.__massimoConfig && root.__massimoConfig.patternCode,\n      sourceType: sourceInfo.sourceType || (mode === \"render\" ? \"render\" : (mode === \"original\" ? \"original\" : \"product-pattern\")),\n      regionId: sourceInfo.regionId || \"\",\n      sourceLabel: sourceInfo.sourceLabel || (mode === \"render\" ? \"Giydirme yuksek cozunurluk\" : (mode === \"original\" ? \"Hali gorseli\" : \"Desen\")),\n      sourcePreview: src ? src.slice(0, 160) : \"\"\n    }, meta);\n    if (zoom.image) {\n      zoom.image.addEventListener(\"load\", function () {\n        // YENI: image yuklendigine baseImageWidth reset \u2014 yeni image icin yeni hesap\n        zoom.baseImageWidth = 0;\n        applyZoomTransform(root);\n        if (!window.__MASSIMO_ZOOM_LAST__) return;\n        var naturalW = zoom.image.naturalWidth || 0;\n        var naturalH = zoom.image.naturalHeight || 0;\n        var highDetailZoom = isHighDetailTextureConfig(root.__massimoConfig || {});\n        window.__MASSIMO_ZOOM_LAST__.naturalWidth = naturalW;\n        window.__MASSIMO_ZOOM_LAST__.naturalHeight = naturalH;\n        if (highDetailZoom) {\n          window.__MASSIMO_ZOOM_LAST__.sourceResolutionLimited = mode !== \"render\" && Math.max(naturalW, naturalH) < 2048;\n          window.__MASSIMO_ZOOM_LAST__.renderSource = window.__MASSIMO_ZOOM_RENDER_SOURCE__ || null;\n          window.__MASSIMO_ZOOM_LAST__.textureTile = window.__MASSIMO_TEXTURE_TILE_LAST__ || null;\n        } else {\n          delete window.__MASSIMO_ZOOM_LAST__.sourceResolutionLimited;\n          delete window.__MASSIMO_ZOOM_LAST__.renderSource;\n          delete window.__MASSIMO_ZOOM_LAST__.textureTile;\n        }\n        window.__MASSIMO_ZOOM_LAST__.at = Date.now();\n      }, { once: true });\n    }\n  }\n\n  function updateZoomControls(root) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    $all(zoom.modal, \"[data-massimo-zoom-step]\").forEach(function (btn) {\n      var mode = btn.dataset.massimoZoomMode || \"render\";\n      var levelIndex = Number(btn.dataset.massimoZoomLevel) || 0;\n      var active = mode === zoom.mode && levelIndex === zoom.levelIndex;\n      btn.classList.toggle(\"is-active\", active);\n      btn.setAttribute(\"aria-pressed\", active ? \"true\" : \"false\");\n      btn.disabled = mode === \"render\" && !zoomRenderAvailable(root);\n      if (mode === \"original\") btn.disabled = !zoomOriginalSource(root);\n    });\n    if (zoom.lastMeta) updateZoomInfo(root, zoom.lastMeta);\n  }\n\n  function applyZoomTransform(root) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom || !zoom.image) return;\n    var level = ZOOM_LEVELS[zoom.levelIndex] || ZOOM_LEVELS[0];\n    var rect = zoom.stage.getBoundingClientRect();\n    // BASE WIDTH: image'in 1x'teki display genisligi \u2014 bir kere kaydedilir\n    if (!zoom.baseImageWidth) {\n      var naturalW = zoom.image.naturalWidth || 0;\n      var naturalH = zoom.image.naturalHeight || 0;\n      if (naturalW && naturalH && rect.width && rect.height) {\n        // Image'i stage'e sigdir (contain): fit-by-shorter-axis\n        var fitByW = rect.width / naturalW;\n        var fitByH = rect.height / naturalH;\n        var fitScale = Math.min(fitByW, fitByH);\n        if (fitScale > 1) fitScale = 1;\n        zoom.baseImageWidth = naturalW * fitScale;\n      }\n    }\n    // YENI YAKLASIM: CSS transform scale yerine style.width ile yeniden boyutlandir\n    // Browser img element'in internal yuksek-res pixel data'sini kullanarak downscale eder\n    var displayW = 0;\n    var displayH = 0;\n    if (zoom.baseImageWidth) {\n      displayW = zoom.baseImageWidth * level.scale;\n      zoom.image.style.width = displayW + \"px\";\n      zoom.image.style.height = \"auto\";\n      if (zoom.image.naturalWidth && zoom.image.naturalHeight) {\n        displayH = displayW * zoom.image.naturalHeight / zoom.image.naturalWidth;\n      }\n    }\n    if (rect.width && rect.height && displayW && displayH) {\n      var maxX = Math.max(0, (displayW - rect.width) / 2);\n      var maxY = Math.max(0, (displayH - rect.height) / 2);\n      zoom.panX = Math.max(-maxX, Math.min(maxX, zoom.panX));\n      zoom.panY = Math.max(-maxY, Math.min(maxY, zoom.panY));\n    }\n    // Image center is anchored by CSS; transform only applies centered pan.\n    zoom.image.style.transform = \"translate(-50%, -50%) translate3d(\" + zoom.panX + \"px,\" + zoom.panY + \"px,0)\";\n  }\n\n  function refreshZoom(root) {\n    var zoom = root && root.__massimoZoom;\n    if (!zoom) return;\n    updateZoomControls(root);\n    hideLens(root);\n    if (zoom.isOpen) setZoomMode(root, zoom.mode);\n  }\n\n  function getEdgeTypes(config) {\n    var edgeTypes = Object.assign({}, (config && config.edgeTypes) || {\n      biye: { label: \"Biye\", usesFabric: true },\n      bordur: { label: \"Bordur\", usesFabric: true },\n      cift_bordur: { label: \"Cift Bordur\", usesFabric: true, usesDoubleFabric: true },\n      overlok: { label: \"Overlok\", usesFabric: false }\n    });\n    if (normalizeShapeType(state.shapeType) === \"amorf\") {\n      delete edgeTypes.bordur;\n      delete edgeTypes.cift_bordur;\n    }\n    return edgeTypes;\n  }\n\n  function enforceSpecialAmorfEdge(config) {\n    var edgeTypes = getEdgeTypes(config);\n    if (edgeTypes[state.edgeType]) return state.edgeType;\n    state.edgeType = edgeTypes.biye ? \"biye\" : edgeTypes.overlok ? \"overlok\" : Object.keys(edgeTypes)[0] || \"biye\";\n    return state.edgeType;\n  }\n\n  function isDoubleBordur(edgeType) {\n    return edgeType === \"cift_bordur\";\n  }\n\n  function edgeUsesFabric(edgeType, config) {\n    var edge = getEdgeTypes(config)[edgeType];\n    if (!edge) return false;\n    if (edge.usesFabric === false) return false;\n    return edgeType !== \"overlok\";\n  }\n\n  function edgeUsesDoubleFabric(edgeType, config) {\n    var edge = getEdgeTypes(config)[edgeType];\n    return isDoubleBordur(edgeType) || !!(edge && edge.usesDoubleFabric);\n  }\n\n  function fabricName(fabric) {\n    if (!fabric) return \"\";\n    var family = String(fabric.familyLabel || \"\").trim();\n    var label = String(fabric.label || fabric.id || \"\").trim();\n    if (!family) return label;\n    if (label.toLowerCase().indexOf(family.toLowerCase()) === 0) return label;\n    return (family + \" \" + label).trim();\n  }\n\n  function doubleFabricLabel() {\n    var outer = fabricName(state.doubleFabrics.outer) || \"secim bekliyor\";\n    var inner = fabricName(state.doubleFabrics.inner) || \"secim bekliyor\";\n    return \"Dis bordur 4 cm: \" + outer + \" / Ic bordur 2 cm: \" + inner;\n  }\n\n  function currentTargetFabric() {\n    return state.doubleFabrics[state.doubleTarget] || null;\n  }\n\n  function findInitialFabric(config) {\n    var families = (config && config.kartelas) || {};\n    var list = families[INITIAL_FAMILY] || [];\n    for (var i = 0; i < list.length; i++) {\n      var item = list[i];\n      if (String(item && item.id || \"\").toLowerCase() === INITIAL_FABRIC_ID) {\n        return Object.assign({}, item, {\n          image: firstImageCandidate(item) || item.image || \"\",\n          color: fallbackColor(item)\n        });\n      }\n    }\n    return null;\n  }\n\n  function applyInitialMassimoDefaults(root, config) {\n    var edgeTypes = getEdgeTypes(config);\n    state.family = INITIAL_FAMILY;\n    state.doubleTarget = \"outer\";\n    state.doubleFabrics = { outer: null, inner: null };\n    state.edgeType = edgeTypes[INITIAL_EDGE_TYPE] ? INITIAL_EDGE_TYPE : detectInitialEdge(root, config);\n    if (!edgeUsesFabric(state.edgeType, config)) {\n      state.fabric = null;\n      return;\n    }\n    var fabric = findInitialFabric(config);\n    var status = $(root, \"[data-massimo-status]\");\n    if (!fabric) {\n      state.fabric = null;\n      if (status) status.textContent = \"Canvas 06 bulunamad?; ba?lang?? bord?r giydirmesi yap?lamad?\";\n      return;\n    }\n    state.fabric = fabric;\n    if (status) status.textContent = \"\";\n  }\n\n  function syncFamilyButtons(root) {\n    $all(root, \"[data-massimo-family]\").forEach(function (el) {\n      el.classList.toggle(\"is-active\", el.dataset.massimoFamily === state.family);\n    });\n  }\n\n  function previewFabricPayload(edgeType, config) {\n    if (!edgeUsesFabric(edgeType, config)) return null;\n    if (edgeUsesDoubleFabric(edgeType, config)) {\n      return {\n        outer: state.doubleFabrics.outer || null,\n        inner: state.doubleFabrics.inner || null\n      };\n    }\n    return state.fabric || null;\n  }\n\n  function normalizeHandle(value) {\n    return String(value || \"\").split(\"?\")[0].replace(/^\\/products\\//, \"\").toLowerCase();\n  }\n\n  var AMORF_BESTSELLER_SHAPE_POINTS = {\n    \"amorf-fasulye-soft\": { label: \"Fasulye Soft\", points: [[0.485,0.02],[0.65,0.02],[0.796,0.089],[0.903,0.234],[0.919,0.419],[0.893,0.586],[0.838,0.734],[0.745,0.853],[0.62,0.921],[0.485,0.927],[0.361,0.888],[0.251,0.818],[0.165,0.712],[0.123,0.577],[0.135,0.436],[0.185,0.31],[0.251,0.191],[0.343,0.068]] },\n    \"amorf-cakil-dikey\": { label: \"\u00C7ak\u0131l Dikey\", points: [[0.505,0.023],[0.63,0.066],[0.734,0.155],[0.825,0.267],[0.901,0.412],[0.934,0.596],[0.892,0.782],[0.781,0.915],[0.641,0.972],[0.505,0.974],[0.378,0.939],[0.265,0.861],[0.186,0.733],[0.156,0.578],[0.169,0.425],[0.208,0.284],[0.274,0.152],[0.376,0.054]] },\n    \"amorf-yumusak-kare\": { label: \"Yumu\u015Fak Kare\", points: [[0.5,0.083],[0.65,0.078],[0.804,0.13],[0.906,0.26],[0.935,0.421],[0.921,0.576],[0.87,0.719],[0.767,0.825],[0.633,0.873],[0.5,0.891],[0.358,0.899],[0.21,0.854],[0.106,0.733],[0.071,0.577],[0.077,0.424],[0.12,0.276],[0.221,0.16],[0.359,0.104]] },\n    \"amorf-bulut-genis\": { label: \"Bulut Geni\u015F\", points: [[0.5,0.108],[0.651,0.161],[0.769,0.243],[0.906,0.317],[0.98,0.445],[0.929,0.586],[0.845,0.693],[0.778,0.808],[0.655,0.89],[0.5,0.915],[0.331,0.922],[0.176,0.855],[0.127,0.706],[0.125,0.577],[0.078,0.455],[0.092,0.316],[0.207,0.218],[0.343,0.146]] },\n    \"amorf-bel-oyuk\": { label: \"Bel Oyuk\", points: [[0.51,0.02],[0.667,0.02],[0.795,0.09],[0.857,0.259],[0.856,0.427],[0.829,0.568],[0.803,0.704],[0.755,0.851],[0.654,0.975],[0.51,0.98],[0.375,0.949],[0.282,0.827],[0.225,0.698],[0.181,0.57],[0.155,0.425],[0.171,0.264],[0.242,0.115],[0.36,0.02]] },\n    \"amorf-sag-lob\": { label: \"Sa\u011F Lob\", points: [[0.52,0.02],[0.676,0.02],[0.813,0.107],[0.901,0.252],[0.943,0.416],[0.946,0.584],[0.9,0.747],[0.801,0.877],[0.665,0.947],[0.52,0.955],[0.386,0.913],[0.274,0.829],[0.199,0.708],[0.177,0.568],[0.201,0.437],[0.247,0.323],[0.303,0.21],[0.389,0.095]] },\n    \"amorf-sol-lob\": { label: \"Sol Lob\", points: [[0.48,0.048],[0.608,0.104],[0.71,0.191],[0.778,0.306],[0.807,0.435],[0.802,0.564],[0.775,0.692],[0.72,0.822],[0.621,0.935],[0.48,0.98],[0.333,0.956],[0.213,0.859],[0.125,0.73],[0.062,0.583],[0.036,0.412],[0.073,0.236],[0.182,0.1],[0.331,0.039]] },\n    \"amorf-kaya-oval\": { label: \"Kaya Oval\", points: [[0.5,0.044],[0.632,0.093],[0.748,0.168],[0.859,0.267],[0.931,0.415],[0.924,0.584],[0.853,0.729],[0.755,0.842],[0.635,0.916],[0.5,0.924],[0.379,0.873],[0.272,0.805],[0.165,0.718],[0.088,0.582],[0.085,0.418],[0.146,0.27],[0.237,0.147],[0.358,0.061]] },\n    \"amorf-damla-genis\": { label: \"Damla Geni\u015F\", points: [[0.5,0.02],[0.649,0.02],[0.775,0.082],[0.865,0.226],[0.908,0.396],[0.891,0.57],[0.817,0.71],[0.713,0.797],[0.607,0.848],[0.5,0.885],[0.378,0.897],[0.252,0.849],[0.156,0.729],[0.115,0.569],[0.122,0.403],[0.162,0.245],[0.236,0.098],[0.352,0.02]] },\n    \"amorf-zen-yumurta\": { label: \"Zen Yumurta\", points: [[0.5,0.02],[0.646,0.02],[0.773,0.097],[0.859,0.24],[0.882,0.409],[0.857,0.566],[0.813,0.708],[0.739,0.833],[0.625,0.904],[0.5,0.908],[0.384,0.875],[0.273,0.816],[0.181,0.712],[0.135,0.568],[0.127,0.411],[0.146,0.244],[0.215,0.081],[0.345,0.02]] },\n    \"amorf-ikili-lob\": { label: \"\u0130kili Lob\", points: [[0.5,0.106],[0.64,0.079],[0.779,0.136],[0.876,0.262],[0.943,0.414],[0.973,0.591],[0.91,0.76],[0.77,0.852],[0.628,0.884],[0.5,0.921],[0.355,0.936],[0.219,0.867],[0.131,0.733],[0.075,0.582],[0.054,0.414],[0.118,0.258],[0.252,0.176],[0.383,0.147]] },\n    \"amorf-yaprak-oval\": { label: \"Yaprak Oval\", points: [[0.5,0.039],[0.617,0.086],[0.718,0.165],[0.797,0.279],[0.842,0.422],[0.847,0.579],[0.815,0.734],[0.742,0.871],[0.631,0.963],[0.5,0.98],[0.374,0.948],[0.262,0.865],[0.164,0.75],[0.087,0.594],[0.061,0.4],[0.112,0.211],[0.226,0.078],[0.367,0.028]] },\n    \"amorf-kabuk-form\": { label: \"Kabuk Form\", points: [[0.5,0.045],[0.636,0.125],[0.745,0.208],[0.854,0.296],[0.938,0.423],[0.941,0.578],[0.86,0.708],[0.748,0.795],[0.634,0.867],[0.5,0.932],[0.34,0.939],[0.203,0.854],[0.137,0.71],[0.122,0.567],[0.111,0.431],[0.11,0.275],[0.178,0.116],[0.328,0.027]] },\n    \"amorf-mantar-soft\": { label: \"Mantar Soft\", points: [[0.5,0.054],[0.627,0.107],[0.733,0.183],[0.827,0.277],[0.886,0.407],[0.891,0.554],[0.865,0.706],[0.806,0.87],[0.67,0.979],[0.5,0.98],[0.333,0.973],[0.205,0.856],[0.118,0.716],[0.092,0.557],[0.131,0.41],[0.19,0.288],[0.257,0.169],[0.362,0.073]] },\n    \"amorf-kum-parca\": { label: \"Kum Par\u00E7a\", points: [[0.5,0.057],[0.651,0.132],[0.765,0.225],[0.88,0.315],[0.952,0.446],[0.933,0.591],[0.862,0.715],[0.757,0.806],[0.628,0.848],[0.5,0.877],[0.35,0.903],[0.2,0.853],[0.118,0.725],[0.085,0.588],[0.066,0.449],[0.1,0.305],[0.192,0.178],[0.327,0.078]] },\n    \"amorf-organik-runner\": { label: \"Organik Runner\", points: [[0.5,0.027],[0.6,0.053],[0.691,0.128],[0.769,0.247],[0.814,0.41],[0.806,0.588],[0.747,0.733],[0.667,0.825],[0.587,0.891],[0.5,0.954],[0.392,0.98],[0.277,0.933],[0.197,0.786],[0.176,0.593],[0.202,0.414],[0.252,0.266],[0.317,0.144],[0.401,0.058]] },\n    \"amorf-dar-koridor\": { label: \"Dar Koridor\", points: [[0.5,0.034],[0.597,0.036],[0.686,0.112],[0.751,0.246],[0.796,0.409],[0.809,0.595],[0.764,0.767],[0.675,0.865],[0.583,0.899],[0.5,0.921],[0.413,0.918],[0.331,0.853],[0.267,0.735],[0.219,0.587],[0.197,0.406],[0.232,0.229],[0.317,0.117],[0.41,0.066]] },\n    \"amorf-uzun-cakil\": { label: \"Uzun \u00C7ak\u0131l\", points: [[0.5,0.02],[0.625,0.02],[0.729,0.095],[0.799,0.244],[0.835,0.412],[0.835,0.588],[0.793,0.751],[0.714,0.879],[0.612,0.955],[0.5,0.98],[0.388,0.957],[0.289,0.873],[0.224,0.737],[0.203,0.578],[0.216,0.426],[0.248,0.284],[0.299,0.145],[0.383,0.024]] },\n    \"amorf-kose-oyuk\": { label: \"K\u00F6\u015Fe Oyuk\", points: [[0.5,0.048],[0.628,0.133],[0.721,0.224],[0.814,0.31],[0.9,0.426],[0.93,0.579],[0.88,0.73],[0.775,0.844],[0.648,0.926],[0.5,0.977],[0.339,0.964],[0.207,0.866],[0.143,0.716],[0.132,0.568],[0.13,0.432],[0.137,0.28],[0.2,0.125],[0.338,0.033]] },\n    \"amorf-cift-bel\": { label: \"\u00C7ift Bel\", points: [[0.5,0.02],[0.654,0.02],[0.75,0.141],[0.804,0.289],[0.86,0.424],[0.881,0.581],[0.828,0.728],[0.741,0.846],[0.639,0.961],[0.5,0.98],[0.356,0.976],[0.27,0.83],[0.22,0.695],[0.161,0.572],[0.131,0.422],[0.173,0.272],[0.253,0.146],[0.354,0.02]] },\n    \"amorf-huni-soft\": { label: \"Huni Soft\", points: [[0.5,0.02],[0.658,0.02],[0.793,0.081],[0.876,0.239],[0.901,0.415],[0.879,0.58],[0.829,0.728],[0.75,0.858],[0.636,0.949],[0.5,0.971],[0.374,0.914],[0.283,0.81],[0.219,0.695],[0.168,0.57],[0.135,0.423],[0.146,0.255],[0.219,0.099],[0.345,0.02]] },\n    \"amorf-akarsu\": { label: \"Akarsu\", points: [[0.5,0.02],[0.646,0.051],[0.773,0.135],[0.873,0.258],[0.919,0.417],[0.89,0.577],[0.809,0.7],[0.716,0.789],[0.622,0.877],[0.5,0.959],[0.345,0.978],[0.205,0.894],[0.13,0.74],[0.117,0.576],[0.128,0.426],[0.155,0.276],[0.224,0.131],[0.348,0.031]] },\n    \"amorf-dalgali-kenar\": { label: \"Dalgal\u0131 Kenar\", points: [[0.5,0.034],[0.649,0.08],[0.752,0.193],[0.882,0.274],[0.98,0.412],[0.932,0.578],[0.853,0.708],[0.779,0.841],[0.652,0.928],[0.5,0.966],[0.354,0.911],[0.259,0.794],[0.138,0.714],[0.039,0.583],[0.093,0.427],[0.167,0.303],[0.231,0.172],[0.351,0.08]] },\n    \"amorf-sarmal-dis\": { label: \"Sarmal D\u0131\u015F\", points: [[0.505,0.02],[0.675,0.02],[0.824,0.093],[0.904,0.253],[0.915,0.423],[0.896,0.574],[0.857,0.718],[0.777,0.847],[0.651,0.929],[0.505,0.941],[0.371,0.894],[0.261,0.812],[0.176,0.704],[0.129,0.571],[0.134,0.43],[0.18,0.299],[0.253,0.178],[0.356,0.062]] },\n    \"amorf-yarim-bulut\": { label: \"Yar\u0131m Bulut\", points: [[0.485,0.157],[0.603,0.197],[0.741,0.217],[0.874,0.295],[0.936,0.437],[0.938,0.593],[0.887,0.742],[0.771,0.848],[0.631,0.906],[0.485,0.935],[0.344,0.894],[0.247,0.792],[0.163,0.697],[0.057,0.589],[0.02,0.432],[0.054,0.272],[0.174,0.153],[0.336,0.114]] },\n    \"amorf-kidney-luks\": { label: \"Kidney L\u00FCks\", points: [[0.51,0.02],[0.671,0.02],[0.792,0.105],[0.847,0.271],[0.867,0.426],[0.87,0.575],[0.843,0.726],[0.769,0.863],[0.651,0.955],[0.51,0.98],[0.371,0.949],[0.259,0.852],[0.194,0.714],[0.179,0.569],[0.189,0.434],[0.207,0.294],[0.249,0.135],[0.351,0.02]] },\n    \"amorf-mars-tasi\": { label: \"Mars Ta\u015F\u0131\", points: [[0.5,0.097],[0.654,0.066],[0.802,0.132],[0.896,0.266],[0.954,0.418],[0.947,0.581],[0.87,0.719],[0.783,0.846],[0.665,0.963],[0.5,0.977],[0.36,0.893],[0.249,0.806],[0.152,0.706],[0.107,0.571],[0.1,0.428],[0.125,0.279],[0.231,0.171],[0.371,0.136]] },\n    \"amorf-lava-soft\": { label: \"Lava Soft\", points: [[0.5,0.02],[0.658,0.075],[0.777,0.178],[0.884,0.284],[0.964,0.42],[0.952,0.578],[0.857,0.701],[0.747,0.788],[0.638,0.87],[0.5,0.929],[0.341,0.928],[0.188,0.863],[0.072,0.742],[0.039,0.579],[0.102,0.431],[0.188,0.324],[0.251,0.21],[0.343,0.079]] },\n    \"amorf-kum-tepesi\": { label: \"Kum Tepesi\", points: [[0.5,0.116],[0.658,0.145],[0.809,0.203],[0.931,0.309],[0.975,0.456],[0.926,0.597],[0.831,0.7],[0.736,0.78],[0.637,0.864],[0.5,0.928],[0.339,0.923],[0.208,0.84],[0.132,0.719],[0.089,0.594],[0.063,0.462],[0.082,0.315],[0.178,0.189],[0.333,0.122]] },\n    \"amorf-cicek-sade\": { label: \"\u00C7i\u00E7ek Sade\", points: [[0.5,0.055],[0.651,0.054],[0.75,0.181],[0.821,0.301],[0.927,0.419],[0.938,0.583],[0.844,0.713],[0.768,0.843],[0.657,0.964],[0.5,0.941],[0.376,0.864],[0.242,0.829],[0.137,0.725],[0.136,0.569],[0.124,0.429],[0.112,0.259],[0.22,0.142],[0.368,0.112]] },\n    \"amorf-petal-tek\": { label: \"Petal Tek\", points: [[0.5,0.073],[0.613,0.096],[0.722,0.154],[0.817,0.259],[0.878,0.409],[0.895,0.585],[0.869,0.769],[0.788,0.938],[0.653,0.98],[0.5,0.98],[0.353,0.98],[0.256,0.87],[0.204,0.715],[0.174,0.569],[0.164,0.418],[0.193,0.267],[0.273,0.147],[0.384,0.084]] },\n    \"amorf-petal-cift\": { label: \"Petal \u00C7ift\", points: [[0.5,0.064],[0.621,0.135],[0.727,0.204],[0.849,0.279],[0.947,0.414],[0.958,0.589],[0.895,0.75],[0.794,0.884],[0.656,0.969],[0.5,0.961],[0.373,0.883],[0.266,0.805],[0.149,0.722],[0.059,0.585],[0.056,0.414],[0.123,0.262],[0.222,0.137],[0.353,0.057]] },\n    \"amorf-organik-kalkan\": { label: \"Organik Kalkan\", points: [[0.5,0.055],[0.619,0.114],[0.717,0.194],[0.809,0.285],[0.892,0.411],[0.928,0.576],[0.891,0.749],[0.792,0.889],[0.656,0.98],[0.5,0.98],[0.341,0.98],[0.209,0.888],[0.134,0.732],[0.116,0.568],[0.129,0.415],[0.165,0.268],[0.241,0.136],[0.362,0.055]] },\n    \"amorf-yassi-kaya\": { label: \"Yass\u0131 Kaya\", points: [[0.5,0.162],[0.644,0.183],[0.777,0.237],[0.908,0.315],[0.98,0.437],[0.976,0.579],[0.887,0.695],[0.794,0.799],[0.663,0.879],[0.5,0.89],[0.348,0.854],[0.215,0.791],[0.124,0.689],[0.07,0.573],[0.021,0.44],[0.044,0.293],[0.181,0.196],[0.349,0.168]] },\n    \"amorf-ekru-zen\": { label: \"Ekru Zen\", points: [[0.5,0.02],[0.642,0.053],[0.747,0.161],[0.836,0.277],[0.901,0.419],[0.902,0.582],[0.841,0.727],[0.752,0.846],[0.639,0.939],[0.5,0.965],[0.372,0.905],[0.275,0.809],[0.186,0.708],[0.113,0.579],[0.098,0.418],[0.147,0.265],[0.231,0.131],[0.349,0.023]] },\n    \"amorf-golge-oval\": { label: \"G\u00F6lge Oval\", points: [[0.5,0.061],[0.633,0.069],[0.754,0.143],[0.848,0.263],[0.909,0.415],[0.912,0.586],[0.853,0.741],[0.758,0.863],[0.642,0.959],[0.5,0.98],[0.36,0.953],[0.26,0.837],[0.192,0.71],[0.137,0.576],[0.121,0.421],[0.174,0.278],[0.271,0.178],[0.379,0.108]] },\n    \"amorf-soft-blob\": { label: \"Soft Blob\", points: [[0.5,0.108],[0.623,0.154],[0.767,0.174],[0.924,0.249],[0.977,0.414],[0.926,0.577],[0.857,0.711],[0.765,0.823],[0.64,0.894],[0.5,0.946],[0.342,0.943],[0.227,0.833],[0.171,0.694],[0.096,0.573],[0.036,0.416],[0.085,0.255],[0.209,0.145],[0.354,0.09]] },\n    \"amorf-river-stone\": { label: \"River Stone\", points: [[0.5,0.02],[0.645,0.062],[0.762,0.158],[0.848,0.279],[0.905,0.422],[0.913,0.58],[0.854,0.724],[0.744,0.819],[0.62,0.863],[0.5,0.884],[0.371,0.89],[0.232,0.851],[0.117,0.743],[0.065,0.584],[0.079,0.419],[0.137,0.27],[0.226,0.142],[0.35,0.049]] },\n    \"amorf-corner-flow\": { label: \"Corner Flow\", points: [[0.49,0.081],[0.633,0.102],[0.768,0.168],[0.864,0.289],[0.898,0.44],[0.871,0.585],[0.809,0.708],[0.724,0.808],[0.617,0.879],[0.49,0.909],[0.359,0.891],[0.233,0.835],[0.115,0.742],[0.024,0.601],[0.02,0.425],[0.061,0.255],[0.19,0.141],[0.342,0.09]] },\n    \"amorf-minik-nook\": { label: \"Minik Nook\", points: [[0.5,0.127],[0.622,0.119],[0.753,0.158],[0.854,0.268],[0.888,0.422],[0.858,0.572],[0.797,0.694],[0.719,0.797],[0.62,0.874],[0.5,0.905],[0.378,0.88],[0.269,0.813],[0.172,0.715],[0.101,0.58],[0.086,0.417],[0.149,0.27],[0.264,0.181],[0.386,0.145]] },\n    \"amorf-yuva\": { label: \"Yuva\", points: [[0.5,0.041],[0.661,0.058],[0.802,0.141],[0.902,0.268],[0.952,0.42],[0.939,0.577],[0.867,0.712],[0.757,0.807],[0.634,0.869],[0.5,0.91],[0.35,0.913],[0.205,0.852],[0.11,0.725],[0.09,0.572],[0.124,0.434],[0.177,0.314],[0.247,0.198],[0.353,0.096]] },\n    \"amorf-tek-omuz\": { label: \"Tek Omuz\", points: [[0.51,0.083],[0.637,0.086],[0.767,0.135],[0.874,0.248],[0.929,0.408],[0.931,0.582],[0.89,0.753],[0.808,0.912],[0.671,0.98],[0.51,0.98],[0.36,0.979],[0.261,0.844],[0.206,0.701],[0.172,0.565],[0.161,0.423],[0.195,0.282],[0.279,0.172],[0.391,0.11]] },\n    \"amorf-genis-omuz\": { label: \"Geni\u015F Omuz\", points: [[0.505,0.066],[0.633,0.105],[0.749,0.172],[0.855,0.269],[0.919,0.41],[0.919,0.57],[0.881,0.728],[0.813,0.891],[0.675,0.98],[0.505,0.98],[0.34,0.98],[0.213,0.872],[0.126,0.73],[0.104,0.568],[0.148,0.421],[0.212,0.305],[0.276,0.191],[0.373,0.094]] },\n    \"amorf-yari-kalp\": { label: \"Yar\u0131 Kalp\", points: [[0.5,0.034],[0.634,0.095],[0.743,0.182],[0.843,0.283],[0.928,0.417],[0.959,0.589],[0.906,0.757],[0.782,0.869],[0.636,0.909],[0.5,0.901],[0.379,0.866],[0.268,0.803],[0.177,0.705],[0.118,0.574],[0.099,0.422],[0.126,0.263],[0.21,0.121],[0.346,0.036]] },\n    \"amorf-bumerang-soft\": { label: \"Bumerang Soft\", points: [[0.5,0.02],[0.639,0.118],[0.732,0.224],[0.821,0.315],[0.91,0.428],[0.948,0.579],[0.896,0.729],[0.778,0.831],[0.641,0.887],[0.5,0.913],[0.355,0.897],[0.231,0.821],[0.157,0.698],[0.125,0.566],[0.103,0.43],[0.1,0.269],[0.174,0.111],[0.326,0.023]] },\n    \"amorf-oval-bozum\": { label: \"Oval Bozum\", points: [[0.5,0.061],[0.634,0.087],[0.764,0.147],[0.893,0.245],[0.95,0.411],[0.915,0.582],[0.856,0.731],[0.766,0.855],[0.633,0.909],[0.5,0.925],[0.357,0.94],[0.215,0.88],[0.129,0.74],[0.081,0.583],[0.075,0.416],[0.156,0.277],[0.271,0.194],[0.375,0.114]] },\n    \"amorf-kiyi-soft\": { label: \"K\u0131y\u0131 Soft\", points: [[0.5,0.094],[0.652,0.143],[0.777,0.222],[0.869,0.325],[0.911,0.451],[0.89,0.576],[0.823,0.681],[0.738,0.768],[0.637,0.85],[0.5,0.916],[0.332,0.924],[0.179,0.855],[0.081,0.73],[0.039,0.587],[0.035,0.442],[0.074,0.296],[0.173,0.169],[0.329,0.097]] },\n    \"amorf-yamuk-soft\": { label: \"Yamuk Soft\", points: [[0.5,0.02],[0.653,0.048],[0.77,0.155],[0.863,0.275],[0.946,0.416],[0.969,0.589],[0.901,0.748],[0.784,0.863],[0.652,0.947],[0.5,0.977],[0.359,0.915],[0.268,0.796],[0.203,0.684],[0.137,0.569],[0.11,0.426],[0.158,0.288],[0.246,0.176],[0.355,0.074]] },\n    \"amorf-sahil-cizgi\": { label: \"Sahil \u00C7izgi\", points: [[0.5,0.064],[0.657,0.109],[0.775,0.208],[0.877,0.312],[0.949,0.444],[0.93,0.592],[0.845,0.71],[0.761,0.817],[0.659,0.937],[0.5,0.98],[0.335,0.952],[0.214,0.845],[0.115,0.732],[0.051,0.596],[0.079,0.449],[0.17,0.338],[0.254,0.24],[0.35,0.126]] },\n    \"amorf-mono-organik\": { label: \"Mono Organik\", points: [[0.5,0.02],[0.651,0.022],[0.774,0.124],[0.863,0.259],[0.917,0.416],[0.907,0.583],[0.847,0.731],[0.76,0.856],[0.638,0.936],[0.5,0.952],[0.363,0.934],[0.23,0.87],[0.146,0.735],[0.133,0.574],[0.152,0.429],[0.196,0.298],[0.271,0.186],[0.369,0.085]] }\n  };\n\n  function normalizeQuality(value) {\n    var q = String(value || \"\").trim().toLowerCase();\n    if (q === \"i\u0307biza\" || q === \"\u0131biza\") return \"ibiza\";\n    if (q === \"barcelona\") return \"barceleno\";\n    return q;\n  }\n\n  function productKey(quality, pattern) {\n    return normalizeQuality(quality) + \"-\" + String(pattern || \"\").trim().toLowerCase();\n  }\n\n  function identityFromText(handle, title) {\n    var qualities = [\"lasis\", \"barceleno\", \"barcelona\", \"ibiza\", \"toledo\", \"madrid\", \"cordoba\", \"lima\"];\n    function parse(raw) {\n      var text = String(raw || \"\").toLowerCase();\n      for (var i = 0; i < qualities.length; i++) {\n        var q = qualities[i];\n        var re = new RegExp(q + \"[-\\\\s]+([0-9][0-9a-z]*)\", \"i\");\n        var m = text.match(re);\n        if (m) return { quality: normalizeQuality(q), pattern: m[1] };\n      }\n      return { quality: \"\", pattern: \"\" };\n    }\n    var fromTitle = parse(title);\n    var fromHandle = parse(handle);\n    if (fromTitle.quality && fromHandle.quality && fromTitle.quality === fromHandle.quality && fromTitle.pattern !== fromHandle.pattern) {\n      return fromTitle;\n    }\n    return fromTitle.quality ? fromTitle : fromHandle;\n  }\n\n  function getAllConfigStore() {\n    var store = window.__MASSIMO_ALL_CONFIGS__ || {};\n    return {\n      version: store.version || \"\",\n      kartelaSource: store.kartelaSource || \"\",\n      kartelas: store.kartelas || null,\n      qualityMeta: store.qualityMeta || {},\n      products: store.products || {}\n    };\n  }\n\n  function normalizeProductConfig(config) {\n    config = Object.assign({}, config || {});\n    var id = identityFromText(config.handle || config.productHandle, config.title);\n    var quality = normalizeQuality(config.qualityCode || id.quality);\n    var pattern = String(config.patternCode || id.pattern || \"\").trim();\n    var all = getAllConfigStore();\n    var match = all.products[productKey(quality, pattern)] || null;\n    var merged = Object.assign({}, match || {}, config);\n    if (match && match.previewParams) {\n      merged.previewParams = Object.assign({}, config.previewParams || {}, match.previewParams || {});\n    }\n    if (all.kartelas && (all.kartelas.canvas || all.kartelas.alcantara)) {\n      merged.kartelas = all.kartelas;\n    }\n    merged.qualityCode = normalizeQuality(merged.qualityCode || quality);\n    merged.patternCode = String(merged.patternCode || pattern || \"\").trim();\n    merged.productHandle = merged.productHandle || merged.shopifyHandle || merged.handle;\n    merged.shopifyHandle = merged.shopifyHandle || merged.productHandle || merged.handle;\n    merged.shopifyHandles = Object.assign({\n      biye: merged.productHandle || merged.handle,\n      bordur: merged.productHandle || merged.handle,\n      cift_bordur: merged.productHandle || merged.handle,\n      overlok: merged.productHandle || merged.handle\n    }, merged.shopifyHandles || {});\n    merged.edgeTypes = Object.assign({\n      biye: { label: \"Biye\", usesFabric: true },\n      bordur: { label: \"Bord\u00FCr\", usesFabric: true },\n      cift_bordur: { label: \"\u00C7ift Bord\u00FCr\", usesFabric: true, usesDoubleFabric: true, outerCm: 4, innerCm: 2 },\n      overlok: { label: \"Overlok\", usesFabric: false }\n    }, merged.edgeTypes || {});\n    delete merged.shopifyHandles.sacak;\n    delete merged.edgeTypes.sacak;\n    return merged;\n  }\n\n  function currentPreviewQuery() {\n    var params = new URLSearchParams(window.location.search || \"\");\n    var out = [];\n    [\"view\", \"_ab\", \"_fd\", \"_sc\", \"preview_theme_id\"].forEach(function (key) {\n      if (params.has(key)) out.push(key + \"=\" + encodeURIComponent(params.get(key)));\n      else if (key === \"preview_theme_id\" && initialPreviewThemeId) out.push(key + \"=\" + encodeURIComponent(initialPreviewThemeId));\n    });\n    return out.length ? \"?\" + out.join(\"&\") : \"\";\n  }\n\n  function groupedProducts() {\n    var all = getAllConfigStore();\n    var groups = {};\n    Object.keys(all.qualityMeta).forEach(function (key) {\n      groups[key] = { meta: all.qualityMeta[key], products: [] };\n    });\n    Object.keys(all.products).forEach(function (key) {\n      var item = all.products[key];\n      var q = normalizeQuality(item.qualityCode);\n      if (!groups[q]) groups[q] = { meta: { label: item.qualityLabel || q, sortOrder: 99 }, products: [] };\n      groups[q].products.push(item);\n    });\n    Object.keys(groups).forEach(function (q) {\n      groups[q].products.sort(function (a, b) {\n        return String(a.patternCode).localeCompare(String(b.patternCode), \"tr\", { numeric: true });\n      });\n    });\n    return groups;\n  }\n\n  function renderQualityTabs(root, config) {\n    var wrap = $(root, \"[data-massimo-quality-tabs]\");\n    if (!wrap) return;\n    var groups = groupedProducts();\n    var keys = Object.keys(groups).sort(function (a, b) {\n      return (groups[a].meta.sortOrder || 99) - (groups[b].meta.sortOrder || 99);\n    });\n    wrap.innerHTML = \"\";\n    keys.forEach(function (key) {\n      var group = groups[key];\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__qtab\" + (normalizeQuality(config.qualityCode) === key ? \" is-active\" : \"\");\n      btn.textContent = group.meta.label || key;\n      btn.disabled = !group.products.length;\n      btn.addEventListener(\"click\", function () {\n        if (!group.products.length) return;\n        selectPattern(root, group.products[0], { showPreview: true, keepEdge: true });\n      });\n      wrap.appendChild(btn);\n    });\n  }\n\n  function renderPatternGrid(root, config) {\n    var wrap = $(root, \"[data-massimo-patterns]\");\n    if (!wrap) return;\n    var groups = groupedProducts();\n    var q = normalizeQuality(config.qualityCode);\n    var list = groups[q] ? groups[q].products : [];\n    var activeKey = productKey(config.qualityCode, config.patternCode);\n    var title = $(root, \"[data-massimo-pattern-title]\");\n    if (title) title.textContent = config.patternCode ? \"\u00B7 \" + config.patternCode : \"\";\n    var assignMode = !!state.designMode && designEnabledFor(config);\n    root.classList.toggle(\"is-design-assign-mode\", assignMode);\n    wrap.classList.toggle(\"is-design-assign-mode\", assignMode);\n    wrap.setAttribute(\"aria-label\", assignMode ? \"Tasar\u0131m modu desen atama kaynaklar\u0131\" : \"Massimo desenleri\");\n    wrap.innerHTML = \"\";\n    list.forEach(function (item) {\n      var btn = document.createElement(\"button\");\n      var media = document.createElement(\"div\");\n      var img = document.createElement(\"img\");\n      var label = document.createElement(\"span\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo-pattern\" + (item.key === activeKey ? \" is-active\" : \"\") + (assignMode ? \" is-assign-source\" : \"\");\n      btn.dataset.productKey = item.key;\n      media.className = \"massimo-oo-pattern__media\";\n      label.textContent = item.patternCode || \"\";\n      img.alt = item.name || item.patternCode || \"\";\n      img.loading = \"lazy\";\n      media.appendChild(img);\n      btn.appendChild(media);\n      btn.appendChild(label);\n      hydratePatternImage(item, img);\n      btn.addEventListener(\"click\", function () {\n        if (assignMode) {\n          var source = productConfigToDesignSource(item);\n          if (!source.image) source.image = img.currentSrc || img.src || \"\";\n          setDesignAssignment(root, config, root.__massimoPreview, state.designRegionId, source);\n          return;\n        }\n        if (item.key !== activeKey) {\n          selectPattern(root, item, {\n            showPreview: true,\n            keepEdge: true\n          });\n          return;\n        }\n        renderPreview(root, root.__massimoPreview, { showPreview: true, config: root.__massimoConfig || config })\n          .then(function () { refreshZoom(root); })\n          .catch(reportError.bind(null, root));\n      });\n      if (assignMode) {\n        btn.draggable = true;\n        btn.setAttribute(\"aria-label\", \"Se\u00E7ili b\u00F6lgeye ata: \" + (item.patternCode || \"\"));\n        btn.addEventListener(\"dragstart\", function (event) {\n          var source = productConfigToDesignSource(item);\n          if (!source.image) source.image = img.currentSrc || img.src || \"\";\n          event.dataTransfer.effectAllowed = \"copy\";\n          event.dataTransfer.setData(\"application/json\", JSON.stringify(source));\n          event.dataTransfer.setData(\"text/plain\", source.label || source.id || \"\");\n        });\n      }\n      wrap.appendChild(btn);\n    });\n  }\n\n  function hydratePatternImage(item, img) {\n    if (!item || !img) return;\n    if (item.patternThumb || item.patternImage || (item.productImages && item.productImages[1])) {\n      img.src = item.patternThumb || item.patternImage || item.productImages[1];\n      return;\n    }\n    var handle = (item.shopifyHandles && (item.shopifyHandles.biye || item.shopifyHandles.bordur || item.shopifyHandles.cift_bordur)) || item.productHandle;\n    if (!handle) return;\n    fetch(\"/products/\" + encodeURIComponent(handle) + \".json\")\n      .then(function (res) { return res.ok ? res.json() : null; })\n      .then(function (data) {\n        var images = data && data.product && data.product.images;\n        var image = images && (images[1] || images[0]);\n        if (image && image.src) img.src = image.src.split(\"?\")[0] + \"?width=180\";\n      })\n      .catch(function () {});\n  }\n\n  function productJsonToConfig(base, product) {\n    var next = normalizeProductConfig(base);\n    if (!product) return next;\n    next.title = product.title || next.title;\n    next.handle = product.handle || next.handle;\n    next.productHandle = product.handle || next.productHandle;\n    next.shopifyHandle = product.handle || next.shopifyHandle;\n    if (product.variants && product.variants[0]) next.variantId = product.variants[0].id;\n    if (product.images && product.images.length) {\n      next.productImages = product.images.slice(0, 6).map(function (img) {\n        return img.src.split(\"?\")[0] + \"?width=1400\";\n      });\n      next.patternImage = next.productImages[1] || next.patternImage || \"\";\n      next.patternThumb = next.productImages[1] ? next.productImages[1].replace(\"width=1400\", \"width=200\") : (next.patternThumb || \"\");\n    }\n    return next;\n  }\n\n  function selectPattern(root, productConfig, options) {\n    options = options || {};\n    if (options.showPreview === undefined) options.showPreview = true;\n    if (options.keepEdge === undefined) options.keepEdge = true;\n    var handle = (productConfig.shopifyHandles && (productConfig.shopifyHandles.biye || productConfig.shopifyHandles.bordur || productConfig.shopifyHandles.cift_bordur))\n      || productConfig.productHandle\n      || productConfig.shopifyHandle;\n    if (!handle) return;\n    var status = $(root, \"[data-massimo-status]\");\n    var requestId = (root.__massimoPatternRequestId || 0) + 1;\n    root.__massimoPatternRequestId = requestId;\n    if (status) status.textContent = \"Desen y\u00FCkleniyor...\";\n    fetch(\"/products/\" + encodeURIComponent(handle) + \".json\")\n      .then(function (res) {\n        if (!res.ok) throw new Error(\"\u00DCr\u00FCn bulunamad\u0131: \" + handle);\n        return res.json();\n      })\n      .then(function (data) {\n        if (root.__massimoPatternRequestId !== requestId) return;\n        applyConfig(root, productJsonToConfig(productConfig, data.product), options);\n        window.__MASSIMO_LAST_PATTERN_CLICK__ = {\n          requestedHandle: handle,\n          activePattern: productConfig.patternCode || \"\",\n          showPreview: !!options.showPreview,\n          edgeType: state.edgeType,\n          at: Date.now()\n        };\n        if (window.history && window.history.replaceState) {\n          window.history.replaceState(null, \"\", \"/products/\" + handle + currentPreviewQuery());\n        }\n        if (status) status.textContent = \"\";\n      })\n      .catch(function (err) {\n        if (root.__massimoPatternRequestId !== requestId) return;\n        if (status) status.textContent = err.message || \"Desen y\u00FCklenemedi\";\n        reportError(root, err);\n      });\n  }\n\n  function detectInitialEdge(root, config) {\n    var edgeTypes = getEdgeTypes(config);\n    var currentHandle = normalizeHandle(config.handle || window.location.pathname.split(\"/products/\")[1] || \"\");\n    var handles = config.shopifyHandles || {};\n    var order = [\"bordur\", \"cift_bordur\", \"overlok\", \"biye\"];\n\n    for (var i = 0; i < order.length; i++) {\n      var key = order[i];\n      if (edgeTypes[key] && handles[key] && normalizeHandle(handles[key]) === currentHandle) return key;\n    }\n    if (edgeTypes.cift_bordur && /cift[-\\s]*bordur|\u00E7ift[-\\s]*bord\u00FCr|double[-\\s]*border/.test(currentHandle)) return \"cift_bordur\";\n    if (edgeTypes.bordur && /bordur|bord\u00FCr/.test(currentHandle)) return \"bordur\";\n    if (edgeTypes.overlok && /overlok/.test(currentHandle)) return \"overlok\";\n    if (edgeTypes.biye && /biye|biyeli/.test(currentHandle)) return \"biye\";\n\n    var configured = (root && root.dataset.defaultEdge) || config.defaultEdge;\n    if (configured && edgeTypes[configured]) return configured;\n    if (edgeTypes.biye) return \"biye\";\n    return Object.keys(edgeTypes)[0] || \"biye\";\n  }\n\n  function ensureShapeGroup(root) {\n    var group = $(root, \"[data-massimo-shape-group]\");\n    if (group) return group;\n    var edgeGroup = $(root, \"[data-massimo-edge-group]\");\n    if (!edgeGroup || !edgeGroup.parentElement) return null;\n    group = document.createElement(\"div\");\n    group.className = \"massimo-oo__group\";\n    group.dataset.massimoShapeGroup = \"1\";\n    group.innerHTML = \"\"\n      + \"<span class='massimo-oo__label'>Hal\u0131 \u015Eekli</span>\"\n      + \"<div class='massimo-oo__seg' data-massimo-shape-buttons></div>\"\n      + \"<div class='massimo-oo__shape-presets' data-massimo-shape-presets hidden></div>\";\n    edgeGroup.parentElement.parentElement.insertBefore(group, edgeGroup.parentElement);\n    return group;\n  }\n\n  function renderShapeControls(root, config, preview) {\n    var group = ensureShapeGroup(root);\n    if (!group) return;\n    var designTemplate = designTemplateById(state.designTemplateId);\n    var shapeLocked = lockShapeToDesignTemplate(designTemplate);\n    if (shapeLocked) enforceSpecialAmorfEdge(config);\n    var buttons = $(group, \"[data-massimo-shape-buttons]\");\n    var presets = $(group, \"[data-massimo-shape-presets]\");\n    var isAmorf = normalizeShapeType(state.shapeType) === \"amorf\";\n    var currentPreset = presetByKey(state.shapePresetKey);\n    var dynamicShape = dynamicAmorfShapePayload(\"amorf\");\n    if (isAmorf && dynamicShape) {\n      currentPreset = { key: dynamicShape.presetKey, label: dynamicShape.presetLabel, source: \"parametric-petal\", radii: dynamicShape.radii, points: dynamicShape.points };\n    }\n    var shapeOrder = [\n      { key: \"dikdortgen\", label: \"Dikd\u00F6rtgen\" },\n      { key: \"amorf\", label: \"Amorf\" },\n      { key: \"yuvarlak\", label: \"Yuvarlak\" },\n      { key: \"oval\", label: \"Oval\" }\n    ];\n    buttons.innerHTML = \"\";\n    shapeOrder.forEach(function (item) {\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__btn\" + (normalizeShapeType(state.shapeType) === item.key ? \" is-active\" : \"\");\n      btn.dataset.massimoShape = item.key;\n      btn.textContent = item.label;\n      btn.setAttribute(\"aria-disabled\", \"false\");\n      btn.addEventListener(\"click\", function () {\n        if (item.key !== \"amorf\") state.shapePickerOpen = false;\n        setShape(root, config, preview, item.key, null);\n      });\n      buttons.appendChild(btn);\n    });\n\n    presets.innerHTML = \"\";\n    presets.hidden = !isAmorf;\n    document.body.classList.toggle(\"massimo-oo-shape-picker-open\", !!(isAmorf && state.shapePickerOpen));\n    if (!isAmorf) return;\n\n    var category = shapePresetCategoryFor(currentPreset);\n    if (!state.shapePickerCategory) state.shapePickerCategory = \"all\";\n    var pickerCategory = shapePresetCategoryById(state.shapePickerCategory || \"all\");\n    presets.innerHTML = \"\"\n      + \"<div class='massimo-oo__shape-summary'>\"\n      + \"<button class='massimo-oo__shape-current' type='button' data-massimo-shape-picker-open>\"\n      + \"<span class='massimo-oo__shape-current-preview'>\" + shapePresetPreviewSvg(currentPreset) + \"</span>\"\n      + \"<span class='massimo-oo__shape-current-copy'>\"\n      + \"<strong>\" + escapeHtml(currentPreset.label) + \"</strong>\"\n      + \"<span>\" + escapeHtml(category.label) + (currentPreset.rank ? \" / #\" + currentPreset.rank : \"\") + \"</span>\"\n      + \"</span>\"\n      + \"</button>\"\n      + (shapeLocked\n        ? \"<button class='massimo-oo__btn massimo-oo__shape-open is-disabled' type='button' disabled aria-disabled='true'>\u015Eablon Formu Sabit</button>\"\n        : \"<button class='massimo-oo__btn massimo-oo__shape-open' type='button' data-massimo-shape-picker-open>Amorf Form Se\u00E7</button>\")\n      + \"</div>\"\n      + \"<div class='massimo-oo__shape-picker' data-massimo-shape-picker\" + (state.shapePickerOpen && !shapeLocked ? \"\" : \" hidden\") + \">\"\n      + \"<button class='massimo-oo__shape-backdrop' type='button' data-massimo-shape-picker-close aria-label='Amorf form panelini kapat'></button>\"\n      + \"<div class='massimo-oo__shape-drawer' role='dialog' aria-modal='true' aria-label='Amorf form se\u00E7'>\"\n      + \"<div class='massimo-oo__shape-drawer-head'><div><strong>Amorf Form Se\u00E7</strong><span>\" + escapeHtml(pickerCategory.label) + \"</span></div><button class='massimo-oo__shape-close' type='button' data-massimo-shape-picker-close aria-label='Kapat'>Kapat</button></div>\"\n      + \"<div class='massimo-oo__shape-cats' data-massimo-shape-cats></div>\"\n      + \"<div class='massimo-oo__shape-list' data-massimo-shape-list></div>\"\n      + \"</div>\"\n      + \"</div>\";\n\n    $all(group, \"[data-massimo-shape-picker-open]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        if (shapeLocked) return;\n        state.shapePickerCategory = \"all\";\n        state.shapePickerOpen = true;\n        renderShapeControls(root, config, preview);\n      });\n    });\n\n    $all(group, \"[data-massimo-shape-picker-close]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        state.shapePickerOpen = false;\n        renderShapeControls(root, config, preview);\n      });\n    });\n\n    if (!shapeLocked) renderShapePicker(group, root, config, preview);\n  }\n\n  function shapePresetPreviewPath(preset) {\n    var points = presetPoints(preset);\n    var radii = presetRadii(preset);\n    var raw = points\n      ? points.map(function (point) {\n          return {\n            x: Number(point[0]) - 0.5,\n            y: Number(point[1]) - 0.5\n          };\n        })\n      : radii.map(function (radius, idx) {\n          var angle = idx / radii.length * Math.PI * 2;\n          return {\n            x: Math.cos(angle) * radius,\n            y: Math.sin(angle) * radius\n          };\n        });\n    var minX = Math.min.apply(null, raw.map(function (p) { return p.x; }));\n    var maxX = Math.max.apply(null, raw.map(function (p) { return p.x; }));\n    var minY = Math.min.apply(null, raw.map(function (p) { return p.y; }));\n    var maxY = Math.max.apply(null, raw.map(function (p) { return p.y; }));\n    var scale = Math.min(76 / Math.max(0.001, maxX - minX), 58 / Math.max(0.001, maxY - minY));\n    var ox = 48 - (minX + maxX) / 2 * scale;\n    var oy = 38 - (minY + maxY) / 2 * scale;\n    var scaled = raw.map(function (point) {\n      return {\n        x: Math.round((ox + point.x * scale) * 10) / 10,\n        y: Math.round((oy + point.y * scale) * 10) / 10\n      };\n    });\n    if (!points) scaled = softenShapePreviewPoints(scaled, 0.18, 1);\n    return smoothShapeSvgPath(scaled, points ? 0.82 : 0.78);\n  }\n\n  function softenShapePreviewPoints(points, factor, passes) {\n    if (!Array.isArray(points) || points.length < 3) return points;\n    var current = points.slice(0);\n    var f = Math.max(0.04, Math.min(0.32, Number(factor) || 0.18));\n    var repeat = Math.max(0, Math.min(3, Math.round(Number(passes) || 1)));\n    for (var pass = 0; pass < repeat; pass++) {\n      var next = [];\n      for (var i = 0; i < current.length; i++) {\n        var a = current[i];\n        var b = current[(i + 1) % current.length];\n        next.push({\n          x: Math.round((a.x * (1 - f) + b.x * f) * 10) / 10,\n          y: Math.round((a.y * (1 - f) + b.y * f) * 10) / 10\n        });\n        next.push({\n          x: Math.round((a.x * f + b.x * (1 - f)) * 10) / 10,\n          y: Math.round((a.y * f + b.y * (1 - f)) * 10) / 10\n        });\n      }\n      current = next;\n    }\n    return current;\n  }\n\n  function smoothShapeSvgPath(points, tension) {\n    if (!points || points.length < 3) return \"\";\n    var t = Math.max(0.2, Math.min(1.15, Number(tension) || 0.78));\n    function n(value) {\n      return String(Math.round((Number(value) || 0) * 10) / 10);\n    }\n    var out = [\"M \" + n(points[0].x) + \" \" + n(points[0].y)];\n    for (var i = 0; i < points.length; i++) {\n      var p0 = points[(i - 1 + points.length) % points.length];\n      var p1 = points[i];\n      var p2 = points[(i + 1) % points.length];\n      var p3 = points[(i + 2) % points.length];\n      var c1x = p1.x + (p2.x - p0.x) * t / 6;\n      var c1y = p1.y + (p2.y - p0.y) * t / 6;\n      var c2x = p2.x - (p3.x - p1.x) * t / 6;\n      var c2y = p2.y - (p3.y - p1.y) * t / 6;\n      out.push(\"C \" + n(c1x) + \" \" + n(c1y) + \" \" + n(c2x) + \" \" + n(c2y) + \" \" + n(p2.x) + \" \" + n(p2.y));\n    }\n    out.push(\"Z\");\n    return out.join(\" \");\n  }\n\n  function shapePresetPreviewSvg(preset) {\n    var path = shapePresetPreviewPath(preset);\n    return \"<svg class='massimo-oo__shape-card-svg' viewBox='0 0 96 76' aria-hidden='true' focusable='false'>\"\n      + \"<path class='massimo-oo__shape-card-fill' d='\" + path + \"' fill='#d3b89a' opacity='.9'></path>\"\n      + \"<path class='massimo-oo__shape-card-line' d='\" + path + \"' fill='none' stroke='#8d7862' stroke-width='1.7' stroke-linejoin='round'></path>\"\n      + \"</svg>\";\n  }\n\n  function renderShapePicker(group, root, config, preview) {\n    var categoryWrap = $(group, \"[data-massimo-shape-cats]\");\n    var listWrap = $(group, \"[data-massimo-shape-list]\");\n    if (!categoryWrap || !listWrap) return;\n    var activeCategory = shapePresetCategoryById(state.shapePickerCategory || \"all\");\n    if (!shapePresetItemsForCategory(activeCategory.id).length) {\n      activeCategory = SHAPE_PRESET_CATEGORIES[0];\n    }\n    state.shapePickerCategory = activeCategory.id;\n    categoryWrap.innerHTML = \"\";\n    SHAPE_PRESET_CATEGORIES.forEach(function (category) {\n      var count = shapePresetItemsForCategory(category.id).length;\n      if (!count) return;\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__shape-cat\" + (category.id === activeCategory.id ? \" is-active\" : \"\");\n      btn.dataset.massimoShapeCategory = category.id;\n      btn.textContent = category.id === \"all\" ? category.label : category.label + \" (\" + count + \")\";\n      btn.addEventListener(\"click\", function () {\n        state.shapePickerCategory = category.id;\n        state.shapePickerOpen = true;\n        renderShapeControls(root, config, preview);\n      });\n      categoryWrap.appendChild(btn);\n    });\n\n    listWrap.innerHTML = \"\";\n    shapePresetItemsForCategory(activeCategory.id).forEach(function (item) {\n      var category = shapePresetCategoryFor(item);\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__shape-card\" + (state.shapePresetKey === item.key ? \" is-active\" : \"\");\n      btn.dataset.massimoShapePreset = item.key;\n      btn.setAttribute(\"aria-pressed\", state.shapePresetKey === item.key ? \"true\" : \"false\");\n      btn.innerHTML = \"\"\n        + \"<span class='massimo-oo__shape-card-preview'>\" + shapePresetPreviewSvg(item) + \"</span>\"\n        + \"<span class='massimo-oo__shape-card-body'>\"\n        + \"<strong>\" + escapeHtml(item.label) + \"</strong>\"\n        + \"<span>\" + escapeHtml(category.label) + \"</span>\"\n        + (item.rank ? \"<em>#\" + item.rank + \"</em>\" : \"\")\n        + \"</span>\";\n      btn.addEventListener(\"click\", function () {\n        state.shapePickerOpen = false;\n        setShape(root, config, preview, \"amorf\", item.key);\n      });\n      listWrap.appendChild(btn);\n    });\n  }\n\n  function setShape(root, config, preview, shapeType, presetKey) {\n    var nextShapeType = normalizeShapeType(shapeType);\n    var template = designTemplateById(state.designTemplateId);\n    var exitsDesignMode = isShapeLockedDesignTemplate(template) && nextShapeType !== designTemplateShapeType(template);\n    if (exitsDesignMode) {\n      exitDesignModeForManualShape(root);\n    }\n    if (isShapeLockedDesignTemplate(template)) {\n      lockShapeToDesignTemplate(template);\n      enforceSpecialAmorfEdge(config);\n      root.dataset.shape = state.shapeType;\n      renderEdgeButtons(root, config, preview);\n      renderPatternGrid(root, config);\n      renderShapeControls(root, config, preview);\n      renderPreview(root, preview, { showPreview: true, config: config })\n        .then(function () { refreshZoom(root); })\n        .catch(reportError.bind(null, root));\n      updateSummary(root, config);\n      return;\n    }\n    state.shapeType = nextShapeType;\n    if (state.shapeType !== \"amorf\") state.shapePickerOpen = false;\n    if (presetKey) {\n      var preset = presetByKey(presetKey);\n      state.shapePresetKey = preset.key;\n      state.shapePresetLabel = preset.label;\n      state.shapeRadii = presetRadii(preset);\n      state.shapePickerCategory = shapePresetCategoryFor(preset).id;\n    } else if (state.shapeType === \"amorf\" && !state.shapeRadii) {\n      var current = presetByKey(state.shapePresetKey);\n      state.shapePresetLabel = current.label;\n      state.shapeRadii = presetRadii(current);\n      state.shapePickerCategory = shapePresetCategoryFor(current).id;\n    }\n    enforceSpecialAmorfEdge(config);\n    root.dataset.shape = state.shapeType;\n    renderEdgeButtons(root, config, preview);\n    renderPatternGrid(root, config);\n    renderShapeControls(root, config, preview);\n    if (exitsDesignMode) renderDesignControls(root, config, preview);\n    renderPreview(root, preview, { showPreview: true, config: config })\n      .then(function () { refreshZoom(root); })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, config);\n  }\n\n  function ensureDesignBuilderGroup(root) {\n    var group = $(root, \"[data-massimo-design-builder-group]\");\n    if (group) return group;\n    var edgeGroup = $(root, \"[data-massimo-edge-group]\");\n    if (!edgeGroup || !edgeGroup.parentElement || !edgeGroup.parentElement.parentElement) return null;\n    group = document.createElement(\"div\");\n    group.className = \"massimo-oo__group massimo-oo__design\";\n    group.dataset.massimoDesignBuilderGroup = \"1\";\n    edgeGroup.parentElement.parentElement.insertBefore(group, edgeGroup.parentElement);\n    return group;\n  }\n\n  function setDesignAssignment(root, config, preview, regionId, source) {\n    if (!regionId || !isDesignPatternSource(source)) {\n      window.__MASSIMO_LAST_DESIGN_ASSIGNMENT__ = {\n        regionId: regionId || \"\",\n        blocked: true,\n        reason: \"only-pattern-sources-can-fill-design-regions\",\n        sourceType: source && (source.type || source.sourceType || \"\") || \"\",\n        at: Date.now()\n      };\n      return;\n    }\n    var pv = preview || (root && root.__massimoPreview);\n    var compact = compactDesignAssignment(source);\n    if (!compact) return;\n    state.designManualAssignments = true;\n    state.designGuideAutoPlayed = true;\n    state.designAssignments[regionId] = compact;\n    state.designRegionId = regionId;\n    var zoom = root && root.__massimoZoom;\n    if (zoom) zoom.designRegionSourceInfo = designRegionZoomSourceInfo(root, config, regionId);\n    window.__MASSIMO_LAST_DESIGN_ASSIGNMENT__ = {\n      regionId: regionId,\n      source: state.designAssignments[regionId],\n      templateId: state.designTemplateId,\n      at: Date.now()\n    };\n    /* v169: setDesign() \u00E7a\u011Fr\u0131s\u0131 kald\u0131r\u0131ld\u0131 \u2014 designImgs cache'ini siliyor +\n       paralel render race yarat\u0131yordu. renderPreview tek ba\u015F\u0131na yeterli. */\n    renderDesignControls(root, config, pv);\n    renderPreview(root, pv, { showPreview: true, config: config })\n      .then(function () { refreshZoom(root); })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, config);\n  }\n\n  function sourceCardMarkup(source) {\n    var image = source.image || fallbackSwatch(source);\n    return \"<img src='\" + image.replace(/'/g, \"%27\") + \"' alt=''>\"\n      + \"<span>\" + String(source.label || source.id || \"\").replace(/[<&>\"]/g, \"\") + \"</span>\";\n  }\n\n  /* v165: Design Guide (Tasar\u0131m Rehberi) \u2014 restored from v135.\n     Toggle \"Tasar\u0131m\u0131n\u0131 Kendin Yap\" A\u00C7IK oldu\u011Funda hal\u0131 b\u00F6lgelerini SVG ile vurgular\n     ve bir \"el + kartela\" actor ile s\u00FCr\u00FCkle-b\u0131rak ak\u0131\u015F\u0131n\u0131 g\u00F6sterir. */\n  function svgEl(tag) {\n    return document.createElementNS(\"http://www.w3.org/2000/svg\", tag);\n  }\n\n  function ensureDesignGuideOverlay(root) {\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    if (!previewBox) return null;\n    var overlay = previewBox.querySelector(\"[data-massimo-design-guide-overlay]\");\n    if (overlay) return overlay;\n    overlay = document.createElement(\"div\");\n    overlay.className = \"massimo-oo__design-guide\";\n    overlay.setAttribute(\"data-massimo-design-guide-overlay\", \"\");\n    overlay.setAttribute(\"aria-hidden\", \"true\");\n    overlay.hidden = true;\n    overlay.innerHTML = [\n      '<svg class=\"massimo-oo__design-guide-svg\" data-massimo-design-guide-svg aria-hidden=\"true\" focusable=\"false\">',\n      '<defs data-massimo-design-guide-defs></defs>',\n      '<g data-massimo-design-guide-paths></g>',\n      '</svg>',\n      '<div class=\"massimo-oo__design-guide-actor\" data-massimo-design-guide-actor hidden>',\n      '<span class=\"massimo-oo__design-guide-swatch\" data-massimo-design-guide-swatch></span>',\n      '<span class=\"massimo-oo__design-guide-hand\" data-massimo-design-guide-hand></span>',\n      '</div>'\n    ].join(\"\");\n    previewBox.appendChild(overlay);\n    return overlay;\n  }\n\n  function designGuideCanvasMetrics(root) {\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!previewBox || !canvas || !canvas.width || !canvas.height || !previewBox.getBoundingClientRect || !canvas.getBoundingClientRect) return null;\n    var previewRect = previewBox.getBoundingClientRect();\n    var canvasRect = canvas.getBoundingClientRect();\n    if (!previewRect.width || !previewRect.height || !canvasRect.width || !canvasRect.height) return null;\n    return {\n      left: canvasRect.left - previewRect.left,\n      top: canvasRect.top - previewRect.top,\n      width: canvasRect.width,\n      height: canvasRect.height,\n      canvasW: canvas.width,\n      canvasH: canvas.height\n    };\n  }\n\n  function guidePathPoint(body, nx, ny) {\n    return {\n      x: finiteNumber(body.x, 0) + finiteNumber(nx, 0) * finiteNumber(body.w, 1),\n      y: finiteNumber(body.y, 0) + finiteNumber(ny, 0) * finiteNumber(body.h, 1)\n    };\n  }\n\n  function designGuideRegionPath(region, body) {\n    var path = (region && region.path) || {};\n    if (!body) return \"\";\n    if (path.type === \"polygon\" && Array.isArray(path.points) && path.points.length) {\n      return path.points.map(function (pt, idx) {\n        var p = guidePathPoint(body, pt[0], pt[1]);\n        return (idx ? \"L \" : \"M \") + svgNumber(p.x) + \" \" + svgNumber(p.y);\n      }).join(\" \") + \" Z\";\n    }\n    if (path.type === \"commands\" && Array.isArray(path.commands) && path.commands.length) {\n      return path.commands.map(function (cmd) {\n        var type = cmd[0];\n        if (type === \"Z\") return \"Z\";\n        if (type === \"M\" || type === \"L\") {\n          var p = guidePathPoint(body, cmd[1], cmd[2]);\n          return type + \" \" + svgNumber(p.x) + \" \" + svgNumber(p.y);\n        }\n        if (type === \"Q\") {\n          var q1 = guidePathPoint(body, cmd[1], cmd[2]);\n          var q2 = guidePathPoint(body, cmd[3], cmd[4]);\n          return \"Q \" + svgNumber(q1.x) + \" \" + svgNumber(q1.y) + \" \" + svgNumber(q2.x) + \" \" + svgNumber(q2.y);\n        }\n        if (type === \"C\") {\n          var c1 = guidePathPoint(body, cmd[1], cmd[2]);\n          var c2 = guidePathPoint(body, cmd[3], cmd[4]);\n          var c3 = guidePathPoint(body, cmd[5], cmd[6]);\n          return \"C \" + svgNumber(c1.x) + \" \" + svgNumber(c1.y) + \" \" + svgNumber(c2.x) + \" \" + svgNumber(c2.y) + \" \" + svgNumber(c3.x) + \" \" + svgNumber(c3.y);\n        }\n        return \"\";\n      }).filter(Boolean).join(\" \");\n    }\n    if (path.type === \"cmBox\") {\n      var x = body.x + finiteNumber(path.x, 0) * body.w;\n      var y = body.y + finiteNumber(path.y, 0) * body.h;\n      var w = finiteNumber(path.w, 0) * body.w;\n      var h = finiteNumber(path.h, 0) * body.h;\n      return \"M \" + svgNumber(x) + \" \" + svgNumber(y)\n        + \" H \" + svgNumber(x + w)\n        + \" V \" + svgNumber(y + h)\n        + \" H \" + svgNumber(x)\n        + \" Z\";\n    }\n    return \"\";\n  }\n\n  function pushGuidePoint(bounds, point) {\n    if (!point) return;\n    bounds.minX = Math.min(bounds.minX, point.x);\n    bounds.maxX = Math.max(bounds.maxX, point.x);\n    bounds.minY = Math.min(bounds.minY, point.y);\n    bounds.maxY = Math.max(bounds.maxY, point.y);\n  }\n\n  function designGuideRegionBounds(region, body) {\n    var path = (region && region.path) || {};\n    var bounds = { minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity };\n    if (!body) return null;\n    if (path.type === \"polygon\" && Array.isArray(path.points)) {\n      path.points.forEach(function (pt) { pushGuidePoint(bounds, guidePathPoint(body, pt[0], pt[1])); });\n    } else if (path.type === \"commands\" && Array.isArray(path.commands)) {\n      path.commands.forEach(function (cmd) {\n        for (var i = 1; i < cmd.length; i += 2) {\n          pushGuidePoint(bounds, guidePathPoint(body, cmd[i], cmd[i + 1]));\n        }\n      });\n    } else if (path.type === \"cmBox\") {\n      pushGuidePoint(bounds, guidePathPoint(body, path.x, path.y));\n      pushGuidePoint(bounds, guidePathPoint(body, finiteNumber(path.x, 0) + finiteNumber(path.w, 0), finiteNumber(path.y, 0) + finiteNumber(path.h, 0)));\n    }\n    if (!isFinite(bounds.minX) || !isFinite(bounds.minY) || !isFinite(bounds.maxX) || !isFinite(bounds.maxY)) return null;\n    return {\n      x: bounds.minX,\n      y: bounds.minY,\n      w: Math.max(1, bounds.maxX - bounds.minX),\n      h: Math.max(1, bounds.maxY - bounds.minY),\n      cx: (bounds.minX + bounds.maxX) / 2,\n      cy: (bounds.minY + bounds.maxY) / 2\n    };\n  }\n\n  function designGuideAmorfClipPath(body) {\n    var shape = currentShapePayload();\n    var points = Array.isArray(shape.points) && shape.points.length >= 3\n      ? shape.points.map(function (point) {\n          return {\n            x: body.x + finiteNumber(point[0], 0.5) * body.w,\n            y: body.y + finiteNumber(point[1], 0.5) * body.h\n          };\n        })\n      : null;\n    if (!points) {\n      var radii = Array.isArray(shape.radii) && shape.radii.length ? shape.radii : radiiFromSeed(null);\n      points = radii.map(function (radius, idx) {\n        var angle = idx / radii.length * Math.PI * 2;\n        return {\n          x: body.x + body.w / 2 + Math.cos(angle) * body.w * 0.44 * finiteNumber(radius, 1),\n          y: body.y + body.h / 2 + Math.sin(angle) * body.h * 0.44 * finiteNumber(radius, 1)\n        };\n      });\n      points = softenShapePreviewPoints(points, 0.18, 1);\n    }\n    return smoothShapeSvgPath(points, shape.points ? 0.82 : 0.78);\n  }\n\n  function renderDesignGuideClip(defs, pathsWrap, shapeType, body) {\n    var clipId = \"massimo-design-guide-clip-\" + (++designGuideIdSeq);\n    var clip = svgEl(\"clipPath\");\n    var clipShape = null;\n    if (shapeType === \"oval\") {\n      clipShape = svgEl(\"ellipse\");\n      clipShape.setAttribute(\"cx\", svgNumber(body.x + body.w / 2));\n      clipShape.setAttribute(\"cy\", svgNumber(body.y + body.h / 2));\n      clipShape.setAttribute(\"rx\", svgNumber(body.w / 2));\n      clipShape.setAttribute(\"ry\", svgNumber(body.h / 2));\n    } else if (shapeType === \"yuvarlak\") {\n      clipShape = svgEl(\"circle\");\n      clipShape.setAttribute(\"cx\", svgNumber(body.x + body.w / 2));\n      clipShape.setAttribute(\"cy\", svgNumber(body.y + body.h / 2));\n      clipShape.setAttribute(\"r\", svgNumber(Math.min(body.w, body.h) / 2));\n    } else if (shapeType === \"amorf\") {\n      var clipPath = designGuideAmorfClipPath(body);\n      if (clipPath) {\n        clipShape = svgEl(\"path\");\n        clipShape.setAttribute(\"d\", clipPath);\n      }\n    }\n    if (!clipShape) {\n      pathsWrap.removeAttribute(\"clip-path\");\n      return;\n    }\n    clip.setAttribute(\"id\", clipId);\n    clip.appendChild(clipShape);\n    defs.appendChild(clip);\n    pathsWrap.setAttribute(\"clip-path\", \"url(#\" + clipId + \")\");\n  }\n\n  function designGuidePaintItems(design) {\n    return ((design && design.regions) || []).map(function (region, index) {\n      return {\n        region: region,\n        index: index,\n        z: finiteNumber(region && region.zIndex, index)\n      };\n    }).sort(function (a, b) {\n      if (a.z !== b.z) return a.z - b.z;\n      return a.index - b.index;\n    });\n  }\n\n  function renderDesignGuideVisibleMask(defs, itemIndex, paintItems, body) {\n    var maskId = \"massimo-design-guide-visible-\" + (++designGuideIdSeq);\n    var mask = svgEl(\"mask\");\n    var white = svgEl(\"rect\");\n    mask.setAttribute(\"id\", maskId);\n    mask.setAttribute(\"maskUnits\", \"userSpaceOnUse\");\n    white.setAttribute(\"x\", \"-10000\");\n    white.setAttribute(\"y\", \"-10000\");\n    white.setAttribute(\"width\", \"20000\");\n    white.setAttribute(\"height\", \"20000\");\n    white.setAttribute(\"fill\", \"#fff\");\n    mask.appendChild(white);\n    for (var i = itemIndex + 1; i < paintItems.length; i++) {\n      var d = designGuideRegionPath(paintItems[i].region, body);\n      if (!d) continue;\n      var occluder = svgEl(\"path\");\n      occluder.setAttribute(\"d\", d);\n      occluder.setAttribute(\"fill\", \"#000\");\n      occluder.setAttribute(\"stroke\", \"#000\");\n      occluder.setAttribute(\"stroke-width\", \"8\");\n      occluder.setAttribute(\"stroke-linejoin\", \"round\");\n      occluder.setAttribute(\"stroke-linecap\", \"round\");\n      mask.appendChild(occluder);\n    }\n    defs.appendChild(mask);\n    return \"url(#\" + maskId + \")\";\n  }\n\n  function syncDesignGuideOverlay(root) {\n    var overlay = ensureDesignGuideOverlay(root);\n    if (!overlay) return null;\n    var config = (root && root.__massimoConfig) || {};\n    var design = currentDesignPayload(config);\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__;\n    var metrics = designGuideCanvasMetrics(root);\n    if (!state.designMode || !state.previewVisible || !design.active || !last || !metrics || !(design.regions || []).length) {\n      overlay.hidden = true;\n      return overlay;\n    }\n    var body = designHitBody(last);\n    if (!body) {\n      overlay.hidden = true;\n      return overlay;\n    }\n    overlay.hidden = false;\n    overlay.style.left = metrics.left.toFixed(2) + \"px\";\n    overlay.style.top = metrics.top.toFixed(2) + \"px\";\n    overlay.style.width = metrics.width.toFixed(2) + \"px\";\n    overlay.style.height = metrics.height.toFixed(2) + \"px\";\n    overlay.dataset.canvasWidth = String(metrics.canvasW);\n    overlay.dataset.canvasHeight = String(metrics.canvasH);\n    overlay.dataset.templateId = design.templateId || \"\";\n    /* v166: Kullan\u0131c\u0131 \u00E7izgileri gizlediyse SVG'yi gizle (actor g\u00F6r\u00FCn\u00FCr kal\u0131r) */\n    overlay.classList.toggle(\"is-lines-hidden\", !!state.designGuideLinesHidden);\n\n    var svg = overlay.querySelector(\"[data-massimo-design-guide-svg]\");\n    var defs = overlay.querySelector(\"[data-massimo-design-guide-defs]\");\n    var pathsWrap = overlay.querySelector(\"[data-massimo-design-guide-paths]\");\n    if (!svg || !defs || !pathsWrap) return overlay;\n    svg.setAttribute(\"viewBox\", \"0 0 \" + metrics.canvasW + \" \" + metrics.canvasH);\n    defs.innerHTML = \"\";\n    pathsWrap.innerHTML = \"\";\n    var guideShapeType = normalizeShapeType(\n      (design.shape && design.shape.type)\n      || (last.design && last.design.shape && last.design.shape.type)\n      || (last.design && last.design.shapeType)\n      || last.shapeType\n    );\n    if (design.cutoutOutsideRegions && !design.clipCutoutToShape) {\n      pathsWrap.removeAttribute(\"clip-path\");\n    } else {\n      renderDesignGuideClip(defs, pathsWrap, guideShapeType, body);\n    }\n\n    var paintItems = design.cutoutOutsideRegions ? designGuidePaintItems(design) : (design.regions || []).map(function (region, index) {\n      return { region: region, index: index, z: index };\n    });\n    paintItems.forEach(function (item, paintIndex) {\n      var region = item.region;\n      var d = designGuideRegionPath(region, body);\n      if (!d) return;\n      var path = svgEl(\"path\");\n      var bounds = designGuideRegionBounds(region, body);\n      path.setAttribute(\"d\", d);\n      path.setAttribute(\"class\", \"massimo-oo__design-guide-region\"\n        + (region.id === state.designRegionId ? \" is-active\" : \"\")\n        + (design.assignments && design.assignments[region.id] ? \" is-assigned\" : \"\"));\n      path.setAttribute(\"data-massimo-design-guide-region\", region.id || \"\");\n      path.setAttribute(\"aria-label\", region.label || region.id || \"\");\n      if (design.cutoutOutsideRegions && design.preserveRegionGaps !== false) {\n        path.setAttribute(\"mask\", renderDesignGuideVisibleMask(defs, paintIndex, paintItems, body));\n      }\n      if (bounds) {\n        path.dataset.guideCx = String(bounds.cx);\n        path.dataset.guideCy = String(bounds.cy);\n      }\n      pathsWrap.appendChild(path);\n    });\n\n    window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n      templateId: design.templateId,\n      regionCount: (design.regions || []).length,\n      visible: !overlay.hidden,\n      at: Date.now()\n    });\n    return overlay;\n  }\n\n  function firstEmptyDesignRegion(design) {\n    var assignments = (design && design.assignments) || {};\n    var regions = (design && design.regions) || [];\n    for (var i = 0; i < regions.length; i++) {\n      if (!assignments[regions[i].id]) return regions[i];\n    }\n    return null;\n  }\n\n  function firstDifferentCordobaDesignSource(config) {\n    var groups = groupedProducts();\n    var products = groups.cordoba && groups.cordoba.products ? groups.cordoba.products : [];\n    var activeKey = productKey(config && config.qualityCode, config && config.patternCode);\n    var fallback = null;\n    for (var i = 0; i < products.length; i++) {\n      var source = productConfigToDesignSource(products[i]);\n      if (!source.image) continue;\n      if (!fallback) fallback = source;\n      if (products[i].key !== activeKey) return source;\n    }\n    return fallback;\n  }\n\n  function shuffledDesignGuideSources(items) {\n    var out = (items || []).slice();\n    for (var i = out.length - 1; i > 0; i--) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var tmp = out[i];\n      out[i] = out[j];\n      out[j] = tmp;\n    }\n    return out;\n  }\n\n  function randomDesignGuideSources(config, count) {\n    var activeKey = productKey(config && config.qualityCode, config && config.patternCode);\n    var sources = designSources(config).filter(function (source) {\n      if (!isDesignPatternSource(source)) return false;\n      return !!(source.image || source.patternImage || source.src);\n    });\n    if (!sources.length) return [];\n    var alternatives = sources.filter(function (source) {\n      return String(source.id || \"\").toLowerCase() !== String(activeKey || \"\").toLowerCase()\n        && !isBaseDesignAssignment(config || {}, source);\n    });\n    var pool = alternatives.length ? alternatives : sources;\n    var out = [];\n    var round = shuffledDesignGuideSources(pool);\n    for (var i = 0; i < count; i++) {\n      if (!round.length || i % round.length === 0) round = shuffledDesignGuideSources(pool);\n      out.push(normalizeDesignGuideSource(round[i % round.length]));\n    }\n    return out;\n  }\n\n  function domDesignGuideSources(root) {\n    if (!root) return [];\n    return $all(root, \".massimo-oo-pattern\").map(function (btn) {\n      var img = btn.querySelector && btn.querySelector(\"img\");\n      var image = img ? (img.currentSrc || img.src || \"\") : \"\";\n      var id = btn.dataset && (btn.dataset.productKey || btn.dataset.patternKey || btn.dataset.key) || \"\";\n      var label = (btn.textContent || \"\").replace(/\\s+/g, \" \").trim();\n      return {\n        type: \"pattern\",\n        id: id || label,\n        label: label || id || \"Desen\",\n        image: highResDesignImage(image)\n      };\n    }).filter(isDesignPatternSource);\n  }\n\n  function designGuideSourcesForRegions(root, config, count) {\n    var pool = [];\n    var seen = {};\n    function add(source) {\n      source = normalizeDesignGuideSource(source);\n      if (!isDesignPatternSource(source)) return;\n      var key = String(source.id || \"\") + \"|\" + String(source.image || \"\");\n      if (seen[key]) return;\n      seen[key] = true;\n      pool.push(source);\n    }\n    shuffledDesignGuideSources(domDesignGuideSources(root)).forEach(add);\n    randomDesignGuideSources(config, count).forEach(add);\n    if (!pool.length) return [];\n    var out = [];\n    var round = shuffledDesignGuideSources(pool);\n    for (var i = 0; i < count; i++) {\n      if (!round.length || i % round.length === 0) round = shuffledDesignGuideSources(pool);\n      out.push(round[i % round.length]);\n    }\n    return out;\n  }\n\n  function assignAllDesignRegionsNow(root, config, reason) {\n    config = (root && root.__massimoConfig) || config || {};\n    if (!state.designMode || !designEnabledFor(config)) return false;\n    var design = currentDesignPayload(config);\n    var regions = (design && design.active && design.regions ? design.regions : []).slice();\n    if (!regions.length) return false;\n    state.designAssignments = state.designAssignments || {};\n    var assignedCount = regions.filter(function (region) {\n      return !!(state.designAssignments && state.designAssignments[region.id]);\n    }).length;\n    if (assignedCount >= regions.length) return true;\n    var sources = designGuideSourcesForRegions(root, config, regions.length);\n    if (!sources.length) return false;\n    var previousRegionId = state.designRegionId || \"\";\n    var sourceIndex = 0;\n    var changed = false;\n    regions.forEach(function (region, index) {\n      if (!region || !region.id || state.designAssignments[region.id]) return;\n      var source = sources[sourceIndex++] || sources[index] || sources[0];\n      if (commitDesignGuideAssignment(region, source)) changed = true;\n    });\n    if (previousRegionId) state.designRegionId = previousRegionId;\n    else if (regions[0] && regions[0].id && !state.designRegionId) state.designRegionId = regions[0].id;\n    window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n      assigned: true,\n      assignedCount: Object.keys(state.designAssignments || {}).length,\n      regionCount: regions.length,\n      ensured: true,\n      preserveExisting: true,\n      changed: changed,\n      reason: reason || \"auto\",\n      at: Date.now()\n    });\n    return true;\n  }\n\n  function designAssignmentsSignature(root, config) {\n    config = (root && root.__massimoConfig) || config || {};\n    var design = currentDesignPayload(config);\n    var regions = (design && design.active && design.regions ? design.regions : []).slice();\n    return regions.map(function (region) {\n      var item = state.designAssignments && state.designAssignments[region.id] || {};\n      return [\n        region.id || \"\",\n        item.id || \"\",\n        item.label || \"\",\n        item.image || \"\",\n        item.type || item.sourceType || \"\"\n      ].join(\"|\");\n    }).join(\";\");\n  }\n\n  function ensureAllDesignRegionsAssigned(root, config, preview, attempt) {\n    attempt = attempt || 0;\n    config = (root && root.__massimoConfig) || config || {};\n    preview = (root && root.__massimoPreview) || preview;\n    var beforeSignature = designAssignmentsSignature(root, config);\n    if (!assignAllDesignRegionsNow(root, config, \"ensure\")) {\n      if (attempt < 8) {\n        window.setTimeout(function () { ensureAllDesignRegionsAssigned(root, config, preview, attempt + 1); }, 350);\n      }\n      return false;\n    }\n    if (designAssignmentsSignature(root, config) !== beforeSignature) {\n      finishDesignGuideAssignments(root, config, preview);\n    }\n    return true;\n  }\n\n  function scheduleEnsureAllDesignRegionsAssigned(root, config, preview) {\n    if (!state.designMode || !designEnabledFor(config)) return;\n    if (root && root.__massimoEnsureDesignRegionsTimer) {\n      window.clearTimeout(root.__massimoEnsureDesignRegionsTimer);\n    }\n    if (root) {\n      root.__massimoEnsureDesignRegionsTimer = window.setTimeout(function () {\n        root.__massimoEnsureDesignRegionsTimer = 0;\n        ensureAllDesignRegionsAssigned(root, config, preview, 0);\n      }, 650);\n      return;\n    }\n    window.setTimeout(function () { ensureAllDesignRegionsAssigned(root, config, preview, 0); }, 650);\n  }\n\n  function commitDesignGuideAssignment(region, source) {\n    if (!region || !region.id) return false;\n    var compact = compactDesignAssignment(source);\n    if (!compact) return false;\n    state.designAssignments[region.id] = compact;\n    state.designRegionId = region.id;\n    window.__MASSIMO_LAST_DESIGN_ASSIGNMENT__ = {\n      regionId: region.id,\n      source: compact,\n      templateId: state.designTemplateId,\n      at: Date.now()\n    };\n    return true;\n  }\n\n  function finishDesignGuideAssignments(root, config, preview) {\n    var pv = preview || (root && root.__massimoPreview);\n    var overlay = root && $(root, \"[data-massimo-design-guide-overlay]\");\n    if (overlay) {\n      overlay.classList.remove(\"is-playing\");\n      overlay.removeAttribute(\"data-massimo-guide-target\");\n    }\n    $all(root, \".is-guide-source\").forEach(function (btn) { btn.classList.remove(\"is-guide-source\"); });\n    renderDesignControls(root, config, pv);\n    renderPatternGrid(root, config);\n    renderPreview(root, pv, { showPreview: true, config: config })\n      .then(function () {\n        refreshZoom(root);\n        syncDesignGuideOverlay(root);\n        overlay = root && $(root, \"[data-massimo-design-guide-overlay]\");\n        if (overlay) {\n          overlay.classList.remove(\"is-playing\");\n          overlay.removeAttribute(\"data-massimo-guide-target\");\n        }\n      })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, config);\n  }\n\n  function designGuideRegionPoint(overlay, regionId) {\n    var canvasW = finiteNumber(overlay && overlay.dataset.canvasWidth, 1);\n    var canvasH = finiteNumber(overlay && overlay.dataset.canvasHeight, 1);\n    var paths = overlay ? Array.prototype.slice.call(overlay.querySelectorAll(\"[data-massimo-design-guide-region]\")) : [];\n    for (var i = 0; i < paths.length; i++) {\n      if (paths[i].getAttribute(\"data-massimo-design-guide-region\") !== regionId) continue;\n      return {\n        x: finiteNumber(paths[i].dataset.guideCx, canvasW / 2) / canvasW * Math.max(1, overlay.clientWidth || 1),\n        y: finiteNumber(paths[i].dataset.guideCy, canvasH / 2) / canvasH * Math.max(1, overlay.clientHeight || 1)\n      };\n    }\n    return { x: Math.max(1, overlay.clientWidth || 1) / 2, y: Math.max(1, overlay.clientHeight || 1) / 2 };\n  }\n\n  function designGuideStartPoint(overlay, target) {\n    var w = Math.max(1, overlay.clientWidth || 1);\n    var h = Math.max(1, overlay.clientHeight || 1);\n    var fromRight = target.x < w * 0.62;\n    var x = fromRight ? w - 82 : 82;\n    var y = Math.max(58, Math.min(h - 64, target.y - h * 0.26));\n    if (Math.abs(x - target.x) < w * 0.24) {\n      x = target.x > w / 2 ? 82 : w - 82;\n    }\n    return {\n      x: Math.max(58, Math.min(w - 58, x)),\n      y: y\n    };\n  }\n\n  function moveDesignGuideActor(actor, point) {\n    actor.style.setProperty(\"--guide-x\", (point.x || 0).toFixed(1) + \"px\");\n    actor.style.setProperty(\"--guide-y\", (point.y || 0).toFixed(1) + \"px\");\n  }\n\n  /* v167: Actor'u ger\u00E7ek desen butonundan ba\u015Flat\u0131p hal\u0131 b\u00F6lgesine kayan animasyon */\n  function findGuideSwatchButton(root, source) {\n    if (!root || !source) return null;\n    var byKey = source.id ? root.querySelector(\".massimo-oo-pattern[data-product-key=\\\"\" + String(source.id).replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\") : null;\n    if (byKey) return byKey;\n    var all = $all(root, \".massimo-oo-pattern\");\n    for (var i = 0; i < all.length; i++) {\n      if (!all[i].classList.contains(\"is-active\")) return all[i];\n    }\n    return all[0] || null;\n  }\n\n  function guideViewportTarget(overlay, regionId) {\n    if (!overlay) return null;\n    var path = overlay.querySelector(\"[data-massimo-design-guide-region=\\\"\" + String(regionId).replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\");\n    if (!path || !path.getBoundingClientRect) return null;\n    var r = path.getBoundingClientRect();\n    if (!r.width || !r.height) return null;\n    return { x: r.left + r.width / 2, y: r.top + r.height / 2 };\n  }\n\n  function guideViewportStart(btn) {\n    if (!btn || !btn.getBoundingClientRect) return null;\n    var r = btn.getBoundingClientRect();\n    if (!r.width || !r.height) return null;\n    return { x: r.left + r.width / 2, y: r.top + r.height / 2 };\n  }\n\n  function placeDesignGuideActorFixed(actor, point) {\n    actor.style.position = \"fixed\";\n    actor.style.left = \"0px\";\n    actor.style.top = \"0px\";\n    actor.style.zIndex = \"2147483600\";\n    actor.style.setProperty(\"--guide-x\", (point.x || 0).toFixed(1) + \"px\");\n    actor.style.setProperty(\"--guide-y\", (point.y || 0).toFixed(1) + \"px\");\n  }\n\n  function restoreDesignGuideActor(actor, overlay) {\n    if (!actor) return;\n    actor.style.position = \"\";\n    actor.style.left = \"\";\n    actor.style.top = \"\";\n    actor.style.zIndex = \"\";\n    actor.style.removeProperty(\"--guide-x\");\n    actor.style.removeProperty(\"--guide-y\");\n    actor.hidden = true;\n    if (overlay && actor.parentNode !== overlay) {\n      try { overlay.appendChild(actor); } catch (_) {}\n    }\n  }\n\n  function playDesignGuideAllRegions(root, config, preview, options) {\n    options = options || {};\n    config = (root && root.__massimoConfig) || config || {};\n    preview = (root && root.__massimoPreview) || preview;\n    if (!state.designMode || !designEnabledFor(config) || state.designGuidePlaying) return;\n    var design = currentDesignPayload(config);\n    var regions = (design && design.active && design.regions ? design.regions : []).slice();\n    if (!regions.length) return;\n    if (!options.manual && Object.keys(state.designAssignments || {}).length) {\n      ensureAllDesignRegionsAssigned(root, config, preview, 0);\n      return;\n    }\n    var sources = designGuideSourcesForRegions(root, config, regions.length);\n    if (!sources.length) return;\n\n    state.designAssignments = {};\n    state.designRegionId = regions[0] && regions[0].id ? regions[0].id : \"\";\n    regions.forEach(function (region, index) { commitDesignGuideAssignment(region, sources[index] || sources[0]); });\n    window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n      assigned: true,\n      assignedCount: Object.keys(state.designAssignments || {}).length,\n      regionCount: regions.length,\n      instantCommit: true,\n      at: Date.now()\n    });\n    finishDesignGuideAssignments(root, config, preview);\n    if (!options.manual) return;\n    var overlay = syncDesignGuideOverlay(root);\n    if (!overlay || overlay.hidden) {\n      regions.forEach(function (region, index) { commitDesignGuideAssignment(region, sources[index] || sources[0]); });\n      finishDesignGuideAssignments(root, config, preview);\n      return;\n    }\n    var actor = overlay.querySelector(\"[data-massimo-design-guide-actor]\");\n    var swatch = overlay.querySelector(\"[data-massimo-design-guide-swatch]\");\n    if (!actor || !swatch) {\n      regions.forEach(function (region, index) { commitDesignGuideAssignment(region, sources[index] || sources[0]); });\n      finishDesignGuideAssignments(root, config, preview);\n      return;\n    }\n\n    var reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n    var duration = reduceMotion ? 220 : 720;\n    var gap = reduceMotion ? 60 : 140;\n    var templateId = design.templateId;\n    var lastSourceBtn = null;\n\n    try { document.body.appendChild(actor); } catch (_) {}\n    actor.hidden = false;\n    actor.style.setProperty(\"--guide-duration\", duration + \"ms\");\n    actor.classList.remove(\"is-moving\");\n    state.designGuidePlaying = true;\n    overlay.classList.add(\"is-playing\");\n\n    function finish(cancelled) {\n      actor.classList.remove(\"is-moving\");\n      if (overlay) {\n        overlay.classList.remove(\"is-playing\");\n        overlay.removeAttribute(\"data-massimo-guide-target\");\n      }\n      if (lastSourceBtn) lastSourceBtn.classList.remove(\"is-guide-source\");\n      restoreDesignGuideActor(actor, overlay);\n      state.designGuidePlaying = false;\n      window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n        assigned: !cancelled,\n        assignedCount: Object.keys(state.designAssignments || {}).length,\n        regionCount: regions.length,\n        finishedAt: Date.now()\n      });\n      if (!cancelled) finishDesignGuideAssignments(root, config, preview);\n      else syncDesignGuideOverlay(root);\n    }\n\n    function step(index) {\n      if (!state.designMode || state.designTemplateId !== templateId) {\n        finish(true);\n        return;\n      }\n      if (index >= regions.length) {\n        finish(false);\n        return;\n      }\n      var region = regions[index];\n      var source = sources[index] || sources[0];\n      state.designRegionId = region.id;\n      overlay = syncDesignGuideOverlay(root);\n      if (!overlay || overlay.hidden) {\n        finish(true);\n        return;\n      }\n      if (actor.parentNode !== document.body) {\n        try { document.body.appendChild(actor); } catch (_) {}\n      }\n      if (lastSourceBtn) lastSourceBtn.classList.remove(\"is-guide-source\");\n      var sourceBtn = findGuideSwatchButton(root, source);\n      lastSourceBtn = sourceBtn;\n      var target = guideViewportTarget(overlay, region.id);\n      if (!target) {\n        commitDesignGuideAssignment(region, source);\n        syncDesignGuideOverlay(root);\n        window.setTimeout(function () { step(index + 1); }, gap);\n        return;\n      }\n      var start = guideViewportStart(sourceBtn);\n      if (!start) start = { x: target.x - 200, y: Math.max(40, target.y - 200) };\n      swatch.style.backgroundImage = source.image ? \"url(\\\"\" + cssUrl(source.image) + \"\\\")\" : \"\";\n      actor.hidden = false;\n      actor.style.setProperty(\"--guide-duration\", duration + \"ms\");\n      actor.classList.remove(\"is-moving\");\n      placeDesignGuideActorFixed(actor, start);\n      actor.offsetWidth;\n      overlay.classList.add(\"is-playing\");\n      overlay.setAttribute(\"data-massimo-guide-target\", region.id);\n      if (sourceBtn) sourceBtn.classList.add(\"is-guide-source\");\n      window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n        templateId: templateId,\n        targetRegionId: region.id,\n        sourceId: source.id || \"\",\n        assigned: false,\n        assignedCount: Object.keys(state.designAssignments || {}).length,\n        regionCount: regions.length,\n        replay: !!options.manual,\n        at: Date.now()\n      });\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(function () {\n          actor.classList.add(\"is-moving\");\n          placeDesignGuideActorFixed(actor, target);\n        });\n      } else {\n        actor.classList.add(\"is-moving\");\n        placeDesignGuideActorFixed(actor, target);\n      }\n      window.setTimeout(function () {\n        actor.classList.remove(\"is-moving\");\n        overlay.removeAttribute(\"data-massimo-guide-target\");\n        if (sourceBtn) sourceBtn.classList.remove(\"is-guide-source\");\n        var nextDesign = currentDesignPayload(config);\n        var targetStillExists = (nextDesign.regions || []).some(function (item) { return item.id === region.id; });\n        if (state.designMode && state.designTemplateId === templateId && targetStillExists) {\n          commitDesignGuideAssignment(region, source);\n          window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n            assigned: true,\n            assignedCount: Object.keys(state.designAssignments || {}).length,\n            regionCount: regions.length,\n            at: Date.now()\n          });\n          syncDesignGuideOverlay(root);\n          window.setTimeout(function () { step(index + 1); }, gap);\n        } else {\n          finish(true);\n        }\n      }, duration + gap);\n    }\n\n    step(0);\n  }\n\n  function playDesignGuide(root, config, preview, options) {\n    options = options || {};\n    config = (root && root.__massimoConfig) || config || {};\n    preview = (root && root.__massimoPreview) || preview;\n    return playDesignGuideAllRegions(root, config, preview, options);\n    if (!state.designMode || !designEnabledFor(config) || state.designGuidePlaying) return;\n    var design = currentDesignPayload(config);\n    if (!design.active || !(design.regions || []).length) return;\n    var source = firstDifferentCordobaDesignSource(config);\n    if (!source) return;\n    var targetRegion = firstEmptyDesignRegion(design) || design.regions[0];\n    if (!targetRegion) return;\n    var shouldAssign = !design.assignments[targetRegion.id];\n    state.designRegionId = targetRegion.id;\n    var overlay = syncDesignGuideOverlay(root);\n    if (!overlay || overlay.hidden) return;\n    var actor = overlay.querySelector(\"[data-massimo-design-guide-actor]\");\n    var swatch = overlay.querySelector(\"[data-massimo-design-guide-swatch]\");\n    if (!actor || !swatch) return;\n\n    var sourceBtn = findGuideSwatchButton(root, source);\n    var start = guideViewportStart(sourceBtn);\n    var target = guideViewportTarget(overlay, targetRegion.id);\n    if (!target) return;\n    if (!start) {\n      start = { x: target.x - 200, y: Math.max(40, target.y - 200) };\n    }\n\n    var reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n    var duration = reduceMotion ? 360 : 1900;\n    var templateId = design.templateId;\n    swatch.style.backgroundImage = source.image ? \"url(\\\"\" + cssUrl(source.image) + \"\\\")\" : \"\";\n\n    try { document.body.appendChild(actor); } catch (_) {}\n    actor.hidden = false;\n    actor.style.setProperty(\"--guide-duration\", duration + \"ms\");\n    actor.classList.remove(\"is-moving\");\n    placeDesignGuideActorFixed(actor, start);\n    actor.offsetWidth;\n    state.designGuidePlaying = true;\n    overlay.classList.add(\"is-playing\");\n    overlay.setAttribute(\"data-massimo-guide-target\", targetRegion.id);\n    if (sourceBtn) sourceBtn.classList.add(\"is-guide-source\");\n\n    window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n      templateId: templateId,\n      targetRegionId: targetRegion.id,\n      sourceId: source.id || \"\",\n      assigned: false,\n      replay: !!options.manual,\n      at: Date.now()\n    });\n    if (window.requestAnimationFrame) {\n      window.requestAnimationFrame(function () {\n        actor.classList.add(\"is-moving\");\n        placeDesignGuideActorFixed(actor, target);\n      });\n    } else {\n      actor.classList.add(\"is-moving\");\n      placeDesignGuideActorFixed(actor, target);\n    }\n    window.setTimeout(function () {\n      actor.classList.remove(\"is-moving\");\n      overlay.classList.remove(\"is-playing\");\n      overlay.removeAttribute(\"data-massimo-guide-target\");\n      if (sourceBtn) sourceBtn.classList.remove(\"is-guide-source\");\n      restoreDesignGuideActor(actor, overlay);\n      state.designGuidePlaying = false;\n      var nextDesign = currentDesignPayload(config);\n      var targetStillExists = (nextDesign.regions || []).some(function (region) { return region.id === targetRegion.id; });\n      /* v168: \u015Eablon de\u011Fi\u015Fmediyse ve hedef h\u00E2l\u00E2 varsa atamay\u0131 her durumda commit et\n         (eski canAssign yaln\u0131z bo\u015F b\u00F6lgede \u00E7al\u0131\u015F\u0131yordu; art\u0131k \u00FCzerine yaz\u0131labilir) */\n      var canAssign = state.designMode && state.designTemplateId === templateId && targetStillExists;\n      window.__MASSIMO_DESIGN_GUIDE_LAST__ = Object.assign({}, window.__MASSIMO_DESIGN_GUIDE_LAST__ || {}, {\n        assigned: !!canAssign,\n        finishedAt: Date.now()\n      });\n      if (canAssign) {\n        setDesignAssignment(root, config, preview, targetRegion.id, source);\n      } else {\n        syncDesignGuideOverlay(root);\n      }\n    }, duration + 280);\n  }\n\n  function maybePlayInitialDesignGuide(root, config, preview) {\n    if (state.designGuideAutoPlayed) return;\n    state.designGuideAutoPlayed = true;\n    window.setTimeout(function () {\n      playDesignGuide(root, config, preview, { manual: false });\n    }, 420);\n  }\n\n  function svgNumber(value) {\n    var rounded = Math.round((Number(value) || 0) * 100) / 100;\n    return String(rounded);\n  }\n\n  function svgPathForRegion(region) {\n    var path = (region && region.path) || {};\n    if (path.type === \"polygon\" && Array.isArray(path.points) && path.points.length) {\n      return path.points.map(function (pt, idx) {\n        return (idx ? \"L \" : \"M \") + svgNumber(pt[0] * 100) + \" \" + svgNumber(pt[1] * 140);\n      }).join(\" \") + \" Z\";\n    }\n    if (path.type === \"commands\" && Array.isArray(path.commands) && path.commands.length) {\n      return path.commands.map(function (cmd) {\n        var type = cmd[0];\n        if (type === \"Z\") return \"Z\";\n        var parts = [type];\n        for (var i = 1; i < cmd.length; i += 2) {\n          parts.push(svgNumber(cmd[i] * 100));\n          parts.push(svgNumber(cmd[i + 1] * 140));\n        }\n        return parts.join(\" \");\n      }).join(\" \");\n    }\n    if (path.type === \"cmBox\") {\n      var x = (Number(path.x) || 0) * 100;\n      var y = (Number(path.y) || 0) * 140;\n      var w = (Number(path.w) || 0) * 100;\n      var h = (Number(path.h) || 0) * 140;\n      return \"M \" + svgNumber(x) + \" \" + svgNumber(y)\n        + \" H \" + svgNumber(x + w)\n        + \" V \" + svgNumber(y + h)\n        + \" H \" + svgNumber(x)\n        + \" Z\";\n    }\n    return \"M 8 8 H 92 V 132 H 8 Z\";\n  }\n\n  function petalTemplatePreviewPath(template) {\n    var count = designRegionCountForTemplate(template, state.designRegionCount);\n    var points = petalOuterPoints(count).map(function (pt) {\n      return { x: pt[0] * 100, y: pt[1] * 140 };\n    });\n    return smoothShapeSvgPath(points, 0.68);\n  }\n\n  function claudeTemplatePreviewPath(template) {\n    var points = claudeAmorfOuterPoints(claudeAmorfSpec(template)).map(function (pt) {\n      return { x: pt[0] * 100, y: pt[1] * 140 };\n    });\n    return smoothShapeSvgPath(points, 0.7);\n  }\n\n  function templatePreviewOuterElement(template, attrs) {\n    var shape = normalizeShapeType(template && (template.preferredShape || template.outerShape));\n    attrs = attrs ? \" \" + attrs : \"\";\n    if (shape === \"oval\") return \"<ellipse cx='50' cy='70' rx='44' ry='61'\" + attrs + \"></ellipse>\";\n    if (shape === \"yuvarlak\") return \"<circle cx='50' cy='70' r='44'\" + attrs + \"></circle>\";\n    if (shape === \"amorf\") {\n      if (isParametricPetalTemplate(template)) return \"<path d='\" + petalTemplatePreviewPath(template) + \"'\" + attrs + \"></path>\";\n      if (isClaudeAmorfTemplate(template)) return \"<path d='\" + claudeTemplatePreviewPath(template) + \"'\" + attrs + \"></path>\";\n      return \"<path d='M 20 16 C 36 6 67 10 82 28 C 97 46 87 76 92 98 C 97 119 73 135 48 130 C 23 126 8 111 12 86 C 16 62 4 31 20 16 Z'\" + attrs + \"></path>\";\n    }\n    return \"<rect x='7' y='8' width='86' height='124' rx='9'\" + attrs + \"></rect>\";\n  }\n\n  function templatePreviewSvg(template) {\n    var count = designRegionCountForTemplate(template, state.designRegionCount);\n    var regions = designRegionsForTemplate(template, count, 100, 140).slice(0, 10);\n    var clipId = \"massimo-template-clip-\" + String(template && template.id || \"template\").replace(/[^a-z0-9_-]/gi, \"-\");\n    var fills = [\"#efe4d7\", \"#c5a07f\", \"#f5f0e8\", \"#8f5f34\", \"#d8c6b4\", \"#6f7965\", \"#b78762\", \"#b9c7c4\", \"#d2b36f\", \"#7c6b5f\"];\n    var paths = regions.map(function (region, idx) {\n      return \"<path class='massimo-oo__template-svg-region' d='\" + svgPathForRegion(region) + \"' fill='\" + fills[idx % fills.length] + \"' stroke='rgba(48,38,31,.22)' stroke-width='0.75'></path>\";\n    }).join(\"\");\n    return \"<svg class='massimo-oo__template-svg' viewBox='0 0 100 140' aria-hidden='true' focusable='false'>\"\n      + \"<defs><clipPath id='\" + clipId + \"'>\" + templatePreviewOuterElement(template) + \"</clipPath></defs>\"\n      + templatePreviewOuterElement(template, \"class='massimo-oo__template-svg-bg' fill='#fbfaf7' stroke='none'\")\n      + \"<g clip-path='url(#\" + clipId + \")'>\" + paths + \"</g>\"\n      + templatePreviewOuterElement(template, \"class='massimo-oo__template-svg-outline' fill='none' stroke='#6f4c2c' stroke-width='2' vector-effect='non-scaling-stroke'\")\n      + \"</svg>\";\n  }\n\n  function selectDesignTemplate(root, config, preview, item) {\n    state.designTemplateId = item.id;\n    state.designPickerCategory = item.category || state.designPickerCategory || \"panel\";\n    state.designPickerOpen = false;\n    state.designRegionId = \"\";\n    state.designAssignments = {};\n    state.designCornerModes = {};\n    state.designEdgeModes = {};\n    var fixed = templateFixedRegionCount(item);\n    state.designRegionCount = fixed || designRegionCountForTemplate(item, state.designRegionCount);\n    if (item.premium && normalizeShapeType(state.shapeType) === \"amorf\") {\n      state.designPremiumVariant = Object.assign(defaultPremiumVariant(), state.designPremiumVariant || {}, {\n        outerForm: \"selected\"\n      });\n    } else if (item.premium && currentPremiumVariant().outerForm === \"template\" && item.preferredShape) {\n      state.shapeType = item.preferredShape;\n    }\n    if (isParametricPetalTemplate(item) || isClaudeAmorfTemplate(item)) {\n      state.shapeType = \"amorf\";\n      state.shapePresetKey = item.id;\n      state.shapePresetLabel = item.label;\n      state.shapeRadii = null;\n      state.shapePickerOpen = false;\n      enforceSpecialAmorfEdge(config);\n    }\n    renderDesignControls(root, config, preview);\n    renderShapeControls(root, config, preview);\n    renderEdgeButtons(root, config, preview);\n    renderPatternGrid(root, config);\n    renderPreview(root, preview, { showPreview: true, config: config })\n      .then(function () {\n        refreshZoom(root);\n        if (state.designMode) {\n          state.designGuideAutoPlayed = false;\n          maybePlayInitialDesignGuide(root, config, preview);\n        }\n      })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, config);\n  }\n\n  function renderTemplatePicker(group, root, config, preview, template) {\n    var categoryWrap = $(group, \"[data-massimo-template-cats]\");\n    var listWrap = $(group, \"[data-massimo-template-list]\");\n    if (!categoryWrap || !listWrap) return;\n    var activeCategory = templateCategoryById(state.designPickerCategory || (template && template.category) || \"panel\");\n    if (!DESIGN_TEMPLATES.some(function (item) { return item.category === activeCategory.id; })) {\n      activeCategory = DESIGN_TEMPLATE_CATEGORIES[0];\n    }\n    state.designPickerCategory = activeCategory.id;\n    categoryWrap.innerHTML = \"\";\n    DESIGN_TEMPLATE_CATEGORIES.forEach(function (category) {\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__template-cat\" + (category.id === activeCategory.id ? \" is-active\" : \"\");\n      btn.dataset.massimoTemplateCategory = category.id;\n      btn.textContent = category.label;\n      btn.addEventListener(\"click\", function () {\n        state.designPickerCategory = category.id;\n        state.designPickerOpen = true;\n        renderDesignControls(root, config, preview);\n      });\n      categoryWrap.appendChild(btn);\n    });\n    listWrap.innerHTML = \"\";\n    DESIGN_TEMPLATES.filter(function (item) {\n      return item.category === activeCategory.id;\n    }).forEach(function (item) {\n      var count = designRegionCountForTemplate(item, state.designRegionCount);\n      var fixed = 0; // 2026-05-18: sabit kilit kald\u0131r\u0131ld\u0131 \u2014 t\u00FCm \u015Fablonlar art\u0131k esnek\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__template-card\" + (item.id === template.id ? \" is-active\" : \"\");\n      btn.dataset.massimoTemplateCard = item.id;\n      btn.setAttribute(\"aria-pressed\", item.id === template.id ? \"true\" : \"false\");\n      btn.innerHTML = \"\"\n        + \"<span class='massimo-oo__template-preview'>\" + templatePreviewSvg(item) + \"</span>\"\n        + \"<span class='massimo-oo__template-card-body'>\"\n        + \"<strong>\" + escapeHtml(item.label) + \"</strong>\"\n        + \"<span>\" + escapeHtml(templateRegionCountLabel(item, count)) + (fixed ? \" / sabit\" : \"\") + \"</span>\"\n        + \"<em>\" + escapeHtml(templateShapeBadge(item)) + \"</em>\"\n        + \"</span>\";\n      btn.addEventListener(\"click\", function () {\n        selectDesignTemplate(root, config, preview, item);\n      });\n      listWrap.appendChild(btn);\n    });\n  }\n\n  function renderDesignControls(root, config, preview) {\n    var group = ensureDesignBuilderGroup(root);\n    if (!group) return;\n    if (!designEnabledFor(config)) {\n      state.designMode = false;\n      state.designPickerOpen = false;\n      document.body.classList.remove(\"massimo-oo-template-picker-open\");\n      root.classList.remove(\"is-design-assign-mode\");\n      group.hidden = true;\n      group.innerHTML = \"\";\n      /* v165: Design devre d\u0131\u015F\u0131ysa (\u00F6rn. uygunsuz \u00FCr\u00FCn) rehber overlay'i de gizle */\n      setDesignGuideOverlayVisible(root, false);\n      renderPatternGrid(root, config);\n      return;\n    }\n\n    var template = designTemplateById(state.designTemplateId);\n    var premiumActive = isPremiumTemplate(template);\n    var premiumVariant = currentPremiumVariant();\n    var fixedRegionCount = templateFixedRegionCount(template);\n    state.designRegionCount = fixedRegionCount || designRegionCountForTemplate(template, state.designRegionCount);\n    var effectiveRegionCount = designRegionCountForTemplate(template, state.designRegionCount);\n    var design = currentDesignPayload(config);\n    if (!state.designRegionId || !(design.regions || []).some(function (r) { return r.id === state.designRegionId; })) {\n      state.designRegionId = design.regions && design.regions[0] ? design.regions[0].id : \"\";\n    }\n    var selectedRegion = (design.regions || []).find(function (r) { return r.id === state.designRegionId; }) || design.regions[0];\n    var selectedCorners = selectedRegion ? selectedRegion.cornerModes : emptyCornerModes(\"square\");\n    var selectedEdges = selectedRegion ? selectedRegion.edgeModes : emptyEdgeModes(\"straight\");\n    var selectedCornerValue = state.designCornerTarget === \"all\"\n      ? selectedCorners.topLeft\n      : selectedCorners[normalizeCornerTarget(state.designCornerTarget)];\n    var selectedEdgeValue = state.designEdgeTarget === \"all\"\n      ? selectedEdges.top\n      : selectedEdges[normalizeEdgeTarget(state.designEdgeTarget)];\n    group.hidden = false;\n    group.innerHTML = \"\"\n      + \"<div class='massimo-oo__design-head'>\"\n      + \"<span class='massimo-oo__label'>Tasar\u0131m\u0131n\u0131 Kendin Yap</span>\"\n      + \"<span class='massimo-oo__design-badge'\" + (state.designMode ? \"\" : \" hidden\") + \">Tasar\u0131m modu a\u00E7\u0131k</span>\"\n      + \"<button class='massimo-oo__btn massimo-oo__design-toggle\" + (state.designMode ? \" is-active\" : \"\") + \"' type='button' data-massimo-design-toggle>\"\n      + (state.designMode ? \"A\u00E7\u0131k\" : \"A\u00E7\") + \"</button>\"\n      + \"</div>\"\n      + \"<div class='massimo-oo__design-body'\" + (state.designMode ? \"\" : \" hidden\") + \">\"\n      + \"<div class='massimo-oo__design-title'>\u015Eablon</div>\"\n      + \"<div class='massimo-oo__template-summary'>\"\n      + \"<button class='massimo-oo__template-current' type='button' data-massimo-template-picker-open>\"\n      + \"<span class='massimo-oo__template-current-name'>\" + escapeHtml(template.label) + \"</span>\"\n      + \"<span class='massimo-oo__template-current-meta'>\" + escapeHtml(templateCategoryLabel(template)) + \" / \" + escapeHtml(templateRegionCountLabel(template, effectiveRegionCount)) + \" / \" + escapeHtml(templateShapeBadge(template)) + \"</span>\"\n      + \"</button>\"\n      + \"<button class='massimo-oo__btn massimo-oo__template-open' type='button' data-massimo-template-picker-open>\u015Eablon Se\u00E7</button>\"\n      + \"</div>\"\n      + \"<div class='massimo-oo__design-guide-controls'>\"\n      + \"<button class='massimo-oo__btn massimo-oo__design-guide-replay' type='button' data-massimo-design-guide-replay>Rehberi G\u00F6ster</button>\"\n      + \"<button class='massimo-oo__btn massimo-oo__design-guide-lines-toggle\" + (state.designGuideLinesHidden ? \" is-off\" : \"\") + \"' type='button' data-massimo-design-guide-lines-toggle aria-pressed='\" + (state.designGuideLinesHidden ? \"true\" : \"false\") + \"'>\" + (state.designGuideLinesHidden ? \"Diki\u015F \u0130zlerini G\u00F6ster\" : \"Diki\u015F \u0130zlerini Gizle\") + \"</button>\"\n      + \"</div>\"\n      + \"<div class='massimo-oo__template-picker' data-massimo-template-picker\" + (state.designPickerOpen && state.designMode ? \"\" : \" hidden\") + \">\"\n      + \"<button class='massimo-oo__template-backdrop' type='button' data-massimo-template-picker-close aria-label='\u015Eablon panelini kapat'></button>\"\n      + \"<div class='massimo-oo__template-drawer' role='dialog' aria-modal='true' aria-label='\u015Eablon se\u00E7'>\"\n      + \"<div class='massimo-oo__template-drawer-head'><div><strong>\u015Eablon Se\u00E7</strong><span>\" + escapeHtml(templateCategoryLabel(template)) + \"</span></div><button class='massimo-oo__template-close' type='button' data-massimo-template-picker-close aria-label='Kapat'>Kapat</button></div>\"\n      + \"<div class='massimo-oo__template-cats' data-massimo-template-cats></div>\"\n      + \"<div class='massimo-oo__template-list' data-massimo-template-list></div>\"\n      + \"</div>\"\n      + \"</div>\"\n      + \"<div class='massimo-oo__design-title'>B\u00F6lge Say\u0131s\u0131</div>\"\n      + (fixedRegionCount\n        ? \"<div class='massimo-oo__design-fixed-count' data-massimo-design-fixed-count>\" + fixedRegionCount + \" sabit b\u00F6lge</div>\"\n        : \"<div class='massimo-oo__design-counts' data-massimo-design-counts></div>\")\n      + \"<div class='massimo-oo__design-title'>B\u00F6lge</div>\"\n      + \"<div class='massimo-oo__design-regions' data-massimo-design-regions></div>\"\n      + \"<div class='massimo-oo__design-measure' data-massimo-design-measure>\"\n      + (premiumActive ? \"Premium \u00FCretim: \" + premiumVariantLabel(premiumVariant) + \"<br>\" : \"\")\n      + (selectedRegion ? selectedRegion.label + \" / \" + selectedRegion.widthCm + \" x \" + selectedRegion.heightCm + \" cm / X \" + selectedRegion.xCm + \" cm / Y \" + selectedRegion.yCm + \" cm\" : \"\")\n      + \"</div>\"\n      + (fixedRegionCount ? \"\" : \"<button class='massimo-oo__btn massimo-oo__design-delete' type='button' data-massimo-design-delete-region\" + (state.designRegionCount <= 1 ? \" disabled\" : \"\") + \">Se\u00E7ili b\u00F6lgeyi sil</button>\")\n      + (premiumActive\n        ? \"<div class='massimo-oo__design-title'>Varyasyon</div>\"\n          + \"<div class='massimo-oo__design-options' data-massimo-premium-outer></div>\"\n          + \"<div class='massimo-oo__design-options' data-massimo-premium-seams></div>\"\n          + \"<div class='massimo-oo__design-options' data-massimo-premium-inserts></div>\"\n        : \"\")\n      // 2026-05-18: K\u00F6\u015Fe Tipleri + Kenar Tipleri b\u00F6l\u00FCmleri kald\u0131r\u0131ld\u0131 (kullan\u0131lm\u0131yor)\n      + \"</div>\";\n\n    var toggle = $(group, \"[data-massimo-design-toggle]\");\n    if (toggle) {\n      toggle.addEventListener(\"click\", function () {\n        state.designMode = !state.designMode;\n        if (!state.designMode) {\n          state.designPickerOpen = false;\n          /* v165: Toggle KAPALI \u2192 rehber overlay'i gizle */\n          setDesignGuideOverlayVisible(root, false);\n        } else {\n          /* v165: Toggle A\u00C7IK \u2192 her a\u00E7\u0131l\u0131\u015Fta rehberi yeniden \u00E7al\u0131\u015Ft\u0131r */\n          state.designGuideAutoPlayed = false;\n        }\n        renderPatternGrid(root, config);\n        renderShapeControls(root, config, preview);\n        renderDesignControls(root, config, preview);\n        renderPreview(root, preview, { showPreview: true, config: config })\n          .then(function () {\n            refreshZoom(root);\n            /* v165: Render tamamlan\u0131nca rehber animasyonunu tetikle */\n            if (state.designMode) maybePlayInitialDesignGuide(root, config, preview);\n          })\n          .catch(reportError.bind(null, root));\n        updateSummary(root, config);\n      });\n    }\n\n    document.body.classList.toggle(\"massimo-oo-template-picker-open\", !!(state.designPickerOpen && state.designMode));\n\n    $all(group, \"[data-massimo-template-picker-open]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        state.designPickerCategory = template.category || state.designPickerCategory || \"panel\";\n        state.designPickerOpen = true;\n        renderDesignControls(root, config, preview);\n      });\n    });\n\n    $all(group, \"[data-massimo-template-picker-close]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        state.designPickerOpen = false;\n        renderDesignControls(root, config, preview);\n      });\n    });\n\n    /* v165: \"Rehberi G\u00F6ster\" butonu \u2014 rehber animasyonunu manuel replay */\n    var guideReplay = $(group, \"[data-massimo-design-guide-replay]\");\n    if (guideReplay) {\n      guideReplay.addEventListener(\"click\", function () {\n        ensureAllDesignRegionsAssigned(root, config, preview, 0);\n        playDesignGuide(root, config, preview, { manual: true });\n      });\n    }\n\n    /* v166: \"\u00C7izgileri Gizle/G\u00F6ster\" toggle \u2014 b\u00F6lge \u00E7er\u00E7evelerinin g\u00F6r\u00FCn\u00FCrl\u00FC\u011F\u00FC */\n    var linesToggle = $(group, \"[data-massimo-design-guide-lines-toggle]\");\n    if (linesToggle) {\n      linesToggle.addEventListener(\"click\", function () {\n        state.designGuideLinesHidden = !state.designGuideLinesHidden;\n        renderDesignControls(root, config, preview);\n        syncDesignGuideOverlay(root);\n      });\n    }\n\n    renderTemplatePicker(group, root, config, preview, template);\n\n    var countWrap = $(group, \"[data-massimo-design-counts]\");\n    if (countWrap) {\n      templateCountOptions(template).forEach(function (count) {\n        var btn = document.createElement(\"button\");\n        btn.type = \"button\";\n        btn.className = \"massimo-oo__chip\" + (count === effectiveRegionCount ? \" is-active\" : \"\");\n        btn.textContent = String(count);\n        btn.addEventListener(\"click\", function () {\n          state.designRegionCount = count;\n          state.designRegionId = \"\";\n          state.designAssignments = {};\n          state.designGuideAutoPlayed = false;\n          renderDesignControls(root, config, preview);\n          renderPatternGrid(root, config);\n          renderPreview(root, preview, { showPreview: true, config: config })\n            .then(function () {\n              refreshZoom(root);\n              if (state.designMode) maybePlayInitialDesignGuide(root, config, preview);\n            })\n            .catch(reportError.bind(null, root));\n          updateSummary(root, config);\n        });\n        countWrap.appendChild(btn);\n      });\n    }\n\n    function bindPremiumOptions(selector, options, key) {\n      var wrap = $(group, selector);\n      if (!wrap) return;\n      options.forEach(function (option) {\n        var btn = document.createElement(\"button\");\n        btn.type = \"button\";\n        btn.className = \"massimo-oo__chip\" + (premiumVariant[key] === option.value ? \" is-active\" : \"\");\n        btn.textContent = option.label;\n        btn.addEventListener(\"click\", function () {\n          state.designPremiumVariant = Object.assign(defaultPremiumVariant(), state.designPremiumVariant || {});\n          state.designPremiumVariant[key] = option.value;\n          if (key === \"outerForm\" && option.value === \"template\" && template.preferredShape) {\n            state.shapeType = template.preferredShape;\n          }\n          state.designRegionId = \"\";\n          renderDesignControls(root, config, preview);\n          renderShapeControls(root, config, preview);\n          renderPatternGrid(root, config);\n          renderPreview(root, preview, { showPreview: true, config: config })\n            .then(function () { refreshZoom(root); })\n            .catch(reportError.bind(null, root));\n          updateSummary(root, config);\n        });\n        wrap.appendChild(btn);\n      });\n    }\n\n    if (premiumActive) {\n      bindPremiumOptions(\"[data-massimo-premium-outer]\", [\n        { value: \"template\", label: \"\u015Eablon d\u0131\u015F formu\" },\n        { value: \"selected\", label: \"Se\u00E7ili \u015Fekil\" }\n      ], \"outerForm\");\n      bindPremiumOptions(\"[data-massimo-premium-seams]\", [\n        { value: \"balanced\", label: \"Dengeli seam\" },\n        { value: \"angular\", label: \"Keskin seam\" },\n        { value: \"curved\", label: \"Yayl\u0131 seam\" }\n      ], \"seamStyle\");\n      bindPremiumOptions(\"[data-massimo-premium-inserts]\", [\n        { value: \"none\", label: \"Ek yok\" },\n        { value: \"oval\", label: \"Oval ekle\" },\n        { value: \"triangle\", label: \"\u00DC\u00E7gen ekle\" },\n        { value: \"polygon\", label: \"Polygon ekle\" }\n      ], \"insertShape\");\n    }\n\n    var regionWrap = $(group, \"[data-massimo-design-regions]\");\n    (design.regions || []).forEach(function (region) {\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__chip\" + (region.id === state.designRegionId ? \" is-active\" : \"\");\n      btn.dataset.massimoDesignRegion = region.id;\n      btn.textContent = region.label;\n      btn.addEventListener(\"click\", function () {\n        state.designRegionId = region.id;\n        renderDesignControls(root, config, preview);\n        renderPatternGrid(root, config);\n      });\n      btn.addEventListener(\"dragover\", function (event) {\n        event.preventDefault();\n        btn.classList.add(\"is-drop\");\n      });\n      btn.addEventListener(\"dragleave\", function () {\n        btn.classList.remove(\"is-drop\");\n      });\n      btn.addEventListener(\"drop\", function (event) {\n        event.preventDefault();\n        btn.classList.remove(\"is-drop\");\n        try {\n          var source = JSON.parse(event.dataTransfer.getData(\"application/json\") || \"{}\");\n          if (isDesignPatternSource(source)) setDesignAssignment(root, config, preview, region.id, source);\n        } catch (err) {\n          reportError(root, err);\n        }\n      });\n      regionWrap.appendChild(btn);\n    });\n\n    var deleteRegion = $(group, \"[data-massimo-design-delete-region]\");\n    if (deleteRegion) {\n      deleteRegion.addEventListener(\"click\", function () {\n        if (fixedRegionCount || state.designRegionCount <= 1) return;\n        state.designRegionCount = clampDesignRegionCount(state.designRegionCount - 1);\n        state.designRegionId = \"\";\n        var nextDesign = currentDesignPayload(config);\n        var allowed = {};\n        (nextDesign.regions || []).forEach(function (region) { if (state.designAssignments[region.id]) allowed[region.id] = state.designAssignments[region.id]; });\n        state.designAssignments = allowed;\n        renderDesignControls(root, config, preview);\n        renderPatternGrid(root, config);\n        renderPreview(root, preview, { showPreview: true, config: config })\n          .then(function () { refreshZoom(root); })\n          .catch(reportError.bind(null, root));\n        updateSummary(root, config);\n      });\n    }\n\n    // 2026-05-18: K\u00F6\u015Fe Tipleri + Kenar Tipleri binding bloklar\u0131 kald\u0131r\u0131ld\u0131\n    // (UI b\u00F6l\u00FCmleri yukar\u0131da template'ten silindi, hedef elementler art\u0131k yok).\n    // Region geometrisi varsay\u0131lan kare k\u00F6\u015Fe + d\u00FCz kenar ile render edilir.\n    scheduleEnsureAllDesignRegionsAssigned(root, config, preview);\n  }\n\n  function designHitBody(last) {\n    if (!last) return null;\n    var design = last.design || {};\n    var base = design.shapeType && design.shapeType !== \"dikdortgen\" && last.shape ? last.shape : last.bounds;\n    if (!base) return null;\n    var edgeDepth = (design.cutoutOutsideRegions || last.edgeType === \"overlok\") ? 0 : finiteNumber(last.edgeMetrics && last.edgeMetrics.visualDepth, 0);\n    return {\n      x: finiteNumber(base.x, 0) + edgeDepth,\n      y: finiteNumber(base.y, 0) + edgeDepth,\n      w: Math.max(1, finiteNumber(base.w, 1) - edgeDepth * 2),\n      h: Math.max(1, finiteNumber(base.h, 1) - edgeDepth * 2)\n    };\n  }\n\n  function designHitPoint(body, nx, ny) {\n    return {\n      x: body.x + finiteNumber(nx, 0) * body.w,\n      y: body.y + finiteNumber(ny, 0) * body.h\n    };\n  }\n\n  function traceCommandHitPath(ctx, commands, body) {\n    (commands || []).forEach(function (cmd) {\n      var type = cmd[0];\n      if (type === \"M\") {\n        var m = designHitPoint(body, cmd[1], cmd[2]);\n        ctx.moveTo(m.x, m.y);\n      } else if (type === \"L\") {\n        var l = designHitPoint(body, cmd[1], cmd[2]);\n        ctx.lineTo(l.x, l.y);\n      } else if (type === \"Q\") {\n        var c = designHitPoint(body, cmd[1], cmd[2]);\n        var e = designHitPoint(body, cmd[3], cmd[4]);\n        ctx.quadraticCurveTo(c.x, c.y, e.x, e.y);\n      } else if (type === \"C\") {\n        var c1 = designHitPoint(body, cmd[1], cmd[2]);\n        var c2 = designHitPoint(body, cmd[3], cmd[4]);\n        var ce = designHitPoint(body, cmd[5], cmd[6]);\n        ctx.bezierCurveTo(c1.x, c1.y, c2.x, c2.y, ce.x, ce.y);\n      } else if (type === \"Z\") {\n        ctx.closePath();\n      }\n    });\n  }\n\n  function traceRegionHitPath(ctx, region, body) {\n    var path = (region && region.path) || {};\n    ctx.beginPath();\n    if (path.type === \"commands\" && Array.isArray(path.commands) && path.commands.length) {\n      traceCommandHitPath(ctx, path.commands, body);\n      ctx.closePath();\n      return true;\n    }\n    if (path.type === \"polygon\" && Array.isArray(path.points) && path.points.length) {\n      path.points.forEach(function (pt, idx) {\n        var p = designHitPoint(body, pt[0], pt[1]);\n        if (idx === 0) ctx.moveTo(p.x, p.y);\n        else ctx.lineTo(p.x, p.y);\n      });\n      ctx.closePath();\n      return true;\n    }\n    if (path.type === \"cmBox\") {\n      ctx.rect(\n        body.x + finiteNumber(path.x, 0) * body.w,\n        body.y + finiteNumber(path.y, 0) * body.h,\n        finiteNumber(path.w, 0) * body.w,\n        finiteNumber(path.h, 0) * body.h\n      );\n      ctx.closePath();\n      return true;\n    }\n    return false;\n  }\n\n  function exactRegionIdFromCanvasPoint(root, x, y, last) {\n    var canvas = $(root, \"[data-massimo-preview-canvas]\");\n    var config = root.__massimoConfig || {};\n    var design = currentDesignPayload(config);\n    var regions = design && design.regions ? design.regions : [];\n    var body = designHitBody(last);\n    if (!canvas || !regions.length || !body) return \"\";\n    var hitCanvas = canvas.__massimoRegionHitCanvas;\n    if (!hitCanvas) {\n      hitCanvas = document.createElement(\"canvas\");\n      canvas.__massimoRegionHitCanvas = hitCanvas;\n    }\n    if (hitCanvas.width !== canvas.width) hitCanvas.width = canvas.width;\n    if (hitCanvas.height !== canvas.height) hitCanvas.height = canvas.height;\n    var ctx = hitCanvas.getContext(\"2d\");\n    for (var i = regions.length - 1; i >= 0; i--) {\n      if (!traceRegionHitPath(ctx, regions[i], body)) continue;\n      if (ctx.isPointInPath(x, y)) return regions[i].id;\n    }\n    return \"\";\n  }\n\n  function regionIdFromCanvasEvent(root, event) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    var last = window.__MASSIMO_OZEL_OLCU_LAST__;\n    var regions = last && last.design && last.design.regionPixels;\n    if (!canvas || !event) return \"\";\n    var target = event && event.currentTarget && typeof event.currentTarget.getBoundingClientRect === \"function\"\n      ? event.currentTarget\n      : null;\n    var rect = canvas.getBoundingClientRect();\n    if ((!rect.width || !rect.height) && target) rect = target.getBoundingClientRect();\n    if (!rect.width || !rect.height || !canvas.width || !canvas.height) return \"\";\n    var x = (event.clientX - rect.left) * canvas.width / Math.max(1, rect.width);\n    var y = (event.clientY - rect.top) * canvas.height / Math.max(1, rect.height);\n    var exact = exactRegionIdFromCanvasPoint(root, x, y, last);\n    if (exact) {\n      window.__MASSIMO_LAST_REGION_HIT__ = { regionId: exact, mode: \"path\", x: Math.round(x), y: Math.round(y), at: Date.now() };\n      return exact;\n    }\n    if (!regions || !regions.length) return \"\";\n    for (var i = regions.length - 1; i >= 0; i--) {\n      var r = regions[i];\n      if (x >= r.x && x <= r.x + r.w && y >= r.y && y <= r.y + r.h) {\n        window.__MASSIMO_LAST_REGION_HIT__ = { regionId: r.id, mode: \"bbox\", x: Math.round(x), y: Math.round(y), at: Date.now() };\n        return r.id;\n      }\n    }\n    return \"\";\n  }\n\n  function setupDesignCanvasSelection(root, config, preview) {\n    var canvas = $(root, \"[data-massimo-preview-canvas]\");\n    if (!canvas) return;\n    var targets = [canvas, $(root, \"[data-massimo-main-image]\")].filter(function (item, idx, arr) {\n      return item && arr.indexOf(item) === idx;\n    });\n    function bindTarget(target) {\n      if (target.__massimoDesignSelectionBound) return;\n      target.__massimoDesignSelectionBound = true;\n      target.addEventListener(\"click\", function (event) {\n      if (!state.designMode || !designEnabledFor(root.__massimoConfig || config)) return;\n      var regionId = regionIdFromCanvasEvent(root, event);\n      if (!regionId) return;\n      state.designRegionId = regionId;\n      var zoom = root && root.__massimoZoom;\n      if (zoom) zoom.designRegionSourceInfo = designRegionZoomSourceInfo(root, root.__massimoConfig || config, regionId);\n      renderDesignControls(root, root.__massimoConfig || config, root.__massimoPreview || preview);\n      renderPatternGrid(root, root.__massimoConfig || config);\n      /* v165: B\u00F6lge se\u00E7imi de\u011Fi\u015Fti \u2192 rehber overlay vurgulanan b\u00F6lgeyi g\u00FCncellesin */\n      syncDesignGuideOverlay(root);\n      });\n      target.addEventListener(\"dragover\", function (event) {\n      if (!state.designMode) return;\n      event.preventDefault();\n      });\n      target.addEventListener(\"drop\", function (event) {\n      if (!state.designMode) return;\n      event.preventDefault();\n      var regionId = regionIdFromCanvasEvent(root, event) || state.designRegionId;\n      try {\n        var source = JSON.parse(event.dataTransfer.getData(\"application/json\") || \"{}\");\n        if (isDesignPatternSource(source)) setDesignAssignment(root, root.__massimoConfig || config, root.__massimoPreview || preview, regionId, source);\n      } catch (err) {\n        reportError(root, err);\n      }\n      });\n    }\n    targets.forEach(bindTarget);\n  }\n\n  function renderEdgeButtons(root, config, preview) {\n    var group = $(root, \"[data-massimo-edge-group]\");\n    if (!group) return;\n    enforceSpecialAmorfEdge(config);\n    var edgeTypes = getEdgeTypes(config);\n    var amorfShapeActive = normalizeShapeType(state.shapeType) === \"amorf\";\n    var order = [\"biye\", \"bordur\", \"cift_bordur\", \"overlok\"];\n    group.innerHTML = \"\";\n    order.forEach(function (edgeKey) {\n      if (amorfShapeActive && (edgeKey === \"bordur\" || edgeKey === \"cift_bordur\")) return;\n      var edge = edgeTypes[edgeKey];\n      if (!edge) return;\n      var btn = document.createElement(\"button\");\n      btn.className = \"massimo-oo__btn\" + (state.edgeType === edgeKey ? \" is-active\" : \"\");\n      btn.type = \"button\";\n      btn.dataset.massimoEdge = edgeKey;\n      btn.textContent = edge.label || edgeKey;\n      btn.addEventListener(\"click\", function () {\n        setEdge(root, config, preview, edgeKey);\n      });\n      group.appendChild(btn);\n    });\n  }\n\n  function setEdge(root, config, preview, nextEdge) {\n    var edgeTypes = getEdgeTypes(config);\n    state.edgeType = edgeTypes[nextEdge] ? nextEdge : detectInitialEdge(root, config);\n    enforceSpecialAmorfEdge(config);\n    $all(root, \"[data-massimo-edge]\").forEach(function (el) {\n      el.classList.toggle(\"is-active\", el.dataset.massimoEdge === state.edgeType);\n    });\n    root.dataset.edge = state.edgeType;\n    setKartelaVisibility(root, config);\n    syncDoubleTargets(root);\n    syncActiveFabric(root);\n    if (!edgeUsesFabric(state.edgeType, config)) {\n      var label = $(root, \"[data-massimo-selected-fabric]\");\n      if (label) label.textContent = \"Overlokta kartela kullan\u0131lmaz\";\n    } else if (edgeUsesDoubleFabric(state.edgeType, config)) {\n      var doubleLabel = $(root, \"[data-massimo-selected-fabric]\");\n      if (doubleLabel) doubleLabel.textContent = doubleFabricLabel();\n    } else if (state.fabric) {\n      var fabricLabel = $(root, \"[data-massimo-selected-fabric]\");\n      if (fabricLabel) fabricLabel.textContent = fabricName(state.fabric);\n    }\n    renderPreview(root, preview, { showPreview: true, config: config })\n      .then(function () { refreshZoom(root); })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, config);\n  }\n\n  function setKartelaVisibility(root, config) {\n    var show = edgeUsesFabric(state.edgeType, config);\n    var familyGroup = $(root, \"[data-massimo-kartela-family-group]\");\n    var grid = $(root, \"[data-massimo-kartela-grid]\");\n    var doubleGroup = $(root, \"[data-massimo-double-bordur-group]\");\n    if (familyGroup) familyGroup.style.display = show ? \"\" : \"none\";\n    if (grid) grid.style.display = show ? \"\" : \"none\";\n    if (doubleGroup) doubleGroup.hidden = !edgeUsesDoubleFabric(state.edgeType, config);\n    root.classList.toggle(\"is-overlok\", !show);\n    root.classList.toggle(\"is-cift-bordur\", edgeUsesDoubleFabric(state.edgeType, config));\n  }\n\n  function syncDoubleTargets(root) {\n    var group = $(root, \"[data-massimo-double-bordur-group]\");\n    if (!group) return;\n    $all(group, \"[data-massimo-double-target]\").forEach(function (btn) {\n      var target = btn.dataset.massimoDoubleTarget || \"outer\";\n      var fabric = state.doubleFabrics[target] || null;\n      btn.classList.toggle(\"is-active\", target === state.doubleTarget);\n      var selected = btn.querySelector(\"[data-massimo-double-selected]\");\n      if (selected) selected.textContent = fabricName(fabric) || \"Secim bekliyor\";\n    });\n  }\n\n  function renderPreview(root, preview, options) {\n    options = options || {};\n    if (!preview) return Promise.resolve(null);\n    enforceSpecialAmorfEdge(options.config || {});\n    var loadingToken = beginPreviewLoading(root);\n    var shouldShowPreview = !!options.showPreview;\n    var fabric = previewFabricPayload(state.edgeType, options.config);\n    if (edgeUsesDoubleFabric(state.edgeType, options.config)) {\n      var status = $(root, \"[data-massimo-status]\");\n      if (status) {\n        if (!fabric.outer || !fabric.inner) {\n          status.textContent = \"Cift bordur icin dis 4 cm ve ic 2 cm kartela secin\";\n        } else {\n          status.textContent = \"\";\n        }\n      }\n    }\n    preview.shape = currentRenderShapePayload(options.config || {});\n    if (state.designMode && designEnabledFor(options.config || {})) {\n      try {\n        assignAllDesignRegionsNow(root, options.config || {}, \"render-preview\");\n      } catch (err) {\n        window.__MASSIMO_AUTO_REGION_ASSIGN_ERROR__ = { message: err && err.message || String(err), at: Date.now() };\n      }\n    }\n    preview.design = currentDesignPayload(options.config || {});\n    var renderPromise = preview.setEdgeAndFabric\n      ? preview.setEdgeAndFabric(state.edgeType, fabric)\n      : preview.setEdgeType(state.edgeType)\n      .then(function () {\n        if (fabric) return preview.setFabric(fabric);\n        return null;\n      });\n    return renderPromise.then(function (result) {\n      if (shouldShowPreview) setPreviewView(root);\n      syncMeasureOverlay(root);\n      /* v165: Preview render edildikten sonra rehber overlay'i de senkronize et */\n      syncDesignGuideOverlay(root);\n      endPreviewLoading(root, loadingToken);\n      return result;\n    }, function (err) {\n      endPreviewLoading(root, loadingToken);\n      throw err;\n    });\n  }\n\n  function renderThumbnails(root, config) {\n    var wrap = $(root, \"[data-massimo-thumbs]\");\n    if (!wrap) return;\n    var images = Array.isArray(config.productImages) ? config.productImages.filter(Boolean) : [];\n    wrap.innerHTML = \"\";\n    images.forEach(function (src, idx) {\n      var btn = document.createElement(\"button\");\n      var img = document.createElement(\"img\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__thumb\" + (idx === 0 ? \" is-active\" : \"\");\n      btn.setAttribute(\"aria-label\", \"Galeri \" + (idx + 1));\n      img.src = src;\n      img.alt = \"Galeri \" + (idx + 1);\n      btn.appendChild(img);\n      btn.addEventListener(\"click\", function () {\n        $all(root, \".massimo-oo__thumb\").forEach(function (el) { el.classList.remove(\"is-active\"); });\n        btn.classList.add(\"is-active\");\n        if (idx === 0) {\n          renderPreview(root, root.__massimoPreview, { showPreview: true, config: root.__massimoConfig || config })\n            .then(function () { refreshZoom(root); })\n            .catch(reportError.bind(null, root));\n          return;\n        }\n        setOriginalView(root, src);\n      });\n      wrap.appendChild(btn);\n    });\n  }\n\n  // 2026-05-19: Multi-quality teknik bilgi g\u00F6sterimi \u2014 Barcelona d\u0131\u015F\u0131 kaliteler de\n  // config'lerinde technicalIcons + technicalSpecs varsa otomatik g\u00F6sterilir.\n  function hasTechnicalIcons(config) {\n    return !!config && Array.isArray(config.technicalIcons) && config.technicalIcons.length > 0;\n  }\n  function hasTechnicalSpecs(config) {\n    return !!config && Array.isArray(config.technicalSpecs) && config.technicalSpecs.length > 0;\n  }\n  function hasTechnicalInfoConfig(config) {\n    return hasTechnicalIcons(config) || hasTechnicalSpecs(config);\n  }\n  // Geriye d\u00F6n\u00FCk uyumluluk i\u00E7in eski isim \u2014 ayn\u0131 i\u015Flevi yapar.\n  function isBarcelonaTechnicalConfig(config) { return hasTechnicalInfoConfig(config); }\n\n  function removeTechnicalInfo(root) {\n    var galleryInfo = $(root, \"[data-massimo-technical-icons]\");\n    var specInfo = $(root, \"[data-massimo-technical-specs]\");\n    if (galleryInfo && galleryInfo.parentNode) galleryInfo.parentNode.removeChild(galleryInfo);\n    if (specInfo && specInfo.parentNode) specInfo.parentNode.removeChild(specInfo);\n  }\n\n  function renderTechnicalIcons(root, config) {\n    var thumbs = $(root, \"[data-massimo-thumbs]\");\n    if (!thumbs || !thumbs.parentNode) return;\n    var wrap = $(root, \"[data-massimo-technical-icons]\");\n    if (!wrap) {\n      wrap = document.createElement(\"div\");\n      wrap.className = \"massimo-oo__tech-icons\";\n      wrap.dataset.massimoTechnicalIcons = \"1\";\n      thumbs.parentNode.insertBefore(wrap, thumbs.nextSibling);\n    }\n    var panelId = (root.id || \"massimo-ozel-olcu\") + \"-technical-icon-detail\";\n    var icons = config.technicalIcons || [];\n    wrap.dataset.activeIcon = \"\";\n    wrap.innerHTML = \"\"\n      + \"<div class='massimo-oo__tech-icon-row' role='list'></div>\"\n      + \"<div class='massimo-oo__tech-icon-detail' id='\" + escapeHtml(panelId) + \"' data-massimo-technical-icon-detail hidden></div>\";\n    var row = $(wrap, \".massimo-oo__tech-icon-row\");\n    var panel = $(wrap, \"[data-massimo-technical-icon-detail]\");\n\n    function setActive(icon) {\n      var nextId = icon && icon.id || \"\";\n      var current = wrap.dataset.activeIcon || \"\";\n      var opening = nextId && current !== nextId;\n      wrap.dataset.activeIcon = opening ? nextId : \"\";\n      $all(wrap, \"[data-massimo-technical-icon]\").forEach(function (btn) {\n        var active = opening && btn.dataset.massimoTechnicalIcon === nextId;\n        btn.classList.toggle(\"is-active\", active);\n        btn.setAttribute(\"aria-expanded\", active ? \"true\" : \"false\");\n      });\n      if (!opening) {\n        panel.hidden = true;\n        panel.innerHTML = \"\";\n        return;\n      }\n      panel.hidden = false;\n      panel.innerHTML = \"<strong>\" + escapeHtml(icon.title || icon.label || icon.id) + \"</strong>\"\n        + \"<span>\" + escapeHtml(icon.description || \"\") + \"</span>\";\n    }\n\n    icons.forEach(function (icon) {\n      if (!icon || !icon.id) return;\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"massimo-oo__tech-icon\";\n      btn.dataset.massimoTechnicalIcon = icon.id;\n      btn.setAttribute(\"aria-label\", icon.title || icon.label || icon.id);\n      btn.setAttribute(\"aria-expanded\", \"false\");\n      btn.setAttribute(\"aria-controls\", panelId);\n      btn.innerHTML = technicalIconSvg(icon.id) + \"<span>\" + escapeHtml(icon.label || icon.title || icon.id) + \"</span>\";\n      btn.addEventListener(\"click\", function () {\n        setActive(icon);\n      });\n      row.appendChild(btn);\n    });\n  }\n\n  function renderTechnicalSpecs(root, config) {\n    var host = $(root, \".massimo-oo__panel\") || $(root, \"[data-massimo-kartela-swatches-group]\");\n    if (!host) return;\n    var box = $(root, \"[data-massimo-technical-specs]\");\n    if (!box) {\n      box = document.createElement(\"section\");\n      box.className = \"massimo-oo__tech-specs\";\n      box.dataset.massimoTechnicalSpecs = \"1\";\n    }\n    var saveButton = $(host, \"[data-massimo-save]\");\n    if (saveButton && saveButton.parentNode === host) saveButton.insertAdjacentElement(\"afterend\", box);\n    else host.appendChild(box);\n    var specs = config.technicalSpecs || [];\n    box.innerHTML = \"<h2>\u00DCr\u00FCn \u00D6zellikleri</h2><dl></dl>\";\n    var list = box.querySelector(\"dl\");\n    specs.forEach(function (item) {\n      if (!item || !item.label) return;\n      var row = document.createElement(\"div\");\n      row.className = \"massimo-oo__tech-spec\";\n      row.innerHTML = \"<dt>\" + escapeHtml(item.label) + \"</dt><dd>\" + escapeHtml(item.value || \"\") + \"</dd>\";\n      list.appendChild(row);\n    });\n  }\n\n  function renderTechnicalInfo(root, config) {\n    if (!hasTechnicalInfoConfig(config)) {\n      removeTechnicalInfo(root);\n      return;\n    }\n    var galleryInfo = $(root, \"[data-massimo-technical-icons]\");\n    var specInfo = $(root, \"[data-massimo-technical-specs]\");\n    if (hasTechnicalIcons(config)) {\n      renderTechnicalIcons(root, config);\n    } else if (galleryInfo && galleryInfo.parentNode) {\n      galleryInfo.parentNode.removeChild(galleryInfo);\n    }\n    if (hasTechnicalSpecs(config)) {\n      renderTechnicalSpecs(root, config);\n    } else if (specInfo && specInfo.parentNode) {\n      specInfo.parentNode.removeChild(specInfo);\n    }\n  }\n\n  function setupDoubleBordurTargets(root, config, preview) {\n    var group = $(root, \"[data-massimo-double-bordur-group]\");\n    if (!group || group.__massimoDoubleBound) return;\n    group.__massimoDoubleBound = true;\n    $all(group, \"[data-massimo-double-target]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        state.doubleTarget = btn.dataset.massimoDoubleTarget || \"outer\";\n        syncDoubleTargets(root);\n        syncActiveFabric(root);\n        var status = $(root, \"[data-massimo-status]\");\n        if (status) status.textContent = state.doubleTarget === \"outer\" ? \"Dis bordur 4 cm icin kartela secin\" : \"Ic bordur 2 cm icin kartela secin\";\n        renderPreview(root, preview, { showPreview: true, config: config })\n          .then(function () { refreshZoom(root); })\n          .catch(reportError.bind(null, root));\n      });\n    });\n  }\n\n  function renderKartelas(root, config, preview, autoShowsPreview) {\n    var grid = $(root, \"[data-massimo-kartela-grid]\");\n    if (!grid) return;\n    grid.innerHTML = \"\";\n\n    var families = config.kartelas || {};\n    var list = families[state.family] || [];\n\n    list.forEach(function (item, idx) {\n      var btn = document.createElement(\"button\");\n      var img = document.createElement(\"img\");\n      var label = document.createElement(\"span\");\n      var candidates = (item.imageCandidates || [item.image]).filter(Boolean);\n      var candidateIndex = 0;\n      var fallbackSrc = fallbackSwatch(item);\n\n      btn.type = \"button\";\n      btn.className = \"massimo-oo-swatch\";\n      btn.dataset.kartelaCode = item.id || item.label || \"\";\n      if (edgeUsesDoubleFabric(state.edgeType, config)) {\n        var current = currentTargetFabric();\n        if (current && (current.id || current.label || \"\") === btn.dataset.kartelaCode) btn.classList.add(\"is-active\");\n      } else if (state.fabric && (state.fabric.id || state.fabric.label || \"\") === btn.dataset.kartelaCode) {\n        btn.classList.add(\"is-active\");\n      }\n      img.alt = item.label || item.id || \"\";\n      img.loading = \"lazy\";\n      img.src = candidates[candidateIndex] || fallbackSrc;\n      img.onerror = function () {\n        candidateIndex += 1;\n        if (candidateIndex < candidates.length) {\n          img.src = candidates[candidateIndex];\n        } else {\n          img.onerror = null;\n          img.src = fallbackSrc;\n        }\n      };\n      label.textContent = item.label || item.id || \"\";\n\n      btn.appendChild(img);\n      btn.appendChild(label);\n      btn.addEventListener(\"click\", function () {\n        var src = Object.assign({}, item, {\n          image: img.currentSrc || img.src || fallbackSrc,\n          color: fallbackColor(item)\n        });\n        selectFabric(root, preview, src, { showPreview: true, config: config });\n      });\n      grid.appendChild(btn);\n    });\n  }\n\n  function syncActiveFabric(root) {\n    var activeFabric = edgeUsesDoubleFabric(state.edgeType, root && root.__massimoConfig) ? currentTargetFabric() : state.fabric;\n    var activeCode = activeFabric ? (activeFabric.id || activeFabric.label || \"\") : \"\";\n    $all(root, \".massimo-oo-swatch\").forEach(function (el) {\n      el.classList.toggle(\"is-active\", !!activeCode && el.dataset.kartelaCode === activeCode);\n    });\n    var label = $(root, \"[data-massimo-selected-fabric]\");\n    if (label) {\n      label.textContent = edgeUsesDoubleFabric(state.edgeType, root && root.__massimoConfig)\n        ? doubleFabricLabel()\n        : fabricName(state.fabric);\n    }\n    syncDoubleTargets(root);\n  }\n\n  function selectFabric(root, preview, fabric, options) {\n    options = options || {};\n    if (!edgeUsesFabric(state.edgeType, options.config)) return;\n    if (edgeUsesDoubleFabric(state.edgeType, options.config)) {\n      state.doubleFabrics[state.doubleTarget] = fabric;\n    } else {\n      state.fabric = fabric;\n    }\n    $all(root, \".massimo-oo-swatch\").forEach(function (el) {\n      el.classList.toggle(\"is-active\", el.dataset.kartelaCode === (fabric.id || fabric.label || \"\"));\n    });\n    var label = $(root, \"[data-massimo-selected-fabric]\");\n    if (label) label.textContent = edgeUsesDoubleFabric(state.edgeType, options.config) ? doubleFabricLabel() : fabricName(fabric);\n    syncDoubleTargets(root);\n    renderPreview(root, preview, { showPreview: !!options.showPreview, config: options.config })\n      .then(function () { refreshZoom(root); })\n      .catch(reportError.bind(null, root));\n    updateSummary(root, options.config);\n  }\n\n  function updateSummary(root, config) {\n    var area = shapeAreaM2();\n    var out = $(root, \"[data-massimo-summary]\");\n    if (!out) return;\n    var edge = getEdgeTypes(config)[state.edgeType] || {};\n    var suffix = edgeUsesDoubleFabric(state.edgeType, config) ? \" / dis 4 cm + ic 2 cm\" : \"\";\n    var design = currentDesignPayload(config || {});\n    var modeLabel = design.active\n      ? (\"TASARIM / \" + shapeLabel(state.shapeType) + \" / \" + design.label + (design.premium ? \" / \" + premiumVariantLabel(design.premiumVariant) : \"\")).toUpperCase()\n      : shapeLabel(state.shapeType).toUpperCase();\n    out.textContent = modeLabel + \" / \" + (edge.label || state.edgeType).toUpperCase()\n      + \" / \" + state.width + \" x \" + state.length + \" cm / \" + area.toFixed(2) + \" m2\"\n      + \" / \u00E7evre \" + shapePerimeterM().toFixed(2) + \" m\" + suffix;\n  }\n\n  function reportError(root, err) {\n    var box = $(root, \"[data-massimo-status]\");\n    if (box) box.textContent = err && err.message ? err.message : \"Preview error\";\n    console.error(\"[MassimoOzelOlcu]\", err);\n  }\n\n  // Made in Europe rozeti (Massimo \u00F6zel \u00F6l\u00E7\u00FC, galeri sa\u011F alt k\u00F6\u015Fesi \u2014 sadece [data-massimo-ozel-olcu])\n  function ensureEuBadge(root) {\n    if (!root || root.querySelector(\".massimo-oo__eu-badge\")) return;\n    var badge = document.createElement(\"div\");\n    badge.className = \"massimo-oo__eu-badge\";\n    badge.setAttribute(\"aria-label\", \"Made in Europe\");\n    badge.title = \"Made in Europe\";\n    badge.innerHTML =\n      '<svg class=\"massimo-oo__eu-badge__icon\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">' +\n      '<circle cx=\"50\" cy=\"50\" r=\"48\" fill=\"#003399\"/>' +\n      '<g fill=\"#FFCC00\">' + generate12EuStars() + '</g>' +\n      '</svg>' +\n      '<span class=\"massimo-oo__eu-badge__title\">Made in Europe</span>';\n    var gallery = root.querySelector(\"[data-massimo-gallery], .massimo-oo__gallery\");\n    if (gallery) {\n      gallery.appendChild(badge);\n    } else {\n      root.insertBefore(badge, root.firstChild);\n    }\n  }\n  function generate12EuStars() {\n    var parts = [];\n    for (var i = 0; i < 12; i++) {\n      var angle = (i * 30 - 90) * Math.PI / 180;\n      var sx = 50 + 32 * Math.cos(angle);\n      var sy = 50 + 32 * Math.sin(angle);\n      parts.push(_drawStar5(sx, sy, 4.2));\n    }\n    return parts.join(\"\");\n  }\n  function _drawStar5(cx, cy, r) {\n    var pts = [];\n    for (var i = 0; i < 10; i++) {\n      var a = (i * 36 - 90) * Math.PI / 180;\n      var rr = i % 2 === 0 ? r : r * 0.382;\n      pts.push((cx + rr * Math.cos(a)).toFixed(2) + \",\" + (cy + rr * Math.sin(a)).toFixed(2));\n    }\n    return '<polygon points=\"' + pts.join(\" \") + '\"/>';\n  }\n\n  // User state persistence \u2014 sayfa yenilemede se\u00E7im korumas\u0131\n  function _stateKey(config) {\n    var handle = (config && (config.handle || config.productHandle || config.shopifyHandle)) ||\n                 (window.location.pathname.split('/').filter(Boolean).pop() || '').split('?')[0];\n    return 'massimo_user_state_' + handle;\n  }\n  function saveUserState(config) {\n    try {\n      var key = _stateKey(config);\n      var snap = {\n        v: 1, savedAt: Date.now(),\n        edgeType: state.edgeType, family: state.family,\n        fabric: state.fabric ? { id: state.fabric.id, label: state.fabric.label, familyLabel: state.fabric.familyLabel, image: state.fabric.image, color: state.fabric.color } : null,\n        doubleTarget: state.doubleTarget,\n        doubleFabrics: {\n          outer: state.doubleFabrics.outer ? { id: state.doubleFabrics.outer.id, label: state.doubleFabrics.outer.label, familyLabel: state.doubleFabrics.outer.familyLabel, image: state.doubleFabrics.outer.image, color: state.doubleFabrics.outer.color } : null,\n          inner: state.doubleFabrics.inner ? { id: state.doubleFabrics.inner.id, label: state.doubleFabrics.inner.label, familyLabel: state.doubleFabrics.inner.familyLabel, image: state.doubleFabrics.inner.image, color: state.doubleFabrics.inner.color } : null\n        },\n        shapeType: state.shapeType, shapePresetKey: state.shapePresetKey, shapePresetLabel: state.shapePresetLabel, shapeRadii: state.shapeRadii,\n        designMode: state.designMode, designTemplateId: state.designTemplateId, designRegionCount: state.designRegionCount, designRegionId: state.designRegionId,\n        designCornerModes: state.designCornerModes, designEdgeModes: state.designEdgeModes, designPremiumVariant: state.designPremiumVariant, designAssignments: state.designAssignments,\n        width: state.width, length: state.length\n      };\n      localStorage.setItem(key, JSON.stringify(snap));\n    } catch (e) {}\n  }\n  function _restoreStateFromSnapshot(snap) {\n    if (!snap || typeof snap !== \"object\") return false;\n    var src = snap.shape ? snap : null;\n    if (src) {\n      if (src.edgeType) state.edgeType = src.edgeType;\n      if (src.family) state.family = src.family;\n      if (src.fabric) state.fabric = src.fabric;\n      if (src.doubleFabrics) state.doubleFabrics = src.doubleFabrics;\n      if (src.shapeType || (src.shape && src.shape.type)) state.shapeType = src.shapeType || src.shape.type;\n      var sh = src.shape || {};\n      if (sh.presetKey) state.shapePresetKey = sh.presetKey;\n      if (sh.presetLabel) state.shapePresetLabel = sh.presetLabel;\n      if (sh.radii) state.shapeRadii = sh.radii;\n      if (typeof src.designMode === \"boolean\") state.designMode = src.designMode;\n      var dz = src.design || {};\n      if (dz.templateId) state.designTemplateId = dz.templateId;\n      if (Number.isFinite(dz.regionCount) || Number.isFinite(src.designRegionCount)) state.designRegionCount = dz.regionCount || src.designRegionCount;\n      if (dz.assignments || src.designAssignments) state.designAssignments = dz.assignments || src.designAssignments;\n      if (Number.isFinite(src.widthCm) && src.widthCm > 0) state.width = src.widthCm;\n      if (Number.isFinite(src.lengthCm) && src.lengthCm > 0) state.length = src.lengthCm;\n      return true;\n    }\n    if (snap.shapeType) state.shapeType = snap.shapeType;\n    if (snap.edgeType) state.edgeType = snap.edgeType;\n    if (snap.family) state.family = snap.family;\n    if (snap.fabric) state.fabric = snap.fabric;\n    if (snap.doubleTarget) state.doubleTarget = snap.doubleTarget;\n    if (snap.doubleFabrics) state.doubleFabrics = snap.doubleFabrics;\n    if (snap.shapePresetKey) state.shapePresetKey = snap.shapePresetKey;\n    if (snap.shapePresetLabel) state.shapePresetLabel = snap.shapePresetLabel;\n    if (snap.shapeRadii) state.shapeRadii = snap.shapeRadii;\n    if (typeof snap.designMode === \"boolean\") state.designMode = snap.designMode;\n    if (snap.designTemplateId) state.designTemplateId = snap.designTemplateId;\n    if (Number.isFinite(snap.designRegionCount)) state.designRegionCount = snap.designRegionCount;\n    if (snap.designRegionId) state.designRegionId = snap.designRegionId;\n    if (snap.designCornerModes) state.designCornerModes = snap.designCornerModes;\n    if (snap.designEdgeModes) state.designEdgeModes = snap.designEdgeModes;\n    if (snap.designPremiumVariant) state.designPremiumVariant = snap.designPremiumVariant;\n    if (snap.designAssignments) state.designAssignments = snap.designAssignments;\n    if (Number.isFinite(snap.width) && snap.width > 0) state.width = snap.width;\n    if (Number.isFinite(snap.length) && snap.length > 0) state.length = snap.length;\n    return true;\n  }\n  function loadUserState(config) {\n    try {\n      var urlParams = new URLSearchParams(window.location.search);\n      var previewId = urlParams.get(\"previewId\");\n      if (previewId) {\n        var fullRaw = localStorage.getItem(\"massimo_full_snapshot_\" + previewId);\n        if (fullRaw) {\n          var fullSnap = JSON.parse(fullRaw);\n          if (fullSnap && _restoreStateFromSnapshot(fullSnap)) return fullSnap;\n        }\n        var cfgRaw = localStorage.getItem(\"ozel_olcu_amorf_config_\" + previewId);\n        if (cfgRaw) {\n          var cfg = JSON.parse(cfgRaw);\n          if (cfg && _restoreStateFromSnapshot(cfg)) return cfg;\n        }\n      }\n      var key = _stateKey(config);\n      var raw = localStorage.getItem(key);\n      if (!raw) return null;\n      var snap = JSON.parse(raw);\n      if (!snap || snap.v !== 1) return null;\n      _restoreStateFromSnapshot(snap);\n      state.designMode = false;\n      state.designAssignments = {};\n      state.designPickerOpen = false;\n      state.designGuideAutoPlayed = false;\n      return snap;\n    } catch (e) { return null; }\n  }\n\n  function applyConfig(root, config, options) {\n    options = options || {};\n    if (!root || !config || !window.MassimoOzelOlcuPreview) return;\n    try { ensureEuBadge(root); } catch (e) {}\n    config = normalizeProductConfig(config);\n    if (!root.__massimoKartelas && config.kartelas) root.__massimoKartelas = config.kartelas;\n    if (!config.kartelas && root.__massimoKartelas) config.kartelas = root.__massimoKartelas;\n    root.__massimoConfig = config;\n    var canvas = $(root, \"[data-massimo-preview-canvas]\");\n    var source = pickPreviewBaseImage(config);\n    var patternSource = pickRenderPatternImage(config);\n    var displayImage = pickDisplayImage(config);\n    var previewParams = Object.assign({}, config.previewParams || {});\n    if (isHighDetailTextureConfig(config)) {\n      var previewSourceWidth = highDetailMobileCap(config, optionValue(previewParams.sourceImageWidth, config.sourceImageWidth) || ZOOM_IMAGE_WIDTH, ZOOM_IMAGE_WIDTH, MOBILE_HIGH_DETAIL_IMAGE_WIDTH);\n      var previewTextureWidth = highDetailMobileCap(config, optionValue(previewParams.textureImageWidth, config.textureImageWidth) || ZOOM_IMAGE_WIDTH, ZOOM_IMAGE_WIDTH, MOBILE_HIGH_DETAIL_IMAGE_WIDTH);\n      source = highResolutionImage(source, previewSourceWidth);\n      patternSource = highResolutionImage(patternSource, previewTextureWidth);\n    }\n    var previewMaxCanvasWidth = highDetailMobileCap(config, optionValue(optionValue(previewParams.maxCanvasWidth, config.maxCanvasWidth), DEFAULT_PREVIEW_MAX_CANVAS_WIDTH), DEFAULT_PREVIEW_MAX_CANVAS_WIDTH, MOBILE_HIGH_DETAIL_MAX_CANVAS_WIDTH);\n    var previewMaxCanvasHeight = highDetailMobileCap(config, optionValue(optionValue(previewParams.maxCanvasHeight, config.maxCanvasHeight), DEFAULT_PREVIEW_MAX_CANVAS_HEIGHT), DEFAULT_PREVIEW_MAX_CANVAS_HEIGHT, MOBILE_HIGH_DETAIL_MAX_CANVAS_HEIGHT);\n    if (!options.keepEdge) {\n      applyInitialMassimoDefaults(root, config);\n      try { loadUserState(config); } catch (e) {}\n      if (shouldOpenDesignByDefault(config)) {\n        state.designMode = true;\n        root.__massimoDefaultDesignApplied = true;\n      }\n    } else if (!getEdgeTypes(config)[state.edgeType]) {\n      state.edgeType = detectInitialEdge(root, config);\n    }\n    root.dataset.edge = state.edgeType;\n    root.dataset.shape = normalizeShapeType(state.shapeType);\n    if (!root.__massimoStateSaveInterval) {\n      root.__massimoStateSaveInterval = setInterval(function () { saveUserState(config); }, 1500);\n      window.addEventListener(\"beforeunload\", function () { saveUserState(config); }, { once: true, passive: true });\n    }\n    var preview = new window.MassimoOzelOlcuPreview({\n      owner: root,\n      canvas: canvas,\n      sourceImage: source,\n      patternImage: patternSource,\n      edgeType: state.edgeType,\n      shape: currentRenderShapePayload(config),\n      design: currentDesignPayload(config),\n      bgThreshold: optionValue(optionValue(previewParams.bgBrightness, previewParams.bgThreshold), config.bgThreshold),\n      biyeDepthPct: optionValue(previewParams.biyeDepthPct, config.biyeDepthPct),\n      bordurDepthPct: optionValue(previewParams.bordurDepthPct, config.bordurDepthPct),\n      textureScale: optionValue(previewParams.textureScale, config.textureScale),\n      bodyDetailStrength: optionValue(previewParams.bodyDetailStrength, config.bodyDetailStrength),\n      textureDetailStrength: optionValue(previewParams.textureDetailStrength, config.textureDetailStrength),\n      textureChromaDetailStrength: optionValue(previewParams.textureChromaDetailStrength, config.textureChromaDetailStrength),\n      textureToneStrength: optionValue(previewParams.textureToneStrength, config.textureToneStrength),\n      textureColorStrength: optionValue(previewParams.textureColorStrength, config.textureColorStrength),\n      textureLowPassRatio: optionValue(previewParams.textureLowPassRatio, config.textureLowPassRatio),\n      textureContrastRatio: optionValue(previewParams.textureContrastRatio, config.textureContrastRatio),\n      maxTextureContrastRatio: optionValue(previewParams.maxTextureContrastRatio, config.maxTextureContrastRatio),\n      maxTextureContrastBoost: optionValue(previewParams.maxTextureContrastBoost, config.maxTextureContrastBoost),\n      maxColorCorrection: optionValue(previewParams.maxColorCorrection, config.maxColorCorrection),\n      renderLightnessLift: optionValue(previewParams.renderLightnessLift, config.renderLightnessLift),\n      renderRgbShiftR: optionValue(previewParams.renderRgbShiftR, config.renderRgbShiftR),\n      renderRgbShiftG: optionValue(previewParams.renderRgbShiftG, config.renderRgbShiftG),\n      renderRgbShiftB: optionValue(previewParams.renderRgbShiftB, config.renderRgbShiftB),\n      renderTargetR: optionValue(previewParams.renderTargetR, config.renderTargetR),\n      renderTargetG: optionValue(previewParams.renderTargetG, config.renderTargetG),\n      renderTargetB: optionValue(previewParams.renderTargetB, config.renderTargetB),\n      renderColorCorrectionLimit: optionValue(previewParams.renderColorCorrectionLimit, config.renderColorCorrectionLimit),\n      renderPipeline: optionValue(previewParams.renderPipeline, config.renderPipeline),\n      detailPatternImage: optionValue(previewParams.detailPatternImage, config.detailPatternImage),\n      detailPatternStrength: optionValue(previewParams.detailPatternStrength, config.detailPatternStrength),\n      textureRepeatX: optionValue(previewParams.textureRepeatX, config.textureRepeatX),\n      textureRepeatY: optionValue(previewParams.textureRepeatY, config.textureRepeatY),\n      textureMinTileSize: optionValue(previewParams.textureMinTileSize, config.textureMinTileSize),\n      bodyTextureSurfaceMode: optionValue(previewParams.bodyTextureSurfaceMode, config.bodyTextureSurfaceMode),\n      bodyTextureRepeatX: optionValue(previewParams.bodyTextureRepeatX, config.bodyTextureRepeatX),\n      bodyTextureRepeatY: optionValue(previewParams.bodyTextureRepeatY, config.bodyTextureRepeatY),\n      bodyTextureMinTileSize: optionValue(previewParams.bodyTextureMinTileSize, config.bodyTextureMinTileSize),\n      textureDetailMix: optionValue(previewParams.textureDetailMix, config.textureDetailMix),\n      textureShadingStrength: optionValue(previewParams.textureShadingStrength, config.textureShadingStrength),\n      textureSharpen: optionValue(previewParams.textureSharpen, config.textureSharpen),\n      textureMicroDetailStrength: optionValue(previewParams.textureMicroDetailStrength, config.textureMicroDetailStrength),\n      textureMicroDetailLowPassRatio: optionValue(previewParams.textureMicroDetailLowPassRatio, config.textureMicroDetailLowPassRatio),\n      zoomTextureMicroDetailStrength: optionValue(previewParams.zoomTextureMicroDetailStrength, config.zoomTextureMicroDetailStrength),\n      textureColorLock: optionValue(previewParams.textureColorLock, config.textureColorLock),\n      bodyTileFactor: optionValue(previewParams.bodyTileFactor, config.bodyTileFactor),\n      bodyLightingStrength: optionValue(previewParams.bodyLightingStrength, config.bodyLightingStrength),\n      maxCanvasWidth: previewMaxCanvasWidth,\n      maxCanvasHeight: previewMaxCanvasHeight,\n      allowCanvasUpscale: optionValue(previewParams.allowCanvasUpscale, config.allowCanvasUpscale),\n      softBordurInnerEdge: optionValue(previewParams.softBordurInnerEdge, config.softBordurInnerEdge),\n      bordurInnerEdgeAlpha: optionValue(previewParams.bordurInnerEdgeAlpha, config.bordurInnerEdgeAlpha),\n      bordurInnerEdgeWidth: optionValue(previewParams.bordurInnerEdgeWidth, config.bordurInnerEdgeWidth),\n      softBordurSeams: optionValue(previewParams.softBordurSeams, config.softBordurSeams),\n      bordurCornerSeamAlpha: optionValue(previewParams.bordurCornerSeamAlpha, config.bordurCornerSeamAlpha),\n      bordurCornerSeamLightAlpha: optionValue(previewParams.bordurCornerSeamLightAlpha, config.bordurCornerSeamLightAlpha),\n      bordurCornerStitchAlpha: optionValue(previewParams.bordurCornerStitchAlpha, config.bordurCornerStitchAlpha),\n      bordurInsetStitchAlpha: optionValue(previewParams.bordurInsetStitchAlpha, config.bordurInsetStitchAlpha),\n      baseTexturePaintEnabled: optionValue(previewParams.baseTexturePaintEnabled, config.baseTexturePaintEnabled),\n      baseTexturePaintScale: optionValue(previewParams.baseTexturePaintScale, config.baseTexturePaintScale),\n      baseTexturePaintShadingStrength: optionValue(previewParams.baseTexturePaintShadingStrength, config.baseTexturePaintShadingStrength)\n    });\n    root.__massimoPreview = preview;\n\n    var titleText = config.name || config.title || \"\";\n    var titleEl = $(root, \".massimo-oo__title\");\n    if (titleEl && titleText) titleEl.textContent = titleText;\n    if (titleText && document.title) {\n      document.title = titleText + \" \u2013 Dolce Vita Hal\u0131\";\n    }\n\n    setOriginalView(root, displayImage);\n    renderThumbnails(root, config);\n    renderTechnicalInfo(root, config);\n    renderQualityTabs(root, config);\n    renderPatternGrid(root, config);\n    renderShapeControls(root, config, preview);\n    renderDesignControls(root, config, preview);\n    setupDesignCanvasSelection(root, config, preview);\n    renderEdgeButtons(root, config, preview);\n    setupDoubleBordurTargets(root, config, preview);\n    syncFamilyButtons(root);\n    setKartelaVisibility(root, config);\n    syncDoubleTargets(root);\n\n    var sourceText = $(root, \"[data-massimo-source]\");\n    if (sourceText) {\n      sourceText.textContent = \"Giydirme zemini: \" + imagesLabel(config.productImages || [], source)\n        + (patternSource ? \" / Desen referansi: \" + imagesLabel(config.productImages || [], patternSource) : \"\");\n    }\n\n    renderKartelas(root, config, preview, false);\n    syncActiveFabric(root);\n    updateSummary(root, config);\n    refreshZoom(root);\n    renderPreview(root, preview, { showPreview: !!options.showPreview, config: config })\n      .then(function () {\n        refreshZoom(root);\n        if (state.designMode && designEnabledFor(config) && !Object.keys(state.designAssignments || {}).length) {\n          state.designGuideAutoPlayed = false;\n          maybePlayInitialDesignGuide(root, config, preview);\n        }\n      })\n      .catch(reportError.bind(null, root));\n  }\n\n  function clonePlain(value) {\n    try { return JSON.parse(JSON.stringify(value)); } catch (e) { return value; }\n  }\n\n  function compactSaveFabric(fabric) {\n    if (!fabric) return null;\n    return {\n      id: fabric.id || \"\",\n      label: fabric.label || fabric.id || \"\",\n      familyLabel: fabric.familyLabel || \"\",\n      image: fabric.image || firstImageCandidate(fabric) || \"\",\n      color: fabric.color || \"\"\n    };\n  }\n\n  function currentSavePreview(root) {\n    var canvas = root && $(root, \"[data-massimo-preview-canvas]\");\n    if (!canvas || !canvas.width || !canvas.height) return { dataUrl: \"\", cropped: false, cropPx: null, sourceCanvas: null };\n    var geometry = currentOutputGeometry(root);\n    var crop = geometry && geometry.boundsPx;\n    var sourceCanvas = { width: canvas.width, height: canvas.height };\n    var exportCanvas = canvas;\n    var cropInfo = null;\n    if (crop && finiteNumber(crop.w, 0) > 1 && finiteNumber(crop.h, 0) > 1) {\n      var left = Math.max(0, Math.min(canvas.width - 1, Math.floor(finiteNumber(crop.x, 0))));\n      var top = Math.max(0, Math.min(canvas.height - 1, Math.floor(finiteNumber(crop.y, 0))));\n      var width = Math.max(1, Math.min(canvas.width - left, Math.ceil(finiteNumber(crop.w, canvas.width))));\n      var height = Math.max(1, Math.min(canvas.height - top, Math.ceil(finiteNumber(crop.h, canvas.height))));\n      var nextCanvas = document.createElement(\"canvas\");\n      nextCanvas.width = width;\n      nextCanvas.height = height;\n      var nextCtx = nextCanvas.getContext(\"2d\");\n      nextCtx.drawImage(canvas, left, top, width, height, 0, 0, width, height);\n      exportCanvas = nextCanvas;\n      cropInfo = { x: left, y: top, w: width, h: height };\n    }\n    try {\n      return {\n        dataUrl: exportCanvas.toDataURL(\"image/jpeg\", 0.9),\n        cropped: !!cropInfo,\n        cropPx: cropInfo,\n        sourceCanvas: sourceCanvas\n      };\n    } catch (err) {\n      try {\n        return {\n          dataUrl: exportCanvas.toDataURL(\"image/png\"),\n          cropped: !!cropInfo,\n          cropPx: cropInfo,\n          sourceCanvas: sourceCanvas\n        };\n      } catch (err2) {\n        return { dataUrl: \"\", cropped: false, cropPx: null, sourceCanvas: sourceCanvas };\n      }\n    }\n  }\n\n  function currentSavePreviewDataUrl(root) {\n    return currentSavePreview(root).dataUrl;\n  }\n\n  function designSaveApiBase(config) {\n    var configured = window.MASSIMO_DESIGN_API_BASE || (config && (config.designSaveApi || config.massimoApi));\n    if (configured) return String(configured).replace(/\\/+$/, \"\");\n    if (/^(localhost|127\\.0\\.0\\.1)$/i.test(window.location.hostname || \"\")) return \"/api/massimo\";\n    return \"https://dolcevita-massimo.ngrok.io/api/massimo\";\n  }\n\n  function buildSaveSnapshot(root, config) {\n    config = normalizeProductConfig(config || {});\n    var shape = currentRenderShapePayload(config);\n    var design = currentDesignPayload(config);\n    var edge = getEdgeTypes(config)[state.edgeType] || {};\n    var doubleEdge = edgeUsesDoubleFabric(state.edgeType, config);\n    var fabric = doubleEdge ? null : state.fabric;\n    var doubleFabrics = {\n      outer: compactSaveFabric(state.doubleFabrics.outer),\n      inner: compactSaveFabric(state.doubleFabrics.inner)\n    };\n    var previewExport = currentSavePreview(root);\n    return {\n      version: \"massimo-design-save-v1\",\n      uiBuild: BUILD,\n      savedAt: new Date().toISOString(),\n      pageUrl: window.location.href,\n      url: window.location.pathname,\n      handle: config.handle || config.productHandle || config.shopifyHandle || \"\",\n      title: config.title || document.title || \"\",\n      brand: \"Massimo\",\n      qualityCode: config.qualityCode || \"\",\n      patternCode: config.patternCode || \"\",\n      widthCm: state.width,\n      lengthCm: state.length,\n      areaM2: Number(shapeAreaM2().toFixed(4)),\n      perimeterM: Number(shapePerimeterM().toFixed(4)),\n      edgeType: state.edgeType,\n      edgeLabel: edge.label || state.edgeType || \"\",\n      family: state.family,\n      fabric: compactSaveFabric(fabric),\n      fabricLabel: doubleEdge ? doubleFabricLabel() : fabricName(fabric),\n      doubleFabrics: doubleFabrics,\n      shapeType: shape.type,\n      shapeLabel: shape.label,\n      shape: clonePlain(shape),\n      radii: shape.radii ? clonePlain(shape.radii) : null,\n      designMode: !!design.active,\n      design: clonePlain(design),\n      designTemplateId: design.templateId || \"\",\n      designTemplateLabel: design.label || \"\",\n      designRegionCount: design.regionCount || 0,\n      designAssignments: clonePlain(design.assignments || {}),\n      designRegions: clonePlain(design.regions || []),\n      outputGeometry: clonePlain(currentOutputGeometry(root)),\n      previewImg: previewExport.dataUrl,\n      previewImgCropped: !!previewExport.cropped,\n      previewCropPx: clonePlain(previewExport.cropPx),\n      previewSourceCanvas: clonePlain(previewExport.sourceCanvas)\n    };\n  }\n\n  function saveModal(root) {\n    return root && $(root, \"[data-massimo-save-modal]\");\n  }\n\n  function ensureSaveUi(root) {\n    if (!root) return;\n    var addBtn = $(root, \"[data-massimo-add]\");\n    if (addBtn && !$(root, \"[data-massimo-save]\")) {\n      var btn = document.createElement(\"button\");\n      btn.className = \"massimo-oo__save\";\n      btn.type = \"button\";\n      btn.setAttribute(\"data-massimo-save\", \"\");\n      btn.textContent = \"Tasar\u0131m\u0131n\u0131 kaydet\";\n      addBtn.insertAdjacentElement(\"afterend\", btn);\n    }\n    if (!saveModal(root)) {\n      var wrap = document.createElement(\"div\");\n      wrap.className = \"massimo-oo__save-modal\";\n      wrap.setAttribute(\"data-massimo-save-modal\", \"\");\n      wrap.hidden = true;\n      wrap.innerHTML = [\n        '<button class=\"massimo-oo__save-backdrop\" type=\"button\" data-massimo-save-close aria-label=\"Kapat\"></button>',\n        '<div class=\"massimo-oo__save-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"massimo-save-title-dynamic\">',\n        '<div class=\"massimo-oo__save-head\"><div><div class=\"massimo-oo__save-kicker\">Massimo</div><h2 id=\"massimo-save-title-dynamic\">Tasar\u0131m\u0131n\u0131 kaydet</h2></div>',\n        '<button class=\"massimo-oo__save-x\" type=\"button\" data-massimo-save-close aria-label=\"Kapat\">\u00D7</button></div>',\n        '<div class=\"massimo-oo__save-grid\">',\n        '<label><span>Ad</span><input type=\"text\" autocomplete=\"given-name\" data-massimo-save-field=\"ad\" required></label>',\n        '<label><span>Soyad</span><input type=\"text\" autocomplete=\"family-name\" data-massimo-save-field=\"soyad\" required></label>',\n        '<label><span>Cep telefonu</span><input type=\"tel\" autocomplete=\"tel\" inputmode=\"tel\" data-massimo-save-field=\"tel\" required></label>',\n        '<label><span>E-posta</span><input type=\"email\" autocomplete=\"email\" data-massimo-save-field=\"mail\" required></label>',\n        '</div>',\n        '<label class=\"massimo-oo__save-consent\"><input type=\"checkbox\" data-massimo-save-consent><span>Tasar\u0131m\u0131m\u0131n SMS ve e-posta ile g\u00F6nderilmesini onayl\u0131yorum.</span></label>',\n        '<div class=\"massimo-oo__save-status\" data-massimo-save-status></div>',\n        '<button class=\"massimo-oo__save-submit\" type=\"button\" data-massimo-save-submit>Tasar\u0131m\u0131m\u0131 g\u00F6nder</button>',\n        '</div>'\n      ].join(\"\");\n      root.appendChild(wrap);\n    }\n  }\n\n  function saveField(root, name) {\n    return root && $(root, \"[data-massimo-save-field='\" + name + \"']\");\n  }\n\n  function setSaveStatus(root, message, type) {\n    var box = root && $(root, \"[data-massimo-save-status]\");\n    if (!box) return;\n    box.textContent = message || \"\";\n    box.classList.toggle(\"is-error\", type === \"error\");\n    box.classList.toggle(\"is-ok\", type === \"ok\");\n  }\n\n  function openSaveModal(root) {\n    var modal = saveModal(root);\n    if (!modal) return;\n    modal.hidden = false;\n    setSaveStatus(root, \"\", \"\");\n    var first = saveField(root, \"ad\");\n    if (first) setTimeout(function () { first.focus(); }, 40);\n  }\n\n  function closeSaveModal(root) {\n    var modal = saveModal(root);\n    if (modal) modal.hidden = true;\n  }\n\n  function saveFormValues(root) {\n    return {\n      ad: (saveField(root, \"ad\") && saveField(root, \"ad\").value || \"\").trim(),\n      soyad: (saveField(root, \"soyad\") && saveField(root, \"soyad\").value || \"\").trim(),\n      tel: (saveField(root, \"tel\") && saveField(root, \"tel\").value || \"\").trim(),\n      mail: (saveField(root, \"mail\") && saveField(root, \"mail\").value || \"\").trim()\n    };\n  }\n\n  function validateSaveForm(root, values) {\n    if (!values.ad) return \"Ad zorunlu\";\n    if (!values.soyad) return \"Soyad zorunlu\";\n    if (!values.tel || values.tel.replace(/\\D/g, \"\").length < 10) return \"Gecerli cep telefonu girin\";\n    if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(values.mail)) return \"Gecerli e-posta girin\";\n    var consent = $(root, \"[data-massimo-save-consent]\");\n    if (!consent || !consent.checked) return \"SMS ve e-posta onayi gerekli\";\n    return \"\";\n  }\n\n  async function submitSaveDesign(root, config) {\n    if (!window.fetch) throw new Error(\"Tarayici fetch desteklemiyor\");\n    config = root.__massimoConfig || config || {};\n    var values = saveFormValues(root);\n    var validation = validateSaveForm(root, values);\n    if (validation) {\n      setSaveStatus(root, validation, \"error\");\n      return;\n    }\n    if (edgeUsesDoubleFabric(state.edgeType, config) && (!state.doubleFabrics.outer || !state.doubleFabrics.inner)) {\n      setSaveStatus(root, \"Cift bordur icin dis ve ic kartela secilmeli\", \"error\");\n      return;\n    }\n    var button = $(root, \"[data-massimo-save-submit]\");\n    if (button) button.disabled = true;\n    setSaveStatus(root, \"Tasarim hazirlaniyor...\", \"\");\n    try {\n      await renderPreview(root, root.__massimoPreview, { showPreview: true, config: config });\n      refreshZoom(root);\n      var snapshot = buildSaveSnapshot(root, config);\n      setSaveStatus(root, \"Kayit gonderiliyor...\", \"\");\n      var res = await fetch(designSaveApiBase(config) + \"/design-save\", {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application/json\", \"Accept\": \"application/json\" },\n        body: JSON.stringify({\n          ad: values.ad,\n          soyad: values.soyad,\n          tel: values.tel,\n          mail: values.mail,\n          pageUrl: window.location.href,\n          snapshot: snapshot\n        })\n      });\n      var json = await res.json().catch(function () { return {}; });\n      if (!res.ok || !json.ok) throw new Error(json.error || \"Tasarim kaydedilemedi\");\n      setSaveStatus(root, \"Tasariminiz kaydedildi. Talep No: \" + (json.talepNo || json.id || \"\"), \"ok\");\n      if (json.pdfUrl) {\n        var saveStatus = $(root, \"[data-massimo-save-status]\");\n        if (saveStatus) {\n          saveStatus.innerHTML = 'Tasar\u0131m\u0131n\u0131z kaydedildi. Talep No: ' + escapeHtml(json.talepNo || json.id || \"\")\n            + ' <a href=\"' + escapeHtml(json.pdfUrl) + '\" target=\"_blank\" rel=\"noopener\">PDF indir</a>';\n        }\n      }\n      var pageStatus = $(root, \"[data-massimo-status]\");\n      if (pageStatus) pageStatus.textContent = \"Tasarim kaydedildi: \" + (json.talepNo || json.id || \"\");\n    } catch (err) {\n      setSaveStatus(root, err && err.message ? err.message : \"Tasarim kaydedilemedi\", \"error\");\n    } finally {\n      if (button) button.disabled = false;\n    }\n  }\n\n  function applySnapshotToState(snapshot, root) {\n    if (!snapshot || typeof snapshot !== \"object\") return;\n    var w = Number(snapshot.widthCm);\n    var l = Number(snapshot.lengthCm);\n    if (Number.isFinite(w) && w > 0) state.width = w;\n    if (Number.isFinite(l) && l > 0) state.length = l;\n    if (snapshot.edgeType) state.edgeType = String(snapshot.edgeType);\n    if (snapshot.family) state.family = String(snapshot.family);\n    if (snapshot.fabric && (snapshot.fabric.id || snapshot.fabric.label)) {\n      state.fabric = clonePlain(snapshot.fabric);\n    }\n    if (snapshot.doubleFabrics) {\n      state.doubleFabrics = {\n        outer: snapshot.doubleFabrics.outer ? clonePlain(snapshot.doubleFabrics.outer) : null,\n        inner: snapshot.doubleFabrics.inner ? clonePlain(snapshot.doubleFabrics.inner) : null\n      };\n    }\n    var shape = snapshot.shape || {};\n    var shapeType = snapshot.shapeType || shape.type;\n    if (shapeType) state.shapeType = normalizeShapeType(shapeType);\n    if (shape.presetKey) state.shapePresetKey = String(shape.presetKey);\n    if (shape.presetLabel) state.shapePresetLabel = String(shape.presetLabel);\n    if (Array.isArray(shape.radii) && shape.radii.length) state.shapeRadii = shape.radii.slice();\n    var design = snapshot.design || {};\n    state.designMode = !!(snapshot.designMode || design.active);\n    var templateId = design.templateId || snapshot.designTemplateId;\n    if (templateId) state.designTemplateId = String(templateId);\n    var regionCount = Number(design.regionCount != null ? design.regionCount : snapshot.designRegionCount);\n    if (Number.isFinite(regionCount) && regionCount > 0) state.designRegionCount = regionCount;\n    var assignments = design.assignments || snapshot.designAssignments;\n    if (assignments && typeof assignments === \"object\") state.designAssignments = clonePlain(assignments);\n    if (design.premiumVariant && typeof design.premiumVariant === \"object\") {\n      state.designPremiumVariant = Object.assign({}, state.designPremiumVariant, design.premiumVariant);\n    }\n    if (root) {\n      [\"width\", \"length\"].forEach(function (key) {\n        var input = $(root, \"[data-massimo-dimension='\" + key + \"']\");\n        if (input) input.value = String(state[key]);\n      });\n    }\n  }\n\n  function hydrateFromSavedDesign(root, config) {\n    try {\n      var params = new URLSearchParams(window.location.search || \"\");\n      var dv = params.get(\"dv\");\n      if (!dv || !/^[A-Za-z0-9_-]{6,48}$/.test(dv)) return;\n      if (root.__massimoDvHydrating) return;\n      root.__massimoDvHydrating = true;\n      var apiBase = designSaveApiBase(config);\n      fetch(apiBase + \"/design-saves/\" + encodeURIComponent(dv) + \"/public\", {\n        method: \"GET\",\n        headers: { \"Accept\": \"application/json\" }\n      })\n        .then(function (res) { return res.ok ? res.json() : null; })\n        .then(function (json) {\n          if (!json || !json.ok || !json.item || !json.item.snapshot) return;\n          applySnapshotToState(json.item.snapshot, root);\n          applyConfig(root, root.__massimoConfig || config, { showPreview: true, keepEdge: true });\n          var status = $(root, \"[data-massimo-status]\");\n          if (status) status.textContent = \"Kayitli tasariminiz acildi: \" + (json.item.talepNo || \"\");\n        })\n        .catch(function () { /* silent \u2014 fall back to default product page */ })\n        .then(function () { root.__massimoDvHydrating = false; });\n    } catch (err) {\n      root.__massimoDvHydrating = false;\n    }\n  }\n\n  function previewLoaderVisible(root) {\n    var loader = root && $(root, \"[data-massimo-preview-loading]\");\n    if (!loader) return false;\n    return !loader.hidden && !!(loader.offsetWidth || loader.offsetHeight || loader.getClientRects().length);\n  }\n\n  function forceHidePreviewLoader(root) {\n    var previewBox = root && $(root, \".massimo-oo__preview\");\n    var loader = root && $(root, \"[data-massimo-preview-loading]\");\n    if (previewBox) previewBox.classList.remove(\"is-rendering-preview\");\n    if (loader) loader.hidden = true;\n  }\n\n  function activateDefaultDesignMode(root, config, attempt) {\n    attempt = attempt || 0;\n    var activeConfig = root && root.__massimoConfig || config || {};\n    if (!designEnabledFor(activeConfig)) return;\n    try {\n      var params = new URLSearchParams(window.location.search || \"\");\n      if (params.get(\"dv\") || params.get(\"previewId\")) return;\n    } catch (e) {}\n    var toggle = root && $(root, \"[data-massimo-design-toggle]\");\n    if (!toggle) {\n      if (attempt < 30) window.setTimeout(function () { activateDefaultDesignMode(root, config, attempt + 1); }, 200);\n      return;\n    }\n    if (toggle.classList.contains(\"is-active\")) {\n      window.setTimeout(function () { if (previewLoaderVisible(root)) forceHidePreviewLoader(root); }, 7000);\n      return;\n    }\n    if (previewLoaderVisible(root) && attempt < 30) {\n      window.setTimeout(function () { activateDefaultDesignMode(root, config, attempt + 1); }, 250);\n      return;\n    }\n    try { toggle.click(); } catch (e) {}\n    window.setTimeout(function () { if (previewLoaderVisible(root)) forceHidePreviewLoader(root); }, 7000);\n  }\n\n  function init(root, config) {\n    if (!root || !config || !window.MassimoOzelOlcuPreview) return;\n    config = normalizeProductConfig(config);\n    setupZoom(root);\n    ensureSaveUi(root);\n\n    $all(root, \"[data-massimo-family]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        state.family = btn.dataset.massimoFamily || \"canvas\";\n        state.fabric = null;\n        $all(root, \"[data-massimo-family]\").forEach(function (el) {\n          el.classList.toggle(\"is-active\", el === btn);\n        });\n        renderKartelas(root, root.__massimoConfig, root.__massimoPreview, true);\n        syncActiveFabric(root);\n        refreshZoom(root);\n      });\n    });\n\n    [\"width\", \"length\"].forEach(function (key) {\n      var input = $(root, \"[data-massimo-dimension='\" + key + \"']\");\n      if (!input) return;\n      state[key] = Number(input.value || state[key]);\n      input.addEventListener(\"input\", function () {\n        state[key] = Number(input.value || state[key]);\n        updateSummary(root, root.__massimoConfig || config);\n        renderPreview(root, root.__massimoPreview, { showPreview: true, config: root.__massimoConfig || config })\n          .then(function () { refreshZoom(root); })\n          .catch(reportError.bind(null, root));\n      });\n    });\n\n    var addBtn = $(root, \"[data-massimo-add]\");\n    if (addBtn) {\n      addBtn.addEventListener(\"click\", function () {\n        if (addBtn.disabled) return;\n        addBtn.disabled = true;\n        var origText = addBtn.textContent;\n        addBtn.textContent = \"Haz\u0131rlan\u0131yor...\";\n        addToCart(root, root.__massimoConfig || config)\n          .catch(function (err) {\n            reportError(root, err);\n            addBtn.disabled = false;\n            addBtn.textContent = origText;\n          });\n      });\n    }\n\n    var saveBtn = $(root, \"[data-massimo-save]\");\n    if (saveBtn) {\n      saveBtn.addEventListener(\"click\", function () {\n        openSaveModal(root);\n      });\n    }\n    $all(root, \"[data-massimo-save-close]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        closeSaveModal(root);\n      });\n    });\n    var saveSubmit = $(root, \"[data-massimo-save-submit]\");\n    if (saveSubmit) {\n      saveSubmit.addEventListener(\"click\", function () {\n        submitSaveDesign(root, root.__massimoConfig || config).catch(reportError.bind(null, root));\n      });\n    }\n\n    applyConfig(root, config, { showPreview: true });\n    hydrateFromSavedDesign(root, config);\n    activateDefaultDesignMode(root, config, 0);\n    if (!root.__massimoMeasureResizeBound) {\n      root.__massimoMeasureResizeBound = true;\n      window.addEventListener(\"resize\", function () {\n        if (state.previewVisible) {\n          scheduleMeasureOverlaySync(root);\n          /* v165: Pencere yeniden boyutlan\u0131rsa rehber overlay'i de senkronize et */\n          scheduleDesignGuideOverlaySync(root);\n        }\n      }, { passive: true });\n    }\n  }\n\n  function imagesLabel(images, source) {\n    var idx = images.indexOf(source);\n    return idx >= 0 ? \"Gallery image \" + (idx + 1) : \"Configured source image\";\n  }\n\n  async function addToCart(root, config) {\n    if (!config.variantId || !window.fetch) return;\n    var doubleEdge = edgeUsesDoubleFabric(state.edgeType, config);\n    if (doubleEdge && (!state.doubleFabrics.outer || !state.doubleFabrics.inner)) {\n      throw new Error(\"Cift bordur icin dis ve ic kartela secilmeli\");\n    }\n    var shape = currentRenderShapePayload(config || {});\n    var design = currentDesignPayload(config || {});\n    var props = {\n      Marka: \"Massimo\",\n      Kalite: config.qualityCode || \"\",\n      Desen: config.patternCode || \"\",\n      \"Kenar Tipi\": state.edgeType,\n      \"\u015Eekil\": shape.label,\n      \"Amorf Preset\": shape.type === \"amorf\" ? (shape.presetLabel || shape.presetKey || \"\") : \"\",\n      \"Alan\": shapeAreaM2().toFixed(2) + \" m2\",\n      \"\u00C7evre\": shapePerimeterM().toFixed(2) + \" m\",\n      \"Kartela\": doubleEdge ? doubleFabricLabel() : fabricName(state.fabric),\n      \"Dis Bordur Kartela\": doubleEdge ? fabricName(state.doubleFabrics.outer) : \"\",\n      \"Ic Bordur Kartela\": doubleEdge ? fabricName(state.doubleFabrics.inner) : \"\",\n      \"Dis Bordur\": doubleEdge ? \"4 cm\" : \"\",\n      \"Ic Bordur\": doubleEdge ? \"2 cm\" : \"\",\n      \"En\": String(state.width),\n      \"Boy\": String(state.length),\n      \"_massimoOzelOlcu\": \"1\",\n      \"_massimoShapeType\": shape.type,\n      \"_massimoShapePreset\": shape.type === \"amorf\" ? (shape.presetKey || \"\") : \"\",\n      \"_previewBaseImageIndex\": \"1\",\n      \"_patternImageIndex\": \"2\"\n    };\n    if (design.active) {\n      props[\"Tasar\u0131m Modu\"] = \"Kendin Yap\";\n      props[\"\u015Eablon\"] = design.label || design.templateId || \"\";\n      props[\"Premium \u015Eablon\"] = design.premium ? \"Evet\" : \"\";\n      props[\"Varyasyon\"] = design.premium ? premiumVariantLabel(design.premiumVariant) : \"\";\n      props[\"B\u00F6lge Say\u0131s\u0131\"] = String(design.regionCount || (design.regions || []).length || \"\");\n      props[\"B\u00F6lge \u00D6l\u00E7\u00FCleri\"] = designLayoutLabel(design);\n      props[\"B\u00F6lge Atamalar\u0131\"] = designAssignmentsLabel(design);\n      props[\"Par\u00E7a Listesi\"] = (design.regions || []).map(function (region) {\n        return region.label + \" \" + region.widthCm + \"x\" + region.heightCm + \" cm\";\n      }).join(\" / \");\n      props[\"Seam Uzunluklar\u0131\"] = design.designTopology && design.designTopology.seams\n        ? String(design.designTopology.seams.length) + \" seam\"\n        : \"\";\n      // 2026-05-18: K\u00F6\u015Fe Tipleri saved-design metadata kald\u0131r\u0131ld\u0131 (UI \u00F6zelli\u011Fi kullan\u0131lm\u0131yor)\n      props[\"_massimoDesignTemplate\"] = design.templateId || \"\";\n      props[\"_massimoDesignShape\"] = shape.type || \"\";\n      props[\"_massimoDesignTopology\"] = design.designTopology ? JSON.stringify({\n        familyId: design.designTopology.familyId,\n        variant: design.designTopology.variant,\n        seams: design.designTopology.seams\n      }).slice(0, 1800) : \"\";\n      props[\"_massimoDesignLayout\"] = JSON.stringify((design.regions || []).map(function (region) {\n        return {\n          id: region.id,\n          xCm: region.xCm,\n          yCm: region.yCm,\n          widthCm: region.widthCm,\n          heightCm: region.heightCm,\n          cornerModes: region.cornerModes,\n          edgeModes: region.edgeModes\n        };\n      })).slice(0, 1800);\n      props[\"_massimoDesignAssignments\"] = JSON.stringify(design.assignments || {}).slice(0, 1800);\n    }\n\n    // \u2550\u2550\u2550 AMORF / OVAL / DAIRE entegrasyonu \u2550\u2550\u2550\n    // Sepete amorf eklenince DV konvansiyonuyla uyumlu properties yaz\u0131l\u0131r:\n    //  - amorf-sms-checkout.js (cart sayfas\u0131) bu line item'\u0131 amorf sayar \u2192 SMS onay zorunlu olur\n    //  - Her amorf farkl\u0131 _previewId \u2192 multi-amorf ayr\u0131 line item olarak girer (Shopify aggregation yapmaz)\n    //  - Preview canvas + radii config localStorage'a kaydedilir \u2192 cart modal step 3 g\u00F6rsel g\u00F6sterir\n    //  - /amorf-sms-verify backend `_radii` JSON'\u0131 ile her amorf i\u00E7in ayr\u0131 PDF/talep \u00FCretir\n    var isCustomShape = (shape.type === \"amorf\" || shape.type === \"oval\" || shape.type === \"daire\");\n    if (isCustomShape) {\n      var _amorfUid = \"mo_\" + Date.now() + \"_\" + Math.random().toString(36).slice(2, 8);\n      props[\"_shapeType\"] = shape.type;\n      props[\"_presetKey\"] = shape.presetKey || \"\";\n      props[\"_previewId\"] = _amorfUid;\n      if (shape.radii && Array.isArray(shape.radii) && shape.radii.length > 0) {\n        try {\n          var radiiJson = JSON.stringify(shape.radii);\n          props[\"_radii\"] = radiiJson.length > 2900 ? radiiJson.slice(0, 2900) : radiiJson;\n        } catch (e) {}\n      }\n      props[\"_edgeType\"] = state.edgeType;\n      props[\"_width\"] = String(state.width);\n      props[\"_length\"] = String(state.length);\n\n      try {\n        var _previewCanvas = root && root.querySelector(\"[data-massimo-preview-canvas]\");\n        if (_previewCanvas && typeof _previewCanvas.toDataURL === \"function\") {\n          var _previewDataUrl = _previewCanvas.toDataURL(\"image/jpeg\", 0.6);\n          localStorage.setItem(\"ozel_olcu_preview_\" + _amorfUid, _previewDataUrl);\n        }\n      } catch (e) {}\n\n      try {\n        var _amorfCfg = {\n          radii: shape.radii || null,\n          widthCm: state.width,\n          lengthCm: state.length,\n          edgeType: state.edgeType,\n          presetKey: shape.presetKey || \"\",\n          presetLabel: shape.presetLabel || \"\",\n          kalite: config.qualityCode || \"\",\n          desen: config.patternCode || \"\",\n          fabricLabel: fabricName(state.fabric) || \"\",\n          createdAt: Date.now(),\n          source: \"massimo\"\n        };\n        localStorage.setItem(\"ozel_olcu_amorf_config_\" + _amorfUid, JSON.stringify(_amorfCfg));\n      } catch (e) {}\n\n      // Tam snapshot (Tasar\u0131m\u0131 Kaydet ile birebir ayn\u0131) \u2014 PDF 1:1 do\u011Fru \u00FCretimi i\u00E7in\n      try {\n        var _fullSnapshot = buildSaveSnapshot(root, config);\n        var _snapStr = JSON.stringify(_fullSnapshot);\n        if (_snapStr.length < 4 * 1024 * 1024) {\n          localStorage.setItem(\"massimo_full_snapshot_\" + _amorfUid, _snapStr);\n        }\n      } catch (e) {}\n    }\n\n    // Massimo \u00F6zel \u00F6l\u00E7\u00FC: backend variant.price'\u0131 \u00D6NCE g\u00FCnceller, SONRA /cart/add.js \u00E7a\u011Fr\u0131l\u0131r.\n    // B\u00F6ylece line item ger\u00E7ek fiyatla yaz\u0131l\u0131r (0 de\u011Fil). DV \u00FCr\u00FCnleri etkilenmez \u2014\n    // bu kod sadece Massimo addToCart ak\u0131\u015F\u0131nda \u00E7al\u0131\u015F\u0131r.\n    var apiBase = designSaveApiBase(config);\n    var productHandle = (window.location.pathname.split(\"/\").filter(Boolean).pop() || \"\").split(\"?\")[0];\n    var regionsM2 = (design && design.active && Array.isArray(design.regions))\n      ? design.regions\n          .map(function (r) { return (Number(r.widthCm) * Number(r.heightCm)) / 10000; })\n          .filter(function (n) { return Number.isFinite(n) && n > 0; })\n      : [];\n\n    // Phase 1: Backend variant.price'\u0131 g\u00FCncellesin (mutex korumal\u0131)\n    var prepRes = await fetch(apiBase + \"/cart-prepare\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\", \"Accept\": \"application/json\" },\n      body: JSON.stringify({\n        quality: config.qualityCode,\n        pattern: config.patternCode,\n        width: state.width,\n        length: state.length,\n        edgeType: state.edgeType,\n        shapeType: shape.type,\n        productHandle: productHandle,\n        regionsM2: regionsM2\n      })\n    });\n    var prepData = null;\n    try { prepData = await prepRes.json(); } catch (e) { prepData = null; }\n    if (!prepRes.ok || !prepData || !prepData.ok) {\n      var prepMsg = (prepData && (prepData.message || prepData.error)) || (\"HTTP \" + prepRes.status);\n      throw new Error(\"Haz\u0131rlama ba\u015Far\u0131s\u0131z: \" + prepMsg);\n    }\n\n    // Stok durumu \u2014 backend cart-prepare'in d\u00F6nd\u00FCrd\u00FC\u011F\u00FC `stockStatus` ile cart property'lerine yans\u0131t\n    var _stockStatus = String(prepData.stockStatus || 'made_to_order');\n    var _stockMessageShort = prepData.stockMessageShort || (_stockStatus === 'in_stock' ? '\u2713 Stokta mevcut' : '\u23F3 Stokta yok \u2014 \u00D6zel \u00DCretim');\n    var _deliveryEstimate = prepData.deliveryEstimate || (_stockStatus === 'in_stock' ? '3-5 i\u015F g\u00FCn\u00FC i\u00E7inde kargoda' : '15 i\u015F g\u00FCn\u00FC i\u00E7inde \u00F6zel olarak \u00FCretilecek');\n    props[\"Stok Durumu\"] = _stockMessageShort;\n    props[\"Teslim S\u00FCresi\"] = _deliveryEstimate;\n    if (_stockStatus === 'made_to_order') {\n      props[\"\u00DCretim Notu\"] = \"Bu \u00FCr\u00FCn \u00F6zel olarak sizin i\u00E7in \u00FCretilecektir. 15 i\u015F g\u00FCn\u00FC i\u00E7inde kargoya verilecektir.\";\n    }\n    props[\"_stockStatus\"] = _stockStatus;\n\n    // Phase 2: \u015Eimdi cart-add \u2014 variant.price g\u00FCncel oldu\u011Fu i\u00E7in line item do\u011Fru fiyatla yaz\u0131l\u0131r\n    var addRes = await fetch(\"/cart/add.js\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\", \"Accept\": \"application/json\" },\n      body: JSON.stringify({ id: config.variantId, quantity: 1, properties: props })\n    });\n    if (!addRes.ok) {\n      // Mutex'i b\u0131rak ki ba\u015Fka kullan\u0131c\u0131 bekletilmesin\n      fetch(apiBase + \"/cart-finalize\", {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application/json\" },\n        body: JSON.stringify({ variantId: prepData.variantId, lockToken: prepData.lockToken })\n      }).catch(function () {});\n      throw new Error(\"Cart add failed (HTTP \" + addRes.status + \")\");\n    }\n\n    // Phase 3: Mutex'i erken release (fire-and-forget)\n    fetch(apiBase + \"/cart-finalize\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({ variantId: prepData.variantId, lockToken: prepData.lockToken })\n    }).catch(function () {});\n\n    var status = $(root, \"[data-massimo-status]\");\n    if (status) status.textContent = \"Sepete eklendi\";\n    // Sepet sayfas\u0131na y\u00F6nlendir (kullan\u0131c\u0131 checkout'a kendi karar verir)\n    window.location.href = \"/cart\";\n  }\n\n  document.addEventListener(\"keydown\", function (event) {\n    if (event.key !== \"Escape\") return;\n    var root = document.querySelector(\"[data-massimo-ozel-olcu]\");\n    if (!root) return;\n    var modal = saveModal(root);\n    if (modal && !modal.hidden) {\n      closeSaveModal(root);\n      event.preventDefault();\n      return;\n    }\n    if (!state.designPickerOpen && !state.shapePickerOpen) return;\n    if (state.designPickerOpen) state.designPickerOpen = false;\n    if (state.shapePickerOpen) state.shapePickerOpen = false;\n    document.body.classList.remove(\"massimo-oo-template-picker-open\");\n    document.body.classList.remove(\"massimo-oo-shape-picker-open\");\n    renderShapeControls(root, root.__massimoConfig || {}, root.__massimoPreview);\n    renderDesignControls(root, root.__massimoConfig || {}, root.__massimoPreview);\n    event.preventDefault();\n  });\n\n  function boot(attempt) {\n    attempt = attempt || 0;\n    var embeddedConfigReady = !!document.querySelector(\"[data-massimo-ozel-olcu] script[type='application/json'][data-massimo-config]\");\n    var configReady = embeddedConfigReady || !!(window.__MASSIMO_ALL_CONFIGS__ && window.__MASSIMO_ALL_CONFIGS__.products);\n    var previewReady = !!window.MassimoOzelOlcuPreview;\n    if (!expectedPreviewReady()) loadExpectedPreviewPatch();\n    if ((!configReady || !previewReady || (!expectedPreviewReady() && attempt < 12)) && attempt < 80) {\n      window.setTimeout(function () { boot(attempt + 1); }, 150);\n      return;\n    }\n    var roots = document.querySelectorAll(\"[data-massimo-ozel-olcu]\");\n    roots.forEach(function (root) {\n      if (root.__massimoBootBuild === BUILD) return;\n      root.__massimoBootBuild = BUILD;\n      var config = window.__MASSIMO_OZEL_OLCU_CONFIG__;\n      var script = root.querySelector(\"script[type='application/json'][data-massimo-config]\");\n      if (script) {\n        try { config = JSON.parse(script.textContent); } catch (e) { reportError(root, e); }\n      }\n      init(root, config || {});\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", boot);\n  } else {\n    boot();\n  }\n})();\n;\n(function(){\n  \"use strict\";\n  // Legacy native texture modal is disabled. The Massimo zoom modal above is\n  // the single supported detail view, so it must not be cloned or hijacked.\n  window.__MZ_NATIVE_UI_BOOTSTRAP_V3 = \"disabled-by-massimo-zoom\";\n  window.__MZ_NATIVE_LOADED = \"disabled-by-massimo-zoom\";\n  return;\n  var MARKER = \"MZ_NATIVE_UI_BOOTSTRAP_V3_177965_FIX\";\n  if (window.__MZ_NATIVE_UI_BOOTSTRAP_V3) return;\n  window.__MZ_NATIVE_UI_BOOTSTRAP_V3 = MARKER;\n  window.__MZ_NATIVE_LOADED = \"ui-v3\";\n  var LOG_PREFIX = \"[mz-native-ui]\";\n  function log(){ try { console.log.apply(console, [LOG_PREFIX].concat(Array.prototype.slice.call(arguments))); } catch (_) {} }\n  function normalizeUrl(url){ if (!url) return \"\"; url = String(url); if (url.indexOf(\"//\") === 0) return window.location.protocol + url; if (url.indexOf(\"/\") === 0) return window.location.origin + url; return url; }\n  function getEmbeddedConfig(){ var sc = document.querySelector(\"script[type='application/json'][data-massimo-config], script[data-massimo-config]\"); if (!sc) return null; try { return JSON.parse(sc.textContent || \"{}\"); } catch (_) { return null; } }\n  function patternKeyFromEmbed(embed){ if (!embed) return \"\"; if (embed.key) return String(embed.key); if (embed.qualityCode && embed.patternCode) return String(embed.qualityCode) + \"-\" + String(embed.patternCode); var h = String(embed.handle || embed.productHandle || embed.shopifyHandle || \"\"); return h.replace(/^massimo-carpet-/, \"\"); }\n  function globalProduct(key, embed){ var all = window.__MASSIMO_ALL_CONFIGS__; var products = all && all.products; if (!products) return null; if (key && products[key]) return products[key]; var handle = embed && String(embed.handle || embed.productHandle || embed.shopifyHandle || \"\"); if (!handle) return null; for (var k in products) { if (!Object.prototype.hasOwnProperty.call(products, k)) continue; var p = products[k] || {}; if (p.productHandle === handle || p.shopifyHandle === handle || p.handle === handle) return p; var hs = p.shopifyHandles; if (hs && typeof hs === \"object\") { for (var hk in hs) { if (hs[hk] === handle) return p; } } } return null; }\n  function escapeRegExp(s){ var specials = \"\\\\^$.*+?()[]{}|\"; return String(s || \"\").split(\"\").map(function(ch){ return specials.indexOf(ch) >= 0 ? \"\\\\\" + ch : ch; }).join(\"\"); }\n  function pickPatternImageFromBlock(text, key){ if (!text || !key) return \"\"; var safe = escapeRegExp(key); var re = new RegExp(\"[\\\"']?\" + safe + \"[\\\"']?\\s*:\\s*\\{\"); var m = text.match(re); if (!m) return \"\"; var start = m.index + m[0].length - 1; var depth = 0; var end = -1; for (var i = start; i < text.length; i++) { var ch = text.charAt(i); if (ch === \"{\") depth++; else if (ch === \"}\") { depth--; if (depth === 0) { end = i; break; } } } if (end < 0) return \"\"; var block = text.slice(start, end + 1); var pi = block.match(/[\\\"']?patternImage[\\\"']?\\s*:\\s*[\\\"]([^\\\"]+)/); return pi ? pi[1] : \"\"; }\n  function configScriptUrl(){ var scripts = Array.prototype.slice.call(document.scripts || []); for (var i = 0; i < scripts.length; i++) { var src = scripts[i].src || \"\"; if (src.indexOf(\"massimo-ozel-olcu-config.js\") >= 0 && src.indexOf(\"/cdn/shop/\") >= 0) return src; } return \"/cdn/shop/t/530/assets/massimo-ozel-olcu-config.js?v=\" + Date.now(); }\n  async function resolveTextureUrl(){ var embed = getEmbeddedConfig(); var key = patternKeyFromEmbed(embed); var p = globalProduct(key, embed); if (p && p.patternImage) return normalizeUrl(p.patternImage); if (embed && embed.patternImage) return normalizeUrl(embed.patternImage); if (embed && embed.productImages && embed.patternImageIndex != null && embed.productImages[embed.patternImageIndex]) log(\"embedded config has only gallery image; using remote config fallback\", key); var urls = [configScriptUrl(), \"/cdn/shop/t/530/assets/massimo-ozel-olcu-config.js?v=\" + Date.now()]; for (var i = 0; i < urls.length; i++) { try { var text = await fetch(normalizeUrl(urls[i]), { cache: \"reload\" }).then(function(r){ return r.text(); }); var found = pickPatternImageFromBlock(text, key); if (found) return normalizeUrl(found); } catch (e) { log(\"config fallback failed\", e && e.message); } } return \"\"; }\n  function injectStyle(){ var existing = document.getElementById(\"mz-native-style\"); if (existing && existing.dataset && existing.dataset.uiV3 === \"1\") return; if (existing) existing.remove(); var style = document.createElement(\"style\"); style.id = \"mz-native-style\"; style.dataset.uiV3 = \"1\"; style.textContent = \"#mz-native-modal{position:fixed;inset:0;z-index:99999;display:none;background:#100d0a;color:#fff}#mz-native-modal.is-open{display:flex;flex-direction:column}#mz-native-modal .mz-backdrop{position:absolute;inset:0;background:rgba(15,12,8,.96)}#mz-native-modal .mz-header,#mz-native-modal .mz-zoom-bar,#mz-native-modal .mz-foot{position:relative;z-index:5;background:rgba(0,0,0,.42);border-color:rgba(255,255,255,.1)}#mz-native-modal .mz-header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}#mz-native-modal .mz-title{font-size:14px;font-weight:600;display:flex;gap:10px;align-items:center}#mz-native-modal .mz-badge{background:#8f5f34;color:#fff;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:700}#mz-native-modal .mz-close{background:#fff;color:#222;border:0;padding:8px 18px;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px}#mz-native-modal .mz-zoom-bar{padding:8px 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.08)}#mz-native-modal .mz-label{color:rgba(255,255,255,.68);font-size:11px;margin-right:6px}#mz-native-modal .mz-zoom-bar button{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.16);padding:6px 14px;border-radius:18px;cursor:pointer;font-weight:600;font-size:12px}#mz-native-modal .mz-zoom-bar button.is-active{background:#8f5f34;border-color:#8f5f34}#mz-native-modal .mz-stage{position:relative;z-index:4;flex:1;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pinch-zoom;display:flex;align-items:center;justify-content:center;padding:20px}#mz-native-modal .mz-img-wrap{position:relative;display:inline-block;transition:transform .2s ease;transform-origin:center center}#mz-native-modal .mz-img{display:block;max-width:90vmin;max-height:80vh;width:auto;height:auto;image-rendering:-webkit-optimize-contrast;box-shadow:0 10px 40px rgba(0,0,0,.5);border-radius:4px}#mz-native-modal .mz-loading{color:#fff;font-size:14px;opacity:.75;padding:40px;text-align:center}#mz-native-modal .mz-foot{padding:8px 16px;color:rgba(255,255,255,.62);font-size:11px;text-align:center;line-height:1.4}@media(max-width:768px){#mz-native-modal .mz-stage{padding:12px}#mz-native-modal .mz-img{max-width:96vmin;max-height:70vh}#mz-native-modal .mz-header{padding:10px 12px}}\"; document.head.appendChild(style); }\n  function injectModal(){ var old = document.getElementById(\"mz-native-modal\"); if (old && old.dataset && old.dataset.v === \"ui-v3\") return old; if (old) old.remove(); var modal = document.createElement(\"div\"); modal.id = \"mz-native-modal\"; modal.dataset.v = \"ui-v3\"; modal.innerHTML = '<div class=\"mz-backdrop\"></div><div class=\"mz-header\"><div class=\"mz-title\"><span class=\"mz-badge\">8K NATIVE</span><span>Hali Doku - Detayli Gorunum</span></div><button class=\"mz-close\" type=\"button\">Kapat</button></div><div class=\"mz-zoom-bar\"><span class=\"mz-label\">YAKINLASTIR:</span><button type=\"button\" data-zoom=\"1\" class=\"is-active\">1x</button><button type=\"button\" data-zoom=\"1.5\">1.5x</button><button type=\"button\" data-zoom=\"2.5\">2.5x</button><button type=\"button\" data-zoom=\"4\">4x</button><button type=\"button\" data-zoom=\"6\">6x</button><button type=\"button\" data-zoom=\"8\">8x</button></div><div class=\"mz-stage\"><div class=\"mz-img-wrap\"><img class=\"mz-img\" alt=\"hali dokusu\"></div><div class=\"mz-loading\" style=\"display:none\">Doku yukleniyor...</div></div><div class=\"mz-foot\">iPhone ve mobil tarayicilarda iki parmakla yakinlastirma desteklenir.</div>'; document.body.appendChild(modal); function close(){ modal.classList.remove(\"is-open\"); document.body.style.overflow = \"\"; } modal.querySelector(\".mz-close\").addEventListener(\"click\", close); modal.querySelector(\".mz-backdrop\").addEventListener(\"click\", close); var wrap = modal.querySelector(\".mz-img-wrap\"); Array.prototype.forEach.call(modal.querySelectorAll(\".mz-zoom-bar button\"), function(btn){ btn.addEventListener(\"click\", function(){ var z = parseFloat(btn.getAttribute(\"data-zoom\") || \"1\"); wrap.style.transform = \"scale(\" + z + \")\"; Array.prototype.forEach.call(modal.querySelectorAll(\".mz-zoom-bar button\"), function(b){ b.classList.remove(\"is-active\"); }); btn.classList.add(\"is-active\"); }); }); document.addEventListener(\"keydown\", function(e){ if (e.key === \"Escape\" && modal.classList.contains(\"is-open\")) close(); }); return modal; }\n  async function openModal(){ injectStyle(); var modal = injectModal(); var img = modal.querySelector(\".mz-img\"); var loading = modal.querySelector(\".mz-loading\"); var wrap = modal.querySelector(\".mz-img-wrap\"); wrap.style.transform = \"scale(1)\"; Array.prototype.forEach.call(modal.querySelectorAll(\".mz-zoom-bar button\"), function(b){ b.classList.toggle(\"is-active\", b.getAttribute(\"data-zoom\") === \"1\"); }); modal.classList.add(\"is-open\"); document.body.style.overflow = \"hidden\"; loading.style.display = \"block\"; img.style.display = \"block\"; img.style.visibility = \"hidden\"; var url = await resolveTextureUrl(); if (!url) { loading.textContent = \"Doku URL bulunamadi.\"; return; } img.onload = function(){ loading.style.display = \"none\"; img.style.display = \"block\"; img.style.visibility = \"visible\"; log(\"img loaded\", img.naturalWidth + \"x\" + img.naturalHeight, url); }; img.onerror = function(){ loading.textContent = \"Doku yuklenemedi.\"; log(\"img error\", url); }; img.src = url; }\n  function hookButton(){ var btn = document.querySelector(\".massimo-oo__zoom-button, [data-massimo-zoom-open]\"); if (!btn) return false; if (btn.dataset && btn.dataset.mzNativeUiBoot === \"1\") return true; var clone = btn.cloneNode(true); clone.dataset.mzNativeUiBoot = \"1\"; clone.dataset.mzHookedV2 = \"1\"; btn.parentNode.replaceChild(clone, btn); clone.addEventListener(\"click\", function(e){ e.preventDefault(); e.stopImmediatePropagation(); openModal(); }, true); window.__MZ_NATIVE_INSTALLED = true; log(\"button hooked\", MARKER); return true; }\n  function boot(){ injectStyle(); injectModal(); hookButton(); var scheduled = false; var obs = new MutationObserver(function(){ if (scheduled) return; scheduled = true; setTimeout(function(){ scheduled = false; hookButton(); }, 60); }); if (document.body) obs.observe(document.body, { childList: true, subtree: true }); setTimeout(hookButton, 500); setTimeout(hookButton, 1500); window.__MZ_NATIVE_INSTALLED = true; }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot); else boot();\n})();\n"],
  "mappings": "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",
  "names": ["zoom"]
}
