/* Locally bundled classic Ubuntu: the same smooth desktop lettering on every device. */
@font-face{font-family:'Hyd Ubuntu';src:url('fonts/ubuntu-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Hyd Ubuntu';src:url('fonts/ubuntu-latin-500-normal.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Hyd Ubuntu';src:url('fonts/ubuntu-latin-700-normal.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{--desktop-font:'Hyd Ubuntu',Tahoma,'Lucida Grande',Arial,sans-serif;--desktop-label-font:'Hyd Ubuntu',Tahoma,'Lucida Grande',Arial,sans-serif;--desktop-lettering:'Hyd Ubuntu',Tahoma,'Lucida Grande',Arial,sans-serif}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--desktop-font)}
html[data-theme] :is(button,input,select,textarea),html[data-theme] #world :is(.portal-brand h1,.manad-byline,.screen-corner,.player-app,.route-title,.route-caption,.deck-display b,.deck-display span,.mini-track,.desktop-status){font-family:var(--desktop-font)!important}
html[data-theme] #world #home .desktop-icons>button>b{background:transparent!important;box-shadow:none!important;border:0;color:var(--wallpaper-label-color,#fff);text-shadow:var(--wallpaper-label-shadow,0 1px 3px #000);border-radius:0}
html[data-theme] #world #home .desktop-icons>button:focus-visible{outline:2px solid #bfdcf3;outline-offset:2px;border-radius:4px}
/* Draw small functional marks as geometry, never colour emoji. */
html[data-theme] #world .manad-byline>span{display:inline-block;position:relative;width:11px;height:11px;font-size:0;vertical-align:baseline;margin-left:3px}
#world .manad-byline>span:before{content:'';position:absolute;right:1px;top:1px;width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
#world .manad-byline>span:after{content:'';position:absolute;width:11px;height:1.5px;left:0;top:5px;background:currentColor;transform:rotate(-45deg)}
html[data-theme] #world #home .wallpaper-switch{display:grid;place-items:center;padding:0;line-height:1;box-sizing:border-box;overflow:hidden}
html[data-theme] #world #home .wallpaper-switch>span{display:block;width:13px;height:13px;min-width:0;min-height:0;margin:0;font-size:0;line-height:1;border:1px solid currentColor;background:repeating-linear-gradient(45deg,transparent 0 2px,currentColor 2px 3px);transform:none;translate:none}
/* Button text remains for accessibility. Absolutely positioned geometry avoids
   WebKit's native button content box and anonymous grid-text rows shifting it. */
html[data-theme] #world #home .entry-play{position:relative;display:block;font-size:0!important;line-height:0}
html[data-theme] #world #cinema :is(#previous-memory,#play-small,#skip-memory,#play-preview){appearance:none;-webkit-appearance:none;display:block;padding:0;line-height:0;font-size:0!important}
html[data-theme] #world #cinema :is(#previous-memory,#play-small,#skip-memory){position:relative}
html[data-theme] #world #home .entry-play:before,
html[data-theme] #world #cinema :is(#previous-memory,#play-small,#skip-memory,#play-preview):before{content:'';position:absolute;inset:auto;left:50%;top:50%;display:block;margin:0;translate:none;transform:translate(-50%,-50%);box-sizing:border-box;pointer-events:none}
html[data-theme] #world #home .entry-play:before,
html[data-theme] #world #cinema :is(#play-small,#play-preview):before{width:0;height:0;border:6px solid transparent;border-right:0;border-left:9px solid currentColor;transform:translate(calc(-50% + 1px),-50%)}
html[data-theme] #world #home .entry-play:before{border-top-width:5px;border-bottom-width:5px;border-left-width:8px}
html[data-theme] #world #cinema :is(#play-small,#play-preview)[aria-label^='Pause']:before{width:10px;height:13px;border:0;border-inline:3px solid currentColor;transform:translate(-50%,-50%)}
html[data-theme] #world #cinema :is(#previous-memory,#skip-memory):before{width:8px;height:8px;border:0;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translate(calc(-50% + 1px),-50%) rotate(45deg)}
html[data-theme] #world #cinema #skip-memory:before{transform:translate(calc(-50% - 1px),-50%) rotate(225deg)}
html[data-theme] #world #cinema .transport .auto-next input{appearance:none;-webkit-appearance:none;display:grid;place-items:center;width:15px;height:15px;min-width:15px;margin:0;border:1px solid #788995;border-radius:3px;background:linear-gradient(#fff,#d4dde4)}
html[data-theme] #world #cinema .transport .auto-next input:checked{background:#567f9d;border-color:#426780}
html[data-theme] #world #cinema .transport .auto-next input:checked:after{content:'';width:7px;height:4px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg);margin-top:-2px}
@media(max-width:620px){
 html[data-theme] #world #home .mobile-desktop .wallpaper-switch{top:5px;right:6px;width:28px;height:28px;min-width:28px;min-height:28px}
 html[data-theme] #world #home .mobile-desktop #desk-entry .visual-entry{grid-template-columns:minmax(90px,.72fr) minmax(0,1.28fr);gap:8px;padding:9px 8px}
 html[data-theme] #world #home .mobile-desktop .visual-entry .shuffle-object{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-width:0;width:100%;padding:8px 0;text-align:center}
 html[data-theme] #world #home .mobile-desktop .visual-entry .shuffle-object b{display:block;width:100%;margin:0;text-align:center;font-size:12px;line-height:1.35;text-wrap:balance}
 html[data-theme] #world #home .mobile-desktop .visual-entry .shuffle-art{display:grid;place-items:center;width:70px;height:70px;flex:0 0 70px;margin:0;transform:none}
 html[data-theme] #world #home .mobile-desktop .visual-entry .shuffle-art svg{display:block;width:70px;height:70px;margin:0;translate:none}
 html[data-theme] #world #home .mobile-desktop .entry-play{width:46px;height:28px;min-height:28px;margin:0;padding:0}
 /* A portrait window can be much narrower than the viewport. Let each action
    occupy a full row instead of squeezing two fixed labels into half a row. */
 html[data-theme] #world #cinema .player-extras{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:9px}
 html[data-theme] #world #cinema .player-extras :is([data-random],.collection-link,.deck-launch){width:100%;max-width:100%;min-width:0;min-height:34px;height:auto;padding:7px 9px;line-height:1.25;font-size:12px;text-align:center;white-space:normal;overflow-wrap:normal;grid-column:1;grid-row:auto}
 html[data-theme] #world #cinema .player-extras .journey-volume{grid-column:1;grid-row:auto;justify-content:center;flex-wrap:wrap;gap:7px;margin:0;min-width:0}
 html[data-theme] #world #cinema .transport{padding:8px;gap:7px}
}
html[data-theme] #world #home .portal-brand .manad-byline{display:flex;align-items:center;justify-content:center;gap:4px;width:max-content;max-width:calc(100% - 32px);white-space:nowrap}
html[data-theme] #world #home .portal-brand .manad-byline>span{flex:0 0 11px;margin:0;inset:auto}

#hyd-boot.hyd-boot,#hyd-boot .hyd-boot-bar{font-family:var(--desktop-font)}
#hyd-boot .hyd-boot-mark{display:grid;place-items:center;flex:0 0 16px;line-height:1}
#hyd-boot .hyd-boot-mark svg{display:block}

/* Keep editable fields at Safari's non-zooming size, including touch tablets and landscape phones. */
@media(max-width:620px),(any-pointer:coarse){
 html[data-theme] :is(#world,dialog,.sound-deck,.uturn-question) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="color"]),textarea,select){font-size:16px!important}
}

/* Window symbols use centered vectors, independently of text font metrics. */
html[data-theme] #world #cinema :is(#expand-screen,#close-player){position:relative}
html[data-theme] #world #cinema :is(#expand-screen,#close-player)>svg{position:absolute;inset:50% auto auto 50%;width:16px;height:16px;margin:0;transform:translate(-50%,-50%);display:block}
/* Keep map copy on the bundled UI face, including popup contents. */
html[data-theme] .leaflet-container :is(.leaflet-popup-content,.leaflet-popup-content button,.leaflet-popup-content small,.leaflet-popup-content p){font-family:var(--desktop-font)!important}
/* Readable silver/blue controls retain the site's existing palette. */
html[data-theme] #world #desktop-reset{color:#25313e!important;text-shadow:none}
html[data-theme] #world :is(#area-search,#route-from)::placeholder{color:#566675!important;opacity:1}
html[data-theme] #world #places .memory-mode-switch button[aria-pressed=true],html[data-theme] #credits-dialog .site-info-tabs button[aria-selected=true],html[data-theme] #world .photo-inline-presets button[aria-pressed=true]{background:linear-gradient(#496a8c,#304e6e);color:#fff}
html[data-theme] #world #places .map-notes-count{color:#324a60;opacity:1}
html[data-theme] #credits-dialog .site-info-close{color:#481c1c}
html[data-theme] #world .manad-byline{background:#2b2430e8;border-radius:3px;padding:3px 8px;color:#fff!important;text-shadow:none}
html[data-theme] #world .uturn-service-status{color:#241b2b!important;background:#f1e5ed;padding:2px 5px;border-radius:2px}
html[data-theme] #world #home .desktop-icons>button>b{color:#fff!important;text-shadow:-1px -1px 0 #211925,1px -1px 0 #211925,-1px 1px 0 #211925,1px 1px 0 #211925,0 2px 2px #211925!important}
html[data-theme] :is(.uturn-question,.desktop-preferences) input::placeholder{color:#c5c1ca;opacity:1}
