{"format":"murdoku-puzzle/1","id":"wedding-suit","iconSet":"catalogue","version":1,"difficulty":"easy","level":3,"size":{"rows":6,"cols":6},"languages":["en","hu","de","fr","es","it","nl","pl","pt","ro","ca","cs","fi","vi","tr","el","ru","uk","ar","ko","ja","zh-Hans","zh-Hant"],"defaultLanguage":"en","title":"Hääpuku","tagline":"Porto, perjantai-ilta · räätälinliike Rua de Cedofeitalla · puku huomiseksi ja lasku kankaasta","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-10-19","story":"Portossa Rua de Cedofeitan räätälinliike on ommellut hääpukuja kolmen sukupolven ajan. Perjantai-iltana räätälimestari, ompelija ja oppipoika olivat töissä, ja sulhanen tuli viimeiseen sovitukseen morsiamen äidin kanssa. Violeta, kangaskauppias, saapui laskun kanssa mutta oli kahdeksalta jo poissa. Liikkeessä oli kuusi ihmistä. Violeta löydettiin kuolleena. Laskua ei maksanut kukaan.","rules":{"standard":["Jokaisella <b>rivillä</b> ja jokaisessa <b>sarakkeessa</b> on täsmälleen <b>yksi henkilö</b>. Heti kun sijoitat jonkun, yliviivaa koko hänen rivinsä ja sarakkeensa.","<b>”Vieressä”</b> = suoraan vasemmalla, oikealla, yläpuolella tai alapuolella, ja <b>samalla alueella</b>. Esineiden ruudut (tiski, mittanukke, peili, pöydät, hylly, laatikko, ompelukoneet ja naulakko) eivät voi olla miehitettyjä; jakkarat ja tuoli sen sijaan voivat.","Suunnat viittaavat riveihin ja sarakkeisiin, eivät samaan linjaan: <i>”täsmälleen yhden rivin päässä hänen pohjoispuolellaan oli nainen”</i> = suoraan ylemmällä rivillä oleva henkilö oli nainen, missä tahansa sarakkeessa; <i>”alueensa pohjoisin henkilö”</i> = kukaan muu hänen alueellaan ei ollut ylemmällä rivillä.","Murhaaja oli <b>yksin uhrin kanssa</b>: kukaan muu ei ollut sillä alueella. Uhri ei antanut lausuntoa – hänenkin ruutunsa seuraa muiden lausunnoista."],"special":[],"notes":[],"example":{}},"roleNames":{"workshop":"liikkeen jäsen","customer":"asiakas","merchant":"kauppias","victim":"uhri"},"personGroups":[{"id":"workshop","name":"Liike","persons":["A","B","C"]},{"id":"visitors","name":"Vierailijat","persons":["D","E","V"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Shop","cells":[[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,2],[3,3],[4,3]],"fill":"#dfe9ee","pattern":"tiles","labelAt":[1,1.5],"name":"Myymälä"},{"id":"Fitting Room","cells":[[1,4],[1,5],[2,4]],"fill":"#e6dcc8","pattern":"boards","labelAt":[1,4],"name":"Sovitushuone"},{"id":"Cutting Room","cells":[[1,6],[2,5],[2,6],[3,4],[3,5],[3,6],[4,6]],"fill":"#efd9c9","pattern":"marble","labelAt":[1,6],"name":"Leikkuuhuone"},{"id":"Stockroom","cells":[[3,1],[4,1],[4,2],[5,1],[6,1],[6,2]],"fill":"#f2e6c8","pattern":"planks","labelAt":[3,1],"name":"Varasto"},{"id":"Sewing Room","cells":[[4,4],[4,5],[5,2],[5,3],[5,4],[5,5],[6,3]],"fill":"#d5e6d8","pattern":"tiles","labelAt":[4,4.5],"name":"Ompeluhuone"},{"id":"Pressing Room","cells":[[5,6],[6,4],[6,5],[6,6]],"fill":"#d9d6e0","pattern":"tiles","labelAt":[5,6],"name":"Silityshuone"}],"objectTypes":{"counter":{"occupiable":false,"name":"tiski","icon":"<rect x=\"0\" y=\"10\" width=\"46\" height=\"26\" fill=\"#a97c50\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"0\" y=\"10\" width=\"46\" height=\"7\" fill=\"#c9a06f\"/>"},"mannequin":{"occupiable":false,"name":"mittanukke","icon":"<circle cx=\"23\" cy=\"8\" r=\"4\" fill=\"#d9d5cc\" stroke=\"#8c8a82\"/><path d=\"M15 14 h16 l3 16 h-22 z\" fill=\"#c8536a\" stroke=\"#7a2a3c\" stroke-width=\"1.2\"/><line x1=\"23\" y1=\"30\" x2=\"23\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><line x1=\"15\" y1=\"41\" x2=\"31\" y2=\"41\" stroke=\"#5b5852\" stroke-width=\"2.5\"/>"},"mirror":{"occupiable":false,"name":"peili","icon":"<rect x=\"12\" y=\"4\" width=\"22\" height=\"38\" rx=\"9\" fill=\"#c9a03a\" stroke=\"#7a5a12\" stroke-width=\"1.5\"/><rect x=\"15\" y=\"7\" width=\"16\" height=\"32\" rx=\"7\" fill=\"#dfe9ee\"/><path d=\"M19 11 q-3 8 0 20\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"2.5\" opacity=\".8\"/>"},"stool":{"occupiable":true,"name":"jakkara","icon":"<circle cx=\"23\" cy=\"23\" r=\"11\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><circle cx=\"23\" cy=\"23\" r=\"5\" fill=\"#d9d5cc\"/>"},"table":{"occupiable":false,"name":"pöytä","icon":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"32\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"22\" rx=\"3\" fill=\"#d1a675\"/>","iconTall":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"78\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"68\" rx=\"3\" fill=\"#d1a675\"/>"},"shelf":{"occupiable":false,"name":"hylly","icon":"<rect x=\"8\" y=\"5\" width=\"30\" height=\"36\" fill=\"#8f6a44\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"11\" y=\"9\" width=\"24\" height=\"8\" fill=\"#e6cfa8\"/><rect x=\"11\" y=\"20\" width=\"24\" height=\"8\" fill=\"#d4b98f\"/><rect x=\"11\" y=\"31\" width=\"24\" height=\"8\" fill=\"#e6cfa8\"/>"},"crate":{"occupiable":false,"name":"laatikko","icon":"<rect x=\"6\" y=\"10\" width=\"34\" height=\"30\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"6\" y1=\"20\" x2=\"40\" y2=\"20\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"6\" y1=\"30\" x2=\"40\" y2=\"30\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"17\" y1=\"10\" x2=\"17\" y2=\"40\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><line x1=\"29\" y1=\"10\" x2=\"29\" y2=\"40\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/>"},"sewing":{"occupiable":false,"name":"ompelukone","icon":"<rect x=\"6\" y=\"30\" width=\"34\" height=\"10\" rx=\"2\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><path d=\"M11 30 v-16 h8 v8 h12 v-10 h6 v18 z\" fill=\"#3d444b\" stroke=\"#161c25\" stroke-width=\"1.2\"/><circle cx=\"34\" cy=\"17\" r=\"3\" fill=\"#9aa1a8\"/>"},"chair":{"occupiable":true,"name":"tuoli","icon":"<rect x=\"9\" y=\"7\" width=\"28\" height=\"32\" rx=\"6\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"7\" width=\"28\" height=\"9\" rx=\"4\" fill=\"#d9d5cc\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/>"},"rack":{"occupiable":false,"name":"naulakko","icon":"<line x1=\"6\" y1=\"10\" x2=\"40\" y2=\"10\" stroke=\"#5b5852\" stroke-width=\"3\"/><line x1=\"9\" y1=\"10\" x2=\"9\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><line x1=\"37\" y1=\"10\" x2=\"37\" y2=\"40\" stroke=\"#5b5852\" stroke-width=\"2.5\"/><path d=\"M15 14 v2 h8 v14 h-8 z\" fill=\"#c8536a\"/><path d=\"M25 14 v2 h7 v12 h-7 z\" fill=\"#3a6fb0\"/><line x1=\"19\" y1=\"10\" x2=\"19\" y2=\"14\" stroke=\"#333\"/><line x1=\"28\" y1=\"10\" x2=\"28\" y2=\"14\" stroke=\"#333\"/>"}},"wallTypes":{},"objects":[{"cell":[1,1],"type":"counter"},{"cell":[1,5],"type":"mirror"},{"cell":[2,2],"type":"mannequin"},{"cell":[2,3],"type":"stool"},{"cell":[2,6],"type":"table"},{"cell":[3,5],"type":"stool"},{"cell":[3,6],"type":"table"},{"cell":[4,5],"type":"sewing"},{"cell":[5,1],"type":"shelf"},{"cell":[5,3],"type":"sewing"},{"cell":[5,4],"type":"chair"},{"cell":[6,2],"type":"crate"},{"cell":[6,6],"type":"rack"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Albano","gender":"M","role":"workshop","color":"#c62828","avatar":{"bg":"#2f4858","skin":"#c98d62","hair":"#1c1a1a","style":"short","beard":true,"shirt":"#c62828"},"clue":"Jossain hänen <b>rivillään</b> oli <b>peili</b>. Jossain hänen <b>sarakkeessaan</b> oli <b>naulakko</b>.","job":"räätälimestari","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Albano\"><rect width=\"80\" height=\"80\" fill=\"#2f4858\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#c62828\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#c98d62\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#c98d62\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#1c1a1a\"/></svg>","solverRole":"workshop","constraints":[{"type":"row_has","obj":"mirror"},{"type":"col_has","obj":"rack"}]},{"id":"B","name":"Benedita","gender":"F","role":"workshop","color":"#1565c0","avatar":{"bg":"#5b2c6f","skin":"#f0cdb0","hair":"#2a1c14","style":"ponytail","headband":"#ffffff","shirt":"#1565c0"},"clue":"Jossain hänen alueellaan oli <b>mittanukke</b>.","job":"ompelija","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Benedita\"><rect width=\"80\" height=\"80\" fill=\"#5b2c6f\"/><path d=\"M50 30 Q64 34 60 62 L54 62 Q56 40 48 36 Z\" fill=\"#2a1c14\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1565c0\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f0cdb0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f0cdb0\"/><path d=\"M26 33 Q26 16 40 16 Q54 16 54 33 Q50 24 40 24 Q30 24 26 33 Z\" fill=\"#2a1c14\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><rect x=\"26\" y=\"23\" width=\"28\" height=\"5\" rx=\"2\" fill=\"#ffffff\"/></svg>","solverRole":"workshop","constraints":[{"type":"area_has","obj":"mannequin"}]},{"id":"C","name":"Cândido","gender":"M","role":"workshop","color":"#2e7d32","avatar":{"bg":"#1b2a33","skin":"#f1c8a5","hair":"#5a5a5a","style":"slick","mustache":true,"mustacheColor":"#5a5a5a","shirt":"#2e7d32"},"clue":"Hän oli <b>ainoa mies</b> <b>tuolin</b> vieressä.","job":"oppipoika","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cândido\"><rect width=\"80\" height=\"80\" fill=\"#1b2a33\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2e7d32\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f1c8a5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f1c8a5\"/><path d=\"M26 30 Q27 16 44 15 Q56 15 55 26 Q48 22 40 23 Q30 24 26 30 Z\" fill=\"#5a5a5a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M33 41 Q40 37 47 41 Q40 43 33 41 Z\" fill=\"#5a5a5a\"/></svg>","solverRole":"workshop","constraints":[{"type":"only_beside","obj":"chair","gender":"M"}]},{"id":"D","name":"Delfina","gender":"F","role":"customer","color":"#6a1b9a","avatar":{"bg":"#6e2c4b","skin":"#e7b98f","hair":"#1c1a1a","style":"bun","earrings":true,"shirt":"#6a1b9a"},"clue":"Hän oli <b>sovitushuoneessa</b>.","job":"morsiamen äiti","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Delfina\"><rect width=\"80\" height=\"80\" fill=\"#6e2c4b\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#6a1b9a\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e7b98f\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e7b98f\"/><circle cx=\"40\" cy=\"15\" r=\"7\" fill=\"#1c1a1a\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"26\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/><circle cx=\"54\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/></svg>","solverRole":"customer","constraints":[{"type":"area","areas":["Fitting Room"]}]},{"id":"E","name":"Ernesto","gender":"M","role":"customer","color":"#e65100","avatar":{"bg":"#3d5a6e","skin":"#e9bf9b","hair":"#2a1c14","style":"short","cap":true,"beard":true,"shirt":"#e65100"},"clue":"Hän <b>ei</b> ollut <b>hyllyn</b> vieressä. Hän oli <b>täsmälleen yhden rivin päässä Beneditan eteläpuolella</b>.","job":"sulhanen","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Ernesto\"><rect width=\"80\" height=\"80\" fill=\"#3d5a6e\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#e65100\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e9bf9b\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e9bf9b\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#2a1c14\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#2a1c14\"/><path d=\"M24 24 Q24 11 40 11 Q56 11 56 24 Z\" fill=\"#22406f\"/><rect x=\"22\" y=\"22\" width=\"36\" height=\"5\" rx=\"2\" fill=\"#12213a\"/><circle cx=\"40\" cy=\"18\" r=\"2.6\" fill=\"#f0b429\"/></svg>","solverRole":"customer","constraints":[{"type":"not_beside","obj":"shelf"},{"type":"rel","q":"B","dir":"S","exact":1}]},{"id":"V","name":"Violeta","gender":"F","role":"victim","color":"#1b1b1b","avatar":{"bg":"#35607a","skin":"#f3d3b5","hair":"#d9b464","style":"long","necklace":true,"shirt":"#1b1b1b"},"clue":"<b>Uhri.</b> Hän oli yksin murhaajan kanssa.","job":"kangaskauppias","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Violeta\"><rect width=\"80\" height=\"80\" fill=\"#35607a\"/><path d=\"M22 42 Q20 14 40 14 Q60 14 58 42 L62 72 L18 72 Z\" fill=\"#d9b464\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1b1b1b\"/><path d=\"M31 58 Q40 66 49 58\" fill=\"none\" stroke=\"#f3e2b3\" stroke-width=\"2\" stroke-dasharray=\"2 2\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f3d3b5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f3d3b5\"/><path d=\"M26 36 Q26 16 40 16 Q54 16 54 36 Q52 24 40 24 Q28 24 26 36 Z\" fill=\"#d9b464\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"merchant","constraints":[]}],"victim":"V","solver":{"rules":[],"occupiable":["stool","chair"]},"score":1.0115,"seal":{"board":"2a69ea83cb373bb0e7a3ffcb13899bdb39b57a338b55877f7e67fb1e23ab84b4","murderer":"606b06a7c7bb691c9f6675a14df3e4693d36b3eac4c80bafc175c97a9fd0e101"}}