:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "PingFang SC", sans-serif; color: #171717; background: #fff; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; padding: max(26px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); }
header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.brand { color: inherit; text-decoration: none; font-size: 23px; font-weight: 800; letter-spacing: -1px; }
.brand-dot { color: #de2727; }
.domain { font-size: 12px; color: #888; }
main { width: 100%; max-width: 1000px; margin: auto; padding: 64px 0 76px; text-align: center; }
form { display: flex; justify-content: center; align-items: center; gap: 18px; }
label { font-size: 17px; color: #555; }
input { appearance: none; -webkit-appearance: none; background: #fff; color: #171717; border: 1px solid #d8d8d8; border-radius: 8px; width: 154px; min-height: 52px; padding: 10px 16px; font: 600 24px/1.2 -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-variant-numeric: tabular-nums; text-align: center; }
input::-webkit-date-and-time-value { text-align: center; }
input:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #de2727; outline-offset: 5px; }
.result { margin-top: 52px; }
h1 { font-size: 19px; font-weight: 500; margin: 0 0 12px; color: #555; }
.time-line { line-height: 1; }
output { font-size: clamp(80px, 22vw, 224px); font-weight: 750; letter-spacing: -.065em; font-variant-numeric: tabular-nums; display: inline-block; padding-right: .065em; }
.day-note { color: #de2727; font-size: 15px; margin: 16px 0 0; min-height: 22px; }
.rule { margin: 30px 0 0; font-size: 16px; color: #666; }
.formula { font-size: 13px; color: #999; margin-top: 9px; }
footer { text-align: center; color: #888; font-size: 12px; }
details { max-width: 380px; margin: 0 auto; }
summary { cursor: pointer; list-style: none; padding: 10px; text-decoration: underline; text-underline-offset: 4px; }
summary::-webkit-details-marker { display: none; }
details p { line-height: 1.8; margin: 6px 0; }
@media (max-width: 480px) { .domain { display: none; } main { padding: 55px 0; } .result { margin-top: 44px; } }
@media (max-height: 500px) { main { padding: 32px 0; } .result { margin-top: 24px; } output { font-size: min(22vw, 130px); } }
