/* FONTS */ @import url("//fast.fonts.net/t/1.css?apiType=css&projectid=94e305b2-399b-4d5c-b963-4be76c34b554"); @font-face{ font-family:"Eurostile Next W01_n1"; src:url("Fonts/d1950356-4c31-47b1-a67b-9552574e2e6f.eot?#iefix") format("eot") } @font-face{ font-family:"Eurostile Next W01"; src:url("Fonts/d1950356-4c31-47b1-a67b-9552574e2e6f.eot?#iefix"); src:url("Fonts/d1950356-4c31-47b1-a67b-9552574e2e6f.eot?#iefix") format("eot"),url("Fonts/724b39b6-ec4c-4d9a-8c66-d9cbeadfd214.woff2") format("woff2"),url("Fonts/d82f7907-5a42-408a-b479-fb495b9369e5.woff") format("woff"),url("Fonts/716836ab-871f-4aba-acc4-898fa8b65164.ttf") format("truetype"),url("Fonts/2de71f7a-0ca5-4a1b-a8bd-987baf29104b.svg#2de71f7a-0ca5-4a1b-a8bd-987baf29104b") format("svg"); font-weight: 100; font-style: normal; } @font-face{ font-family:"Eurostile Next W01_n2"; src:url("Fonts/6be414c2-3b91-4d13-83cc-48f8c7912d9e.eot?#iefix") format("eot") } @font-face{ font-family:"Eurostile Next W01"; src:url("Fonts/6be414c2-3b91-4d13-83cc-48f8c7912d9e.eot?#iefix"); src:url("Fonts/6be414c2-3b91-4d13-83cc-48f8c7912d9e.eot?#iefix") format("eot"),url("Fonts/e24c996f-5bf1-44db-89de-b7062ea32b4f.woff2") format("woff2"),url("Fonts/9990b66c-b104-4530-b033-d7915655e857.woff") format("woff"),url("Fonts/e4cbd06e-07d8-47ad-9175-a2d5523e91b6.ttf") format("truetype"),url("Fonts/b8b30acc-df32-4d44-89f7-e7c8f21dd13a.svg#b8b30acc-df32-4d44-89f7-e7c8f21dd13a") format("svg"); font-weight: 200; font-style: normal; } @font-face{ font-family:"Eurostile Next W01_n4"; src:url("Fonts/bb9f8bd4-ba5f-4322-85f0-0fbae2ee11c2.eot?#iefix") format("eot") } @font-face{ font-family:"Eurostile Next W01"; src:url("Fonts/bb9f8bd4-ba5f-4322-85f0-0fbae2ee11c2.eot?#iefix"); src:url("Fonts/bb9f8bd4-ba5f-4322-85f0-0fbae2ee11c2.eot?#iefix") format("eot"),url("Fonts/f5658eb1-377e-492d-88a2-2841094f5f81.woff2") format("woff2"),url("Fonts/a9e934be-ccaf-4ef9-8da7-128c86e41d7b.woff") format("woff"),url("Fonts/bf36a607-ef60-4f61-91de-448992be155f.ttf") format("truetype"),url("Fonts/5a0c3ba9-19f9-45ec-a49c-e03d8ed4a3eb.svg#5a0c3ba9-19f9-45ec-a49c-e03d8ed4a3eb") format("svg"); font-weight: 400; font-style: normal; } @font-face{ font-family:"Geogrotesque W01_n3"; src:url("Fonts/63fbd07b-fc33-4d94-abb1-3b576ac4e12a.eot?#iefix") format("eot") } @font-face{ font-family:"Geogrotesque W01"; src:url("Fonts/63fbd07b-fc33-4d94-abb1-3b576ac4e12a.eot?#iefix"); src:url("Fonts/63fbd07b-fc33-4d94-abb1-3b576ac4e12a.eot?#iefix") format("eot"),url("Fonts/7e30984c-ffa9-4748-926e-d305f5755e8f.woff2") format("woff2"),url("Fonts/853f60c4-e57f-494d-97ab-5da22dbc8e95.woff") format("woff"),url("Fonts/6eb035ef-f32b-4ff2-bfde-92306d6f3774.ttf") format("truetype"),url("Fonts/f816e847-6155-42fa-ae24-063c733b5491.svg#f816e847-6155-42fa-ae24-063c733b5491") format("svg"); font-weight: 300; font-style: normal; } @font-face{ font-family:"Geogrotesque W01_n4"; src:url("Fonts/fdeead73-e360-4ef1-b0b0-2a13ab5ca1f7.eot?#iefix") format("eot") } @font-face{ font-family:"Geogrotesque W01"; src:url("Fonts/fdeead73-e360-4ef1-b0b0-2a13ab5ca1f7.eot?#iefix"); src:url("Fonts/fdeead73-e360-4ef1-b0b0-2a13ab5ca1f7.eot?#iefix") format("eot"),url("Fonts/69fc4714-05d2-488b-838b-5925ef0197dd.woff2") format("woff2"),url("Fonts/d35a7b59-82a2-4f8a-8287-cc5423e1f0ab.woff") format("woff"),url("Fonts/b75d0fcc-c53f-4cf0-887e-d20337ce96f9.ttf") format("truetype"),url("Fonts/ffc926e0-5c8f-44c6-8fd6-3c2699118a9c.svg#ffc926e0-5c8f-44c6-8fd6-3c2699118a9c") format("svg"); font-weight: 400; font-style: normal; } @font-face{ font-family:"Geogrotesque W01_n7"; src:url("Fonts/40bc667a-fe6b-4600-8320-f66daeb25b06.eot?#iefix") format("eot") } @font-face{ font-family:"Geogrotesque W01"; src:url("Fonts/40bc667a-fe6b-4600-8320-f66daeb25b06.eot?#iefix"); src:url("Fonts/40bc667a-fe6b-4600-8320-f66daeb25b06.eot?#iefix") format("eot"),url("Fonts/dd501f4a-1a91-4d73-b4cf-de3ba26bd793.woff2") format("woff2"),url("Fonts/149719fe-5b81-4b67-a95a-3a5246a84032.woff") format("woff"),url("Fonts/4c464889-c33e-4b8c-b182-17a32eb1f7a8.ttf") format("truetype"),url("Fonts/73abc949-ef23-462e-a62a-355c33a564d6.svg#73abc949-ef23-462e-a62a-355c33a564d6") format("svg"); font-weight: 700; font-style: normal; } /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; } body { background:#000; color: #eee; padding:0; margin:0; overflow:hidden; font-family:'Geogrotesque W01', "Helvetica Neue Light", Helvetica, arial, sans-serif; font-size:13px; text-align:center; } .clearfix:after { content: "."; visibility: hidden; display: block; height: 0; clear: both; } #info { background: url(./images/lightyear_logo.svg) no-repeat center center; background-size: contain; position: absolute; margin: 0 auto; top: 10px; width: 100%; height: 6em; z-index: 10; opacity: .35; } a { color: #0080ff } b { color:orange } .trackmeta { text-transform: uppercase; position: absolute; left: 0; right: 0; bottom: 32px; z-index: 10; display: flex; flex-direction: column; row-gap: 0.25em; text-align: center; font-size: 1.75em; letter-spacing: 0.2em; line-height: 1.2em; color: #fff; } #songinfo { color:#fff; } #songinfo span { overflow: hidden; text-overflow: ellipsis; padding: 0 0.5em; } /* Title is allowed to wrap to a second line, then ellipsize if still too long. text-wrap: balance keeps the two lines roughly the same width. */ #songinfo #tracktitle { display: -webkit-box; display: box; -webkit-box-orient: vertical; box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; text-wrap: balance; font-weight: 600; } /* Artist stays on a single line — ellipsis if too long. */ #songinfo #trackartist { display: block; white-space: nowrap; } #distance, #listening { font-size: 0.75em; } #listening, #trackyear, #distance { opacity: 0.5; } #distance { transition: all 0.5s ease; color: #fff; font-weight: 600; border-radius: 3px; border: 1px solid rgba(255, 255, 255, .25); margin-bottom: 0.75em; /* Right side trimmed by the inherited 0.2em letter-spacing so the pill looks visually balanced — letter-spacing tacks trailing space on the last character that would otherwise bloat the right padding. */ padding: 0.25em 0.6em 0.25em 1em; display: inline-block; /* Inside the flex-column trackmeta, stretch-alignment would make this pill fill the full viewport width; align-self:center lets it size to its own content instead. */ align-self: center; } #distance-amount { /* font-size: 2em; display: inline-block; float: left; text-align: right; width: 50%; */ } #distance.highlight { border: 1px solid rgba(255, 255, 255, 1); opacity: 1; /* font-size: 2.5em; */ } #trackyear { transition: color 0.5s ease, opacity 0.5s ease; } #trackyear.highlight { color: #fff; opacity: 1; } #distance-unit { font-weight: bold; /* display: inline-block; position: relative; top: -0.25em; float: left; display: inline-block; text-align: left; width: 50%; */ } #gui { position: absolute; height:30px; top:0px; right:0px; z-index: 100; } #slider-container { position: absolute; top: 0; left: 0; height: 100%; width: 200px; z-index: 8500; /* Let swipes pass through the container itself — only the labels and the slider handle should capture input. Without this, half the phone screen silently eats the camera-zoom touchmove. */ pointer-events: none; } #slider-vertical, #slider-points label { pointer-events: auto; } #slider-vertical { position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); height: 90%; left: 0px; opacity: 1; z-index: 100; } #slider-points { height: 100%; position: relative; top: -13px; } #slider-points label { transition: padding 0.2s ease; z-index: 10; position: absolute; left: 0px; width: 150px; font-family:'Eurostile Next W01', "Helvetica Neue", Helvetica, arial, sans-serif; cursor: pointer; background: transparent url(images/pixel.png) no-repeat left 45%; background-size: 5px 3px; padding: 0.5em 0 0.5em 2.5em; opacity: 0.25; } #slider-points label:hover { opacity: 1 !important; padding-left: 3em; } #slider-points label .lyunit { color: #5d5d5d; font-size: 0.8em; } .ui-widget-content { background: transparent; } .ui-slider .ui-slider-handle { z-index: 9; outline: none; width: 2em !important; height: 0.25em !important; background-color: #fff; } .ui-widget-header, .ui-widget-content { background: transparent; } /* #slider-points label:nth-child(5n-4) { display: block; } */ #body-rollover{ position: absolute; box-sizing: border-box; padding: 5px 0px 5px 50px; text-transform: uppercase; text-align: right; border-top: 1px solid white; font-size: 1.5em; opacity: 0.6; width: 200px; max-width: calc(100vw - 16px); } #body-rollover.left{ padding: 5px 50px 5px 0px; text-align: left; } @media only screen and (max-device-width: 480px) { #body-rollover { width: 130px; padding-left: 12px; font-size: 1em; } #body-rollover.left { padding-left: 0; padding-right: 12px; } } #body-rollover #body-name { font-weight: 600; } #loading-screen{ position:absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; background: url('images/loadingbg.jpg') no-repeat center center #000; background-size: cover; padding: 0; display: flex; justify-content: center; align-items: center; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; } .hide{ display: none; } .alert{ color: red; font-size: 1.5em; line-height: 1.25em; } #loading-content{ font-size: 30px; margin: 0 auto; } #intro-info { position: relative; text-align: center; width: 600px; margin: 0 auto; } #intro-info h3 { font-size: 1.25em; text-transform: uppercase; letter-spacing: 6px; line-height: 1.5em; margin: 0.5em 0; opacity: 0.6; text-wrap: balance; } #intro-info h1 { background: url(./images/lightyear_logo.svg) no-repeat top center; background-size: 2em; padding-top: 3em; font-family:'Eurostile Next W01', "Helvetica Neue", Helvetica, arial, sans-serif; font-weight: 200; font-size: 3em; text-transform: uppercase; letter-spacing: 4px; display: block; } #intro-info p { display: block; opacity: 0.6; line-height: 1.25em; border-top: 1px solid #fff; margin: 0.5em 0 1em 0; padding: 0.5em 0 0 0; font-size: 1.3em; text-wrap: pretty; } #intro-info ul { margin-top: 2em; list-style-type: none; opacity: .4; } #intro-info li { float: left; margin: 0 auto; width: 23%; padding: 4.5em 5% 0 5%; font-size: 1.25em; background-repeat: no-repeat; background-position: top center; background-size: 25%; text-align: center; } #intro-info li:nth-child(1) { background-image: url(./images/chrome.svg); } #intro-info li:nth-child(2) { background-image: url(./images/headphones.svg); } #intro-info li:nth-child(3) { background-image: url(./images/html5.svg); background-size: 30%; background-position: center 5px; } .button { font-family:'Geogrotesque W01', "Helvetica Neue Light", Helvetica, arial, sans-serif; font-weight: bold; transition: background-color 0.25s ease; color: #000; border-radius: 0px; background: #969696; border: none; letter-spacing: 3px; font-size: 20px; padding: 10px 30px; margin: 20px auto; cursor: pointer; text-transform: uppercase; border-radius: 3px; outline: none; -webkit-appearance: none; } .button:hover { background-color: #fff; } #ready-content { height: 100px; } #start-button { display: none; } #ready-content span { display: inline-block; letter-spacing: 3px; font-size: 20px; padding: 10px 30px; margin: 20px 0; text-transform: uppercase; } .button-ready { /* background: #fff !important; */ } #play-pause{ background-color: #000; padding: 5px; cursor: pointer; } #end-screen{ position:absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 8000; display: none; background-color:rgba(0,0,0,0.85); text-align: center; } #end-content { position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); width: 440px; margin: 0 auto; font-size: 1.4em; } #end-content header { margin-top: 2em; opacity: 0.5; } #end-content #button_reset { display: block; width: 215px; margin: 2.5em auto 0 auto; } #end-content h2 { font-weight: bold; } #end-content p { margin: 0.5em 0; opacity: 0.5; } #end-content p strong { font-weight: bold; } #end-content #milkyway { background: url(./images/milkyway.png) no-repeat center center; background-size: contain; width: 400; height: 400px; margin: 0 auto -113px auto; } #end-content #milkyway svg { position: relative; top: 181px; left: 127px; } #end-content #milkyway #front { fill: rgba(255, 255, 255, 0.9); } #end-content #milkyway #back { fill: transparent; stroke: rgba(255, 255, 255, 0.7); } #controls{ position: absolute; bottom: 21px; right: 24px; cursor: pointer; /* Above the share-info overlay (z-index 9999) so this button stays tappable while the overlay is open and can act as both i and X. */ z-index: 10000; } #share-info { z-index: 50; transition: opacity 0.25s ease; opacity: .5; background: url(./images/info-icon.svg) no-repeat center center; background-size: contain; width: 3em; height: 3em; cursor: pointer; } #share-info:hover { opacity: 1; } #share-info-overlay { display: none; position: absolute; z-index: 9999; background-color:rgba(0,0,0,0.95); width: 100%; height: 100%; color: #8f8f8f; font-size: 1.1em; line-height: 1.5em; } #share-info-overlay a { transition: color 0.25s ease; color: #b7b7b7; font-weight: 600; text-decoration: none; } #share-info-overlay a:hover { color: #fff; } #share-info-overlay #share-info-content { background: url(./images/lightyear_logo.svg) no-repeat top center; background-size: 5em; padding-top: 10em; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); text-align: left; width: 575px; margin: 0 auto; } #share-info-overlay #share-info-content #share-info-credits { float: left; width: 25%; padding-right: 10%; font-size: 1.3em; line-height: 1.2em; } #share-info-overlay #share-info-content h1 { text-align: center; font-family:'Eurostile Next W01', "Helvetica Neue", Helvetica, arial, sans-serif; font-weight: 200; text-transform: uppercase; color: #fff; font-size: 1.75em; margin-bottom: 1.5em; position: relative; top: -38px; } header { font-size: 11pt; letter-spacing: 3px; text-transform: uppercase; } #share-info-overlay #share-info-content #share-info-credits #share-info-share header { margin-top: 2em; } #share-info-overlay #share-info-content #share-info-credits #share-info-share div { transition: opacity 0.25s ease; opacity: .6; margin: 0.2em 0; } #share-info-overlay #share-info-content #share-info-credits #share-info-share div:hover { opacity: 1; } #share-info-overlay #share-info-content #share-info-info { width: 65%; float: left; } #share-info-overlay #share-info-content p { margin-bottom: 1em; text-wrap: pretty; } /* The old dedicated close button is replaced by the i-icon itself morphing into an X when the overlay is open (see body.info-open rules below). */ #share-info-close { display: none; } /* When the overlay is open, repaint the i-icon as a white circle with an X drawn by CSS pseudo-elements. Size/position stay identical because it IS the same element — just with the SVG background swapped for a cross. */ body.info-open #share-info { background-image: none; background-color: #fff; border-radius: 50%; position: relative; opacity: .5; } body.info-open #share-info::before, body.info-open #share-info::after { content: ''; position: absolute; top: 50%; left: 50%; width: 60%; height: 2px; background: #000; } body.info-open #share-info::before { transform: translate(-50%, -50%) rotate(45deg); } body.info-open #share-info::after { transform: translate(-50%, -50%) rotate(-45deg); } /* set debug=false in settings.js to hide this stuff #stats, #gui, #button_reset { display: none; }*/ /* Toggled by updateSliderLabelDensity() when the slider's pixel height is short enough that 5-LY labels would visually crowd each other. */ body.slider-labels-sparse #slider-points label:nth-child(even) { display: none; } @media only screen and (max-device-width: 480px) { #intro-info{ margin-top: 1em; width: 90%; position: static; top: 0; -webkit-transform: translateY(0%); transform: translateY(0%); } #intro-info h1 { font-size: 2em; } #intro-info li { padding-top: 2.5em; text-align: center; } #share-info-overlay #share-info-content { width: 90%; padding-top: 7em; margin-top: 1em; top: 0; -webkit-transform: translateY(0%); transform: translateY(0%); } #share-info-overlay #share-info-content #share-info-info, #share-info-overlay #share-info-content #share-info-credits { float: none; margin: 1em auto; width: 100%; } #share-info-overlay #share-info-content h1 { margin-bottom: 1em; position: static; top: 0px; } #ready-content, #fallback-content { height: 60px; } #slider-vertical { position: absolute; top: 49px; /* aligned with the top of the #info logo */ bottom: 200px; /* clears the bottom .trackmeta stack plus a gap */ height: auto; /* let top + bottom drive the height */ -webkit-transform: none; transform: none; left: 0; } #slider-points label { /* Tighter tap targets — 150px default was wide enough that stray taps in the left half of the screen jumped the camera to a year. */ width: 60px; } #controls{ /* Vertically center the 2.5em i-icon against the 6em #info logo that starts at top: 10px, so the icon's midline matches the logo's. */ top: calc(10px + 1.75em); bottom: auto; right: 15px; } #share-info { width: 2.5em; height: 2.5em; } .trackmeta { font-size: 1.4em; bottom: 20px; } #end-screen { z-index: 9999; } #end-content { width: 90%; max-width: 90vw; box-sizing: border-box; padding: 0 1em; font-size: 1em; margin: 0 auto; } #end-content #milkyway { width: 70vw; max-width: 280px; height: 70vw; max-height: 280px; margin: 0 auto -80px auto; } #end-content #milkyway svg { top: 45%; left: 31%; } }