*,*:before,*:after{box-sizing:border-box;margin:0}body{font-family:system-ui,-apple-system,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100dvh;background:#111;color:#eee}#app{text-align:center;padding:2rem;max-width:400px;width:100%}h1{font-size:1.5rem;margin-bottom:1.5rem}label{display:block;margin-bottom:.25rem;font-size:.875rem;color:#aaa}.duration-stepper{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.duration-stepper button{width:3rem;height:3rem;font-size:1.5rem;padding:0;border-radius:50%;flex-shrink:0}input[type=number]{flex:1;min-width:0;padding:.75rem;font-size:1.25rem;border:1px solid #333;border-radius:.5rem;background:#222;color:#eee;text-align:center;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{padding:.75rem 1.5rem;font-size:1rem;border:none;border-radius:.5rem;background:#2563eb;color:#fff;cursor:pointer;margin:.25rem}button:hover{background:#1d4ed8}#reset-btn{background:#dc2626}#reset-btn:hover{background:#b91c1c}#countdown{font-size:clamp(3rem,18vw,5.5rem);font-variant-numeric:tabular-nums;letter-spacing:.06em;margin-bottom:1.25rem}#qr-container{margin-bottom:1rem}#qr-container canvas{border-radius:.5rem}.share-instructions{margin-bottom:1.5rem}.view[hidden]{display:none}#countdown.timer-finished{animation:timer-finished-flash .4s ease-in-out 20}@keyframes timer-finished-flash{0%,to{background:transparent;color:#eee}50%{background:#eee;color:#111}}
