.site{--ink:#242323;--charcoal:#514c47;--stone:#8c7b69;--taupe:#b8a48e;--sand:#e5d6c9;--sand-soft:#f4eee8;--canvas:#fbfaf8;--muted:#5c5650;--accent:#655849;--line:#e9e2da;--field:#998a7a;--ok:#3f6b4a;--error:#a23b32;--ease-out:cubic-bezier(.16, 1, .3, 1);--section-space:clamp(4.5rem, 2.75rem + 6vw, 8.5rem);--gutter:clamp(1rem, .5rem + 2.5vw, 2.5rem);--lift-1:0 1px 2px #2423230d, 0 8px 20px -12px #2423232e;--lift-2:0 2px 6px #2423230d, 0 28px 56px -28px #24232352;--lift-3:0 4px 12px #2423230f, 0 48px 90px -40px #24232366;background:var(--canvas);color:var(--ink);caret-color:var(--ink);accent-color:var(--charcoal);font-feature-settings:"cv11", "ss01"}html:has(.site){scrollbar-color:var(--taupe) var(--canvas)}@media (prefers-reduced-motion:no-preference){html:has(.site){scroll-behavior:smooth}}.site ::selection{background:var(--sand);color:var(--ink)}.site :focus-visible{outline:2px solid var(--charcoal);outline-offset:3px}.site .on-ink :focus-visible{outline-color:var(--sand)}.site [id]{scroll-margin-top:5.5rem}.site-wrap{width:100%;max-width:76rem;padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-space)}.section.flush-top{padding-top:0}.display-1,.display-2,.display-3{font-family:var(--font-display);font-variation-settings:"opsz" 32;color:var(--ink);text-wrap:balance;font-weight:600}.display-1{letter-spacing:-.035em;font-size:clamp(2.5rem,1.65rem + 3.2vw,4.25rem);line-height:1.02}.display-2{letter-spacing:-.03em;font-size:clamp(2rem,1.45rem + 2.3vw,3.25rem);line-height:1.06}.display-3{letter-spacing:-.015em;font-size:1.25rem;line-height:1.3}.lead{color:var(--muted);text-wrap:pretty;font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);line-height:1.6}.body{color:var(--muted);text-wrap:pretty;font-size:1rem;line-height:1.65}.strapline{letter-spacing:.28em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.btn{white-space:nowrap;cursor:pointer;height:3rem;transition:background-color .18s ease, box-shadow .18s ease, transform .3s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding-inline:1.375rem;font-size:.9375rem;font-weight:500;line-height:1;display:inline-flex}.btn:active{transform:translateY(1px)scale(.985)}.btn-sm{height:2.5rem;padding-inline:1.125rem;font-size:.875rem}.btn-primary{background:var(--ink);color:#fff;box-shadow:var(--lift-1)}.btn-primary:hover{background:var(--charcoal)}.btn-primary:disabled{cursor:progress;opacity:.7}.btn-secondary{color:var(--ink);background:#fff;box-shadow:inset 0 0 0 1px #24232329}.btn-secondary:hover{background:var(--sand-soft)}.on-ink .btn-secondary{color:#fff;background:0 0;box-shadow:inset 0 0 0 1px #e5d6c973}.on-ink .btn-secondary:hover{background:#ffffff14}.text-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--taupe);text-decoration-color:var(--taupe);text-underline-offset:.25em;font-weight:500;text-decoration-thickness:1px;transition:text-decoration-color .16s}.text-link:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.site-header{z-index:40;-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);box-shadow:inset 0 -1px 0 var(--line);background:#fbfaf8db;position:sticky;top:0}.nav-link{color:var(--muted);border-radius:.375rem;padding:.5rem .75rem;font-size:.9375rem;transition:color .16s}.nav-link:hover{color:var(--ink)}.header-talk{display:none}@media (min-width:640px){.header-talk{display:inline-flex}}.hero{padding-top:clamp(2rem,1rem + 4vw,4.5rem);padding-bottom:var(--section-space)}.hero-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}@media (min-width:1024px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:4rem}}.display-hero{font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.038em;color:var(--ink);text-wrap:balance;font-size:clamp(2.75rem,1.6rem + 3.6vw,4.5rem);font-weight:600;line-height:.98}.offer-link{text-wrap:balance;max-width:100%;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;align-items:center;gap:.625rem;padding:.25rem .875rem .25rem .25rem;font-size:.9375rem;font-weight:500;line-height:1.35;transition:background-color .16s,box-shadow .16s;display:inline-flex}@media (max-width:400px){.offer-link{gap:.5rem;font-size:.875rem}}.offer-link:hover{background:#fff;box-shadow:inset 0 0 0 1px #24232329}.offer-link svg{color:var(--stone);transition:transform .3s var(--ease-out)}.offer-link:hover svg{transform:translate(2px)}.offer-chip{white-space:nowrap;background:var(--sand-soft);color:var(--accent);border-radius:999px;flex-shrink:0;padding:.3125rem .6875rem;font-size:.75rem;font-weight:500}.scene{padding-block:clamp(2.5rem,1.75rem + 3.5vw,5rem);overflow-x:clip}.scene[data-ground=sand]{background:var(--sand-soft)}.scene-grid{flex-direction:column;display:flex}.scene-words{display:contents}.scene-title{order:1}.scene-object{order:2}.scene-words>.lead{order:3;margin-top:.25rem}@media (min-width:1024px){.scene-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:4.5rem;min-height:min(64vh,42rem);display:grid}.scene-words{display:block}.scene-object{order:0}.scene-words>.lead{margin-top:1.25rem}.scene[data-flip] .scene-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.scene[data-flip] .scene-words{order:2}}.scene-title{max-width:14ch;font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.037em;color:var(--ink);text-wrap:balance;font-size:clamp(2.25rem,1.55rem + 3vw,3.75rem);font-weight:600;line-height:1.02}.scene-title>span{display:block}.scene-second{color:var(--stone)}.scene-object,.hero-object{--screen-size:1rem;justify-items:center;display:grid}.scene-object{padding-block:1.25rem 3.25rem}@media (min-width:1024px){.scene-object{padding-block:3.5rem 4rem}.scene-object,.hero-object{--screen-size:1.1875rem}.hero-object{justify-items:end}.report-shot,.compare-screen{--zoom:1.15;zoom:var(--zoom)}}@media (min-width:1280px){.scene-object,.hero-object{--screen-size:1.25rem}.report-shot,.compare-screen{--zoom:1.25}}.screen,.capture{font-size:var(--screen-size,1rem)}.compare-screen{width:min(calc(100% / var(--zoom,1)), 23.5rem);font-size:1rem}.screen{width:min(100%,23.5em);box-shadow:var(--lift-2);color:var(--ink);text-align:left;background:#fff;border-radius:1.25em;padding:1.125em 1.125em 1.25em;line-height:1.4}.screen-top{min-height:2em;color:var(--charcoal);justify-content:space-between;align-items:center;gap:.5em;display:flex}.screen-top>span:first-child{font-size:.8125em}.screen-title{font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.02em;margin-top:.4em;font-size:1.375em;font-weight:600;line-height:1.2}.screen-sub{color:var(--charcoal);margin-top:.15em;font-size:.8125em;display:grid}.screen-label{color:var(--charcoal);font-size:.8125em}.screen-row{box-shadow:inset 0 0 0 1px var(--line);border-radius:.875em;align-items:center;gap:.75em;padding:.65em .8em;display:flex}.screen-row-name{font-size:.9375em;font-weight:600;display:block}.screen-row-sub{color:var(--charcoal);font-size:.75em;display:block}.screen-button{height:2.3em;color:var(--ink);border-radius:999px;align-items:center;padding-inline:.9em;font-size:.8125rem;font-weight:500;display:inline-flex;box-shadow:inset 0 0 0 1px #24232329}.screen-button-ink{background:var(--ink);color:#fff;box-shadow:none}.rating{background:var(--sand-soft);height:2.1em;color:var(--ink);border-radius:.5em;align-items:center;padding-inline:.75em;font-size:.8125em;font-weight:500;display:inline-flex}.rating[data-on]{background:var(--ink);color:#fff}.thumb{aspect-ratio:1;border-radius:.5em;display:block;position:relative;overflow:hidden}.swap{display:inline-grid}.swap>span{grid-area:1/1}.swap-from{opacity:0}.sync-pill{background:var(--sand-soft);height:2.1em;color:var(--ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding-inline:.75em .9em;font-size:.75em;font-weight:500;display:inline-grid;position:relative}.sync-pill>span{grid-area:1/1;align-items:center;gap:.45em;display:inline-flex}.sync-dot{border-radius:999px;width:.55em;height:.55em}.sync-saved,.sync-pending{opacity:0}.sync-done{color:var(--ok)}@property --reach-len{syntax:"<length>";inherits:true;initial-value:0}.callout{--reach-len:var(--reach);display:block;position:relative}.callout-ring{box-shadow:0 0 0 1.5px var(--ink);pointer-events:none;border-radius:.9em;position:absolute;inset:-.4em}.callout-tag{z-index:3;background:var(--ink);width:max-content;max-width:min(13.5rem,64vw);box-shadow:0 0 0 2px #fff, var(--lift-1);letter-spacing:0;color:#fff;text-align:left;pointer-events:none;border-radius:.625rem;padding:.45rem .7rem;font-size:.8125rem;font-weight:500;line-height:1.3;position:absolute}.callout[data-place^=below]>.callout-tag{top:calc(100% + 1.625rem + var(--reach-len))}.callout[data-place^=above]>.callout-tag{bottom:calc(100% + 1.625rem + var(--reach-len))}.callout[data-place$=end]>.callout-tag{right:0}.callout[data-place$=start]>.callout-tag{left:0}.callout-line{width:1.5px;height:calc(1.25rem + var(--reach-len));background:var(--ink);position:absolute}.callout[data-place^=below] .callout-line{transform-origin:top;bottom:100%}.callout[data-place^=above] .callout-line{transform-origin:bottom;top:100%}.callout[data-place$=end] .callout-line{right:1rem}.callout[data-place$=start] .callout-line{left:1rem}.callout-lens{background:#fff;border-radius:.4rem;place-items:center;height:3.25rem;margin:-.05rem -.3rem .5rem;font-size:1rem;display:grid;overflow:hidden}.callout-lens>span{display:inline-flex;transform:scale(1.4)}.callout-tag:has(.callout-lens){min-width:11rem}.hero-rooms{width:min(100%,24em)}.room-row{box-shadow:inset 0 -1px 0 var(--line);align-items:center;gap:.8em;padding:.7em .1em;display:flex}.room-row:last-child{box-shadow:none}.room-tick{background:var(--ink);color:#fff;border-radius:999px;flex:none;place-items:center;width:1.5em;height:1.5em;display:grid}.room-tick svg{width:.8em;height:.8em}.room-row:not([data-state=done]) .room-tick svg{opacity:0}.room-row[data-state=doing] .room-tick{background:conic-gradient(var(--ink) calc(var(--progress) * 1turn), #fff 0);box-shadow:inset 0 0 0 1.5px var(--ink)}.room-row[data-state=todo] .room-tick{box-shadow:inset 0 0 0 1.5px var(--taupe);background:#fff}.room-name{font-size:.9375em;font-weight:600;display:block}.room-row[data-state=todo] .room-name{color:var(--muted)}.room-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8125em}.room-bar{background:var(--line);border-radius:999px;height:.25em;margin-top:.4em;display:block;position:relative;overflow:hidden}.room-bar:after{content:"";border-radius:inherit;background:var(--ink);transform:scaleX(var(--progress));transform-origin:0;position:absolute;inset:0}.capture{width:min(100%,23.5em);position:relative}@media (min-width:1024px){.capture{width:min(100%,20.5em)}}.camera{box-shadow:var(--lift-2);color:#fff;background:#121111;border-radius:1.5em;position:relative;overflow:hidden}.camera-top{justify-content:space-between;align-items:center;gap:1em;padding:.75em .9em .75em 1.1em;font-size:.875em;font-weight:500;display:flex}.camera-done{background:#ffffff26;border-radius:.5em;padding:.45em .85em}.camera-view{aspect-ratio:16/10;background:#1d1c1b;position:relative;overflow:hidden}.corners{opacity:.85;background-color:#0000;background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:1.1em 2px,2px 1.1em,1.1em 2px,2px 1.1em,1.1em 2px,2px 1.1em,1.1em 2px,2px 1.1em;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box;position:absolute;inset:9% 7%}.subject{width:76%;height:92%;position:absolute;inset:4% 12%}.subject-hob{opacity:0}.focus{aspect-ratio:1;border:1.5px solid #fffffff2;border-radius:.3em;width:36%;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 0 0 1px #0000004d,inset 0 0 0 1px #0000004d}.flash{opacity:0;background:#fff;position:absolute;inset:0}.camera-foot{grid-template-columns:1fr auto 1fr;align-items:center;padding:.7em 1.1em .8em;display:grid}.camera-added{color:#fffc;font-size:.8125em}.shutter{border:.22em solid #fff;border-radius:999px;place-items:center;width:3em;height:3em;display:grid}.shutter>span{background:#fff;border-radius:999px;width:2.2em;height:2.2em}.shot{--dx:0px;--dy:0px;--k:1;z-index:5;opacity:0;transform-origin:0 0;filter:drop-shadow(0 10px 18px #00000059);width:6em;position:absolute;top:calc(50% - 3.5em);left:calc(50% - 3em)}.capture-list{margin-top:.75em;padding-block:.875em 1em;position:relative}.capture-row{box-shadow:inset 0 -1px 0 var(--line);align-items:center;gap:.9em;padding:.8em 0 .85em;display:flex}.capture-row:last-child{box-shadow:none;padding-bottom:.2em}.capture-text{flex:1;min-width:0}.capture-room{color:var(--charcoal);font-size:.75em;display:block}.capture-name{font-size:.9375em;font-weight:600;display:block}.capture-thumbs{grid-template-columns:repeat(3,2.75em);gap:.4em;display:grid}.landed{display:block}.landed-2{flex:none;width:2.75em}.reading{flex-wrap:wrap;align-items:center;gap:.35em .6em;margin-top:.25em;font-size:.875em;display:flex}.reading>.swap{font-variant-numeric:tabular-nums;font-weight:600}.ai-chip{background:var(--sand-soft);height:1.9em;color:var(--ink);border-radius:999px;align-items:center;gap:.35em;padding-inline:.6em .75em;font-size:.8125em;font-weight:500;display:inline-flex}.ai-chip svg{width:1em;height:1em}.rate-chips{margin-top:.9em}.rate-grid{grid-template-columns:auto 1fr;align-items:center;gap:.6em .8em;display:grid}.rate-photos{grid-template-columns:repeat(4,1fr);gap:.45em;margin-top:1em;display:grid}.rate-notes{margin-top:1em}.notes-box{box-shadow:inset 0 0 0 1px var(--field);border-radius:.75em;padding:.6em 2.75em .6em .75em;font-size:.875em;line-height:1.45;display:block;position:relative}.mic{background:var(--ink);color:#fff;border-radius:999px;place-items:center;width:1.9em;height:1.9em;display:grid;position:absolute;top:.45em;right:.45em}.mic svg{width:1em;height:1em}.phrases{flex-wrap:wrap;gap:.4em;margin-top:.45em;display:flex}.phrase{background:var(--sand-soft);border-radius:999px;padding:.35em .75em;font-size:.75em;font-weight:500}.phrase-picked{background:var(--ink);color:#fff}.phrase-added{border-radius:.25em}.status-bar{justify-content:space-between;align-items:center;margin-bottom:.5em;font-size:.8125em;font-weight:600;display:flex}.no-service{color:var(--charcoal);opacity:0;font-weight:500}.signal-bars{align-items:flex-end;gap:2px;height:.8em;display:inline-flex}.signal-bars span{background:var(--ink);border-radius:1px;width:3px}.signal-bars span:first-child{height:30%}.signal-bars span:nth-child(2){height:55%}.signal-bars span:nth-child(3){height:80%}.signal-bars span:nth-child(4){height:100%}.waiting{font-size:.8125em;font-weight:600}.waiting .swap-to{color:var(--ok)}.signal{margin-block:2.5rem 3.75rem}.signal-pill{flex:none}.report-shot{width:min(calc(100% / var(--zoom,1)), 27rem);padding-top:2.5rem;position:relative}.report-stack{height:clamp(21rem,16rem + 16vw,28rem);position:relative}.report-page{top:var(--y);left:var(--x);aspect-ratio:210/297;width:min(60%,16rem);box-shadow:var(--lift-2);transform:translateX(calc(var(--x) * -1)) rotate(var(--r));background:#fff;border-radius:.5rem;flex-direction:column;padding:clamp(.875rem,.6rem + 1vw,1.125rem);font-size:.75rem;display:flex;position:absolute}.report-contents{--x:0%;--y:9%;--r:-5deg;z-index:1;overflow:hidden}.report-room{--x:100%;--y:11%;--r:4.5deg;z-index:2;overflow:hidden}.report-cover{--x:50%;--y:0%;--r:0deg;z-index:3}.callout.report-link{z-index:4;width:calc(80% - .5rem);max-width:17.5rem;box-shadow:var(--lift-2);background:#fff;border-radius:1rem;padding:1rem 1.125rem;position:absolute;bottom:-.5rem;right:.5rem}.contents-row{color:var(--ink);align-items:baseline;gap:.375rem;font-size:.75rem;display:flex}.contents-leader{border-bottom:1px dotted var(--taupe);flex:1}.wipe{aspect-ratio:16/10;isolation:isolate;border-radius:.75rem;margin-top:1rem;position:relative;overflow:hidden}.wipe-after{clip-path:inset(0 0 0 var(--at));position:absolute;inset:0}.wipe-tag{color:var(--ink);background:#ffffffe6;border-radius:999px;padding:.25rem .5rem;font-size:.75rem;font-weight:500;position:absolute;top:.625rem}.wipe-handle{top:0;bottom:0;left:var(--at);pointer-events:none;background:#fff;width:2px;margin-left:-1px;position:absolute;box-shadow:0 0 0 1px #2423231a}.wipe-handle>span{background:var(--ink);color:#fff;width:2.25rem;height:2.25rem;box-shadow:var(--lift-1);border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.wipe-input{cursor:ew-resize;opacity:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.wipe:has(.wipe-input:focus-visible) .wipe-handle>span{outline:2px solid var(--charcoal);outline-offset:3px}.pricing{background:var(--ink);color:var(--sand)}.pricing .display-2{color:#fff}.pricing .lead{color:var(--sand)}.billing-switch{background:#ffffff14;border-radius:999px;margin-top:2.5rem;padding:.25rem;display:inline-flex}.billing-switch label{cursor:pointer;position:relative}.billing-switch input{opacity:0;cursor:pointer;position:absolute;inset:0}.billing-switch span{height:2.25rem;color:var(--sand);border-radius:999px;align-items:center;padding-inline:1.125rem;font-size:.875rem;font-weight:500;transition:background-color .2s,color .2s;display:inline-flex}.billing-switch input:checked+span{color:var(--ink);background:#fff}.billing-switch input:focus-visible+span{outline:2px solid var(--sand);outline-offset:2px}.plans{gap:1rem;margin-top:1.5rem;display:grid}@media (min-width:1024px){.plans{grid-template-columns:repeat(3,minmax(0,1fr))}}.plan-card{grid-row:span 5;grid-template-rows:subgrid;color:var(--ink);background:#fff;border-radius:1.25rem;row-gap:0;padding:clamp(1.5rem,1rem + 1.5vw,2rem);display:grid}.plan-card[data-featured]{background:var(--sand)}.plan-badge{background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;flex:none;padding:.3125rem .75rem;font-size:.75rem;font-weight:500}.plan-price{align-items:baseline;gap:.5rem;margin-top:1.75rem;display:flex}.plan-amount{font-family:var(--font-display);font-variation-settings:"opsz" 32;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums;font-size:clamp(2.75rem,2.2rem + 1.8vw,3.5rem);font-weight:600;line-height:.9}.plan-per{color:var(--muted);font-size:.9375rem}.plan-note{color:var(--muted);margin-top:.625rem;font-size:.875rem}.plan-note:empty{margin-top:0}.plan-card[data-featured] .plan-note{color:var(--ink);font-weight:500}.plan-card .btn{align-self:start;margin-top:1.5rem}.plan-card[data-featured] .btn-primary:focus-visible{outline-color:var(--ink)}.on-ink .plan-card .btn-secondary{color:var(--ink);background:#fff;box-shadow:inset 0 0 0 1px #24232329}.on-ink .plan-card .btn-secondary:hover{background:var(--sand-soft)}.on-ink .plan-card :focus-visible{outline-color:var(--charcoal)}.plan-points{border-top:1px solid #2423231f;align-content:start;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;font-size:.9375rem;display:grid}.plan-points li,.every-plan-list li{gap:.625rem;display:flex}.every-plan{margin-top:clamp(2.5rem,1.5rem + 3vw,4rem)}.every-plan-list{color:var(--sand);gap:.875rem 2.5rem;margin-top:1.25rem;font-size:.9375rem;display:grid}@media (min-width:640px){.every-plan-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.every-plan-list{grid-template-columns:repeat(4,minmax(0,1fr))}}.pricing-foot{color:var(--sand);border-top:1px solid #e5d6c929;gap:.5rem;margin-top:2.5rem;padding-top:1.5rem;font-size:.875rem;display:grid}.text-link-on-ink{color:#fff;text-decoration:underline;-webkit-text-decoration-color:var(--taupe);text-decoration-color:var(--taupe);text-underline-offset:.25em;font-weight:500;text-decoration-thickness:1px}.text-link-on-ink:hover{text-decoration-color:#fff}@media (prefers-reduced-motion:no-preference){.scene[data-armed]:not([data-play]) .scene-object *{animation-play-state:paused!important}@supports (animation-timeline:view()){.scene-object{animation:linear both drift;animation-timeline:view();animation-range:cover}}.hero-rooms .room-row[data-state=done]:not([data-moves]) .room-tick{animation:tick .5s var(--ease-out) calc(.3s + var(--i) * .3s) both}.hero-rooms .room-row[data-state=done]:not([data-moves]) .room-tick svg{animation:check-in .4s var(--ease-out) calc(.45s + var(--i) * .3s) both}.hero-rooms [data-moves] .room-bar:after{animation:fill 1.3s var(--ease-out) var(--fill-at) both}.hero-rooms [data-state=done][data-moves] .room-tick{animation:tick .5s var(--ease-out) 2.4s both}.hero-rooms [data-state=done][data-moves] .room-tick svg{animation:check-in .4s var(--ease-out) 2.55s both}.hero-rooms [data-state=doing][data-moves] .room-tick{animation:1ms 3.9s both pie-in}.hero-rooms .swap-from{animation:swap-out .25s var(--ease-out) var(--swap-at) both}.hero-rooms .swap-to{animation:swap-in .4s var(--ease-out) var(--swap-at) both}.hero-rooms .sync-saved{animation:sync-first 3.4s var(--ease-out) var(--delay) both}.hero-rooms .sync-pending{animation:sync-second 3.4s var(--ease-out) var(--delay) both}.hero-rooms .sync-done{animation:sync-last 3.4s var(--ease-out) var(--delay) both}.scene[data-armed] .callout-ring{animation:ring-in .5s var(--ease-out) var(--at) both}.scene[data-armed] .callout-tag{animation:tag-in .45s var(--ease-out) calc(var(--at) + .3s) both}.scene[data-armed] .callout-line{animation:draw-line .45s var(--ease-out) calc(var(--at) + .25s) both}.scene[data-armed] .callout-lens{animation:lens-in .55s var(--ease-out) var(--at) both}.scene[data-armed] .swap-from{animation:swap-out .25s var(--ease-out) var(--swap-at) both}.scene[data-armed] .swap-to{animation:swap-in .4s var(--ease-out) var(--swap-at) both}.scene[data-armed] .sync-saved{animation:sync-first 3.4s var(--ease-out) var(--delay,.3s) both}.scene[data-armed] .sync-pending{animation:sync-second 3.4s var(--ease-out) var(--delay,.3s) both}.scene[data-armed] .sync-done{animation:sync-last 3.4s var(--ease-out) var(--delay,.3s) both}.scene[data-armed] .focus{animation:focus-snap .5s var(--ease-out) .2s both, focus-snap .5s var(--ease-out) 3.6s forwards}.scene[data-armed] .shutter>span{animation:.3s 1s press,.3s 4.3s press}.scene[data-armed] .flash-1{animation:.45s ease-out 1.05s both flash}.scene[data-armed] .flash-2{animation:.45s ease-out 4.35s both flash}.scene[data-armed] .camera-added{animation:4.8s linear both camera-count}.scene[data-armed] .subject-hob{animation:subject-out .6s var(--ease-out) 3s both}.scene[data-armed] .subject-meter{animation:subject-in .7s var(--ease-out) 3s both}.scene[data-armed] .camera-top .swap{--swap-at:3.1s}.scene[data-armed] .shot-1{animation:.85s cubic-bezier(.5,0,.2,1) 1.2s both fly}.scene[data-armed] .shot-2{animation:.85s cubic-bezier(.5,0,.2,1) 4.5s both fly}.scene[data-armed] .landed-1{animation:land .45s var(--ease-out) 2s both}.scene[data-armed] .landed-2{animation:land .45s var(--ease-out) 5.3s both}.scene[data-armed] .capture-text .swap{--swap-at:2.05s}.scene[data-armed] .reading>.swap{--swap-at:5.5s}.scene[data-armed] .ai-chip{animation:swap-in .4s var(--ease-out) 5.6s both, press .3s ease 6.1s, chip-done .3s var(--ease-out) 6.2s both}.scene[data-armed] .ai-chip .swap{--swap-at:6.2s}.scene[data-armed] .rate .rating[data-on]{animation:choose .35s var(--ease-out) calc(.4s + var(--step) * .4s) both}.scene[data-armed] .mic{animation:1.2s 1.7s 2 listening}.scene[data-armed] .type-in{animation:1.4s steps(40,end) 1.9s both type}.scene[data-armed] .phrase-picked{animation:choose .35s var(--ease-out) 3.7s both}.scene[data-armed] .phrase-added{animation:phrase-in .6s var(--ease-out) 3.9s both}.scene[data-armed] .signal-bars span:nth-child(n+2){animation:signal-drop 2.4s ease calc(.9s - var(--n) * .2s) both}.scene[data-armed] .signal-bars span:nth-child(2){--n:2}.scene[data-armed] .signal-bars span:nth-child(3){--n:1}.scene[data-armed] .signal-bars span:nth-child(4){--n:0}.scene[data-armed] .no-service{animation:2.2s .7s both no-service}.scene[data-armed] .waiting{--swap-at:7.2s}.scene[data-armed] .report-page{animation:fan .9s var(--ease-out) .3s both}.scene[data-armed] .contents-row{animation:rise .4s var(--ease-out) calc(1.1s + var(--step) * 90ms) both}.scene[data-armed] .callout.report-link{animation:rise .6s var(--ease-out) 1.8s both}.scene[data-armed] .copy{animation:.4s 2.4s press}.scene[data-armed] .flag-chip{animation:rise .5s var(--ease-out) 2.4s both}}@keyframes drift{0%{translate:0 2rem}to{translate:0 -2rem}}@keyframes choose{0%{background:var(--sand-soft);color:var(--ink)}}@keyframes type{0%{clip-path:inset(0 100% 0 0)}}@keyframes land{0%{opacity:0;transform:scale(.6)}}@keyframes press{50%{transform:scale(.9)}}@keyframes listening{50%{box-shadow:0 0 0 .35em #24232324}}@keyframes phrase-in{0%{opacity:0;background:var(--sand)}}@keyframes sync-first{0%,30%{opacity:1;filter:blur();transform:none}40%,to{opacity:0;filter:blur(3px);transform:translateY(-4px)}}@keyframes sync-second{0%,30%{opacity:0;filter:blur(3px);transform:translateY(4px)}40%,78%{opacity:1;filter:blur();transform:none}88%,to{opacity:0;filter:blur(3px);transform:translateY(-4px)}}@keyframes sync-last{0%,78%{opacity:0;filter:blur(3px);transform:translateY(4px)}88%,to{opacity:1;filter:blur();transform:none}}@keyframes tick{0%{box-shadow:inset 0 0 0 1.5px var(--taupe);background:#fff;transform:scale(.8)}60%{transform:scale(1.1)}}@keyframes check-in{0%{opacity:0;transform:scale(.5)}}@keyframes fill{0%{transform:scaleX(var(--from))}}@keyframes pie-in{0%{box-shadow:inset 0 0 0 1.5px var(--taupe);background:#fff}}@keyframes swap-out{0%{opacity:1}to{opacity:0;transform:translateY(-.3em)}}@keyframes swap-in{0%{opacity:0;transform:translateY(.3em)}}@keyframes ring-in{0%{opacity:0;transform:scale(1.06)}}@keyframes tag-in{0%{opacity:0;transform:translateY(.25rem)}}@keyframes draw-line{0%{transform:scaleY(0)}}@keyframes lens-in{0%{opacity:0;transform:scale(.6)}}@keyframes focus-snap{0%{opacity:0;transform:scale(1.35)}}@keyframes flash{0%{opacity:0}12%{opacity:.9}to{opacity:0}}@keyframes fly{0%{opacity:0;transform:scale(1.08)}8%{opacity:1;transform:none}90%{opacity:1;transform:translate(var(--dx), var(--dy)) scale(var(--k))}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(var(--k))}}@keyframes subject-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-30%)}}@keyframes subject-in{0%{opacity:0;transform:translate(30%)}}@keyframes chip-done{0%{background:var(--ink);color:#fff}}@keyframes signal-drop{0%{opacity:1}10%,85%{opacity:.18}to{opacity:1}}@keyframes no-service{0%,to{opacity:0}12%,85%{opacity:1}}@keyframes camera-count{0%,23%{opacity:0}26%,61%{opacity:1}64%,92%{opacity:0}95%,to{opacity:1}}@keyframes fan{0%{top:4%;left:50%;transform:translate(-50%)rotate(0)}}.band{background:linear-gradient(180deg, var(--sand-soft), #f1e9e1)}.compare-screen{padding:clamp(.875rem,.6rem + 1vw,1.25rem)}.compare-side{min-width:0}.compare-side:first-child{padding-right:clamp(.75rem,.4rem + 1.2vw,1.25rem)}.compare-side+.compare-side{border-left:1px solid var(--line);padding-left:clamp(.75rem,.4rem + 1.2vw,1.25rem)}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:500}.question{border-bottom:1px solid var(--line)}.question summary{cursor:pointer;min-height:3.5rem;color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding-block:1rem;font-size:1.0625rem;font-weight:500;list-style:none;display:flex}.question summary::-webkit-details-marker{display:none}.question summary svg{color:var(--accent);transition:transform .3s var(--ease-out);flex:none}.question[open] summary svg{transform:rotate(45deg)}.form-card{box-shadow:var(--lift-2);background:#fff;border-radius:1.25rem;padding:clamp(1.25rem,.75rem + 2vw,2.25rem)}.form-label{color:var(--ink);font-size:.875rem;font-weight:500}.form-optional{color:var(--muted);font-weight:400}.form-field{border:1px solid var(--field);width:100%;height:3rem;color:var(--ink);background:#fff;border-radius:.75rem;padding-inline:.875rem;font-size:1rem;transition:border-color .16s,box-shadow .16s}.form-field::placeholder{color:#6f6861}.form-field:hover{border-color:var(--charcoal)}.form-field:focus-visible{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #8c7b6959}.form-field[aria-invalid=true]{border-color:var(--error)}textarea.form-field{resize:vertical;height:auto;min-height:8rem;padding-block:.75rem;line-height:1.5}select.form-field{appearance:none;cursor:pointer;padding-right:2.5rem}.form-error{color:var(--error);font-size:.875rem}.sent{animation:rise .5s var(--ease-out) both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.site-footer{background:var(--ink);color:var(--sand)}.footer-link{color:var(--sand);transition:color .16s}.footer-link:hover{color:#fff;text-underline-offset:.25em;text-decoration:underline}.honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}@media print{.site-header{position:static}.site-footer{color:var(--ink);background:0 0}}
