:root { --color-primary: #e3c948; --color-secondary: #e1e1e1; --color-tertiary: #e1e1e1; } @font-face { font-family: 'bytebounce'; src: url('static/bytebounce.woff2') format('woff2'), url('static/bytebounce.woff') format('woff'); font-weight: normal; font-style: normal; } html, body { padding: 0; margin: 0; width: 100%; height: 100%; overflow: hidden; font-size: 24px; font-family: "Roboto", sans-serif; } body { display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: center; align-items: center; background-image: linear-gradient(to bottom, rgba(255,255,255,0.2), rgba(0,0,0,0.2)), url("static/wood.jpg"); background-blend-mode: overlay, normal; box-shadow: inset 10px 10px 50px black; } main { position: relative; background-image: linear-gradient(45deg, #333, #888), url("static/aluminum.jpg"); background-blend-mode: overlay, normal; background-repeat: repeat; border-radius: 25px; display: grid; grid-template-rows: 1fr 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-gap: 50px; padding: 50px; box-shadow: 18px 18px 8px rgba(0,0,0,0.4), 5px 5px 10px rgba(0,0,0,0.5), inset 2px 2px 1px rgba(255,255,255,0.2), inset -2px -2px 1px rgba(0,0,0,0.2); width: 1200px; height: 900px; flex-shrink: 0; } input, textarea { background: none; outline: none; border: none; font-family: "bytebounce", monospace; font-size: 24px; color: var(--color-tertiary); } textarea { width: 100%; resize: none; } #logo, #credits { position: absolute; left: 0; width: 100%; line-height: 0; letter-spacing: -2px; color: rgba(0,0,0,0.75); text-shadow: 1px 1px 1px rgba(255,255,255,0.25); user-select: none; text-align: center; } #logo { top: 28px; font-size: 42px; font-family: "Meie Script", cursive; font-weight: 400; font-style: normal; } #credits { bottom: 10px; font-size: 13px; font-family: "Roboto", sans-serif; letter-spacing: 0; line-height: 12px; } #credits a { color: inherit; text-decoration: underline; } #credits .smaller { font-size: 9px; } #transcription { padding: 1em; background-color: #08100c; background-image: radial-gradient(#0b1812, transparent); color: var(--color-primary); text-shadow: 0 0 1em var(--color-primary); position: relative; border-radius: 1em; grid-area: 3 / 1 / 6 / 5; font-family: "bytebounce", monospace; } #transcription #welcome { margin-bottom: 10px; } #transcription #content { position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow-y: auto; z-index: 1; padding: 45px 70px 70px 80px; } #transcription #input { position: relative; } #transcription #input::before { content: ">"; color: var(--color-secondary); position: absolute; left: -12px; top: 2px; } #transcription #bezel { content: "\A"; background-image: url("static/bezel.png"); background-size: 100% 100%; z-index: 3; position: absolute; left: -5px; top: -5px; right: -5px; bottom: -5px; border-radius: 1em; pointer-events: none; } #transcription .reflection { content: "\A"; background-image: url("static/screen-reflection.jpg"); background-size: 100% 100%; z-index: 2; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 1em; pointer-events: none; mix-blend-mode: soft-light; opacity: 0.5; } #transcription .reflection.dodge { mix-blend-mode: color-dodge; opacity: 0.05; } #transcription .transcription { color: white; } #transcription .completion { white-space: pre-wrap; line-height: 1; } #transcription .completion .spoken { text-decoration: underline; } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } #transcription .tool { margin: -10px 0 2px 0; text-align: right; font-size: 15px; color: var(--color-secondary); animation: fadeIn 0.5s ease-out; } #transcription .tool span { cursor: pointer; color: var(--color-primary); } #transcription .citation { margin: 0 0 2px 0; text-align: right; font-size: 15px; color: var(--color-secondary); animation: fadeIn 0.5s ease-out; } #transcription .citation a { color: var(--color-primary); text-decoration: none; } #transcription .citation:last-child { margin-bottom: 1em; } #waveform { position: relative; grid-area: 1 / 1 / 3 / 3; } #waveform .oscilloscope-grid { background-image: url("static/oscilloscope-grid.png"); background-size: 100% 100%; z-index: 2; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 100%; pointer-events: none; mix-blend-mode: difference; opacity: 0.3; } #waveform .circle-reflection { background-image: url("static/screen-reflection-circle.jpg"); background-size: 100% 100%; z-index: 3; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 100%; pointer-events: none; mix-blend-mode: soft-light; opacity: 0.5; } #waveform .circle-reflection.dodge { mix-blend-mode: color-dodge; opacity: 0.05; } #waveform .circle-shading { content: "\A"; background-image: url("static/shading-circle.png"); background-size: 100% 100%; z-index: 0; position: absolute; left: -20px; top: -20px; right: -20px; bottom: -20px; border-radius: 100%; pointer-events: none; } #waveform canvas { border-radius: 100%; box-shadow: inset .5em .5em 1.5em rgba(0,0,0,0.6); position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 1; width: 100%; height: 100%; } section#voice::before { content: "VOICE"; position: absolute; width: 66px; top: 0px; left: calc(50% - 33px); text-align: center; font-size: 16px; font-weight: 800; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } section#voice { position: relative; border: 2px solid rgba(24,24,24,0.9); border-radius: 25px; display: grid; grid-template-rows: 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-area: 1 / 3 / 3 / 5; } #wrapper-voice-id { grid-area: 1 / 1 / 4 / 6; height: 175px; margin-right: -10px; } #wrapper-voice-id-wheel { top: 24px; left: 0px; grid-area: 1 / 6 / 5 / 6; } #wrapper-volume { grid-area: 3 / 1 / 6 / 4; margin: 0 auto; } #wrapper-volume::before { content: "VOLUME"; position: absolute; width: 76px; bottom: -2px; left: calc(50% - 38px); text-align: center; font-size: 14px; font-weight: 400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } #wrapper-speed { grid-area: 3 / 4 / 6 / 7; margin: 0 auto; } #wrapper-speed::before { content: "SPEED"; position: absolute; width: 60px; bottom: -2px; left: calc(50% - 30px); text-align: center; font-size: 14px; font-weight: 400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } section#brain { position: relative; border: 2px solid rgba(24,24,24,0.9); border-radius: 25px; display: grid; grid-template-rows: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr; grid-area: 1 / 5 / 4 / 7; } section#brain::before { content: "BRAIN"; position: absolute; width: 66px; top: 0px; left: calc(50% - 33px); text-align: center; font-size: 16px; font-weight: 800; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } #wrapper-top-k { grid-area: 1 / 3 / 1 / 3; margin: 0 40px 0 0; } #wrapper-top-k::before { content: "TOP-K"; position: absolute; transform: rotate(-90deg); width: 76px; right: -68px; text-align: center; font-size: 14px; font-weight: 400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } #wrapper-top-k-display { grid-area: 1 / 1 / 2 / 3; margin: 0 auto; } #wrapper-min-p { grid-area: 2 / 1 / 4 / 1; } #wrapper-top-p { grid-area: 2 / 2 / 4 / 2; } #wrapper-temperature { grid-area: 2 / 3 / 4 / 3; } #wrapper-min-p, #wrapper-top-p, #wrapper-temperature { padding: 0 0 50px 0; } #wrapper-min-p::before, #wrapper-top-p::before, #wrapper-temperature::before { position: absolute; width: 66px; bottom: -2px; left: calc(50% - 33px); text-align: center; font-size: 14px; font-weight: 400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } #wrapper-min-p::before { content: "MIN-P"; } #wrapper-top-p::before { content: "TOP-P"; } #wrapper-temperature::before { content: "TEMP"; } section#microphone { position: relative; border: 2px solid rgba(24,24,24,0.9); border-radius: 25px; display: grid; grid-template-rows: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr; grid-area: 4 / 5 / 6 / 7; } div#speaker { position: relative; width: 100%; height: 100%; margin-top: 21px; margin-left: 36px; grid-area: 1 / 1 / 3 / 3; } div#speaker div.hole { transform: translate(92px, 92px); position: absolute; width: 10px; height: 10px; border-radius: 100%; box-shadow: inset 1px 1px 2px rgba(0,0,0,0.8), inset 4px 4px 8px rgba(0,0,0,1.0); } div#power-switch { grid-area: 3 / 2 / 3 / 3; position: relative; } div#power-switch .power-wrapper { transform: rotate(-90deg) scale(0.75); position: absolute; left: 30px; top: -23px; } div#listen-button { position: relative; grid-area: 3 / 1 / 3 / 1; display: flex; flex-flow: row nowrap; align-items: center; justify-content: center; } div#listen-button label { position: absolute; bottom: -3px; text-transform: uppercase; font-size: 14px; font-weight: 400; background-color: #222; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; width: 64px; text-align: center; color: #AAA; } button#listen { display: block; width: 60px; height: 60px; border-radius: 100%; position: relative; border: none; outline: none; background: none; cursor: pointer; box-shadow: 3px 3px 3px rgba(0,0,0,0.5); } button#listen::before, button#listen::after { content: "\A"; position: absolute; left: 0; top: 0; width: 100%; height: 100%; transform-origin: center center; transition: all 150ms ease-out; background-size: 101% 101%; background-repeat: no-repeat; pointer-events: none; } button#listen::before { background-image: url("static/button-background.png"); } button#listen::after { background-image: url("static/button-foreground.png"); } button#listen:active::after { transform: scale(0.9); } div.bulb-indicator { position: relative; width: 36px; height: 36px; margin: auto; background-image: linear-gradient(to bottom, #666, #444), url("static/black-plastic.jpg"); background-blend-mode: overlay, normal; border-radius: 100%; box-shadow: 2px 2px 4px rgba(0,0,0,0.4); } div.bulb-indicator > label { text-transform: uppercase; position: absolute; transform: rotate(-90deg); width: 64px; right: -62px; top: 8px; text-align: center; font-size: 14px; font-weight: 400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 4px 0; background-color: #222; color: #AAA; } div.bulb-indicator::before { background-image: radial-gradient(circle, rgba(255,255,255,0.15), rgba(255,255,255,0.4)), linear-gradient(to right, rgba(255,255,255,0.3), rgba(255,255,255,0.6)); background-color: transparent; content: "\A"; width: 28px; height: 28px; position: absolute; left: calc(50% - 14px); top: calc(50% - 14px); border-radius: 100%; opacity: 1.0; mix-blend-mode: overlay; z-index: 2; transition: background-color 200ms ease-out; } div.bulb-indicator::after { z-index: 1; mix-blend-mode: hard-light; width: 120px; height: 120px; content: "\A"; position: absolute; left: calc(50% - 60px); top: calc(50% - 60px); border-radius: 100%; opacity: 0; transition: opacity 200ms ease-out; background-image: radial-gradient(circle, var(--color-primary) 5px, transparent 40px); } div.bulb-indicator.active::before { background-color: var(--color-primary); box-shadow: inset 0 0 8px rgba(0,0,0,0.2); } div.bulb-indicator.active::after { opacity: 0.5; } div#recording { grid-area: 1 / 3 / 1 / 3; } div#listening { grid-area: 2 / 3 / 2 / 3; } div#power { grid-area: 3 / 3 / 3 / 3; } /* Common */ input.dial, input.wheel, input.solari-board, input.seven-segment, input.slider, input.power { display: none; } div.dial-wrapper { display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; } div.dial { display: block; position: relative; width: 75px; height: 75px; } div.dial .value { position: absolute; width: 100%; height: 100%; transform-origin: center; font-weight: 300; text-transform: uppercase; font-size: 15px; pointer-events: none; letter-spacing: 1px; } div.dial .value span { display: block; transform: rotate(90deg) translateX(-20px); max-width: 150px; } div.dial .value span::after { content: "—"; } div.dial .value.top span { transform: rotate(270deg) translateX(24px); text-align: end; } div.dial .value.right span { transform: rotate(270deg) translateX(20px); text-align: end; } div.dial .value.top span::before, div.dial .value.right span::before { content: "—"; } div.dial .value.top span::after, div.dial .value.right span::after { content: ""; } div.dial .dial-element, div.dial .dial-specular { position: absolute; left: 0; top: 0; border-radius: 100%; width: 100%; height: 100%; background-image: url("static/aluminum-spiral.jpg"); background-size: 100% 100%; z-index: 1; } div.dial .dial-element { cursor: grab; } div.dial.active .dial-element { cursor: grabbing; } div.dial .dial-specular { background-image: url("static/aluminum-circle-specular.jpg"); mix-blend-mode: soft-light; background-size: 100% 100%; z-index: 2; pointer-events: none; transform: rotate(90deg); box-shadow: 10px -10px 10px rgba(0,0,0,0.3), 0 0 5px rgba(0,0,0,0.5), 11px -11px 0 rgba(0,0,0,0.15); } div.dial .dial-element::after { content: "\A"; background-image: url("static/black-plastic.jpg"); background-size: 100% 100%; width: 8px; height: 8px; border-radius: 10px; position: absolute; left: calc(50% - 3px); padding: 0; margin: 0; top: 4px; } div.solari-board-wrapper { display: flex; flex-flow: row nowrap; align-items: center; justify-content: center; } div.solari-board { display: flex; flex-flow: row nowrap; align-items: stretch; justify-content: stretch; gap: 2px; background-image: linear-gradient(to right, #444, #444), url("static/black-plastic.jpg"); background-blend-mode: overlay, normal; padding: 6px; border-radius: 4px; } div.solari-board-element-container { display: block; position: relative; width: 36px; height: 90px; } div.solari-board-element-top, div.solari-board-element-flap, div.solari-board-element-bottom { display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: linear-gradient(to bottom, #333, #222), url("static/black-plastic.jpg"); background-blend-mode: overlay, normal; color: #EEE; text-align: center; line-height: 98px; overflow: hidden; text-transform: uppercase; font-family: "Lekton", monospace; font-weight: 400; font-size: 58px; user-select: none; } div.solari-board-element-top { bottom: calc(50% + 1px); box-shadow: inset 4px 4px 2px rgba(0,0,0,0.4); } div.solari-board-element-flap { bottom: calc(50% + 1px); transform-origin: bottom center; transition: transform 200ms linear; } div.solari-board-element-flap.middle { transform: rotateX(90deg); } div.solari-board-element-flap.bottom { top: calc(50% + 1px); bottom: 0; transform-origin: top center; transform: rotateX(0deg); line-height: 8px; } div.solari-board-element-bottom { top: calc(50% + 1px); line-height: 8px; box-shadow: inset 4px 0px 2px rgba(0,0,0,0.4); } div.wheel-wrapper { display: block; position: relative; height: 111px; width: 35px; overflow: visible; padding: 8px; background-image: linear-gradient(to bottom, #333, #222), url("static/black-plastic.jpg"); background-blend-mode: overlay, normal; border-radius: 5px; box-shadow: inset 0 0 10px black; cursor: grab; } div.wheel { height: 111px; width: 35px; overflow: hidden; position: relative; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.3), inset 2px 2px 0 rgba(0,0,0,0.8); } div.wheel-specular { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-image: linear-gradient(to bottom, black, #333 25%, white 50%, #333 75%, black); mix-blend-mode: overlay; opacity: 0.7; pointer-events: none; } @keyframes wheelUp { 0% { transform: translateY(0); } 100% { transform: translateY(-9px); } } @keyframes wheelDown { 0% { transform: translateY(0); } 100% { transform: translateY(9px); } } div.wheel-element { display: block; position: relative; width: 100px; left: -25px; top: -50px; height: 350px; background-image: url("static/wheel.jpg"); animation-timing-function: linear; animation-iteration-count: infinite; animation-duration: 1s; } div.wheel.up div.wheel-element { animation-name: wheelUp; } div.wheel.down div.wheel-element { animation-name: wheelDown; } div.wheel-shadow { display: block; position: absolute; left: 49px; width: 25px; top: 0; bottom: 0; background-size: 100% 100%; background-image: url("static/wheel-shadow.png"); background-repeat: no-repeat; pointer-events: none; opacity: 0.9; } div.seven-segment-wrapper { position: relative; display: flex; flex-flow: row nowrap; align-items: center; justify-content: center; } div.seven-segment-wrapper .reflection { content: "\A"; background-image: url("static/screen-reflection.jpg"); background-size: 150% 150%; z-index: 2; position: absolute; left: 0px; top: 35px; right: 0px; bottom: 35px; border-radius: 5px; pointer-events: none; mix-blend-mode: soft-light; opacity: 0.5; } div.seven-segment-wrapper .reflection.dodge { mix-blend-mode: color-dodge; opacity: 0.05; } div.seven-segment { margin: 0 auto; display: flex; flex-flow: row nowrap; justify-content: center; align-items: center; position: relative; height: 100px; background-color: #08100c; background-image: radial-gradient(#0b1812, transparent); border-radius: 5px; box-shadow: inset 5px 5px 10px black; } div.seven-segment-element { display: block; position: relative; width: 64px; height: 80px; } div.seven-segment-element:not(:last-child) { margin-right: -12px; } div.seven-segment-element > div { display: block; position: absolute; background-color: #222; width: 24px; height: 8px; } div.seven-segment-element > div.on { background-color: var(--color-primary); box-shadow: 0 0 25px var(--color-primary); } div.seven-segment-element > div::before, div.seven-segment-element > div::after { content: "\A"; border-width: 4px; border-style: solid; display: block; position: absolute; top: 0; width: 0; height: 0; background: none; } div.seven-segment-element > div::before { left: -8px; border-color: transparent #222 transparent transparent; } div.seven-segment-element > div.on::before { border-color: transparent var(--color-primary) transparent transparent; } div.seven-segment-element > div::after { right: -8px; border-color: transparent transparent transparent #222; } div.seven-segment-element > div.on::after { border-color: transparent transparent transparent var(--color-primary); } div.seven-segment-element > .segment-0 { top: 2px; left: 20px; } div.seven-segment-element > .segment-1 { top: 19px; left: 2px; transform: rotate(90deg); } div.seven-segment-element > .segment-2 { top: 19px; right: 2px; transform: rotate(90deg); } div.seven-segment-element > .segment-3 { left: 20px; top: 36px; } div.seven-segment-element > .segment-4 { top: 53px; left: 2px; transform: rotate(90deg); } div.seven-segment-element > .segment-5 { top: 53px; right: 2px; transform: rotate(90deg); } div.seven-segment-element > .segment-6 { bottom: 2px; left: 20px; } div.seven-segment-element > .segment-7 { bottom: 2px; left: 20px; } div.slider-wrapper { display: flex; position: relative; flex-flow: column nowrap; align-items: center; justify-content: center; } div.slider-wrapper div.label { position: absolute; left: 0; width: 50px; display: flex; width: 100%; text-align: left; font-size: 12px; color: #444; line-height: 0; z-index: 0; } div.slider-wrapper div.label.left { left: -40px; } div.slider-wrapper div.label.left::after, div.slider-wrapper div.label.right::before { content: "\A"; position: absolute; height: 1px; width: 10px; background-image: linear-gradient(to right, transparent, #444 20%, #444 80%, transparent); display: block; } div.slider-wrapper div.label.left::after { left: 28px; } div.slider-wrapper div.label.right { left: 25px; } div.slider-wrapper div.label.right::before { left: -15px; } div.slider { position: relative; display: block; width: 8px; height: 100%; border-radius: 10px; box-shadow: inset 2px 2px 6px black, inset 0 0 10px black; z-index: 1; } div.slider-element { position: absolute; width: 100px; left: calc(50% - 50px); height: 20px; margin-top: -10px; perspective: 32px; cursor: grab; z-index: 2; } div.slider-element::before, div.slider-element::after { content: "\A"; display: block; position: absolute; width: 50%; height: 100%; transform-origin: center; background-blend-mode: overlay, normal; box-shadow: 4px 4px 6px rgba(0,0,0,0.4), 10px 10px 14px rgba(0,0,0,0.2); } div.slider-element::before { left: 1px; transform: rotateY(-15deg); background-image: linear-gradient(to right, #CCC, #888), url("static/black-plastic.jpg"); border-top-left-radius: 2px; border-bottom-left-radius: 2px; } div.slider-element::after { right: 1px; transform: rotateY(15deg); background-image: linear-gradient(to right, #444, #333), url("static/black-plastic.jpg"); border-top-right-radius: 2px; border-bottom-right-radius: 2px; } .power-wrapper input { display: none; } .power-button .on, .power-button .off { position: absolute; text-align: center; text-shadow: inset 1px 1px 1px black; width: 100%; transform: rotateZ(90deg); } .power-button .on { color: #888; top: 10px; transition: all 0.1s; font-family: sans-serif; } .power-button .off { color: #aaa; bottom: 5px; transition: all 0.1s; transform: scaleY(0.85) rotateZ(90deg); } .power-button { cursor: pointer; background-color: #272727; border-radius: 5px; border-bottom-width: 0px; box-shadow: inset 8px 6px 5px -7px rgba(0, 0, 0, 1), inset -8px 6px 5px -7px rgba(0, 0, 0, 1), inset 0 -3px 2px -2px rgba(200, 200, 200, 0.5), 0 3px 3px -2px rgba(0, 0, 0, 1), inset 0 -230px 60px -200px rgba(255, 255, 255, 0.2), inset 0 220px 40px -200px rgba(0, 0, 0, 0.3); display: block; font-size: 29px; height: 128px; position: relative; transition: all 0.2s; width: 60px; } .power-button-background { background-color: black; background-image: linear-gradient( 0deg, transparent 30%, transparent 65% ), linear-gradient( 0deg, rgba(150, 150, 150, 0) 30%, rgba(150, 150, 150, 0.1) 50%, rgba(150, 150, 150, 0) 70% ); border-radius: 5px; box-sizing: border-box; height: 155px; padding: 4px 4px; transition: all 0.2s; width: 68px; box-shadow: -3px 3px 3px rgba(0,0,0,0.5); } .power-button-container { background: white; background: linear-gradient(270deg, #444, #222); border-radius: 5px; box-shadow: 0px 0px 0px 8px rgba(0, 0, 0, 0.1), 0px 0px 3px 1px rgba(0, 0, 0, 1), inset 0 8px 3px -8px rgba(255, 255, 255, 0.4); height: 165px; margin: 30px auto; padding: 5px; width: 79px; } input:checked + .power-button-background .on, input:checked + .power-button-background .off { text-shadow: inset 1px 1px 1px black; } input:checked + .power-button-background .on { color: #444; top: 10px; transform: scaleY(0.85) rotateZ(90deg); } input:checked + .power-button-background .off { color: #777; bottom: 5px; transform: scaleY(1) rotateZ(90deg); } input:checked + .power-button-background .power-button { background: #232323; background-image: linear-gradient( 270deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0) ); border-radius: 5px; box-shadow: inset 8px -4px 5px -7px rgba(0, 0, 0, 1), inset -8px -4px 5px -7px rgba(0, 0, 0, 1), 0 -3px 8px -4px rgba(250, 250, 250, 0.4), inset 0 3px 4px -2px rgba(10, 10, 10, 1), inset 0 280px 40px -200px rgba(0, 0, 0, 0.2), inset 0 -200px 40px -200px rgba(180, 180, 180, 0.2); margin-top: 20px; } input:checked + .power-button-background { background-image: linear-gradient(90deg, black 30%, transparent 65%), linear-gradient( 180deg, rgba(250, 250, 250, 0) 0%, rgba(250, 250, 250, 0.4) 50%, rgba(150, 150, 150, 0) 100% ); padding: 2px 4px; } #info { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: none; transition: all 0.5s; z-index: 99; display: flex; flex-flow: row nowrap; align-items: center; justify-content: center; pointer-events: none; } #info.active { pointer-events: auto; } #info #info-content { opacity: 0; transition: opacity 0.5s; height: calc(100% - 4em); overflow-y: auto; } #info.active #info-content { opacity: 1; pointer-events: auto; } #info.active { background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); } #info-button { position: absolute; top: 0; right: 0; width: 50px; height: 50px; line-height: 50px; cursor: pointer; font-family: "Meie Script", cursive; color: white; font-size: 50px; border: none; outline: none; background: none; opacity: 0.5; transition: opacity 0.2s; pointer-events: auto; z-index: 11; } #info-button:hover { opacity: 1; } #info-content { padding: 2em 4em; background-color: rgba(255,255,255,0.8); text-align: center; flex-flow: column nowrap; align-items: center; justify-content: center; z-index: 10; width: 800px; max-width: calc(100% - 4em); font-family: "Roboto"; font-weight: 300; font-size: 15px; } #info-content > * { text-align: left; } #info-logo { margin-top: 0; font-size: 58px; font-family: "Meie Script", cursive; font-weight: 400; font-style: normal; text-align: center; } #info-version { text-align: center; margin-top: -67px; font-weight: 300; font-size: 14px; padding-bottom: 15px; border-bottom: 1px solid rgba(0,0,0,0.8); } #info cite { white-space: pre-wrap; display: block; font-style: normal; font-family: "Lekton", monospace; word-break: break-all; padding: 10px; background-color: rgba(0,0,0,0.8); color: white; margin-bottom: 5px; } #github { position: fixed; bottom: 0px; right: 5px; opacity: 0.5; transition: opacity 0.2s; } #github:hover { opacity: 1.0; } .alert-container { position: fixed; pointer-events: none; top: 50px; right: 0; display: flex; flex-flow: column nowrap; z-index: 10; } @keyframes alertIn { 0% { opacity: 0; height: 0; margin-bottom: 0; } 100% { opacity: 1; height: 100px; margin-bottom: 5px; } } @keyframes alertOut { 0% { opacity: 1; height: 100px; margin-bottom: 5px; } 100% { opacity: 0; height: 0; margin-bottom: 0; } } .alert { position: relative; display: block; animation: alertIn 1s ease-out; animation-fill-mode: forwards; width: 300px; background-color: rgba(242,222,222,0.75); backdrop-filter: blur(5px); color: #333; padding: 0; margin-bottom: 5px; border-radius: 5px; pointer-events: auto; border: 1px solid rgba(222,22,22,0.9); overflow: hidden; } @keyframes alertProgress { 0% { width: 100%; } 100% { width: 0; } } .alert .progress-bar { position: absolute; bottom: 0; left: 0; background-color: rgba(222,22,22,0.9); height: 5px; animation-name: alertProgress; animation-fill-mode: forwards; animation-timing-function: linear; } .alert h2 { font-size: 16px; font-weight: 400; padding: 6px 10px; margin: 0; background-color: rgba(222,22,22,0.9); color: white; border-top-left-radius: 5px; border-top-right-radius: 5px; } .alert p { padding: 10px; margin: 0; font-size: 12px; } .alert.hiding { animation: alertOut 1s ease-out; animation-fill-mode: forwards; } .alert button { position: absolute; top: 5px; right: 5px; background: none; border: none; outline: none; cursor: pointer; font-size: 30px; line-height: 20px; color: white; font-weight: 400; padding: 0; margin: 0; opacity: 0.8; } .alert button:hover { opacity: 1; } @media (orientation: portrait) { main { height: 1200px; width: 900px; grid-gap: 25px; padding: 25px; grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr 1fr; } section#waveform { grid-area: 1 / 1 / 3 / 2; } section#voice { grid-area: 1 / 3 / 4 / 5; } section#brain { grid-area: 3 / 1 / 7 / 3; } section#microphone { grid-area: 4 / 3 / 7 / 5; } section#transcription { grid-area: 7 / 1 / 12 / 5; } section#logo { top: -80px; color: white; font-size: 120px; } section#credits { color: white; font-size: 20px; bottom: -95px; } #transcription .tool, #transcription .citation { font-size: 22px; } section#credits .smaller { font-size: 15px; margin-top: 20px; line-height: 30px; } div.bulb-indicator > label { right: -73px; } } @media (max-width: 1200px) { main { transform: scale(0.68); } } @media (max-width: 900px) { main { transform: scale(0.4); } #transcription #content { font-size: 38px; padding: 60px 90px 90px 100px; } #transcription .tool, #transcription .citation { font-size: 38px; } textarea, input { font-size: 38px; } } @media (max-width: 900px) and (orientation: portrait) { main { height: 1500px; } section#waveform { margin-right: -60px; } div#power-switch .power-wrapper { top: -15px; } section#credits { font-size: 30px; bottom: -180px; } section#credits .smaller { font-size: 28px; margin-top: 50px; line-height: 30px; } }