:root{--paper:#fdfcf8;--trace:#f5ecd7;--trace-deep:#ecdfc0;--ink:#22303c;--ink-soft:#52616e;--line:#d4cdbc;--redline:#b0371c;--approved:#2f6b4f;--hold:#8a6d1f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Archivo,system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;letter-spacing:.02em}.wrap{max-width:980px;margin:0 auto;padding:0 20px}.topbar{border-bottom:2px solid var(--ink);background:var(--paper)}.topbar-inner{display:flex;align-items:baseline;justify-content:space-between;padding:14px 0}.logo{font-weight:800;font-size:20px;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}.logo .amp{color:var(--redline)}.tagline{font-size:12px;color:var(--ink-soft)}.hero{background:repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(34,48,60,.05) 27px,rgba(34,48,60,.05) 28px),var(--trace);border-bottom:1px solid var(--line);padding:64px 0 56px}.hero h1{font-size:clamp(34px,5.5vw,58px);font-weight:800;letter-spacing:-.03em;line-height:1.05;max-width:640px}.hero h1 em{font-style:normal;color:var(--redline)}.hero p.lede{margin-top:18px;max-width:560px;font-size:18px;color:var(--ink-soft)}.hero .cta-row{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-block;border:2px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:700;font-size:15px;padding:12px 22px;cursor:pointer;text-decoration:none;font-family:inherit;transition:transform .06s ease}.btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--redline)}.btn:focus-visible{outline:3px solid var(--redline);outline-offset:2px}.btn.ghost{background:transparent;color:var(--ink)}.btn.small{padding:7px 14px;font-size:13px}.btn.danger{background:var(--redline);border-color:var(--redline)}.btn.approve{background:var(--approved);border-color:var(--approved)}.btn[disabled]{opacity:.5;cursor:not-allowed}label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px;color:var(--ink-soft)}input[type=date],input[type=email],input[type=number],input[type=text],input[type=time],select,textarea{width:100%;border:1.5px solid var(--line);background:#fff;padding:10px 12px;font-size:15px;font-family:inherit;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);border-color:var(--ink)}.field{margin-bottom:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:640px){.grid2{grid-template-columns:1fr}}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto}.check-row label{margin:0;text-transform:none;font-size:14px;letter-spacing:0;color:var(--ink)}section.block{padding:56px 0}section.block h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;margin-top:28px}@media (max-width:760px){.steps{grid-template-columns:1fr}}.step{border:1.5px solid var(--line);background:#fff;padding:20px}.step .who{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--redline);margin-bottom:8px}.step h3{font-size:17px;margin-bottom:6px}.step p{font-size:14px;color:var(--ink-soft)}.sheet{border:2px solid var(--ink);background:#fff;margin:32px 0}.sheet-body{padding:24px}.cal-month{margin-bottom:28px}.cal-month h3{font-size:14px;text-transform:uppercase;letter-spacing:.14em;border-bottom:1.5px solid var(--ink);padding-bottom:6px;margin-bottom:12px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-head{font-size:10px;text-align:center;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;padding-bottom:2px}.day{min-height:66px;border:1px solid var(--line);padding:6px;position:relative;background:var(--paper)}.day,.day .num{font-size:12px}.day.off{background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(34,48,60,.06) 0,rgba(34,48,60,.06) 6px);color:#b9b2a3}.day.open{background:#fff;border-color:var(--ink);cursor:pointer}.day.open:hover{box-shadow:2px 2px 0 var(--approved)}.day a.slot-link{position:absolute;inset:0;text-decoration:none}.day .avail{position:absolute;bottom:6px;left:6px;right:6px;color:var(--approved)}.day .avail,.stamp{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.stamp{display:inline-block;border:2px solid;padding:1px 6px;font-family:IBM Plex Mono,monospace;transform:rotate(-3deg)}.stamp.pending{color:var(--hold)}.stamp.confirmed{color:var(--approved)}.stamp.big{font-size:13px;padding:4px 12px}.day .stamp{position:absolute;bottom:8px;left:50%;transform:translateX(-50%) rotate(-4deg)}.titleblock{border-top:2px solid var(--ink);display:grid;grid-template-columns:2fr 1.4fr 1fr .7fr;font-family:IBM Plex Mono,monospace;font-size:10px}.titleblock>div{padding:8px 12px;border-right:1px solid var(--ink)}.titleblock>div:last-child{border-right:0}.titleblock .lbl{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}.titleblock .val{font-size:11px;font-weight:700}@media (max-width:640px){.titleblock{grid-template-columns:1fr 1fr}.titleblock>div{border-bottom:1px solid var(--ink)}}.card{border:1.5px solid var(--line);background:#fff;padding:24px;margin:20px 0}.card h3{margin-bottom:12px;font-size:18px}.notice{border-left:4px solid var(--redline);background:var(--trace);padding:14px 16px;font-size:14px;margin:16px 0}.notice.ok{border-left-color:var(--approved)}table.roster{width:100%;border-collapse:collapse;font-size:14px}table.roster th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);border-bottom:1.5px solid var(--ink);padding:8px 10px}table.roster td{border-bottom:1px solid var(--line);padding:8px 10px}.meta-line{font-family:IBM Plex Mono,monospace;font-size:12px;margin:4px 0}.footer,.meta-line{color:var(--ink-soft)}.footer{border-top:2px solid var(--ink);margin-top:64px;padding:24px 0 40px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.footer a{color:var(--ink)}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px;align-items:center}@media (prefers-reduced-motion:reduce){*{transition:none!important}}