:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif;color-scheme:dark;--bg:#100d1e;--card:#291b3c;--card2:#211630;--border:#6f488e;--violet:#c777f3;--violet2:#dfa5fa;--text:#f9f2ff;--muted:#b5a0c7;--muted2:#826f98;--good:#b9f5d7}
*{box-sizing:border-box}html{min-height:100%;background:#0d0b18}body{margin:0;color:var(--text);background:radial-gradient(ellipse 65% 28% at 30% 1%,#652c9470,transparent 80%),linear-gradient(160deg,#190f2b,#0e0c1b 62%);min-height:100vh}body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Arial,sans-serif}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:not-allowed}button,input,select,textarea{font-size:16px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #f2c5ff;outline-offset:3px}button:active:not(:disabled){transform:scale(.985)}button,input,select,textarea{appearance:none}input,select,textarea{color:var(--text);background:#1a132a;border:1px solid #65457e;border-radius:11px;padding:11px 12px;width:100%}input::placeholder{color:#917ba7}select{appearance:auto}textarea{resize:vertical;min-height:92px;line-height:1.4}label{display:block;color:#e9daef;font-size:12px;letter-spacing:.03em;font-weight:670;margin-bottom:7px}.shell{width:min(100%,480px);margin:0 auto;min-height:100dvh;padding:env(safe-area-inset-top) 21px calc(env(safe-area-inset-bottom) + 22px)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0 8px;gap:10px}.logo{font-size:27px;font-weight:950;letter-spacing:2px;line-height:1}.logo b{color:var(--violet)}.quiet{font-size:10px;letter-spacing:.18em;font-weight:700;color:#a991be}.header-action,.icon-btn{border:1px solid #5f4674;background:#291d3b;color:#e4c8f3;border-radius:10px;min-height:36px;padding:7px 11px;font-size:12px}.page{display:none}.page.show{display:block}.eyebrow{color:#cf9efa;font-size:10px;letter-spacing:.18em;font-weight:800;text-transform:uppercase}.hero{margin:25px 0 5px;font-size:31px;letter-spacing:-.045em;line-height:1.13}.lede{color:var(--muted);line-height:1.45;margin:10px 0 25px;font-size:13px}.section-h{display:flex;align-items:center;justify-content:space-between;margin:24px 0 11px;gap:8px}.section-h h2{font-size:14px;margin:0;font-weight:850}.mini-action{border:0;background:none;color:#d29deb;font-size:12px;font-weight:700;padding:4px}.players{display:grid;grid-template-columns:1fr 1fr;gap:10px}.player{background:#291c3dc9;border:1px solid #704b88;border-radius:15px;padding:13px 12px}.player-title{font-size:10px;color:#c8a8dd;font-weight:850;letter-spacing:.11em;margin-bottom:12px}.player label{margin-top:9px}.player input,.player select{font-size:14px;padding:10px 8px;max-width:100%}.hint{color:var(--muted2);font-size:11px;line-height:1.5;margin-top:8px}.level-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.level{height:42px;border:1px solid #604277;background:#291a3c;color:#c3a7d5;border-radius:12px;font-weight:900;font-size:16px}.level.selected{background:linear-gradient(135deg,#c174ee,#dfa5fa);border-color:#e8b5f5;color:#281139;box-shadow:0 3px 15px #a454e34d}.categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.category{border:1px solid #5b3c73;border-radius:10px;background:#261933;color:#9f8aaf;font-size:11px;font-weight:680;padding:10px 8px;min-height:41px}.category.selected{background:#56336e;color:#f9eafe;border-color:#ac6ad9}.option-row{border:1px solid #62427c;background:#281b39c9;border-radius:14px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px}.option-row strong{display:block;font-size:13px}.option-row span{display:block;font-size:11px;margin-top:4px;color:var(--muted)}.toggle{width:47px;height:27px;border-radius:20px;border:0;background:#51435d;padding:3px;display:flex;align-items:center;flex:0 0 auto}.toggle.selected{background:#bf76e7;justify-content:flex-end}.toggle:not(.selected){justify-content:flex-start}.toggle:before{content:"";display:block;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0003}.primary{border:0;border-radius:14px;padding:15px 16px;background:linear-gradient(105deg,#b761eb,#e5a6f7);color:#1e0e2c;font-weight:900;letter-spacing:.025em;min-height:48px}.primary.wide{width:100%}.secondary{border:1px solid #79528e;background:#38264d;color:#f8e8fc;border-radius:13px;padding:12px 13px;font-size:13px;font-weight:760}.ghost{border:0;background:none;color:#c49ad7;font-size:12px;padding:8px 6px}.muted{color:var(--muted);font-size:12px}.setup-footer{margin-top:24px}.setup-footer .primary{margin-top:10px}.setup-footer p{text-align:center;font-size:11px;color:#9580aa;line-height:1.4;margin:10px 0 0}.count-chip{font-size:11px;color:#eacdf6;background:#422656;padding:8px 10px;border-radius:20px}.warning{border:1px solid #a96d70;color:#ffd0d0;background:#46242f;border-radius:11px;padding:10px;font-size:12px;line-height:1.5;margin-top:10px;display:none}.warning.show{display:block}
/* Game */
.game-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 6px}.turn-name{font-size:16px;font-weight:900;letter-spacing:.05em;color:#eed0ff}.game-status{color:#ad92c4;letter-spacing:.14em;font-size:10px;font-weight:800;margin-top:5px}.wheel-zone{height:292px;position:relative;display:flex;align-items:center;justify-content:center;transition:height .35s ease,opacity .3s ease;margin:8px 0}.wheel-pointer{position:absolute;top:7px;z-index:3;color:#f0bcfa;font-size:24px;filter:drop-shadow(0 0 7px #d78ef7)}.wheel-disc{position:absolute;width:245px;height:245px;border-radius:50%;border:7px solid #c58af0;background:conic-gradient(#be41c0 0deg 45deg,#4c2ba0 45deg 90deg,#a02da8 90deg 135deg,#33217e 135deg 180deg,#ae48b2 180deg 225deg,#5728a3 225deg 270deg,#8136bc 270deg 315deg,#362786 315deg 360deg);box-shadow:0 0 0 3px #52336b,0 0 37px #b64fe68a;transition:transform 2.15s cubic-bezier(.16,.72,.12,1)}.wheel-disc:after{content:"";position:absolute;inset:9px;border:1px solid #efc1fb80;border-radius:50%}.spin-button{z-index:4;border:2px solid #edbaff;width:123px;height:123px;border-radius:50%;background:radial-gradient(circle at 35% 20%,#2f1c48,#130e25 82%);color:white;box-shadow:0 9px 20px #0008;font-size:26px;font-weight:950}.spin-button small{font-size:10px;display:block;letter-spacing:.1em;font-weight:650;color:#d5b5e4;margin-top:4px}.spin-button:disabled{opacity:1}.dare-card{border:1px solid #9860b7;background:linear-gradient(150deg,#42244dca,#22142ecf);border-radius:20px;min-height:151px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:23px 18px;box-shadow:inset 0 1px #f7caff1b}.dare-text{text-align:center;font-size:clamp(18px,4.4vw,24px);line-height:1.32;font-weight:840;overflow-wrap:anywhere}.dare-placeholder{color:#c3a7d5;font-size:18px;font-weight:560;text-align:center}.favorite{background:none;border:0;color:#b798cc;font-size:19px;min-width:39px;min-height:32px}.favorite.on{color:#f0a0bc}.dare-card-top{width:100%;display:flex;justify-content:flex-end;height:14px;margin-top:-10px}.time-label{margin-top:27px;text-align:center;color:#bca0c8;font-size:10px;letter-spacing:.18em;font-weight:800}.clock{text-align:center;font-weight:300;letter-spacing:-.035em;font-size:62px;font-variant-numeric:tabular-nums;line-height:1.15;margin:6px 0 14px}.time-tools{display:flex;justify-content:center;gap:10px;margin-bottom:16px}.time-tools button{font-size:12px;font-weight:850;padding:11px 15px;background:#32213f;color:#e6c9f4;border:1px solid #795292;border-radius:11px}.time-tools .plus{background:#c982ed;color:#220d31;border-color:#e1a9fc}.game-commands{display:flex;gap:10px}.game-commands .primary{flex:1}.game-commands .secondary{flex:0 0 84px}.sub-controls{display:flex;justify-content:space-between;margin-top:20px;gap:10px}.sub-controls button{border:0;background:none;color:#b8a1c4;font-size:12px;padding:8px 3px}.game-message{font-size:11px;min-height:28px;color:#baa2c9;text-align:center;margin:10px 0 0;line-height:1.4}.game-content{min-height:calc(100dvh - 125px);display:flex;flex-direction:column}.game-content .sub-controls{margin-top:auto;padding-top:22px}.is-running .wheel-zone{height:0;opacity:0;pointer-events:none;margin:0;overflow:hidden}.is-running .dare-card{flex:1;min-height:230px;margin-top:35px;border-color:#bd88d3;box-shadow:inset 0 0 36px #c56cff18}.is-running .dare-text{font-size:clamp(25px,6.5vw,32px);line-height:1.25}.is-running .clock{font-size:clamp(74px,20vw,96px);color:#f4d8ff;margin:14px 0 28px}.is-running .time-tools,.is-running .favorite{display:none}.is-running .game-message{margin-bottom:16px}.is-running .game-commands{margin-top:12px}.is-running .time-label{margin-top:25px}.is-running .game-commands .secondary{flex:1}
/* Library */
.library-title{margin:25px 0 6px;font-size:29px}.library-count{margin:6px 0 20px}.library-search{margin:17px 0 11px}.library-controls{display:flex;flex-wrap:wrap;gap:9px}.library-controls button{flex:1;font-size:12px}.dare-list{margin-top:16px;display:flex;flex-direction:column;gap:10px}.dare-entry{padding:13px 13px 12px;border:1px solid #5a4072;border-radius:13px;background:#251832}.entry-head{display:flex;justify-content:space-between;align-items:start;gap:8px}.entry-text{line-height:1.4;font-weight:730;font-size:13px;overflow-wrap:anywhere;flex:1}.entry-meta{color:#b69bcc;font-size:10px;margin:8px 0 10px;line-height:1.45}.entry-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.entry-actions button{border:0;background:none;color:#d4a5e7;font-size:12px;padding:4px 2px}.entry-disabled{opacity:.5}.smallbtn{border:1px solid #76548b;background:#39264d;color:#efd8f5;border-radius:10px;padding:9px 10px;font-size:12px}.backups{display:flex;gap:7px;margin-top:15px}.backups button{flex:1}.file-input{display:none}.empty{text-align:center;color:#b89fc9;padding:35px 10px;font-size:13px}
/* dialogs */
dialog{width:min(92vw,440px);max-height:min(88dvh,800px);overflow:auto;border:1px solid #9b70b5;background:linear-gradient(160deg,#302045,#1a122b);border-radius:19px;color:white;box-shadow:0 20px 50px #0008;padding:22px}dialog::backdrop{background:#07050bcc;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:10px}.dialog-head h2{font-size:20px;margin:0}.dialog-head button{background:none;border:0;color:#edcafa;font-size:23px}.field{margin:13px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.dialog-actions{display:flex;gap:9px;margin-top:24px}.dialog-actions button{flex:1}.danger{color:#ffb7b7!important}.micro{color:#ac94bc;font-size:11px;line-height:1.5}.toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(100px);opacity:0;pointer-events:none;max-width:min(90vw,430px);width:max-content;text-align:center;padding:12px 18px;border:1px solid #9e6cbe;border-radius:13px;background:#3b2551;color:#fceeff;box-shadow:0 4px 35px #0009;font-size:13px;z-index:200;transition:transform .25s,opacity .25s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.time-option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}.time-option-grid button{border:1px solid #805999;background:#422c5b;border-radius:10px;color:white;padding:13px 4px;font-weight:700;font-size:12px}.time-option-grid button.chosen{background:#d38cef;color:#1e112c}.divider{height:1px;background:#67497b;margin:20px 0}.info-note{font-size:11px;color:#bea5cf;line-height:1.5}.page{animation:enter .2s ease}@keyframes enter{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){.shell{border-left:1px solid #452e58;border-right:1px solid #452e58;background:#161024a8;min-height:100vh}.wheel-disc{width:260px;height:260px}.wheel-zone{height:315px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.wheel-disc{transition:none}}@media(max-height:670px){.wheel-zone{height:238px}.wheel-disc{width:204px;height:204px}.spin-button{width:106px;height:106px}.clock{font-size:48px}.dare-card{min-height:130px}.time-label{margin-top:16px}.game-content{min-height:calc(100dvh - 115px)}}
