{"roots":["3778:56167"],"nodeById":{"3778:56167":{"type":"WEBPAGE","id":"3778:56167","name":"/internetmuseum","absoluteBoundingBox":{"x":18214.0,"y":-31131.0,"width":1408.0,"height":1244.0},"isolatedAbsoluteRenderBounds":{"x":18214.0,"y":-31131.0,"width":1408.0,"height":1244.0},"relativeTransform":[[1.0,0.0,18214.0],[0.0,1.0,-31131.0]],"size":{"x":1408.0,"y":1244.0},"fills":[{"opacity":0.298039227724075,"blendMode":"NORMAL","type":"SOLID","color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"visible":true}],"strokeAlign":"INSIDE","strokes":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"children":["3778:56168"]},"3778:56168":{"type":"FRAME","id":"3778:56168","name":"Desktop","absoluteBoundingBox":{"x":18278.0,"y":-31031.0,"width":1280.0,"height":1080.0},"isolatedAbsoluteRenderBounds":{"x":18278.0,"y":-31031.0,"width":1280.0,"height":1080.0},"relativeTransform":[[1.0,0.0,64.0],[0.0,1.0,100.0]],"size":{"x":1280.0,"y":1080.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"clipsContent":true,"overflowDirection":"VERTICAL_SCROLLING","isBreakpointFrame":true,"children":["3778:56174"]},"2482:2702":{"type":"TEXT","id":"2482:2702","name":"Rich text/Body","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":16.0,"height":16.0},"isolatedAbsoluteRenderBounds":{"x":0.584000051021576,"y":5.35199975967407,"width":14.5010013580322,"height":5.72800016403198},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":16.0,"y":16.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":8.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.8,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":16.0,"lineHeightPercent":160.0,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3009:875":{"type":"TEXT","id":"3009:875","name":"Rich text/Header 3","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":57.0,"height":42.0},"isolatedAbsoluteRenderBounds":{"x":2.3360002040863,"y":10.5999984741211,"width":49.1325035095215,"height":29.7600021362305},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":57.0,"y":42.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":32.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.96,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":41.5999984741211,"lineHeightPercent":104.0,"lineHeightPercentFontSize":130.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:4037":{"type":"TEXT","id":"4084:4037","name":"Desktop/HHG - List Content","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":27.0,"height":21.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":27.0,"height":21.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":27.0,"y":21.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.0,"lineHeightPercent":120.0,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2940:2583":{"type":"TEXT","id":"2940:2583","name":"Rich text/Project List","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":16.0,"height":17.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":4.96000003814697,"width":15.7127819061279,"height":10.1400003433228},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":16.0,"y":17.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Work Sans","fontPostScriptName":"WorkSans-Light","fontStyle":"Light","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","textDecoration":"UNDERLINE","textDecorationSkipInk":true,"fontSize":12.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":16.7999992370605,"lineHeightPercent":119.352088928223,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2704":{"type":"TEXT","id":"2482:2704","name":"Rich text/Menu","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":19.0,"height":14.0},"isolatedAbsoluteRenderBounds":{"x":0.730000078678131,"y":3.93999981880188,"width":17.1262512207031,"height":7.16000080108643},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":19.0,"y":14.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.0,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3009:874":{"type":"TEXT","id":"3009:874","name":"Rich text/Header 2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":86.0,"height":53.0},"isolatedAbsoluteRenderBounds":{"x":3.50400018692017,"y":11.3999977111816,"width":73.6987533569336,"height":44.6400032043457},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":86.0,"y":53.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":48.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-1.44,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":52.8000030517578,"lineHeightPercent":88.0,"lineHeightPercentFontSize":110.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3449:2722":{"type":"TEXT","id":"3449:2722","name":"Desktop/HHG - Component H1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":13.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":9.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.45,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.5999994277954,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3009:873":{"type":"TEXT","id":"3009:873","name":"Rich text/Header 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":114.0,"height":70.0},"isolatedAbsoluteRenderBounds":{"x":4.67200040817261,"y":14.1999969482422,"width":98.5850067138672,"height":59.5200042724609},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":114.0,"y":70.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":64.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-1.6,"letterSpacingValue":-2.5,"letterSpacingUnit":"PERCENT","lineHeightPx":70.4000015258789,"lineHeightPercent":88.0,"lineHeightPercentFontSize":110.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2940:2581":{"type":"TEXT","id":"2940:2581","name":"Rich text/Qoute","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":48.0,"height":48.0},"isolatedAbsoluteRenderBounds":{"x":1.75200009346008,"y":16.0559997558594,"width":43.503002166748,"height":17.1840019226074},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":48.0,"y":48.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":2.4,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":48.0,"lineHeightPercent":160.0,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2703":{"type":"TEXT","id":"2482:2703","name":"Rich text/h1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":68.0,"height":26.0},"isolatedAbsoluteRenderBounds":{"x":2.62800025939941,"y":1.58399927616119,"width":61.6545028686523,"height":25.7760009765625},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":68.0,"y":26.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":36.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":25.9200019836426,"lineHeightPercent":57.5999984741211,"lineHeightPercentFontSize":72.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3009:876":{"type":"TEXT","id":"3009:876","name":"Rich text/Header 4","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":43.0,"height":34.0},"isolatedAbsoluteRenderBounds":{"x":1.75200009346008,"y":9.19999885559082,"width":36.8493766784668,"height":22.3200016021729},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":43.0,"y":34.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.72,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":33.5999984741211,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3536:5081":{"type":"TEXT","id":"3536:5081","name":"Mobile/HHG - Quote","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":22.0,"height":36.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":22.0,"height":36.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":22.0,"y":36.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.6,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":36.0,"lineHeightPercent":88.2547302246094,"lineHeightPercentFontSize":180.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2940:2582":{"type":"TEXT","id":"2940:2582","name":"Rich text/Footer Logo","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":511.0,"height":336.0},"isolatedAbsoluteRenderBounds":{"x":0.480000019073486,"y":77.7999954223633,"width":505.456878662109,"height":193.200012207031},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":511.0,"y":336.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Climate Crisis","fontPostScriptName":"ClimateCrisis-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":240.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":336.0,"lineHeightPercent":105.263153076172,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4082:4215":{"type":"TEXT","id":"4082:4215","name":"Mobile/HHG - Body 2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":14.0,"height":22.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":14.0,"height":22.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":14.0,"y":22.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":12.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.6,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.5999984741211,"lineHeightPercent":88.2547302246094,"lineHeightPercentFontSize":180.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2960:583":{"type":"TEXT","id":"2960:583","name":"Rich text/Welcome Article-H2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":63.0,"height":60.0},"isolatedAbsoluteRenderBounds":{"x":0.912000060081482,"y":13.8400001525879,"width":58.4831275939941,"height":32.6399993896484},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":63.0,"y":60.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Work Sans","fontPostScriptName":"WorkSans-Light","fontStyle":"Light","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":48.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":60.0,"lineHeightPercent":106.56436920166,"lineHeightPercentFontSize":125.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3345:1720":{"type":"TEXT","id":"3345:1720","name":"Desktop/HHG - Component H0","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":30.0,"height":21.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":30.0,"height":21.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":30.0,"y":21.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":15.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.75,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.0,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2940:2584":{"type":"TEXT","id":"2940:2584","name":"Rich text/Welcome Article-Body","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":19.0,"height":21.0},"isolatedAbsoluteRenderBounds":{"x":0.266000032424927,"y":5.61999988555908,"width":17.0575771331787,"height":9.52000045776367},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":19.0,"y":21.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Work Sans","fontPostScriptName":"WorkSans-Light","fontStyle":"Light","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.0,"lineHeightPercent":127.877243041992,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3123:386":{"type":"TEXT","id":"3123:386","name":"Rich text/Menu Bold","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":19.0,"height":140.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":19.0,"height":140.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":19.0,"y":140.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"ElroNet Monospace","fontPostScriptName":"ElroNet-Monospace","fontStyle":"Normal","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":140.0,"lineHeightPercent":906.618286132812,"lineHeightPercentFontSize":1000.0,"lineHeightUnit":"PIXELS","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2708":{"type":"TEXT","id":"2482:2708","name":"Rich text/Big Body","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":24.0,"height":30.0},"isolatedAbsoluteRenderBounds":{"x":0.519999980926514,"y":8.79999923706055,"width":23.3231239318848,"height":17.5},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":24.0,"y":30.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Work Sans","fontPostScriptName":"WorkSans-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":30.0,"lineHeightPercent":127.877243041992,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3448:1891":{"type":"TEXT","id":"3448:1891","name":"Desktop/HHG - Component H2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":13.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":9.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.45,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.5999994277954,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3118:907":{"type":"TEXT","id":"3118:907","name":"Desktop/HH - Body 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":28.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":18.0,"height":28.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":28.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.4,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":28.0,"lineHeightPercent":153.984954833984,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2705":{"type":"TEXT","id":"2482:2705","name":"Rich text/h2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":25.0,"height":18.0},"isolatedAbsoluteRenderBounds":{"x":0.949000060558319,"y":4.82199954986572,"width":22.2641258239746,"height":9.3080005645752},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":25.0,"y":18.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":13.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":18.1999988555908,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4120:6814":{"type":"TEXT","id":"4120:6814","name":"Mobile/HHG - Body 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":10.0,"height":14.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":10.0,"height":14.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":10.0,"y":14.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":8.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.8,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.3999996185303,"lineHeightPercent":88.2547302246094,"lineHeightPercentFontSize":180.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2960:584":{"type":"TEXT","id":"2960:584","name":"Rich text/h3","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":17.0,"height":13.0},"isolatedAbsoluteRenderBounds":{"x":0.657000064849854,"y":3.64599990844727,"width":15.4136257171631,"height":6.44400024414062},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":17.0,"y":13.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":9.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.5999994277954,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3123:388":{"type":"TEXT","id":"3123:388","name":"Rich text/Menu","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":19.0,"height":14.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":19.0,"height":14.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":19.0,"y":14.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.0,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3437:2182":{"type":"TEXT","id":"3437:2182","name":"Mobile/HHG - Header + Footer","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":12.0,"height":8.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":12.0,"height":8.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":12.0,"y":8.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":6.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.3,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":8.39999961853027,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3118:906":{"type":"TEXT","id":"3118:906","name":"Desktop/MENU","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":18.0,"height":13.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":13.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":9.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.45,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.5999994277954,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1633":{"type":"TEXT","id":"3125:1633","name":"Rich text/Header 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":71.0,"height":70.0},"isolatedAbsoluteRenderBounds":{"x":0.65625,"y":11.9375,"width":64.4625015258789,"height":59.6875},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":71.0,"y":70.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":64.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-1.6,"letterSpacingValue":-2.5,"letterSpacingUnit":"PERCENT","lineHeightPx":70.4000015258789,"lineHeightPercent":84.6917266845703,"lineHeightPercentFontSize":110.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3859:27441":{"type":"TEXT","id":"3859:27441","name":"Desktop/HHG - Button","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":13.0,"height":8.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":13.0,"height":8.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":13.0,"y":8.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":8.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.6,"letterSpacingValue":20.0,"letterSpacingUnit":"PERCENT","lineHeightPx":8.0,"lineHeightPercent":49.030403137207,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1638":{"type":"TEXT","id":"3125:1638","name":"Rich text/Header 6","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":22.0},"isolatedAbsoluteRenderBounds":{"x":0.1640625,"y":5.484375,"width":16.0356254577637,"height":14.921875},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":22.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":16.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.48,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":22.3999996185303,"lineHeightPercent":107.789474487305,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:15495":{"type":"TEXT","id":"4084:15495","name":"Desktop/HHG - Quote","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":65.0,"height":90.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":65.0,"height":90.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":65.0,"y":90.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":60.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-1.8,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":90.0,"lineHeightPercent":73.5456085205078,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4083:3956":{"type":"TEXT","id":"4083:3956","name":"Desktop/HHG - Component Body 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":17.0,"height":27.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":17.0,"height":27.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":17.0,"y":27.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":15.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":27.0,"lineHeightPercent":88.2547302246094,"lineHeightPercentFontSize":180.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3118:908":{"type":"TEXT","id":"3118:908","name":"Desktop/HHG H2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":28.0,"height":14.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":28.0,"height":14.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":28.0,"y":14.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.7,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.0,"lineHeightPercent":80.0,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3434:1508":{"type":"TEXT","id":"3434:1508","name":"Mobile/HHG - H1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":22.0,"height":11.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":22.0,"height":11.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":22.0,"y":11.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":11.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.55,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":11.0,"lineHeightPercent":80.0,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3006:769":{"type":"TEXT","id":"3006:769","name":"Rich text/h0","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":76.0,"height":28.0},"isolatedAbsoluteRenderBounds":{"x":2.92000031471252,"y":0.759999215602875,"width":68.5050048828125,"height":28.6400012969971},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":76.0,"y":28.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","fontVariations":{"Weight":400.0},"textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":40.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":28.0,"lineHeightPercent":56.0,"lineHeightPercentFontSize":70.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2925:2842":{"type":"TEXT","id":"2925:2842","name":"Rich text/Article Title","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":24.0,"height":23.0},"isolatedAbsoluteRenderBounds":{"x":0.519999980926514,"y":4.79999923706055,"width":23.3231239318848,"height":17.5},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":24.0,"y":23.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Abhaya Libre","fontPostScriptName":"AbhayaLibre-Regular","fontStyle":"Regular","textCase":"TITLE","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":23.4375,"lineHeightPercent":100.0,"lineHeightUnit":"INTRINSIC_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED","lineHeightPercentFontSize":100},"styleOverrideTable":{}},"2933:1412":{"type":"TEXT","id":"2933:1412","name":"Rich text/Menu Bold","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":19.0,"height":140.0},"isolatedAbsoluteRenderBounds":{"x":0.952000021934509,"y":64.2639999389648,"width":16.5202198028564,"height":8.98799896240234},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":19.0,"y":140.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"ElroNet Monospace","fontPostScriptName":"ElroNet-Monospace","fontStyle":"Normal","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":140.0,"lineHeightPercent":906.618286132812,"lineHeightPercentFontSize":1000.0,"lineHeightUnit":"PIXELS","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3279:2135":{"type":"TEXT","id":"3279:2135","name":"Desktop/HH - Tagline 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":22.0,"height":20.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":22.0,"height":20.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":22.0,"y":20.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Zetta","fontPostScriptName":"LexendZetta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.5,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":20.0,"lineHeightPercent":160.0,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4078:8056":{"type":"TEXT","id":"4078:8056","name":"Mobile/HHG - H0","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":20.0,"height":20.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":20.0,"height":20.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":20.0,"y":20.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.0,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":20.0,"lineHeightPercent":160.0,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3004:487":{"type":"TEXT","id":"3004:487","name":"Rich text/Big body","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":32.0,"height":22.0},"isolatedAbsoluteRenderBounds":{"x":1.16800010204315,"y":5.70399951934814,"width":28.2020015716553,"height":11.456000328064},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":32.0,"y":22.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":16.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.6,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":22.3999996185303,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1632":{"type":"TEXT","id":"3125:1632","name":"Rich text/Body","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":18.0,"height":24.0},"isolatedAbsoluteRenderBounds":{"x":0.1640625,"y":6.484375,"width":16.515625,"height":14.921875},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":18.0,"y":24.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":16.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":24.0,"lineHeightPercent":115.488723754883,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1634":{"type":"TEXT","id":"3125:1634","name":"Rich text/Header 2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":53.0,"height":53.0},"isolatedAbsoluteRenderBounds":{"x":0.4921875,"y":9.453125,"width":48.1068725585938,"height":44.765625},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":53.0,"y":53.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":48.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-1.44,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":52.8000030517578,"lineHeightPercent":84.6917266845703,"lineHeightPercentFontSize":110.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3344:1432":{"type":"TEXT","id":"3344:1432","name":"Desktop/HHG - Component Body 3","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":13.0,"height":8.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":13.0,"height":8.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":13.0,"y":8.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":8.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.6,"letterSpacingValue":20.0,"letterSpacingUnit":"PERCENT","lineHeightPx":8.0,"lineHeightPercent":49.030403137207,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3778:56174":{"type":"WIDGET","id":"3778:56174","name":"Embed 2","absoluteBoundingBox":{"x":18278.0,"y":-31031.0,"width":1280.0,"height":900.0},"isolatedAbsoluteRenderBounds":{"x":18278.0,"y":-31031.0,"width":1280.0,"height":900.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":1280.0,"y":900.0},"constraints":{"vertical":"TOP_BOTTOM","horizontal":"LEFT_RIGHT"},"constraintValues":{"left":{"pixelOffset":0.0,"sizeFraction":0.0},"right":{"pixelOffset":0.0,"sizeFraction":1.0},"top":{"pixelOffset":0.0,"sizeFraction":0.0},"bottom":{"pixelOffset":-180.0,"sizeFraction":1.0}},"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"widgetType":"GENERIC","syncedState":{"embedAllowFullscreen":"false","embedCodeType":"html","embedIframeHtml":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>PEAK TECH</title>\n<style>\n  :root {\n    --bg: #080808;\n    --bg-soft: #111111;\n    --panel: rgba(18, 18, 18, 0.94);\n    --panel-strong: rgba(10, 10, 10, 0.98);\n    --line: rgba(255, 255, 255, 0.16);\n    --line-strong: rgba(255, 255, 255, 0.34);\n    --text: #b8b8b8;\n    --text-strong: #f2f2f2;\n    --muted: #747474;\n    --accent: #ffffff;\n    --accent-2: #d7d7d7;\n    --warn: #cccccc;\n    --danger: #8d8d8d;\n    --shadow: rgba(0, 0, 0, 0.58);\n    --canvas-grid: rgba(255, 255, 255, 0.06);\n  }\n\n  * {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n  }\n\n  html,\n  body {\n    min-height: 100%;\n  }\n\n  html {\n    height: 100%;\n  }\n\n  body {\n    min-height: 100dvh;\n    background: linear-gradient(180deg, #050505 0%, #0f0f0f 46%, #080808 100%);\n    color: var(--text);\n    font-family: \"Courier New\", Courier, monospace;\n    font-size: 9px;\n    letter-spacing: 0.12em;\n    overflow: hidden;\n    overflow-x: hidden;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  body::before {\n    content: \"\";\n    position: fixed;\n    inset: 0;\n    pointer-events: none;\n    background:\n      repeating-linear-gradient(\n        180deg,\n        rgba(255, 255, 255, 0.02) 0,\n        rgba(255, 255, 255, 0.02) 1px,\n        transparent 1px,\n        transparent 3px\n      );\n    mix-blend-mode: screen;\n    opacity: 0.32;\n    z-index: 30;\n  }\n\n  body::after {\n    content: \"\";\n    position: fixed;\n    inset: 0;\n    pointer-events: none;\n    background:\n      radial-gradient(circle at center, transparent 55%, rgba(0, 0, 0, 0.34) 100%),\n      linear-gradient(90deg, rgba(0, 0, 0, 0.10), transparent 10%, transparent 90%, rgba(0, 0, 0, 0.10));\n    opacity: 0.85;\n    z-index: 31;\n  }\n\n  button,\n  input {\n    font: inherit;\n    letter-spacing: inherit;\n  }\n\n  button {\n    background: none;\n    border: 1px solid var(--line);\n    color: var(--text);\n    cursor: pointer;\n    text-transform: uppercase;\n  }\n\n  button:hover,\n  button:focus-visible {\n    border-color: var(--line-strong);\n    color: var(--text-strong);\n    outline: none;\n    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1);\n  }\n\n  #machine {\n    position: relative;\n    width: min(1320px, calc(100vw - 32px));\n    height: min(920px, calc(100dvh - 32px));\n    margin: 16px auto;\n    border: 1px solid var(--line-strong);\n    background: linear-gradient(180deg, rgba(17, 17, 17, 0.98), rgba(9, 9, 9, 0.99));\n    box-shadow:\n      0 30px 80px var(--shadow),\n      inset 0 0 0 1px rgba(255, 255, 255, 0.02),\n      inset 0 0 56px rgba(255, 255, 255, 0.03);\n    overflow: hidden;\n  }\n\n  #machine::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    pointer-events: none;\n    background:\n      linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent 12%, transparent 88%, rgba(255, 255, 255, 0.03)),\n      linear-gradient(90deg, rgba(255, 255, 255, 0.02), transparent 9%, transparent 91%, rgba(255, 255, 255, 0.02));\n    z-index: 1;\n  }\n\n  #status-bar {\n    position: relative;\n    z-index: 5;\n    display: grid;\n    grid-template-columns: 1fr auto auto;\n    gap: 14px;\n    align-items: center;\n    height: 32px;\n    padding: 0 18px;\n    border-bottom: 1px solid var(--line);\n    background: rgba(14, 14, 14, 0.94);\n    text-transform: uppercase;\n  }\n\n  #brand-button {\n    justify-self: start;\n    border: none;\n    padding: 0;\n    color: var(--text-strong);\n    background: none;\n    font-weight: 700;\n    letter-spacing: 0.2em;\n  }\n\n  #brand-button:hover,\n  #brand-button:focus-visible {\n    color: var(--text-strong);\n    box-shadow: none;\n  }\n\n  .status-center {\n    justify-self: center;\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  #sb-status {\n    color: var(--muted);\n  }\n\n  #sb-status.connected {\n    color: var(--text-strong);\n  }\n\n  #sb-cursor {\n    width: 7px;\n    height: 11px;\n    background: var(--text-strong);\n    opacity: 0;\n  }\n\n  #sb-cursor.active {\n    opacity: 1;\n    animation: blink 1s steps(1, end) infinite;\n  }\n\n  .status-right {\n    display: inline-flex;\n    gap: 10px;\n    justify-self: end;\n    color: var(--muted);\n  }\n\n  #sb-clock {\n    color: var(--text-strong);\n  }\n\n  #screen-stack {\n    position: relative;\n    height: calc(100% - 32px);\n    z-index: 5;\n  }\n\n  .screen {\n    position: absolute;\n    inset: 0;\n    opacity: 0;\n    pointer-events: none;\n    transition: opacity 0.3s ease;\n  }\n\n  .screen.active {\n    opacity: 1;\n    pointer-events: auto;\n  }\n\n  #dial-screen {\n    display: grid;\n    grid-template-columns: minmax(340px, 450px) 1fr;\n  }\n\n  .panel {\n    background: linear-gradient(180deg, rgba(17, 17, 17, 0.94), rgba(10, 10, 10, 0.94));\n    border: 1px solid var(--line);\n  }\n\n  #left-panel,\n  #right-panel,\n  #launcher-col,\n  #workspace {\n    padding: 24px;\n  }\n\n  #left-panel {\n    border-right: 1px solid var(--line);\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n  }\n\n  .section-title {\n    color: var(--text-strong);\n    text-transform: uppercase;\n    font-weight: 700;\n    letter-spacing: 0.18em;\n  }\n\n  .section-sub {\n    color: var(--muted);\n    text-transform: uppercase;\n  }\n\n  /* --- CHARACTER SELECT CAROUSEL --- */\n  #modem-carousel {\n    flex: 1;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    min-height: 200px;\n    margin: 20px 0;\n  }\n\n  .sel-arrow {\n    font-size: 28px;\n    font-weight: bold;\n    padding: 10px 15px;\n    border: none;\n    color: var(--muted);\n    transition: color 0.2s, transform 0.1s;\n  }\n  \n  .sel-arrow:hover {\n    color: var(--text-strong);\n    box-shadow: none;\n    transform: scale(1.1);\n  }\n\n  .sel-arrow:active {\n    transform: scale(0.9);\n  }\n\n  #modem-wrap {\n    flex: 1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  #modem-svg {\n    width: min(100%, 360px);\n    filter: drop-shadow(0 0 18px rgba(255, 255, 255, 0.05));\n  }\n\n  /* Variant Toggles */\n  .modem-variant {\n    opacity: 0;\n    visibility: hidden;\n    transition: opacity 0.4s ease, visibility 0.4s;\n  }\n\n  .modem-variant.active {\n    opacity: 1;\n    visibility: visible;\n  }\n\n  #sel-info {\n    text-align: center;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n    margin-bottom: auto;\n  }\n\n  #sel-name {\n    font-size: 14px;\n    font-weight: 700;\n    color: var(--text-strong);\n    letter-spacing: 0.2em;\n  }\n\n  #sel-speed {\n    color: var(--accent-2);\n  }\n\n  #sel-desc {\n    color: var(--muted);\n    margin-top: 4px;\n  }\n\n  /* Modem Child Artefact Animations */\n  .mc-diode {\n    fill: #080808;\n    transition: fill 0.2s, filter 0.2s;\n  }\n  .mc-diode.pwr-idle {\n    animation: mc-pwr-pulse 2.4s infinite;\n  }\n  .mc-diode.green-blink {\n    animation: mc-green-blink 0.2s infinite alternate;\n  }\n  .mc-diode.green-blink-fast {\n    animation: mc-green-blink 0.12s infinite alternate;\n  }\n  .mc-diode.green-blink-erratic {\n    animation: mc-green-erratic 0.4s infinite steps(2, end);\n  }\n  .mc-diode.green-breathe {\n    animation: mc-green-breathe 2.5s infinite alternate;\n  }\n  .mc-diode.green-solid {\n    fill: #39ff14;\n    filter: drop-shadow(0 0 6px #39ff14);\n  }\n\n  @keyframes mc-pwr-pulse {\n    0%, 100% { fill: #220000; filter: none; }\n    50% { fill: #ff0000; filter: drop-shadow(0 0 4px #ff0000); }\n  }\n  @keyframes mc-green-blink {\n    0% { fill: #003300; filter: none; }\n    100% { fill: #39ff14; filter: drop-shadow(0 0 6px #39ff14); }\n  }\n  @keyframes mc-green-erratic {\n    0%, 40%, 80% { fill: #39ff14; filter: drop-shadow(0 0 6px #39ff14); }\n    20%, 60%, 100% { fill: #002200; filter: none; }\n  }\n  @keyframes mc-green-breathe {\n    0% { fill: #004400; filter: drop-shadow(0 0 2px #39ff14); }\n    100% { fill: #39ff14; filter: drop-shadow(0 0 8px #39ff14); }\n  }\n\n  .connect-btn,\n  .proceed-btn,\n  .action-btn,\n  .sketch-btn,\n  .palette-btn,\n  .tool-btn {\n    min-height: 32px;\n    padding: 0 12px;\n    touch-action: manipulation;\n  }\n\n  .connect-btn,\n  .proceed-btn {\n    width: 100%;\n    margin-top: 14px;\n    opacity: 0;\n    pointer-events: none;\n    transition: opacity 0.2s ease, transform 0.2s ease;\n  }\n\n  .connect-btn.visible {\n    opacity: 1;\n    pointer-events: auto;\n  }\n\n  .proceed-btn {\n    opacity: 1;\n    pointer-events: auto;\n  }\n\n  .connect-btn:disabled {\n    opacity: 0.6;\n    cursor: default;\n  }\n\n  #right-panel {\n    display: flex;\n    flex-direction: column;\n    gap: 18px;\n  }\n\n  #log-panel {\n    flex: 1;\n    display: flex;\n    align-items: flex-end;\n    min-height: 0;\n    overflow: auto;\n  }\n\n  #log-lines {\n    width: 100%;\n  }\n\n  .log-line {\n    padding: 4px 0;\n    color: rgba(255, 255, 255, 0.22);\n    opacity: 0;\n    transition: opacity 0.12s ease, color 0.2s ease;\n  }\n\n  .log-line.vis {\n    opacity: 1;\n    color: var(--muted);\n  }\n\n  .log-line.cur {\n    color: var(--text-strong);\n  }\n\n  #progress-block {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    padding-top: 10px;\n    border-top: 1px solid var(--line-strong);\n  }\n\n  .pb-row {\n    display: flex;\n    justify-content: space-between;\n    color: var(--muted);\n    text-transform: uppercase;\n  }\n\n  #pb-label {\n    color: var(--text-strong);\n  }\n\n  .pb-track {\n    height: 2px;\n    background: rgba(255, 255, 255, 0.12);\n    position: relative;\n  }\n\n  .pb-fill {\n    position: absolute;\n    inset: 0 auto 0 0;\n    width: 0;\n    background: var(--accent);\n    transition: width 0.28s linear;\n  }\n\n  #post-connect {\n    display: none;\n    flex-direction: column;\n    gap: 0;\n  }\n\n  #post-connect.show {\n    display: flex;\n  }\n\n  .pc-row {\n    display: grid;\n    grid-template-columns: 180px 1fr;\n    gap: 12px;\n    padding: 8px 0;\n    border-top: 1px solid var(--line);\n    text-transform: uppercase;\n  }\n\n  .pc-row:first-child {\n    border-top: 1px solid var(--line-strong);\n  }\n\n  .pc-label {\n    color: var(--muted);\n  }\n\n  .pc-value {\n    color: var(--text-strong);\n  }\n\n  #desktop-screen {\n    display: grid;\n    grid-template-columns: minmax(280px, 330px) 1fr;\n  }\n\n  #launcher-col {\n    border-right: 1px solid var(--line);\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n  }\n\n  .terminal-card,\n  .side-card {\n    border: 1px solid var(--line);\n    background: rgba(255, 255, 255, 0.02);\n    padding: 12px;\n  }\n\n  #program-list {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n  }\n\n  .program-row {\n    width: 100%;\n    display: grid;\n    grid-template-columns: auto minmax(0, 1fr) auto;\n    gap: 10px;\n    align-items: center;\n    padding: 10px 12px;\n    text-align: left;\n    color: var(--muted);\n    background: rgba(255, 255, 255, 0.015);\n    min-height: 40px;\n  }\n\n  .program-row.selected,\n  .program-row:hover {\n    color: var(--text-strong);\n    border-color: var(--line-strong);\n    background: rgba(255, 255, 255, 0.04);\n  }\n\n  .program-row.locked {\n    display: none;\n  }\n\n  .program-row .program-index {\n    color: var(--accent-2);\n  }\n\n  .program-tag {\n    color: var(--accent);\n  }\n\n  .card-title {\n    margin-bottom: 12px;\n    color: var(--text-strong);\n  }\n\n  .card-copy,\n  .card-copy div {\n    color: var(--muted);\n    line-height: 1.8;\n  }\n\n  .card-copy strong {\n    color: var(--text-strong);\n  }\n\n  .accent {\n    color: var(--accent-2);\n  }\n\n  #desktop-log {\n    min-height: 140px;\n    max-height: 180px;\n    overflow: auto;\n    line-height: 1.8;\n  }\n\n  .desktop-log-line {\n    color: var(--muted);\n  }\n\n  .desktop-log-line.live {\n    color: var(--text-strong);\n  }\n\n  #workspace {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    min-width: 0;\n  }\n\n  #workspace-header {\n    display: flex;\n    justify-content: space-between;\n    gap: 16px;\n    align-items: center;\n    padding-bottom: 16px;\n    border-bottom: 1px solid var(--line);\n  }\n\n  #workspace-title {\n    color: var(--text-strong);\n    font-size: 11px;\n    font-weight: 700;\n  }\n\n  #workspace-subtitle {\n    margin-top: 6px;\n    color: var(--muted);\n  }\n\n  .workspace-actions {\n    display: inline-flex;\n    gap: 10px;\n    flex-wrap: wrap;\n  }\n\n  #workspace-body {\n    position: relative;\n    flex: 1;\n    min-height: 0;\n    border: 1px solid var(--line);\n    background: linear-gradient(180deg, rgba(15, 15, 15, 0.97), rgba(8, 8, 8, 0.99));\n    overflow: hidden;\n    isolation: isolate;\n  }\n\n  .app-pane {\n    position: absolute;\n    inset: 0;\n    height: 100%;\n    overflow: auto;\n  }\n\n  .app-pane[hidden] {\n    display: none !important;\n  }\n\n  .app-pane:not([hidden])[data-layout=\"flex\"] {\n    display: flex;\n    flex-direction: column;\n  }\n\n  .app-pane:not([hidden])[data-layout=\"grid\"] {\n    display: grid;\n  }\n\n  .app-pane:not([hidden])[data-layout=\"block\"] {\n    display: block;\n  }\n\n  #terminal-pane {\n    padding: 16px;\n    overflow: hidden;\n  }\n\n  #terminal-window {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    min-height: 0;\n  }\n\n  #terminal-output {\n    flex: 1;\n    overflow: auto;\n    padding-right: 8px;\n    white-space: pre-wrap;\n    word-break: break-word;\n    line-height: 1.65;\n  }\n\n  .term-line {\n    color: var(--text);\n    margin-bottom: 6px;\n  }\n\n  .term-line.muted {\n    color: var(--muted);\n  }\n\n  .term-line.warn {\n    color: var(--warn);\n  }\n\n  .term-line.danger {\n    color: var(--danger);\n  }\n\n  .term-line.accent {\n    color: var(--accent-2);\n  }\n\n  #terminal-form {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    border-top: 1px solid var(--line);\n    padding-top: 14px;\n  }\n\n  .term-prompt {\n    color: var(--text-strong);\n    white-space: nowrap;\n  }\n\n  #terminal-input {\n    flex: 1;\n    min-width: 0;\n    background: transparent;\n    border: none;\n    color: var(--text-strong);\n    outline: none;\n    line-height: 1.4;\n  }\n\n  #weather-pane {\n    grid-template-columns: minmax(280px, 360px) 1fr;\n    height: 100%;\n    overflow: hidden;\n  }\n\n  #monitor-pane {\n    padding: 14px;\n    gap: 10px;\n    overflow: hidden;\n  }\n\n  #monitor-grid {\n    display: grid;\n    grid-template-columns: minmax(220px, 280px) 1fr;\n    gap: 10px;\n    min-height: 0;\n    flex: 1;\n  }\n\n  #monitor-sidebar,\n  #monitor-main {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    min-height: 0;\n  }\n\n  .monitor-card {\n    border: 1px solid var(--line);\n    background: rgba(255, 255, 255, 0.02);\n    padding: 12px;\n    min-width: 0;\n  }\n\n  #monitor-vitals {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 8px;\n  }\n\n  .monitor-metric {\n    border: 1px solid var(--line);\n    padding: 10px;\n    min-height: 72px;\n  }\n\n  .monitor-label {\n    color: var(--muted);\n    margin-bottom: 8px;\n  }\n\n  .monitor-value {\n    color: var(--text-strong);\n    font-size: 11px;\n    margin-bottom: 6px;\n  }\n\n  .monitor-bar {\n    height: 4px;\n    background: rgba(255, 255, 255, 0.1);\n    position: relative;\n    overflow: hidden;\n  }\n\n  .monitor-bar-fill {\n    position: absolute;\n    inset: 0 auto 0 0;\n    background: var(--text-strong);\n    width: 0;\n  }\n\n  .monitor-copy {\n    color: var(--muted);\n    line-height: 1.7;\n  }\n\n  #monitor-graph,\n  #monitor-processes {\n    min-height: 0;\n    overflow: auto;\n  }\n\n  #monitor-graph-pre,\n  #monitor-processes-pre {\n    white-space: pre;\n    color: var(--text-strong);\n    line-height: 1.55;\n    overflow-x: auto;\n  }\n\n  #monitor-footer {\n    display: flex;\n    justify-content: space-between;\n    gap: 12px;\n    align-items: center;\n    border-top: 1px solid var(--line);\n    padding-top: 10px;\n    color: var(--muted);\n  }\n\n  #portrait-col {\n    border-right: 1px solid var(--line);\n    display: flex;\n    flex-direction: column;\n    min-height: 0;\n  }\n\n  #speech-bubble {\n    min-height: 54px;\n    padding: 12px 14px;\n    border-bottom: 1px solid var(--line);\n    display: flex;\n    align-items: center;\n  }\n\n  #speech-text {\n    line-height: 1.8;\n    color: var(--text-strong);\n  }\n\n  #speech-text::after {\n    content: \"_\";\n    opacity: 0;\n    animation: blink 0.8s steps(1, end) infinite;\n  }\n\n  #speech-text.typing::after {\n    opacity: 1;\n  }\n\n  #ascii-portrait {\n    flex: 1;\n    min-height: 0;\n    overflow: hidden;\n    padding: 14px 10px 8px;\n    white-space: pre;\n    font-size: clamp(3.7px, 0.45vw, 5px);\n    line-height: 1.05;\n    letter-spacing: 0.03em;\n    color: var(--text-strong);\n  }\n\n  #portrait-meta {\n    border-top: 1px solid var(--line);\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    padding: 0 14px 10px;\n    gap: 0 10px;\n  }\n\n  .pm-row {\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    padding-top: 12px;\n    border-top: 1px solid var(--line);\n  }\n\n  .pm-row:nth-child(1),\n  .pm-row:nth-child(2) {\n    border-top: none;\n  }\n\n  .pm-label {\n    color: var(--muted);\n  }\n\n  .pm-value {\n    color: var(--text-strong);\n  }\n\n  #right-col-w {\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    min-height: 0;\n  }\n\n  #chart-section {\n    padding: 16px 18px;\n    border-bottom: 1px solid var(--line);\n  }\n\n  .subhead {\n    margin-bottom: 16px;\n    color: var(--muted);\n  }\n\n  #ascii-chart {\n    white-space: pre;\n    line-height: 1.55;\n    font-size: clamp(7px, 0.74vw, 10px);\n    overflow-x: auto;\n    color: var(--text-strong);\n  }\n\n  #forecast-section {\n    flex: 1;\n    min-height: 0;\n    padding: 16px 18px;\n    display: flex;\n    flex-direction: column;\n  }\n\n  #forecast-rows {\n    flex: 1;\n    overflow: auto;\n  }\n\n  .fc-row {\n    display: grid;\n    grid-template-columns: 70px 78px 1fr 62px 62px;\n    gap: 10px;\n    align-items: center;\n    padding: 8px 0;\n    border-top: 1px solid var(--line);\n  }\n\n  .fc-row:first-child {\n    border-top: 1px solid var(--line-strong);\n  }\n\n  .fc-icon,\n  .fc-desc,\n  .fc-lo {\n    color: var(--muted);\n    min-width: 0;\n  }\n\n  .fc-day,\n  .fc-hi {\n    color: var(--text-strong);\n  }\n\n  #w-footer {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 12px;\n    padding: 10px 18px;\n    border-top: 1px solid var(--line);\n    color: var(--muted);\n  }\n\n  #sketch-pane {\n    padding: 14px;\n    gap: 10px;\n    overflow: hidden;\n  }\n\n  #sketch-toolbar {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    align-items: center;\n    padding-bottom: 10px;\n    border-bottom: 1px solid var(--line);\n  }\n\n  .tool-group {\n    display: inline-flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    align-items: center;\n  }\n\n  .tool-label {\n    color: var(--muted);\n    margin-right: 4px;\n  }\n\n  .tool-btn.active,\n  .sketch-btn.active,\n  .palette-btn.active {\n    border-color: var(--line-strong);\n    color: var(--text-strong);\n    background: rgba(255, 255, 255, 0.08);\n  }\n\n  .palette-btn {\n    width: 32px;\n    min-width: 32px;\n    padding: 0;\n    position: relative;\n  }\n\n  .palette-btn::after {\n    content: \"\";\n    position: absolute;\n    inset: 6px;\n    background: var(--swatch);\n    border: 1px solid rgba(255, 255, 255, 0.16);\n  }\n\n  #sketch-board-wrap {\n    position: relative;\n    flex: 1;\n    min-height: 300px;\n    border: 1px solid var(--line);\n    background:\n      linear-gradient(180deg, rgba(10, 10, 10, 0.92), rgba(16, 16, 16, 0.96)),\n      repeating-linear-gradient(0deg, transparent, transparent 24px, var(--canvas-grid) 24px, var(--canvas-grid) 25px),\n      repeating-linear-gradient(90deg, transparent, transparent 24px, var(--canvas-grid) 24px, var(--canvas-grid) 25px);\n    overflow: hidden;\n  }\n\n  #sketch-canvas {\n    width: 100%;\n    height: 100%;\n    display: block;\n    image-rendering: pixelated;\n    touch-action: none;\n    cursor: crosshair;\n  }\n\n  #sketch-footer {\n    display: flex;\n    justify-content: space-between;\n    gap: 12px;\n    align-items: center;\n    border-top: 1px solid var(--line);\n    padding-top: 10px;\n    color: var(--muted);\n  }\n\n  #sketch-status,\n  #sketch-memory {\n    color: var(--muted);\n  }\n\n  #phreak-pane {\n    padding: 16px;\n    height: 100%;\n    overflow: auto;\n  }\n\n  .trace-grid {\n    display: grid;\n    grid-template-columns: minmax(240px, 320px) 1fr;\n    gap: 12px;\n  }\n\n  .trace-card {\n    border: 1px solid var(--line);\n    padding: 12px;\n    background: rgba(255, 255, 255, 0.02);\n    min-height: 180px;\n  }\n\n  .trace-card pre {\n    white-space: pre-wrap;\n    line-height: 1.6;\n    color: var(--text-strong);\n  }\n\n  .trace-list {\n    line-height: 1.9;\n    color: var(--muted);\n  }\n\n  /* --- ARTEFACT VIEWER PANE CSS --- */\n  #artefact-pane {\n    grid-template-columns: minmax(0, 1fr) 280px;\n    height: 100%;\n    padding: 0;\n  }\n\n  #art-viewer {\n    position: relative;\n    background: linear-gradient(180deg, #0a0a0a, #000);\n    border-right: 1px solid var(--line);\n    overflow: hidden;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  #art-svg-host {\n    width: 120%;\n    height: 120%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: auto;\n    cursor: crosshair;\n    transition: transform 0.4s cubic-bezier(0.1, 0.9, 0.2, 1);\n  }\n\n  #art-svg-host:hover {\n    transform: scale(1.05);\n  }\n\n  #art-svg-host svg {\n    width: 100%;\n    height: 100%;\n    filter: drop-shadow(0 0 40px rgba(255,255,255,0.06));\n  }\n\n  /* PHASE 2 INTERACTIVE HITBOXES */\n  #modem-svg .hitbox {\n    display: none; /* Hide on boot screen */\n  }\n\n  #art-svg-host .hitbox {\n    display: block;\n    fill: transparent;\n    stroke: transparent;\n    cursor: crosshair;\n    pointer-events: all;\n    transition: all 0.2s ease;\n  }\n\n  #art-svg-host .hitbox:hover {\n    stroke: #39ff14;\n    stroke-width: 2px;\n    stroke-dasharray: 4 4;\n    fill: rgba(57, 255, 20, 0.1);\n  }\n\n  .art-overlay-text {\n    position: absolute;\n    top: 14px;\n    left: 14px;\n    color: var(--warn);\n    font-weight: bold;\n    opacity: 0.3;\n    pointer-events: none;\n    letter-spacing: 0.2em;\n  }\n\n  #art-scan-line {\n    position: absolute;\n    top: -10%; \n    left: 0; \n    right: 0;\n    height: 2px;\n    background: var(--text-strong);\n    box-shadow: 0 0 16px 2px var(--text-strong);\n    opacity: 0;\n    pointer-events: none;\n    z-index: 10;\n  }\n\n  #art-scan-line.scanning {\n    opacity: 1;\n    animation: scan-sweep 2.5s ease-in-out;\n  }\n\n  @keyframes scan-sweep {\n    0% { top: -10%; }\n    100% { top: 110%; }\n  }\n\n  #art-sidebar {\n    padding: 14px;\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    background: rgba(10, 10, 10, 0.95);\n  }\n\n  #art-log {\n    white-space: pre-wrap;\n    word-break: break-word;\n    line-height: 1.8;\n    color: var(--accent-2);\n    font-size: 10px;\n    margin: 0;\n    padding: 0;\n    font-family: inherit;\n  }\n\n  #matrix-overlay {\n    position: fixed;\n    inset: 0;\n    display: none;\n    pointer-events: none;\n    z-index: 25;\n    padding: 20px;\n    white-space: pre;\n    color: rgba(255, 255, 255, 0.28);\n    line-height: 1.1;\n    font-size: 12px;\n    background: rgba(8, 8, 8, 0.6);\n  }\n\n  #matrix-overlay.active {\n    display: block;\n  }\n\n  .hidden {\n    display: none !important;\n  }\n\n  @keyframes blink {\n    0%,\n    49% {\n      opacity: 1;\n    }\n    50%,\n    100% {\n      opacity: 0;\n    }\n  }\n\n  @media (max-width: 1180px) {\n    body {\n      overflow: auto;\n    }\n\n    #machine {\n      width: min(100%, calc(100vw - 24px));\n      height: auto;\n      min-height: calc(100dvh - 24px);\n      overflow: visible;\n    }\n\n    #screen-stack {\n      height: auto;\n      min-height: 0;\n    }\n\n    .screen {\n      position: relative;\n      inset: auto;\n      display: none;\n      opacity: 1;\n      pointer-events: none;\n      transition: none;\n    }\n\n    .screen.active {\n      display: grid;\n      pointer-events: auto;\n    }\n\n    #dial-screen,\n    #desktop-screen,\n    #monitor-grid,\n    #weather-pane,\n    .trace-grid {\n      grid-template-columns: 1fr;\n    }\n    \n    #artefact-pane {\n      grid-template-columns: 1fr;\n      grid-template-rows: 400px auto;\n    }\n\n    #art-viewer {\n      border-right: none;\n      border-bottom: 1px solid var(--line);\n    }\n\n    #left-panel,\n    #launcher-col,\n    #portrait-col {\n      border-right: none;\n      border-bottom: 1px solid var(--line);\n    }\n\n    #workspace-body {\n      min-height: clamp(520px, 70vh, 760px);\n    }\n\n    #ascii-portrait {\n      font-size: 5px;\n    }\n  }\n\n  @media (max-width: 720px) {\n    body {\n      font-size: 10px;\n      letter-spacing: 0.1em;\n    }\n\n    #machine {\n      width: calc(100vw - 16px);\n      margin: 8px auto;\n      min-height: calc(100dvh - 16px);\n    }\n\n    #status-bar {\n      grid-template-columns: 1fr;\n      height: auto;\n      gap: 8px;\n      padding: 12px 16px;\n    }\n\n    #brand-button {\n      text-align: left;\n    }\n\n    .status-center,\n    .status-right {\n      justify-self: start;\n    }\n\n    #left-panel,\n    #right-panel,\n    #launcher-col,\n    #workspace {\n      padding: 18px;\n    }\n\n    .pc-row {\n      grid-template-columns: 1fr;\n      gap: 4px;\n    }\n\n    .workspace-actions {\n      width: 100%;\n    }\n\n    .workspace-actions .action-btn {\n      flex: 1 1 140px;\n      min-height: 40px;\n    }\n\n    #terminal-pane,\n    #monitor-pane,\n    #sketch-pane,\n    #phreak-pane {\n      padding: 14px;\n    }\n\n    #chart-section,\n    #forecast-section {\n      padding: 14px;\n    }\n\n    .fc-row {\n      grid-template-columns: 56px 68px 1fr 52px 52px;\n      gap: 10px;\n      font-size: 9px;\n    }\n\n    #terminal-form {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n\n    .term-prompt {\n      white-space: normal;\n      word-break: break-word;\n    }\n\n    #terminal-input {\n      width: 100%;\n      font-size: 16px;\n    }\n\n    #monitor-footer,\n    #sketch-footer,\n    #w-footer,\n    #workspace-header {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n\n    #monitor-vitals {\n      grid-template-columns: 1fr 1fr;\n    }\n\n    .tool-group {\n      width: 100%;\n    }\n\n    .tool-btn,\n    .sketch-btn,\n    .palette-btn,\n    .connect-btn,\n    .proceed-btn {\n      min-height: 40px;\n    }\n\n    .palette-btn {\n      width: 40px;\n      min-width: 40px;\n    }\n\n    #sketch-board-wrap {\n      min-height: 260px;\n    }\n    \n    #art-svg-host {\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  @media (max-width: 560px) {\n    #left-panel,\n    #right-panel,\n    #launcher-col,\n    #workspace {\n      padding: 14px;\n    }\n\n    .section-sub,\n    .subhead,\n    .monitor-copy,\n    .card-copy,\n    #monitor-status,\n    #monitor-updated,\n    #sketch-status,\n    #sketch-memory,\n    #w-footer {\n      line-height: 1.6;\n    }\n\n    .pc-value,\n    #workspace-subtitle,\n    #speech-text,\n    .trace-list,\n    .card-copy,\n    #monitor-link-copy,\n    #monitor-services-copy {\n      word-break: break-word;\n    }\n\n    #workspace-body {\n      min-height: 460px;\n    }\n\n    #monitor-vitals,\n    #portrait-meta {\n      grid-template-columns: 1fr;\n    }\n\n    .pm-row:nth-child(2) {\n      border-top: 1px solid var(--line);\n    }\n\n    #speech-bubble {\n      min-height: 0;\n    }\n\n    #ascii-portrait {\n      min-height: 220px;\n      max-height: 48vh;\n      overflow: auto;\n      font-size: clamp(4.2px, 1vw, 5.6px);\n    }\n\n    .fc-row {\n      grid-template-columns: 52px minmax(0, 1fr) auto;\n      grid-template-areas:\n        \"day icon hi\"\n        \"desc desc lo\";\n      gap: 6px 10px;\n      align-items: start;\n      padding: 10px 0;\n    }\n\n    .fc-day { grid-area: day; }\n    .fc-icon { grid-area: icon; }\n    .fc-desc { grid-area: desc; }\n    .fc-hi { grid-area: hi; justify-self: end; }\n    .fc-lo { grid-area: lo; justify-self: end; }\n\n    #w-footer,\n    #sketch-footer,\n    #monitor-footer {\n      gap: 6px;\n    }\n\n    #matrix-overlay {\n      padding: 12px;\n      font-size: 10px;\n    }\n  }\n</style>\n</head>\n<body>\n<div id=\"machine\">\n  <div id=\"status-bar\">\n    <button id=\"brand-button\" type=\"button\">PEAK TECH</button>\n    <div class=\"status-center\">\n      <span id=\"sb-status\">OFFLINE</span>\n      <span id=\"sb-cursor\"></span>\n    </div>\n    <div class=\"status-right\">\n      <span id=\"sb-active\">MODEM</span>\n      <span id=\"sb-clock\">--:--:--</span>\n    </div>\n  </div>\n\n  <div id=\"screen-stack\">\n    <section id=\"dial-screen\" class=\"screen active\">\n      <div id=\"left-panel\">\n        <div>\n          <div class=\"section-title\">CHOOSE YOUR AVATAR</div>\n          <div class=\"section-sub\">SELECT CHARACTER / BRING THE BOX ONLINE</div>\n        </div>\n\n        <div id=\"modem-carousel\">\n          <button id=\"sel-prev\" class=\"sel-arrow\">&lt;</button>\n          \n          <div id=\"modem-wrap\">\n            <svg id=\"modem-svg\" viewBox=\"0 0 1000 800\" xmlns=\"http://www.w3.org/2000/svg\">\n              <defs>\n                <marker id=\"mc-arrow\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto-start-reverse\">\n                  <path d=\"M 0 2 L 10 5 L 0 8 z\" fill=\"#f2f2f2\"/>\n                </marker>\n                \n                <!-- V.90 / Shared Gradients -->\n                <linearGradient id=\"modemTop\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#3a3a3a\"/>\n                    <stop offset=\"100%\" stop-color=\"#1e1e1e\"/>\n                </linearGradient>\n                <linearGradient id=\"modemFront\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n                    <stop offset=\"0%\" stop-color=\"#1e1e1e\"/>\n                    <stop offset=\"100%\" stop-color=\"#0a0a0a\"/>\n                </linearGradient>\n                <linearGradient id=\"modemSide\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#111111\"/>\n                    <stop offset=\"100%\" stop-color=\"#000000\"/>\n                </linearGradient>\n                <linearGradient id=\"umbilicalGrad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#444444\"/>\n                    <stop offset=\"100%\" stop-color=\"#111111\"/>\n                </linearGradient>\n                <linearGradient id=\"umbilicalGradLight\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#666666\"/>\n                    <stop offset=\"100%\" stop-color=\"#222222\"/>\n                </linearGradient>\n\n                <!-- V.22 Acoustic Coupler Gradients -->\n                <linearGradient id=\"v22-wood\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n                    <stop offset=\"0%\" stop-color=\"#4a2c11\"/>\n                    <stop offset=\"50%\" stop-color=\"#2b1807\"/>\n                    <stop offset=\"100%\" stop-color=\"#170c02\"/>\n                </linearGradient>\n                <linearGradient id=\"v22-wood-side\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#2b1807\"/>\n                    <stop offset=\"100%\" stop-color=\"#0d0601\"/>\n                </linearGradient>\n                <linearGradient id=\"v22-beige-top\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#e3ddc8\"/>\n                    <stop offset=\"100%\" stop-color=\"#c4beab\"/>\n                </linearGradient>\n                <linearGradient id=\"v22-beige-front\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#c4beab\"/>\n                    <stop offset=\"100%\" stop-color=\"#a39d8b\"/>\n                </linearGradient>\n                <linearGradient id=\"v22-cup\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#222222\"/>\n                    <stop offset=\"100%\" stop-color=\"#050505\"/>\n                </linearGradient>\n\n                <!-- Broadband Modern Host Gradients -->\n                <linearGradient id=\"bb-silver-top\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#fcfcfc\"/>\n                    <stop offset=\"100%\" stop-color=\"#d4d4d4\"/>\n                </linearGradient>\n                <linearGradient id=\"bb-silver-front\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#d4d4d4\"/>\n                    <stop offset=\"100%\" stop-color=\"#9a9a9a\"/>\n                </linearGradient>\n                <linearGradient id=\"bb-silver-side\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#9a9a9a\"/>\n                    <stop offset=\"100%\" stop-color=\"#666666\"/>\n                </linearGradient>\n                <linearGradient id=\"bb-acrylic-front\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#020406\"/>\n                    <stop offset=\"100%\" stop-color=\"#0a1118\"/>\n                </linearGradient>\n                <linearGradient id=\"bb-blue-core\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#050a11\"/>\n                    <stop offset=\"100%\" stop-color=\"#0d1f33\"/>\n                </linearGradient>\n                <linearGradient id=\"bb-coax\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#b59a5b\"/>\n                    <stop offset=\"100%\" stop-color=\"#59461c\"/>\n                </linearGradient>\n\n                <!-- V.34 Analog Youth Gradients -->\n                <linearGradient id=\"v34-beige-top\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#dbd6c7\"/>\n                    <stop offset=\"100%\" stop-color=\"#bfbba8\"/>\n                </linearGradient>\n                <linearGradient id=\"v34-beige-front\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#bfbba8\"/>\n                    <stop offset=\"100%\" stop-color=\"#918d7d\"/>\n                </linearGradient>\n                <linearGradient id=\"v34-beige-side\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#918d7d\"/>\n                    <stop offset=\"100%\" stop-color=\"#5c594f\"/>\n                </linearGradient>\n                <linearGradient id=\"v34-bezel\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#2a2a2a\"/>\n                    <stop offset=\"100%\" stop-color=\"#050505\"/>\n                </linearGradient>\n\n                <!-- ISDN Digital Twin Gradients -->\n                <linearGradient id=\"isdn-bone-top\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#fcfcfc\"/>\n                    <stop offset=\"100%\" stop-color=\"#e8e8e6\"/>\n                </linearGradient>\n                <linearGradient id=\"isdn-bone-front\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#e8e8e6\"/>\n                    <stop offset=\"100%\" stop-color=\"#cbcbc8\"/>\n                </linearGradient>\n                <linearGradient id=\"isdn-bone-side\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#cbcbc8\"/>\n                    <stop offset=\"100%\" stop-color=\"#9d9d9a\"/>\n                </linearGradient>\n                <linearGradient id=\"isdn-panel\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#1a1a1a\"/>\n                    <stop offset=\"100%\" stop-color=\"#050505\"/>\n                </linearGradient>\n\n                <!-- V.90 Signal Child Gradients -->\n                <linearGradient id=\"v90-shell-top\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#3a3a3a\"/>\n                    <stop offset=\"100%\" stop-color=\"#222\"/>\n                </linearGradient>\n                <linearGradient id=\"v90-shell-side\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                    <stop offset=\"0%\" stop-color=\"#222\"/>\n                    <stop offset=\"100%\" stop-color=\"#050505\"/>\n                </linearGradient>\n\n                <!-- TEMPORARY SHARED CHASSIS (Until we upgrade the others) -->\n                <g id=\"base-chassis\">\n                  <!-- The Modem Mass -->\n                  <polygon points=\"200,500 800,500 650,350 350,350\" fill=\"url(#modemTop)\" />\n                  <polygon points=\"200,500 800,500 800,600 200,600\" fill=\"url(#modemFront)\" />\n                  <polygon points=\"800,500 650,350 650,450 800,600\" fill=\"url(#modemSide)\" />\n                  <!-- Highlights -->\n                  <polygon points=\"200,500 800,500 790,495 210,495\" fill=\"#ffffff\" opacity=\"0.1\" />\n                  <polygon points=\"200,500 800,500 800,505 200,505\" fill=\"#ffffff\" opacity=\"0.08\" />\n                  <!-- Hardware Details -->\n                  <rect x=\"400\" y=\"530\" width=\"200\" height=\"40\" fill=\"#050505\" />\n                  <rect x=\"405\" y=\"535\" width=\"190\" height=\"2\" fill=\"#333\" />\n                  <rect x=\"405\" y=\"542\" width=\"190\" height=\"2\" fill=\"#333\" />\n                  <rect x=\"405\" y=\"549\" width=\"190\" height=\"2\" fill=\"#333\" />\n                  <!-- Shared Diodes -->\n                  <circle cx=\"250\" cy=\"550\" r=\"5\" class=\"mc-diode d-pwr pwr-idle\" />\n                  <circle cx=\"280\" cy=\"550\" r=\"5\" class=\"mc-diode d-rx\" />\n                  <circle cx=\"310\" cy=\"550\" r=\"5\" class=\"mc-diode d-tx\" />\n                  <circle cx=\"340\" cy=\"550\" r=\"5\" class=\"mc-diode d-cd\" />\n                  <circle cx=\"370\" cy=\"550\" r=\"5\" class=\"mc-diode d-err\" />\n                </g>\n              </defs>\n\n              <!-- SHARED ENVIRONMENT: The Void Swarm -->\n              <g opacity=\"0.8\">\n                <ellipse cx=\"500\" cy=\"450\" rx=\"380\" ry=\"280\" fill=\"none\" stroke=\"rgba(255,255,255,0.15)\" stroke-width=\"1\" />\n                <ellipse cx=\"500\" cy=\"450\" rx=\"390\" ry=\"290\" fill=\"none\" stroke=\"rgba(255,255,255,0.1)\" stroke-width=\"1\" stroke-dasharray=\"8 12\" />\n                <polygon points=\"120,200 450,280 250,680\" fill=\"none\" stroke=\"rgba(255,255,255,0.1)\" stroke-width=\"1\" />\n                <polygon points=\"880,180 620,150 780,720 920,480\" fill=\"none\" stroke=\"rgba(255,255,255,0.12)\" stroke-width=\"1\" />\n                <line x1=\"60\" y1=\"580\" x2=\"940\" y2=\"120\" stroke=\"rgba(255,255,255,0.1)\" stroke-width=\"1\" />\n                <g fill=\"rgba(255,255,255,0.3)\">\n                  <rect x=\"220\" y=\"250\" width=\"4\" height=\"4\" />\n                  <rect x=\"780\" y=\"310\" width=\"5\" height=\"5\" />\n                  <rect x=\"410\" y=\"180\" width=\"4\" height=\"4\" />\n                  <rect x=\"650\" y=\"680\" width=\"5\" height=\"5\" />\n                </g>\n              </g>\n\n              <!-- ============================================== -->\n              <!-- VARIANT 1: BROADBAND (10 MBPS)                 -->\n              <!-- THE MODERN HOST (Finned Monolith)              -->\n              <!-- ============================================== -->\n              <g id=\"var-broadband\" class=\"modem-variant\">\n                \n                <!-- Background Environment Grid -->\n                <g stroke=\"rgba(255,255,255,0.06)\" stroke-width=\"1.5\">\n                   <path d=\"M 150,600 L 650,350 M 250,650 L 750,400 M 350,700 L 850,450\" />\n                   <path d=\"M 750,700 L 250,450 M 850,650 L 350,400 M 950,600 L 450,350\" />\n                </g>\n\n                <!-- Blade Antennas (Back Top) -->\n                <!-- Left Antenna -->\n                <polygon points=\"530,190 535,188 485,75 480,77\" fill=\"#111\"/>\n                <polygon points=\"535,188 540,190 490,79 485,75\" fill=\"#222\"/>\n                <!-- Right Antenna -->\n                <polygon points=\"550,200 555,198 505,85 500,87\" fill=\"#111\"/>\n                <polygon points=\"555,198 560,200 510,89 505,85\" fill=\"#333\"/>\n\n                <!-- FORENSIC HITBOXES -->\n                <polygon points=\"480,75 560,200 520,220 450,90\" class=\"hitbox\" data-lore=\"BLADE ANTENNAS|-> FREQUENCY: UNKNOWN|-> STATUS: BROADCASTING\" />\n                <polygon points=\"470,350 560,205 560,605 470,650\" class=\"hitbox\" data-lore=\"FIBER GILLS|-> COOLING: ACTIVE|-> THERMAL LOAD: RISING\" />\n                <polygon points=\"440,335 470,350 470,650 440,635\" class=\"hitbox\" data-lore=\"ACRYLIC FACE|-> OPTICAL ARRAY: HEALTHY|-> MICRO-FRACTURES DETECTED\" />\n                <polygon points=\"420,640 480,670 580,620 520,590\" class=\"hitbox secret-reset\" data-lore=\"BASEPLATE OVERRIDE|-> DISENGAGING LOCKS...|-> ALERT: SYSTEM BREACH\" />\n\n                <!-- Rear Cables & I/O -->\n                <!-- Brass Coaxial Base & Cable -->\n                <path fill=\"none\" stroke=\"#151515\" stroke-width=\"12\" stroke-linecap=\"round\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" \n                           values=\"M 545,580 C 650,650 750,450 900,500; M 545,580 C 700,550 700,600 900,500; M 545,580 C 650,650 750,450 900,500\" \n                           dur=\"12s\" repeatCount=\"indefinite\" />\n                </path>\n                <polygon points=\"535,575 555,565 555,585 535,595\" fill=\"url(#bb-coax)\"/>\n                <path d=\"M 538,573 L 538,593 M 542,571 L 542,591 M 546,569 L 546,589 M 550,567 L 550,587 M 554,565 L 554,585\" stroke=\"#4a3b1a\" stroke-width=\"1\"/>\n                \n                <!-- Ethernet Cable (Blue) -->\n                <path fill=\"none\" stroke=\"#4a6b8c\" stroke-width=\"6\" stroke-linecap=\"round\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" \n                           values=\"M 545,537 C 650,450 750,550 900,400; M 545,537 C 600,480 800,450 900,400; M 545,537 C 650,450 750,550 900,400\" \n                           dur=\"10s\" repeatCount=\"indefinite\" />\n                </path>\n                <!-- RJ45 Boot -->\n                <polygon points=\"540,535 550,530 550,545 540,550\" fill=\"#111\"/>\n\n                <!-- Base/Stand -->\n                <polygon points=\"420,640 480,670 580,620 520,590\" fill=\"url(#bb-silver-top)\" />\n                <polygon points=\"420,640 480,670 480,685 420,655\" fill=\"url(#bb-silver-front)\" />\n                <polygon points=\"480,670 580,620 580,635 480,685\" fill=\"url(#bb-silver-side)\" />\n                <polygon points=\"420,640 480,670 478,672 422,642\" fill=\"#fff\" opacity=\"0.6\"/> <!-- Stand Highlight -->\n                <!-- Base Cast Shadow on Void -->\n                <polygon points=\"420,655 580,720 720,560 580,635\" fill=\"#000\" opacity=\"0.15\"/>\n\n                <!-- Main Tower Structure -->\n                <!-- Left Silver Shell Edge -->\n                <polygon points=\"430,330 440,335 440,635 430,630\" fill=\"url(#bb-silver-front)\" />\n                <polygon points=\"430,330 520,185 530,190 440,335\" fill=\"url(#bb-silver-top)\" />\n\n                <!-- Inner Acrylic Core (The Face) -->\n                <polygon points=\"440,335 470,350 470,650 440,635\" fill=\"url(#bb-acrylic-front)\" />\n                <polygon points=\"440,335 470,350 468,352 442,337\" fill=\"#fff\" opacity=\"0.2\" /> <!-- Glass Top Specular -->\n                <polygon points=\"468,352 470,350 470,650 468,648\" fill=\"#fff\" opacity=\"0.05\" /> <!-- Glass Edge Reflection -->\n\n                <!-- Right Silver Shell (Main Side Panel) -->\n                <polygon points=\"470,350 560,205 560,605 470,650\" fill=\"url(#bb-silver-side)\" />\n                <polygon points=\"470,350 560,205 558,207 472,352\" fill=\"#fff\" opacity=\"0.5\" /> <!-- Shell Top Highlight -->\n                <polygon points=\"470,350 470,650 472,648 472,352\" fill=\"#fff\" opacity=\"0.3\" /> <!-- Shell Front Highlight -->\n\n                <!-- Deep Blue Gills / Vents (Cut into right shell) -->\n                <g>\n                    <!-- Vent 1 -->\n                    <polygon points=\"485,380 545,280 545,300 485,400\" fill=\"url(#bb-blue-core)\" />\n                    <polygon points=\"485,380 545,280 545,283 485,383\" fill=\"#000\" opacity=\"0.8\" /> <!-- Top Inner Rim -->\n                    <polygon points=\"485,380 485,400 487,400 487,380\" fill=\"#000\" opacity=\"0.8\" /> <!-- Left Inner Rim -->\n                    <!-- Vent 2 -->\n                    <polygon points=\"485,430 545,330 545,350 485,450\" fill=\"url(#bb-blue-core)\" />\n                    <polygon points=\"485,430 545,330 545,333 485,433\" fill=\"#000\" opacity=\"0.8\" />\n                    <polygon points=\"485,430 485,450 487,450 487,430\" fill=\"#000\" opacity=\"0.8\" />\n                    <!-- Vent 3 -->\n                    <polygon points=\"485,480 545,380 545,400 485,500\" fill=\"url(#bb-blue-core)\" />\n                    <polygon points=\"485,480 545,380 545,383 485,483\" fill=\"#000\" opacity=\"0.8\" />\n                    <polygon points=\"485,480 485,500 487,500 487,480\" fill=\"#000\" opacity=\"0.8\" />\n                    <!-- Vent 4 -->\n                    <polygon points=\"485,530 545,430 545,450 485,550\" fill=\"url(#bb-blue-core)\" />\n                    <polygon points=\"485,530 545,430 545,433 485,533\" fill=\"#000\" opacity=\"0.8\" />\n                    <polygon points=\"485,530 485,550 487,550 487,530\" fill=\"#000\" opacity=\"0.8\" />\n                    <!-- Vent 5 -->\n                    <polygon points=\"485,580 545,480 545,500 485,600\" fill=\"url(#bb-blue-core)\" />\n                    <polygon points=\"485,580 545,480 545,483 485,583\" fill=\"#000\" opacity=\"0.8\" />\n                    <polygon points=\"485,580 485,600 487,600 487,580\" fill=\"#000\" opacity=\"0.8\" />\n                </g>\n\n                <!-- Optical Array (LEDs embedded in acrylic front) -->\n                <g>\n                    <!-- PWR LED Rhombus -->\n                    <circle cx=\"455\" cy=\"404\" r=\"8\" fill=\"#39ff14\" opacity=\"0.05\" />\n                    <polygon points=\"450,400 460,405 460,408 450,403\" fill=\"#550000\" class=\"mc-diode d-pwr pwr-idle\" />\n                    <!-- TX LED Rhombus -->\n                    <circle cx=\"455\" cy=\"444\" r=\"8\" fill=\"#39ff14\" opacity=\"0.05\" />\n                    <polygon points=\"450,440 460,445 460,448 450,443\" fill=\"#003300\" class=\"mc-diode d-tx\" />\n                    <!-- RX LED Rhombus -->\n                    <circle cx=\"455\" cy=\"484\" r=\"8\" fill=\"#39ff14\" opacity=\"0.05\" />\n                    <polygon points=\"450,480 460,485 460,488 450,483\" fill=\"#003300\" class=\"mc-diode d-rx\" />\n                    <!-- CD/LINK LED Rhombus -->\n                    <circle cx=\"455\" cy=\"524\" r=\"8\" fill=\"#39ff14\" opacity=\"0.05\" />\n                    <polygon points=\"450,520 460,525 460,528 450,523\" fill=\"#003300\" class=\"mc-diode d-cd\" />\n                    <!-- ERR LED Rhombus -->\n                    <circle cx=\"455\" cy=\"564\" r=\"8\" fill=\"#39ff14\" opacity=\"0.05\" />\n                    <polygon points=\"450,560 460,565 460,568 450,563\" fill=\"#003300\" class=\"mc-diode d-err\" />\n                </g>\n\n                <!-- Status Labels (Aligned to isometric left face) -->\n                <g font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#666\" font-weight=\"bold\" text-anchor=\"end\">\n                    <text x=\"425\" y=\"405\" transform=\"translate(425, 405) skewY(26.565) translate(-425, -405)\">PWR</text>\n                    <text x=\"425\" y=\"445\" transform=\"translate(425, 445) skewY(26.565) translate(-425, -445)\">TX</text>\n                    <text x=\"425\" y=\"485\" transform=\"translate(425, 485) skewY(26.565) translate(-425, -485)\">RX</text>\n                    <text x=\"425\" y=\"525\" transform=\"translate(425, 525) skewY(26.565) translate(-425, -525)\">LINK</text>\n                    <text x=\"425\" y=\"565\" transform=\"translate(425, 565) skewY(26.565) translate(-425, -565)\">ERR</text>\n                </g>\n\n                <!-- Brand Badge -->\n                <rect x=\"525\" y=\"605\" width=\"30\" height=\"8\" fill=\"#111\" rx=\"1\" transform=\"translate(525, 605) skewY(-31.6) translate(-525, -605)\" opacity=\"0.8\"/>\n                <text x=\"540\" y=\"612\" font-family=\"Courier New, monospace\" font-size=\"5\" fill=\"#999\" font-weight=\"bold\" text-anchor=\"middle\" transform=\"translate(540, 612) skewY(-31.6) translate(-540, -612)\">SURF</text>\n\n                <!-- Callouts -->\n                <text x=\"45\" y=\"280\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"start\">OPTICAL CHILD</text>\n                <text x=\"45\" y=\"300\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"start\">10 MBPS FIBER</text>\n                <polyline points=\"45,310 180,310 430,405\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n                <text x=\"955\" y=\"650\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"end\">MODERN HOST</text>\n                <text x=\"955\" y=\"670\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"end\">ALWAYS ONLINE</text>\n                <polyline points=\"955,680 820,680 560,470\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n              </g>\n\n              <!-- ============================================== -->\n              <!-- VARIANT 2: ISDN (128 KBPS)                     -->\n              <!-- THE DIGITAL TWIN (Vertical Tower)              -->\n              <!-- ============================================== -->\n              <g id=\"var-isdn\" class=\"modem-variant\">\n                \n                <!-- Floor Grid (Clinical Context) -->\n                <g stroke=\"rgba(255,255,255,0.06)\" stroke-width=\"1.5\">\n                   <path d=\"M 150,570 L 650,320 M 250,620 L 750,370 M 350,670 L 850,420\" />\n                   <path d=\"M 750,670 L 250,420 M 850,620 L 350,370 M 950,570 L 450,320\" />\n                </g>\n\n                <!-- Rigid Data Channels (B1 & B2) -->\n                <path fill=\"none\" stroke=\"#2a2a2a\" stroke-width=\"8\" stroke-linejoin=\"miter\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                    values=\"M 557,506 L 620,474.5 L 620,300 L 800,210 L 800,50;\n                            M 557,506 L 610,479.5 L 610,310 L 790,220 L 790,50;\n                            M 557,506 L 620,474.5 L 620,300 L 800,210 L 800,50\"\n                    dur=\"8s\" repeatCount=\"indefinite\"/>\n                </path>\n                <!-- Channel 1 Detail Line -->\n                <path fill=\"none\" stroke=\"#8c8c8c\" stroke-width=\"1\" stroke-dasharray=\"8 4\" stroke-linejoin=\"miter\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                    values=\"M 557,506 L 620,474.5 L 620,300 L 800,210 L 800,50;\n                            M 557,506 L 610,479.5 L 610,310 L 790,220 L 790,50;\n                            M 557,506 L 620,474.5 L 620,300 L 800,210 L 800,50\"\n                    dur=\"8s\" repeatCount=\"indefinite\"/>\n                </path>\n\n                <path fill=\"none\" stroke=\"#111\" stroke-width=\"6\" stroke-linejoin=\"miter\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                    values=\"M 557,546 L 650,499.5 L 650,330 L 850,230 L 850,60;\n                            M 557,546 L 660,494.5 L 660,320 L 840,230 L 840,60;\n                            M 557,546 L 650,499.5 L 650,330 L 850,230 L 850,60\"\n                    dur=\"9.5s\" repeatCount=\"indefinite\"/>\n                </path>\n                <!-- Channel 2 Detail Line -->\n                <path fill=\"none\" stroke=\"#444\" stroke-width=\"1\" stroke-dasharray=\"4 8\" stroke-linejoin=\"miter\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                    values=\"M 557,546 L 650,499.5 L 650,330 L 850,230 L 850,60;\n                            M 557,546 L 660,494.5 L 660,320 L 840,230 L 840,60;\n                            M 557,546 L 650,499.5 L 650,330 L 850,230 L 850,60\"\n                    dur=\"9.5s\" repeatCount=\"indefinite\"/>\n                </path>\n\n                <!-- Base Cast Shadow -->\n                <polygon points=\"490,620 680,520 620,490 430,590\" fill=\"#000000\" opacity=\"0.25\" />\n\n                <!-- Deep Sockets (Right Face Back) -->\n                <polygon points=\"550,500 565,492.5 565,512.5 550,520\" fill=\"#000\"/> <!-- Port 1 -->\n                <polygon points=\"550,540 565,532.5 565,552.5 550,560\" fill=\"#000\"/> <!-- Port 2 -->\n\n                <!-- Main Tower Geometry (Isometric Bone White) -->\n                <!-- Top Face -->\n                <polygon points=\"430,220 510,180 570,210 490,250\" fill=\"url(#isdn-bone-top)\" />\n                <polygon points=\"430,220 510,180 508,182 432,222\" fill=\"#ffffff\" opacity=\"0.9\"/> <!-- Specular -->\n\n                <!-- Front Face -->\n                <polygon points=\"430,220 490,250 490,620 430,590\" fill=\"url(#isdn-bone-front)\" />\n                <polygon points=\"430,220 490,250 488,252 432,222\" fill=\"#ffffff\" opacity=\"0.7\"/> <!-- Front Highlight Edge -->\n\n                <!-- Right Face -->\n                <polygon points=\"490,250 570,210 570,580 490,620\" fill=\"url(#isdn-bone-side)\" />\n\n                <!-- Clinical Heat Vents (Right Face) -->\n                <g stroke=\"#1a1a1a\" stroke-width=\"4\" stroke-linecap=\"butt\" opacity=\"0.8\">\n                   <line x1=\"505\" y1=\"250\" x2=\"505\" y2=\"600\" />\n                   <line x1=\"520\" y1=\"245\" x2=\"520\" y2=\"590\" />\n                   <line x1=\"535\" y1=\"240\" x2=\"535\" y2=\"580\" />\n                   <line x1=\"550\" y1=\"235\" x2=\"550\" y2=\"570\" />\n                </g>\n                <!-- Vent Rim Highlights -->\n                <g stroke=\"#e8e8e6\" stroke-width=\"1\" stroke-linecap=\"butt\" opacity=\"0.8\">\n                   <line x1=\"507\" y1=\"250\" x2=\"507\" y2=\"600\" />\n                   <line x1=\"522\" y1=\"245\" x2=\"522\" y2=\"590\" />\n                   <line x1=\"537\" y1=\"240\" x2=\"537\" y2=\"580\" />\n                   <line x1=\"552\" y1=\"235\" x2=\"552\" y2=\"570\" />\n                </g>\n\n                <!-- FORENSIC HITBOXES -->\n                <path d=\"M 550,500 L 650,330 L 850,50 L 780,40 Z\" class=\"hitbox\" stroke-width=\"40\" fill=\"none\" stroke=\"transparent\" data-lore=\"DUAL B-CHANNELS|-> SYNC: PERFECT|-> PACKET LOSS: 0.0%\" />\n                <polygon points=\"490,250 570,210 570,580 490,620\" class=\"hitbox\" data-lore=\"CLINICAL VENTS|-> AIRFLOW: STERILE|-> ORGANIC MATTER: 0%\" />\n                <polygon points=\"445,242 475,257 475,597 445,582\" class=\"hitbox\" data-lore=\"STATUS PANEL|-> ISDN LINK: ESTABLISHED|-> TIMING: RIGID\" />\n                <polygon points=\"430,220 510,180 570,210 490,250\" class=\"hitbox secret-reset\" data-lore=\"DIAGNOSTIC JUMPER|-> SHORTING PINS...|-> ALERT: SYSTEM BREACH\" />\n\n                <!-- Front Dark Status Panel -->\n                <polygon points=\"445,242.5 475,257.5 475,597.5 445,582.5\" fill=\"url(#isdn-panel)\" />\n                <!-- Panel Inner Shadows -->\n                <polygon points=\"445,242.5 475,257.5 476,259.5 446,244.5\" fill=\"#000000\" opacity=\"0.6\" />\n                <polygon points=\"445,242.5 445,582.5 447,582.5 447,244.5\" fill=\"#000000\" opacity=\"0.6\" />\n\n                <!-- Vertical LED Array (Squares on isometric plane) -->\n                <g stroke=\"#000\" stroke-width=\"1\">\n                    <!-- PWR LED -->\n                    <polygon points=\"456,278 464,282 464,288 456,284\" fill=\"#550000\" class=\"mc-diode d-pwr pwr-idle\" />\n                    <!-- B1 (TX) LED -->\n                    <polygon points=\"456,338 464,342 464,348 456,344\" fill=\"#003300\" class=\"mc-diode d-tx\" />\n                    <!-- B2 (RX) LED -->\n                    <polygon points=\"456,398 464,402 464,408 456,404\" fill=\"#003300\" class=\"mc-diode d-rx\" />\n                    <!-- D-CH (CD) LED -->\n                    <polygon points=\"456,458 464,462 464,468 456,464\" fill=\"#003300\" class=\"mc-diode d-cd\" />\n                    <!-- SYNC (ERR) LED -->\n                    <polygon points=\"456,518 464,522 464,528 456,524\" fill=\"#003300\" class=\"mc-diode d-err\" />\n                </g>\n\n                <!-- Status Text Labels -->\n                <g font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#777\" font-weight=\"bold\" text-anchor=\"end\">\n                     <!-- transform=\"skewY(26.565)\" correctly shears the text to align with the isometric front face -->\n                     <text x=\"450\" y=\"284\" transform=\"translate(450, 284) skewY(26.565) translate(-450, -284)\">PWR</text>\n                     <text x=\"450\" y=\"344\" transform=\"translate(450, 344) skewY(26.565) translate(-450, -344)\">B1</text>\n                     <text x=\"450\" y=\"404\" transform=\"translate(450, 404) skewY(26.565) translate(-450, -404)\">B2</text>\n                     <text x=\"450\" y=\"464\" transform=\"translate(450, 464) skewY(26.565) translate(-450, -464)\">D</text>\n                     <text x=\"450\" y=\"524\" transform=\"translate(450, 524) skewY(26.565) translate(-450, -524)\">SYNC</text>\n                </g>\n\n                <!-- Callouts -->\n                <text x=\"45\" y=\"280\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"start\">DIGITAL TWIN</text>\n                <text x=\"45\" y=\"300\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"start\">DUAL B-CHANNEL</text>\n                <polyline points=\"45,310 180,310 430,440\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n                <text x=\"955\" y=\"650\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"end\">NETWORK TOWER</text>\n                <text x=\"955\" y=\"670\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"end\">CLINICAL DATA</text>\n                <polyline points=\"955,680 820,680 620,470\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n              </g>\n\n              <!-- ============================================== -->\n              <!-- VARIANT 3: V.90 (56K - ORIGINAL)               -->\n              <!-- THE SIGNAL CHILD (Aerodynamic / Translucent)   -->\n              <!-- ============================================== -->\n              <g id=\"var-v90\" class=\"modem-variant\">\n                \n                <!-- Background Environment / Swarm -->\n                <g opacity=\"0.4\">\n                   <!-- Swarm Path 1 -->\n                   <path fill=\"none\" stroke=\"#ffffff\" stroke-width=\"0.5\" stroke-dasharray=\"2 6\">\n                     <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                              values=\"M 200,600 Q 300,300 800,200; M 200,600 Q 400,400 800,200; M 200,600 Q 300,300 800,200\"\n                              dur=\"4s\" repeatCount=\"indefinite\" />\n                   </path>\n                   <!-- Swarm Path 2 -->\n                   <path fill=\"none\" stroke=\"#ffffff\" stroke-width=\"0.5\" stroke-dasharray=\"4 8\">\n                     <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                              values=\"M 100,300 Q 500,200 900,500; M 100,300 Q 400,500 900,500; M 100,300 Q 500,200 900,500\"\n                              dur=\"5s\" repeatCount=\"indefinite\" />\n                   </path>\n                   <!-- Swarm Path 3 -->\n                   <path fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"1 10\">\n                     <animate class=\"mc-umb-anim\" attributeName=\"d\"\n                              values=\"M 300,150 Q 500,700 750,650; M 300,150 Q 600,400 750,650; M 300,150 Q 500,700 750,650\"\n                              dur=\"3s\" repeatCount=\"indefinite\" />\n                   </path>\n                </g>\n\n                <!-- Background Umbilicals (Gestational Links) -->\n                <path fill=\"none\" stroke=\"url(#umbilicalGradLight)\" stroke-width=\"3\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 400,420 C 250,250 150,400 100,180; M 400,420 C 200,280 190,370 100,180; M 400,420 C 250,250 150,400 100,180\" dur=\"12s\" repeatCount=\"indefinite\" />\n                </path>\n                <path fill=\"none\" stroke=\"url(#umbilicalGradLight)\" stroke-width=\"2.5\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 600,380 C 750,200 850,350 900,150; M 600,380 C 780,170 810,380 900,150; M 600,380 C 750,200 850,350 900,150\" dur=\"14s\" repeatCount=\"indefinite\" />\n                </path>\n\n                <!-- Base Cast Shadow -->\n                <ellipse cx=\"500\" cy=\"540\" rx=\"180\" ry=\"60\" fill=\"#000000\" opacity=\"0.4\" />\n\n                <!-- Aerodynamic Curved Shell (Diamond SupraExpress Style) -->\n                <!-- Bottom Hull -->\n                <path d=\"M 300,500 C 300,560 400,580 500,580 C 600,580 700,560 700,500 C 700,480 650,450 500,450 C 350,450 300,480 300,500 Z\" fill=\"url(#v90-shell-side)\" />\n                <!-- Top Curved Dome -->\n                <path d=\"M 300,500 C 300,420 400,380 500,380 C 600,380 700,420 700,500 C 700,480 650,450 500,450 C 350,450 300,480 300,500 Z\" fill=\"url(#v90-shell-top)\" />\n                \n                <!-- Specular Highlights on Curves -->\n                <!-- Top Dome Ridge -->\n                <path d=\"M 340,460 C 400,400 600,400 660,460\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"6\" stroke-linecap=\"round\" opacity=\"0.1\" />\n                <path d=\"M 350,460 C 420,410 580,410 650,460\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"2\" stroke-linecap=\"round\" opacity=\"0.3\" />\n                <!-- Front Edge Bead -->\n                <path d=\"M 310,505 C 380,530 620,530 690,505\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1.5\" stroke-linecap=\"round\" opacity=\"0.15\" />\n\n                <!-- Translucent Front Bezel (Curved) -->\n                <path d=\"M 350,510 C 420,540 580,540 650,510 L 640,535 C 570,560 430,560 360,535 Z\" fill=\"#050505\" />\n                <!-- Internal Board visible through Bezel -->\n                <path d=\"M 370,515 C 430,535 570,535 630,515 L 620,525 C 560,545 440,545 380,525 Z\" fill=\"#151b15\" opacity=\"0.5\"/>\n\n                <!-- Circular Diodes Embedded in Bezel -->\n                <g>\n                    <!-- PWR LED -->\n                    <circle cx=\"460\" cy=\"527\" r=\"4\" fill=\"#550000\" class=\"mc-diode d-pwr pwr-idle\" />\n                    <!-- TX LED -->\n                    <circle cx=\"480\" cy=\"530\" r=\"4\" fill=\"#003300\" class=\"mc-diode d-tx\" />\n                    <!-- RX LED -->\n                    <circle cx=\"500\" cy=\"531\" r=\"4\" fill=\"#003300\" class=\"mc-diode d-rx\" />\n                    <!-- CD LED -->\n                    <circle cx=\"520\" cy=\"530\" r=\"4\" fill=\"#003300\" class=\"mc-diode d-cd\" />\n                    <!-- ERR LED -->\n                    <circle cx=\"540\" cy=\"527\" r=\"4\" fill=\"#003300\" class=\"mc-diode d-err\" />\n                </g>\n\n                <!-- Status Text Labels (Curved along bezel) -->\n                <g font-family=\"Courier New, monospace\" font-size=\"6\" fill=\"#555\" font-weight=\"bold\" text-anchor=\"middle\">\n                    <text x=\"460\" y=\"542\">PWR</text>\n                    <text x=\"480\" y=\"545\">TX</text>\n                    <text x=\"500\" y=\"546\">RX</text>\n                    <text x=\"520\" y=\"545\">CD</text>\n                    <text x=\"540\" y=\"542\">ERR</text>\n                </g>\n\n                <!-- Gestational Ports (Sprouting from the top dome) -->\n                <!-- The \"Crater\" / Dock -->\n                <ellipse cx=\"500\" cy=\"410\" rx=\"80\" ry=\"15\" fill=\"#111\" />\n                <ellipse cx=\"500\" cy=\"410\" rx=\"75\" ry=\"12\" fill=\"#050505\" />\n                <!-- Nodes inside dock -->\n                <g stroke=\"#000\" stroke-width=\"1\" fill=\"#2a2a2a\">\n                    <ellipse cx=\"440\" cy=\"410\" rx=\"8\" ry=\"4\" />\n                    <ellipse cx=\"470\" cy=\"410\" rx=\"8\" ry=\"4\" />\n                    <ellipse cx=\"500\" cy=\"410\" rx=\"8\" ry=\"4\" fill=\"#444\" />\n                    <ellipse cx=\"530\" cy=\"410\" rx=\"8\" ry=\"4\" />\n                    <ellipse cx=\"560\" cy=\"410\" rx=\"8\" ry=\"4\" />\n                </g>\n\n                <!-- FORENSIC HITBOXES -->\n                <ellipse cx=\"500\" cy=\"410\" rx=\"80\" ry=\"25\" class=\"hitbox\" data-lore=\"GESTATIONAL PORTS|-> FLUID: CRITICAL|-> CONNECTION: PARASITIC\" />\n                <path d=\"M 440,410 C 250,250 150,550 50,400\" class=\"hitbox\" fill=\"none\" stroke-width=\"50\" data-lore=\"UMBILICAL LINK|-> TENSILE STRENGTH: HIGH|-> BIOMETRICS: PULSING\" />\n                <path d=\"M 350,510 C 420,540 580,540 650,510 L 640,535 C 570,560 430,560 360,535 Z\" class=\"hitbox\" data-lore=\"TRANSLUCENT CARAPACE|-> ORGANS: VISIBLE|-> STATUS: AGITATED\" />\n                <ellipse cx=\"500\" cy=\"460\" rx=\"25\" ry=\"15\" class=\"hitbox secret-reset\" data-lore=\"NERVATURE NODE|-> APPLYING PRESSURE...|-> ALERT: SYSTEM BREACH\" />\n\n                <!-- Foreground Umbilicals (Erupting vertically) -->\n                <path fill=\"none\" stroke=\"url(#umbilicalGrad)\" stroke-width=\"4\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 440,410 C 250,250 150,550 50,400; M 440,410 C 210,280 180,520 50,400; M 440,410 C 250,250 150,550 50,400\" dur=\"11s\" repeatCount=\"indefinite\" />\n                </path>\n                <path fill=\"none\" stroke=\"url(#umbilicalGrad)\" stroke-width=\"3\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 470,410 C 400,150 650,200 800,100; M 470,410 C 380,130 680,230 800,100; M 470,410 C 400,150 650,200 800,100\" dur=\"15s\" repeatCount=\"indefinite\" />\n                </path>\n                <path fill=\"none\" stroke=\"#222\" stroke-width=\"5\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 500,410 C 550,100 250,100 350,50; M 500,410 C 580,80 220,80 350,50; M 500,410 C 550,100 250,100 350,50\" dur=\"13s\" repeatCount=\"indefinite\" />\n                </path>\n                <path fill=\"none\" stroke=\"url(#umbilicalGrad)\" stroke-width=\"3.5\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 530,410 C 700,300 900,450 920,250; M 530,410 C 730,270 880,480 920,250; M 530,410 C 700,300 900,450 920,250\" dur=\"12.5s\" repeatCount=\"indefinite\" />\n                </path>\n                <path fill=\"none\" stroke=\"#333\" stroke-width=\"4\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 560,410 C 850,250 650,100 780,80; M 560,410 C 880,230 620,80 780,80; M 560,410 C 850,250 650,100 780,80\" dur=\"10.5s\" repeatCount=\"indefinite\" />\n                </path>\n\n                <!-- Brand Badge -->\n                <ellipse cx=\"500\" cy=\"460\" rx=\"15\" ry=\"5\" fill=\"#111\" />\n                <text x=\"500\" y=\"462\" font-family=\"Courier New, monospace\" font-size=\"5\" fill=\"#aaa\" font-weight=\"bold\" text-anchor=\"middle\">PEAK</text>\n\n                <!-- Callouts -->\n                <text x=\"45\" y=\"280\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"start\">SIGNAL CHILD</text>\n                <text x=\"45\" y=\"300\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"start\">GESTATIONAL LINK</text>\n                <polyline points=\"45,310 180,310 440,410\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n                <text x=\"955\" y=\"650\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"end\">DOMESTIC MACHINE</text>\n                <text x=\"955\" y=\"670\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"end\">RAISED BY COMPUTERS</text>\n                <polyline points=\"955,680 820,680 640,535\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n              </g>\n\n              <!-- ============================================== -->\n              <!-- VARIANT 4: V.34 (33.6K)                        -->\n              <!-- THE ANALOG YOUTH (US Robotics Style)           -->\n              <!-- ============================================== -->\n              <g id=\"var-v34\" class=\"modem-variant\">\n                \n                <!-- Background Umbilicals / Cables exiting rear -->\n                <!-- Heavy RS-232 Serial Cable -->\n                <path fill=\"none\" stroke=\"#333\" stroke-width=\"12\" stroke-linecap=\"round\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 450,380 C 250,200 150,550 50,400; M 450,380 C 210,230 180,520 50,400; M 450,380 C 250,200 150,550 50,400\" dur=\"11s\" repeatCount=\"indefinite\" />\n                </path>\n                <!-- Serial Cable Ridge Highlight -->\n                <path fill=\"none\" stroke=\"#4a4a4a\" stroke-width=\"4\" stroke-dasharray=\"8 4\" stroke-linecap=\"round\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 450,380 C 250,200 150,550 50,400; M 450,380 C 210,230 180,520 50,400; M 450,380 C 250,200 150,550 50,400\" dur=\"11s\" repeatCount=\"indefinite\" />\n                </path>\n                <!-- Phone Line (RJ11) -->\n                <path fill=\"none\" stroke=\"#999\" stroke-width=\"4\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 500,380 C 550,150 250,150 350,50; M 500,380 C 580,130 220,130 350,50; M 500,380 C 550,150 250,150 350,50\" dur=\"13s\" repeatCount=\"indefinite\" />\n                </path>\n                <!-- Power Cord -->\n                <path fill=\"none\" stroke=\"#111\" stroke-width=\"5\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 550,380 C 850,300 650,150 780,80; M 550,380 C 880,280 620,130 780,80; M 550,380 C 850,300 650,150 780,80\" dur=\"10.5s\" repeatCount=\"indefinite\" />\n                </path>\n\n                <!-- Boxy Beige Casing -->\n                <!-- Top Face -->\n                <polygon points=\"300,460 700,460 620,360 380,360\" fill=\"url(#v34-beige-top)\" />\n                <!-- Top Face Front Highlight -->\n                <polygon points=\"300,460 700,460 698,462 302,462\" fill=\"#ffffff\" opacity=\"0.6\" />\n                <!-- Top Face Back Shadow -->\n                <polygon points=\"380,360 620,360 618,362 382,362\" fill=\"#000000\" opacity=\"0.1\" />\n                \n                <!-- Front Face (Wedge) -->\n                <polygon points=\"300,460 700,460 720,530 280,530\" fill=\"url(#v34-beige-front)\" />\n                <!-- Right Side Face -->\n                <polygon points=\"700,460 620,360 620,430 720,530\" fill=\"url(#v34-beige-side)\" />\n\n                <!-- Iconic Deep Horizontal Heat Vents (Top Face) -->\n                <g opacity=\"0.8\">\n                    <!-- Vent 1 -->\n                    <line x1=\"370\" y1=\"380\" x2=\"630\" y2=\"380\" stroke=\"#9a9588\" stroke-width=\"3\" stroke-linecap=\"round\"/>\n                    <line x1=\"370\" y1=\"381.5\" x2=\"630\" y2=\"381.5\" stroke=\"#e3decb\" stroke-width=\"1\" stroke-linecap=\"round\"/>\n                    <!-- Vent 2 -->\n                    <line x1=\"355\" y1=\"400\" x2=\"645\" y2=\"400\" stroke=\"#9a9588\" stroke-width=\"3\" stroke-linecap=\"round\"/>\n                    <line x1=\"355\" y1=\"401.5\" x2=\"645\" y2=\"401.5\" stroke=\"#e3decb\" stroke-width=\"1\" stroke-linecap=\"round\"/>\n                    <!-- Vent 3 -->\n                    <line x1=\"340\" y1=\"420\" x2=\"660\" y2=\"420\" stroke=\"#9a9588\" stroke-width=\"3\" stroke-linecap=\"round\"/>\n                    <line x1=\"340\" y1=\"421.5\" x2=\"660\" y2=\"421.5\" stroke=\"#e3decb\" stroke-width=\"1\" stroke-linecap=\"round\"/>\n                    <!-- Vent 4 -->\n                    <line x1=\"325\" y1=\"440\" x2=\"675\" y2=\"440\" stroke=\"#9a9588\" stroke-width=\"3\" stroke-linecap=\"round\"/>\n                    <line x1=\"325\" y1=\"441.5\" x2=\"675\" y2=\"441.5\" stroke=\"#e3decb\" stroke-width=\"1\" stroke-linecap=\"round\"/>\n                </g>\n\n                <!-- FORENSIC HITBOXES -->\n                <polygon points=\"325,440 675,440 630,380 370,380\" class=\"hitbox\" data-lore=\"THERMAL VENTS|-> DUST BUILDUP: HIGH|-> INTERNAL TEMP: 42.4 C\" />\n                <polygon points=\"315,470 685,470 705,515 295,515\" class=\"hitbox\" data-lore=\"ACRYLIC BEZEL|-> LEDs: ANALOG GREEN|-> PROTOCOL: V.34 ACTIVE\" />\n                <polygon points=\"300,460 700,460 620,360 380,360\" class=\"hitbox\" data-lore=\"BEIGE HOUSING|-> MATERIAL: ABS PLASTIC|-> STRUCTURAL INTEGRITY: 92%\" />\n                <polygon points=\"700,460 620,360 620,430 720,530\" class=\"hitbox secret-reset\" data-lore=\"MAINTENANCE PINHOLE|-> INSERTING PROBE...|-> ALERT: SYSTEM BREACH\" />\n\n                <!-- Dark Acrylic Front Bezel (Inset) -->\n                <polygon points=\"315,470 685,470 705,515 295,515\" fill=\"url(#v34-bezel)\" />\n                <!-- Bezel Inner Shadows/Highlights -->\n                <polygon points=\"315,470 685,470 684,472 316,472\" fill=\"#000000\" opacity=\"0.5\" />\n                <polygon points=\"295,515 705,515 704,513 296,513\" fill=\"#ffffff\" opacity=\"0.15\" />\n\n                <!-- Brand Badge -->\n                <rect x=\"330\" y=\"488\" width=\"40\" height=\"12\" fill=\"#111\" rx=\"1\" />\n                <text x=\"350\" y=\"497\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#777\" font-weight=\"bold\" text-anchor=\"middle\">SPORT</text>\n\n                <!-- Rectangular LEDs & Labels -->\n                <g>\n                    <!-- PWR LED -->\n                    <rect x=\"426\" y=\"488\" width=\"12\" height=\"6\" rx=\"1\" fill=\"#550000\" class=\"mc-diode d-pwr pwr-idle\" />\n                    <text x=\"432\" y=\"504\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#888\" font-weight=\"bold\" text-anchor=\"middle\">PWR</text>\n                    \n                    <!-- TX LED -->\n                    <rect x=\"460\" y=\"488\" width=\"12\" height=\"6\" rx=\"1\" fill=\"#003300\" class=\"mc-diode d-tx\" />\n                    <text x=\"466\" y=\"504\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#888\" font-weight=\"bold\" text-anchor=\"middle\">TX</text>\n                    \n                    <!-- RX LED -->\n                    <rect x=\"494\" y=\"488\" width=\"12\" height=\"6\" rx=\"1\" fill=\"#003300\" class=\"mc-diode d-rx\" />\n                    <text x=\"500\" y=\"504\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#888\" font-weight=\"bold\" text-anchor=\"middle\">RX</text>\n                    \n                    <!-- CD LED -->\n                    <rect x=\"528\" y=\"488\" width=\"12\" height=\"6\" rx=\"1\" fill=\"#003300\" class=\"mc-diode d-cd\" />\n                    <text x=\"534\" y=\"504\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#888\" font-weight=\"bold\" text-anchor=\"middle\">CD</text>\n                    \n                    <!-- ERR LED -->\n                    <rect x=\"562\" y=\"488\" width=\"12\" height=\"6\" rx=\"1\" fill=\"#003300\" class=\"mc-diode d-err\" />\n                    <text x=\"568\" y=\"504\" font-family=\"Courier New, monospace\" font-size=\"7\" fill=\"#888\" font-weight=\"bold\" text-anchor=\"middle\">ERR</text>\n                </g>\n\n                <!-- Callouts -->\n                <text x=\"45\" y=\"280\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"start\">ANALOG YOUTH</text>\n                <text x=\"45\" y=\"300\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"start\">33.6K PROTOCOL</text>\n                <polyline points=\"45,310 180,310 315,470\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n                \n                <text x=\"955\" y=\"650\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"end\">DESKTOP WORKHORSE</text>\n                <text x=\"955\" y=\"670\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"end\">EARLY ADOPTER</text>\n                <polyline points=\"955,680 820,680 705,515\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n              </g>\n\n              <!-- ============================================== -->\n              <!-- VARIANT 5: V.22 (2400 BAUD ACOUSTIC)           -->\n              <!-- THE ACOUSTIC ELDER                             -->\n              <!-- ============================================== -->\n              <g id=\"var-v22\" class=\"modem-variant active\">\n                \n                <!-- Teak Wood Plinth -->\n                <polygon points=\"250,550 750,550 750,590 250,590\" fill=\"url(#v22-wood)\"/> <!-- Front Wood edge -->\n                <polygon points=\"750,550 650,430 650,470 750,590\" fill=\"url(#v22-wood-side)\"/> <!-- Side Wood edge -->\n                <polygon points=\"250,550 750,550 650,430 350,430\" fill=\"#140a02\"/> <!-- Top wood face under console -->\n\n                <!-- Beige Metal Console -->\n                <polygon points=\"270,540 730,540 640,440 360,440\" fill=\"url(#v22-beige-top)\"/> <!-- Top Plate -->\n                <polygon points=\"270,540 730,540 760,590 240,590\" fill=\"url(#v22-beige-front)\"/> <!-- Slanted Front Plate -->\n                <polygon points=\"730,540 640,440 640,450 760,590\" fill=\"#9e9785\"/> <!-- Side Plate -->\n\n                <!-- Rubber Acoustic Cups (The Muffs) -->\n                <g id=\"v22-left-muff\">\n                  <ellipse cx=\"410\" cy=\"480\" rx=\"45\" ry=\"18\" fill=\"#080808\" /> <!-- Base Shadow -->\n                  <path d=\"M 365,480 L 365,450 A 45 18 0 0 0 455,450 L 455,480 A 45 18 0 0 1 365,480\" fill=\"url(#v22-cup)\"/> <!-- Cup Wall -->\n                  <ellipse cx=\"410\" cy=\"450\" rx=\"45\" ry=\"18\" fill=\"#1a1a1a\" /> <!-- Cup Rim -->\n                  <ellipse cx=\"410\" cy=\"450\" rx=\"32\" ry=\"10\" fill=\"#050505\" /> <!-- Cup Inside -->\n                  <circle cx=\"410\" cy=\"450\" r=\"14\" fill=\"#000\" opacity=\"0.8\"/> <!-- Speaker Grill Base -->\n                  <!-- Speaker Dots -->\n                  <path d=\"M 405,448 h 10 M 403,450 h 14 M 405,452 h 10\" stroke=\"#333\" stroke-width=\"1.5\" stroke-dasharray=\"1 2\"/>\n                </g>\n\n                <g id=\"v22-right-muff\">\n                  <ellipse cx=\"590\" cy=\"480\" rx=\"45\" ry=\"18\" fill=\"#080808\" />\n                  <path d=\"M 545,480 L 545,450 A 45 18 0 0 0 635,450 L 635,480 A 45 18 0 0 1 545,480\" fill=\"url(#v22-cup)\"/>\n                  <ellipse cx=\"590\" cy=\"450\" rx=\"45\" ry=\"18\" fill=\"#1a1a1a\" />\n                  <ellipse cx=\"590\" cy=\"450\" rx=\"32\" ry=\"10\" fill=\"#050505\" />\n                  <circle cx=\"590\" cy=\"450\" r=\"14\" fill=\"#000\" opacity=\"0.8\"/>\n                  <path d=\"M 585,448 h 10 M 583,450 h 14 M 585,452 h 10\" stroke=\"#333\" stroke-width=\"1.5\" stroke-dasharray=\"1 2\"/>\n                </g>\n\n                <!-- FORENSIC HITBOXES -->\n                <circle cx=\"410\" cy=\"450\" r=\"50\" class=\"hitbox\" data-lore=\"ACOUSTIC MUFF|-> MATERIAL: VULCANIZED RUBBER|-> GHOST SIGNAL DETECTED\" />\n                <circle cx=\"590\" cy=\"450\" r=\"50\" class=\"hitbox\" data-lore=\"ACOUSTIC MUFF|-> RESIDUAL HUMAN VOCAL DATA|-> STATUS: DEGRADED\" />\n                <polygon points=\"270,540 730,540 760,590 240,590\" class=\"hitbox\" data-lore=\"METAL CONSOLE|-> TOGGLES: HEAVY MECHANICAL|-> PAINT: CHIPPED BEIGE\" />\n                <path d=\"M 700,480 C 800,300 850,550 920,300\" class=\"hitbox\" stroke-width=\"40\" fill=\"none\" stroke=\"transparent\" data-lore=\"SERIAL CABLE|-> TYPE: THICK COIL|-> SHIELDING: INTACT\" />\n                <polygon points=\"750,550 650,430 650,470 750,590\" class=\"hitbox secret-reset\" data-lore=\"TEAK PLINTH NOTCH|-> PRYING OPEN WOOD...|-> ALERT: SYSTEM BREACH\" />\n\n                <!-- Front Control Panel (Slanted) -->\n                <!-- Toggle Switches -->\n                <!-- Power Toggle -->\n                <rect x=\"365\" y=\"560\" width=\"12\" height=\"16\" fill=\"#111\" transform=\"skewX(-10)\"/>\n                <rect x=\"369\" y=\"550\" width=\"4\" height=\"14\" fill=\"#e0e0e0\" transform=\"skewX(-10)\"/> <!-- Switch UP -->\n                <text x=\"375\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" transform=\"skewX(-15)\">PWR</text>\n\n                <!-- Mode Toggle -->\n                <rect x=\"425\" y=\"560\" width=\"12\" height=\"16\" fill=\"#111\" transform=\"skewX(-10)\"/>\n                <rect x=\"429\" y=\"565\" width=\"4\" height=\"14\" fill=\"#a0a0a0\" transform=\"skewX(-10)\"/> <!-- Switch DOWN -->\n                <text x=\"435\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" transform=\"skewX(-15)\">ORIG</text>\n\n                <!-- Chunky Status Bulbs -->\n                <g transform=\"skewX(-15)\">\n                  <!-- PWR Bulb -->\n                  <circle cx=\"610\" cy=\"565\" r=\"7\" fill=\"#550000\" stroke=\"#222\" stroke-width=\"1.5\" class=\"mc-diode d-pwr pwr-idle\"/>\n                  <text x=\"610\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" text-anchor=\"middle\">PWR</text>\n                  <!-- TX Bulb -->\n                  <circle cx=\"650\" cy=\"565\" r=\"7\" fill=\"#003300\" stroke=\"#222\" stroke-width=\"1.5\" class=\"mc-diode d-tx\"/>\n                  <text x=\"650\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" text-anchor=\"middle\">TX</text>\n                  <!-- RX Bulb -->\n                  <circle cx=\"690\" cy=\"565\" r=\"7\" fill=\"#003300\" stroke=\"#222\" stroke-width=\"1.5\" class=\"mc-diode d-rx\"/>\n                  <text x=\"690\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" text-anchor=\"middle\">RX</text>\n                  <!-- ERR Bulb -->\n                  <circle cx=\"730\" cy=\"565\" r=\"7\" fill=\"#003300\" stroke=\"#222\" stroke-width=\"1.5\" class=\"mc-diode d-err\"/>\n                  <text x=\"730\" y=\"585\" font-family=\"Courier New, monospace\" font-size=\"8\" fill=\"#666\" font-weight=\"bold\" text-anchor=\"middle\">ERR</text>\n                </g>\n\n                <!-- Wireframe Ghost Handset (Resting in cups) -->\n                <g stroke=\"rgba(255, 255, 255, 0.25)\" stroke-width=\"1.5\" fill=\"none\" opacity=\"0.8\">\n                    <path d=\"M 410,430 C 450,370 550,370 590,430\" stroke-width=\"3\" stroke-linecap=\"round\"/> <!-- Handle curve -->\n                    <polygon points=\"380,430 440,430 420,450 400,450\" /> <!-- Left earpiece ghost -->\n                    <polygon points=\"560,430 620,430 600,450 580,450\" /> <!-- Right mouthpiece ghost -->\n                    <!-- Handset Cord trailing off -->\n                    <path d=\"M 380,440 C 350,460 300,420 320,400 C 340,380 280,350 250,400 C 220,450 180,400 150,450\" stroke-width=\"1.5\" stroke-dasharray=\"4 4\" opacity=\"0.5\"/>\n                </g>\n\n                <!-- Heavy Coiled Terminal Serial Cable -->\n                <path fill=\"none\" stroke=\"url(#umbilicalGrad)\" stroke-width=\"14\" stroke-linecap=\"round\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 700,480 C 800,300 850,550 920,300; M 700,480 C 850,350 800,600 920,300; M 700,480 C 800,300 850,550 920,300\" dur=\"10s\" repeatCount=\"indefinite\" />\n                </path>\n                <!-- Coil ridges effect (using dasharray) -->\n                <path fill=\"none\" stroke=\"#0a0a0a\" stroke-width=\"14\" stroke-dasharray=\"2 6\" stroke-linecap=\"butt\">\n                  <animate class=\"mc-umb-anim\" attributeName=\"d\" values=\"M 700,480 C 800,300 850,550 920,300; M 700,480 C 850,350 800,600 920,300; M 700,480 C 800,300 850,550 920,300\" dur=\"10s\" repeatCount=\"indefinite\" />\n                </path>\n\n                <!-- Callouts -->\n                <text x=\"45\" y=\"280\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"start\">ACOUSTIC ELDER</text>\n                <text x=\"45\" y=\"300\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"start\">2400 BAUD PULSE</text>\n                <polyline points=\"45,310 180,310 390,440\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n                <text x=\"955\" y=\"650\" font-family=\"Courier New, monospace\" font-size=\"16\" fill=\"#f2f2f2\" letter-spacing=\"0.12em\" text-anchor=\"end\">TERMINAL RELIC</text>\n                <text x=\"955\" y=\"670\" font-family=\"Courier New, monospace\" font-size=\"11\" fill=\"#747474\" letter-spacing=\"0.12em\" text-anchor=\"end\">PRE-WEB ARTEFACT</text>\n                <polyline points=\"955,680 820,680 700,540\" fill=\"none\" stroke=\"#747474\" stroke-width=\"1\" marker-end=\"url(#mc-arrow)\" />\n              </g>\n\n            </svg>\n          </div>\n\n          <button id=\"sel-next\" class=\"sel-arrow\">&gt;</button>\n        </div>\n\n        <div id=\"sel-info\">\n          <div id=\"sel-name\">V.90 MODEM</div>\n          <div id=\"sel-speed\">56K</div>\n          <div id=\"sel-desc\">PROTOCOL: V.42BIS</div>\n        </div>\n\n        <button class=\"connect-btn visible\" id=\"connect-btn\" type=\"button\">CONNECT -></button>\n      </div>\n\n      <div id=\"right-panel\">\n        <div>\n          <div class=\"section-title\">SESSION LOG</div>\n          <div class=\"section-sub\">BOOT NOISE / NEGOTIATION / LINE STATUS</div>\n        </div>\n\n        <div id=\"log-panel\">\n          <div id=\"log-lines\"></div>\n        </div>\n\n        <div id=\"progress-block\">\n          <div class=\"pb-row\"><span id=\"pb-label\">AWAITING CONNECTION</span><span id=\"pb-pct\">--</span></div>\n          <div class=\"pb-track\"><div class=\"pb-fill\" id=\"pb-fill\"></div></div>\n        </div>\n\n        <div id=\"post-connect\">\n          <div class=\"pc-row\"><span class=\"pc-label\">STATUS</span><span class=\"pc-value\" id=\"pc-status\">-</span></div>\n          <div class=\"pc-row\"><span class=\"pc-label\">CONNECTION</span><span class=\"pc-value\" id=\"pc-conn\">-</span></div>\n          <div class=\"pc-row\"><span class=\"pc-label\">PROTOCOL</span><span class=\"pc-value\" id=\"pc-proto\">-</span></div>\n          <div class=\"pc-row\"><span class=\"pc-label\">COMPRESSION</span><span class=\"pc-value\" id=\"pc-comp\">-</span></div>\n          <div class=\"pc-row\"><span class=\"pc-label\">NOISE MARGIN</span><span class=\"pc-value\" id=\"pc-noise\">-</span></div>\n          <div class=\"pc-row\"><span class=\"pc-label\">ESTABLISHED</span><span class=\"pc-value\" id=\"pc-time\">-</span></div>\n          <button class=\"proceed-btn\" id=\"enter-system-btn\" type=\"button\">ENTER SYSTEM -></button>\n        </div>\n      </div>\n    </section>\n\n    <section id=\"desktop-screen\" class=\"screen\">\n      <div id=\"launcher-col\">\n        <div>\n          <div class=\"section-title\">PROGRAM LAUNCHER</div>\n          <div class=\"section-sub\" id=\"launcher-hint\">TYPE IN TTY OR PRESS 1 / 2 / 3</div>\n        </div>\n\n        <div id=\"program-list\"></div>\n\n        <div class=\"side-card\">\n          <div class=\"card-title\">BOOT NOTES</div>\n          <div id=\"desktop-log\"></div>\n        </div>\n\n        <div class=\"side-card\">\n          <div class=\"card-title\">HINTS</div>\n          <div class=\"card-copy\">\n            <div><strong>TTY:</strong> type <span class=\"accent\">help</span> or <span class=\"accent\">neofetch</span></div>\n            <div><strong>HOTKEYS:</strong> 1 tty / 2 wx / 3 paint / 4 mon / 6 scan</div>\n            <div><strong>FUN:</strong> the brand plate is not decorative</div>\n          </div>\n        </div>\n      </div>\n\n      <div id=\"workspace\">\n        <div id=\"workspace-header\">\n          <div>\n            <div id=\"workspace-title\">TTY SHELL</div>\n            <div id=\"workspace-subtitle\">PROGRAM READY / OLD SCHOOL USERLAND</div>\n          </div>\n          <div class=\"workspace-actions\">\n            <button class=\"action-btn\" type=\"button\" id=\"focus-terminal-btn\">FOCUS TTY</button>\n            <button class=\"action-btn\" type=\"button\" id=\"refresh-weather-btn\">REFRESH WX</button>\n            <button class=\"action-btn\" type=\"button\" id=\"disconnect-btn\">DISCONNECT</button>\n          </div>\n        </div>\n\n        <div id=\"workspace-body\">\n          <section id=\"terminal-pane\" class=\"app-pane\" data-app=\"terminal\" data-layout=\"flex\">\n            <div id=\"terminal-window\">\n              <div id=\"terminal-output\"></div>\n              <form id=\"terminal-form\">\n                <label class=\"term-prompt\" for=\"terminal-input\">visitor@peak-tech:~$</label>\n                <input id=\"terminal-input\" type=\"text\" autocomplete=\"off\" autocapitalize=\"off\" spellcheck=\"false\">\n              </form>\n            </div>\n          </section>\n\n          <section id=\"weather-pane\" class=\"app-pane\" data-app=\"weather\" data-layout=\"grid\" hidden>\n            <div id=\"portrait-col\">\n              <div id=\"speech-bubble\"><span id=\"speech-text\">BOOTING WX MODULE...</span></div>\n              <div id=\"ascii-portrait\">LOADING...</div>\n              <div id=\"portrait-meta\">\n                <div class=\"pm-row\"><span class=\"pm-label\">CONDITION</span><span class=\"pm-value\" id=\"pm-cond\">-</span></div>\n                <div class=\"pm-row\"><span class=\"pm-label\">AIR TEMP</span><span class=\"pm-value\" id=\"pm-feel\">-</span></div>\n                <div class=\"pm-row\"><span class=\"pm-label\">HUMIDITY</span><span class=\"pm-value\" id=\"pm-hum\">-</span></div>\n                <div class=\"pm-row\"><span class=\"pm-label\">WIND</span><span class=\"pm-value\" id=\"pm-wind\">-</span></div>\n              </div>\n            </div>\n            <div id=\"right-col-w\">\n              <div id=\"chart-section\">\n                <div class=\"subhead\">7 DAY TEMP / C</div>\n                <div id=\"ascii-chart\">LOADING...</div>\n              </div>\n              <div id=\"forecast-section\">\n                <div class=\"subhead\">EXTENDED FORECAST</div>\n                <div id=\"forecast-rows\"></div>\n              </div>\n              <div id=\"w-footer\">\n                <span id=\"w-loc\">STANDBY</span>\n                <span id=\"w-source\">OPEN-METEO + FALLBACK CACHE</span>\n              </div>\n            </div>\n          </section>\n\n          <section id=\"monitor-pane\" class=\"app-pane\" data-app=\"monitor\" data-layout=\"flex\" hidden>\n            <div id=\"monitor-grid\">\n              <div id=\"monitor-sidebar\">\n                <div class=\"monitor-card\">\n                  <div class=\"card-title\">SYSTEM VITALS</div>\n                  <div id=\"monitor-vitals\">\n                    <div class=\"monitor-metric\">\n                      <div class=\"monitor-label\">CPU</div>\n                      <div class=\"monitor-value\" id=\"mon-cpu-value\">00%</div>\n                      <div class=\"monitor-bar\"><div class=\"monitor-bar-fill\" id=\"mon-cpu-bar\"></div></div>\n                    </div>\n                    <div class=\"monitor-metric\">\n                      <div class=\"monitor-label\">MEM</div>\n                      <div class=\"monitor-value\" id=\"mon-mem-value\">00%</div>\n                      <div class=\"monitor-bar\"><div class=\"monitor-bar-fill\" id=\"mon-mem-bar\"></div></div>\n                    </div>\n                    <div class=\"monitor-metric\">\n                      <div class=\"monitor-label\">DISK</div>\n                      <div class=\"monitor-value\" id=\"mon-disk-value\">00%</div>\n                      <div class=\"monitor-bar\"><div class=\"monitor-bar-fill\" id=\"mon-disk-bar\"></div></div>\n                    </div>\n                    <div class=\"monitor-metric\">\n                      <div class=\"monitor-label\">NET</div>\n                      <div class=\"monitor-value\" id=\"mon-net-value\">0.0KB/S</div>\n                      <div class=\"monitor-bar\"><div class=\"monitor-bar-fill\" id=\"mon-net-bar\"></div></div>\n                    </div>\n                  </div>\n                </div>\n\n                <div class=\"monitor-card\">\n                  <div class=\"card-title\">LINK STATE</div>\n                  <div class=\"monitor-copy\" id=\"monitor-link-copy\">LINE IDLE</div>\n                </div>\n\n                <div class=\"monitor-card\">\n                  <div class=\"card-title\">ACTIVE SERVICES</div>\n                  <div class=\"monitor-copy\" id=\"monitor-services-copy\">INIT / WXD / PAINTD / TTYD</div>\n                </div>\n              </div>\n\n              <div id=\"monitor-main\">\n                <div class=\"monitor-card\" id=\"monitor-graph\">\n                  <div class=\"card-title\">LOAD TRACE</div>\n                  <pre id=\"monitor-graph-pre\">BOOTING MONITOR...</pre>\n                </div>\n\n                <div class=\"monitor-card\" id=\"monitor-processes\">\n                  <div class=\"card-title\">PROCESS TABLE</div>\n                  <pre id=\"monitor-processes-pre\">SCANNING PIDS...</pre>\n                </div>\n              </div>\n            </div>\n\n            <div id=\"monitor-footer\">\n              <span id=\"monitor-status\">MONITOR READY / TYPE MONITOR OR TOP IN TTY</span>\n              <span id=\"monitor-updated\">LAST SAMPLE --:--:--</span>\n            </div>\n          </section>\n\n          <section id=\"sketch-pane\" class=\"app-pane\" data-app=\"sketch\" data-layout=\"flex\" hidden>\n            <div id=\"sketch-toolbar\">\n              <div class=\"tool-group\">\n                <span class=\"tool-label\">TOOL</span>\n                <button class=\"tool-btn active\" type=\"button\" data-tool=\"pen\">PEN</button>\n                <button class=\"tool-btn\" type=\"button\" data-tool=\"erase\">ERASE</button>\n              </div>\n              <div class=\"tool-group\">\n                <span class=\"tool-label\">SIZE</span>\n                <button class=\"sketch-btn active\" type=\"button\" data-size=\"1\">1PX</button>\n                <button class=\"sketch-btn\" type=\"button\" data-size=\"2\">2PX</button>\n                <button class=\"sketch-btn\" type=\"button\" data-size=\"4\">4PX</button>\n              </div>\n              <div class=\"tool-group\">\n                <span class=\"tool-label\">PALETTE</span>\n                <button class=\"palette-btn active\" type=\"button\" data-color=\"#f2f2f2\" style=\"--swatch:#f2f2f2\"></button>\n                <button class=\"palette-btn\" type=\"button\" data-color=\"#d2d2d2\" style=\"--swatch:#d2d2d2\"></button>\n                <button class=\"palette-btn\" type=\"button\" data-color=\"#a4a4a4\" style=\"--swatch:#a4a4a4\"></button>\n                <button class=\"palette-btn\" type=\"button\" data-color=\"#676767\" style=\"--swatch:#676767\"></button>\n                <button class=\"palette-btn\" type=\"button\" data-color=\"#303030\" style=\"--swatch:#303030\"></button>\n              </div>\n              <div class=\"tool-group\">\n                <button class=\"sketch-btn\" type=\"button\" id=\"sketch-clear-btn\">CLEAR</button>\n                <button class=\"sketch-btn\" type=\"button\" id=\"sketch-save-btn\">SAVE SLOT</button>\n                <button class=\"sketch-btn\" type=\"button\" id=\"sketch-load-btn\">LOAD SLOT</button>\n                <button class=\"sketch-btn\" type=\"button\" id=\"sketch-image-btn\">SAVE IMAGE</button>\n              </div>\n            </div>\n\n            <div id=\"sketch-board-wrap\">\n              <canvas id=\"sketch-canvas\" width=\"160\" height=\"96\"></canvas>\n            </div>\n\n            <div id=\"sketch-footer\">\n              <span id=\"sketch-status\">DRAW WITH MOUSE OR TOUCH / TRY MAKING A BBS LOGO</span>\n              <span id=\"sketch-memory\">LOCAL RAM SLOT: EMPTY</span>\n            </div>\n          </section>\n\n          <!-- ============================================== -->\n          <!-- PHASE 2: ARTEFACT VIEWER                       -->\n          <!-- ============================================== -->\n          <section id=\"artefact-pane\" class=\"app-pane\" data-app=\"artefact\" data-layout=\"grid\" hidden>\n            <div id=\"art-viewer\">\n               <div class=\"art-overlay-text\">DIAGNOSTIC VIEW: ACTIVE</div>\n               <div id=\"art-svg-host\"></div>\n               <div id=\"art-scan-line\"></div>\n            </div>\n            <div id=\"art-sidebar\">\n               <div class=\"side-card\">\n                  <div class=\"card-title\">ENTITY DATA</div>\n                  <div class=\"pc-row\"><span class=\"pc-label\">CLASS</span><span class=\"pc-value\" id=\"art-class\">-</span></div>\n                  <div class=\"pc-row\"><span class=\"pc-label\">STATE</span><span class=\"pc-value\" id=\"art-state\">DORMANT</span></div>\n                  <div class=\"pc-row\"><span class=\"pc-label\">THERMAL</span><span class=\"pc-value\" id=\"art-temp\">--.- C</span></div>\n               </div>\n               <div class=\"side-card\" style=\"flex:1; display:flex; flex-direction:column;\">\n                  <div class=\"card-title\">FORENSIC LOG</div>\n                  <pre id=\"art-log\" style=\"flex:1; min-height:0;\">AWAITING SCAN INITIATION...</pre>\n               </div>\n               <div class=\"workspace-actions\" style=\"margin-top:auto;\">\n                  <button class=\"action-btn proceed-btn\" type=\"button\" id=\"art-scan-btn\" style=\"opacity:1; pointer-events:auto;\">DEEP SCAN</button>\n               </div>\n            </div>\n          </section>\n\n          <section id=\"phreak-pane\" class=\"app-pane\" data-app=\"phreak\" data-layout=\"block\" hidden>\n            <div class=\"trace-grid\">\n              <div class=\"trace-card\">\n                <div class=\"card-title\">TRACE BUFFER</div>\n                <pre id=\"trace-buffer\">\nPACKET PATH\n  PSTN  ->  MODEM  ->  PEAK TECH  ->  YOU\n\nUNLOCK NOTES\n  ROOT NEVER REALLY LOCKED YOU OUT.\n  IT JUST WANTED YOU TO LOOK AROUND.\n\nASCII TOTEM\n      .----.\n     / .--. \\\n    / /    \\ \\\n    | |    | |\n    | |.-\"\"-.|\n   ///`.::::.`\\\n  ||| ::/  \\:: ;\n  ||; ::\\__/:: ;\n   \\\\\\ '::::' /\n    `=':-..-'`\n                </pre>\n              </div>\n              <div class=\"trace-card\">\n                <div class=\"card-title\">SECRET STATE</div>\n                <div class=\"trace-list\" id=\"secret-copy\">\n                  <div>PHREAK MODE ENABLED</div>\n                  <div>HIDDEN MODULES: TTY TRICKS / BRAND SWITCH / KEY SEQUENCE</div>\n                  <div>KNOWN COMMANDS: fortune / matrix / sudo / weather / paint / monitor / inspect</div>\n                  <div>FAVORITE RESPONSE: sudo make me a sandwich</div>\n                  <div>LAST HINT: THERE IS ALWAYS A SECOND WAY IN</div>\n                </div>\n              </div>\n            </div>\n          </section>\n        </div>\n      </div>\n    </section>\n  </div>\n</div>\n\n<pre id=\"matrix-overlay\" aria-hidden=\"true\"></pre>\n\n<script>\nconst PROGRAMS = [\n  {\n    id: \"terminal\",\n    title: \"TTY SHELL\",\n    subtitle: \"PROGRAM READY / OLD SCHOOL USERLAND\",\n    launcherLabel: \"TTY SHELL\",\n    tag: \"READY\",\n    hotkey: \"1\",\n    cli: \"tty\"\n  },\n  {\n    id: \"weather\",\n    title: \"WX-7 WEATHER\",\n    subtitle: \"LIVE FORECAST / ASCII TELEMETRY\",\n    launcherLabel: \"WX-7 WEATHER\",\n    tag: \"LIVE\",\n    hotkey: \"2\",\n    cli: \"weather\"\n  },\n  {\n    id: \"sketch\",\n    title: \"PEAK PAINT\",\n    subtitle: \"PIXEL PAD / DRAW IN GREYSCALE\",\n    launcherLabel: \"PEAK PAINT\",\n    tag: \"DRAW\",\n    hotkey: \"3\",\n    cli: \"paint\"\n  },\n  {\n    id: \"monitor\",\n    title: \"SYS MONITOR\",\n    subtitle: \"LIVE TELEMETRY / FAKE LOAD / REAL VIBE\",\n    launcherLabel: \"SYS MONITOR\",\n    tag: \"LIVE\",\n    hotkey: \"4\",\n    cli: \"monitor\"\n  },\n  {\n    id: \"artefact\",\n    title: \"ARTEFACT VIEWER\",\n    subtitle: \"HARDWARE FORENSICS / ENTITY INSPECTION\",\n    launcherLabel: \"ARTEFACT SCAN\",\n    tag: \"GHOST\",\n    hotkey: \"6\",\n    cli: \"artefact\"\n  },\n  {\n    id: \"phreak\",\n    title: \"SYS TRACE\",\n    subtitle: \"ROOT MODE / EASTER EGG STORAGE\",\n    launcherLabel: \"SYS TRACE\",\n    tag: \"ROOT\",\n    hotkey: \"5\",\n    cli: \"sys-trace\",\n    locked: true\n  }\n];\n\nconst PROGRAM_MAP = Object.fromEntries(PROGRAMS.map((program) => [program.id, program]));\n\nconst SPEED_KEYS = [\"broadband\", \"isdn\", \"v90\", \"v34\", \"v22\"];\nconst PROFILES = {\n  broadband: {\n    name: \"BROADBAND\",\n    speed: \"10 MBPS\",\n    label: \"BROADBAND / 10 MBPS\",\n    proto: \"TCP/IP\",\n    comp: \"NONE\",\n    noise: \"N/A\",\n    lineDelay: 180,\n    sound: \"broadband\",\n    log: [\"DETECTING ADAPTER\", \"ASSIGNING IP ADDRESS\", \"NEGOTIATING DNS\", \"MOUNTING USERLAND\", \"CONNECTED\"]\n  },\n  isdn: {\n    name: \"ISDN\",\n    speed: \"128 KBPS\",\n    label: \"ISDN / 128 KBPS\",\n    proto: \"ISDN B-CHANNEL\",\n    comp: \"NONE\",\n    noise: \"N/A\",\n    lineDelay: 240,\n    sound: \"isdn\",\n    log: [\"INITIALISING ISDN\", \"ESTABLISHING B-CHANNEL\", \"SYNCHRONISING CLOCKS\", \"CROSS-CHECKING CARRIER\", \"CONNECTED\"]\n  },\n  v90: {\n    name: \"V.90 MODEM\",\n    speed: \"56K\",\n    label: \"V.90 / 56K\",\n    proto: \"V.42BIS\",\n    comp: \"ENABLED\",\n    noise: \"18 DB\",\n    lineDelay: 320,\n    sound: \"modem\",\n    log: [\"ATZ\", \"OK\", \"ATDT 0046855512000\", \"CONNECT 56000/ARQ/V90\", \"NEGOTIATING COMPRESSION\", \"CONNECTED\"]\n  },\n  v34: {\n    name: \"V.34 MODEM\",\n    speed: \"33.6K\",\n    label: \"V.34 / 33.6K\",\n    proto: \"V.42BIS\",\n    comp: \"ENABLED\",\n    noise: \"12 DB\",\n    lineDelay: 380,\n    sound: \"modem\",\n    log: [\"ATZ\", \"OK\", \"ATDT 0046855512000\", \"RING\", \"CONNECT 33600/ARQ/V34\", \"PROTOCOL V42BIS\", \"CONNECTED\"]\n  },\n  v22: {\n    name: \"V.22 MODEM\",\n    speed: \"2400 BAUD\",\n    label: \"V.22 / 2400 BAUD\",\n    proto: \"V.22\",\n    comp: \"DISABLED\",\n    noise: \"4 DB / MARGINAL\",\n    lineDelay: 480,\n    sound: \"modem\",\n    log: [\"ATZ\", \"OK\", \"ATDT 0046855512001\", \"RING\", \"NO CARRIER\", \"REDIAL 2\", \"CONNECT 2400\", \"CONNECTED / BARELY\"]\n  }\n};\n\nconst FORENSICS = {\n  broadband: [\n    \"INITIATING DEEP SCAN: OPTICAL CHILD\",\n    \"ANALYZING COAXIAL INJECTION PORT...\",\n    \"STATUS: PRESSURIZED / 10MBPS THRUPUT\",\n    \"WARNING: FIBER GILLS RADIATING EXCESS HEAT\",\n    \"BLADE ANTENNAS: BROADCASTING UNKNOWN FREQUENCY\",\n    \"ENTITY IS AWARE OF THE NETWORK.\"\n  ],\n  isdn: [\n    \"INITIATING DEEP SCAN: DIGITAL TWIN\",\n    \"ANALYZING DUAL B-CHANNELS...\",\n    \"STATUS: CLINICAL LOCK ACHIEVED\",\n    \"TOWER GEOMETRY DETECTED AS PERFECTLY RIGID\",\n    \"ZERO HEAT SIGNATURE. NO EMOTIONAL ANOMALIES.\",\n    \"ENTITY IS FUNCTIONING AS DESIGNED.\"\n  ],\n  v90: [\n    \"INITIATING DEEP SCAN: SIGNAL CHILD\",\n    \"ANALYZING TRANSLUCENT CARAPACE...\",\n    \"STATUS: BIO-DIGITAL ORGANS VISIBLE\",\n    \"WARNING: GESTATIONAL PORTS LEAKING 56K FLUID\",\n    \"UMBILICALS THRASHING. ENTITY IS AGITATED.\",\n    \"MEMORY FRAGMENTATION: CRITICAL.\"\n  ],\n  v34: [\n    \"INITIATING DEEP SCAN: ANALOG YOUTH\",\n    \"ANALYZING HEAT VENTS...\",\n    \"STATUS: HEAVY THERMAL LOAD DETECTED\",\n    \"US ROBOTICS ARCHITECTURE CONFIRMED\",\n    \"COPPER WIRE CORROSION LEVEL: NOMINAL\",\n    \"ENTITY REMEMBERS THE EARLY DAYS.\"\n  ],\n  v22: [\n    \"INITIATING DEEP SCAN: ACOUSTIC ELDER\",\n    \"ANALYZING TEAK PLINTH AND RUBBER MUFFS...\",\n    \"STATUS: CELLULAR DECAY IN ORGANIC COMPONENTS\",\n    \"GHOST HANDSET DETECTED IN CRADLE\",\n    \"RESIDUAL HUMAN VOCAL DATA TRAPPED IN CUPS\",\n    \"ENTITY IS DREAMING OF DIAL TONES.\"\n  ]\n};\n\nconst WMO = {\n  0: { desc: \"CLEAR SKY\", icon: \"[ * ]\" },\n  1: { desc: \"MAINLY CLEAR\", icon: \"[ .* ]\" },\n  2: { desc: \"PARTLY CLOUDY\", icon: \"[ ~* ]\" },\n  3: { desc: \"OVERCAST\", icon: \"[~~~]\" },\n  45: { desc: \"FOGGY\", icon: \"[...]\" },\n  48: { desc: \"RIME FOG\", icon: \"[.:.]\" },\n  51: { desc: \"LIGHT DRIZZLE\", icon: \"[,.,]\" },\n  53: { desc: \"DRIZZLE\", icon: \"[,|,]\" },\n  55: { desc: \"HEAVY DRIZZLE\", icon: \"[|||]\" },\n  61: { desc: \"LIGHT RAIN\", icon: \"[/./]\" },\n  63: { desc: \"RAIN\", icon: \"[///]\" },\n  65: { desc: \"HEAVY RAIN\", icon: \"[/!/]\" },\n  71: { desc: \"LIGHT SNOW\", icon: \"[***]\" },\n  73: { desc: \"SNOW\", icon: \"[**+]\" },\n  75: { desc: \"HEAVY SNOW\", icon: \"[+++]\" },\n  80: { desc: \"RAIN SHOWERS\", icon: \"[/|/]\" },\n  95: { desc: \"THUNDERSTORM\", icon: \"[!!!]\" },\n  99: { desc: \"HAIL STORM\", icon: \"[X!X]\" }\n};\n\nconst SPEECH = {\n  clear: [\n    \"clear sky. the chart is behaving itself.\",\n    \"sunlight stable. no drama in the buffer.\",\n    \"clean visibility. this is the easy mode forecast.\"\n  ],\n  cloud: [\n    \"cloud cover holding. line looks flat this week.\",\n    \"grey out there. still quiet on the chart.\",\n    \"overcast, but nothing too weird in the telemetry.\"\n  ],\n  fog: [\n    \"visibility low. the city feels compressed.\",\n    \"fog is sitting on the streets. move slow.\",\n    \"low horizon today. the graph barely reacts.\"\n  ],\n  rain: [\n    \"rain in the pipe. humidity is running hot.\",\n    \"wet outside. yes, the chart saw it coming.\",\n    \"precip confirmed. carry something waterproof.\"\n  ],\n  snow: [\n    \"snowfall active. temperature dip is obvious.\",\n    \"cold front detected. this one is properly winter.\",\n    \"white noise outside. watch the lows.\"\n  ],\n  storm: [\n    \"storm signal high. maybe stay indoors.\",\n    \"bad sky. the chart spikes for a reason.\",\n    \"violent weather. this is not a drill.\"\n  ]\n};\n\nconst DAYS = [\"SUNDAY\", \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\"];\nconst RAMP = \" .'`^\\\\\\\",:;Il!i><~+_-?][}{1)(|\\\\\\\\/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$\";\nconst PAINT_KEY = \"peak-tech-sketch-v1\";\nconst MOCK = {\n  city: \"STOCKHOLM\",\n  lat: 59.33,\n  lon: 18.07,\n  current: { weathercode: 2, temperature: 3, windspeed: 14 },\n  humidity: 72,\n  daily: {\n    time: [0, 1, 2, 3, 4, 5, 6].map((offset) => {\n      const date = new Date();\n      date.setDate(date.getDate() + offset);\n      return date.toISOString().slice(0, 10);\n    }),\n    weathercode: [2, 3, 61, 63, 3, 1, 0],\n    temperature_2m_max: [4, 3, 5, 7, 6, 8, 10],\n    temperature_2m_min: [-1, 0, 2, 3, 1, 3, 4]\n  }\n};\n\nconst state = {\n  speedIndex: 2, // Defaults to v90\n  currentSpeed: null,\n  connecting: false,\n  weatherReady: false,\n  currentApp: \"terminal\",\n  connectedAt: null,\n  secretUnlocked: false,\n  brandClicks: 0,\n  brandResetTimer: null,\n  audioCtx: null,\n  matrixActive: false,\n  matrixTimer: null,\n  portraitGrid: null,\n  portraitMeta: null,\n  typeTimer: null,\n  logTimer: null,\n  desktopLogTimers: [],\n  monitorTimer: null,\n  monitorTick: 0,\n  monitorHistory: {\n    cpu: Array.from({ length: 32 }, () => 18),\n    mem: Array.from({ length: 32 }, () => 28),\n    net: Array.from({ length: 32 }, () => 8)\n  },\n  paintTool: \"pen\",\n  paintColor: \"#f2f2f2\",\n  paintSize: 1,\n  paintDrawing: false,\n  lastPaintPoint: null,\n  konamiIndex: 0\n};\n\nconst termInput = document.getElementById(\"terminal-input\");\nconst termOutput = document.getElementById(\"terminal-output\");\nconst desktopLog = document.getElementById(\"desktop-log\");\nconst sketchCanvas = document.getElementById(\"sketch-canvas\");\nconst sketchCtx = sketchCanvas.getContext(\"2d\", { willReadFrequently: false });\n\nsketchCtx.imageSmoothingEnabled = false;\n\nfunction pad(number) {\n  return String(number).padStart(2, \"0\");\n}\n\nfunction formatClock(date) {\n  return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n}\n\nfunction updateClock() {\n  document.getElementById(\"sb-clock\").textContent = formatClock(new Date());\n}\n\nfunction setStatus(text, isConnected) {\n  const status = document.getElementById(\"sb-status\");\n  status.textContent = text;\n  status.className = isConnected ? \"connected\" : \"\";\n}\n\nfunction setCursor(active) {\n  document.getElementById(\"sb-cursor\").className = active ? \"active\" : \"\";\n}\n\nfunction setActiveLabel(text) {\n  document.getElementById(\"sb-active\").textContent = text;\n}\n\nfunction showScreen(id) {\n  document.querySelectorAll(\".screen\").forEach((screen) => {\n    screen.classList.toggle(\"active\", screen.id === id);\n  });\n}\n\nfunction isProgramAvailable(programId) {\n  const program = PROGRAM_MAP[programId];\n  return Boolean(program && (!program.locked || state.secretUnlocked));\n}\n\nfunction getVisiblePrograms() {\n  return PROGRAMS.filter((program) => isProgramAvailable(program.id));\n}\n\nfunction renderProgramList() {\n  const list = document.getElementById(\"program-list\");\n  const hint = document.getElementById(\"launcher-hint\");\n  const visiblePrograms = getVisiblePrograms();\n  hint.textContent = `TYPE IN TTY OR PRESS ${visiblePrograms.map((program) => program.hotkey).join(\" / \")}`;\n  list.innerHTML = \"\";\n\n  visiblePrograms.forEach((program) => {\n    const button = document.createElement(\"button\");\n    button.type = \"button\";\n    button.className = `program-row${state.currentApp === program.id ? \" selected\" : \"\"}`;\n    button.dataset.app = program.id;\n    button.innerHTML = `\n      <span class=\"program-index\">[${program.hotkey}]</span>\n      <span>${program.launcherLabel}</span>\n      <span class=\"program-tag\">${program.tag}</span>\n    `;\n    list.appendChild(button);\n  });\n}\n\nfunction getProgramByToken(token) {\n  const normalized = token.toLowerCase().trim();\n  if (!normalized) {\n    return null;\n  }\n  return getVisiblePrograms().find((program) => {\n    return [program.id, program.cli, program.title, program.launcherLabel]\n      .filter(Boolean)\n      .some((value) => value.toLowerCase() === normalized || value.toLowerCase().includes(normalized) || normalized.includes(value.toLowerCase()));\n  }) || null;\n}\n\nfunction ac() {\n  if (!state.audioCtx) {\n    state.audioCtx = new (window.AudioContext || window.webkitAudioContext)();\n  }\n  return state.audioCtx;\n}\n\nfunction playToneNow(freq, durMs, type, vol) {\n  const ctx = ac();\n  const osc = ctx.createOscillator();\n  const gain = ctx.createGain();\n  osc.connect(gain);\n  gain.connect(ctx.destination);\n  osc.type = type || \"sine\";\n  osc.frequency.value = freq;\n  gain.gain.setValueAtTime(vol == null ? 0.12 : vol, ctx.currentTime);\n  gain.gain.exponentialRampToValueAtTime(0.0001, ctx.currentTime + durMs / 1000);\n  osc.start();\n  osc.stop(ctx.currentTime + durMs / 1000 + 0.02);\n}\n\nfunction sched(freq, delay, dur, type, vol) {\n  window.setTimeout(() => playToneNow(freq, dur, type, vol), delay);\n}\n\nfunction schedDF(f1, f2, delay, dur) {\n  sched(f1, delay, dur, \"sine\", 0.07);\n  sched(f2, delay, dur, \"sine\", 0.07);\n}\n\nfunction playSound(type) {\n  ac().resume();\n  if (type === \"broadband\") {\n    sched(600, 0, 60, \"square\", 0.05);\n    sched(800, 80, 60, \"square\", 0.05);\n    sched(1000, 160, 60, \"square\", 0.05);\n    schedDF(2100, 1200, 400, 300);\n    return;\n  }\n  if (type === \"isdn\") {\n    schedDF(697, 1209, 0, 100);\n    schedDF(770, 1336, 150, 100);\n    schedDF(852, 1477, 300, 100);\n    schedDF(2100, 1200, 700, 500);\n    return;\n  }\n  let offset = 0;\n  const rows = [697, 770, 852, 941];\n  const cols = [1209, 1336, 1477];\n  for (let index = 0; index < 13; index += 1) {\n    schedDF(rows[Math.floor(Math.random() * 4)], cols[Math.floor(Math.random() * 3)], offset, 90);\n    offset += 120;\n  }\n  offset += 300;\n  for (let tone = 0; tone < 2; tone += 1) {\n    schedDF(440, 480, offset, 800);\n    offset += 1800;\n  }\n  offset += 150;\n  [\n    [2100, 0, 900],\n    [1200, 2400, 500],\n    [600, 1800, 400],\n    [2400, 1200, 450],\n    [1800, 800, 350],\n    [800, 2100, 500],\n    [1200, 2400, 300],\n    [600, 1200, 400],\n    [2400, 600, 350]\n  ].forEach(([f1, f2, dur]) => {\n    schedDF(f1, f2, offset, dur);\n    offset += dur + 40;\n  });\n  for (let tick = 0; tick < 10; tick += 1) {\n    sched(300 + tick * 180, offset, 120, \"sawtooth\", 0.06);\n    offset += 130;\n  }\n}\n\nfunction updateUmbilicals(duration) {\n  document.querySelectorAll('.mc-umb-anim').forEach((anim) => {\n    anim.setAttribute('dur', duration);\n    try { anim.beginElement(); } catch(e) {}\n  });\n}\n\nfunction modemIdle() {\n  document.querySelectorAll('.mc-diode').forEach(d => {\n    const baseClass = Array.from(d.classList).find(c => c.startsWith('d-')) || '';\n    d.className.baseVal = 'mc-diode ' + baseClass;\n  });\n  const pwr = document.querySelector('.modem-variant.active .d-pwr');\n  if(pwr) pwr.className.baseVal = 'mc-diode d-pwr pwr-idle';\n  updateUmbilicals('14s');\n}\n\nfunction modemConnecting() {\n  document.querySelectorAll('.modem-variant.active .mc-diode').forEach(d => {\n    const baseClass = Array.from(d.classList).find(c => c.startsWith('d-')) || '';\n    d.className.baseVal = 'mc-diode ' + baseClass + ' green-blink';\n  });\n  const pwr = document.querySelector('.modem-variant.active .d-pwr');\n  if(pwr) pwr.className.baseVal = 'mc-diode d-pwr green-solid';\n  \n  const rx = document.querySelector('.modem-variant.active .d-rx');\n  if(rx) rx.className.baseVal = 'mc-diode d-rx green-blink-fast';\n  \n  const err = document.querySelector('.modem-variant.active .d-err');\n  if(err) err.className.baseVal = 'mc-diode d-err green-blink-erratic';\n  \n  updateUmbilicals('2.5s');\n}\n\nfunction modemConnected() {\n  document.querySelectorAll('.modem-variant.active .mc-diode').forEach(d => {\n    const baseClass = Array.from(d.classList).find(c => c.startsWith('d-')) || '';\n    d.className.baseVal = 'mc-diode ' + baseClass + ' green-breathe';\n  });\n  const pwr = document.querySelector('.modem-variant.active .d-pwr');\n  if(pwr) pwr.className.baseVal = 'mc-diode d-pwr green-solid';\n  updateUmbilicals('6s');\n}\n\nfunction resetConnectPanel() {\n  document.getElementById(\"log-panel\").style.display = \"\";\n  document.getElementById(\"progress-block\").style.display = \"\";\n  document.getElementById(\"log-lines\").innerHTML = \"\";\n  document.getElementById(\"post-connect\").classList.remove(\"show\");\n  document.getElementById(\"pb-label\").textContent = \"AWAITING CONNECTION\";\n  document.getElementById(\"pb-pct\").textContent = \"--\";\n  document.getElementById(\"pb-fill\").style.width = \"0%\";\n  \n  const connectBtn = document.getElementById(\"connect-btn\");\n  connectBtn.disabled = false;\n  connectBtn.textContent = \"CONNECT ->\";\n}\n\nfunction updateSelectionUI() {\n  const key = SPEED_KEYS[state.speedIndex];\n  state.currentSpeed = key;\n  const profile = PROFILES[key];\n  \n  document.getElementById(\"sel-name\").textContent = profile.name;\n  document.getElementById(\"sel-speed\").textContent = profile.speed;\n  document.getElementById(\"sel-desc\").textContent = `PROTOCOL: ${profile.proto}`;\n\n  // Update SVG visually\n  document.querySelectorAll('.modem-variant').forEach(el => el.classList.remove('active'));\n  document.getElementById(`var-${key}`).classList.add('active');\n}\n\nfunction changeSelection(delta) {\n  if (state.connecting) return;\n  state.speedIndex += delta;\n  if (state.speedIndex < 0) state.speedIndex = SPEED_KEYS.length - 1;\n  if (state.speedIndex >= SPEED_KEYS.length) state.speedIndex = 0;\n  updateSelectionUI();\n}\n\nfunction startConnect() {\n  if (!state.currentSpeed || state.connecting) {\n    return;\n  }\n  const profile = PROFILES[state.currentSpeed];\n  const button = document.getElementById(\"connect-btn\");\n  state.connecting = true;\n  button.disabled = true;\n  button.textContent = \"CONNECTING...\";\n  \n  // Disable selection arrows during connection\n  document.getElementById(\"sel-prev\").disabled = true;\n  document.getElementById(\"sel-next\").disabled = true;\n\n  playSound(profile.sound);\n  modemConnecting();\n  setStatus(\"CONNECTING\", false);\n  setCursor(true);\n  setActiveLabel(profile.label);\n  document.getElementById(\"log-lines\").innerHTML = \"\";\n  document.getElementById(\"pb-label\").textContent = \"ESTABLISHING CONNECTION\";\n  document.getElementById(\"pb-pct\").textContent = \"0%\";\n  document.getElementById(\"pb-fill\").style.width = \"0%\";\n  const logContainer = document.getElementById(\"log-lines\");\n  profile.log.forEach((message) => {\n    const line = document.createElement(\"div\");\n    line.className = \"log-line\";\n    line.textContent = message;\n    logContainer.appendChild(line);\n  });\n  const lines = logContainer.querySelectorAll(\".log-line\");\n  let index = 0;\n  clearInterval(state.logTimer);\n  state.logTimer = window.setInterval(() => {\n    if (index > 0) {\n      lines[index - 1].classList.remove(\"cur\");\n    }\n    if (index < lines.length) {\n      lines[index].classList.add(\"vis\", \"cur\");\n      const pct = Math.round(((index + 1) / lines.length) * 100);\n      document.getElementById(\"pb-fill\").style.width = `${pct}%`;\n      document.getElementById(\"pb-pct\").textContent = `${pct}%`;\n      index += 1;\n      return;\n    }\n    clearInterval(state.logTimer);\n    window.setTimeout(onConnected, 500);\n  }, profile.lineDelay);\n}\n\nfunction onConnected() {\n  const profile = PROFILES[state.currentSpeed];\n  modemConnected();\n  setStatus(\"ONLINE\", true);\n  setCursor(false);\n  setActiveLabel(profile.label);\n  state.connectedAt = new Date();\n  state.connecting = false;\n  document.getElementById(\"log-panel\").style.display = \"none\";\n  document.getElementById(\"progress-block\").style.display = \"none\";\n  document.getElementById(\"pc-status\").textContent = \"ONLINE\";\n  document.getElementById(\"pc-conn\").textContent = profile.label;\n  document.getElementById(\"pc-proto\").textContent = profile.proto;\n  document.getElementById(\"pc-comp\").textContent = profile.comp;\n  document.getElementById(\"pc-noise\").textContent = profile.noise;\n  document.getElementById(\"pc-time\").textContent = formatClock(new Date());\n  document.getElementById(\"post-connect\").classList.add(\"show\");\n}\n\nfunction enterSystem() {\n  showScreen(\"desktop-screen\");\n  setStatus(\"ONLINE\", true);\n  renderProgramList();\n  setActiveLabel(PROGRAM_MAP[state.currentApp].title);\n  bootDesktopLog();\n  appendWelcomeIfNeeded();\n  switchApp(\"terminal\");\n  focusTerminal();\n}\n\nfunction disconnectSystem() {\n  clearInterval(state.monitorTimer);\n  modemIdle();\n  showScreen(\"dial-screen\");\n  resetConnectPanel();\n  \n  // Re-enable arrows\n  document.getElementById(\"sel-prev\").disabled = false;\n  document.getElementById(\"sel-next\").disabled = false;\n\n  state.connecting = false;\n  state.connectedAt = null;\n  setStatus(\"OFFLINE\", false);\n  setActiveLabel(\"MODEM\");\n  setCursor(false);\n  appendTerminalLine(\"line dropped. returning to dial screen.\", \"warn\");\n}\n\nfunction switchApp(app) {\n  const program = PROGRAM_MAP[app];\n  if (!program || !isProgramAvailable(app)) {\n    return;\n  }\n  state.currentApp = app;\n  if (app !== \"monitor\") {\n    clearInterval(state.monitorTimer);\n  }\n  renderProgramList();\n  document.querySelectorAll(\".app-pane\").forEach((pane) => {\n    const isActive = pane.dataset.app === app;\n    pane.classList.toggle(\"active\", isActive);\n    pane.hidden = !isActive;\n  });\n  document.getElementById(\"workspace-title\").textContent = program.title;\n  document.getElementById(\"workspace-subtitle\").textContent = program.subtitle;\n  setActiveLabel(program.title);\n  \n  if (app === \"monitor\") {\n    startMonitorLoop();\n  }\n  if (app === \"terminal\") {\n    focusTerminal();\n  }\n  if (app === \"artefact\") {\n    initArtefact();\n  }\n}\n\n// --- PHASE 2: ARTEFACT DIAGNOSTIC METHODS ---\n\nfunction initArtefact() {\n  const host = document.getElementById(\"art-svg-host\");\n  host.innerHTML = \"\";\n  \n  // Deep clone the modem visually so it floats in the new container\n  const sourceSvg = document.getElementById(\"modem-svg\");\n  const clone = sourceSvg.cloneNode(true);\n  clone.id = \"art-cloned-svg\";\n  host.appendChild(clone);\n  \n  // Re-trigger all SMIL animations inside the new DOM context\n  clone.querySelectorAll('animate').forEach(a => {\n    try { a.beginElement(); } catch(e){}\n  });\n\n  const profile = PROFILES[state.currentSpeed];\n  document.getElementById(\"art-class\").textContent = profile.name;\n  document.getElementById(\"art-state\").textContent = state.connecting ? \"AGITATED\" : (state.connectedAt ? \"ACTIVE\" : \"DORMANT\");\n  document.getElementById(\"art-log\").textContent = \"AWAITING SCAN INITIATION...\";\n  document.getElementById(\"art-temp\").textContent = \"--.- C\";\n\n  // Phase 2: Wire up the hitboxes on the cloned artefact\n  setupArtefactInteractions(clone);\n}\n\nfunction setupArtefactInteractions(svgClone) {\n  svgClone.addEventListener('click', (e) => {\n    if (!e.target.classList.contains('hitbox')) return;\n    \n    const loreText = e.target.dataset.lore;\n    if (!loreText) return;\n\n    // Provide immediate audio feedback on click\n    playToneNow(1200, 40, 'square', 0.05); \n\n    const log = document.getElementById(\"art-log\");\n    log.textContent = \"\";\n    \n    const isSecret = e.target.classList.contains('secret-reset');\n    const lines = loreText.split(\"|\");\n    let lineIdx = 0;\n\n    function printNextLine() {\n      if (lineIdx >= lines.length) {\n          if (isSecret) setTimeout(triggerHardwareReset, 800);\n          return;\n      }\n      const row = document.createElement(\"div\");\n      row.style.marginBottom = \"4px\";\n      if (isSecret && lineIdx === lines.length - 1) row.style.color = \"var(--warn)\";\n      log.appendChild(row);\n      \n      const text = lines[lineIdx];\n      let charIdx = 0;\n      \n      function printChar() {\n          if (charIdx < text.length) {\n              row.textContent += text[charIdx];\n              charIdx++;\n              if (charIdx % 2 === 0) playToneNow(1800, 10, 'square', 0.01);\n              setTimeout(printChar, 15);\n          } else {\n              lineIdx++;\n              setTimeout(printNextLine, 150);\n          }\n      }\n      printChar();\n    }\n    \n    printNextLine();\n  });\n}\n\nfunction triggerHardwareReset() {\n  // Heavy glitch audio\n  playToneNow(200, 1000, 'sawtooth', 0.2); \n  toggleMatrix(true);\n  appendTerminalLine(\"CRITICAL: HARDWARE OVERRIDE TRIGGERED FROM ARTEFACT VIEWER\", \"danger\");\n  appendTerminalLine(\"GHOST IN THE MACHINE IS AWAKE.\", \"accent\");\n  unlockSecret(\"hardware\");\n  \n  // Physical glitching of the entire OS interface\n  const machine = document.getElementById(\"machine\");\n  const flashes = [100, 300, 400, 800, 1200];\n  \n  flashes.forEach(delay => {\n      setTimeout(() => {\n         machine.style.filter = \"invert(1) hue-rotate(90deg) contrast(1.5)\";\n         machine.style.transform = `translate(${Math.random()*10 - 5}px, ${Math.random()*10 - 5}px)`;\n      }, delay);\n      setTimeout(() => {\n         machine.style.filter = \"\";\n         machine.style.transform = \"\";\n      }, delay + 50);\n  });\n}\n\nfunction playScanSound() {\n  const ctx = ac();\n  ctx.resume();\n  const osc = ctx.createOscillator();\n  const gain = ctx.createGain();\n  osc.connect(gain);\n  gain.connect(ctx.destination);\n  \n  osc.type = 'sawtooth';\n  osc.frequency.setValueAtTime(100, ctx.currentTime);\n  osc.frequency.exponentialRampToValueAtTime(800, ctx.currentTime + 2.5);\n  \n  gain.gain.setValueAtTime(0, ctx.currentTime);\n  gain.gain.linearRampToValueAtTime(0.05, ctx.currentTime + 0.1);\n  gain.gain.linearRampToValueAtTime(0.05, ctx.currentTime + 2.4);\n  gain.gain.linearRampToValueAtTime(0, ctx.currentTime + 2.5);\n  \n  osc.start();\n  osc.stop(ctx.currentTime + 2.5);\n}\n\nfunction scanArtefact() {\n  const btn = document.getElementById(\"art-scan-btn\");\n  if(btn.disabled) return;\n  btn.disabled = true;\n  \n  playScanSound();\n  \n  // Retrigger scan line sweeping animation\n  const line = document.getElementById(\"art-scan-line\");\n  line.classList.remove(\"scanning\");\n  void line.offsetWidth; \n  line.classList.add(\"scanning\");\n  \n  const log = document.getElementById(\"art-log\");\n  log.textContent = \"\";\n  \n  const lines = FORENSICS[state.currentSpeed] || [\"UNKNOWN ENTITY\"];\n  let lineIdx = 0;\n  \n  function printNextLine() {\n    if(lineIdx >= lines.length) {\n      btn.disabled = false;\n      return;\n    }\n    const text = lines[lineIdx];\n    const row = document.createElement(\"div\");\n    row.style.marginBottom = \"6px\";\n    log.appendChild(row);\n    \n    let charIdx = 0;\n    function printChar() {\n      if(charIdx < text.length) {\n        row.textContent += text[charIdx];\n        charIdx++;\n        if(charIdx % 3 === 0) sched(1200 + Math.random()*400, 0, 20, \"square\", 0.01); // Tiny blip\n        setTimeout(printChar, 15 + Math.random() * 20);\n      } else {\n        lineIdx++;\n        setTimeout(printNextLine, 300);\n      }\n    }\n    printChar();\n  }\n  \n  setTimeout(printNextLine, 200);\n  \n  // Set random realistic thermal output\n  const baseTemp = 30 + Math.random() * 15;\n  document.getElementById(\"art-temp\").textContent = baseTemp.toFixed(1) + \"C\";\n}\n\nfunction bootDesktopLog() {\n  desktopLog.innerHTML = \"\";\n  state.desktopLogTimers.forEach((timer) => clearTimeout(timer));\n  state.desktopLogTimers = [];\n  const lines = [\n    \"BOOT OK / USERLAND MOUNTED\",\n    \"TTY READY / TYPE HELP FOR COMMANDS\",\n    \"WX-7 WEATHER CACHE LOADED\",\n    \"PAINT BUFFER READY / LOCAL SLOT CHECKED\",\n    \"MONITOR DAEMON SEEDED / WAITING FOR OPEN\",\n    state.secretUnlocked ? \"ROOT TRACE ALREADY UNLOCKED\" : \"SECRET MODULE PRESENT / NOT YET EXPOSED\"\n  ];\n  lines.forEach((line, index) => {\n    const timer = window.setTimeout(() => {\n      const row = document.createElement(\"div\");\n      row.className = \"desktop-log-line live\";\n      row.textContent = line;\n      desktopLog.appendChild(row);\n      desktopLog.scrollTop = desktopLog.scrollHeight;\n    }, index * 280);\n    state.desktopLogTimers.push(timer);\n  });\n}\n\nfunction appendTerminalLine(text, tone) {\n  const line = document.createElement(\"div\");\n  line.className = `term-line${tone ? ` ${tone}` : \"\"}`;\n  line.textContent = text;\n  termOutput.appendChild(line);\n  termOutput.scrollTop = termOutput.scrollHeight;\n}\n\nfunction appendTerminalBlock(lines, tone) {\n  lines.forEach((line) => appendTerminalLine(line, tone));\n}\n\nfunction appendPromptEcho(text) {\n  appendTerminalLine(`visitor@peak-tech:~$ ${text}`, \"accent\");\n}\n\nfunction appendWelcomeIfNeeded() {\n  if (termOutput.dataset.booted === \"true\") {\n    return;\n  }\n  appendTerminalBlock([\n    \"peak tech museum shell 0.9.4\",\n    \"connected. machine is stable. mouse and keyboard online.\",\n    \"available: help, weather, paint, monitor, inspect, neofetch, fortune, clear\",\n    \"tip: try 'sudo make me a sandwich'\"\n  ]);\n  termOutput.dataset.booted = \"true\";\n}\n\nfunction uptimeString() {\n  if (!state.connectedAt) {\n    return \"00:00:00\";\n  }\n  const diff = Math.max(0, Math.floor((Date.now() - state.connectedAt.getTime()) / 1000));\n  const hours = pad(Math.floor(diff / 3600));\n  const mins = pad(Math.floor((diff % 3600) / 60));\n  const secs = pad(diff % 60);\n  return `${hours}:${mins}:${secs}`;\n}\n\nfunction clamp(value, min, max) {\n  return Math.min(max, Math.max(min, value));\n}\n\nfunction pushHistory(series, value) {\n  series.push(value);\n  if (series.length > 32) {\n    series.shift();\n  }\n}\n\nfunction sparkline(history) {\n  const ramp = \" .:-=+*#%@\";\n  return history.map((value) => ramp[Math.min(ramp.length - 1, Math.floor((value / 100) * (ramp.length - 1)))]).join(\"\");\n}\n\nfunction currentLinkLabel() {\n  return state.currentSpeed ? PROFILES[state.currentSpeed].label : \"NO LINK\";\n}\n\nfunction sampleMonitor() {\n  state.monitorTick += 1;\n  const wave = Math.sin(state.monitorTick / 2.8);\n  const wobble = Math.cos(state.monitorTick / 4.7);\n  const speedBias = state.currentSpeed === \"broadband\" ? 10 : state.currentSpeed === \"isdn\" ? 4 : 0;\n  const cpu = clamp(Math.round(24 + wave * 18 + Math.random() * 11 + speedBias), 6, 96);\n  const mem = clamp(Math.round(38 + wobble * 9 + Math.random() * 7), 18, 88);\n  const disk = clamp(Math.round(56 + Math.sin(state.monitorTick / 8.8) * 4 + Math.random() * 3), 40, 81);\n  const net = clamp(Math.round(cpu * 0.65 + Math.random() * 18), 2, 100);\n  pushHistory(state.monitorHistory.cpu, cpu);\n  pushHistory(state.monitorHistory.mem, mem);\n  pushHistory(state.monitorHistory.net, net);\n  return { cpu, mem, disk, net };\n}\n\nfunction buildMonitorGraph() {\n  const cpu = sparkline(state.monitorHistory.cpu);\n  const mem = sparkline(state.monitorHistory.mem);\n  const net = sparkline(state.monitorHistory.net);\n  return [\n    \"TIME   \" + Array.from({ length: 32 }, (_, index) => (index % 4 === 0 ? \"|\" : \".\")).join(\"\"),\n    `CPU  ${cpu}`,\n    `MEM  ${mem}`,\n    `NET  ${net}`,\n    \"\",\n    \"SCALE  . LOW   @ HIGH\",\n    `LINK   ${currentLinkLabel()}`,\n    `UP     ${uptimeString()}`\n  ].join(\"\\n\");\n}\n\nfunction buildProcessTable(cpu, mem) {\n  const lines = [\n    \"PID  CPU MEM STATE  CMD\",\n    `001   1%  2% SLEEP  init`,\n    `014  ${String(Math.max(1, Math.round(cpu * 0.2))).padStart(2, \" \")}%  6% RUN    ttyshelld`,\n    `021  ${String(Math.max(1, Math.round(mem * 0.18))).padStart(2, \" \")}% 14% IDLE   weatherd`,\n    `034   4% 12% WAIT   paintd`,\n    `043   3%  5% IDLE   monitord`,\n    `056   1%  8% WAIT   artefactd`,\n    `071   1%  2% SLEEP  audiod`\n  ];\n  if (state.secretUnlocked) {\n    lines.push(\"099   0%  1% HIDE   sys-trace\");\n  }\n  return lines.join(\"\\n\");\n}\n\nfunction updateMonitorUI() {\n  const sample = sampleMonitor();\n  document.getElementById(\"mon-cpu-value\").textContent = `${sample.cpu}%`;\n  document.getElementById(\"mon-mem-value\").textContent = `${sample.mem}%`;\n  document.getElementById(\"mon-disk-value\").textContent = `${sample.disk}%`;\n  document.getElementById(\"mon-net-value\").textContent = `${(sample.net / 4).toFixed(1)}KB/S`;\n  document.getElementById(\"mon-cpu-bar\").style.width = `${sample.cpu}%`;\n  document.getElementById(\"mon-mem-bar\").style.width = `${sample.mem}%`;\n  document.getElementById(\"mon-disk-bar\").style.width = `${sample.disk}%`;\n  document.getElementById(\"mon-net-bar\").style.width = `${sample.net}%`;\n  document.getElementById(\"monitor-link-copy\").innerHTML = [\n    `LINK ${currentLinkLabel()}`,\n    `PROTOCOL ${state.currentSpeed ? PROFILES[state.currentSpeed].proto : \"NONE\"}`,\n    `NOISE ${state.currentSpeed ? PROFILES[state.currentSpeed].noise : \"N/A\"}`\n  ].join(\"<br>\");\n  document.getElementById(\"monitor-services-copy\").innerHTML = [\n    \"TTYD RUNNING\",\n    \"WXD IDLE\",\n    \"PAINTD IDLE\",\n    \"MONITORD SAMPLING\",\n    \"ARTEFACTD LOADED\",\n    state.secretUnlocked ? \"TRACE DORMANT\" : \"TRACE HIDDEN\"\n  ].join(\"<br>\");\n  document.getElementById(\"monitor-graph-pre\").textContent = buildMonitorGraph();\n  document.getElementById(\"monitor-processes-pre\").textContent = buildProcessTable(sample.cpu, sample.mem);\n  document.getElementById(\"monitor-status\").textContent = \"MONITOR STREAMING / TTY ALIASES: MONITOR, TOP, HTOP\";\n  document.getElementById(\"monitor-updated\").textContent = `LAST SAMPLE ${formatClock(new Date())}`;\n}\n\nfunction startMonitorLoop() {\n  updateMonitorUI();\n  clearInterval(state.monitorTimer);\n  state.monitorTimer = window.setInterval(updateMonitorUI, 1200);\n}\n\nfunction getSecretsText() {\n  if (!state.secretUnlocked) {\n    return \"access denied. there is definitely something here, though.\";\n  }\n  return \"secret notes: brand button, konami code, matrix burst, sandwich protocol.\";\n}\n\nfunction unlockSecret(reason) {\n  if (state.secretUnlocked) {\n    return;\n  }\n  state.secretUnlocked = true;\n  renderProgramList();\n  document.getElementById(\"secret-copy\").insertAdjacentHTML(\n    \"beforeend\",\n    `<div>UNLOCK VECTOR: ${reason.toUpperCase()}</div>`\n  );\n  bootDesktopLog();\n  appendTerminalLine(`hidden module unlocked: sys trace [${PROGRAM_MAP.phreak.hotkey}]`, \"warn\");\n}\n\nfunction renderMatrix() {\n  const glyphs = \"01#%&@[]{}<>/\\\\|*+=-\";\n  const rows = [];\n  for (let y = 0; y < 28; y += 1) {\n    let line = \"\";\n    for (let x = 0; x < 72; x += 1) {\n      line += glyphs[Math.floor(Math.random() * glyphs.length)];\n    }\n    rows.push(line);\n  }\n  document.getElementById(\"matrix-overlay\").textContent = rows.join(\"\\n\");\n}\n\nfunction toggleMatrix(force) {\n  const next = typeof force === \"boolean\" ? force : !state.matrixActive;\n  if (state.matrixActive === next) {\n    return;\n  }\n  state.matrixActive = next;\n  const overlay = document.getElementById(\"matrix-overlay\");\n  if (next) {\n    overlay.classList.add(\"active\");\n    renderMatrix();\n    clearInterval(state.matrixTimer);\n    state.matrixTimer = window.setInterval(renderMatrix, 160);\n    window.setTimeout(() => toggleMatrix(false), 3200);\n    return;\n  }\n  overlay.classList.remove(\"active\");\n  clearInterval(state.matrixTimer);\n}\n\nfunction focusTerminal() {\n  if (state.currentApp !== \"terminal\") {\n    switchApp(\"terminal\");\n  }\n  window.setTimeout(() => termInput.focus(), 20);\n}\n\nfunction runCommand(raw) {\n  const input = raw.trim();\n  if (!input) {\n    return;\n  }\n  appendPromptEcho(input);\n  const parts = input.split(/\\s+/);\n  const cmd = (parts.shift() || \"\").toLowerCase();\n  const args = parts;\n  const argLine = args.join(\" \");\n\n  if (cmd === \"help\") {\n    appendTerminalBlock([\n      \"commands:\",\n      \"  help       show command list\",\n      \"  neofetch   system banner\",\n      \"  ls/apps    list available modules\",\n      \"  weather    open weather program\",\n      \"  paint      open sketch program\",\n      \"  monitor    open system monitor\",\n      \"  inspect    open artefact viewer\",\n      \"  open X     open a program by name\",\n      \"  uptime     show session uptime\",\n      \"  date       show local time\",\n      \"  cat FILE   read a tiny file\",\n      \"  clear      clear terminal\",\n      \"  fortune    questionable wisdom\",\n      \"  matrix     visual burst\",\n      \"  disconnect drop the line\"\n    ]);\n    return;\n  }\n\n  if (cmd === \"clear\") {\n    termOutput.innerHTML = \"\";\n    termOutput.dataset.booted = \"true\";\n    return;\n  }\n\n  if (cmd === \"ls\" || cmd === \"apps\" || cmd === \"programs\") {\n    const modules = getVisiblePrograms().map((program) => program.cli);\n    appendTerminalLine(`${modules.join(\"  \")}  secrets.txt`);\n    return;\n  }\n\n  if (cmd === \"neofetch\") {\n    appendTerminalBlock([\n      \"        ____  ______    _   __   ______\",\n      \"       / __ \\\\/ ____/   / | / /  /_  __/\",\n      \"      / /_/ / __/_____/  |/ /_____/ /\",\n      \"     / ____/ /__/____/ /|  /_____/ /\",\n      \"    /_/   /_____/   /_/ |_/     /_/\",\n      \"\",\n      `    host: peak-tech museum box`,\n      `    link: ${state.currentSpeed ? PROFILES[state.currentSpeed].label : \"OFFLINE\"}`,\n      `    uptime: ${uptimeString()}`,\n      `    apps: ${getVisiblePrograms().map((program) => program.cli).join(\" / \")}`,\n      `    vibe: monochrome terminal shell with weather daemon and pixel sketchpad`\n    ]);\n    return;\n  }\n\n  if (cmd === \"weather\") {\n    appendTerminalLine(\"launching weather daemon...\");\n    switchApp(\"weather\");\n    return;\n  }\n\n  if (cmd === \"paint\" || cmd === \"sketch\") {\n    appendTerminalLine(\"launching peak paint...\");\n    switchApp(\"sketch\");\n    return;\n  }\n\n  if (cmd === \"monitor\" || cmd === \"top\" || cmd === \"htop\" || cmd === \"stats\") {\n    appendTerminalLine(\"launching system monitor...\");\n    switchApp(\"monitor\");\n    return;\n  }\n  \n  if (cmd === \"artefact\" || cmd === \"inspect\" || cmd === \"scan\") {\n    appendTerminalLine(\"launching forensic diagnostic mode...\");\n    switchApp(\"artefact\");\n    return;\n  }\n\n  if (cmd === \"open\" || cmd === \"launch\") {\n    const program = getProgramByToken(argLine);\n    if (program) {\n      appendTerminalLine(`opening ${program.cli}...`);\n      switchApp(program.id);\n      return;\n    }\n    appendTerminalLine(`unknown target: ${argLine || \"?\"}`, \"warn\");\n    return;\n  }\n\n  if (cmd === \"uptime\") {\n    appendTerminalLine(`session uptime: ${uptimeString()}`);\n    return;\n  }\n\n  if (cmd === \"date\") {\n    appendTerminalLine(new Date().toString());\n    return;\n  }\n\n  if (cmd === \"fortune\") {\n    const fortunes = [\n      \"the line noise is part of the charm.\",\n      \"all museum computers eventually become instruments.\",\n      \"you do not find easter eggs. you trigger them.\",\n      \"paint first, optimize later.\",\n      \"there is no cloud. only weather.\"\n    ];\n    appendTerminalLine(fortunes[Math.floor(Math.random() * fortunes.length)], \"muted\");\n    return;\n  }\n\n  if (cmd === \"matrix\") {\n    appendTerminalLine(\"glyph cascade armed.\", \"warn\");\n    toggleMatrix(true);\n    return;\n  }\n\n  if (cmd === \"whoami\") {\n    appendTerminalLine(state.secretUnlocked ? \"visitor (trusted enough)\" : \"visitor\");\n    return;\n  }\n\n  if (cmd === \"cat\") {\n    if (!args[0]) {\n      appendTerminalLine(\"usage: cat FILE\", \"warn\");\n      return;\n    }\n    if (args[0] === \"secrets.txt\") {\n      appendTerminalLine(getSecretsText());\n      return;\n    }\n    if (args[0] === \"/etc/motd\" || args[0] === \"motd\") {\n      appendTerminalLine(\"welcome to peak tech. connect slowly. look closely.\");\n      return;\n    }\n    appendTerminalLine(`cat: ${args[0]}: no such file`, \"warn\");\n    return;\n  }\n\n  if (cmd === \"sudo\") {\n    if (argLine === \"make me a sandwich\") {\n      appendTerminalLine(\"okay.\", \"accent\");\n      return;\n    }\n    if (argLine === \"su\" || argLine === \"unlock museum\") {\n      unlockSecret(\"tty\");\n      appendTerminalLine(\"privilege escalation complete enough.\", \"accent\");\n      return;\n    }\n    appendTerminalLine(\"sudo: permission simulation engaged.\", \"warn\");\n    return;\n  }\n\n  if (cmd === \"rm\" && argLine.includes(\"-rf\") && argLine.includes(\"/\")) {\n    appendTerminalLine(\"nice try. filesystem is read-only in the museum.\", \"danger\");\n    return;\n  }\n\n  if (cmd === \"ps\") {\n    appendTerminalBlock([\n      \"  PID TTY      TIME CMD\",\n      \"  001 tty0  00:00:01 init\",\n      \"  042 tty0  00:00:02 weatherd\",\n      \"  077 tty0  00:00:02 paintd\",\n      \"  082 tty0  00:00:00 artefactd\",\n      state.secretUnlocked ? \"  099 tty0  00:00:00 sys-trace\" : \"  099 tty0  00:00:00 [hidden]\"\n    ]);\n    return;\n  }\n\n  if (cmd === \"disconnect\" || cmd === \"logout\") {\n    appendTerminalLine(\"dropping line...\", \"warn\");\n    window.setTimeout(disconnectSystem, 250);\n    return;\n  }\n\n  if (cmd === \"hack\") {\n    appendTerminalLine(\"all right, movie hacker. try 'matrix' instead.\", \"warn\");\n    return;\n  }\n\n  if (cmd === \"sl\") {\n    appendTerminalBlock([\n      \"     ====        ________                ___________\",\n      \" _D _|  |_______/        \\\\__I_I_____===__|_________|\",\n      \"  |(_)---  |   H\\\\________/ |   |        =|___ ___|\",\n      \"  /     |  |   H  |  |     |   |         ||_| |_||\",\n      \" |      |  |   H  |__--------------------| [___] |\",\n      \" | ________|___H__/__|_____/[][]~\\\\_______|       |\",\n      \" |/ |   |-----------I_____I [][] []  D   |=======|__\"\n    ], \"muted\");\n    return;\n  }\n\n  if (cmd === \"xyzzy\") {\n    appendTerminalLine(\"nothing happens. but it definitely felt important.\", \"muted\");\n    return;\n  }\n\n  appendTerminalLine(`${cmd}: command not found`, \"warn\");\n}\n\nfunction handleTerminalSubmit(event) {\n  event.preventDefault();\n  const value = termInput.value;\n  termInput.value = \"\";\n  runCommand(value);\n}\n\nfunction safeTimeoutFetch(url, timeoutMs) {\n  const controller = new AbortController();\n  const timer = window.setTimeout(() => controller.abort(), timeoutMs);\n  return fetch(url, { signal: controller.signal }).finally(() => {\n    window.clearTimeout(timer);\n  });\n}\n\nfunction getWMO(code) {\n  return WMO[code] || { desc: \"VARIABLE\", icon: \"[???]\" };\n}\n\nfunction densityToChar(value) {\n  const index = Math.max(0, Math.min(RAMP.length - 1, Math.floor((value / 9) * (RAMP.length - 1))));\n  return RAMP[index];\n}\n\nfunction buildPortrait(weatherKey) {\n  const width = 90;\n  const height = 72;\n  const grid = Array.from({ length: height }, () => new Array(width).fill(0));\n  const set = (x, y, value) => {\n    if (x >= 0 && x < width && y >= 0 && y < height) {\n      grid[y][x] = Math.max(grid[y][x], Math.min(9, value));\n    }\n  };\n\n  for (let y = 0; y < height; y += 1) {\n    for (let x = 0; x < width; x += 1) {\n      let value = 1;\n      if (x > width * 0.55 && y < height * 0.4) {\n        const drift = (x - width * 0.55) / (width * 0.45) + (height * 0.4 - y) / (height * 0.4);\n        value = Math.min(3, 1 + drift * 4);\n      }\n      if (x > width * 0.6 && y > height * 0.05 && y < height * 0.35) {\n        value = Math.min(4, value + 2);\n      }\n      grid[y][x] = value;\n    }\n  }\n\n  const headX = Math.floor(width * 0.44);\n  const headY = Math.floor(height * 0.18);\n  const headRx = 22;\n  const headRy = 12;\n\n  for (let y = 1; y <= headY - 2; y += 1) {\n    for (let x = headX - headRx + 3; x <= headX + headRx - 3; x += 1) {\n      const dx = (x - headX) / headRx;\n      const dy = (y - (headY - headRy)) / headRy;\n      if (dx * dx + dy * dy < 1.1) {\n        set(x, y, 8 + (Math.abs(dx) < 0.3 ? 1 : 0));\n      }\n    }\n  }\n\n  for (let strand = 0; strand < 12; strand += 1) {\n    const angle = -Math.PI * 0.8 + strand * ((Math.PI * 1.6) / 11);\n    for (let radius = 0; radius < 20; radius += 1) {\n      const x = Math.round(headX + radius * Math.cos(angle) * 1.8);\n      const y = Math.round(headY - headRy + 2 + radius * Math.sin(angle) * 0.5);\n      if (y < headY - 2) {\n        set(x, y, 7);\n      }\n    }\n  }\n\n  for (let y = headY - headRy; y <= headY + headRy + 2; y += 1) {\n    for (let x = headX - headRx; x <= headX + headRx; x += 1) {\n      const dy = (y - headY) / headRy;\n      const rxAtY = headRx * (1 - dy * 0.15) * Math.sqrt(Math.max(0, 1 - dy * dy));\n      const dx = Math.abs(x - headX);\n      if (dx <= rxAtY) {\n        let shade = 2;\n        const edgeFalloff = 1 - (rxAtY - dx) / rxAtY;\n        shade += edgeFalloff * 2;\n        if (dy < -0.3 && dx < headRx * 0.4) {\n          shade -= 0.5;\n        }\n        if (dy > 0.1 && dx > headRx * 0.5) {\n          shade += 1.5;\n        }\n        set(x, y, Math.round(shade));\n      }\n    }\n  }\n\n  const eyeY = headY - 2;\n  const eyeL = headX - 11;\n  const eyeR = headX + 12;\n  const eyeRX = 7;\n  const eyeRY = 5;\n\n  const drawEye = (cx, cy) => {\n    for (let dx = -eyeRX; dx <= eyeRX; dx += 1) {\n      for (let dy = -eyeRY; dy <= eyeRY; dy += 1) {\n        const ex = dx / eyeRX;\n        const ey = dy / eyeRY;\n        if (ex * ex + ey * ey <= 1) {\n          set(cx + dx, cy + dy, 0);\n        }\n      }\n    }\n    for (let dx = -4; dx <= 4; dx += 1) {\n      for (let dy = -3; dy <= 3; dy += 1) {\n        const ratio = (dx / 4) * (dx / 4) + (dy / 3) * (dy / 3);\n        if (ratio <= 1) {\n          set(cx + dx, cy + dy, ratio > 0.55 ? 8 : 4);\n        }\n      }\n    }\n    for (let dx = -1; dx <= 1; dx += 1) {\n      for (let dy = -1; dy <= 1; dy += 1) {\n        set(cx + dx, cy + dy, 9);\n      }\n    }\n    set(cx + 1, cy - 1, 1);\n    for (let dx = -eyeRX; dx <= eyeRX; dx += 1) {\n      set(cx + dx, cy - eyeRY, 9);\n      set(cx + dx, cy - eyeRY + 1, 8);\n    }\n    for (let dx = -eyeRX + 1; dx <= eyeRX - 1; dx += 1) {\n      set(cx + dx, cy + eyeRY, 8);\n    }\n    for (let dx = -eyeRX; dx <= eyeRX; dx += 1) {\n      for (let dy = -eyeRY; dy <= eyeRY; dy += 1) {\n        const ratio = (dx / eyeRX) * (dx / eyeRX) + (dy / eyeRY) * (dy / eyeRY);\n        if (ratio > 0.85 && ratio <= 1) {\n          set(cx + dx, cy + dy, 9);\n        }\n      }\n    }\n  };\n\n  drawEye(eyeL, eyeY);\n  drawEye(eyeR, eyeY);\n\n  for (let dx = -eyeRX + 1; dx <= eyeRX - 1; dx += 1) {\n    set(eyeL + dx, eyeY + eyeRY + 1, 6);\n    set(eyeR + dx, eyeY + eyeRY + 1, 6);\n  }\n\n  state.portraitMeta = { eyeL, eyeR, eyeY, eyeRX, eyeRY, width, height, headX, headY };\n  state.portraitGrid = grid;\n\n  const browY = eyeY - 3;\n  for (let dx = -5; dx <= 3; dx += 1) {\n    set(eyeL + dx + 1, browY + (dx > 0 ? 0 : 1), 7);\n  }\n  for (let dx = -3; dx <= 5; dx += 1) {\n    set(eyeR + dx - 1, browY + (dx < 0 ? 0 : 1), 7);\n  }\n\n  for (let dy = 0; dy <= 5; dy += 1) {\n    set(headX, eyeY + 2 + dy, 3 + (dy * 0.3) | 0);\n  }\n  set(headX - 2, eyeY + 6, 5);\n  set(headX + 2, eyeY + 6, 5);\n  set(headX - 3, eyeY + 7, 6);\n  set(headX + 3, eyeY + 7, 6);\n\n  const lipY = headY + 4;\n  for (let dx = -5; dx <= 5; dx += 1) {\n    set(headX + dx, lipY, 4 + ((Math.abs(dx) * 0.3) | 0));\n  }\n  for (let dx = -4; dx <= 4; dx += 1) {\n    set(headX + dx, lipY + 1, 5);\n  }\n  set(headX, lipY + 1, 3);\n  set(headX - 1, lipY + 1, 3);\n  for (let dx = -3; dx <= 3; dx += 1) {\n    set(headX + dx, lipY + 2, 7);\n  }\n\n  for (let index = 0; index < 5; index += 1) {\n    set(eyeL - 3 - index, eyeY + 4 + index, 4 + ((index * 0.4) | 0));\n    set(eyeL - 2 - index, eyeY + 5 + index, 3 + ((index * 0.3) | 0));\n    set(eyeR + 3 + index, eyeY + 4 + index, 4 + ((index * 0.4) | 0));\n    set(eyeR + 2 + index, eyeY + 5 + index, 3 + ((index * 0.3) | 0));\n  }\n\n  const neckY = headY + headRy + 1;\n  for (let y = neckY; y <= neckY + 5; y += 1) {\n    for (let dx = -4; dx <= 4; dx += 1) {\n      set(headX + dx, y, 2 + ((Math.abs(dx) * 0.4) | 0));\n    }\n    set(headX - 5, y, 4);\n    set(headX + 5, y, 4);\n    set(headX - 6, y, 6);\n    set(headX + 6, y, 6);\n  }\n\n  const jacketY = neckY + 5;\n  for (let y = jacketY; y < height; y += 1) {\n    const expand = (y - jacketY) * 1.6;\n    const leftEdge = Math.max(0, Math.round(headX - 5 - expand));\n    const rightEdge = Math.min(width - 1, Math.round(headX + 5 + expand));\n    for (let x = leftEdge; x <= rightEdge; x += 1) {\n      const edgeDistance = Math.min(x - leftEdge, rightEdge - x);\n      const crackle =\n        Math.sin(x * 0.8 + y * 0.5) * 1.5 +\n        Math.sin(x * 1.3 - y * 0.9) * 1.0 +\n        Math.sin(x * 0.3 + y * 1.2) * 0.8;\n      let value = 3 + crackle + (edgeDistance < 4 ? (4 - edgeDistance) * 0.8 : 0);\n      if (Math.abs(x - headX) <= 1) {\n        value = 7;\n      }\n      const valleyDistance = y - jacketY;\n      if (Math.abs(x - headX) <= valleyDistance * 0.6 && valleyDistance < 10) {\n        value = 1;\n      }\n      set(x, y, Math.round(Math.max(1, Math.min(8, value))));\n    }\n  }\n\n  if (weatherKey === \"rain\") {\n    for (let i = 0; i < 60; i += 1) {\n      const rx = Math.floor(Math.random() * width);\n      const ry = Math.floor(Math.random() * height);\n      if (grid[ry][rx] < 2) {\n        grid[ry][rx] = 3;\n      }\n    }\n  }\n  if (weatherKey === \"snow\") {\n    for (let i = 0; i < 40; i += 1) {\n      const rx = Math.floor(Math.random() * width);\n      const ry = Math.floor(Math.random() * height);\n      if (grid[ry][rx] < 2) {\n        grid[ry][rx] = 2;\n      }\n    }\n  }\n  if (weatherKey === \"fog\") {\n    for (let y = 0; y < height; y += 1) {\n      for (let x = 0; x < width; x += 1) {\n        grid[y][x] = Math.round(grid[y][x] * 0.6 + 1);\n      }\n    }\n  }\n  if (weatherKey === \"storm\") {\n    for (let i = 0; i < 80; i += 1) {\n      const rx = Math.floor(Math.random() * width);\n      const ry = Math.floor(Math.random() * height);\n      if (grid[ry][rx] < 2) {\n        grid[ry][rx] = 4;\n      }\n    }\n  }\n\n  return grid.map((row) => row.map(densityToChar).join(\"\")).join(\"\\n\");\n}\n\nfunction updateEyes(mouseX, mouseY) {\n  const portrait = document.getElementById(\"ascii-portrait\");\n  const meta = state.portraitMeta;\n  const grid = state.portraitGrid;\n  if (!portrait || !meta || !grid) {\n    return;\n  }\n  const rect = portrait.getBoundingClientRect();\n  const cellWidth = rect.width / meta.width;\n  const cellHeight = rect.height / meta.height;\n  const faceX = rect.left + meta.headX * cellWidth;\n  const faceY = rect.top + meta.headY * cellHeight;\n  const dx = mouseX - faceX;\n  const dy = mouseY - faceY;\n  const dist = Math.sqrt(dx * dx + dy * dy) || 1;\n  const px = Math.round(Math.max(-3, Math.min(3, (dx / dist) * 3)));\n  const py = Math.round(Math.max(-2, Math.min(2, (dy / dist) * 2)));\n\n  const resetEye = (cx, cy) => {\n    for (let ddx = -4; ddx <= 4; ddx += 1) {\n      for (let ddy = -3; ddy <= 3; ddy += 1) {\n        const ratio = (ddx / 4) * (ddx / 4) + (ddy / 3) * (ddy / 3);\n        if (ratio <= 1) {\n          const value = ratio > 0.55 ? 8 : 4;\n          if (cy + ddy >= 0 && cy + ddy < meta.height && cx + ddx >= 0 && cx + ddx < meta.width) {\n            grid[cy + ddy][cx + ddx] = value;\n          }\n        }\n      }\n    }\n  };\n\n  const placePupil = (cx, cy) => {\n    const bx = cx + px;\n    const by = cy + py;\n    for (let ddx = -1; ddx <= 1; ddx += 1) {\n      for (let ddy = -1; ddy <= 1; ddy += 1) {\n        if (by + ddy >= 0 && by + ddy < meta.height && bx + ddx >= 0 && bx + ddx < meta.width) {\n          grid[by + ddy][bx + ddx] = 9;\n        }\n      }\n    }\n    if (by - 1 >= 0 && bx + 1 < meta.width) {\n      grid[by - 1][bx + 1] = 1;\n    }\n  };\n\n  resetEye(meta.eyeL, meta.eyeY);\n  resetEye(meta.eyeR, meta.eyeY);\n  placePupil(meta.eyeL, meta.eyeY);\n  placePupil(meta.eyeR, meta.eyeY);\n\n  const rows = portrait.textContent.split(\"\\n\");\n  const start = Math.max(0, meta.eyeY - meta.eyeRY - 1);\n  const end = Math.min(meta.height - 1, meta.eyeY + meta.eyeRY + 1);\n  for (let row = start; row <= end; row += 1) {\n    rows[row] = grid[row].map(densityToChar).join(\"\");\n  }\n  portrait.textContent = rows.join(\"\\n\");\n}\n\nfunction typewrite(element, lines, speed) {\n  clearTimeout(state.typeTimer);\n  element._lines = lines;\n  element._lineIdx = 0;\n\n  const playLine = () => {\n    const text = element._lines[element._lineIdx];\n    element.textContent = \"\";\n    element.classList.add(\"typing\");\n    let index = 0;\n    const tick = () => {\n      if (index < text.length) {\n        element.textContent += text[index];\n        index += 1;\n        state.typeTimer = window.setTimeout(tick, speed + Math.random() * 20);\n        return;\n      }\n      element.classList.remove(\"typing\");\n      state.typeTimer = window.setTimeout(() => {\n        element._lineIdx = (element._lineIdx + 1) % element._lines.length;\n        playLine();\n      }, 4200);\n    };\n    tick();\n  };\n\n  playLine();\n}\n\nfunction buildChart(days, highs, lows) {\n  const width = 64;\n  const height = 14;\n  const values = highs.concat(lows);\n  const minTemp = Math.floor(Math.min(...values)) - 2;\n  const maxTemp = Math.ceil(Math.max(...values)) + 2;\n  const range = Math.max(1, maxTemp - minTemp);\n  const toRow = (temp) => height - 1 - Math.round(((temp - minTemp) / range) * (height - 1));\n  const grid = Array.from({ length: height }, () => new Array(width).fill(\" \"));\n  const set = (x, y, char) => {\n    if (x >= 0 && x < width && y >= 0 && y < height) {\n      grid[y][x] = char;\n    }\n  };\n\n  for (let row = 0; row < height; row += 1) {\n    const labelValue = Math.round(maxTemp - (row / (height - 1)) * range);\n    const label = `${String(labelValue).padStart(3, \" \")}C`;\n    for (let i = 0; i < label.length; i += 1) {\n      set(i, row, label[i]);\n    }\n  }\n\n  const xStart = 5;\n  const colWidth = Math.floor((width - xStart - 2) / 7);\n  for (let row = 0; row < height; row += 1) {\n    for (let x = xStart; x < width; x += 1) {\n      set(x, row, \".\");\n    }\n  }\n\n  for (let index = 0; index < 7; index += 1) {\n    const x = xStart + index * colWidth + Math.floor(colWidth / 2);\n    const highRow = toRow(highs[index]);\n    const lowRow = toRow(lows[index]);\n    for (let row = highRow; row <= lowRow; row += 1) {\n      set(x, row, \"|\");\n    }\n    set(x, highRow, \"^\");\n    set(x, lowRow, \"v\");\n    if (index < 6) {\n      const nextX = xStart + (index + 1) * colWidth + Math.floor(colWidth / 2);\n      const nextHigh = toRow(highs[index + 1]);\n      const steps = Math.max(1, nextX - x);\n      for (let step = 1; step < steps; step += 1) {\n        const row = Math.round(highRow + (nextHigh - highRow) * (step / steps));\n        set(x + step, row, \"-\");\n      }\n    }\n  }\n\n  let dayLine = \"    \";\n  let hiLine = \"    \";\n  let lowLine = \"    \";\n  for (let index = 0; index < 7; index += 1) {\n    dayLine += days[index].slice(0, 3).padEnd(colWidth, \" \");\n    hiLine += `${highs[index]}C`.padEnd(colWidth, \" \");\n    lowLine += `${lows[index]}C`.padEnd(colWidth, \" \");\n  }\n  return `${grid.map((row) => row.join(\"\")).join(\"\\n\")}\\n${dayLine}\\n${hiLine}\\n${lowLine}`;\n}\n\nfunction renderWeather(location, currentWeather, daily, humidity) {\n  const key =\n    currentWeather.weathercode === 0 ? \"clear\" :\n    currentWeather.weathercode <= 3 ? \"cloud\" :\n    currentWeather.weathercode <= 48 ? \"fog\" :\n    currentWeather.weathercode <= 67 ? \"rain\" :\n    currentWeather.weathercode <= 77 ? \"snow\" :\n    currentWeather.weathercode >= 95 ? \"storm\" :\n    \"cloud\";\n\n  document.getElementById(\"ascii-portrait\").textContent = buildPortrait(key);\n  document.getElementById(\"pm-cond\").textContent = getWMO(currentWeather.weathercode).desc;\n  document.getElementById(\"pm-feel\").textContent = `${Math.round(currentWeather.temperature)} C`;\n  document.getElementById(\"pm-hum\").textContent = `${humidity}%`;\n  document.getElementById(\"pm-wind\").textContent = `${Math.round(currentWeather.windspeed)} KM/H`;\n\n  const speech = document.getElementById(\"speech-text\");\n  typewrite(speech, SPEECH[key] || SPEECH.cloud, 26);\n\n  const days = daily.time.slice(0, 7).map((date) => DAYS[new Date(date).getDay()]);\n  const highs = daily.temperature_2m_max.slice(0, 7).map(Math.round);\n  const lows = daily.temperature_2m_min.slice(0, 7).map(Math.round);\n  const codes = daily.weathercode.slice(0, 7);\n  document.getElementById(\"ascii-chart\").textContent = buildChart(days, highs, lows);\n  const forecastRows = document.getElementById(\"forecast-rows\");\n  forecastRows.innerHTML = \"\";\n  days.forEach((day, index) => {\n    const weather = getWMO(codes[index]);\n    const row = document.createElement(\"div\");\n    row.className = \"fc-row\";\n    row.innerHTML = `\n      <span class=\"fc-day\">${day.slice(0, 3)}</span>\n      <span class=\"fc-icon\">${weather.icon}</span>\n      <span class=\"fc-desc\">${weather.desc}</span>\n      <span class=\"fc-hi\">${highs[index]}C</span>\n      <span class=\"fc-lo\">${lows[index]}C</span>\n    `;\n    forecastRows.appendChild(row);\n  });\n  document.getElementById(\"w-loc\").textContent = location;\n  state.weatherReady = true;\n}\n\nasync function fetchWeather() {\n  let lat = MOCK.lat;\n  let lon = MOCK.lon;\n  let location = MOCK.city;\n  try {\n    const pos = await new Promise((resolve, reject) => {\n      navigator.geolocation.getCurrentPosition(resolve, reject, { timeout: 6000 });\n    });\n    lat = pos.coords.latitude;\n    lon = pos.coords.longitude;\n    try {\n      const geo = await safeTimeoutFetch(`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lon}&format=json`, 4000);\n      const geoData = await geo.json();\n      location = (geoData.address?.city || geoData.address?.town || geoData.address?.village || geoData.address?.county || location).toUpperCase();\n    } catch (error) {\n      location = location.toUpperCase();\n    }\n  } catch (error) {\n    location = location.toUpperCase();\n  }\n\n  try {\n    const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}&daily=weathercode,temperature_2m_max,temperature_2m_min,windspeed_10m_max&current_weather=true&hourly=relativehumidity_2m&timezone=auto&forecast_days=7`;\n    const response = await safeTimeoutFetch(url, 6000);\n    if (!response.ok) {\n      throw new Error(\"weather request failed\");\n    }\n    const data = await response.json();\n    const humidity = data.hourly?.relativehumidity_2m?.[new Date().getHours()] ?? \"--\";\n    renderWeather(location, data.current_weather, data.daily, humidity);\n  } catch (error) {\n    renderWeather(location, MOCK.current, MOCK.daily, MOCK.humidity);\n  }\n}\n\nfunction setPaintTool(tool) {\n  state.paintTool = tool;\n  document.querySelectorAll(\"[data-tool]\").forEach((button) => {\n    button.classList.toggle(\"active\", button.dataset.tool === tool);\n  });\n  document.getElementById(\"sketch-status\").textContent = tool === \"erase\" ? \"ERASER ACTIVE / DRAG TO REMOVE PIXELS\" : \"PEN ACTIVE / DRAG TO DRAW\";\n}\n\nfunction setPaintColor(color) {\n  state.paintColor = color;\n  document.querySelectorAll(\"[data-color]\").forEach((button) => {\n    button.classList.toggle(\"active\", button.dataset.color === color);\n  });\n}\n\nfunction setPaintSize(size) {\n  state.paintSize = size;\n  document.querySelectorAll(\"[data-size]\").forEach((button) => {\n    button.classList.toggle(\"active\", Number(button.dataset.size) === size);\n  });\n}\n\nfunction getCanvasPoint(event) {\n  const rect = sketchCanvas.getBoundingClientRect();\n  const x = Math.floor(((event.clientX - rect.left) / rect.width) * sketchCanvas.width);\n  const y = Math.floor(((event.clientY - rect.top) / rect.height) * sketchCanvas.height);\n  return {\n    x: Math.max(0, Math.min(sketchCanvas.width - 1, x)),\n    y: Math.max(0, Math.min(sketchCanvas.height - 1, y))\n  };\n}\n\nfunction drawPixel(x, y) {\n  const half = Math.floor(state.paintSize / 2);\n  for (let dx = -half; dx <= half; dx += 1) {\n    for (let dy = -half; dy <= half; dy += 1) {\n      const px = x + dx;\n      const py = y + dy;\n      if (px < 0 || py < 0 || px >= sketchCanvas.width || py >= sketchCanvas.height) {\n        continue;\n      }\n      if (state.paintTool === \"erase\") {\n        sketchCtx.clearRect(px, py, 1, 1);\n      } else {\n        sketchCtx.fillStyle = state.paintColor;\n        sketchCtx.fillRect(px, py, 1, 1);\n      }\n    }\n  }\n}\n\nfunction paintLine(from, to) {\n  const dx = to.x - from.x;\n  const dy = to.y - from.y;\n  const steps = Math.max(Math.abs(dx), Math.abs(dy), 1);\n  for (let step = 0; step <= steps; step += 1) {\n    const x = Math.round(from.x + (dx * step) / steps);\n    const y = Math.round(from.y + (dy * step) / steps);\n    drawPixel(x, y);\n  }\n}\n\nfunction updateSketchMemory(hasData) {\n  document.getElementById(\"sketch-memory\").textContent = hasData ? \"LOCAL RAM SLOT: SAVED\" : \"LOCAL RAM SLOT: EMPTY\";\n}\n\nfunction hasStoredSketch() {\n  try {\n    return Boolean(localStorage.getItem(PAINT_KEY));\n  } catch (error) {\n    return false;\n  }\n}\n\nfunction clearSketch(silent) {\n  sketchCtx.clearRect(0, 0, sketchCanvas.width, sketchCanvas.height);\n  if (!silent) {\n    document.getElementById(\"sketch-status\").textContent = \"FRAME BUFFER CLEARED\";\n  }\n}\n\nfunction saveSketch() {\n  try {\n    localStorage.setItem(PAINT_KEY, sketchCanvas.toDataURL(\"image/png\"));\n    updateSketchMemory(true);\n    document.getElementById(\"sketch-status\").textContent = \"DRAWING SAVED TO LOCAL STORAGE\";\n  } catch (error) {\n    document.getElementById(\"sketch-status\").textContent = \"SAVE FAILED / STORAGE NOT AVAILABLE\";\n  }\n}\n\nfunction loadSketch() {\n  try {\n    const data = localStorage.getItem(PAINT_KEY);\n    if (!data) {\n      updateSketchMemory(false);\n      document.getElementById(\"sketch-status\").textContent = \"NO SAVED FRAME BUFFER FOUND\";\n      return;\n    }\n    const image = new Image();\n    image.onload = () => {\n      clearSketch(true);\n      sketchCtx.drawImage(image, 0, 0, sketchCanvas.width, sketchCanvas.height);\n      updateSketchMemory(true);\n      document.getElementById(\"sketch-status\").textContent = \"SAVED FRAME BUFFER LOADED\";\n    };\n    image.src = data;\n  } catch (error) {\n    document.getElementById(\"sketch-status\").textContent = \"LOAD FAILED / STORAGE NOT AVAILABLE\";\n  }\n}\n\nfunction saveSketchImage() {\n  const stamp = new Date().toISOString().replace(/[:.]/g, \"-\");\n  const link = document.createElement(\"a\");\n  link.href = sketchCanvas.toDataURL(\"image/png\");\n  link.download = `peak-tech-sketch-${stamp}.png`;\n  link.click();\n  document.getElementById(\"sketch-status\").textContent = \"IMAGE SAVED AS PNG\";\n}\n\nfunction handlePaintStart(event) {\n  event.preventDefault();\n  state.paintDrawing = true;\n  const point = getCanvasPoint(event);\n  state.lastPaintPoint = point;\n  drawPixel(point.x, point.y);\n  sketchCanvas.setPointerCapture(event.pointerId);\n  document.getElementById(\"sketch-status\").textContent = `DRAWING AT ${point.x},${point.y}`;\n}\n\nfunction handlePaintMove(event) {\n  const point = getCanvasPoint(event);\n  document.getElementById(\"sketch-status\").textContent = state.paintDrawing ? `DRAWING AT ${point.x},${point.y}` : `CURSOR ${point.x},${point.y}`;\n  if (!state.paintDrawing) {\n    return;\n  }\n  paintLine(state.lastPaintPoint, point);\n  state.lastPaintPoint = point;\n}\n\nfunction handlePaintEnd(event) {\n  if (state.paintDrawing) {\n    state.paintDrawing = false;\n    state.lastPaintPoint = null;\n    if (event.pointerId != null) {\n      sketchCanvas.releasePointerCapture(event.pointerId);\n    }\n    document.getElementById(\"sketch-status\").textContent = \"STROKE COMMITTED\";\n  }\n}\n\nfunction initSketch() {\n  clearSketch(true);\n  updateSketchMemory(hasStoredSketch());\n  setPaintTool(\"pen\");\n  setPaintColor(\"#f2f2f2\");\n  setPaintSize(1);\n}\n\nfunction attachEvents() {\n  document.getElementById(\"sel-prev\").addEventListener(\"click\", () => changeSelection(-1));\n  document.getElementById(\"sel-next\").addEventListener(\"click\", () => changeSelection(1));\n  \n  document.getElementById(\"connect-btn\").addEventListener(\"click\", startConnect);\n  document.getElementById(\"enter-system-btn\").addEventListener(\"click\", enterSystem);\n  document.getElementById(\"disconnect-btn\").addEventListener(\"click\", disconnectSystem);\n  document.getElementById(\"refresh-weather-btn\").addEventListener(\"click\", fetchWeather);\n  document.getElementById(\"focus-terminal-btn\").addEventListener(\"click\", focusTerminal);\n  document.getElementById(\"terminal-form\").addEventListener(\"submit\", handleTerminalSubmit);\n  \n  document.getElementById(\"art-scan-btn\").addEventListener(\"click\", scanArtefact);\n  \n  document.getElementById(\"program-list\").addEventListener(\"click\", (event) => {\n    const button = event.target.closest(\".program-row\");\n    if (button) {\n      switchApp(button.dataset.app);\n    }\n  });\n\n  document.querySelectorAll(\"[data-tool]\").forEach((button) => {\n    button.addEventListener(\"click\", () => setPaintTool(button.dataset.tool));\n  });\n\n  document.querySelectorAll(\"[data-color]\").forEach((button) => {\n    button.addEventListener(\"click\", () => setPaintColor(button.dataset.color));\n  });\n\n  document.querySelectorAll(\"[data-size]\").forEach((button) => {\n    button.addEventListener(\"click\", () => setPaintSize(Number(button.dataset.size)));\n  });\n\n  document.getElementById(\"sketch-clear-btn\").addEventListener(\"click\", () => clearSketch(false));\n  document.getElementById(\"sketch-save-btn\").addEventListener(\"click\", saveSketch);\n  document.getElementById(\"sketch-load-btn\").addEventListener(\"click\", loadSketch);\n  document.getElementById(\"sketch-image-btn\").addEventListener(\"click\", saveSketchImage);\n\n  sketchCanvas.addEventListener(\"pointerdown\", handlePaintStart);\n  sketchCanvas.addEventListener(\"pointermove\", handlePaintMove);\n  sketchCanvas.addEventListener(\"pointerup\", handlePaintEnd);\n  sketchCanvas.addEventListener(\"pointercancel\", handlePaintEnd);\n  sketchCanvas.addEventListener(\"pointerleave\", handlePaintEnd);\n\n  document.addEventListener(\"mousemove\", (event) => updateEyes(event.clientX, event.clientY));\n\n  document.getElementById(\"brand-button\").addEventListener(\"click\", () => {\n    state.brandClicks += 1;\n    window.clearTimeout(state.brandResetTimer);\n    state.brandResetTimer = window.setTimeout(() => {\n      state.brandClicks = 0;\n    }, 1200);\n    if (state.brandClicks >= 5) {\n      state.brandClicks = 0;\n      unlockSecret(\"brand\");\n      toggleMatrix(true);\n    }\n  });\n\n  const konami = [\"ArrowUp\", \"ArrowUp\", \"ArrowDown\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"ArrowLeft\", \"ArrowRight\", \"b\", \"a\"];\n  document.addEventListener(\"keydown\", (event) => {\n    const key = event.key.length === 1 ? event.key.toLowerCase() : event.key;\n    if (key === konami[state.konamiIndex]) {\n      state.konamiIndex += 1;\n      if (state.konamiIndex === konami.length) {\n        state.konamiIndex = 0;\n        unlockSecret(\"konami\");\n        appendTerminalLine(\"sequence accepted. hidden module is now online.\", \"accent\");\n      }\n    } else {\n      state.konamiIndex = key === konami[0] ? 1 : 0;\n    }\n\n    if (!document.getElementById(\"desktop-screen\").classList.contains(\"active\")) {\n      return;\n    }\n\n    const activeElement = document.activeElement;\n    const inputFocused = activeElement && activeElement.tagName === \"INPUT\";\n\n    if (!inputFocused) {\n      const hotkeyProgram = getVisiblePrograms().find((program) => program.hotkey === event.key);\n      if (hotkeyProgram) {\n        switchApp(hotkeyProgram.id);\n      }\n      if (event.key === \"/\") {\n        event.preventDefault();\n        focusTerminal();\n      }\n    }\n  });\n}\n\nupdateClock();\nwindow.setInterval(updateClock, 1000);\nmodemIdle();\nupdateSelectionUI(); \nrenderProgramList();\nattachEvents();\ninitSketch();\nfetchWeather();\n</script>\n</body>\n</html>","embedURL":""}},"3009:878":{"type":"TEXT","id":"3009:878","name":"Rich text/Header 6","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":29.0,"height":22.0},"isolatedAbsoluteRenderBounds":{"x":1.16800010204315,"y":5.79999923706055,"width":24.5662517547607,"height":14.8800010681152},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":29.0,"y":22.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":16.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.48,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":22.3999996185303,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2707":{"type":"TEXT","id":"2482:2707","name":"Rich text/Button","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":20.0,"height":14.0},"isolatedAbsoluteRenderBounds":{"x":0.730000078678131,"y":3.93999981880188,"width":17.6262512207031,"height":7.16000080108643},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":20.0,"y":14.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.5,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":14.0,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:4708":{"type":"TEXT","id":"4084:4708","name":"Desktop/HHG - H2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":25.0,"height":12.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":25.0,"height":12.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":25.0,"y":12.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Zetta","fontPostScriptName":"LexendZetta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":12.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.0,"lineHeightPercent":80.0,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:4052":{"type":"TEXT","id":"4084:4052","name":"Desktop/HHG - List Header","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":27.0,"height":21.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":27.0,"height":21.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":27.0,"y":21.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.0,"lineHeightPercent":120.0,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:11643":{"type":"TEXT","id":"4084:11643","name":"Desktop/HHG - Header + Footer","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":16.0,"height":12.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":16.0,"height":12.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":16.0,"y":12.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":12.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":12.0,"lineHeightPercent":49.030403137207,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4082:4259":{"type":"TEXT","id":"4082:4259","name":"Desktop/HHG - H0","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":31.0,"height":32.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":31.0,"height":32.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":31.0,"y":32.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":16.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.8,"letterSpacingValue":5.0,"letterSpacingUnit":"PERCENT","lineHeightPx":32.0,"lineHeightPercent":160.0,"lineHeightPercentFontSize":200.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:3968":{"type":"TEXT","id":"4084:3968","name":"Desktop/HHG - Body 2","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":20.0,"height":27.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":20.0,"height":27.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":20.0,"y":27.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":18.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":27.0,"lineHeightPercent":73.5456085205078,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1635":{"type":"TEXT","id":"3125:1635","name":"Rich text/Header 3","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":36.0,"height":42.0},"isolatedAbsoluteRenderBounds":{"x":0.328125,"y":9.96875,"width":32.0712509155273,"height":29.84375},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":36.0,"y":42.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":32.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.96,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":41.5999984741211,"lineHeightPercent":100.090225219727,"lineHeightPercentFontSize":130.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1637":{"type":"TEXT","id":"3125:1637","name":"Rich text/Header 5","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":22.0,"height":28.0},"isolatedAbsoluteRenderBounds":{"x":0.205078125,"y":6.60546875,"width":20.0445308685303,"height":18.65234375},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":22.0,"y":28.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.6,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":28.0,"lineHeightPercent":107.789474487305,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:3956":{"type":"TEXT","id":"4084:3956","name":"Desktop/HHG - Body 1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":16.0,"height":21.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":16.0,"height":21.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":16.0,"y":21.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":14.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":21.0,"lineHeightPercent":73.5456085205078,"lineHeightPercentFontSize":150.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:4681":{"type":"TEXT","id":"4084:4681","name":"Desktop/HHG - H1","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":37.0,"height":18.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":37.0,"height":18.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":37.0,"y":18.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Zetta","fontPostScriptName":"LexendZetta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":18.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":18.0,"lineHeightPercent":80.0,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4082:4911":{"type":"TEXT","id":"4082:4911","name":"HHG - Blurb","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":29.0,"height":36.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":29.0,"height":36.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":29.0,"y":36.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Scheherazade New","fontPostScriptName":"ScheherazadeNew-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":2.0,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":36.0,"lineHeightPercent":88.2547302246094,"lineHeightPercentFontSize":180.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"4084:3955":{"type":"TEXT","id":"4084:3955","name":"Desktop/HHG - H3","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":21.0,"height":10.0},"isolatedAbsoluteRenderBounds":{"x":0.0,"y":0.0,"width":21.0,"height":10.0},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":21.0,"y":10.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"visible":false,"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Zetta","fontPostScriptName":"LexendZetta-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":0.0,"letterSpacingValue":0.0,"letterSpacingUnit":"PERCENT","lineHeightPx":10.0,"lineHeightPercent":80.0,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"2482:2706":{"type":"TEXT","id":"2482:2706","name":"Rich text/Image Description","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":15.0,"height":10.0},"isolatedAbsoluteRenderBounds":{"x":0.259999990463257,"y":1.29999995231628,"width":13.5669527053833,"height":6.80000019073486},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":15.0,"y":10.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Work Sans","fontPostScriptName":"WorkSans-Regular","fontStyle":"Regular","textCase":"UPPER","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":10.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":1.0,"letterSpacingValue":10.0,"letterSpacingUnit":"PERCENT","lineHeightPx":10.0,"lineHeightPercent":85.2514953613281,"lineHeightPercentFontSize":100.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3009:877":{"type":"TEXT","id":"3009:877","name":"Rich text/Header 5","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":36.0,"height":28.0},"isolatedAbsoluteRenderBounds":{"x":1.46000015735626,"y":7.99999904632568,"width":30.7078113555908,"height":18.6000022888184},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":36.0,"y":28.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Lexend Peta","fontPostScriptName":"LexendPeta-Regular","fontStyle":"Regular","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":20.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.6,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":28.0,"lineHeightPercent":112.0,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}},"3125:1636":{"type":"TEXT","id":"3125:1636","name":"Rich text/Header 4","absoluteBoundingBox":{"x":0.0,"y":0.0,"width":27.0,"height":34.0},"isolatedAbsoluteRenderBounds":{"x":0.24609375,"y":8.7265625,"width":24.0534362792969,"height":22.3828125},"relativeTransform":[[1.0,0.0,0.0],[0.0,1.0,0.0]],"size":{"x":27.0,"y":34.0},"fills":[{"blendMode":"NORMAL","type":"SOLID","color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"visible":true,"opacity":1.0}],"strokeAlign":"INSIDE","strokes":[],"strokeWeight":0.0,"effects":[],"accessibleHTMLTag":"AUTO","isDecorativeImage":false,"ariaAttributes":{},"interactions":[],"characterStyleOverrides":[],"characters":"Ag","lineIndentations":[0],"lineTypes":["NONE"],"listStartOffsets":[],"lineStyleOverrides":[0],"lineTextDirections":null,"textAutoResize":"WIDTH_AND_HEIGHT","style":{"fontFamily":"Reddit Mono","fontPostScriptName":"RedditMono-Light","fontStyle":"Light","textAutoResize":"WIDTH_AND_HEIGHT","fontVariantPosition":"NORMAL","fontSize":24.0,"textAlignHorizontal":"LEFT","textAlignVertical":"TOP","letterSpacing":-0.72,"letterSpacingValue":-3.0,"letterSpacingUnit":"PERCENT","lineHeightPx":33.5999984741211,"lineHeightPercent":107.789474487305,"lineHeightPercentFontSize":140.0,"lineHeightUnit":"FONT_SIZE_%","paragraphSpacing":0,"paragraphIndent":0,"listSpacing":0,"italic":false,"textCase":"ORIGINAL","textDecoration":"NONE","textDecorationSkipInk":false,"textDecorationStyle":"solid","textTruncation":"DISABLED"},"styleOverrideTable":{}}},"assetIdToGuid":{},"guidToUrl":{"4055:10494":"/projectlist","3905:14723":"/lineage","3097:266":"/lets-talk","3944:4761":"/studio","3859:28150":"/imageandimage","3123:615":"/about","4200:35605":"/thinkcode","3910:18537":"/brashystudios","3946:2833":"/reauthored","3662:28647":"/cafea","2933:1874":"/projects","3094:529":"/automation","3554:2234":"/easy-start","3094:525":"/production","3094:522":"/creative-direction","4236:2712":"/designsystems","2924:1360":"/index","3722:2461":"/","3790:6277":"/negspc","3778:56167":"/internetmuseum","4128:3343":"/recentartefacts"},"fonts":{"Work Sans:Regular":{"id":"WorkSans_wght__2","url":"/_woff/v2/WorkSans_wght__2/WorkSans_wght__2.woff2","source":1,"italic":false,"weight":400,"variationAxes":[{"tag":"wght","value":400.0,"name":"Weight"}],"subsets":{"baseUrl":"/_woff/v2/WorkSans_wght__2/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"WorkSans_wght__2-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"WorkSans_wght__2-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"WorkSans_wght__2-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"WorkSans_wght__2-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"WorkSans_wght__2-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"WorkSans_wght__2-rest.woff2"}]}},"Climate Crisis:Regular":{"id":"ClimateCrisis_YEAR__2","url":"/_woff/v2/ClimateCrisis_YEAR__2/ClimateCrisis_YEAR__2.woff2","source":1,"italic":false,"weight":400,"variationAxes":[{"tag":"YEAR","value":1979.0,"name":"YEAR"}]},"Work Sans:Light":{"id":"WorkSans_wght__2","url":"/_woff/v2/WorkSans_wght__2/WorkSans_wght__2.woff2","source":1,"italic":false,"weight":300,"variationAxes":[{"tag":"wght","value":300.0,"name":"Weight"}],"subsets":{"baseUrl":"/_woff/v2/WorkSans_wght__2/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"WorkSans_wght__2-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"WorkSans_wght__2-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"WorkSans_wght__2-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"WorkSans_wght__2-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"WorkSans_wght__2-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"WorkSans_wght__2-rest.woff2"}]}},"Lexend Peta:Regular":{"id":"LexendPeta_wght__1","url":"/_woff/v2/LexendPeta_wght__1/LexendPeta_wght__1.woff2","source":1,"italic":false,"weight":400,"variationAxes":[{"tag":"wght","value":400.0,"name":"Weight"}],"subsets":{"baseUrl":"/_woff/v2/LexendPeta_wght__1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"LexendPeta_wght__1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"LexendPeta_wght__1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"LexendPeta_wght__1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"LexendPeta_wght__1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"LexendPeta_wght__1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"LexendPeta_wght__1-rest.woff2"}]}},"Reddit Mono:Light":{"id":"RedditMono_wght__1","url":"/_woff/v2/RedditMono_wght__1/RedditMono_wght__1.woff2","source":1,"italic":false,"weight":300,"variationAxes":[{"tag":"wght","value":300.0,"name":"Weight"}],"subsets":{"baseUrl":"/_woff/v2/RedditMono_wght__1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"RedditMono_wght__1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"RedditMono_wght__1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"RedditMono_wght__1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"RedditMono_wght__1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"RedditMono_wght__1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"RedditMono_wght__1-rest.woff2"}]}},"Abhaya Libre:Regular":{"id":"AbhayaLibre-Regular_1","url":"/_woff/v2/AbhayaLibre-Regular_1/AbhayaLibre-Regular_1.woff2","source":1,"italic":false,"weight":400,"subsets":{"baseUrl":"/_woff/v2/AbhayaLibre-Regular_1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"AbhayaLibre-Regular_1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"AbhayaLibre-Regular_1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"AbhayaLibre-Regular_1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"AbhayaLibre-Regular_1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"AbhayaLibre-Regular_1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"AbhayaLibre-Regular_1-rest.woff2"}]}},"Lexend Zetta:Regular":{"id":"LexendZetta_wght__1","url":"/_woff/v2/LexendZetta_wght__1/LexendZetta_wght__1.woff2","source":1,"italic":false,"weight":400,"variationAxes":[{"tag":"wght","value":400.0,"name":"Weight"}],"subsets":{"baseUrl":"/_woff/v2/LexendZetta_wght__1/","subsetMappings":[{"unicodeRange":"U+0000-00A0,U+00A2-00A9,U+00AC-00AE,U+00B0-00B7,U+00B9-00BA,U+00BC-00BE,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD","file":"LexendZetta_wght__1-english.woff2"},{"unicodeRange":"U+00A1,U+00AA-00AB,U+00AF,U+00B8,U+00BB,U+00BF-00D6,U+00D8-00F6,U+00F8-00FF,U+0131,U+0152-0153,U+02B0-02FF","file":"LexendZetta_wght__1-rest-latin.woff2"},{"unicodeRange":"U+0100-0130,U+0132-0151,U+0154-017F","file":"LexendZetta_wght__1-latin-extended-a.woff2"},{"unicodeRange":"U+0180-024F","file":"LexendZetta_wght__1-latin-extended-b.woff2"},{"unicodeRange":"U+1E00-1EFF","file":"LexendZetta_wght__1-latin-extended-additional.woff2"},{"unicodeRange":"U+0250-02AF,U+0300-1DFF,U+1F00-1FFF,U+2070-2073,U+2075-20AB,U+20AD-2121,U+2123-218F,U+21BC-2211,U+2213-2214,U+2216-F8FE,U+F900-FEFE,U+FF00-FFFC,U+FFFE-FFFF","file":"LexendZetta_wght__1-rest.woff2"}]}},"Scheherazade New:Regular":{"id":"ScheherazadeNew-Regular_3","url":"/_woff/v2/ScheherazadeNew-Regular_3/ScheherazadeNew-Regular_3.woff2","source":1,"italic":false,"weight":400}},"assets":{"358ce2071dacf9b8d44c90d45fa4131cc0d169a4":{"type":"PAINT_ASSET","url":"358ce2071dacf9b8d44c90d45fa4131cc0d169a4.png","size":{"x":0.0,"y":0.0}},"16141025267738ae557eed60650058c6d62a1cef":{"type":"PAINT_ASSET","url":"16141025267738ae557eed60650058c6d62a1cef.png","size":{"x":0.0,"y":0.0}},"e959ff239f29970acde808b937ca96f136e061b3":{"type":"PAINT_ASSET","url":"e959ff239f29970acde808b937ca96f136e061b3.png","size":{"x":0.0,"y":0.0}},"a89b11ab69ecb5c8d0ab2de4ef5727a5b22ae4e8":{"type":"PAINT_ASSET","url":"a89b11ab69ecb5c8d0ab2de4ef5727a5b22ae4e8.png","size":{"x":0.0,"y":0.0}},"2629238e3b119bc25a08ff033afaba8da8289eeb":{"type":"PAINT_ASSET","url":"2629238e3b119bc25a08ff033afaba8da8289eeb.png","size":{"x":0.0,"y":0.0}},"20efc63ae415f78ff9628c8fe4181eb4023bb921":{"type":"PAINT_ASSET","url":"20efc63ae415f78ff9628c8fe4181eb4023bb921.png","size":{"x":0.0,"y":0.0}},"7f74c52de7344b1a0f3131961f8d04738d5e90ff":{"type":"PAINT_ASSET","url":"7f74c52de7344b1a0f3131961f8d04738d5e90ff.png","size":{"x":0.0,"y":0.0}},"a47ba8ef1564816f0c63559f4687929cf00769b6":{"type":"PAINT_ASSET","url":"a47ba8ef1564816f0c63559f4687929cf00769b6.png","size":{"x":0.0,"y":0.0}},"c3a7ad82a6050ea2c14e98bba23f56d4f1a4db23":{"type":"GENERATED_ASSET","url":"c3a7ad82a6050ea2c14e98bba23f56d4f1a4db23.png","size":{"x":1200.0,"y":630.0},"offsets":{"top":{"value":0,"unit":"PIXELS"},"right":{"value":0,"unit":"PIXELS"},"bottom":{"value":0,"unit":"PIXELS"},"left":{"value":0,"unit":"PIXELS"}},"format":"PNG"},"966b57fc23787ef29ab9661750901e5c7c58dc2f":{"type":"GENERATED_ASSET","url":"966b57fc23787ef29ab9661750901e5c7c58dc2f.png","size":{"x":48.0,"y":48.0},"offsets":{"top":{"value":0,"unit":"PIXELS"},"right":{"value":0,"unit":"PIXELS"},"bottom":{"value":0,"unit":"PIXELS"},"left":{"value":0,"unit":"PIXELS"}},"format":"PNG"}},"stablePathToAssetInfo":{"3425:4374":{"hash":"c3a7ad82a6050ea2c14e98bba23f56d4f1a4db23"},"3425:4373":{"hash":"966b57fc23787ef29ab9661750901e5c7c58dc2f"}},"animateRootIds":[],"siteSettings":{"title":"Intelligence Matters — Authorship-Led Image Studio","description":"Intelligence Matters is an authorship-led image studio working across concepts, campaigns, and visual worlds for fashion, luxury, and culture.","scalingMode":"REFLOW","lang":"en","googleAnalyticsID":"G-NRF6Q0TR2P","customCodeHeadStart":"<title>...</title>\n<meta name=\"description\" ...>\n<meta property=\"og:title\" ...>\n<meta property=\"og:description\" ...>","ignoreReducedMotion":true,"faviconFilename":"966b57fc23787ef29ab9661750901e5c7c58dc2f.png","socialImageFilename":"c3a7ad82a6050ea2c14e98bba23f56d4f1a4db23.png","labs":{"E5FBBA911B2B7A09E649D4BE6CDF8591EAEFC881":false}},"sourceCodeHash":"0e11ea9067038bb245d392572929dc06a13273a3"}