/*!
 * webtimer.cc - v1.1.1-1-ga82de8e
 *
 * Copyright (C) 2025 Gijs van Tulder
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 *
 * For the software libraries included with this package, see the
 * licenses in <https://webtimer.cc/oss-licenses.json>.
 */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:100 900;src:url(../static/inter.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}body{background:#2e2e2e;color:grey;font-family:Inter,sans-serif;font-size:18px;font-variant-numeric:tabular-nums;margin:0;padding:0}.container{display:flex;flex-direction:column;height:100%;height:100vh;height:100dvh;position:absolute;touch-action:manipulation;user-select:none;width:100%;width:100vw;width:100dvw}.show-splash .controls-display,.show-splash .timer-display,.show-timer .splash-display{display:none}.timer-display{background:#000;cursor:pointer;height:100%;margin:5vw 5vw 0;position:relative}@media screen and (orientation:landscape){.timer-display{margin:5vh 5vh 0}}.timer-display .card{background:#000;box-sizing:border-box;height:100%;opacity:1;padding-bottom:55px;transition:opacity 1s;transition:opacity .5s,background-color .5s ease-in-out,color .5s ease-in-out;width:100%}@media(max-height:580px){.timer-display .card{padding-bottom:0}}.timer-display .time{color:#fff;font-optical-sizing:auto;font-weight:600;height:100%;margin:0 10vw}.timer-display.black .card{opacity:.25}.timer-display.warning .card{background:#ffc105}.timer-display.warning .time{color:#000}.timer-display.timeout .card{background:#980b19}.timer-display.timeout .time{color:#fff}.timer-display .connecting{background:#17a0b5;border-radius:5px;color:#000;display:none;font-size:16px;left:10px;padding:5px 10px;position:absolute;top:10px}.timer-display .connecting.disconnected{display:initial}.fullscreen .timer-display{cursor:none;margin:0}.fullscreen .timer-display .card{padding-bottom:0}.fullscreen .timer-display.black .card{opacity:0}.fullscreen .controls-display,.fullscreen .timer-display .menu{display:none}.controls-display{display:flex;flex-direction:column;margin:2vh 1vh}.controls{align-items:center;display:flex;flex-direction:row;justify-content:center;margin:10px}.controls button{background:#8c8c8c;border:none;border-radius:10px;color:#000;cursor:pointer;display:inline-block;font-size:20px;padding:0;white-space:nowrap}.controls button:active{background:#d9d9d9}@media(hover:hover){.controls button:hover{background:#d9d9d9}}.controls button.disabled{display:none}.controls button.on{outline:5px solid #8c8c8c;outline-offset:5px}.controls button.on.on:active{outline-color:#d9d9d9}@media(hover:hover){.controls button.on.on:hover{outline-color:#d9d9d9}}.controls.main button{flex-grow:0;flex-shrink:0;margin:0 5px}@media(min-width:500px){.controls.main button{margin:0 10px}}.controls.main button.icon{border-radius:50%;height:95px;width:95px}.controls.main button.icon svg{height:45px;vertical-align:top}.controls.main button.button-pause,.controls.main button.button-start{height:120px;width:120px}.controls.main button.button-pause svg,.controls.main button.button-start svg{height:60px}.controls.main button.button-start svg{padding-left:10px}.controls.secondary button{background:#666}.controls.secondary button:active{background:#b3b3b3}@media(hover:hover){.controls.secondary button:hover{background:#b3b3b3}}@media(min-width:700px){.controls.secondary .secondarySet{border-right:1px solid #666;margin-right:15px;padding-right:20px}}.button-list{background:#2e2e2e;display:block;font-size:1px;height:40px;padding:5px;position:relative;white-space:nowrap}@media(min-width:800px){.button-list{height:50px}}.button-list button{display:inline-block;font-size:16px;height:40px;width:70px}.button-list button.current{border-radius:10px 0 0 10px}.button-list button.up{border-left:1px solid #2e2e2e;border-radius:0 10px 10px 0;width:34px}.button-list button.up svg{height:12px}@media(min-width:500px){.button-list button{font-size:20px;width:100px}.button-list button.up{width:39px}.button-list button.up svg{width:15px}}@media(min-width:700px){.button-list button{width:130px}}@media(min-width:800px){.button-list button{font-size:24px;height:50px;width:150px}.button-list button.up{width:59px}}.button-list ul{background:#2e2e2e;border-radius:15px 15px 0 0;bottom:45px;display:none;left:0;list-style:none;margin:0;padding:0 0 5px;position:absolute}@media(min-width:800px){.button-list ul{bottom:55px}}.button-list.expanded ul{display:block}.button-list li{margin:5px}.button-list li:last-child{border-bottom:1px solid #666;padding-bottom:10px}.qr{align-items:center;background:#fff;color:#000;display:none;fill:#000;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.qr.visible{display:flex}.qr>svg{flex-shrink:1;height:100%;max-height:60%;max-width:80%;padding:2vh 2vw 1vh;shape-rendering:crispEdges;width:100%}.qr p{font-size:20px;margin:1vh 1vw}.qr button{background:none;border:none;cursor:pointer;padding:0;position:absolute;right:10px;top:10px}.qr button svg{fill:#aaa;height:30px;width:30px}.qr button:active svg{fill:#000}@media(hover:hover){.qr button:hover svg{fill:#000}}.timer-display .menu{align-items:center;background:#171717;bottom:0;cursor:default;display:flex;flex-direction:row;height:55px;justify-content:space-between;left:0;position:absolute;width:100%}@media(max-height:580px){.timer-display .menu{background:transparent}}.timer-display .menu .left,.timer-display .menu .right{display:flex;flex-direction:row;padding:5px}@media(min-width:500px){.timer-display .menu .left,.timer-display .menu .right{width:110px}}.timer-display .menu .right{justify-content:flex-end}.timer-display .menu .status{color:#4d4d4d;font-size:16px;height:fit-content}@media(min-width:500px){.timer-display .menu .status{font-size:20px}}@media(max-height:580px){.timer-display .menu .status{display:none}}.timer-display .menu button{background:#2e2e2e;border:none;border-radius:5px;box-sizing:content-box;cursor:pointer;display:block;fill:#666;height:26px;margin:5px;padding:5px;width:26px}@media(hover:hover){.timer-display .menu button:hover{background:grey;fill:#000}}.timer-display .menu button svg{height:100%;width:100%}.timer-display .qr.visible+.menu{display:none}.splash-display{display:flex;flex-direction:column;height:100%;justify-content:center}.splash-display p{color:grey;font-size:30px;padding:0 10px;text-align:center}.splash-display input{font-size:30px;margin:5px;padding:10px;text-align:center}.splash-display input[type=text]{background:#ccc}@media(max-width:500px){.splash-display p{font-size:20px}.splash-display p:last-child{display:flex;flex-direction:row}.splash-display input{display:block;font-size:20px}.splash-display input[type=text]{flex-shrink:1;width:100%}}.container,.show-splash .container{display:none}.show-timer .container{display:flex}.show-timer .page{display:none}.page{font-size:18px;line-height:1.5}.page h2{color:#ccc;font-size:1.2em;font-weight:400;margin:1em 0 .5em}.page p{margin:.5em 0}.page b{color:#ccc;font-weight:inherit}.page a{border-bottom:1px solid #777;color:#777;text-decoration:none}.page a:active,.page a:hover,.page b a{border-bottom-color:#ccc;color:#ccc}.page b a:active,.page b a:hover{border-bottom-color:#fff;color:#fff}.page ul{padding-inline-start:20px}.page li,.page ul{margin:.5em 0}.page{column-gap:30px;display:grid;grid-template-areas:"hd screenshot" "intro howto" "footer footer";grid-template-columns:2fr 3fr;margin:50px auto}@media screen and (max-height:600px){.page{margin-top:20px}}@media screen and (max-width:600px){.page{display:block;font-size:16px;margin-top:0}.intro{border-top:2px solid #777;padding-top:1em}}@media screen and (min-width:820px){.page{column-gap:50px}.page header h1{font-size:2.5em}}@media screen and (max-width:1021px){.page{margin-left:20px;margin-right:20px}}@media screen and (min-width:1020px){.page{column-gap:70px;max-width:1000px}}@media screen and (min-width:1240px){.page{column-gap:100px;max-width:1200px}}.page header{display:flex;flex-direction:column;grid-area:hd;justify-content:flex-end}.screenshot{align-content:end;grid-area:screenshot}.screenshot img{height:auto;max-height:100%;max-width:100%}.intro{grid-area:intro}.howto{grid-area:howto}.page footer{grid-area:footer}.page header,.screenshot{border-bottom:2px solid #777;margin-bottom:20px;padding-bottom:20px}.page footer{border-top:2px solid #777;margin-top:20px;padding-top:20px}.page header h1{color:#ccc;font-size:2em;font-weight:400;margin-bottom:10px}.page header h1 svg{fill:#ffc107;height:1em;vertical-align:-.15em}@media screen and (min-width:1240px){.page header,.screenshot{margin-bottom:30px;padding-bottom:30px}.page header h1{font-size:3em}}.howto section,.intro section{margin:0 0 1.5em}.howto :first-child h2,.intro :first-child h2{margin-top:0}.intro section:first-child{border-bottom:2px solid #777;padding-bottom:20px}.intro :first-child{margin-top:0}.howto li{margin:0}.howto form{padding-left:20px}.howto input.key,.howto input[type=submit]{border-radius:10px;font-size:1em;padding:5px 10px}.howto input.key{background:#ddd;margin:0 .2em 0 0;width:10em}.howto input[type=submit]{background:#ccc;color:#333}.howto input[type=submit]:disabled{opacity:.1}