:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif;color:#f5f0ee;background:#0b090b;font-synthesis:none;color-scheme:dark;font-weight:400;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #ffc3ba;outline-offset:6px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}p,h1{margin:0}a{color:inherit;text-decoration:none}#app{width:min(100%,520px);min-height:100svh;margin:auto;padding:calc(22px + env(safe-area-inset-top)) 24px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;position:relative}body{background:radial-gradient(ellipse at 50% 45%,#210b10,#0b090b 60%)}.masthead{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #ffffff13;gap:8px}.wordmark{font-size:18px;letter-spacing:-.7px;font-weight:850;white-space:nowrap;flex:none}.wordmark span{font-weight:400;color:#aaa1a4}.wordmark i{display:inline-block;width:5px;height:5px;background:#ff5143;margin:0 0 3px 5px}.app-title{font-size:10px;line-height:1.4;letter-spacing:0;color:#c2aeb2;text-align:right;white-space:nowrap}.notice{display:flex;gap:10px;padding-top:18px;color:#b7adb0;font-size:14px;line-height:1.65}.notice-mark{flex-shrink:0;display:grid;place-items:center;width:18px;height:18px;border:1px solid #795358;border-radius:50%;font:12px ui-monospace,monospace;margin-top:3px;color:#d89b99}.notice-sub{margin-top:6px;color:#92878a;font-size:14px}main{--beat-duration:1s;--glow:.25;--pulse:1.025;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;padding:24px 0 20px;width:100%}.protocol{display:flex;align-items:center;gap:8px;color:#bd8b8b;font:10px ui-monospace,monospace;letter-spacing:2px}.status-dot{width:5px;height:5px;border-radius:50%;background:#fb685c;box-shadow:0 0 10px #f6434355}.clock-scene{width:min(100%,330px);aspect-ratio:1;position:relative;display:grid;place-items:center;margin:14px 0 18px}.halo{position:absolute;inset:10%;border-radius:50%;background:#cb172b;opacity:.1;filter:blur(38px);pointer-events:none}.dial{position:absolute;inset:4%;border:1px solid #71303a;border-radius:50%;box-shadow:0 0 35px #e6233210,inset 0 0 35px #e623320b}.dial:before{content:"";position:absolute;inset:9px;border-radius:50%;background:repeating-conic-gradient(from -1deg,#bb555555 0deg 1deg,transparent 1deg 6deg);-webkit-mask:radial-gradient(transparent 67%,#000 67%,#000 69%,transparent 69%);mask:radial-gradient(transparent 67%,#000 67%,#000 69%,transparent 69%)}.dial:after{content:"";position:absolute;inset:-2px;border:2px solid transparent;border-top-color:#fa6a5b;border-radius:50%;transform:rotate(-35deg);opacity:.7}.dial span{position:absolute;color:#976269;font:9px ui-monospace,monospace;background:#150b0f;padding:3px}.dial-top{top:-8px;left:calc(50% - 9px)}.dial-right{right:-8px;top:calc(50% - 8px)}.dial-bottom{bottom:-8px;left:calc(50% - 9px)}.dial-left{left:-8px;top:calc(50% - 8px)}.clock-content{position:relative;text-align:center;width:100%}#clock-label{font-size:14px;letter-spacing:2px;color:#d5b4b6;margin-bottom:15px}.digits{font-family:ui-monospace,Cascadia Mono,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-4px;white-space:nowrap;font-size:clamp(46px,13vw,68px);line-height:1.1;font-weight:400;color:#fff5ee;text-shadow:0 0 30px #f24b4522}.digits #digits-fraction{font-size:.43em;letter-spacing:-1px;color:#ef8c82}#clock-caption{font-size:12px;margin-top:16px;color:#a2767e;letter-spacing:.3px}.actions{width:100%;text-align:center;min-height:110px}.primary{border:1px solid #ff7663;border-radius:6px;width:100%;background:linear-gradient(110deg,#f26d54,#ea4a3d);color:#200b0a;padding:17px 18px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;line-height:1.8;box-shadow:0 7px 32px #e9493617;transition:filter .2s,transform .2s}.primary:hover{filter:brightness(1.08)}.primary:active{transform:scale(.985)}.primary strong{font-size:19px;font-weight:700}.button-arrow{font-size:27px;font-weight:300}#stop{font-weight:700;font-size:18px;padding:16px 20px}#action-note{font-size:12px;line-height:1.7;color:#a28e92;margin-top:12px}#message{font-size:23px;line-height:1.6;font-weight:700;letter-spacing:-.4px;margin-bottom:18px;text-wrap:pretty}.secondary{min-height:44px;background:#2d141b;border:1px solid #8d444e;border-radius:5px;color:#f4c2bf;padding:10px 18px;margin-top:10px;font-size:14px}.feedback{font-size:14px;line-height:1.6;color:#e3b2ac;margin-top:12px}.error{color:#ffb7ac}footer{border-top:1px solid #ffffff13;padding-top:15px}.limitation{font-size:12px;line-height:1.8;color:#b9a4a9}#wake-status{font-size:12px;line-height:1.65;color:#948086;margin-top:4px}.footer-line{display:flex;justify-content:space-between;margin-top:17px;color:#7f666f;font:9px ui-monospace,monospace;letter-spacing:1.4px}.footer-line span:last-child{font-family:inherit;letter-spacing:1px}main[data-state=sleeping] .halo,main[data-state=ringing] .halo{animation:glow var(--beat-duration) ease-in-out infinite}main[data-state=sleeping] .dial,main[data-state=ringing] .dial{animation:heartbeat var(--beat-duration) ease-in-out infinite}main[data-intensity="1"]{--glow:.33;--pulse:1.03}main[data-intensity="2"]{--glow:.43;--pulse:1.04}main[data-intensity="3"]{--glow:.54;--pulse:1.05}main[data-intensity="4"]{--glow:.62;--pulse:1.06}main[data-state=sleeping][data-intensity="2"] .clock-content,main[data-state=sleeping][data-intensity="3"] .clock-content{animation:subtle-beat var(--beat-duration) ease-in-out infinite}main[data-state=sleeping][data-intensity="4"] .digits{font-size:clamp(53px,15vw,78px);color:#ffdad1}main[data-state=ringing] .digits{color:#fb715f}main[data-state=locked] .dial{border-color:#514048}main[data-state=locked] .dial:after{opacity:.25}main[data-state=locked] .digits{font-size:clamp(36px,11.7vw,57px);letter-spacing:-3px}main[data-state=locked] #message{font-size:19px;font-weight:500}main[data-state=locked] .halo{opacity:.04}main[data-state=locked] .status-dot{background:#a18b94;box-shadow:none}@keyframes heartbeat{0%,45%,to{transform:scale(1)}13%{transform:scale(var(--pulse))}28%{transform:scale(1)}35%{transform:scale(calc(1 + (var(--pulse) - 1) * .65))}}@keyframes glow{0%,55%,to{opacity:calc(var(--glow) * .45);transform:scale(.95)}13%,35%{opacity:var(--glow);transform:scale(1.08)}}@keyframes subtle-beat{0%,45%,to{transform:scale(1)}13%,35%{transform:scale(1.012)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}main[data-state=ringing] .clock-scene,main[data-state=locked] .clock-scene{width:min(100%,270px);margin-top:8px;margin-bottom:12px}.splash{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:32px;overflow:hidden;background:radial-gradient(ellipse at center,#4b0e19,#1b080e 45%,#080608 78%);opacity:0;transition:opacity 1s cubic-bezier(.7,0,.9,.25);pointer-events:auto}.splash.is-visible{opacity:1;transition-timing-function:cubic-bezier(.05,.9,.2,1)}.splash.is-fading{opacity:0;pointer-events:none}.splash-notice{position:relative;z-index:1;width:min(100%,440px);padding:29px 24px;border:1px solid #b74350;border-radius:4px;background:linear-gradient(145deg,#251016,#100a0d);color:#fff0ec;font-size:17px;font-weight:600;line-height:1.85;box-shadow:0 0 25px #ff293d55,0 0 90px #ec172d35,inset 0 0 25px #f42c3317;transform:scale(1.12);filter:blur(7px);transition:transform 1s cubic-bezier(.12,.9,.2,1),filter 1s cubic-bezier(.12,.9,.2,1),box-shadow 1s ease}.splash.is-visible .splash-notice{transform:scale(1);filter:blur(0);box-shadow:0 0 42px #ff293d88,0 0 130px #ec172d55,inset 0 0 35px #f42c3328}.splash.is-fading .splash-notice{transform:scale(.88);filter:blur(9px)}.splash-frame{position:absolute;inset:20px;border:1px solid #fc526b44;box-shadow:inset 0 0 70px #ed18321c,0 0 55px #ec293019;opacity:.85}.splash.is-visible .splash-frame{animation:frame-surge 1.8s ease-in-out infinite alternate}@keyframes frame-surge{0%{opacity:.38;filter:brightness(.8)}to{opacity:1;filter:brightness(1.5)}}.splash-progress{position:absolute;left:20px;right:20px;bottom:24px;height:3px;background:#60202c;box-shadow:0 0 15px #fa354b44}.splash-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#ff3853,#ffbaa7);box-shadow:0 0 18px #ff445a;transform:scaleX(0);transform-origin:left}.splash.is-visible .splash-progress span{transition:transform 5.5s linear;transform:scaleX(1)}.primary .button-arrow{width:42px;height:42px;display:grid;place-items:center;border:1px solid #200b0a44;border-radius:50%;font-size:23px;animation:tap-guide 1.8s ease-in-out 3 both}@keyframes tap-guide{0%,to{transform:translateY(0);box-shadow:0 0 #4b111b00}45%{transform:translateY(5px);box-shadow:0 0 0 7px #4b111b13}}.notice-footer{display:block;padding-top:10px;padding-bottom:12px;font-size:11px;line-height:1.65;color:#81777b;opacity:.8}.notice-footer .notice-sub{font-size:11px;margin-top:3px;color:#81777b}@media(prefers-reduced-motion:reduce){.splash,.splash-notice{transition:none}.splash.is-visible .splash-frame{animation:none}.splash.is-visible .splash-progress span{transition:none;transform:scaleX(1)}.primary .button-arrow{animation:none}}@media(min-width:700px){#app{border-left:1px solid #ffffff09;border-right:1px solid #ffffff09;padding-left:36px;padding-right:36px}.clock-scene{width:350px}.masthead{padding-top:12px}.app-title{font-size:12px}}@media(max-height:780px)and (max-width:600px){#app{padding-top:calc(15px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.masthead{padding-bottom:12px}.notice{padding-top:12px;line-height:1.5}.notice-sub{margin-top:4px}main{padding:17px 0 16px}.clock-scene{width:270px;margin:8px 0 12px}.primary{padding-top:12px;padding-bottom:12px}.footer-line{margin-top:10px}}@media(max-width:360px){#app{padding-left:17px;padding-right:17px}.masthead{align-items:center;gap:5px}.app-title{font-size:9px;white-space:normal;max-width:145px}.clock-scene{width:255px}.primary{padding-left:12px;padding-right:12px}.primary strong{font-size:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.halo{opacity:.12!important}}
