@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap');
:root{--cream:#fbf7f0;--ink:#2d2a26;--clay:#c96f4a;--rust:#a34f2e;--stone:#f3ede3;--line:#e5ddd3;--muted:#6b6259;--sage:#36543a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 Inter,system-ui,sans-serif}a{color:inherit}button,input,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}[hidden]{display:none!important}
.shell{width:min(1120px,calc(100% - 64px));margin:auto}header{display:flex;align-items:center;gap:28px;min-height:86px;border-bottom:1px solid var(--line)}.brand{font:600 36px/1 Fraunces,Georgia,serif;letter-spacing:-.06em;text-decoration:none;margin-right:auto}.brand span{color:var(--rust)}.nav{text-decoration:none;font-size:14px}
.hero{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:clamp(35px,7vw,110px);padding:clamp(55px,9vw,122px) 0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.17em;color:var(--rust);margin:0 0 16px}.eyebrow span{display:inline-block;width:7px;height:7px;background:var(--clay);border-radius:50%;margin-right:5px}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:500;line-height:1.03;letter-spacing:-.045em;margin:0}h1{font-size:clamp(58px,8vw,114px)}h1 em{color:var(--rust);font-weight:400}h2{font-size:clamp(33px,4vw,55px)}h3{font-size:26px}.intro{font-size:18px;max-width:430px;margin:24px 0}.note,.muted,footer p{color:var(--muted);font-size:14px}.button,.outline{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 18px;border-radius:8px;text-decoration:none;font-weight:600;border:1px solid transparent}.button{color:var(--cream);background:var(--rust)}.button:hover{background:#8f4526}.button:active{background:#7a3a20}.small{font-size:14px}.outline{background:transparent;border-color:#a89b8d;color:var(--ink)}
.example{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(20px,4vw,38px);box-shadow:0 12px 38px #3824170b}.example-top,.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.tag{font-size:12px;background:var(--stone);border-radius:20px;padding:4px 12px}.timeline{margin:20px 0}.row{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:15px 0;border-top:1px solid var(--line)}.row time{font-size:23px;font-variant-numeric:tabular-nums;font-weight:600}.row small{display:block;color:var(--muted)}.row .logged{color:var(--sage)}.row.moved{padding-left:10px;border-left:3px solid var(--clay)}.reason{border-top:1px solid #d8a38e;padding:10px 0;margin:10px 0}.reason summary{color:var(--rust);cursor:pointer;font-weight:600;min-height:32px}.reason p{margin:4px 0 8px}.tool-band{background:var(--stone);padding:65px 0}.tool{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;scroll-margin-top:20px}.section-intro p:last-child{max-width:260px}.result{grid-column:2}.actions{justify-content:flex-start;margin:14px 0}fieldset{border:0;padding:0;margin:0 0 14px}legend,label{font-weight:600;margin-bottom:6px}select{min-height:44px;background:white;border:1px solid #a89b8d;border-radius:6px;padding:4px 8px;color:var(--ink)}fieldset select{margin-right:8px}.error{color:#8e3028}footer{padding:30px 0;display:flex;gap:20px;align-items:center}footer p{margin:0}:focus-visible{outline:2px solid var(--rust);outline-offset:4px}
@media(max-width:760px){.shell{width:calc(100% - 32px)}header{gap:12px}.nav{display:none}.hero,.tool{grid-template-columns:1fr;gap:25px}.result{grid-column:auto}.hero{padding:45px 0}.tool-band{padding:38px 0}h1{font-size:clamp(52px,13vw,82px)}footer{align-items:flex-start;flex-direction:column}.row{grid-template-columns:70px 1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.row form{gap:8px;margin:10px 0 0}.row input[type=time]{min-height:44px;max-width:100%;border:1px solid #a89b8d;border-radius:6px;padding:4px 8px}.row small.error{color:#8e3028;flex-basis:100%}.row small.error:empty{display:none}.row label{margin:0}

.tool:has(.result:not([hidden])){display:block;max-width:760px}.tool:has(.result:not([hidden])) .result{width:100%}.result:focus,#setup:focus{outline:none}
