from pathlib import Path
from html import escape
p=Path(__file__).parent
parts=['']
def rect(x,y,w,h,c,stroke=None):
parts.append(f' ')
def text(x,y,s,size=28,c='#ffffff',bold=False):
parts.append(f'{escape(s)} ')
rect(0,0,1920,1080,'#071632')
parts.append(' ')
text(175,108,'orbit',68,bold=True);text(365,103,'/ Classic',34,'#b7cbe8')
text(1440,101,'Saturday 31 October',26);text(1770,101,'20:30',28,'#ffde59',True)
for x,w,label,active in [(64,340,'1 Menu',False),(412,340,'2 TV Guide',True),(760,340,'3 Box Office',False)]:
rect(x,150,w,64,'#194c91' if active else '#12356b','#38629a');text(x+24,192,label,29,bold=active)
text(1510,191,'Your media. Your universe.',24,'#b7cbe8')
rect(64,248,545,300,'#12356b','#38629a')
parts.append(' ')
rect(64,492,545,56,'#0c244d');text(86,529,'101 Orbit One',24,'#ffffff',True);text(400,529,'Demo signal',20,'#ffde59')
text(654,276,'Orbit One / 20:30–21:00',24,'#ffde59')
text(654,338,'The Midnight Observatory',45,bold=True)
text(654,391,'An astronomer follows a mysterious signal',29,'#b7cbe8')
text(654,435,'across the night sky.',29,'#b7cbe8')
text(654,524,'Fictional programmes • Original demo transmission',22,'#b7cbe8')
rect(64,584,1792,51,'#194c91')
text(88,619,'Channel',24)
for x,label in [(430,'20:30'),(910,'21:00'),(1390,'21:30')]:text(x,619,label,24)
rows=[('101','Orbit One',['The Midnight Observatory','Small Town, Big Orbit','Beyond the Blue']),('202','Orbit Sci-Fi',['Signal from Europa','Starbound Dispatch','Visitors at Dawn']),('401','Orbit Kids',['Moonbug Rangers','The Comet Club','Rocket Pocket'])]
for i,(num,name,shows) in enumerate(rows):
y=644+i*100
rect(64,y,330,92,'#102b57');text(86,y+32,num,22,'#ffde59');text(86,y+68,name,29,bold=True)
for j,show in enumerate(shows):
x=402+j*486;focused=i==0 and j==0
rect(x,y,478,92,'#ffde59' if focused else '#12356b','#ffffff' if focused else '#38629a')
text(x+20,y+54,show,27,'#071632' if focused else '#ffffff',focused)
text(66,1009,'Arrows Browse',23,'#b7cbe8');text(430,1009,'OK Watch now / programme information',23,'#b7cbe8');text(1390,1009,'Back Return',23,'#b7cbe8')
rect(64,1040,1792,2,'#38629a')
parts.append(' ');(p/'orbit-classic-guide.svg').write_text('\n'.join(parts))
logo='''orbit '''
(p/'orbit-wordmark.svg').write_text(logo)