@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_482ce5{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_482ce5{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/084282eba306c257-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/ec1d0aa2d2fbc083-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f1dd23950e6cd390-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0c7826ffb3acea36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/692df4da22e71021-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3 Fallback;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_bea9d5{font-family:Source Sans\ 3,Source Sans\ 3 Fallback;font-style:normal}.__variable_bea9d5{--font-source-sans:"Source Sans 3","Source Sans 3 Fallback"}:root{--color-bg-top:#f3efe8;--color-bg-bottom:#e4e0d6;--color-surface:rgba(255,255,255,0.72);--color-surface-solid:#faf8f4;--color-ink:#1f2428;--color-ink-muted:#4a545c;--color-accent:#0d7a72;--color-accent-hover:#0a635d;--color-accent-soft:rgba(13,122,114,0.12);--color-border:rgba(31,36,40,0.12);--color-focus:#0d7a72;--color-danger:#9b2c2c;--color-success:#1a6b4a;--font-display:var(--font-fraunces),Georgia,"Times New Roman",serif;--font-body:var(--font-source-sans),system-ui,sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--shadow-soft:0 18px 50px rgba(31,36,40,0.08);--max-width:1120px}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--color-ink);font-family:var(--font-body);font-size:1rem;line-height:1.55;background:linear-gradient(165deg,var(--color-bg-top) 0,var(--color-bg-bottom) 55%,#d8d3c8 100%);background-attachment:fixed}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1 1;padding-block:1.5rem 3rem}.site-header,.site-main{width:min(var(--max-width),100% - 2rem);margin-inline:auto}.site-header{padding-block:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand-mark{font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:.06em;color:var(--color-ink);text-decoration:none}.brand-mark:hover{color:var(--color-accent)}.nav-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem}.nav-inline a{color:var(--color-ink-muted);text-decoration:none;font-weight:500}.nav-inline a:hover{color:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.15rem;border-radius:var(--radius-sm);border:1px solid transparent;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover);color:#fff}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-border)}.btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent)}.hero{padding-block:clamp(2.5rem,8vw,5.5rem);max-width:42rem}.hero-kicker{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 .75rem}.hero-title{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,3.75rem);line-height:1.08;margin:0 0 1rem;font-weight:500}.hero-lead{font-size:1.15rem;color:var(--color-ink-muted);margin:0 0 2rem;max-width:36rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center}.hero-note{margin-top:2.5rem;font-size:.95rem;color:var(--color-ink-muted)}.panel{background:var(--color-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:clamp(1.25rem,3vw,2rem)}.panel-narrow{max-width:28rem;margin-inline:auto}.form-stack{display:flex;flex-direction:column;gap:1.1rem}.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}.field input,.field select,.field textarea{width:100%;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-solid);font:inherit;color:var(--color-ink)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}.field-hint{margin-top:.35rem;font-size:.85rem;color:var(--color-ink-muted)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.92rem}.alert-error{background:rgba(155,44,44,.08);color:var(--color-danger);border:1px solid rgba(155,44,44,.2)}.alert-success{background:rgba(26,107,74,.08);color:var(--color-success);border:1px solid rgba(26,107,74,.2)}.page-title{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.25rem);margin:0 0 .35rem}.page-subtitle{margin:0 0 1.5rem;color:var(--color-ink-muted)}.grid-state{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr))}.state-card{background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1rem 1.1rem}.state-card dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted);margin:0}.state-card dd{margin:.35rem 0 0;font-family:var(--font-display);font-size:1.35rem;font-weight:500}.app-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.5rem}.installation-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}.installation-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-md)}.installation-list strong{font-weight:600}.meta-muted{font-size:.88rem;color:var(--color-ink-muted)}.event-table-wrap{overflow-x:auto}.event-table{width:100%;border-collapse:collapse;font-size:.92rem}.event-table td,.event-table th{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:top}.event-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-muted)}.subnav{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.25rem}.subnav a{text-decoration:none;font-weight:600;color:var(--color-ink-muted);padding-bottom:.2rem;border-bottom:2px solid transparent}.subnav a[aria-current=page]{color:var(--color-accent);border-bottom-color:var(--color-accent)}.doorbell-landing{margin-top:2.5rem;max-width:28rem}.doorbell-landing-kicker{margin:0 0 1rem;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted)}.doorbell-page{max-width:28rem}.doorbell,.doorbell-page{display:flex;flex-direction:column;align-items:center}.doorbell{text-align:center;gap:.85rem;width:100%}.doorbell-header{max-width:22rem}.doorbell-title{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,1.9rem);font-weight:500;margin:0 0 .35rem;line-height:1.15}.doorbell-hint{margin:0;color:var(--color-ink-muted);font-size:1rem}.doorbell-ring{position:relative;width:min(14rem,70vw);aspect-ratio:1;border-radius:50%;border:5px solid var(--color-accent);background:radial-gradient(circle at 32% 28%,#ffffff 0,#e7f3f1 42%,var(--color-accent-soft) 78%),var(--color-accent-soft);box-shadow:inset 0 2px 8px rgba(255,255,255,.65),0 10px 28px rgba(13,122,114,.18);font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:.04em;color:var(--color-accent);cursor:pointer;margin:.75rem 0 .25rem;display:grid;place-items:center;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,color .14s ease}.doorbell-ring:after,.doorbell-ring:before{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid transparent;pointer-events:none}.doorbell-ring:hover:not(:disabled){transform:scale(1.03);box-shadow:inset 0 2px 8px rgba(255,255,255,.7),0 14px 36px rgba(13,122,114,.28)}.doorbell-ring.is-ringing,.doorbell-ring:active:not(:disabled){transform:scale(.96)}.doorbell-ring.is-ringing:before{animation:doorbell-pulse .6s ease-out}.doorbell-ring.is-ringing:after{animation:doorbell-pulse .6s ease-out .08s}.doorbell-ring.is-done{border-color:var(--color-success);color:var(--color-success)}.doorbell-ring:disabled{cursor:wait}.doorbell-ring-label{position:relative;z-index:1}.doorbell-status{margin:0;font-size:.98rem;color:var(--color-success);max-width:22rem}.doorbell-status-error{color:var(--color-danger)}.doorbell-details{width:min(18rem,100%);text-align:left;color:var(--color-ink-muted);font-size:.92rem}.doorbell-details summary{cursor:pointer;list-style:none;text-align:center;color:var(--color-ink-muted)}.doorbell-details summary::-webkit-details-marker{display:none}.doorbell-details summary:hover{color:var(--color-accent)}.doorbell-name-field{display:block;margin-top:.65rem}.doorbell-name-field input{width:100%;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-solid);font:inherit}.doorbell-privacy{margin:.35rem 0 0;font-size:.82rem;color:var(--color-ink-muted);max-width:24rem;line-height:1.4}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes doorbell-pulse{0%{border-color:rgba(13,122,114,.55);transform:scale(1);opacity:1}to{border-color:rgba(13,122,114,0);transform:scale(1.18);opacity:0}}@media (max-width:640px){.site-header,.site-main{width:min(var(--max-width),100% - 1.25rem)}}