@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--paper:#f5f1e8;--ink:#302c43;--muted:#817c89;--purple:#7460a7;--accent:#de8154;--progress:0deg}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;height:100vh;height:100dvh;display:flex;flex-direction:column}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--purple);outline-offset:4px}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}
.header{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.brand{text-decoration:none;color:var(--ink);font-family:Outfit,sans-serif;font-size:26px;font-weight:700;letter-spacing:-1.5px;display:flex;align-items:center;gap:9px}.brand-icon{display:grid;place-items:center;font-size:27px;background:var(--purple);color:white;width:33px;height:33px;border-radius:50%;letter-spacing:0}.brand-dot{color:var(--accent);margin-left:-8px}.toolbar{display:flex;align-items:center;gap:10px}#selection-summary{font-size:12px;color:var(--muted);margin-right:8px}.toolbar-button,.close-button{border:1px solid #dcd4e1;background:#ffffff65;border-radius:12px;padding:10px 14px;font-size:13px}.toolbar-button:hover,.close-button:hover{background:#ece5f0}
main{flex:1;min-height:0;display:grid;padding:0 24px 16px}.timer-panel{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.clock-wrap{position:relative;padding-bottom:16px;flex-shrink:0}.clock{position:relative;width:min(calc(100vw - 64px),calc(100vh - 255px));width:min(calc(100vw - 64px),calc(100dvh - 255px));aspect-ratio:1;border-radius:50%;border:clamp(6px,1.1vmin,12px) solid #fffaf3;outline:1px solid #e9e1d5;box-shadow:0 12px 35px #6653430d;overflow:hidden;background:#ede5d9}.reveal-image{width:100%;height:100%;object-fit:contain;padding:6%;display:block}.clock-face{position:absolute;inset:0;background:#e53935;mask-image:conic-gradient(transparent 0deg var(--progress),#000 var(--progress) 360deg);-webkit-mask-image:conic-gradient(transparent 0deg var(--progress),#000 var(--progress) 360deg)}.clock.complete .clock-tag{position:absolute;bottom:3px;left:50%;transform:translateX(-50%) rotate(-3deg);background:#ede4f4;color:#726083;border:4px solid var(--paper);border-radius:20px;white-space:nowrap;padding:7px 15px;font-size:11px}.spark{position:absolute;color:var(--accent);z-index:1}.spark-one{left:-19px;top:12%;font-size:32px;transform:rotate(15deg)}.spark-two{right:-17px;bottom:16%;font-size:28px;color:var(--purple)}.readout{margin-top:0}#remaining{font:500 clamp(44px,7vh,72px)/1.05 Outfit,sans-serif;letter-spacing:-2px;font-variant-numeric:tabular-nums}.readout p{font-size:12px;color:var(--muted);min-height:16px;margin:8px 0 14px}.actions{display:flex;justify-content:center;gap:10px}.start{background:var(--purple);color:white;border:0;border-radius:12px;padding:14px 30px;font-size:14px;font-weight:600;min-width:190px;box-shadow:0 5px 10px #7460a71a}.start:hover{background:#655096}.start span{font-size:11px;margin-right:9px}.reset{border:1px solid #dcd4e1;background:transparent;border-radius:12px;font-size:25px;width:48px}.reset:hover{background:#ece5f0}.audio-status{font-size:11px;color:#9d5939;max-width:360px;margin:8px auto 0}.audio-status:empty{display:none}
#settings-dialog{background:var(--paper);color:var(--ink);width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid #e1d8e7;border-radius:24px;padding:26px;box-shadow:0 24px 90px #302c4340;overflow:auto}#settings-dialog::backdrop{background:#302c4375;backdrop-filter:blur(6px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-heading h1{font:600 27px Outfit,sans-serif;letter-spacing:-.6px;margin:0}.close-button{font-size:25px;line-height:1;padding:7px 11px}#settings-description{font-size:13px;color:var(--muted);margin:10px 0 26px}fieldset{border:0;padding:0;margin:0 0 24px}legend{padding:0;margin:0 0 14px;font-size:13px;font-weight:700}.step{font-size:10px;color:#a49eaf;margin-right:9px;font-weight:500}.character-options,.duration-options{display:flex;gap:10px}.character{border:1.5px solid #dfd9d0;border-radius:15px;background:#ffffff45;display:flex;align-items:center;flex:1;min-width:0;padding:12px 10px;gap:9px;text-align:left;position:relative}.character.selected{border-color:var(--purple);background:#ebe5f3}.portrait{display:block;width:40px;height:57px;overflow:hidden;border-radius:8px;flex-shrink:0}.portrait.woody{background:#f0d8b1}.portrait.buzz{background:#d7e3cc}.portrait img{width:100%;height:115%;object-fit:contain;object-position:top;padding-top:4px}.character-label{font-size:14px;font-weight:700}.character-label small{display:block;font-size:8px;font-weight:400;color:var(--muted);margin-top:5px}.radio-dot{width:10px;height:10px;border:1px solid #c8bfd3;border-radius:50%;position:absolute;right:8px;top:8px}.selected .radio-dot{border:3px solid var(--purple);background:white}.duration{border:1.5px solid #dfd9d0;background:#ffffff45;border-radius:12px;padding:12px;flex:1;font:600 25px Outfit,sans-serif}.duration span{font:400 12px 'DM Sans',sans-serif;margin-left:3px}.duration.selected{border-color:var(--purple);background:#ebe5f3;color:#63518c}.sound-test{border:0;background:none;padding:0;font-size:12px;color:#66557f;display:flex;gap:8px;align-items:center}.sound-test span{font-size:20px}.sound-note{font-size:11px;line-height:1.7;color:var(--muted);margin:8px 0 0 23px}.modal-done{width:100%;margin-top:24px}#settings-locked{margin-top:18px;padding:14px;background:#ebe5f3;border-radius:12px}#settings-locked p{font-size:12px;line-height:1.6;margin:0 0 10px}
@media(max-width:600px){.header{padding:12px 16px;gap:8px}.brand{font-size:22px;gap:6px}.brand-icon{width:28px;height:28px;font-size:23px}.toolbar{gap:6px}.toolbar-button{padding:10px;font-size:12px}#selection-summary{display:none}main{padding:0 20px 16px}.readout p{font-size:11px}.clock{width:min(calc(100vw - 56px),calc(100dvh - 240px))}#settings-dialog{padding:22px}.character{padding:12px 8px;gap:7px}.portrait{width:34px}.sound-note{font-size:10px}}
@media(max-height:500px) and (min-width:600px){.header{padding:8px 20px}.timer-panel{display:grid;grid-template-columns:auto minmax(220px,1fr);grid-template-rows:1fr auto auto 1fr;column-gap:40px;width:fit-content;margin:auto}.clock-wrap{grid-column:1;grid-row:1/5}.clock{width:min(calc(100dvh - 100px),45vw)}.readout{grid-column:2;grid-row:2}.actions{grid-column:2;grid-row:3}.audio-status{grid-column:2;grid-row:4}#remaining{font-size:60px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
