*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#211a30;color:#f8e9ca;font-family:'MS Gothic','Yu Gothic',monospace}body{background:radial-gradient(ellipse at top,#513b53,#211a30)}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #ffe59f;outline-offset:4px}.shell{max-width:620px;margin:auto;background:#30243d;min-height:100dvh;box-shadow:0 0 70px #160e24}header{height:40px;padding:8px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:2px solid #755b78;background:#241c31}header a{font-size:10px;color:#d9c7da;text-decoration:none}header>span{font-size:8px;color:#ae91b3;letter-spacing:1px}.small{font-size:10px;padding:7px 10px;border:1px solid #967593;color:#f7d8e3;background:#44314f;border-radius:0}.heading{padding:11px 18px 10px;text-align:center}.heading>p{font-size:8px;letter-spacing:2px;color:#c7a2c7;margin:0 0 7px}h1{margin:0 0 11px;letter-spacing:3px;color:#ffe2a8;text-shadow:3px 3px #7a5274;font-size:36px}h1 span{color:#efb0ce}.stats{display:flex;align-items:center;justify-content:space-between;border:2px solid #af9094;box-shadow:3px 3px #1d1528;background:#241c31;padding:8px 13px;text-align:left;font-size:12px}.stats strong{font-size:28px;color:#f1b4d0}.stats>div:last-child{display:flex;flex-direction:column;gap:5px;text-align:right;font-size:10px}.stats span{color:#bca0c8;font-size:9px}.wake-label{display:flex;justify-content:space-between;font-size:9px;color:#c4a6c8;margin:11px 0 5px}.wake-label b{color:#f6b2c8}.wake-track{height:7px;border:1px solid #775474;background:#201629}#wake-bar{height:100%;width:0;background:#e999b0}#room{--open:0;position:relative;isolation:isolate;aspect-ratio:4/5;max-height:740px;background:#b18b96 url('/sleep-room-pov.png') center/100% 100% no-repeat;image-rendering:pixelated;border-block:3px solid #85617b;overflow:hidden;touch-action:none}#room:before{content:'';position:absolute;inset:0;background:#38234625;z-index:0;pointer-events:none}.light-beam{position:absolute;inset:22% 0 0;clip-path:polygon(9% 0,41% 0,90% 100%,34% 100%);background:#ffe8a16e;opacity:0;pointer-events:none;z-index:1}.window-frame{position:absolute;left:6%;top:16%;width:39%;height:31%;background:#93b6cb;border:5px solid #795a60;box-shadow:4px 5px #583f5366,inset 0 0 0 3px #ead1b3;z-index:2}.sky{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#b3c9da,#fbd8a0);box-shadow:inset 0 0 0 4px #e9cfac}.sun{position:absolute;right:14%;top:17%;height:22%;aspect-ratio:1;background:#fff1b3;box-shadow:0 0 12px #ffda99}.city{position:absolute;bottom:0;left:0;right:0;height:30%;background:repeating-linear-gradient(90deg,#8792ab 0 15px,#a7a1b5 15px 28px,#73869f 28px 43px);clip-path:polygon(0 25%,15% 25%,15% 5%,30% 5%,30% 30%,48% 30%,48% 0,62% 0,62% 25%,80% 25%,80% 12%,100% 12%,100% 100%,0 100%)}.window-cross{position:absolute;left:48%;top:0;width:5%;height:100%;background:#c2a080;box-shadow:3px 0 #e2c8a6;pointer-events:none}.window-cross:after{content:'';position:absolute;left:-950%;top:48%;width:2000%;height:5%;background:#c2a080}.curtain-rail{position:absolute;left:-10%;right:-10%;top:-12px;height:7px;background:#b78e80;box-shadow:0 3px #70505e;z-index:5}.curtain{position:absolute;top:-3px;bottom:-5px;width:53%;background:repeating-linear-gradient(90deg,#baa2bf 0 9px,#a17da6 9px 18px,#ccb5ca 18px 23px);border-bottom:6px solid #997497;box-shadow:3px 4px #49314f44;z-index:3;will-change:transform;transition:transform .5s ease}.curtain.left{left:-2px;transform:translateX(calc(var(--open)*-83%))}.curtain.right{right:-2px;transform:translateX(calc(var(--open)*83%))}.window-frame.dragging .curtain{transition:none}.curtain-handle{position:absolute;top:28%;width:30px;height:48%;min-height:44px;border:0;border-radius:0;background:transparent;color:#f9dfb5;font-size:24px;text-shadow:2px 2px #6b476f;touch-action:none;z-index:6;cursor:ew-resize;padding:0}.left .curtain-handle{right:-11px}.right .curtain-handle{left:-11px}.window-frame.active .curtain-handle{color:#fff2ae;text-shadow:0 0 8px #fff0bf}.window-sill{position:absolute;left:-6%;right:-6%;bottom:-12px;height:12px;background:#bd9576;border-top:4px solid #e8c7a4;box-shadow:2px 4px #795b61}.television{position:absolute;left:61%;top:19%;width:32%;height:24%;background:#352b42;border:5px solid #57475c;box-shadow:4px 5px #49314e77;z-index:2;padding:3px}.tv-screen{position:relative;background:#211e30;height:91%;overflow:hidden;box-shadow:inset 0 0 0 2px #151625}.tv-led{position:absolute;bottom:2px;right:8px;width:4px;height:4px;background:#9a5c70}.tv-stand{position:absolute;left:37%;width:26%;height:13px;bottom:-18px;background:#54424f;border-bottom:5px solid #736073}.news{display:none;position:absolute;inset:0;background:#b8d0d6;color:#eaf6ff;overflow:hidden}.television.on .news{display:block}.television.on .tv-led{background:#b4d3a5}.television.on{box-shadow:0 0 18px #a4c8e362,4px 5px #49314e77}.news-title{position:absolute;top:6px;left:6px;padding:2px 4px;background:#5f82ab;font-size:8px;font-weight:bold}.presenter{position:absolute;left:17%;top:30%;width:24%;height:36%;background:#e6c0ac;border-top:7px solid #534358;box-shadow:0 17px #60798f}.news-lines{position:absolute;left:55%;right:6%;top:40%}.news-lines i{display:block;height:4px;background:#7295ad;margin-bottom:6px}.news-ticker{position:absolute;bottom:0;background:#4e6e9c;color:white;font-size:7px;padding:4px;white-space:nowrap;animation:news-ticker 7s linear infinite}.alarm-clock{position:absolute;left:73%;top:55%;width:22%;height:17%;min-height:78px;z-index:3;max-height:125px}.clock-body{position:absolute;top:23%;left:0;right:0;height:66%;border:4px solid #86536d;background:#d89cae;box-shadow:4px 5px #53394d66;padding:12% 6% 4%;border-radius:7px 7px 2px 2px}.digital{background:#4a4355;color:#f6dca5;border:2px solid #b68192;font:bold clamp(11px,3vw,22px) monospace;text-align:center;padding:4px 0;white-space:nowrap}.clock-label{font-size:5px;letter-spacing:2px;color:#7a455c;display:block;text-align:center;margin-top:4px}#snooze{position:absolute;left:14%;top:0;width:72%;height:27%;min-height:28px;border:3px solid #945b77;background:#f2c3cf;color:#7c4b65;font:bold 6px monospace;letter-spacing:1px;padding:0;z-index:3;border-radius:4px 4px 0 0}#snooze:before{content:'';position:absolute;inset:-7px}.clock-foot{position:absolute;bottom:0;width:11%;height:12%;background:#84526a}.clock-foot.one{left:10%}.clock-foot.two{right:10%}.alarm-bells{position:absolute;inset:0;pointer-events:none}.alarm-bells i{position:absolute;left:-7%;top:6%;width:27%;height:21%;background:#d89eaf;border:3px solid #8c566e;transform:rotate(-20deg)}.alarm-bells i+i{left:auto;right:-7%;transform:rotate(20deg)}.ring-lines{position:absolute;top:-25%;right:0;color:#ffe3a5;font-size:22px;opacity:0;pointer-events:none}.alarm-clock.ringing .ring-lines{opacity:1;animation:ring .3s steps(2) infinite}.alarm-clock.ringing{animation:ring .22s steps(2) infinite}.alarm-clock.ringing #snooze{background:#ffe0a7;box-shadow:0 0 10px #fff0ba}.smartphone{position:absolute;right:6%;top:77%;width:14%;height:17%;min-width:48px;min-height:78px;max-height:125px;background:#49364e;border:3px solid #76546b;box-shadow:4px 5px #4c324f77;border-radius:6px;z-index:4;padding:9px 4px 8px;transform:rotate(8deg)}.phone-speaker{position:absolute;top:3px;left:32%;width:36%;height:2px;background:#a7879d}.phone-display{position:relative;display:flex;height:100%;background:linear-gradient(#665671,#483a5c);color:#e2cbdc;flex-direction:column;align-items:center;padding-top:10%;gap:6px}.phone-display b{font:bold clamp(8px,2vw,13px) monospace}.phone-display>span{font-size:6px}.phone-call-symbol{display:none;font-style:normal;font-size:20px;color:#f5c6d5}.smartphone.calling{animation:phone-vibrate .3s steps(2) infinite;box-shadow:0 0 15px #f3b7cf,4px 5px #49324b77}.smartphone.calling .phone-display{background:#7f5c8b}.smartphone.calling .phone-call-symbol{display:block}.smartphone.has-notice .phone-display{background:#866b91}.home-mark{position:absolute;bottom:3px;left:30%;width:40%;height:2px;background:#a68ca7}.remote{position:absolute;left:15%;top:74%;width:13%;height:22%;min-width:44px;max-height:160px;min-height:106px;z-index:3;background:#70647d;border:3px solid #a297a8;border-radius:5px;box-shadow:4px 6px #48314d66;transform:rotate(-13deg);padding-top:36px;text-align:center}#tv-power{position:absolute;top:4px;left:8%;width:84%;height:31px;border:2px solid #d39a9c;border-radius:50%;background:#b66378;color:#fbe4d4;padding:0;font-size:16px}#tv-power:before{content:'';position:absolute;inset:-5px}.remote.active #tv-power{background:#e39b9d;box-shadow:0 0 10px #ffdcbd}.remote-brand{font:6px monospace;color:#d1c0cf}.remote-pad{width:70%;aspect-ratio:1;margin:4px auto;background:#8d7b96;border:2px solid #53465f;color:#d5bed6;display:grid;place-items:center;font-size:16px}.remote-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:5px 8px}.remote-buttons i{height:4px;background:#493f56}.sleep-z{position:absolute;left:44%;bottom:15%;color:#e5c9df;font:20px monospace;letter-spacing:7px;pointer-events:none;z-index:1;animation:dream 3s infinite}.notification{--dx:0px;--dy:0px;position:absolute;left:4%;top:3%;width:92%;z-index:8;background:#f0e6edec;border:2px solid #ac8ba4;border-radius:10px;color:#543b57;padding:9px 12px;text-align:left;box-shadow:3px 5px #36203c55;touch-action:none;user-select:none;transform:translate(var(--dx),var(--dy));min-height:88px;backdrop-filter:blur(6px)}.notification:before{content:'';display:block;width:30px;height:3px;background:#bca2b7;margin:0 auto 8px}.notification .app{display:flex;justify-content:space-between;font-size:8px;color:#90718b}.notification strong{font-size:12px;margin:6px 0;display:block}.notification .swipe-label{font-size:9px;color:#967c90}.notification.grabbed{z-index:10}.notification.departing{pointer-events:none;animation:notice-out .25s ease-out forwards}.phone-panel{position:absolute;inset:0;z-index:12;background:#20142b88;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px)}.phone-view{position:relative;width:64%;max-width:240px;height:85%;max-height:430px;background:linear-gradient(#77648a,#3e2d58);border:6px solid #38283f;box-shadow:6px 7px #24182c77;border-radius:24px;padding:42px 15px 20px;text-align:center;color:#ead5e5}.phone-notch{position:absolute;top:9px;left:36%;width:28%;height:9px;background:#31223a;border-radius:6px}.phone-close{position:absolute;top:19px;right:8px;width:35px;height:35px;background:transparent;border:0;color:#e6d1e3;font-size:23px;z-index:2}.incoming-caption{font-size:10px;color:#cdb4d1}.caller-avatar{width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:#a68bad;margin:18px auto 10px;color:#f6dfeb;font-size:30px}.phone-view h2{font-size:22px;margin:10px 0}.phone-view p{font-size:10px;line-height:1.8;color:#cfb8d6}.decline{display:block;width:64px;height:64px;border-radius:50%;background:#cc6c89;color:#fff0eb;border:3px solid #edacc0;font-size:26px;margin:25px auto 0;padding:5px}.decline small{display:block;font-size:8px}.quiet-clock{display:block;font:32px monospace;margin:30px auto}.pov{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:2px;color:#f3d6d288;pointer-events:none;z-index:5}#feedback{position:absolute;left:7%;right:7%;bottom:5%;margin:0;padding:8px 10px;border:1px solid #b18ba3;background:#332239db;color:#ffe0b3;text-align:center;font-size:11px;line-height:1.6;z-index:10;pointer-events:none}.instruction{padding:14px 16px;text-align:center}.instruction strong{font-size:12px;color:#ffe0a7}.instruction p{color:#bba0c5;font-size:10px;line-height:1.8;margin:7px 0 0}footer{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;min-height:42px;border-top:1px solid #62486c;font-size:10px;color:#d6b5c8}.footnote{font-size:8px;color:#9f84ab;text-align:center;line-height:1.8;margin:0;padding:0 12px 12px}.overlay{position:fixed;inset:0;z-index:20;background:#1d132cc4;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}.panel{max-width:430px;width:100%;padding:24px 20px;background:#30233ff7;border:3px solid #b991a8;box-shadow:6px 6px #1c1226;text-align:center;color:#e8d2e3}.eyebrow{color:#cda1c5;font-size:9px;letter-spacing:2px}h2{color:#ffe1ac;font-size:22px;line-height:1.5}.panel>p{font-size:12px;line-height:1.9}.how{font-size:11px;line-height:1.9;margin:18px 0;padding:12px 0;border-block:1px solid #795b7e}.how b{color:#c4e4c8}.primary{width:100%;padding:14px 10px;background:#ecb3ce;color:#4a2c49;border:2px solid #ffdae6;box-shadow:4px 4px #8c5b79;font-size:15px;font-weight:bold;border-radius:0}.primary:hover{filter:brightness(1.1)}#share{margin:15px auto 0}#result-score{font-size:44px;font-weight:bold;color:#f1b6d1;margin:15px 0}#result-score small{font-size:16px}#rank{font-size:12px;color:#ffe1a8}.hidden{display:none!important}@keyframes ring{50%{transform:rotate(3deg)}}@keyframes phone-vibrate{50%{transform:rotate(11deg)}}@keyframes dream{50%{opacity:.5;transform:translateY(-5px)}}@keyframes news-ticker{to{transform:translateX(-25%)}}@keyframes notice-out{to{transform:translateY(-200px);opacity:0}}@media(max-width:380px){header>span{display:none}.heading{padding-inline:12px}h1{font-size:30px}.clock-label{display:none}.alarm-clock{min-height:70px}#snooze{min-height:26px;font-size:5px;letter-spacing:0}.digital{font-size:10px}.remote-buttons{gap:3px;margin:4px 6px}.phone-view{width:70%;padding-top:30px}.caller-avatar{width:48px;height:48px;font-size:25px;margin:12px auto 8px}.decline{margin-top:15px}.phone-view h2{font-size:19px}.phone-view p{font-size:9px}.panel{padding:18px}h2{font-size:20px}}@media(max-height:700px){header{height:34px}.heading{padding:6px 12px 8px}.heading>p{display:none}h1{font-size:27px;margin-bottom:7px}.stats{padding:4px 10px}.stats strong{font-size:23px}.wake-label{margin:8px 0 4px}#room{aspect-ratio:auto;height:max(360px,calc(100dvh - 240px));max-height:none}.instruction{padding:9px 12px}.instruction strong{font-size:11px}.instruction p{font-size:9px;margin-top:5px}.footnote{display:none}footer{min-height:36px;padding:6px 12px}.alarm-clock{min-height:72px}.clock-label{display:none}.remote{min-height:104px}.phone-view{height:88%;padding-top:30px}.caller-avatar{width:46px;height:46px;font-size:23px;margin:9px auto}.phone-view h2{font-size:18px;margin:7px 0}.phone-view p{font-size:9px}.decline{margin-top:14px;width:55px;height:55px;font-size:23px}.panel{padding:18px}.panel>p{font-size:11px}}@media(prefers-reduced-motion:reduce){.alarm-clock,.ring-lines,.smartphone,.sleep-z,.news-ticker,.notification{animation:none!important}.curtain{transition:none}.notification.departing{opacity:0}}
/* Keep the physical clock on the bedside tabletop. */
.television{top:16%;height:22%}.alarm-clock{left:77%;top:39%;width:19%;height:12%;max-height:95px}.clock-label{font-size:5px}.clock-body{padding-top:10%}@media(max-width:380px){.alarm-clock{left:76%;width:21%;min-height:72px}}@media(max-height:700px){.alarm-clock{min-height:76px}}
