
  @font-face { font-family: 'Prototype Pixel Gothic'; src: url(data:font/ttf;base64,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MzUzNTM1MzUzNTM1QIAgIIAgQEABIIAgIIAgQEAgYCAgICAgICAgICAgICBgICAgICAgICAgICAgAsAgIKAgIKAgYGD+ICAgoCAgoCBgYAIgICBAQCBAQCBAQEAgQEAgIEBAIEBAQCBAQCBAQAAAAwAgAAACgALgAE0AUwBtAAATNTMVMxUzFSMVIxUjFTMVMxUzFTM1MxUjFSMVMxUzFTMVIzUjNSM1IxUjFSMVMxUjFSMVIxUjNSM1IzUzNSM1MzUzNTM1MzUjNSM1MzUXFTM1MzUHIxUjFSMVMxUzNTM1MzUzNTM1IzUjNSM1I8DAICAgICAgICAggCAgICAgQCAgICAgQCBgIKAgYEAgICAgICAgIGAgICAgICAgQCAgICAgICAgAsAgICBgICAgICAgYCBgQCAgYCAgICAgICAgICAgIEAg4CAgICAggCAggCBg4CAg4CAgICAgQCAgIAABACACIACgAuAADwAAEzUzFSMVIxUjNTM1MzUjNWBAICBAICAgAsAggCAgICAgQAABACD/gADgAuAAGwAAEzUzFSMVIxEzFTMVIzUjNSM1IzUjETM1MzUzNaBAICAgIEAgICAgICAgAsAgQED9wGBAICAgQAJAICAgAAEAIP+AAOAC4AAbAAATMxUzFTMVMxUzESMVIxUjFSMVIzUzNTMRIzUjIEAgICAgICAgIEAgICAgAuAgICAg/cBAICAgQGACQEAAAQAgAcABIALgACMAABMzFTM1MxUjFSMVMxUzFSM1IxUjNSMVIzUzNTM1IzUjNTMVM4BAIEAgICAgQCBAIEAgICAgQCAC4GAgICAgICAgYGAgICAgICAgAAEAIABAAeACAAALAAATMxUzFSMVIzUjNTPAgKCggKCgAgDAQMDAQAABACD/oACgAIAADwAANzUzFSMVIxUjNTM1MzUjNWBAICBAICAgYCCgICAgIEBAAAABACABIAEAAWAABwAAEzUzFSMVIzVAwCDAAUAgICAgAAEAIAAAAKAAgAALAAA3NTMVIxUjFSM1MzVgQCAgQCBgIEAgIEAgAAABACAAAAIgAuAAMwAAATUzFSMVIxUjFSMVIxUjFSMVIxUjFSMVIxUjFSM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNQGggCAgICAgICAgICAgIIAgICAgICAgICAgIALAICBAQEBAQCBAQEBAQCAgQEBAQEAgQEBAQEAAAAIAIAAAAiAC4AAhACkAABM1MxUzFTMVIxEjFSMVIxUjFSMVIzUjNSM1MxEzNTM1MzUXETMRIzUjNeDAIGBAICAgICCgIGBAICAgIIAgIALAICAgQP5AICAgICAgIEAB4CAgICD94AHgICAAAAEAIAAAAUAC4AAZAAATNTMVMxEzFSMVIxUjNSM1MxEjFSM1MzUzNaBAIEBAIGBAQCBAIEACwCBA/eBAICBAQAIAICAgIAABACAAQAHgAuAASwAAEzUzFTMVMxUjFSMVIxUjFSMVIxUjFSMVIxUjFTM1MzUzFTMVIxUjFSMVIzUjNSM1MzUzNTM1MzUzNTM1MzUzNTM1IzUjFSM1MzUzNcDAIEAgICAgICAgICAgoCBAICBAIKAgYCAgICAgICAgICBgYCAgAsAgICBAYCAgICAgICAgQCAgQCAgICAgIIAgICAgICAgIIAgQCAgIAABACAAAAHgAuAAOwAAEzUzFTMVMxUjFSMVIxUzFTMRIxUjFSMVIxUjFSM1IzUjNTM1MxUzESM1IzUzNTM1MzUjNSMVIzUzNTM1wMAgQCAgICBAICAgICCgIGAgQOAggCBAICBgYCAgAsAgICBAYCAgIP8AICAgICAgIEAgIAEAICAgIIAgQCAgIAACACAAAAHgAuAAJQA1AAABNTMRMxUjFTMVIxUjFSM1IzUzNSE1MzUzNTM1MzUzNTM1MzUzNRcjFSMVIxUjFSMVIxUjFTMBQIAgICAgIGBAQP7gICAgICAgICAgICAgICAgIOACwCD+wEDgQCAgQEDgYCAgICAgICAgQCAgICAgICAAAQAgAAAB4ALgACkAABMhFSMVIxUzFTMVMxEjFSMVIxUjFSMVIzUjNSM1MzUzFTMRIzUjNSMVI2ABgCDggEBAICAgICCgIGAgQOAgIGBgAuAgIIAgIP7AICAgICAgIEAgIAEgICAgAAACACAAAAHgAuAAKQAxAAABNTMVIxUjFSMVMzUzFTMVMxEjFSMVIxUjFSMVIzUjNSM1MxEzNTM1MzUXETMRIzUjNQEAoIAgICCgICAgICAgIKAgYEAgICAggCAgAsAgQCAgYCAgIP7AICAgICAgIEAB4CAgIOD+oAEgICAAAQAgAAAB4ALgACcAABMhFSMVIxUjFSMVIxUjFTMVIxUjFSM1IzUzNTM1MzUzNTM1MzUjFSMgAcAgICAgICBAQCBgQEAgICAgIOBAAuAgYEBAQEDgQCAgQEDgQEBAQEAgAAADACAAAAHgAuAANwBDAEsAABM1MxUzFTMVIxUjFSMVIxUzFTMVMxUjFSMVIxUjFSMVIzUjNSM1MxEzNTM1MzUjNSM1IzUzNTM1FxUzFTMVMzUzNSM1ESMVIxEzESPAwCBAICAgICBAICAgICAgoCBgQCAgICAgICAgICAgICAgICCAQALAICAgQEAgICAgIOAgICAgICAgQAEAICAgICBgICAgQEAgIGAg/wAg/wABAAAAAgAgAAABwALgAC8APQAAEzUzFTMVMxEjFSMVIxUjFSMVIxUjFSM1MzUzNTM1MzUzNTM1IzUjNSM1IzUzNTM1FxUzFTMVMzUzNSM1IzWgwCBAICAgICBAQIAgYEAgICCAQCAgICAgICBAICAgAsAgICD+QCAgICAgICBAICAgICCAICAgwCAgIECgICCgICAAAgAgAAAAoAHgAAsAFwAAEzUzFSMVIxUjNTM1EzUzFSMVIxUjNTM1YEAgIEAgIEAgIEAgAcAgQCAgQCD+oCBAICBAIAACACD/oACgAeAACwAbAAATNTMVIxUjFSM1MzUTNTMVIxUjFSM1MzUzNSM1YEAgIEAgIEAgIEAgICABwCBAICBAIP6gIKAgICAgQEAAAQAgACAB4AIAADsAAAE1MxUjFSMVIxUjFSMVIxUjFTMVMxUzFTMVMxUzFTMVIzUjNSM1IzUjNSM1IzUjNTM1MzUzNTM1MzUzNQFggCBAIEAgQCAgQCBAIEAggCBAIEAgQCAgQCBAIEAB4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAAgAgAKAB4AGgAAMABwAAEyEVIRUhFSEgAcD+QAHA/kABoECAQAABACAAIAHgAgAAOwAAEzUzFTMVMxUzFTMVMxUzFTMVIxUjFSMVIxUjFSMVIxUjNTM1MzUzNTM1MzUzNTM1IzUjNSM1IzUjNSM1IIAgQCBAIEAgIEAgQCBAIIAgQCBAIEAgIEAgQCBAAeAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAgAgAAABoALgACkANQAAEzUzFTMVMxUjFSMVIxUjFSMVIxUjFSM1MzUzNTM1MzUjNSMVIzUzNTM1EzUzFSMVIxUjNTM1gMAgQCAgICAgICBAICAgICBgYCAgIEAgIEAgAsAgICBAQCAgIEAgQKAgICBgIEAgICD9oCBAICBAIAADACAAgAJgAmAALwBFAE0AABM1IRUzFTMVMxUjFSM1IzUjNSEVIxUjFTMVMxUhNTMVIxUjFSE1IzUjNSMRMzUzNRc1MxUzFTMVMxUjNSMVIzUjNSM1MzUXFSMVMzUzNaABQEAgICBAICD/ACAgICABIEAgQP7gQCAgICCAwCAgIIBAYCAgIGAgQCACQCAgICDAIMAgICAg4CAgICAgICAgIAEgICBgICCgICAgICAggCAgIGAgYAAAAgAgAAADAAMgAEkAWQAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MxUzFTMVIxEzFTMVIxUjFSM1IzUzNSMVIzUjESMVIzUjNTM1IzUzNSM1MzUjNSM1IzUjNSMFFSMVIxUjFTM1MxUzESM1ICAgICCAICAgQCDAICAgICBAIGBAQEBAQCBgQECAgICAICBgICABwCAgIEBAQCADICAgICAgICAgICAgIED+ICAgICBAQKCgoP8AIEBA4EBAQEAgICAgQCAgIODg4AEgIAAAAwAgAAADIAMgAE0AYQBrAAATMxUzFTM1MzUzFTMVMxUzFTM1MzUzNTM1MxUzFTM1MzUzFSMVIxUjESMVMxUzFSMVIxUjFSMVITUjNTM1IzUzNSM1MzUjNSM1IzUjNSMFFSMVIxUjETMRMxUzNTMRIxUjFRERMzUzNSM1IzUgICAgIIAgICBAICAgYCBAICAgICAgICAgIEAg/sBAQICAgIAgIGAgIAHAICAgQEAgICAgQCAgIAMgICAgICAgICAgICAgICAgIEAgIP8AQCDAICAgIEBA4EBAQEAgICAgQCAgIP4AAgDAIAFAICD+wP8AIKAgIAAAAQAgAAAC4AMgAFEAABMzFTMVMzUzNTMVMxUzFTMVMzUzNTM1MxUzFSMVIzUjNSMVIxUjFSMRMxEzETM1MzUzFSMVIxUjFSMVITUjNTM1IzUzNSM1MzUjNSM1IzUjNSMgICAgIIAgICBAIIBAQCBAIIAgICBAQGAgQCAgICD+wEBAgICAgCAgYCAgAyAgICAgICAgICAgICBgICAgICAg/gACAP5AICBAICAgIEBA4EBAQEAgICAgAAMAIAAAAyADIABHAFkAXQAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MzUzNTMVMxUzNTM1MxUjFSMVIxEjFSMVIxUjFSE1IzUzNSM1MzUjNTM1IzUjNSM1IzUjBRUjFSMVIxEzNTM1MxEjFSMVBzMRIyAgICAggCAgIEAgICBgIEAgICAgICAgICD+wEBAgICAgCAgYCAgAcAgICBAYCAgIEBAQAMgICAgICAgICAgICAgICAgIEAgIP3gICAgIEBA4EBAQEAgICAgQCAgIP4AICACYCAgYP5AAAEAIAAAAuADIABfAAATMxUzFTM1MzUzFTMVMxUzFTM1MzUzNTMVMxUjFSM1IzUjFSMVIxUjETMRMxUzNTMVMxUjFSMVIzUjFTM1MzUzFSMVIxUjFSMVITUjNTM1IzUzNSM1MzUjNSM1IzUjNSMgICAgIIAgICBAIIBAQCBAIIAgICBAQEBAQCAgQEBgIEAgICAg/sBAQICAgIAgIGAgIAMgICAgICAgICAgICAgYCAgICAgIP4AAgCgICAgICAg4CAgQCAgICBAQOBAQEBAICAgIAAAAgAgAAAC4AMgAEEAUwAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MzUzFTMVIxUjNSM1IxUjFSMVIxEjFSM1IzUzNSM1MzUjNTM1IzUjNSM1IzUjBTMVMzUzFTMVIxUjFSM1IxUjICAgICCAICAgQCCAQEAgQCCAICAgIGBAQICAgIAgIGAgIAGgQEBAQCAgQEBAAyAgICAgICAgICAgICBgICAgICAg/eAgQEDgQEBAQCAgICCgoCAgICAgIOAAAAIAIAAAAuADIABTAFcAABMzFTMVMzUzNTMVMxUzFTMVMzUzNTM1MxUzFSMVIzUjNSMVIxUjFSMRMzUzNTM1IzUzFSMVIxUjFSMVIxUhNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwUzESMgICAgIIAgICBAIIBAQCBAIIAgICBAYCAgwCAgICAg/sBAQICAgIAgIGAgIAGgQEADICAgICAgICAgICAgIGAgICAgICD+ACAgoCAgoCAgICBAQOBAQEBAICAgIKD+QAAAAgAgAAADAAMgADEATQAAEzMVMxUzNTM1MxUzFTMVMxUzFSMVIxUjESMVIzUjNTM1IzUzNSM1MzUjNSM1IzUjNSMFMzUzNTMVMxUzFSMRMxUjFSMVIzUjNTMRIxEjICAgICCAICAgYCAgICBgQECAgICAICBgICABoCAgwCAgQCAgIGBAQEBAAyAgICAgICAgICAgIP3gIEBA4EBAQEAgICAgoCAgICAg/mBAICBAQAHA/kAAAQAgAAACAAMgADkAABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEzETMRIxUjFSMVIzUjNTM1IzUzNSM1MzUjNSM1IzUjNSMgICAgIIAgICBgICAgQEAgYCBgQECAgICAICBgICADICAgICAgICAgICAg/kABwP4gICAgQEDgQEBAQCAgICAAAAEAIP9gAkADIABDAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRMxEzESMVIxUjFSMVIxUjFSM1MzUzNTM1MxEjNTM1IzUzNSM1IzUjNSM1I2AgICAggCAgIGAgICBAQCBgICBAYMBAgEAggICAgCAgYCAgAyAgICAgICAgICAgIP5AAcD+ICBgICAgICAgICABgEBAQEAgICAgAAIAIAAAAwADIAAxAF0AABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEjFSM1IzUzNSM1MzUjNTM1IzUjNSM1IzUjBTM1MzUzNTM1MxUzFSMVIxUjFSMVIxUzFTMRMxUjFSMVIzUjNTMRIzUjESMgICAgIIAgICBgICAgIGBAQICAgIAgIGAgIAGgYCAgIEAgICAgICBgIEBAIGBAQCAgQAMgICAgICAgICAgICD94CBAQOBAQEBAICAgIKAgQCAgIEAgICBAIED/AEAgIEBAAQAg/uAAAQAgAAACwAMgAEEAABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEzETMRMzUzNTMVIxUjFSMVIxUhNSM1MzUjNTM1IzUzNSM1IzUjNSM1IyAgICAggCAgIGAgICBAQGAgQCAgICD+wEBAgICAgCAgYCAgAyAgICAgICAgICAgIP4AAgD+QCAgQCAgICBAQOBAQEBAICAgIAACACAAAAPAAyAAMQBlAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRIxUjNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwU1MzUzFTMVMzUzNTMVMxUzFSMRMxUjFSMVIzUjNTMRIzUjFSMRMxUjFSMVIzUjNTMRIzUgICAgIIAgICBgICAgIGBAQICAgIAgIGAgIAFgIKAgICCgIGBAICAgYEBAICBAICAgYEBAIAMgICAgICAgICAgICD94CBAQOBAQEBAICAgICAgICAgICAgIED+AEAgIEBAAiAgQP4AQCAgQEACICAAAAIAIAAAAwADIABNAFEAABMzFTMVMzUzNTMVMxUzFTMVMzUzNTMVMxUzFSMRMxUzFSMVIxUjNSM1MxEjNSMVIxUjFSMRIxUjNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwUzESMgICAgIIAgICBAIMAgICAgIEAgYEBAIEAgICAgYEBAgICAgCAgYCAgAaBAQAMgICAgICAgICAgICAgQP4gICAgIEBAAgAgICAg/eAgQEDgQEBAQCAgICCg/kAAAgAgAAAC4AMgAD8ATwAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MxUzFTMVIxEjFSMVIxUjFSMVIzUjNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwUVIxUjFSMRMxEzETMRIzUgICAgIIAgICBAIMAgICAgQCAgIOAgQECAgICAICBgICABwCAgIEBAQCADICAgICAgICAgICAgIED+QCAgICAgICBA4EBAQEAgICAgQCAgIP5AAcD+QAIAIAAAAgAg/0ADIAMgAEsAXwAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MzUzNTMVMxUzNTM1MxUjFSMVIxEjFSMVIxUjFSMVIxUjFSMVIxEjNTM1IzUzNSM1IzUjNSM1IyEjFSMVIxUjFSMVIxEzETMRMzUzICAgICCAICAgQCAgIGAgQCAgICAgICAgIMAgICAggICAgCAgYCAgAiAgICAgICBAQCAgAyAgICAgICAgICAgICAgICAgQCAg/eAgICAgYCAgIAIgQEBAQCAgICAgICAgIP4AAgD+ICAAAwAg/8ADAAMgAD8ATwBdAAATMxUzFTM1MzUzFTMVMxUzFTM1MzUzFTMVMxUjESMVIxUjFSMVIxUjNSM1IzUzNSM1MzUjNTM1IzUjNSM1IzUjBRUjFSMVIxEzETMRMxEjNRMzFTMVMxUjNSM1IzUjICAgICCAICAgQCDAICAgIEAgICDgIEBAgICAgCAgYCAgAcAgICBAQEAgQGAgIEAgICADICAgICAgICAgICAgIED+QCAgICAgICBA4EBAQEAgICAgQCAgIP5AAcD+QAIAIP3AICBgICAgAAABACAAAAMgAyAAbQAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MzUzNTMVMxUzNTM1MxUjFSMVIxEjFSMVMxUzFTMVIxUjFSM1IzUzNSM1IxUjETMVMzUzESMVIxUjFSMVIxUjESMVIzUjNTM1IzUzNSM1MzUjNSM1IzUjNSMgICAgIIAgICBAICAgYCBAICAgICAgICAgQEAgYEBAICBAQCAgICAgICAgIGBAQICAgIAgIGAgIAMgICAgICAgICAgICAgICAgIEAgIP8AQCAgoEAgIEBAoCDAAcDAIAFAICAgICD94CBAQOBAQEBAICAgIAACACAAAALAAyAAVwBnAAATMxUzFTM1MzUzFTMVMxUzFSMVIxUzFTMVMxUzFTMVMxUzFSMVIxUjFSMVIxUjFSM1IzUjNTM1MxUzFTM1MzUzNSM1IzUjNSM1IzUjNSM1IzUzNSM1IzUjITUzFTMVIxUjNSM1IzUzNSAgICAggCAgICAgIEBAQEAgICAgICBAQMAgQCBAIOAgICAgQEBAQCAgIGAgIAJAQCAgICCgIAMgICAgICAgIEAgQCAgICAgIKAgICAgICAgIIAgQCAgIGAgICAgICAggCAgICAgYCAgICAgAAABACAAAALgAyAAKwAAEzMVMxUhNTM1MxUjFSMVIxEzETMRIxUjFSM1IzUzNSM1MzUjNTM1IzUjNSMgICACAEBAYCDAQECAIGBAQICAgIDAICADICAgICBAICD9wAHg/gAgIEBA4EBAQIAgIAACACAAAAMAAyAARwBNAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRMxUzETM1MzUzNTMVMxEzFSMVIxUjNSM1IzUjNSM1IzUzNSM1MzUjNSM1IzUjNSMFETMVMxEgICAgIIAgICBgICAgICBAICBAQEBgIMBAQCAggICAgCAgYCAgAeAgIAMgICAgICAgICAgICD+QCAB4CAgIED+IEAgICAgICDgQEBAQCAgICDA/kAgAeAAAAIAIAAAAsADIABPAFkAABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEzFTMRMzUzNTM1MxUzESMVIxUjFSMVIxUjNSM1IzUjNSM1IzUjNSM1MzUjNTM1IzUjNSM1IzUjBREjFTM1MzUzESAgICAggCAgIGAgICAgIEAgIEBAICAgICBgICAgICAggICAgCAgYCAgAeAgICAgAyAgICAgICAgICAgIP6AIAGgICAgQP5gIEAgICAgICAgICCgQEBAQCAgICDA/oAgICABYAAAAQAgAAADgAMgAGsAABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEzFTMVMxEjNTM1MzUzFTMRMxUzFTMRIzUzNTM1MxUzESMVIxUjFSMVIzUjNSM1IxUjFSMVIzUjNSM1IzUjNSM1IzUjNTM1IzUzNSM1IzUjNSM1IyAgICAggCAgIGAgICAgIEBAQCBAICAgQEBAIEAgICAgIEAgIEAgIEAgICAgICCAgICAICBgICADICAgICAgICAgICAg/oAgIAGgQCAgQP5gICABoEAgIED+ICAgICAgICAgICAgICAgICCgQEBAQCAgICAAAAEAIAAAAuADIACHAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFTM1MzUzNTM1MzUzNTM1MxUjFSMVIxUjFSMVIxUjFTMVMxUzFTMVMxUzFTMVIxUjFSM1IzUzNSM1IzUjNSM1IxUjFSMVIxUjFSMVMxUjFSMVIzUjNTM1MzUzNTM1MzUzNTM1IzUjNSM1IzUjNSM1IzUjICAgICCAICAgYCAgICAgICAgIEAgICAgICAgICAgICAgQEAgYEBAICAgICAgICAgIEAgIGBAYCAgICAgICAgICAgYCAgAyAgICAgICAgICAgYCAgICBAICAgIEAgICBAQCBAQCBAIEAgIEBAIEAgQCAgICBAICBAICBAQCAgQCAgIIAgQCAgICAgAAIAIP9AAsADIABVAFsAABMzFTMVMzUzNTMVMxUzFTMVMxUjFSMVIxEzFTMRMzUzNTM1MxUzESMVIxUjFSMVIxUjNTM1MzUzNTM1IzUjNSM1IzUjNSM1MzUjNTM1IzUjNSM1IzUjBREzFTMRICAgICCAICAgYCAgICAgQCAgQEAgICBAYMBAgEAgYEBAICCAgICAICBgICAB4CAgAyAgICAgICAgICAgIP5AIAHgICAgQP3ggCAgICAgICAgQCAgICDgQEBAQCAgICDA/kAgAeAAAAEAIAAAAwADIABlAAATMxUzFSE1MzUzFSMVIxUjFSMVIxUjFSMVMxUjFSMVIxUjFSMVIxUjFSMVIxUjFSE1MzUzNTMVIxUjFSM1IzUhNTM1MzUzNTM1MzUzNTM1MzUzNSM1MzUzNTM1MzUzNTM1ITUjNSNgICAB4GAgQCAg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MxUzNTM1MxUzFTM1MzUzFTMVMxUjETMVIxUjFSM1IzUzESM1IzUjETMVIxUjFSM1IzUzESM1IzUjFSMRMxUjFSMVIzUjNTMRIzUzNWBAICCgICAgoCCAQCAgIGBAQCAgQCAgIGBAQCAgICAgICBgQEBAIAIAIEAgICAgICAgIED+4EAgIEBAASAgIP6gQCAgQEABICAgIP7AQCAgQEABIEAgAAEAIAAAAiACIAAzAAATNTMVMzUzNTMVMxUzFSMRMxUjFSMVIzUjNTMRIzUjNSMVIxEzFSMVIxUjNSM1MxEjNTM1YEAgIKAggEAgICBgQEAgICAgICAgYEBAQCACACBAICAgIED+4EAgIEBAASAgICD+wEAgIEBAASBAIAACACAAAAIgAiAAIQApAAATNTMVMxUzFSMRIxUjFSMVIxUjFSM1IzUjNTMRMzUzNTM1FxEzESM1IzXgwCBgQCAgICAgoCBgQCAgICCAICACACAgIED/ACAgICAgICBAASAgICAg/qABICAgAAACACD/QAJAAiAAMQA1AAATNTMVMxUzNTM1MxUzFTMVIxEzFSMVIxUjNSMVIxUjFSMVIzUjFSM1MzUzNTMRIzUzNRcRMxGAYCBAIIAgQEBAYCBAgCAgICAgQCAgIEAgoIACACAgICAgICBA/uBAICBAoCAgIOAgQCAgASBAIGD+4AEgAAACACD/QAJAAiAAMQA1AAATNTMVMxUzNTM1MxUzFTMVIxEzFTMVMxUjNSMVIxUjFSMVIxEjFSM1IzUjNTMRIzUzNRcRMxGAgCBAIGAgIEAgICBAICAgICCAQCBgQEBAgIACACAgICAgICBA/uAgIEAggCAgIAEAQCAgQAEgQCBg/uABIAABACAAAAGgAiAAIwAAEzUzFTM1MzUzFTMVIzUjNSMVIxEzFSMVIxUjNSM1MxEjNTM1YEAgIKAgYCAgICAgIGBAQEAgAgAgQCAgIGAgICD+wEAgIEBAASBAIAABACAAAAHgAiAAOQAAEzUzFTMVIxUjNSM1IxUzFTMVMxUzFTMVIxUjFSMVIxUjNSM1IzUzNTMVMzUzNSM1IzUjNSM1IzUzNcDgICAgIIAgQEBAICAgQCDAIEAgQMAgQEBAICAgAgAgIEAgICBAICAgIIBAICAgICBgIEAgYCAgICBgIAABACAAAAFgAuAAHQAAEzUzFTMVIxEzFSMVIxUjFSM1IzUzESM1MzUzNTM1wCCAgIAgICBggEBAQCAgAsAgwED+oCAgICBAQAFgQGAgIAABACAAAAIgAiAAKQAAEzUzFTMRMxUzFTMRIzUzNTM1MxUzETMVIxUjFSM1IzUjNSM1IxEjNTM1YEBAIEAgQCAgQEBAQCCgQEAgIEAgAgAgQP6gICABYEAgIED+oEAgICAgICABIEAgAAEAIAAAAeACIAAvAAATNTMVMxEzFTMVMxEjNTM1MzUzFTMRIxUjFSMVIxUjNSM1IzUjNSM1IzUjNSM1MzVgQEAgIEBAICBAQCAgICBAICAgICAgQCACACBA/uAgIAEgQCAgQP6gICAgICAgICAgIOBAIAAAAQAgAAAC4AIgAEsAABM1MxUzETMVMxUzESM1MzUzNTMVMxEzFTMVMxEjNTM1MzUzFTMRIxUjFSMVIxUjNSM1IzUjFSMVIxUjNSM1IzUjNSM1IzUjNSM1MzVgQEAgIEBAICBAQCAgQEAgIEBAICAgIEAgIEAgIEAgICAgICBAIAIAIED+4CAgASBAICBA/uAgIAEgQCAgQP6gICAgICAgICAgICAgICAgIOBAIAAAAQAgAAACAAIgAFMAABM1MxUzFTMVMxUzNTM1MzUzNTM1MxUjFSMVIxUjFSMVIxUzFTMVMxUzFTMVIxUjNSM1IzUjNSM1IxUjFSMVIxUjFSMVIzUzNTM1MzUzNSM1IzUjNSCAICAgICAgICBgICAgICAgICAgIEAgYCAgICAgICAgICAgICAgICAgIAIAICAgQCAgICAgICAgICAgIEAgQCBAQCAgIEBAQCAgYCAgIIAgQCBAQEBAAAEAIP9AAiACIAA7AAATNTMVMxUzFTMRMxUzFTMRIzUzNTMVMxUzFSMRIxUjFSMVIxUjNTM1MzUzNTM1IzUjNSM1IzUjESM1MzVgQCAgICBAIEAgQCBgICAgQGDAQIBAIEBAQCAgYCACACAgIED+4CAgAWBgICAgQP4gICAgICAgICBAICAgIAEgQCAAAQAgAAABwAIgADcAABM1IRUjFSMVIxUzFSMVIxUjFSMVIxUzNTM1MxUzFSMVIzUhNTM1MzUzNSM1MzUzNTM1MzUjFSM1YAFAICAgYCCAICAgoCBAICBg/uAgICAgYCAgIKBAAgAggCAgICAgICAgQCAgQCBAIIAgICBAICAgQCBAAAEAIP+AAQAC4AAbAAATNTMVIxEjFSMVMxUzETMVIzUjESM1IzUzNTMRoGAgICAgICBgICBAQCACwCBA/uAgQCD+wEAgAWAgQCABQAABACD/QACgAuAAAwAAEzMRIyCAgALg/GAAAAEAIP+AAQAC4AAbAAATMxUzETMVMxUjFSMRIxUjNTMRMzUzNSM1IxEjIGAgIEBAICBgICAgICAgAuAg/sAgQCD+oCBAAUAgQCABIAABACABAAGAAYAAFwAAEzUzFTMVMzUzNTMVIxUjNSM1IxUjFSM1QGBAQCBAIGBAQCBAAWAgICAgIGAgICAgIGAAAgAg/0AAwAIgAAcAEwAAFyMRMzUzNTMnFSM1MzUzNTMVIxWggCAgQCBAICBAIMABYEBggCBAICBAIAAAAgAg/0ABoAIgACkANQAABRUjNSM1IzUzNTM1MzUzNTM1MzUzNTMVIxUjFSMVIxUzFTM1MxUjFSMVAxUjNTM1MzUzFSMVAUDAIEAgICAgICAgQCAgICAgYGAgICBAICBAIKAgICBAQCAgIEAgQKAgICBgIEAgICACYCBAICBAIAADACAAAAMAA8AASQBZAGcAABMzFTMVMzUzNTMVMxUzFTMVMzUzNTMVMxUzFSMRMxUzFSMVIxUjNSM1MzUjFSM1IxEjFSM1IzUzNSM1MzUjNTM1IzUjNSM1IzUjBRUjFSMVIxUzNTMVMxEjNQM1MxUjFSMVIzUzNTM1ICAgICCAICAgQCDAICAgICBAIGBAQEBAQCBgQECAgICAICBgICABwCAgIEBAQCBgQCBAQCAgAyAgICAgICAgICAgICBA/iAgICAgQECgoKD/ACBAQOBAQEBAICAgIEAgICDg4OABICABACBAICAgICAAAAIAIAAAAuADwABfAG0AABMzFTMVMzUzNTMVMxUzFTMVMzUzNTM1MxUzFSMVIzUjNSMVIxUjFSMRMxEzFTM1MxUzFSMVIxUjNSMVMzUzNTMVIxUjFSMVIxUhNSM1MzUjNTM1IzUzNSM1IzUjNSM1IyU1MxUjFSMVIzUzNTM1ICAgICCAICAgQCCAQEAgQCCAICAgQEBAQEAgIEBAYCBAICAgIP7AQECAgICAICBgICABoEAgQEAgIAMgICAgICAgICAgICAgYCAgICAgIP4AAgCgICAgICAg4CAgQCAgICBAQOBAQEBAICAgIMAgQCAgICAgAAACACAAAAIAA8AAOQBHAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRMxEzESMVIxUjFSM1IzUzNSM1MzUjNTM1IzUjNSM1IzUjJTUzFSMVIxUjNTM1MzUgICAgIIAgICBgICAgQEAgYCBgQECAgICAICBgICABIEAgQEAgIAMgICAgICAgICAgICD+QAHA/iAgICBAQOBAQEBAICAgIMAgQCAgICAgAAADACAAAAMAA6AATQBRAGEAABMzFTMVMzUzNTMVMxUzFTMVMzUzNTMVMxUzFSMRMxUzFSMVIxUjNSM1MxEjNSMVIxUjFSMRIxUjNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwUzESMDNTMVMzUzFSMVIzUjFSM1ICAgICCAICAgQCDAICAgICBAIGBAQCBAICAgIGBAQICAgIAgIGAgIAGgQECAYGBAIGBgQAMgICAgICAgICAgICAgQP4gICAgIEBAAgAgICAg/eAgQEDgQEBAQCAgICCg/kADACAgIEAgICBAAAMAIAAAAuADwAA/AE8AXQAAEzMVMxUzNTM1MxUzFTMVMxUzNTM1MxUzFTMVIxEjFSMVIxUjFSMVIzUjNSM1MzUjNTM1IzUzNSM1IzUjNSM1IwUVIxUjFSMRMxEzETMRIzUDNTMVIxUjFSM1MzUzNSAgICAggCAgIEAgwCAgICBAICAg4CBAQICAgIAgIGAgIAHAICAgQEBAIGBAIEBAICADICAgICAgICAgICAgIED+QCAgICAgICBA4EBAQEAgICAgQCAgIP5AAcD+QAIAIAEAIEAgICAgIAAAAwAgAAADAAPAAEcATQBbAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRMxUzETM1MzUzNTMVMxEzFSMVIxUjNSM1IzUjNSM1IzUzNSM1MzUjNSM1IzUjNSMFETMVMxEDNTMVIxUjFSM1MzUzNSAgICAggCAgIGAgICAgIEAgIEBAQGAgwEBAICCAgICAICBgICAB4CAggEAgQEAgIAMgICAgICAgICAgICD+QCAB4CAgIED+IEAgICAgICDgQEBAQCAgICDA/kAgAeABgCBAICAgICAAAAQAIAAAAwADoABHAE0AVQBdAAATMxUzFTM1MzUzFTMVMxUzFTMVIxUjFSMRMxUzETM1MzUzNTMVMxEzFSMVIxUjNSM1IzUjNSM1IzUzNSM1MzUjNSM1IzUjNSMFETMVMxEDNTMVIxUjNTM1MxUjFSM1ICAgICCAICAgYCAgICAgQCAgQEBAYCDAQEAgIICAgIAgIGAgIAHgICDgQCBAwEAgQAMgICAgICAgICAgICD+QCAB4CAgIED+IEAgICAgICDgQEBAQCAgICDA/kAgAeABYCBAIEAgQCBAAAADACAAAAIgAsAALwAzAEEAABM1MxUzFTMVIxEzFSMVIzUjFSMVIzUjNSM1MzUzNTM1MzUjNSM1IxUjFSM1MzUzNRcVMzUDNTMVIxUjFSM1MzUzNeDAIGBAICBgQCCAIGBAICDAICBAIGAgQCCAIEAgQEAgIAIAICAgQP7gYCBAICAgIECgICBAICAgICAgIMDAwAFgIEAgICAgIAADACAAAAHAAsAAJwAtADsAABM1MxUzFTMVMxUjFSMVMzUzNTMVIxUjFSMVIxUjNSM1IzUzETM1MzUXFSMVMzUnNTMVIxUjFSM1MzUzNcCgICAgIMBgIEAgIEAgYCBgQCAgYCBgQEAgQEAgIAIAICAgIIAgoCAgQCAgICAgIEABQCAgQCBAYOAgQCAgICAgAAACACAAAAEAAsAAFQAjAAATNTMVMxEzFSMVIxUjNSM1MxEjNTM1NzUzFSMVIxUjNTM1MzVgQEAgICBgQEBAIGBAIEBAICACACBA/qBAICBAQAEgQCCgIEAgICAgIAAAAgAgAAACIAKgADMAQwAAEzUzFTM1MzUzFTMVMxUjETMVIxUjFSM1IzUzESM1IzUjFSMRMxUjFSMVIzUjNTMRIzUzNTc1MxUzNTMVIxUjNSMVIzVgQCAgoCCAQCAgIGBAQCAgICAgICBgQEBAIIBgYEAgYGBAAgAgQCAgICBA/uBAICBAQAEgICAg/sBAICBAQAEgQCCAICAgQCAgIEAAAAMAIAAAAiACwAAhACkANwAAEzUzFTMVMxUjESMVIxUjFSMVIxUjNSM1IzUzETM1MzUzNRcRMxEjNSM1NzUzFSMVIxUjNTM1MzXgwCBgQCAgICAgoCBgQCAgICCAICAgQCBAQCAgAgAgICBA/wAgICAgICAgQAEgICAgIP6gASAgIMAgQCAgICAgAAIAIAAAAiACwAApADcAABM1MxUzETMVMxUzESM1MzUzNTMVMxEzFSMVIxUjNSM1IzUjNSMRIzUzNSU1MxUjFSMVIzUzNTM1YEBAIEAgQCAgQEBAQCCgQEAgIEAgAQBAIEBAICACACBA/qAgIAFgQCAgQP6gQCAgICAgIAEgQCCgIEAgICAgIAADACAAAAIgAqAAKQAxADkAABM1MxUzETMVMxUzESM1MzUzNTMVMxEzFSMVIxUjNSM1IzUjNSMRIzUzNTc1MxUjFSM1MzUzFSMVIzVgQEAgQCBAICBAQEBAIKBAQCAgQCCAQCBAwEAgQAIAIED+oCAgAWBAICBA/qBAICAgICAgASBAIIAgQCBAIEAgQAAAAQAgASABgAFgAAcAABM1IRUjFSE1QAFAIP7AAUAgICAgAAEAIAEgAoABYAAHAAATNSEVIxUhNUACQCD9wAFAICAgIAAAAAAADACWAAEAAAAAAAEAFgAAAAEAAAAAAAIABwAWAAEAAAAAAAMAHAAdAAEAAAAAAAQAHgA5AAEAAAAAAAUADQBXAAEAAAAAAAYAHAAdAAMAAQQJAAEALABkAAMAAQQJAAIADgCQAAMAAQQJAAMAOACeAAMAAQQJAAQAPADWAAMAAQQJAAUAGgESAAMAAQQJAAYAOACeUHJvdG90eXBlIFBpeGVsIEdvdGhpY1JlZ3VsYXJQcm90b3R5cGVQaXhlbEdvdGhpYy1SZWd1bGFyUHJvdG90eXBlIFBpeGVsIEdvdGhpYyBSZWd1bGFyVmVyc2lvbiAxLjAwMABQAHIAbwB0AG8AdAB5AHAAZQAgAFAAaQB4AGUAbAAgAEcAbwB0AGgAaQBjAFIAZQBnAHUAbABhAHIAUAByAG8AdABvAHQAeQBwAGUAUABpAHgAZQBsAEcAbwB0AGgAaQBjAC0AUgBlAGcAdQBsAGEAcgBQAHIAbwB0AG8AdAB5AHAAZQAgAFAAaQB4AGUAbAAgAEcAbwB0AGgAaQBjACAAUgBlAGcAdQBsAGEAcgBWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAwAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByAAAAAwECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxB3VuaTAwMjEHdW5pMDAyMgd1bmkwMDIzB3VuaTAwMjQHdW5pMDAyNQd1bmkwMDI2B3VuaTAwMjcHdW5pMDAyOAd1bmkwMDI5B3VuaTAwMkEHdW5pMDAyQgd1bmkwMDJDB3VuaTAwMkQHdW5pMDAyRQd1bmkwMDJGB3VuaTAwMzAHdW5pMDAzMQd1bmkwMDMyB3VuaTAwMzMHdW5pMDAzNAd1bmkwMDM1B3VuaTAwMzYHdW5pMDAzNwd1bmkwMDM4B3VuaTAwMzkHdW5pMDAzQQd1bmkwMDNCB3VuaTAwM0MHdW5pMDAzRAd1bmkwMDNFB3VuaTAwM0YHdW5pMDA0MAd1bmkwMDQxB3VuaTAwNDIHdW5pMDA0Mwd1bmkwMDQ0B3VuaTAwNDUHdW5pMDA0Ngd1bmkwMDQ3B3VuaTAwNDgHdW5pMDA0OQd1bmkwMDRBB3VuaTAwNEIHdW5pMDA0Qwd1bmkwMDREB3VuaTAwNEUHdW5pMDA0Rgd1bmkwMDUwB3VuaTAwNTEHdW5pMDA1Mgd1bmkwMDUzB3VuaTAwNTQHdW5pMDA1NQd1bmkwMDU2B3VuaTAwNTcHdW5pMDA1OAd1bmkwMDU5B3VuaTAwNUEHdW5pMDA1Qgd1bmkwMDVDB3VuaTAwNUQHdW5pMDA1RQd1bmkwMDVGB3VuaTAwNjAHdW5pMDA2MQd1bmkwMDYyB3VuaTAwNjMHdW5pMDA2NAd1bmkwMDY1B3VuaTAwNjYHdW5pMDA2Nwd1bmkwMDY4B3VuaTAwNjkHdW5pMDA2QQd1bmkwMDZCB3VuaTAwNkMHdW5pMDA2RAd1bmkwMDZFB3VuaTAwNkYHdW5pMDA3MAd1bmkwMDcxB3VuaTAwNzIHdW5pMDA3Mwd1bmkwMDc0B3VuaTAwNzUHdW5pMDA3Ngd1bmkwMDc3B3VuaTAwNzgHdW5pMDA3OQd1bmkwMDdBB3VuaTAwN0IHdW5pMDA3Qwd1bmkwMDdEB3VuaTAwN0UHdW5pMDBBMQd1bmkwMEJGB3VuaTAwQzEHdW5pMDBDOQd1bmkwMENEB3VuaTAwRDEHdW5pMDBEMwd1bmkwMERBB3VuaTAwREMHdW5pMDBFMQd1bmkwMEU5B3VuaTAwRUQHdW5pMDBGMQd1bmkwMEYzB3VuaTAwRkEHdW5pMDBGQwd1bmkyMDEzB3VuaTIwMTQAAAAAAAEAAAAA) format('truetype'); font-display: swap; }
  :root {
    --bg: #000000;
    --fg: #f2f2f2;
    --muted: #8a8a8a;
    --line: rgba(255,255,255,0.14);
    --red: #ff2a1f;
    --dark: #262626;
    --sans: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
    --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    --pixel: 'Prototype Pixel Gothic', var(--mono);
    --pad: clamp(20px, 4vw, 56px);
    --top: calc(88px + env(safe-area-inset-top, 0px));
    color-scheme: dark;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-padding-top: env(safe-area-inset-top, 0px); }
  html.lenis, html.lenis body { height: auto; }
  .lenis.lenis-smooth { scroll-behavior: auto !important; }
  .lenis.lenis-stopped { overflow: hidden; }
  body {
    background: var(--bg); color: var(--fg);
    font-family: var(--sans); line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    transition: background-color .5s;
  }
  html.is-red body { background: var(--red); }
  a { color: inherit; text-decoration: none; }
  a:focus-visible, button:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

  /* ---------- the world: one canvas behind the whole page ---------- */
  #world { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100lvh; display: block; z-index: 0; }
  .vignette {
    position: fixed; inset: 0; z-index: 1; pointer-events: none;
    background:
      radial-gradient(ellipse 78% 72% at 50% 48%, rgba(0,0,0,0) 38%, rgba(0,0,0,.42) 70%, rgba(0,0,0,.9) 100%),
      linear-gradient(to bottom, rgba(0,0,0,.4) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 82%, rgba(0,0,0,.45) 100%);
    opacity: var(--vig, 1);
  }

  /* ---------- Nav ---------- */
  .nav {
    position: fixed; inset: 0 0 auto 0; z-index: 50;
    display: flex; align-items: center; justify-content: space-between;
    padding: calc(20px + env(safe-area-inset-top, 0px)) var(--pad) 20px;
    mix-blend-mode: difference;
    transition: opacity .4s;
  }
  .nav__logo img { height: 22px; width: auto; aspect-ratio: 142 / 31; display: block; transition: filter .5s; }   /* width known before the image loads */
  .nav__logo .fallback { font-weight: 600; letter-spacing: -0.02em; color: var(--red); font-size: 20px; }
  .nav ul { display: flex; gap: clamp(16px, 3vw, 40px); list-style: none; }
  .nav a { font-family: var(--mono); font-size: 12px; color: #fff; opacity: .75; transition: opacity .2s, color .5s; }
  .nav a:hover, .nav a:focus-visible { opacity: 1; color: var(--red); transition-duration: .15s; }
  .nav:hover, .nav:focus-within { mix-blend-mode: normal; }     /* so the hover orange is the real orange, not a blended one */
  html.is-end .nav a:hover, html.is-end .nav a:focus-visible { color: #000; }
  html.is-end .nav { mix-blend-mode: normal; }
  html.is-end .nav a { color: var(--dark); opacity: 1; }
  html.is-end .nav__logo img { filter: brightness(0) invert(.15); }
  html.is-end .nav__logo .fallback { color: var(--dark); }

  /* ---------- scroll track: empty chapters that give the camera its timeline ---------- */
  .track { position: relative; z-index: 2; }
  .ch { position: relative; height: var(--h); }

  /* overlays are fixed and faded in/out by the camera timeline */
  .gl .ov { position: fixed; inset: 0; z-index: 4; opacity: 0; visibility: hidden; pointer-events: none; }
  .ov.is-live a, .ov.is-live button, .ov.is-live input { pointer-events: auto; }

  /* hero */
  .ov--hero { display: flex; flex-direction: column; justify-content: flex-end; padding: 0 var(--pad) calc(48px + env(safe-area-inset-bottom, 0px)); }
  @media (max-width: 699px) {
    .ov--hero { padding-bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
    .ov--hero .hero__ctas { left: var(--pad); right: var(--pad); bottom: calc(24px + 36px + 14px + env(safe-area-inset-bottom, 0px)); flex-direction: row; align-items: stretch; gap: 10px; }
    .ov--hero .hero__ctas .touch { flex: 1; text-align: center; padding: 14px 10px; font-size: 11px; }
    .ov--hero .hero__ctas .touch--ghost { order: 2; }   /* Get in touch first, Simple site second */
  }
  /* the plain fallback page never scrolls sideways */
  html.no-gl, html.no-gl body { overflow-x: hidden; }
  .gl .ov--hero { opacity: 1; visibility: visible; }
  .ov--hero::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background:
      linear-gradient(to bottom, rgba(0,0,0,0) 48%, rgba(0,0,0,.85) 100%),
      linear-gradient(to right, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 55%);
  }
  .ov--hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .hero__copy { position: relative; max-width: 1100px; }
  .hero__copy h1 { font-weight: 400; font-size: clamp(30px, 5vw, 92px); line-height: 1; letter-spacing: -0.045em; white-space: nowrap; }
  .hero__copy p { margin-top: 18px; font-size: clamp(15px, 1.3vw, 20px); color: rgba(255,255,255,.8); white-space: nowrap; }
  .gl .hero__copy { opacity: 0; transform: translateY(14px); }
  .gl.is-loaded .hero__copy { animation: rise 1.1s cubic-bezier(.2,.7,.2,1) .35s forwards; }
  .play {
    margin-top: 28px; display: inline-flex; align-items: center; gap: 14px;
    font-family: var(--mono); font-size: 12px; letter-spacing: .04em; color: var(--fg);
    background: none; border: 0; padding: 0; cursor: pointer; text-align: left;
  }
  .play__ring {
    position: relative; width: 46px; height: 46px; border-radius: 50%;
    border: 1px solid rgba(255,255,255,.4); display: grid; place-items: center;
    transition: border-color .3s, background .3s;
  }
  .play__ring::after {
    content: ""; position: absolute; inset: -1px; border-radius: 50%; border: 1px solid var(--red);
    animation: ping 2.4s cubic-bezier(.2,.7,.2,1) infinite;
  }
  @keyframes ping { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
  .play__ring svg { width: 12px; height: 12px; margin-left: 2px; fill: currentColor; }
  .play:hover .play__ring { border-color: var(--red); background: rgba(255,42,31,.12); }
  .play small { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
  @keyframes rise { to { opacity: 1; transform: none; } }
  .hero__scroll {
    position: absolute; right: var(--pad); bottom: calc(48px + env(safe-area-inset-bottom, 0px));
    font-family: var(--mono); font-size: 11px; color: rgba(255,255,255,.7);
    display: flex; align-items: center; gap: 10px;
  }
  .hero__scroll span { display: block; width: 1px; height: 36px; background: rgba(255,255,255,.5); position: relative; overflow: hidden; }
  .hero__scroll span::after {
    content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 100%; background: var(--red);
    transform: translateY(-100%); animation: drip 1.8s ease-in-out infinite;
  }
  @keyframes drip { to { transform: translateY(100%); } }

  /* chapter headings (portfolio bottom-left, writings top-left) */
  .ov--bl { display: flex; flex-direction: column; justify-content: flex-end; padding: var(--top) var(--pad) calc(56px + env(safe-area-inset-bottom, 0px)); }
  .ov--bl::before { background: linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,0) 45%) !important; }
  .ov--head { padding: var(--top) var(--pad) var(--pad); }
  .ov--head::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(to bottom, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 34%);
  }
  .ov__head { position: relative; max-width: 440px; }
  .ov__tag { font-family: var(--mono); font-size: 12px; color: var(--muted); display: flex; gap: 16px; }
  .ov__tag b { color: var(--fg); font-weight: 500; }
  .ov__title { font-weight: 400; font-size: clamp(32px, 4.4vw, 64px); line-height: 1; letter-spacing: -0.04em; margin-top: 16px; }
  .ov__lede { margin-top: 14px; color: var(--muted); max-width: 34ch; font-size: 16px; }
  .filters { display: flex; gap: 8px; margin-top: 24px; flex-wrap: wrap; }
  .filters button {
    font-family: var(--mono); font-size: 12px;
    background: rgba(0,0,0,.4); color: var(--muted);
    border: 1px solid var(--line); border-radius: 999px;
    padding: 8px 16px; cursor: pointer; transition: color .2s, border-color .2s, background .2s;
  }
  .filters button:hover { color: var(--fg); border-color: rgba(255,255,255,.4); }
  .filters button[aria-pressed="true"] { background: var(--red); color: #0a0a0a; border-color: var(--red); }

  /* portfolio panels: real links pinned to points in the 3D world */
  .panels { list-style: none; }
  .gl .panels { position: fixed; inset: 0; z-index: 3; pointer-events: none; overflow: hidden; }
  .pnl { position: absolute; left: 0; top: 0; width: 244px; transform-origin: 0 0; opacity: 0; will-change: transform, opacity; contain: layout paint; }
  .pnl.is-live { pointer-events: auto; }
  /* dark card with a red stroke, label row, white logo, red bar */
  .pnl a {
    display: block; position: relative; padding: 13px 15px 15px; cursor: pointer;
    background: rgba(6,6,6,.88); border: 1px solid rgba(255,42,31,.7);
    transition: border-color .25s, background .25s, box-shadow .25s;
  }
  .pnl a::before, .pnl a::after { content: ""; position: absolute; width: 8px; height: 8px; pointer-events: none; }
  .pnl a::before { left: -5px; top: -5px; border-left: 1px solid var(--red); border-top: 1px solid var(--red); }
  .pnl a::after { right: -5px; bottom: -5px; border-right: 1px solid var(--red); border-bottom: 1px solid var(--red); }
  .pnl.is-lit a { border-color: var(--red); box-shadow: 0 0 22px rgba(255,42,31,.22); }
  .pnl a:hover, .pnl a:focus-visible { background: rgba(26,5,4,.92); border-color: var(--red); box-shadow: 0 0 28px rgba(255,42,31,.35); }
  .pnl__meta { display: flex; justify-content: space-between; font: 500 10px/1 var(--mono); color: var(--muted); letter-spacing: .04em; }
  .pnl__logo { display: flex; align-items: center; height: 42px; margin-top: 16px; }
  .pnl__logo svg, .pnl__logo img { display: block; height: 100%; width: auto; max-width: 212px; }
  .pnl__logo--alljoined { height: 25px; } .pnl__logo--sonilo { height: 27px; } .pnl__logo--hacktron { height: 23px; }
  .pnl__logo--stable, .pnl__logo--foundable { height: 35px; } .pnl__logo--paxos, .pnl__logo--sail { height: 45px; }
  .pnl__bar { display: block; width: 22px; height: 2px; background: var(--red); margin-top: 12px; transition: width .35s cubic-bezier(.2,.7,.2,1); }
  .pnl a:hover .pnl__bar, .pnl a:focus-visible .pnl__bar { width: 64px; }

  /* writings: cards mapped onto tower walls in perspective */
  .gl .signs { position: fixed; inset: 0; z-index: 3; pointer-events: none; overflow: hidden; }
  .sign {
    position: absolute; left: 0; top: 0; width: 520px; height: 320px; transform-origin: 0 0;
    display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: 30px;
    background: rgba(4,4,4,.95); border: 1px solid rgba(201,201,193,.5);
    -webkit-backface-visibility: hidden; backface-visibility: hidden;
    opacity: 0; transition: border-color .25s, background .25s; will-change: transform, opacity; contain: layout paint;
  }
  .sign.is-live { pointer-events: auto; }
  /* Portfolio landing (only from the nav): the screen on the lattice panel, styled like the Philosophy panel */
  .pshow {
    position: fixed; left: 0; top: 0; width: 1300px; height: 700px; transform-origin: 0 0; z-index: 3;
    display: flex; flex-direction: column; padding: 46px 56px 52px; gap: 30px;
    background: rgba(4,4,4,.95); border: 1px solid rgba(255,42,31,.6);
    opacity: 0; visibility: hidden; pointer-events: none; will-change: transform;
    -webkit-backface-visibility: hidden; backface-visibility: hidden;
    clip-path: inset(calc((1 - clamp(0, (var(--f, 0) - .3) / .7, 1)) * 50% - 12px) calc((1 - clamp(0, var(--f, 0) * 2.6, 1)) * 50% - 12px));
  }
  .pshow.is-on { opacity: 1; visibility: visible; }
  .pshow.is-live { pointer-events: auto; }
  .no-gl .pshow { display: none; }
  .pshow::before, .pshow::after { content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none; }
  .pshow::before { left: -10px; top: -10px; border-left: 2px solid var(--red); border-top: 2px solid var(--red); }
  .pshow::after { right: -10px; bottom: -10px; border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); }
  .pshow__meta { display: flex; justify-content: space-between; font: 400 15px/1 var(--mono); letter-spacing: .1em; color: var(--muted); opacity: clamp(0, calc(var(--l, 0) * 3), 1); }
  .pshow__grid { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: 16px; }
  .pshow__item {
    display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 22px;
    border: 1px solid rgba(201,201,193,.16); color: #fff; background: rgba(255,255,255,.012);
    opacity: clamp(0, calc(var(--l, 0) * 9 - var(--i)), 1);
    transform: translateY(calc((1 - clamp(0, calc(var(--l, 0) * 9 - var(--i)), 1)) * 14px));
    transition: border-color .2s, background .2s;
  }
  .pshow__item .pnl__logo { margin: 0; height: 44px; }
  .pshow__item .pnl__logo--alljoined, .pshow__item .pnl__logo--sonilo { height: 30px; }
  .pshow__item .pnl__logo--hacktron { height: 26px; }
  .pshow__item .pnl__logo--paxos, .pshow__item .pnl__logo--sail { height: 52px; }
  .pshow__item small { font: 400 13px/1 var(--mono); letter-spacing: .1em; color: var(--muted); }
  .pshow__item:hover, .pshow__item:focus-visible { border-color: var(--red); background: rgba(255,42,31,.08); }
  .pshow__item:hover small, .pshow__item:focus-visible small { color: var(--red); }


  /* philosophy: one panel on the first wall of the hole, mapped in perspective like the Learn cards */
  .philo {
    position: absolute; left: 0; top: 0; width: 1160px; height: 640px; transform-origin: 0 0;
    display: flex; flex-direction: column; gap: 22px; padding: 52px 60px;
    background: rgba(4,4,4,.95); border: 1px solid rgba(255,42,31,.6);
    -webkit-backface-visibility: hidden; backface-visibility: hidden; opacity: 0; visibility: hidden; will-change: transform, opacity;
  }
  .philo.is-on { visibility: visible; }
  .philo::before, .philo::after { content: ""; position: absolute; width: 22px; height: 22px; pointer-events: none; }
  .philo::before { left: -9px; top: -9px; border-left: 2px solid var(--red); border-top: 2px solid var(--red); }
  .philo::after { right: -9px; bottom: -9px; border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); }
  .philo__meta { display: flex; justify-content: space-between; font: 400 15px/1 var(--mono); letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
  .philo__meta .live { color: var(--red); }
  .philo__head { font-weight: 400; font-size: 76px; line-height: 1; letter-spacing: -0.04em; margin-bottom: 8px; }
  .philo__body { font-size: 30px; line-height: 1.3; letter-spacing: -0.01em; color: #e8e8e4; max-width: 30ch; }
  .philo__sign { flex-wrap: wrap; row-gap: 10px; margin-top: auto; font: 500 20px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--red); display: flex; align-items: center; gap: 18px; }
  .philo__sign i { display: block; width: 64px; height: 3px; background: var(--red); box-shadow: 0 0 12px rgba(255,42,31,.7); opacity: clamp(0, calc(var(--r, 1) * 1.2 - .1), 1); }
  .philo .w { display: inline-block; opacity: clamp(0, calc(var(--r, 1) * (var(--n) + 4) - var(--i)), 1); }
  .philo .w.is-dim { color: rgba(232,232,228,.5); }
  .philo .w.is-key { color: #fff; border-bottom: 2px solid var(--red); }
  @media (max-width: 699px) {
    .philo { width: 680px; height: 840px; padding: 44px 44px; gap: 20px; }
    .philo__head { font-size: 64px; }
    .philo__body { font-size: 30px; }
  }
  .no-gl .philo { position: relative; opacity: 1; visibility: visible; width: auto; height: auto; transform: none; }

  .sign__meta { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 13px; color: var(--muted); }
  .sign__meta .live { color: var(--red); }
  .sign h3, .sign .sign__t { margin: 0; font-weight: 400; font-size: 44px; line-height: 1.05; letter-spacing: -0.03em; }
  .sign__foot { font-family: var(--mono); font-size: 13px; color: var(--muted); transition: color .25s; }
  a.sign:hover, a.sign:focus-visible { border-color: var(--red); background: rgba(26,5,4,.88); }
  a.sign:hover .sign__foot, a.sign:focus-visible .sign__foot { color: var(--red); }
  .sign.pending h3 { color: #4a4a4a; }
  .sign.pending .sign__body::before {
    content: ""; display: block; height: 7px; width: 62%; margin-bottom: 18px;
    background: repeating-linear-gradient(90deg, #2e2e2e 0 7px, transparent 7px 12px);
  }

  /* follow */
  .ov--follow { display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 var(--pad); }
  .ov--follow::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(ellipse 60% 44% at 50% 50%, rgba(0,0,0,.6) 0%, rgba(0,0,0,0) 70%);
  }
  .ov--follow::before { opacity: calc(1 - var(--r, 0) * 1.4); }
  .follow__on { display: block; font: 400 12px/1 var(--mono); letter-spacing: .1em; color: var(--muted); margin-bottom: 22px; opacity: calc(1 - var(--m, 0) * 2.2); }
  .xlogo { width: 1em; height: 1em; fill: currentColor; flex: none; }
  .follow__on .xlogo { width: 14px; height: 14px; color: var(--fg); }
  .follow__url { position: absolute; left: 0; right: 0; top: 100%; display: block; margin-top: 18px;   /* pinned under the handle: never moves it */ font: 400 14px/1 var(--mono); letter-spacing: .06em; color: var(--muted); opacity: calc(1 - var(--m, 0) * 2.2); transition: color .2s; }
  .follow__url:hover, .follow__url:focus-visible { color: var(--red); }
  .xlink { display: inline-flex; align-items: center; gap: 7px; }
  .follow__cta { position: relative; transform: translateY(calc((1 - var(--a, 0)) * 36px)) scale(calc(.96 + var(--a, 0) * .04)); }
  .follow__cta h2 {
    font-weight: 400; font-family: var(--mono); font-size: 12px; color: var(--muted); margin-bottom: 22px; letter-spacing: .04em;
    opacity: calc(1 - var(--m, 0) * 2.2);
  }
  /* @PrototypeVC → Prototype: the @ and VC fold away, the name grows and turns dark gray on the red */
  .handle {
    display: inline-flex; align-items: baseline; justify-content: center;
    font-size: clamp(48px, 10vw, 160px); letter-spacing: -0.05em; line-height: .95;
    color: color-mix(in srgb, var(--dark) calc(var(--m, 0) * 100%), var(--fg));
    transform: scale(calc(1 + var(--m, 0) * var(--grow, .85)));
    transform-origin: 50% 55%;
  }
  /* extra room above and below so the @'s tail and the caps are never clipped while it folds away */
  .handle .fold { display: inline-block; overflow: hidden; white-space: nowrap; opacity: calc(1 - var(--m, 0) * 1.7); padding: .14em 0 .26em; margin: -.14em 0 -.26em; vertical-align: baseline; }
  .handle .fold--at { max-width: calc((1 - var(--m, 0)) * 1.2em); padding-left: calc((1 - var(--m, 0)) * .04em); }
  .handle .fold--vc { max-width: calc((1 - var(--m, 0)) * 1.5em); }
  .handle__core { display: inline-block; opacity: calc(1 - var(--k, 0) * 4); }
  .end__px { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; }
  .handle:hover { color: color-mix(in srgb, var(--dark) calc(var(--m, 0) * 100%), var(--red)); }

  /* the end: everything turns red, name and footer in dark gray */
  .ov--end { color: var(--dark); }
  .end__footer {
    position: absolute; left: 0; right: 0; bottom: 0;
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px;
    padding: 24px var(--pad) calc(24px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(38,38,38,.3);
    font-family: var(--mono); font-size: 12px; color: var(--dark);
    opacity: var(--ft, 0);
  }
  .end__footer .cities { display: flex; gap: 18px; }
  .end__score {
    position: absolute; right: var(--pad); bottom: calc(86px + env(safe-area-inset-bottom, 0px));
    font-family: var(--mono); font-size: 12px; letter-spacing: .04em; color: var(--dark);
    opacity: var(--ft, 0);
  }
  .end__score b { font-weight: 500; font-variant-numeric: tabular-nums; }
  .end__score[hidden] { display: none; }
  /* red crosshair while the pointer is over a drone */
  body.is-aim { cursor: pointer; }
  .end__footer a { text-decoration: underline; text-decoration-color: rgba(38,38,38,.35); text-underline-offset: 4px; }
  .end__footer a:hover { text-decoration-color: var(--dark); }

  /* HUD */
  .hud { position: fixed; inset: 0; z-index: 5; pointer-events: none; font-family: var(--mono); font-size: 11px; color: var(--muted); opacity: var(--hud, 0); }
  .hud__rail { position: absolute; right: var(--pad); top: 50%; transform: translateY(-50%); width: 1px; height: 46vh; background: var(--line); }
  .hud__rail i { position: absolute; left: 0; top: 0; width: 1px; height: calc(var(--p, 0) * 100%); background: var(--red); }
  .hud__rail span { position: absolute; right: 12px; transform: translateY(-50%); transition: color .3s; }
  .hud__rail span::after { content: ""; position: absolute; left: calc(100% + 6px); top: 50%; width: 7px; height: 1px; background: currentColor; }
  .hud__rail span.is-on { color: var(--red); }
  /* Get in touch (hero): sharp, bright, sits above the film controls */
  .hero__ctas { position: absolute; right: var(--pad); bottom: calc(24px + 36px + 14px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
  .hero__ctas .touch--ghost { padding: 11px 16px; font-size: 11px; }
  .touch {
    font: 500 12px/1 var(--mono); letter-spacing: .1em; color: #0a0a0a; display: inline-block; text-decoration: none;
    background: var(--red); border: 0; border-radius: 0; padding: 15px 22px; cursor: pointer;
    transition: background .2s, transform .2s;
  }
  /* secondary: switch to the simple site */
  .touch--ghost { background: rgba(0,0,0,.55); color: var(--fg); box-shadow: inset 0 0 0 1px rgba(242,242,242,.4); }
  .touch--ghost:hover, .touch--ghost:focus-visible { background: rgba(0,0,0,.7) !important; color: var(--red); box-shadow: inset 0 0 0 1px var(--red) !important; }
  .touch:hover { background: var(--red); box-shadow: 0 0 0 1px var(--red), 0 0 22px rgba(255,42,31,.5); transform: translateY(-1px); }
  .touch:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

  /* the ending: an email field under the logo, which collapses into a message */
  .signup {
    position: absolute; left: 50%; top: calc(50% + var(--logoH, 110px) / 2 + 44px);
    width: min(460px, 86vw); height: 54px; transform: translateX(-50%);
    display: flex; align-items: center; background: var(--dark); overflow: hidden;
    opacity: var(--ft, 0);
    transition: height .38s cubic-bezier(.7,0,.2,1), width .42s cubic-bezier(.7,0,.2,1) .34s, opacity .3s;   /* appears with no delay */
  }
  .signup input {
    flex: 1; min-width: 0; height: 100%; background: transparent; border: 0; outline: 0;
    padding: 0 18px; color: #f2f2f2; font: 400 13px var(--mono); letter-spacing: .1em; text-transform: uppercase;
  }
  .signup input::placeholder { color: #8a8a8a; }
  .signup button {
    flex: none; width: 34px; height: 34px; margin-right: 10px; display: grid; place-items: center;
    background: var(--red); border: 0; border-radius: 0; cursor: pointer; color: #0a0a0a; transition: background .2s;
  }
  .signup button:hover { background: var(--red); box-shadow: 0 0 16px rgba(255,42,31,.55); }
  .signup button svg { width: 15px; height: 15px; fill: currentColor; }
  .signup:focus-within { box-shadow: 0 0 0 1px rgba(242,242,242,.5); }
  .signup.is-error { animation: nudge .38s; box-shadow: 0 0 0 1px #0a0a0a; }
  @keyframes nudge { 20%, 60% { transform: translateX(calc(-50% - 6px)); } 40%, 80% { transform: translateX(calc(-50% + 6px)); } }
  .signup.is-sent { height: 2px; width: 0; opacity: 0; pointer-events: none; transition: height .38s cubic-bezier(.7,0,.2,1), width .42s cubic-bezier(.7,0,.2,1) .34s, opacity .3s .7s; }   /* the collapse keeps its pause */
  .signup__done {
    position: absolute; left: 50%; top: calc(50% + var(--logoH, 110px) / 2 + 40px); transform: translateX(-50%);
    font-family: var(--sans); font-weight: 500; font-size: clamp(20px, 2.6vw, 38px); color: var(--dark); white-space: pre; letter-spacing: -0.01em; text-transform: uppercase;
    pointer-events: none;
  }
  .signup__done span { display: inline-block; white-space: pre; opacity: 0; }
  .signup__done span.is-in { opacity: 1; }
  .signup__done span.is-px { font-family: var(--pixel); font-weight: 400; text-transform: none; }
  .signup__done span.is-jit { transform: translate(var(--jx, 0), var(--jy, 0)); }
  @keyframes pxin { 0% { opacity: .9; } 25% { opacity: 0; } 50% { opacity: 1; color: #000; } 75% { opacity: .4; } 100% { opacity: 1; } }
  .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

  /* headline glitch: letters flicker into the pixel gothic font */
  .gw { display: inline-block; white-space: nowrap; }
  .gch { display: inline-block; white-space: pre; text-align: center; }   /* fixed width set from script: the pixel glyph swaps in without moving anything */
  .gch.is-px { font-family: var(--pixel); font-weight: 400; letter-spacing: 0; }
  .gch.is-shift { transform: translate(var(--gx, 0), var(--gy, 0)); }
  .gch.is-red { color: var(--red); }

  /* film speed: a small slider, top centre, while the film plays */
  .speed {
    position: fixed; left: 50%; top: calc(22px + env(safe-area-inset-top, 0px)); transform: translate(-50%, -6px); z-index: 60;   /* above the nav bar (50), which spans the full width */
    display: flex; align-items: center; gap: 10px; padding: 8px 14px;
    font: 400 10px/1 var(--mono); letter-spacing: .08em; color: var(--muted);
    background: rgba(0,0,0,.62); border: 1px solid var(--line);
    opacity: 0; visibility: hidden; transition: opacity .3s, transform .3s, visibility .3s;
  }
  .speed.is-on { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
  .speed b { min-width: 34px; text-align: right; color: var(--red); font-weight: 400; font-variant-numeric: tabular-nums; }
  .speed input { -webkit-appearance: none; appearance: none; width: 120px; height: 14px; background: transparent; cursor: pointer; margin: 0; }
  .speed input::-webkit-slider-runnable-track { height: 1px; background: rgba(242,242,242,.35); }
  .speed input::-moz-range-track { height: 1px; background: rgba(242,242,242,.35); }
  .speed input::-webkit-slider-thumb { -webkit-appearance: none; width: 10px; height: 10px; margin-top: -4.5px; background: var(--red); border: 0; border-radius: 0; }
  .speed input::-moz-range-thumb { width: 10px; height: 10px; background: var(--red); border: 0; border-radius: 0; }
  .speed input:focus-visible { outline: 1px solid var(--red); outline-offset: 4px; }
  html.is-end .speed { background: rgba(38,38,38,.08); border-color: rgba(38,38,38,.3); color: var(--dark); }
  html.is-end .speed input::-webkit-slider-runnable-track { background: rgba(38,38,38,.5); }
  html.is-end .speed b { color: var(--dark); }

  /* film controls: labelled on the hero, tiny pixel icons for the rest of the film (always bottom-right) */
  .player {
    position: fixed; right: var(--pad); bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 6;
    display: flex; gap: 6px; opacity: var(--pl, 0); visibility: hidden; transition: opacity .4s, bottom .5s;
  }
  .player.is-on { visibility: visible; }
  .player button {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 36px;
    font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--fg);
    background: rgba(0,0,0,.62); border: 1px solid var(--line); border-radius: 999px; padding: 0 14px; cursor: pointer;
    transition: border-color .25s, color .5s, background .5s, height .35s, padding .35s;
  }
  .player button:hover { border-color: var(--red); color: var(--red); }
  .player .pxi { width: 11px; height: 11px; fill: currentColor; flex: none; image-rendering: pixelated; }
  .player .lbl { display: inline-block; max-width: 90px; overflow: hidden; white-space: nowrap; transition: max-width .35s, opacity .25s; }
  .player.is-mini button { height: 28px; width: 28px; padding: 0; gap: 0; }
  .player.is-mini .lbl { max-width: 0; opacity: 0; }
  .player.is-mini .pxi { width: 10px; height: 10px; }
  html.is-end .player { bottom: calc(112px + env(safe-area-inset-bottom, 0px)); }
  html.is-end .player button { color: var(--dark); background: rgba(38,38,38,.06); border-color: rgba(38,38,38,.3); }

  /* anomaly tag pinned to the far node */
  .anomaly {
    position: fixed; left: 0; top: 0; z-index: 3; pointer-events: none; opacity: 0;
    display: grid; gap: 3px; padding: 6px 9px 6px 20px; margin: -60px 0 0 14px;
    font-family: var(--mono); font-size: 10px; letter-spacing: .1em; color: var(--red);
    border-left: 1px solid var(--red); background: linear-gradient(90deg, rgba(255,42,31,.14), rgba(255,42,31,0));
  }
  .anomaly i { position: absolute; left: 7px; top: 9px; width: 6px; height: 6px; background: var(--red); box-shadow: 0 0 8px var(--red); }
  .anomaly b { font-weight: 400; color: rgba(255,42,31,.65); }

  /* ---------- loader: a small wireframe tower builds itself, floating in black ---------- */
  .loader { position: fixed; inset: 0; z-index: 100; background: #000; overflow: hidden; display: none; }
  .gl .loader { display: block; }
  .no-gl .loader { display: none; }
  .loader__gl { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .loader__ui {
    position: absolute; left: 50%; top: 60%; transform: translateX(-50%);   /* just under the tower, both centred */
    width: min(200px, 60vw); display: grid; gap: 10px; justify-items: center;
  }
  .loader__logo { width: 100%; height: auto; display: block; margin-bottom: 4px; }
  .loader__logo .ld-dim { fill: #262626; }
  .loader__logo .ld-lit { fill: #d6d6ce; }
  .loader__logo .ld-p { transition: fill .25s; }
  .loader__logo .ld-p.is-red { fill: var(--red); }
  .loader__row { width: 100%; display: flex; justify-content: space-between; font: 400 9px/1 var(--mono); letter-spacing: .1em; color: var(--muted); }
  .loader__row b { color: var(--fg); font-weight: 400; font-variant-numeric: tabular-nums; }
  .loader__bar { position: relative; width: 100%; height: 1px; background: rgba(255,255,255,.12); overflow: hidden; }
  .loader__bar i { position: absolute; inset: 0; background: var(--red); transform-origin: left; transform: scaleX(var(--p, 0)); box-shadow: 0 0 6px rgba(255,42,31,.8); }
  /* exit: the tower and logo fade over black, then the black breaks into pixels that drop away */
  .loader__px { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .loader__gl, .loader__ui { transition: opacity .28s ease; }
  .loader.is-done { background: transparent; pointer-events: none; }
  .loader.is-done .loader__gl, .loader.is-done .loader__ui { opacity: 0; }
  html.is-loading, html.is-loading body { overflow: hidden; }

  /* ---------- without WebGL: a plain, readable page ---------- */
  .no-gl #world, .no-gl .vignette, .no-gl .hud { display: none; }
  .no-gl .ch { height: auto; }
  .no-gl .ov { position: relative; }
  .no-gl .ov--hero { min-height: 100vh; }
  .no-gl .panels, .no-gl .signs { display: grid; gap: 14px; padding: 0 var(--pad) 96px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
  .no-gl .pnl, .no-gl .sign { position: relative; opacity: 1; width: auto; height: auto; }
  .no-gl .ov--follow { min-height: 70vh; }
  .no-gl .ov--end { min-height: 100vh; background: var(--red); }
  .no-gl .wordmark, .no-gl .end__footer { opacity: 1; transform: none; }

  @media (max-width: 860px) {
    .pnl { width: 184px; }
    .pnl .pnl__logo { transform: scale(.82); transform-origin: left center; }   /* floating cards only (not the screen, the simple site or profiles) */
    .ov__lede { display: none; }
    .hud__rail { display: none; }
    .hero__copy h1, .hero__copy p { white-space: normal; }
    .ov--bl { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
    html.is-end .player { bottom: calc(132px + env(safe-area-inset-bottom, 0px)); }
    .end__score { bottom: calc(112px + env(safe-area-inset-bottom, 0px)); }
  }
  @media (max-width: 520px) {
    .nav ul { gap: 11px; }
    .nav a { font-size: 11px; }
    .nav__logo .fallback { font-size: 17px; }
    .hero__scroll { display: none; }
    .end__footer .cities { gap: 10px; }
    .hud__rail { height: 34vh; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .gl .hero__copy { opacity: 1; transform: none; }
    .loader.is-done { animation: none; display: none; }
  }

  /* ================= Simple site ================= */
  #simple { display: none; }
  html.is-simple #simple, html.no-gl #simple { display: block; }
  html.is-simple body > *:not(#simple):not(script):not(.prof):not(.mnav):not(.mbtn):not(.tdown):not(.tdown-pop), html.no-gl body > *:not(#simple):not(script):not(.prof):not(.mnav):not(.mbtn) { display: none !important; }
  html.is-simple, html.is-simple body, html.no-gl, html.no-gl body { overflow-x: hidden; overflow-y: auto; height: auto; background: #000; scroll-behavior: smooth; }
  .sx { color: var(--fg); font-family: var(--sans); }
  .sx-wrap { width: min(1200px, 100% - 2 * var(--pad)); margin-inline: auto; }
  .sx-head {
    position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 24px;
    padding: calc(14px + env(safe-area-inset-top, 0px)) var(--pad) 14px; background: rgba(0,0,0,.82); border-bottom: 1px solid var(--line);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  }
  .sx-head__logo { display: block; margin-right: auto; }
  .sx-logo { display: block; width: 100%; height: auto; fill: #d6d6ce; }
  .sx-logo__p { fill: var(--red); }
  .sx-logo--s { width: 104px; }
  .sx-head ul { display: flex; gap: clamp(14px, 2.6vw, 34px); list-style: none; }
  .sx-head a { font: 400 12px/1 var(--mono); color: #fff; opacity: .78; transition: color .15s, opacity .15s; }
  .sx-head a:hover, .sx-head a:focus-visible { opacity: 1; color: var(--red); }
  .sx-film { font: 500 11px/1 var(--mono); letter-spacing: .1em; color: var(--fg); background: none; border: 1px solid var(--line); padding: 10px 14px; cursor: pointer; }
  .sx-film:hover, .sx-film:focus-visible { border-color: var(--red); color: var(--red); }
  html.no-gl .sx-film { display: none; }
  .sx-tag { font: 400 12px/1 var(--mono); letter-spacing: .06em; color: var(--muted); margin-bottom: 18px; }
  .sx-tag b { color: var(--fg); font-weight: 500; margin-right: 10px; }
  .sx h1, .sx .sx-h1 { margin: 0;  font-weight: 400; font-size: clamp(40px, 6.4vw, 96px); line-height: .98; letter-spacing: -0.045em; max-width: 11ch; }
  .sx h2 { font-weight: 400; font-size: clamp(32px, 4.4vw, 64px); line-height: 1; letter-spacing: -0.04em; }
  .sx-lede { margin-top: 20px; max-width: 48ch; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.5; color: rgba(242,242,242,.75); }
  .sx-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
  .sx-btn { font: 500 12px/1 var(--mono); letter-spacing: .1em; padding: 16px 22px; background: var(--red); color: #0a0a0a; border: 1px solid var(--red); transition: box-shadow .2s, color .2s, background .2s; }
  .sx-btn:hover, .sx-btn:focus-visible { box-shadow: 0 0 22px rgba(255,42,31,.45); }
  .sx-btn--ghost { background: none; color: var(--fg); border-color: var(--line); }
  .sx-btn--ghost:hover, .sx-btn--ghost:focus-visible { border-color: var(--red); color: var(--red); box-shadow: none; }
  /* hero */
  .sx-hero { position: relative; min-height: min(92vh, 900px); display: grid; align-items: center; overflow: hidden; border-bottom: 1px solid var(--line); }
  .sx-hero__copy { position: relative; z-index: 1; padding: 80px 0; }
  .sx-hero__art { position: absolute; inset: 0 0 0 auto; width: min(52vw, 760px); pointer-events: none; }
  .sx-hero__gl { position: absolute; inset: 0; width: 100%; height: 100%; display: none; }
  .sx-hero__art.has-gl .sx-hero__gl { display: block; }
  .sx-hero__art.has-gl .sx-tower { display: none; }
  .sx-tower { position: absolute; right: 4%; top: 50%; transform: translateY(-50%); width: 92%; height: auto; }
  /* sections */
  .sx-sec { position: relative; padding: clamp(80px, 12vw, 150px) 0; border-bottom: 1px solid var(--line); }
  .sx-headrow { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px; }
  .sx-filters { display: flex; gap: 8px; }
  .sx-filters button { font: 400 12px/1 var(--mono); color: var(--fg); background: none; border: 1px solid var(--line); border-radius: 999px; padding: 10px 14px; cursor: pointer; }
  .sx-filters button[aria-pressed="true"] { background: var(--red); border-color: var(--red); color: #0a0a0a; }
  .sx-filters button:hover { border-color: var(--red); }
  .sx-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; margin-top: 46px; }
  .sx-grid li { transition: opacity .3s; }
  .sx-grid li.is-dim { opacity: .2; }
  .sx-grid a { position: relative; display: flex; flex-direction: column; gap: 26px; padding: 16px 18px 20px; min-height: 170px; background: rgba(6,6,6,.9); border: 1px solid rgba(255,42,31,.55); transition: background .2s, border-color .2s, box-shadow .2s; }
  .sx-grid a::before, .sx-grid a::after { content: ""; position: absolute; width: 9px; height: 9px; }
  .sx-grid a::before { left: -5px; top: -5px; border-left: 1px solid var(--red); border-top: 1px solid var(--red); }
  .sx-grid a::after { right: -5px; bottom: -5px; border-right: 1px solid var(--red); border-bottom: 1px solid var(--red); }
  .sx-grid a:hover, .sx-grid a:focus-visible { background: rgba(26,5,4,.95); border-color: var(--red); box-shadow: 0 0 26px rgba(255,42,31,.3); }
  .sx-grid .pnl__logo { margin: auto 0; height: 34px; }
  .sx-grid .pnl__logo--alljoined, .sx-grid .pnl__logo--sonilo { height: 22px; } .sx-grid .pnl__logo--hacktron { height: 25px; }
  .sx-grid .pnl__logo--sail { height: 40px; } .sx-grid .pnl__logo--paxos { height: 64px; }
  .sx-grid .pnl__bar { margin-top: 0; }
  .sx-artrow { margin-top: clamp(60px, 9vw, 110px); }
  .sx-art { display: block; width: 100%; height: auto; overflow: visible; }
  /* wireframe lines draw themselves when their section scrolls into view */
  .sx-art .ln { fill: none; stroke: #c9c9c1; stroke-width: 1; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
  .sx-art .ln--dim { stroke: rgba(201,201,193,.35); }
  .sx-art .ln--red { stroke: var(--red); }
  .is-in .sx-art .ln { animation: sxdraw 1.1s cubic-bezier(.6,0,.2,1) forwards; animation-delay: calc(var(--d) * 45ms); }
  @keyframes sxdraw { to { stroke-dashoffset: 0; } }
  .sx-scan { fill: var(--red); opacity: 0; }
  .is-in .sx-scan { animation: sxscan 6s linear 1.6s infinite; }
  @keyframes sxscan { 0% { transform: translateX(0); opacity: .9; } 100% { transform: translateX(1198px); opacity: .9; } }
  .sx-net .ln { stroke-width: 1.3; }
  .is-in .sx-net .ln { animation-duration: .7s; animation-delay: calc(var(--d) * 220ms); }
  .sx-node { fill: #000; stroke: #c9c9c1; stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; }
  .sx-node--core { fill: var(--red); stroke: var(--red); }
  .is-in .sx-node { animation: sxnode 2.4s ease-in-out forwards, sxpulse 2.6s ease-in-out infinite; animation-delay: calc(var(--d) * 220ms + 300ms), calc(var(--d) * 220ms + 2.7s); }
  @keyframes sxnode { 0% { opacity: 0; } 20% { opacity: 1; fill: var(--red); stroke: var(--red); } 100% { opacity: 1; } }
  @keyframes sxpulse { 0%, 100% { fill: #000; } 50% { fill: var(--red); } }
  .sx-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
  .sx-body { margin-top: 22px; max-width: 34ch; font-size: clamp(18px, 1.7vw, 24px); line-height: 1.4; color: #e8e8e4; }
  .sx-body .dim { color: rgba(232,232,228,.5); }
  .sx-body u { text-decoration: none; border-bottom: 2px solid var(--red); }
  .sx-sign { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 40px; font: 500 13px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
  .sx-sign i { display: block; width: 56px; height: 2px; background: var(--red); }
  .sx-learn { display: grid; grid-template-columns: .8fr 1.2fr; gap: 24px; margin-top: 46px; align-items: stretch; }
  .sx-learn__art { border: 1px solid var(--line); overflow: hidden; min-height: 260px; display: grid; }
  .sx-tunnel { width: 100%; height: 100%; }
  .sx-tun-diag { stroke: rgba(201,201,193,.25); stroke-width: 1; vector-effect: non-scaling-stroke; fill: none; }
  .sx-tun { fill: none; stroke: #c9c9c1; stroke-width: 1; vector-effect: non-scaling-stroke; transform-box: fill-box; transform-origin: 300px 200px; transform: scale(.02); opacity: 0;
    animation: sxtun 7.2s linear infinite; animation-delay: calc(var(--k) * -0.8s); }
  @keyframes sxtun { 0% { transform: scale(.02); opacity: 0; } 15% { opacity: .9; } 100% { transform: scale(1.15); opacity: 0; } }
  .sx-tun:nth-child(3n) { stroke: var(--red); }
  .sx-tun-core { fill: var(--red); animation: sxpulse 2s ease-in-out infinite; }
  .sx-cards { display: grid; gap: 14px; }
  .sx-cards .sign { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 20px 22px; background: rgba(6,6,6,.9); border: 1px solid var(--line); width: auto; height: auto; transform: none; opacity: 1; visibility: visible; }
  .sx-cards a.sign { border-color: rgba(255,42,31,.55); }
  .sx-cards a.sign:hover, .sx-cards a.sign:focus-visible { border-color: var(--red); background: rgba(26,5,4,.95); }
  .sx-cards .sign h3, .sx-cards .sign .sign__t { font-size: clamp(20px, 2vw, 28px); font-weight: 400; letter-spacing: -0.02em; }
  .sx-cards .sign__meta, .sx-cards .sign__foot { font: 400 11px/1 var(--mono); letter-spacing: .08em; color: var(--muted); display: flex; justify-content: space-between; }
  .sx-cards .sign__meta .live { color: var(--red); }
  .sx-cards .pending h3 { color: var(--muted); }
  /* contact */
  .sx-contact { text-align: center; background: var(--red); color: var(--dark); border-bottom: 0; }
  .sx-contact .sx-wrap { display: grid; justify-items: center; gap: 30px; }
  .sx-contact .sx-logo { width: min(640px, 82vw); fill: var(--dark); }
  .sx-contact .sx-logo__p { fill: var(--dark); }
  .sx-follow { font: 400 14px/1 var(--mono); letter-spacing: .08em; }
  .sx-follow a { text-decoration: underline; text-underline-offset: 4px; }
  .sx-signup { display: flex; align-items: center; width: min(460px, 86vw); height: 54px; background: var(--dark); overflow: hidden; transition: height .38s cubic-bezier(.7,0,.2,1), width .42s cubic-bezier(.7,0,.2,1) .34s, opacity .3s .7s; }
  .sx-signup input { flex: 1; min-width: 0; height: 100%; background: none; border: 0; outline: 0; padding: 0 18px; color: #f2f2f2; font: 400 13px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
  .sx-signup input::placeholder { color: #8a8a8a; }
  .sx-signup button { flex: none; width: 34px; height: 34px; margin-right: 10px; display: grid; place-items: center; background: var(--red); border: 0; cursor: pointer; color: #0a0a0a; }
  .sx-signup button svg { width: 15px; height: 15px; fill: currentColor; }
  .sx-signup.is-error { animation: sxnudge .38s; }
  @keyframes sxnudge { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
  .sx-signup.is-sent { height: 2px; width: 0; opacity: 0; pointer-events: none; }
  .sx-done { min-height: 1.2em; font: 500 clamp(20px, 2.6vw, 34px)/1.1 var(--sans); letter-spacing: -0.01em; text-transform: uppercase; color: var(--dark); white-space: pre; }
  .sx-done span { display: inline-block; white-space: pre; }
  .sx-done span.is-px { font-family: var(--pixel); }
  .sx-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; padding: 26px 0 calc(26px + env(safe-area-inset-bottom, 0px)); font: 400 12px/1 var(--mono); color: var(--muted); }
  .sx-foot .cities { display: flex; gap: 16px; }
  @media (max-width: 860px) {
    .sx-hero__art { position: relative; inset: auto; width: 100%; height: 320px; order: -1; }
    .sx-hero { display: flex; flex-direction: column; min-height: 0; }
    .sx-hero__copy { padding: 10px 0 70px; }
    .sx-split, .sx-learn { grid-template-columns: 1fr; }
    .sx-split__art { max-width: 420px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .is-in .sx-art .ln { animation-duration: .01s; animation-delay: 0s; }
    .sx-tun, .is-in .sx-scan, .is-in .sx-node, .sx-tun-core { animation: none; } .sx-tun { opacity: .5; transform: scale(.5); }
    html.is-simple, html.no-gl { scroll-behavior: auto; }
  }

  /* simple site: 3D scenes replace the drawings when 3D is available */
  .sx-3d { display: none; width: 100%; }
  .has-3d > .sx-3d { display: block; }
  .has-3d > .sx-art { display: none; }
  .sx-3d--band { height: clamp(260px, 30vw, 420px); }
  .sx-3d--square { aspect-ratio: 1 / 1; height: auto; }
  .sx-3d--fill { height: 100%; min-height: 320px; }
  .sx-artrow.has-3d { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  /* the film's own hero, living inside the simple page */
  .sx-hero.has-film { display: block; height: min(calc(100vh - 62px), 980px); min-height: 520px; }   /* fills the first screen under the header */
  .sx-hero.has-film > .sx-hero__copy, .sx-hero.has-film > .sx-hero__art { display: none; }
  .sx-hero.has-film > #world { position: absolute; inset: 0; width: 100%; height: 100%; display: block !important; }
  .sx-hero.has-film > .ov { position: absolute; inset: 0; display: flex !important; }
  .sx-hero.has-film h1, .sx-hero.has-film .sx-h1 { font-size: clamp(30px, 5vw, 92px); line-height: 1; letter-spacing: -0.045em; max-width: none; }   /* the film's own sizing, not the simple site's */
  @media (max-width: 860px) { .sx-hero.has-film { height: calc(100svh - 62px); } }

  /* company profile: opens from any logo (film cards, portfolio screen, simple site) */
  .prof { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 20px; visibility: hidden; pointer-events: none; }
  .prof.is-open { visibility: visible; pointer-events: auto; }
  .prof__bg { position: absolute; inset: 0; background: rgba(0,0,0,.72); opacity: 0; transition: opacity .35s; }
  .prof.is-open .prof__bg { opacity: 1; }
  .prof__card {
    position: relative; width: min(600px, 100%); padding: 30px 34px 26px; display: grid; gap: 22px;
    background: rgba(4,4,4,.97); border: 1px solid rgba(255,42,31,.65); color: var(--fg);
    transform-origin: 0 0; transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .3s; opacity: 0;
  }
  .prof.is-open .prof__card { opacity: 1; }
  .prof__card::before, .prof__card::after { content: ""; position: absolute; width: 18px; height: 18px; pointer-events: none; }
  .prof__card::before { left: -7px; top: -7px; border-left: 2px solid var(--red); border-top: 2px solid var(--red); }
  .prof__card::after { right: -7px; bottom: -7px; border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); }
  .prof__meta { display: flex; justify-content: space-between; padding-right: 34px; font: 400 12px/1 var(--mono); letter-spacing: .1em; color: var(--muted); }
  .prof__meta .sec { color: var(--red); }
  .prof__logo { height: 70px; display: flex; align-items: center; }
  .prof__logo svg { height: 100%; width: auto; max-width: 100%; display: block; }
  .prof__logo--alljoined, .prof__logo--sonilo { height: 46px; } .prof__logo--hacktron { height: 40px; }
  .prof__logo--stable, .prof__logo--foundable { height: 60px; }
  .prof__desc { font-size: clamp(17px, 1.8vw, 21px); line-height: 1.45; color: #e8e8e4; }
  .prof__links { display: flex; flex-wrap: wrap; gap: 10px; }
  .prof__links a { display: inline-flex; align-items: center; gap: 8px; font: 500 12px/1 var(--mono); letter-spacing: .08em; padding: 12px 16px; border: 1px solid var(--line); color: var(--fg); transition: border-color .2s, color .2s; }
  .prof__links a.primary { background: var(--red); border-color: var(--red); color: #0a0a0a; }
  .prof__links a:hover, .prof__links a:focus-visible { border-color: var(--red); color: var(--red); }
  .prof__links a.primary:hover, .prof__links a.primary:focus-visible { color: #0a0a0a; box-shadow: 0 0 20px rgba(255,42,31,.45); }
  .prof__nav { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--line); font: 400 12px/1 var(--mono); color: var(--muted); }
  .prof__nav button, .prof__x { font: 400 12px/1 var(--mono); letter-spacing: .06em; color: var(--fg); background: none; border: 0; padding: 6px 0; cursor: pointer; }
  .prof__nav button:hover, .prof__nav button:focus-visible, .prof__x:hover, .prof__x:focus-visible { color: var(--red); }
  .prof__x { position: absolute; right: 22px; top: 22px; font-size: 22px; line-height: 1; padding: 4px 6px; }
  @media (prefers-reduced-motion: reduce) { .prof__card { transition: opacity .2s; } }
  /* simple site: six writings in two columns, the X line in the contact block */
  .sx-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sx-follow { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; }
  .sx-follow .xlogo { width: 14px; height: 14px; }
  @media (max-width: 860px) { .sx-cards { grid-template-columns: 1fr; } }

  /* the logo screen: bigger logos, six per page, arrows inside the screen */
  .pshow__grid { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 18px; }
  .pshow__item.is-off { display: none; }
  .pshow__item small { font-size: 15px; }
  .pshow__bar { display: flex; align-items: center; justify-content: center; gap: 28px; font: 400 18px/1 var(--mono); letter-spacing: .1em; color: var(--muted); opacity: clamp(0, calc(var(--l, 0) * 3), 1); }
  .pshow__bar button { width: 56px; height: 44px; display: grid; place-items: center; font: 400 22px/1 var(--mono); color: var(--fg); background: none; border: 1px solid rgba(201,201,193,.3); cursor: pointer; transition: border-color .2s, color .2s; }
  .pshow__bar button:hover, .pshow__bar button:focus-visible { border-color: var(--red); color: var(--red); }
  .pshow__bar button:disabled { opacity: .3; cursor: default; }
  @media (max-width: 699px) {
    .pshow { width: 760px; height: 1040px; padding: 44px 40px 40px; gap: 26px; }
    .pshow__grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 1fr); gap: 16px; }
    .pshow__meta { font-size: 20px; }
    .pshow__item small { font-size: 18px; }
    .pshow__bar { font-size: 24px; } .pshow__bar button { width: 76px; height: 60px; font-size: 30px; }
  }
  /* profile: the X handle with a small pixel X */
  .prof__links a.xbtn { gap: 9px; }
  .pxx { width: 13px; height: 13px; fill: currentColor; flex: none; }

  /* logo screen: each logo is the centred background of a fixed slot, sized by height (--lh), so logos and labels line up */
  .pshow__item .pnl__logo { display: block !important; height: 92px !important; width: 100%; margin: 0;
    background: var(--logo) center / auto var(--lh, 60px) no-repeat; }
  .pshow__item .pnl__logo--alljoined, .pshow__item .pnl__logo--sonilo { --lh: 38px; }
  .pshow__item .pnl__logo--hacktron { --lh: 32px; }
  .pshow__item .pnl__logo--paxos, .pshow__item .pnl__logo--sail { --lh: 68px; }
  .pshow__item .pnl__logo--stable, .pshow__item .pnl__logo--foundable { --lh: 52px; }
  @media (max-width: 699px) {
    .pshow__item .pnl__logo { height: 108px !important; --lh: 72px; }
    .pshow__item .pnl__logo--alljoined, .pshow__item .pnl__logo--sonilo { --lh: 46px; }
    .pshow__item .pnl__logo--hacktron { --lh: 38px; }
    .pshow__item .pnl__logo--paxos, .pshow__item .pnl__logo--sail { --lh: 86px; }
    .pshow__item .pnl__logo--stable, .pshow__item .pnl__logo--foundable { --lh: 64px; }
  }
  /* turning a page on the logo screen: a short glitch, not a slide */
  .pshow__grid.is-glitch { animation: pgGlitch .42s steps(1, end); }
  @keyframes pgGlitch {
    0%   { transform: translateX(-10px); clip-path: inset(0 0 58% 0); filter: drop-shadow(6px 0 rgba(255,42,31,.95)); }
    14%  { transform: translateX(12px) skewX(-3deg); clip-path: inset(38% 0 22% 0); filter: drop-shadow(-6px 0 rgba(255,42,31,.95)); }
    28%  { transform: none; opacity: .15; clip-path: none; filter: none; }
    42%  { transform: translateX(-6px); opacity: 1; clip-path: inset(62% 0 0 0); filter: drop-shadow(5px 0 rgba(255,42,31,.9)); }
    56%  { transform: translateX(8px); clip-path: inset(0 0 70% 0); }
    70%  { transform: translateX(-3px); clip-path: inset(20% 0 40% 0); filter: drop-shadow(-3px 0 rgba(255,42,31,.8)); }
    84%  { transform: none; clip-path: none; filter: none; opacity: .7; }
    100% { transform: none; clip-path: none; filter: none; opacity: 1; }
  }
  .pshow__grid { touch-action: pan-y; }
  /* simple site: the 3D scenes can be turned by dragging */
  .sx-3d { cursor: grab; touch-action: pan-y; }
  .sx-3d.is-drag { cursor: grabbing; }
  /* ---------- phones: menu button + side menu ---------- */
  .mbtn, .mnav { display: none; }
  @media (max-width: 699px) {
    .nav ul { display: none; }
    .sx-head nav, .sx-film { display: none !important; }
    .mbtn {
      display: grid; place-content: center; gap: 4px; position: fixed; z-index: 70;
      top: calc(13px + env(safe-area-inset-top, 0px)); right: var(--pad); width: 40px; height: 40px;
      background: rgba(0,0,0,.55); border: 1px solid rgba(242,242,242,.35); cursor: pointer;
    }
    .mbtn i { display: block; width: 16px; height: 2px; background: var(--fg); }
    .mbtn i:nth-child(2) { width: 10px; justify-self: end; background: var(--red); }
    html.is-end .mbtn { background: rgba(38,38,38,.08); border-color: rgba(38,38,38,.35); }
    html.is-end .mbtn i { background: var(--dark); }
    .mnav { display: block; position: fixed; inset: 0; z-index: 85; visibility: hidden; pointer-events: none; }
    .mnav.is-open { visibility: visible; pointer-events: auto; }
    .mnav__bg { position: absolute; inset: 0; background: rgba(0,0,0,.6); opacity: 0; transition: opacity .3s; }
    .mnav.is-open .mnav__bg { opacity: 1; }
    .mnav__panel {
      position: absolute; top: 0; right: 0; bottom: 0; width: min(86vw, 360px); display: flex; flex-direction: column;
      padding: calc(18px + env(safe-area-inset-top, 0px)) 26px calc(26px + env(safe-area-inset-bottom, 0px));
      background: #050505; border-left: 1px solid rgba(255,42,31,.6);
      transform: translateX(104%); transition: transform .42s cubic-bezier(.7,0,.2,1);
    }
    .mnav.is-open .mnav__panel { transform: none; animation: mnGlitch .36s steps(1, end) .2s; }
    @keyframes mnGlitch { 0% { transform: translateX(-6px); filter: drop-shadow(4px 0 rgba(255,42,31,.9)); } 30% { transform: translateX(5px); } 60% { transform: translateX(-2px); filter: none; } 100% { transform: none; } }
    .mnav__panel::before { content: ""; position: absolute; left: -7px; top: 50%; width: 12px; height: 60px; border-left: 2px solid var(--red); transform: translateY(-50%); }
    .mnav__top { display: flex; justify-content: space-between; align-items: center; font: 400 11px/1 var(--mono); letter-spacing: .14em; color: var(--muted); padding-bottom: 18px; border-bottom: 1px solid var(--line); }
    .mnav__x { width: 40px; height: 40px; background: none; border: 1px solid rgba(242,242,242,.3); color: var(--fg); font: 400 18px/1 var(--mono); cursor: pointer; }
    .mnav ul { list-style: none; margin-top: 26px; display: grid; gap: 4px; }
    .mnav li a {
      display: flex; align-items: baseline; gap: 14px; padding: 12px 0; font: 400 34px/1.05 var(--sans); letter-spacing: -0.03em; color: var(--fg);
      opacity: 0; transform: translateX(18px); transition: opacity .3s, transform .3s, color .15s;
    }
    .mnav li a span { font: 400 11px/1 var(--mono); letter-spacing: .1em; color: var(--red); width: 22px; }
    .mnav li a:hover, .mnav li a:focus-visible { color: var(--red); }
    .mnav.is-open li a { opacity: 1; transform: none; }
    .mnav.is-open li:nth-child(1) a { transition-delay: .18s; } .mnav.is-open li:nth-child(2) a { transition-delay: .24s; }
    .mnav.is-open li:nth-child(3) a { transition-delay: .3s; } .mnav.is-open li:nth-child(4) a { transition-delay: .36s; }
    .mnav__foot { margin-top: auto; display: grid; gap: 14px; }
    .mnav__cta { display: block; text-align: center; padding: 15px; font: 500 12px/1 var(--mono); letter-spacing: .1em; background: var(--red); color: #0a0a0a; }
    .mnav__film { display: none; padding: 14px; font: 500 12px/1 var(--mono); letter-spacing: .1em; color: var(--fg); background: none; border: 1px solid var(--line); cursor: pointer; }
    html.is-simple .mnav__film { display: block; }
    .mnav__x2 { font: 400 12px/1 var(--mono); color: var(--muted); display: inline-flex; gap: 8px; align-items: center; }
    /* film controls: two small icons under the menu button, top right */
    html .player { top: calc(62px + env(safe-area-inset-top, 0px)); bottom: auto !important; right: var(--pad); }
    html .player button { width: 34px; height: 34px; padding: 0; gap: 0; justify-content: center; }
    html .player .lbl { display: none; }
    /* the hero text and buttons sit lower now that the controls are up top */
    .ov--hero { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)) !important; }
    .ov--hero .hero__ctas { bottom: calc(26px + env(safe-area-inset-bottom, 0px)) !important; }
  }

  /* logos shown as images (simple site grid, profile): height sets the size, width follows */
  .sx-grid .pnl__logo img, .prof__logo img { display: block; height: 100%; width: auto; max-width: 100%; }

  /* phones: menu header without label or divider; the menu slides out when closed; controls beside the menu button */
  @media (max-width: 699px) {
    .mnav__top { justify-content: flex-end; border-bottom: 0; padding-bottom: 0; }
    .mnav { transition: visibility 0s linear .46s; }
    .mnav.is-open { transition-delay: 0s; }
    .mnav:not(.is-open) .mnav__bg { transition-delay: .1s; }
    html .player { top: calc(13px + env(safe-area-inset-top, 0px)) !important; right: calc(var(--pad) + 48px) !important; gap: 8px; }
    html .player button { width: 40px !important; height: 40px !important; }
    html .player .pxi { width: 14px; height: 14px; }
  }
  /* simple site: the same side padding as the hero in every section; a slightly smaller hero headline */
  .sx-wrap { width: auto; margin-inline: var(--pad); }
  .sx-hero.has-film h1, .sx-hero.has-film .sx-h1 { font-size: clamp(28px, 4.2vw, 78px); }
  /* simple site: the contact logo glitches like the film's ending */
  .sx-glitch { position: relative; display: block; width: min(640px, 82vw); }
  .sx-glitch .sx-logo { width: 100%; }
  .sx-glitch__l { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
  .sx-glitch.is-on .sx-glitch__l { opacity: 1; clip-path: inset(var(--t, 40%) 0 var(--b, 40%) 0); transform: translateX(var(--x, 6px)); }
  .sx-glitch.is-on .sx-glitch__l--b { fill: #000; }
  .sx-glitch.is-on > .sx-logo:first-child { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
  .sx-px { position: absolute; width: 7px; height: 7px; background: var(--dark); animation: sxpx 1.8s ease-out forwards; pointer-events: none; }
  @keyframes sxpx { 0% { opacity: .9; transform: none; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)); } }

  /* simple site: a fixed, translucent top bar with the logo (and the menu icon on phones) */
  #simple { padding-top: 66px; }
  .sx-head { position: fixed !important; top: 0; left: 0; right: 0; z-index: 60; min-height: 66px;
    background: rgba(0,0,0,.58); -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1); }
  .sx-sec, .sx-hero { scroll-margin-top: 66px; }
  .sx-hero.has-film { height: min(calc(100vh - 66px), 980px); }
  @media (max-width: 699px) { .sx-head { padding-right: calc(var(--pad) + 52px); } }
  /* the side menu slides smoothly (no glitch fighting the slide) */
  @media (max-width: 699px) {
    .mnav.is-open .mnav__panel { animation: none; }
    .mnav__panel { will-change: transform; transition: transform .45s cubic-bezier(.22,.8,.2,1); }
  }
  /* simple site: AllJoined 20% bigger */
  .sx-grid .pnl__logo--alljoined { height: 26px; }
  /* simple site contact: the film's ending effect */
  .sx-contact { position: relative; overflow: hidden; }
  .sx-word { display: none; }
  .sx-contact.has-endfx .sx-word { display: block; font: 400 clamp(56px, 11vw, 150px)/1.05 var(--sans); letter-spacing: -0.045em; color: var(--dark); transition: opacity .2s; }
  .sx-contact.has-endfx .sx-glitch, .sx-contact.has-endfx > .sx-wrap > .sx-logo { display: none; }
  .sx-endpx { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
  .sx-contact .sx-wrap { position: relative; z-index: 1; }

  /* minigame counter and the milestone number */
  .tdown { position: fixed; z-index: 45; right: var(--pad); top: calc(62px + env(safe-area-inset-top, 0px)); display: flex; align-items: center; gap: 10px;
    padding: 8px 12px; font: 400 10px/1 var(--mono); letter-spacing: .12em; color: var(--muted); background: rgba(0,0,0,.55); border: 1px solid rgba(255,42,31,.45); pointer-events: none; }
  .tdown[hidden] { display: none; }
  .tdown b { font: 400 18px/1 var(--pixel); color: var(--red); letter-spacing: .04em; }
  html.is-end .tdown { background: rgba(38,38,38,.08); border-color: rgba(38,38,38,.4); color: var(--dark); }
  html.is-end .tdown b { color: var(--dark); }
  @media (max-width: 699px) { .tdown { top: calc(62px + env(safe-area-inset-top, 0px)); } }
  .tdown-pop { position: fixed; z-index: 46; pointer-events: none; transform: translate(-50%, -50%); font: 400 42px/1 var(--pixel); color: var(--red);
    text-shadow: 0 0 18px rgba(255,42,31,.7); animation: tdpop 1.6s cubic-bezier(.2,.8,.2,1) forwards; }
  @keyframes tdpop { 0% { opacity: 0; transform: translate(-50%, -30%) scale(.7); } 15% { opacity: 1; transform: translate(-50%, -60%) scale(1.05); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -260%) scale(1); } }

  /* simple site: a taller band after the portfolio, no double line or empty gap */
  #sx-portfolio { padding-bottom: 0; }
  .sx-artrow { margin-top: clamp(50px, 7vw, 90px); }
  .sx-artrow.has-3d { border-bottom: 0; }
  .sx-3d--band { height: clamp(380px, 42vw, 600px); }
  /* strips between sections */
  .sx-strip { display: none; border-bottom: 1px solid var(--line); }
  .sx-strip.has-3d { display: block; }
  .sx-3d--strip { height: clamp(150px, 16vw, 220px); }
  /* simple site footer: bright orange, like the contact block above it */
  .sx-foot { margin-inline: 0 !important; padding-inline: var(--pad) !important; background: var(--red); color: var(--dark); }
  .sx-foot a { color: var(--dark); }

  /* portfolio logos are buttons (they open the profile) */
  .pnl a, .pshow__item, .sx-grid a { cursor: pointer; }
  /* phones: no red bar beside the side menu */
  @media (max-width: 699px) { .mnav__panel { border-left: 0; } .mnav__panel::before { display: none; } }
  /* simple site: the first strip is hidden on phones (never more than two 3D scenes in a row) */
  @media (max-width: 699px) { .sx-strip--a { display: none !important; } }
  /* simple site Writings scene: the canvas fills its box without feeding back into the layout */
  .sx-learn__art { position: relative; min-height: 300px; }
  .sx-3d--fill { position: absolute; inset: 0; height: 100%; min-height: 0; }

  /* simple site, phones: the hero fits the visible screen (not the area behind the browser bars), ending a little higher */
  @media (max-width: 699px) {
    .sx-hero.has-film { height: calc(100vh - 66px - 64px); height: calc(100svh - 66px - 64px); min-height: 440px; }
    .sx-hero.has-film > .ov--hero { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important; }
    .sx-hero.has-film > .ov--hero .hero__ctas { bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important; }
  }

  /* phones: the bottom darkening is drawn inside the 3D frame (see the compositing pass), not as page layers that
     Safari's sliding bottom bar can push around. The page layers keep only their sideways shading here. */
  @media (max-width: 699px) {
    .vignette { display: none; }
    .ov--hero::before { background: linear-gradient(to right, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 55%); }
    .ov--bl::before { background: none !important; }
  }

  /* desktop: play and sound as two small icons, just right of the logo at the top left */
  @media (min-width: 700px) {
    html .player { top: calc(15px + env(safe-area-inset-top, 0px)); bottom: auto !important; right: auto; left: calc(var(--logoR, 150px) + 18px); gap: 6px; }
    html .player button { width: 32px; height: 32px; padding: 0; gap: 0; justify-content: center; }
    html .player .lbl { display: none; }
    html .player .pxi { width: 12px; height: 12px; }
    .ov--hero .hero__ctas { bottom: calc(48px + env(safe-area-inset-bottom, 0px)); }   /* the controls no longer sit below the buttons */
  }
  @media (max-width: 699px) {
    /* phones: reach the portfolio in about two swipes */
    #home.ch { --h: 230vh !important; }
    /* phones: a transparent header, with a soft dark fade behind it for contrast */
    .nav { mix-blend-mode: normal; }
    .nav::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: calc(118px + env(safe-area-inset-top, 0px)); z-index: -1; pointer-events: none;
      background: linear-gradient(to bottom, rgba(0,0,0,.72) 0%, rgba(0,0,0,.38) 55%, rgba(0,0,0,0) 100%); transition: opacity .5s; }
    html.is-end .nav::before { opacity: 0; }
    .sx-head { background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; border-bottom: 0 !important; }
    .sx-head::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: calc(118px + env(safe-area-inset-top, 0px)); z-index: -1; pointer-events: none;
      background: linear-gradient(to bottom, rgba(0,0,0,.72) 0%, rgba(0,0,0,.38) 55%, rgba(0,0,0,0) 100%); }
    /* simple site, phones: no animation under the Philosophy text */
    #sx-philosophy .sx-split__art { display: none; }
  }

  /* footer: two lines at every size — © and X on the first, the cities on the second; the counter sits just above its line */
  .end__footer, .sx-foot { display: grid !important; grid-template-columns: 1fr auto; grid-template-areas: "copy x" "cities cities"; align-items: center; row-gap: 10px; column-gap: 16px; }
  .end__footer > span:not(.cities), .sx-foot > span:not(.cities) { grid-area: copy; }
  .end__footer > .xlink, .sx-foot > .xlink { grid-area: x; justify-self: end; }
  .end__footer > .cities, .sx-foot > .cities { grid-area: cities; flex-wrap: wrap; gap: 6px 18px; }
  .end__footer .end__score { position: absolute; left: var(--pad); right: auto; bottom: calc(100% + 14px); margin: 0; opacity: 1; }
  .sx-foot .end__score { display: none !important; }
  /* play and sound sit above the nav bar (it was catching their taps) */
  .player { z-index: 65; }

  /* no zoom-in on focus: iOS zooms into any field whose text is under 16 px */
  @media (max-width: 899px), (pointer: coarse) { input, textarea, select { font-size: 16px !important; } }

  /* touch screens: no sticky hover — a swipe that starts on a logo must not leave it highlighted */
  @media (hover: none) {
    .pshow__item:hover { border-color: rgba(201,201,193,.16); background: rgba(255,255,255,.012); }
    .pshow__item:hover small { color: var(--muted); }
  }

  /* phones: the swipe hint — two pixel chevrons around SWIPE, shown when the page settles on a stop */
  .swipehint { display: none; }
  @media (max-width: 699px) {
    .swipehint { display: flex; position: fixed; left: 50%; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); transform: translate(-50%, 6px); z-index: 40;
      align-items: center; gap: 12px; color: var(--fg); opacity: 0; pointer-events: none; transition: opacity .7s ease, transform .7s ease; }
    .swipehint.is-on { opacity: .85; transform: translate(-50%, 0); }
    .swipehint svg { width: 14px; height: 8px; fill: var(--red); animation: swipeBob 1.6s ease-in-out infinite; }
    .swipehint.is-hero { left: var(--pad); bottom: var(--hb, 220px); transform: translate(0, 6px); }
    .swipehint.is-hero.is-on { transform: translate(0, 0); }
    .swipehint svg:last-child { animation-delay: .15s; }
    .swipehint span { font: 400 11px/1 var(--mono); letter-spacing: .24em; }
    html.is-end .swipehint, html.is-simple .swipehint { display: none; }
  }
  @keyframes swipeBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(3px); } }

  /* phones: the hero overlay and its vignette on their own layer, so iOS doesn't repaint-flicker them while the page moves */
  @media (max-width: 699px) { .gl .ov--hero, .ov--hero::before { will-change: opacity; transform: translateZ(0); backface-visibility: hidden; } }

  /* the real Alljoined wordmark (mixed-case serif) reads lighter than the caps it replaced: ~20% more height */
  .pnl__logo--alljoined { height: 30px; }
  .pshow__item .pnl__logo--alljoined { --lh: 46px; }
  .sx-grid .pnl__logo--alljoined { height: 32px; }
  .prof__logo--alljoined { height: 55px; }
  @media (max-width: 699px) { .pshow__item .pnl__logo--alljoined { --lh: 56px; } }

  /* company profile: no category label; a short glitch as it opens (translate, not transform, so it runs alongside the grow-in) */
  .prof__meta .sec { display: none; }
  .prof__card.is-glitch { animation: profGlitch .5s steps(1, end); }
  @keyframes profGlitch {     /* slices tear sideways; the colour channels split red / cyan; hue and contrast flicker */
    0%   { translate: -10px 0; clip-path: inset(0 0 58% 0); filter: drop-shadow(7px 0 rgba(255,42,31,.95)) drop-shadow(-7px 0 rgba(0,229,255,.75)) contrast(1.4); }
    12%  { translate: 12px 0; clip-path: inset(38% 0 22% 0); filter: drop-shadow(-8px 0 rgba(255,42,31,.95)) drop-shadow(8px 0 rgba(0,229,255,.7)) hue-rotate(-25deg) saturate(2.2); }
    24%  { translate: 0 0; clip-path: none; filter: drop-shadow(3px 0 rgba(255,42,31,.6)) drop-shadow(-3px 0 rgba(0,229,255,.5)); opacity: .25; }
    36%  { translate: -6px 0; clip-path: inset(62% 0 0 0); filter: drop-shadow(5px 0 rgba(255,42,31,.9)) drop-shadow(-5px 0 rgba(0,229,255,.7)) contrast(1.6) brightness(1.15); opacity: 1; }
    48%  { translate: 9px 0; clip-path: inset(0 0 70% 0); filter: drop-shadow(-6px 0 rgba(255,42,31,.9)) drop-shadow(6px 0 rgba(0,229,255,.7)) hue-rotate(18deg); }
    60%  { translate: -3px 0; clip-path: inset(20% 0 40% 0); filter: drop-shadow(-3px 0 rgba(255,42,31,.8)) drop-shadow(3px 0 rgba(0,229,255,.55)) saturate(1.8); }
    72%  { translate: 2px 0; clip-path: inset(48% 0 12% 0); filter: drop-shadow(2px 0 rgba(255,42,31,.7)) drop-shadow(-2px 0 rgba(0,229,255,.45)); }
    86%  { translate: 0 0; clip-path: none; filter: drop-shadow(1px 0 rgba(255,42,31,.45)) drop-shadow(-1px 0 rgba(0,229,255,.3)); opacity: .8; }
    100% { translate: 0 0; clip-path: none; filter: none; opacity: 1; }
  }
  /* scanlines and red / cyan tear bands over the card, only while it glitches */
  .prof__fx { position: absolute; inset: 0; z-index: 3; pointer-events: none; opacity: 0; mix-blend-mode: screen;
    background:
      linear-gradient(transparent 0, transparent var(--b1, 30%), rgba(255,42,31,.55) var(--b1, 30%), rgba(255,42,31,.55) calc(var(--b1, 30%) + 3px), transparent calc(var(--b1, 30%) + 3px)),
      linear-gradient(transparent 0, transparent var(--b2, 64%), rgba(0,229,255,.4) var(--b2, 64%), rgba(0,229,255,.4) calc(var(--b2, 64%) + 2px), transparent calc(var(--b2, 64%) + 2px)),
      repeating-linear-gradient(0deg, rgba(255,255,255,.07) 0 1px, transparent 1px 3px); }
  .prof__card.is-glitch .prof__fx { animation: profFx .5s steps(1, end); }
  @keyframes profFx {
    0%   { opacity: 1; --b1: 22%; --b2: 71%; transform: translateX(-6px); }
    12%  { opacity: .9; --b1: 47%; --b2: 18%; transform: translateX(8px); }
    24%  { opacity: .3; --b1: 80%; --b2: 40%; transform: none; }
    36%  { opacity: 1; --b1: 63%; --b2: 9%; transform: translateX(-4px); }
    48%  { opacity: .8; --b1: 12%; --b2: 55%; transform: translateX(5px); }
    60%  { opacity: .6; --b1: 38%; --b2: 86%; transform: none; }
    72%  { opacity: .35; --b1: 70%; --b2: 28%; }
    86%  { opacity: .15; }
    100% { opacity: 0; }
  }
  @property --b1 { syntax: '<percentage>'; inherits: false; initial-value: 30%; }
  @property --b2 { syntax: '<percentage>'; inherits: false; initial-value: 64%; }
  /* phones: the speed slider sits below the top bar */
  @media (max-width: 699px) { .speed { top: calc(82px + env(safe-area-inset-top, 0px)); } }

  html.is-overlay .swipehint { visibility: hidden; opacity: 0 !important; transition: none; }

  /* footer: the pixel LinkedIn mark sits just before the X link */
  .end__footer, .sx-foot { grid-template-columns: 1fr auto auto !important; grid-template-areas: "copy li x" "cities cities cities" !important; }
  .end__footer > .lilink, .sx-foot > .lilink { grid-area: li; justify-self: end; display: inline-flex; align-items: center; text-decoration: none; transition: opacity .2s; }
  .end__footer > .lilink:hover, .sx-foot > .lilink:hover { opacity: .7; }
  .pxli { width: 15px; height: 15px; fill: currentColor; display: block; }

  /* back to the top: centred just above the footer line, a pixel chevron each side */
  .totop { position: absolute; left: 50%; bottom: calc(100% + 18px); transform: translateX(-50%); display: inline-flex; align-items: center; gap: 12px;
    background: none; border: 0; padding: 6px 4px; cursor: pointer; color: inherit; font: 400 11px/1 var(--mono); letter-spacing: .24em; white-space: nowrap; }
  .totop .pxup { width: 14px; height: 8px; fill: currentColor; transition: transform .25s; }
  .totop:hover .pxup, .totop:focus-visible .pxup { transform: translateY(-3px); }
  .totop:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
  .sx-foot { position: relative; }
  @media (max-width: 699px) { .end__footer .end__score:not([hidden]), .sx-foot .end__score:not([hidden]) { bottom: calc(100% + 52px); } }

  /* footer: links to the readable pages (portfolio, thesis, about) */
  .end__footer, .sx-foot { grid-template-areas: "copy li x" "cities cities nav" !important; }
  .end__footer > .footnav, .sx-foot > .footnav { grid-area: nav; justify-self: end; display: flex; gap: 16px; }
  @media (max-width: 699px) { .end__footer, .sx-foot { grid-template-areas: "copy li x" "cities cities cities" "nav nav nav" !important; } .end__footer > .footnav, .sx-foot > .footnav { justify-self: start; } }

  /* the way into the blog: a Signal Red button in the film's Writings heading and in the simple site */
  .ov__cta { display: inline-block; margin-top: 22px; padding: 13px 20px; background: var(--red); color: #000; font: 500 12px/1 var(--mono); letter-spacing: .1em;
    text-decoration: none; transition: background .2s, box-shadow .2s; }
  .ov__cta:hover, .ov__cta:focus-visible { background: #ff4a40; box-shadow: 0 0 18px rgba(255,42,31,.55); }
  .sx-learn__more { margin-top: 36px; }

.sx h1.sx-h2 { margin: 0; font-weight: 400; font-size: clamp(32px, 4.4vw, 64px); line-height: 1; letter-spacing: -0.04em; max-width: none; }
.sx h2.sx-tag { font: 400 12px/1 var(--mono); letter-spacing: .06em; color: var(--muted); margin: 40px 0 18px; }
.sx .sx-cards .sign h2.sign__t { margin: 0; font-size: clamp(20px, 2vw, 28px); font-weight: 400; line-height: 1.05; letter-spacing: -0.02em; }
.sx .sx-co { max-width: 860px; }
.sx .sx-co__logo { height: 56px; margin: 28px 0 32px; } .sx .sx-co__logo img { height: 100%; width: auto; max-width: 100%; display: block; }
.sx .sx-co .sx-actions { margin-top: 32px; }
.sx .sx-pager { display: flex; justify-content: space-between; gap: 16px; margin-top: 56px; padding-top: 20px; border-top: 1px solid var(--line); font: 400 12px/1 var(--mono); letter-spacing: .06em; }
.sx .sx-pager a { color: var(--muted); text-decoration: none; } .sx .sx-pager a:hover { color: var(--red); }
.sx .sx-facts { display: grid; grid-template-columns: 180px 1fr; gap: 14px 24px; margin: 36px 0 0; max-width: 860px; }
.sx #sx-about h2 { margin-bottom: 28px; }
.sx .sx-facts dt { font: 400 12px/1.6 var(--mono); letter-spacing: .06em; color: var(--red); } .sx .sx-facts dd { margin: 0; }
.sx .sx-faq details { border-top: 1px solid var(--line); padding: 18px 0; max-width: 860px; } .sx .sx-faq details:last-child { border-bottom: 1px solid var(--line); }
.sx .sx-faq summary { cursor: pointer; list-style: none; font-size: 19px; } .sx .sx-faq summary::-webkit-details-marker { display: none; }
.sx .sx-faq summary::after { content: '+'; float: right; color: var(--red); font-family: var(--mono); } .sx .sx-faq details[open] summary::after { content: '\2212'; }
.sx .sx-faq details p { margin-top: 12px; }
.sx .sx-post__by { margin-top: 22px; }
.sx .sx-post__body { margin-top: 40px; max-width: 720px; font-size: 18px; line-height: 1.65; color: var(--ink, #C9C9C1); }
.sx .sx-post__body p, .sx .sx-post__body ul, .sx .sx-post__body ol, .sx .sx-post__body figure, .sx .sx-post__body pre, .sx .sx-post__body blockquote { margin: 0 0 22px; }
.sx .sx-post__body h2 { margin: 52px 0 16px; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.1; letter-spacing: -0.03em; color: var(--fg); scroll-margin-top: 90px; }
.sx .sx-post__body h3 { margin: 36px 0 12px; font-size: 22px; font-weight: 400; letter-spacing: -0.02em; color: var(--fg); scroll-margin-top: 90px; }
.sx .sx-post__body h4 { margin: 28px 0 10px; font: 400 12px/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--red); }
.sx .sx-post__body ul, .sx .sx-post__body ol { padding-left: 22px; } .sx .sx-post__body li { margin: 6px 0; } .sx .sx-post__body ul li::marker { color: var(--red); }
.sx .sx-post__body a { color: var(--fg); text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; }
.sx .sx-post__body strong { color: var(--fg); font-weight: 500; }
.sx .sx-post__body blockquote { border-left: 2px solid var(--red); padding-left: 22px; font-size: 22px; line-height: 1.4; color: var(--fg); }
.sx .sx-post__body code { font: 400 .88em/1 var(--mono); background: rgba(255,255,255,.06); padding: 2px 6px; }
.sx .sx-post__body pre { overflow-x: auto; padding: 18px; background: rgba(255,255,255,.04); border: 1px solid var(--line); } .sx .sx-post__body pre code { background: none; padding: 0; line-height: 1.5; }
.sx .sx-post__body img { display: block; max-width: 100%; height: auto; border: 1px solid var(--line); }
.sx .sx-post__body hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
.sx .sx-post__tags { margin-top: 32px; }
.sx .sx-wi__wrap { width: min(1120px, 100% - 2 * var(--pad, 24px)); margin: 0 auto; }
.sx .sx-wi__head { text-align: center; max-width: 720px; margin: 0 auto; }
.sx .sx-wi__head .sx-tag { justify-content: center; }
.sx h1.sx-wh1, .sx h1.sx-post__h1 { margin: 0; font-weight: 600; color: #fff; letter-spacing: -0.045em; line-height: .95; }
.sx h1.sx-wh1 { font-size: clamp(56px, 9vw, 132px); margin-top: 14px; }
.sx .sx-wi__lede { margin: 22px auto 0; max-width: 520px; font-size: 18px; line-height: 1.5; color: var(--ink, #C9C9C1); }
/* the feature: one card, image and text side by side, red corner brackets like the simple site's tiles */
.sx .sx-feat { position: relative; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); margin: clamp(48px, 7vw, 88px) 0 0; border: 1px solid rgba(255,255,255,.14); background: #000; }
.sx .sx-feat::before, .sx .sx-feat::after { content: ""; position: absolute; width: 22px; height: 22px; pointer-events: none; }
.sx .sx-feat::before { top: -6px; left: -6px; border-top: 2px solid var(--red); border-left: 2px solid var(--red); }
.sx .sx-feat::after { right: -6px; bottom: -6px; border-right: 2px solid var(--red); border-bottom: 2px solid var(--red); }
.sx .sx-feat__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-right: 1px solid rgba(255,255,255,.14); background: #050505; }
.sx .sx-feat__img img, .sx .sx-wcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.sx .sx-feat:hover .sx-feat__img img { transform: scale(1.03); }
.sx .sx-feat__body { display: flex; flex-direction: column; justify-content: center; gap: 18px; padding: clamp(28px, 3.6vw, 56px); }
.sx .sx-feat__kicker { display: flex; gap: 14px; margin: 0; font: 400 12px/1 var(--mono); color: var(--muted); }
.sx .sx-feat__new { color: var(--red); }
.sx .sx-feat__t { margin: 0; font-size: clamp(34px, 3.6vw, 56px); font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: #fff; }
.sx .sx-feat__t a, .sx .sx-wcard__t a { color: inherit; text-decoration: none; }
.sx .sx-feat__t a::after { content: ""; position: absolute; inset: 0; }
.sx .sx-feat__s { margin: 0; font-size: 17px; line-height: 1.55; color: var(--ink, #C9C9C1); }
.sx .sx-feat__meta, .sx .sx-wcard__meta { display: flex; gap: 16px; margin: 0; font: 400 12px/1 var(--mono); color: var(--muted); }
.sx .sx-feat__btn { position: relative; z-index: 1; align-self: flex-start; margin-top: 8px; }
/* the list */
.sx .sx-wi__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: clamp(64px, 8vw, 104px) 0 24px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.14); }
.sx h2.sx-wi__h2 { margin: 0; font-size: clamp(24px, 2.4vw, 32px); font-weight: 600; color: #fff; letter-spacing: -0.03em; }
.sx .sx-wi__count, .sx .sx-wi__all { font: 400 12px/1 var(--mono); color: var(--muted); text-decoration: none; } .sx .sx-wi__all:hover { color: var(--red); }
.sx .sx-wgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
.sx .sx-wcard { position: relative; display: flex; flex-direction: column; }
.sx .sx-wcard__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid rgba(255,255,255,.14); background: #050505; }
.sx .sx-wcard:hover .sx-wcard__img { border-color: var(--red); } .sx .sx-wcard:hover .sx-wcard__img img { transform: scale(1.04); }
.sx .sx-ph { display: grid; place-items: center; width: 100%; height: 100%; font: 400 12px/1 var(--mono); color: var(--muted);
  background-image: linear-gradient(rgba(201,201,193,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(201,201,193,.08) 1px, transparent 1px); background-size: 22px 22px; background-position: center; }
.sx .sx-wcard__body { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; }
.sx .sx-wcard__label { color: var(--red); }
.sx h3.sx-wcard__t { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.15; letter-spacing: -0.025em; color: #fff; }
.sx .sx-wcard__t a::after { content: ""; position: absolute; inset: 0; }
.sx .sx-wcard:hover .sx-wcard__t { color: var(--red); }
.sx .sx-wcard__s { margin: 0; font-size: 15px; line-height: 1.5; color: var(--ink, #C9C9C1); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sx .sx-wcard a:focus-visible, .sx .sx-feat a:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
/* pages */
.sx .sx-pages { display: flex; justify-content: center; align-items: center; gap: 28px; margin-top: clamp(56px, 7vw, 88px); font: 400 13px/1 var(--mono); }
.sx .sx-pages__n { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sx .sx-pages__n a, .sx .sx-pages__n span { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.14); color: var(--fg); text-decoration: none; }
.sx .sx-pages__n a:hover { border-color: var(--fg); } .sx .sx-pages__n [aria-current] { border-color: var(--red); color: var(--red); }
.sx .sx-pages__step { color: var(--fg); text-decoration: none; } .sx .sx-pages__step:hover { color: var(--red); } .sx .sx-pages__step.is-off { color: #3d3d3d; }
/* the post page: one left-aligned reading column (~680px), contents beside it on wide screens */
.sx .sx-prog { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; pointer-events: none; } .sx .sx-prog i { display: block; height: 100%; background: var(--red); transform: scaleX(0); transform-origin: 0 50%; }
.sx .sx-art { padding-top: clamp(40px, 7vw, 96px); }
.sx .sx-art__grid { width: min(1120px, 100% - 2 * var(--pad, 24px)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 680px); justify-content: center; }
.sx .sx-art.has-toc .sx-art__grid { grid-template-columns: 200px minmax(0, 680px) 200px; gap: 0 40px; }
.sx .sx-toc { position: sticky; top: 96px; align-self: start; padding-top: 6px; }
.sx .sx-toc__t, .sx .sx-toc-m summary { margin: 0 0 14px; font: 400 12px/1 var(--mono); color: var(--muted); }
.sx .sx-toc ol, .sx .sx-toc-m ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.sx .sx-toc a, .sx .sx-toc-m a { display: block; padding-left: 12px; border-left: 2px solid rgba(255,255,255,.12); font-size: 14px; line-height: 1.35; color: var(--muted); text-decoration: none; }
.sx .sx-toc a:hover, .sx .sx-toc-m a:hover { color: var(--fg); } .sx .sx-toc a.is-on { color: #fff; border-left-color: var(--red); }
.sx .sx-toc-m { display: none; margin: 32px 0 0; padding: 16px 18px; border: 1px solid rgba(255,255,255,.14); } .sx .sx-toc-m summary { margin: 0; cursor: pointer; } .sx .sx-toc-m ol { margin-top: 14px; }
.sx .sx-post { min-width: 0; }
.sx .sx-crumbs { display: flex; gap: 10px; font: 400 12px/1 var(--mono); color: var(--muted); } .sx .sx-crumbs a { color: var(--fg); text-decoration: none; } .sx .sx-crumbs a:hover { color: var(--red); }
.sx h1.sx-post__h1 { max-width: none; margin: 20px 0 0; font-size: clamp(38px, 5vw, 64px); font-weight: 600; line-height: 1.02; letter-spacing: -0.04em; color: #fff; text-wrap: balance; }
.sx .sx-post__dek { margin: 20px 0 0; font-size: 21px; line-height: 1.45; color: var(--ink, #C9C9C1); text-wrap: pretty; }
.sx .sx-byline { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 32px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.sx .sx-byline__who { display: flex; align-items: center; gap: 12px; } .sx .sx-byline__who img { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.14); }
.sx .sx-byline__who b { display: block; font-weight: 600; color: #fff; font-size: 15px; } .sx .sx-byline__who span { display: block; margin-top: 4px; font: 400 12px/1.3 var(--mono); color: var(--muted); }
.sx .sx-share { display: flex; gap: 8px; }
.sx .sx-share__b { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; min-width: 36px; padding: 0 10px; border: 1px solid rgba(255,255,255,.18); background: none; color: var(--fg); font: 400 12px/1 var(--mono); text-decoration: none; cursor: pointer; }
.sx .sx-share__b svg { width: 14px; height: 14px; fill: currentColor; } .sx .sx-share__b:hover, .sx .sx-share__b:focus-visible { border-color: var(--red); color: var(--red); } .sx .sx-share__copy.is-done { border-color: var(--red); color: var(--red); }
.sx .sx-post__author { padding: 4px 0 0; }
.sx .sx-post__cover { margin: 36px 0 0; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255,255,255,.14); background: #050505; } .sx .sx-post__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sx .sx-post__body { margin: 40px 0 0; max-width: none; font-size: 18px; line-height: 1.75; color: #D9D9D2; }
.sx .sx-post__body > :first-child { margin-top: 0; }
.sx .sx-post__body p { margin: 0 0 24px; }
.sx .sx-post__body h2 { margin: 56px 0 16px; font-size: clamp(26px, 2.6vw, 32px); font-weight: 600; line-height: 1.15; letter-spacing: -0.03em; color: #fff; scroll-margin-top: 96px; }
.sx .sx-post__body h3 { margin: 36px 0 12px; font-size: 21px; font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: #fff; scroll-margin-top: 96px; }
.sx .sx-post__body blockquote { margin: 36px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--red); font-size: 24px; line-height: 1.4; color: #fff; }
.sx .sx-post__body blockquote p { margin: 0; }
.sx .sx-post__body figure { margin: 36px 0; } .sx .sx-post__body figure img, .sx .sx-post__body p > img { display: block; width: 100%; height: auto; border: 1px solid rgba(255,255,255,.14); }
.sx .sx-post__body ul, .sx .sx-post__body ol { margin: 0 0 24px; padding-left: 22px; } .sx .sx-post__body li { margin: 8px 0; } .sx .sx-post__body ul li::marker { color: var(--red); }
.sx .sx-post__orig { margin: 32px 0 0; }
.sx .sx-post__end { margin-top: 56px; display: grid; gap: 28px; }
.sx .sx-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; } .sx .sx-tags li { padding: 7px 12px; border: 1px solid rgba(255,255,255,.18); font: 400 12px/1 var(--mono); color: var(--fg); }
.sx .sx-post__share { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); font: 400 12px/1 var(--mono); color: var(--muted); }
.sx .sx-author { display: flex; gap: 18px; padding: 8px 0 0; border: 0; } .sx .sx-author img { width: 56px; height: 56px; flex: none; border: 1px solid rgba(255,255,255,.14); }
.sx .sx-author p { margin: 0; } .sx .sx-author__n { font-weight: 600; color: #fff; font-size: 17px; } .sx .sx-author__b { margin-top: 6px !important; font-size: 15px; line-height: 1.5; color: var(--ink, #C9C9C1); }
.sx .sx-author__l { display: flex; gap: 18px; margin-top: 12px !important; font: 400 12px/1 var(--mono); } .sx .sx-author__l a { color: var(--fg); text-decoration: none; } .sx .sx-author__l a:hover { color: var(--red); }
.sx .sx-pn { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sx .sx-pn__a { display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid rgba(255,255,255,.14); text-decoration: none; } .sx .sx-pn__a--next { text-align: right; }
.sx .sx-pn__a span { font: 400 12px/1 var(--mono); color: var(--muted); } .sx .sx-pn__a b { font-weight: 600; color: #fff; font-size: 16px; line-height: 1.3; } .sx .sx-pn__a:hover { border-color: var(--red); }
.sx .sx-art { padding-bottom: 0; } .sx .sx-more { padding-top: clamp(56px, 7vw, 88px); } .sx .sx-more .sx-wi__row { margin-top: 0; }
@media (max-width: 1100px) { .sx .sx-art.has-toc .sx-art__grid { grid-template-columns: minmax(0, 680px); } .sx .sx-toc { display: none; } .sx .sx-toc-m { display: block; } }
@media (max-width: 620px) { .sx .sx-post__dek { font-size: 19px; } .sx .sx-post__body { font-size: 17px; } .sx .sx-byline { gap: 14px; } .sx .sx-share__copy span { font-size: 11px; } .sx .sx-pn { grid-template-columns: 1fr; } .sx .sx-pn__a--next { text-align: left; } .sx .sx-post__share { flex-direction: column; align-items: flex-start; } }
@media (max-width: 960px) { .sx .sx-feat { grid-template-columns: 1fr; } .sx .sx-feat__img { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); } .sx .sx-wgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .sx .sx-wgrid { grid-template-columns: 1fr; } .sx .sx-pages { gap: 14px; } .sx .sx-pages__n a, .sx .sx-pages__n span { width: 34px; height: 34px; } }
@media (prefers-reduced-motion: reduce) { .sx .sx-feat__img img, .sx .sx-wcard__img img { transition: none; } }
@media (max-width: 640px) { .sx .sx-facts { grid-template-columns: 1fr; gap: 4px 0; } .sx .sx-facts dd { margin-bottom: 12px; } }
