:root {
  --ink: #14284a;
  --muted: #60718f;
  --paper: #eef5ff;
  --card: #fffdf7;
  --line: #cfdcf0;
  --green: #2a67c7;
  --green-dark: #16458f;
  --mint: #dceaff;
  --peach: #ffe2cf;
  --coral: #ff7a21;
  --shadow: 0 18px 50px rgba(25, 59, 116, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 82% 8%, rgba(255, 220, 196, .68), transparent 26rem),
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  min-height: 100vh;
}
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.shell { width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding-bottom: 120px; }
.topbar { height: 98px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(20,40,74,.12); }
.topbar-actions { display:flex; align-items:center; gap:10px; }
.brand { color: var(--ink); text-decoration: none; display: flex; align-items: center; gap: 13px; font-family: Georgia, "Times New Roman", serif; font-size: 29px; font-weight: 700; }
.brand-mark { width:58px; height:58px; display:block; object-fit:cover; border-radius:17px; box-shadow:0 7px 18px rgba(12,45,115,.24); }
.privacy-pill { border: 1px solid rgba(42,103,199,.25); background: rgba(255,255,255,.55); border-radius: 999px; padding: 9px 14px; font-size: 12px; font-weight: 600; cursor: pointer; }
.install-nav { border:1px solid var(--green); border-radius:999px; padding:9px 14px; background:transparent; color:var(--green); font-size:12px; font-weight:800; cursor:pointer; }
.privacy-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#4c9c72; margin-right:7px; box-shadow:0 0 0 4px rgba(76,156,114,.12); }
.premium-nav { border:0; border-radius:999px; padding:10px 15px; background:var(--green); color:white; font-size:12px; font-weight:800; cursor:pointer; }
.hero { padding:64px 0 52px; }
.hero-copy { max-width:980px; }
.hero-brand-visual { width:100%; min-height:160px; padding:19px; border:1px solid rgba(42,103,199,.18); border-top:7px solid #e2bd3b; border-radius:20px; background:#f2f7ff; box-shadow:0 12px 28px rgba(22,69,143,.10); color:inherit; font:inherit; text-align:left; cursor:pointer; appearance:none; display:grid; grid-template-columns:1fr; align-content:start; justify-items:start; gap:0; transition:transform .18s, border-color .2s ease,box-shadow .2s ease; }
.hero-brand-visual img { display:block; width:72px; margin-bottom:16px; border-radius:27%; }
.hero-brand-copy strong,.hero-brand-copy small { display:block; }
.hero-brand-copy strong { color:var(--ink); font-size:17px; line-height:1.25; }
.hero-brand-copy small { margin-top:5px; color:var(--muted); font-size:12px; line-height:1.4; }
.hero-brand-visual:hover { border-color:rgba(42,103,199,.32); border-top-color:#d2aa23; box-shadow:0 24px 56px rgba(25,59,116,.17); animation-play-state:paused; transform:translateY(-5px) scale(1.015); }
.hero-brand-visual:focus-visible { outline:4px solid rgba(42,103,199,.25); outline-offset:5px; animation-play-state:paused; }
@keyframes putcue-float { 0%,100% { transform:translate3d(0,0,0) rotate(-.45deg); } 50% { transform:translate3d(0,-10px,0) rotate(.45deg); } }
@-webkit-keyframes putcue-float { 0%,100% { -webkit-transform:translate3d(0,0,0) rotate(-.45deg); } 50% { -webkit-transform:translate3d(0,-10px,0) rotate(.45deg); } }
.eyebrow { color: var(--green); font-size: 11px; font-weight: 700; letter-spacing: .18em; margin: 0 0 14px; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; }
h1 { font-size: clamp(54px, 8vw, 96px); letter-spacing: -.055em; line-height: .91; margin: 0; font-weight: 600; }
h1 em { color: var(--green); font-weight: 600; }
.hero-sub { max-width: 560px; color: var(--muted); font-size: 20px; line-height: 1.55; margin: 25px 0 30px; }
.hero-action-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; max-width:980px; margin:0 0 13px; align-items:stretch; }
.task-action { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; min-height:160px; padding:19px; border:1px solid rgba(42,103,199,.16); border-top-width:7px; border-radius:20px; background:#fffdf8; color:var(--ink); text-align:left; cursor:pointer; box-shadow:0 12px 28px rgba(22,69,143,.10); transition:transform .18s, box-shadow .18s, border-color .18s; }
.task-action:hover,.task-action:focus-visible { transform:translateY(-3px); box-shadow:var(--shadow); outline:none; }
.task-action > .task-icon { display:grid; place-items:center; width:82px; height:82px; margin:-5px 0 10px; border-radius:21px; }
.task-action > .task-icon,.hero-brand-visual img { position:relative; -webkit-animation:putcue-float 3.6s ease-in-out infinite; animation:putcue-float 3.6s ease-in-out infinite; -webkit-transform-origin:center; transform-origin:center; will-change:transform; }
.task-icon img { display:block; width:82px; height:82px; object-fit:contain; filter:drop-shadow(0 6px 7px rgba(25,59,116,.22)); }
.task-action strong,.task-action small { display:block; }
.task-action strong { font-size:17px; line-height:1.25; }
.task-action small { margin-top:5px; font-size:12px; line-height:1.4; }
.task-save { border-top-color:#d94f0c; background:#f2f7ff; }
.task-save small { color:var(--muted); }
.task-find { border-top-color:#087443; background:#f2f7ff; }
.task-find small { color:var(--muted); }
.hero-note { color:var(--muted); font-size:12px; margin:0 0 18px; }
.install-quiet { border:0; padding:0; background:transparent; color:var(--green); font-size:13px; font-weight:800; cursor:pointer; }
.install-quiet:hover { text-decoration:underline; }
.home-helper { position:fixed; left:clamp(16px,3vw,42px); bottom:24px; z-index:7; display:grid; justify-items:start; gap:10px; }
.home-helper-avatar { position:relative; display:grid; place-items:center; width:88px; height:88px; border:0; padding:0; background:transparent; color:var(--ink); cursor:pointer; }
.home-helper-avatar img { width:88px; height:88px; object-fit:contain; filter:drop-shadow(0 9px 11px rgba(12,45,115,.28)); animation:home-helper-float 3.8s ease-in-out infinite; transform-origin:center bottom; transition:filter .18s ease,transform .18s ease; }
.home-helper-avatar:hover,.home-helper-avatar:focus-visible { outline:3px solid rgba(42,103,199,.22); outline-offset:2px; border-radius:28px; }
.home-helper-avatar:hover img { filter:drop-shadow(0 12px 14px rgba(12,45,115,.34)); }
.home-helper-panel { position:absolute; left:0; bottom:91px; width:min(340px,calc(100vw - 30px)); padding:22px; border:1px solid rgba(42,103,199,.22); border-radius:22px 22px 22px 7px; background:#fffdf7; box-shadow:0 22px 60px rgba(12,37,83,.25); }
.home-helper-panel[hidden] { display:none; }
.home-helper-panel::after { content:""; position:absolute; left:34px; bottom:-9px; width:18px; height:18px; border-right:1px solid rgba(42,103,199,.18); border-bottom:1px solid rgba(42,103,199,.18); background:#fffdf7; transform:rotate(45deg); }
.home-helper-panel h2 { margin:0 28px 8px 0; font-size:24px; line-height:1.08; }
.home-helper-panel > p:not(.eyebrow) { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.home-helper-close { position:absolute; top:12px; right:12px; width:34px; height:34px; border:0; border-radius:50%; background:#e7f0ff; color:var(--ink); font-size:22px; cursor:pointer; }
.home-helper-actions { display:grid; gap:7px; margin-top:16px; }
.home-helper-actions button { border:1px solid rgba(42,103,199,.2); border-radius:12px; padding:11px 13px; background:#eef5ff; color:#163f78; text-align:left; font-size:12px; font-weight:800; cursor:pointer; }
.home-helper-actions button:hover,.home-helper-actions button:focus-visible { border-color:#2a67c7; background:#dceaff; outline:none; }
@keyframes home-helper-float { 0%,100% { transform:translateY(0) rotate(-.5deg); } 50% { transform:translateY(-7px) rotate(.5deg); } }
.collection-tools { margin:0 0 28px; }
.search-label { margin:0 0 8px; font-size:13px; font-weight:800; }
.search-wrap { position: relative; display: flex; align-items: center; max-width: 790px; }
.search-wrap svg { position:absolute; left:22px; width:22px; fill:none; stroke:var(--ink); stroke-width:1.8; }
.search-wrap input { width:100%; border:1px solid rgba(20,40,74,.18); background:rgba(255,253,247,.92); padding:20px 65px 20px 58px; border-radius:18px; outline:none; box-shadow:0 8px 30px rgba(25,59,116,.07); transition:.2s; font-size:16px; }
.search-wrap input:focus { border-color:var(--green); box-shadow:0 0 0 4px rgba(42,103,199,.11); }
.search-wrap kbd { position:absolute; right:18px; border:1px solid var(--line); background:#e8f1ff; border-radius:7px; padding:4px 7px; color:#60718f; font-size:11px; }
.category-row { display:flex; gap:9px; flex-wrap:wrap; margin-top:12px; }
.chip { background:transparent; border:1px solid var(--line); border-radius:999px; padding:9px 15px; font-size:13px; cursor:pointer; transition:.15s; }
.chip:hover, .chip.active { background:var(--ink); color:white; border-color:var(--ink); }
.collection { border-top:1px solid rgba(20,40,74,.12); padding-top:38px; }
.section-head { display:flex; align-items:end; justify-content:space-between; margin-bottom:24px; }
.section-head h2 { font-size:34px; letter-spacing:-.03em; margin:0; }
.section-intro { max-width:540px; margin:7px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.count { font-size:13px; color:var(--muted); padding-bottom:5px; }
.collection-meta { display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.sync-account { display:grid; gap:4px; justify-items:end; }
.sync-account[hidden] { display:none; }
.sync-account > span { color:var(--muted); font-size:9px; font-weight:850; letter-spacing:.1em; }
.sync-account button { display:grid; gap:2px; justify-items:end; border:1px solid rgba(42,103,199,.22); background:#e7f0ff; color:#163f78; border-radius:12px; padding:9px 11px; cursor:pointer; max-width:260px; }
.sync-account button:hover { border-color:#2a67c7; box-shadow:0 7px 18px rgba(42,103,199,.12); }
.sync-account strong { font-size:12px; overflow-wrap:anywhere; }
.sync-account small { color:#536581; font-size:10px; font-weight:700; }
.backup-actions { display:flex; gap:8px; }
.small-button { border:1px solid var(--line); background:rgba(255,255,255,.5); border-radius:10px; padding:8px 10px; font-size:11px; font-weight:700; cursor:pointer; }
.small-button span { color:var(--green); margin-left:3px; }
.item-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:19px; }
.item-card { background:var(--card); border:1px solid rgba(20,40,74,.11); border-radius:22px; overflow:hidden; cursor:pointer; transition:transform .2s, box-shadow .2s; }
.item-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.item-photo { aspect-ratio:1.45; background:#dceaff; display:grid; place-items:center; overflow:hidden; position:relative; }
.item-photo img { width:100%; height:100%; object-fit:cover; }
.item-photo .placeholder { font-size:48px; }
.category-tag { position:absolute; top:12px; left:12px; background:rgba(255,253,248,.9); backdrop-filter:blur(8px); padding:6px 9px; border-radius:999px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.item-body { padding:20px; }
.item-body h3 { font-size:22px; margin:0 0 9px; }
.location-label { margin:14px 0 5px; color:#71809a; font-size:9px; font-weight:800; letter-spacing:.12em; }
.location { display:flex; align-items:flex-start; gap:7px; color:var(--green); font-weight:600; font-size:13px; line-height:1.4; }
.location svg { width:15px; flex:none; margin-top:1px; fill:none; stroke:currentColor; stroke-width:2; }
.location-detail { margin:7px 0 0 22px; color:var(--muted); font-size:12px; line-height:1.4; }
.find-button { border:0; padding:0; margin-top:15px; background:transparent; color:var(--green); font-size:12px; font-weight:800; cursor:pointer; }
.item-date { color:#8490a6; font-size:11px; margin:15px 0 0; }
.empty-state { text-align:center; border:1px dashed #aebfd8; border-radius:24px; padding:48px 20px; background:rgba(255,253,247,.38); }
.empty-icon img { width:82px; height:82px; display:block; margin:0 auto 16px; border-radius:23px; box-shadow:0 8px 22px rgba(12,45,115,.18); }
.empty-state h3 { font-size:26px; margin:12px 0 6px; }
.empty-state p { color:var(--muted); margin:0 0 18px; }
.text-button { border:0; background:none; color:var(--green); font-weight:700; cursor:pointer; }
.fab { position:fixed; right:clamp(20px,5vw,64px); bottom:30px; border:0; border-radius:18px; background:var(--green); color:white; padding:16px 23px; font-weight:700; cursor:pointer; box-shadow:0 13px 35px rgba(22,69,143,.28); transition:.2s; z-index:5; }
.fab:hover { transform:translateY(-3px); background:var(--green-dark); }
.fab span { font-size:20px; margin-right:6px; }
.modal { width:min(620px,calc(100% - 28px)); max-height:calc(100vh - 28px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; border:0; border-radius:28px; padding:28px; background:var(--card); color:var(--ink); box-shadow:0 25px 80px rgba(12,37,83,.25); }
.modal::backdrop { background:rgba(12,27,57,.48); backdrop-filter:blur(4px); }
.modal-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:23px; }
.modal-head h2 { font-size:32px; margin:0; letter-spacing:-.03em; }
.install-modal-title { display:flex; align-items:center; gap:14px; }
.install-modal-logo { width:62px; height:62px; border-radius:18px; box-shadow:0 7px 18px rgba(12,45,115,.2); flex:none; }
.icon-button { border:1px solid var(--line); background:transparent; border-radius:50%; width:38px; height:38px; cursor:pointer; font-size:24px; line-height:1; }
.photo-drop { min-height:165px; border:1.5px dashed #aebfd8; border-radius:19px; display:flex; align-items:center; justify-content:center; flex-direction:column; cursor:pointer; background:#edf4ff; overflow:hidden; position:relative; margin-bottom:19px; }
.photo-drop input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.photo-drop img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.camera-icon { font-size:31px; color:var(--green); margin-bottom:7px; }
.photo-drop strong { font-size:14px; }
.photo-drop small { color:var(--muted); margin-top:3px; }
.quick-save-note { margin:-8px 0 20px; padding:13px 15px; border-radius:12px; background:#eef5ff; color:#435877; font-size:14px; line-height:1.5; }
.quick-field > span { font-size:15px; }
.quick-field input { min-height:54px; font-size:17px; }
.optional-details { margin:5px 0 18px; border:1px solid var(--line); border-radius:15px; background:#f8fbff; overflow:hidden; }
.optional-details summary { padding:15px 17px; color:var(--green); font-size:14px; font-weight:850; cursor:pointer; list-style:none; }
.optional-details summary::-webkit-details-marker { display:none; }
.optional-details summary::after { content:"＋"; float:right; font-size:18px; line-height:1; }
.optional-details[open] summary::after { content:"−"; }
.optional-details summary span { color:var(--muted); font-size:11px; font-weight:600; margin-left:5px; }
.optional-details-body { padding:3px 16px 0; border-top:1px solid var(--line); }
.optional-details .photo-drop { margin-top:16px; }
.field-row { display:grid; grid-template-columns:1.4fr 1fr; gap:15px; }
.field { display:block; margin-bottom:16px; }
.field > span { display:block; font-size:12px; font-weight:700; margin:0 0 7px; }
.field i { color:#999; font-style:normal; font-weight:400; }
.field-help { display:block; color:var(--muted); line-height:1.4; margin-top:6px; }
.field input, .field select, .field textarea { width:100%; border:1px solid var(--line); border-radius:12px; padding:12px 13px; background:white; color:var(--ink); outline:none; }
.field textarea { min-height:75px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(42,103,199,.10); }
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:7px; }
.primary,.secondary,.danger { border:0; border-radius:12px; padding:12px 17px; cursor:pointer; font-weight:700; }
.primary { color:white; background:var(--green); }
.primary:disabled { background:#7d8ca6; cursor:default; }
.secondary { background:#e7effb; }
.danger { color:#a5382d; background:#f6e6e3; }
.full { width:100%; }
.detail-hero { height:250px; margin:-28px -28px 24px; background:var(--mint); display:grid; place-items:center; overflow:hidden; border-radius:28px 28px 0 0; position:relative; }
.detail-hero img { width:100%; height:100%; object-fit:cover; }
.detail-hero .placeholder { font-size:72px; }
.detail-close { position:absolute; right:16px; top:16px; background:rgba(255,255,255,.9); }
.detail-content h2 { font-size:38px; margin:0 0 10px; }
.detail-place { border-left:3px solid var(--green); padding:7px 0 7px 15px; margin:22px 0; }
.detail-place span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.detail-place strong { display:block; font-size:18px; margin-top:4px; }
.detail-note { color:var(--muted); line-height:1.55; }
.retrieve-guide { margin:22px 0 14px; padding:20px; border-radius:18px; background:#e9f2ff; }
.retrieve-title { margin:0 0 13px; color:var(--green); font-size:10px; font-weight:900; letter-spacing:.14em; }
.retrieve-step { display:flex; gap:13px; align-items:flex-start; padding:12px 0; border-top:1px solid rgba(42,103,199,.15); }
.retrieve-step > span { display:grid; place-items:center; width:26px; height:26px; flex:none; border-radius:50%; background:var(--green); color:white; font-weight:800; font-size:12px; }
.retrieve-step p { margin:0; }
.retrieve-step small { display:block; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.12em; }
.retrieve-step strong { display:block; margin-top:3px; font-size:16px; line-height:1.35; }
.retrieve-tip { border-top:1px solid rgba(42,103,199,.15); padding-top:13px; color:var(--muted); font-size:12px; line-height:1.5; }
.copy-location { width:100%; }
.detail-share-actions { display:grid; gap:9px; }
.share-directions { width:100%; min-height:48px; }
.move-button { width:100%; margin-top:12px; border:1px solid rgba(42,103,199,.28); border-radius:12px; padding:12px 15px; background:#f5f9ff; color:var(--green); font-weight:800; cursor:pointer; }
.move-button:hover { background:#e8f1ff; }
.detail-actions { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:20px; margin-top:26px; }
.privacy-modal > p { color:var(--muted); line-height:1.6; }
.privacy-list { margin:25px 0; }
.privacy-list > div { display:flex; gap:15px; border-top:1px solid var(--line); padding:16px 0; }
.privacy-list span { color:var(--green); font-family:Georgia,"Times New Roman",serif; }
.privacy-list p { margin:0; color:var(--muted); font-size:13px; }
.privacy-list strong { display:block; color:var(--ink); font-size:15px; margin-bottom:2px; }
.toast { position:fixed; left:50%; bottom:28px; transform:translate(-50%,20px); background:var(--ink); color:white; padding:11px 17px; border-radius:999px; font-size:13px; opacity:0; pointer-events:none; transition:.25s; z-index:10; }
.toast.show { opacity:1; transform:translate(-50%,0); }

.how-strip { margin:64px 0; padding:40px; border:1px solid rgba(20,40,74,.11); border-radius:28px; background:rgba(255,253,247,.68); }
.how-strip > h2 { margin:0 0 28px; font-size:clamp(32px,4vw,48px); letter-spacing:-.04em; }
.step-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.step-card { text-align:left; padding:22px; border-radius:18px; background:var(--card); border:1px solid var(--line); cursor:pointer; transition:transform .18s, box-shadow .18s, border-color .18s; }
.step-card:hover,.step-card:focus-visible { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--green); outline:none; }
.step-grid span { color:var(--green); font-family:Georgia,"Times New Roman",serif; }
.step-grid h3 { font-size:23px; margin:16px 0 8px; }
.step-grid p { color:var(--muted); line-height:1.55; margin:0; font-size:13px; }
.step-card strong { display:block; color:var(--green); margin-top:18px; font-size:13px; }

.home-check-strip { margin:34px 0 0; padding:24px 26px; border:1px solid rgba(42,103,199,.17); border-radius:22px; background:rgba(255,253,247,.8); display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; box-shadow:0 10px 28px rgba(25,59,116,.06); }
.home-check-strip[hidden] { display:none; }
.home-check-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:17px; background:#d9f0e5; color:#23694a; font-size:27px; font-weight:900; }
.home-check-copy .eyebrow { margin-bottom:5px; }
.home-check-copy h2 { margin:0; font-size:28px; }
.home-check-copy > p:not(.eyebrow) { margin:6px 0 0; color:var(--muted); font-size:13px; line-height:1.45; }
.home-check-copy .home-check-status { color:#8c5b20; font-weight:800; }
.home-check-copy .home-check-status.is-complete { color:#23694a; }
.home-check-actions { display:grid; gap:9px; min-width:190px; }
.home-check-intro { margin:-7px 0 19px; color:var(--muted); line-height:1.55; }
.home-check-list { display:grid; gap:10px; margin-bottom:18px; }
.home-check-item { display:flex; align-items:center; gap:13px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#f8fbff; cursor:pointer; }
.home-check-item:has(input:checked) { border-color:#8bc9ae; background:#edf9f2; }
.home-check-item input { width:23px; height:23px; accent-color:#3b8f6a; flex:none; }
.home-check-item strong,.home-check-item small { display:block; }
.home-check-item small { margin-top:3px; color:var(--muted); }

.care-strip { margin:64px 0 0; padding:42px; border-radius:30px; background:linear-gradient(135deg,#dceaff 0%,#f3f7ff 58%,#ffe2cf 100%); display:grid; grid-template-columns:1.05fr .95fr; gap:42px; align-items:center; }
.care-strip h2 { margin:0 0 16px; font-size:clamp(34px,4.5vw,54px); line-height:1.03; letter-spacing:-.045em; }
.care-copy > p:not(.eyebrow) { color:#435877; line-height:1.65; }
.care-copy .care-fit { padding:12px 14px; border-left:3px solid var(--coral); border-radius:0 10px 10px 0; background:rgba(255,253,247,.62); font-size:13px; }
.care-copy .primary { margin-top:8px; }
.care-examples { display:grid; gap:10px; }
.care-examples p { display:grid; grid-template-columns:42px 1fr; margin:0; padding:15px; border:1px solid rgba(42,103,199,.12); border-radius:16px; background:rgba(255,253,247,.82); }
.care-examples p > span { grid-row:1 / 3; display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#e8f1ff; }
.care-examples strong,.care-examples small { grid-column:2; }
.care-examples strong { font-size:14px; }
.care-examples small { margin-top:3px; color:var(--muted); font-size:12px; line-height:1.4; }
.care-examples .care-boundary { background:rgba(255,255,255,.62); }
.care-examples .care-boundary > span { color:#23694a; background:#d9f0e5; font-weight:900; }

.care-circle-strip { margin:24px 0 0; padding:28px 30px; border:1px solid rgba(42,103,199,.2); border-radius:24px; background:linear-gradient(120deg,#f7fbff,#eef5ff 58%,#fff5ed); display:grid; grid-template-columns:auto 1fr auto; gap:22px; align-items:center; box-shadow:0 12px 30px rgba(25,59,116,.06); }
.care-circle-mark { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:#2a67c7; color:white; font-size:30px; font-weight:900; box-shadow:0 0 0 8px rgba(42,103,199,.09); }
.care-circle-strip h2 { margin:0 0 8px; font-size:27px; letter-spacing:-.025em; }
.care-circle-strip p:not(.eyebrow) { margin:0; color:var(--muted); font-size:14px; line-height:1.55; }
.care-circle-strip .care-circle-status { margin-top:7px; color:#315f9e; font-weight:800; }
.reminder-time-field { margin:0 0 16px; }
.reminder-device-note { margin:12px 0 16px; background:#eef5ff; }
.reminder-device-note > span { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:14px; background:white; font-size:25px; }
.reminder-status,.care-circle-message { padding:13px 15px; border-radius:12px; background:#f4f7fb; color:#435877; font-weight:750; line-height:1.45; }
.reminder-status.is-on { background:#edf9f2; color:#23694a; }
.reminder-status.is-error,.care-circle-message.is-error { background:#fff0ec; color:#a33b25; }
.reminder-actions { display:grid; gap:9px; }
.care-circle-security { display:grid; gap:4px; margin:0 0 16px; padding:15px 17px; border-radius:14px; background:#edf9f2; color:#23694a; }
.care-circle-security span { font-size:13px; line-height:1.45; }
.care-circle-panel { margin:16px 0; padding:18px; border:1px solid var(--line); border-radius:17px; background:#fbfcff; }
.panel-heading h3 { margin:2px 0 14px; font-size:22px; }
.care-member-list,.shared-essential-list { display:grid; gap:9px; margin-bottom:14px; }
.care-member,.shared-household,.shared-essential { padding:13px 14px; border:1px solid var(--line); border-radius:13px; background:white; }
.care-member { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.care-member strong,.care-member small,.shared-household > strong,.shared-essential strong,.shared-essential span,.shared-essential small { display:block; }
.care-member small,.shared-essential span,.shared-essential small { margin-top:3px; color:var(--muted); font-size:12px; line-height:1.4; }
.shared-household { display:grid; gap:9px; }
.shared-household-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.shared-essential { background:#f8fbff; }
.fine-print { color:var(--muted); font-size:11px; line-height:1.45; text-align:center; }
[hidden] { display:none !important; }

.premium-strip { margin-top:72px; padding:48px; border-radius:30px; background:var(--ink); color:white; display:grid; grid-template-columns:1.4fr .8fr; gap:54px; align-items:center; overflow:hidden; position:relative; }
.premium-strip::after { content:""; position:absolute; width:360px; height:360px; right:-150px; top:-170px; border:1px solid rgba(255,255,255,.14); border-radius:50%; box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018); }
.premium-strip .eyebrow { color:#a9c9ff; }
.premium-strip h2 { font-size:clamp(38px,5vw,62px); line-height:1; letter-spacing:-.045em; margin:0 0 18px; }
.premium-copy > p:last-of-type { color:#cbd8ee; line-height:1.65; max-width:600px; }
.premium-copy ul { list-style:none; padding:0; margin:25px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:13px 20px; }
.premium-copy li { color:#edf3ff; font-size:13px; }
.premium-copy li::before { content:"✓"; color:#ffad73; margin-right:8px; font-weight:900; }
.price-card { position:relative; z-index:1; padding:28px; border-radius:22px; background:var(--card); color:var(--ink); text-align:center; box-shadow:var(--shadow); }
.price-card > span { color:var(--green); font-size:10px; font-weight:800; letter-spacing:.14em; }
.price-card > strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:58px; margin:8px 0 2px; letter-spacing:-.06em; }
.price-card > strong small { font-size:25px; vertical-align:top; position:relative; top:8px; margin-right:3px; }
.price-card > p { color:var(--muted); font-size:13px; margin:0 0 20px; }
.price-card > small { display:block; color:#7c899f; font-size:10px; margin-top:10px; }
.premium-modal > p { color:var(--muted); line-height:1.6; }
.premium-modal-price { display:flex; align-items:baseline; gap:10px; margin:22px 0; }
.premium-modal-price strong { font-family:Georgia,"Times New Roman",serif; font-size:48px; }
.premium-modal-price span { color:var(--muted); font-size:13px; }
.practice-banner { display:grid; gap:6px; margin:-6px 0 20px; padding:14px 16px; border:2px solid #79a7da; border-radius:14px; background:#e9f3ff; color:#123b66; }
.practice-banner[hidden] { display:none; }
.practice-banner strong { font-size:16px; }
.practice-banner span { font-size:14px; line-height:1.45; }
.care-invite-banner { display:grid; gap:6px; margin:2px 0 20px; padding:16px 17px; border:2px solid #83b9a0; border-radius:14px; background:#edf9f2; color:#205c42; }
.care-invite-banner[hidden] { display:none; }
.care-invite-banner strong { font-size:17px; }
.care-invite-banner span { font-size:14px; line-height:1.5; }
.premium-checklist { list-style:none; padding:0; margin:0 0 24px; border-top:1px solid var(--line); }
.premium-checklist li { border-bottom:1px solid var(--line); padding:12px 0; font-size:13px; }
.premium-checklist li::before { content:"✓"; color:var(--green); font-weight:900; margin-right:9px; }
.premium-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:18px 0 14px; }
.premium-progress > div { display:flex; align-items:center; gap:7px; padding:10px 8px; border:1px solid var(--line); border-radius:12px; color:#77849a; background:#f8fafc; }
.premium-progress span { display:grid; place-items:center; width:25px; height:25px; flex:none; border-radius:50%; background:#dfe5ee; color:#5d6b81; font-size:12px; font-weight:900; }
.premium-progress strong { font-size:12px; line-height:1.2; }
.premium-progress .is-current { border-color:#2a67c7; background:#eef5ff; color:#16365f; }
.premium-progress .is-current span { background:#2a67c7; color:white; }
.premium-progress .is-complete { border-color:#8bc9ae; background:#edf9f2; color:#23694a; }
.premium-progress .is-complete span { background:#3b8f6a; color:white; }
.premium-next-step { margin:0 0 14px; padding:18px; border:2px solid #2a67c7; border-radius:16px; background:#f4f8ff; }
.premium-next-step .next-step-label { display:block; margin-bottom:6px; color:#2a67c7; font-size:11px; font-weight:900; letter-spacing:.12em; }
.premium-next-step > strong { display:block; color:#18365f; font-size:22px; line-height:1.2; }
.premium-next-step p { margin:7px 0 0; color:#435877; font-size:16px; line-height:1.55; }
.checkout-note { display:block; text-align:center; color:var(--muted); margin-top:12px; font-size:13px; line-height:1.55; }
.premium-auth-card { margin:20px 0 12px; padding:18px; border:1px solid rgba(42,103,199,.18); border-radius:16px; background:#eef5ff; }
.premium-auth-card h3 { margin:0 0 6px; font-size:21px; }
.premium-auth-card > p { margin:0 0 14px; color:#435877; font-size:15px; line-height:1.55; }
.premium-auth-card label { display:block; margin-bottom:7px; font-size:15px; font-weight:850; }
.premium-auth-card input { width:100%; margin-bottom:10px; border:1px solid rgba(42,103,199,.35); border-radius:11px; padding:14px; background:white; color:var(--ink); font-size:16px; }
.premium-auth-card input:focus { outline:3px solid rgba(42,103,199,.16); border-color:var(--green); }
.google-signin { display:flex; align-items:center; justify-content:center; gap:11px; min-height:58px; margin-top:14px; border:0; border-radius:13px; background:#2a67c7; color:white; font-size:17px; cursor:pointer; box-shadow:0 10px 22px rgba(42,103,199,.24); }
.google-signin:hover { background:#1f57ad; }
.google-signin:focus-visible { outline:3px solid rgba(42,103,199,.2); outline-offset:2px; }
.google-signin:disabled { opacity:.65; cursor:wait; }
.google-g { display:grid; place-items:center; width:29px; height:29px; border-radius:50%; background:white; color:#2a67c7; font-size:20px; font-weight:900; }
.premium-auth-card .google-help { margin:9px 0 0; text-align:center; font-size:13px; }
.auth-divider { display:flex; align-items:center; gap:10px; margin:17px 0; color:#687891; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:rgba(42,103,199,.2); }
.signed-in-card span,.signed-in-card strong { display:block; }
.signed-in-card span { color:var(--muted); font-size:12px; }
.signed-in-card strong { margin:5px 0 9px; overflow-wrap:anywhere; }
.premium-auth-status { min-height:20px; margin:10px 0 14px; color:#23694a; font-size:15px; font-weight:800; line-height:1.5; }
.premium-auth-status.is-error { color:#a33b25; }
.premium-modal.is-email-return .premium-intro-copy,
.premium-modal.is-email-return .premium-modal-price,
.premium-modal.is-email-return .premium-checklist { display:none; }
.premium-modal.is-email-return .premium-progress { margin-top:4px; }
.premium-modal.is-email-return .premium-next-step { margin-top:0; background:#edf5ff; box-shadow:0 10px 28px rgba(42,103,199,.12); }
.premium-modal.is-email-return .signed-in-card { margin:0 0 12px; padding:14px 16px; }
.premium-modal.is-email-return #checkoutButton { min-height:58px; font-size:17px; box-shadow:0 12px 28px rgba(42,103,199,.24); }
.premium-modal.is-care-invite .premium-intro-copy,
.premium-modal.is-care-invite .premium-modal-price,
.premium-modal.is-care-invite .practice-banner,
.premium-modal.is-care-invite .premium-checklist,
.premium-modal.is-care-invite .premium-progress,
.premium-modal.is-care-invite .recovery-help,
.premium-modal.is-care-invite .refund-note { display:none; }
.premium-modal.is-care-invite .premium-next-step { margin-top:0; background:#edf9f2; border-color:#9dcdb6; }
.recovery-help { margin-top:16px; }
.premium-active-panel { padding:20px; border:1px solid rgba(42,103,199,.18); border-radius:19px; background:#eef5ff; }
.premium-active-badge { display:inline-flex; align-items:center; padding:7px 11px; border-radius:999px; background:#d9f0e5; color:#23694a; font-size:12px; font-weight:900; }
.premium-active-panel h3 { margin:18px 0 8px; font-size:28px; }
.premium-account-line { display:grid; gap:5px; margin:14px 0; padding:13px 15px; border:1px solid rgba(42,103,199,.2); border-radius:13px; background:white; }
.premium-account-line span { color:var(--muted); font-size:11px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.app-version-line { margin:10px 0 16px; color:var(--muted); font-size:11px; font-weight:750; text-align:center; }
#syncNowButton { margin-top:12px; }
.premium-account-line strong { color:#163f78; font-size:16px; overflow-wrap:anywhere; }
.premium-active-panel p { margin:0 0 16px; color:var(--muted); line-height:1.55; }
.premium-active-panel small { display:block; margin-top:11px; color:var(--muted); line-height:1.45; }
.support-recovery-link { display:block; margin-top:14px; color:var(--green); font-size:13px; font-weight:800; text-align:center; }
.is-premium .premium-nav { background:var(--ink); }
.is-premium .small-button span { color:#315f9e; }

.install-strip { margin-top:72px; padding:42px; border-radius:28px; background:#ffe2cf; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
html.is-installed-app .install-nav,
html.is-installed-app .install-quiet,
html.is-installed-app .install-strip { display:none !important; }
.install-strip h2 { margin:0 0 14px; font-size:clamp(34px,4vw,50px); letter-spacing:-.04em; }
.install-strip > div:first-child > p:not(.eyebrow) { color:#6b5f59; line-height:1.65; max-width:630px; }
.phone-steps { display:grid; gap:12px; }
.phone-steps p { margin:0; padding:18px; border-radius:16px; background:rgba(255,253,248,.76); }
.phone-steps strong,.phone-steps span { display:block; }
.phone-steps span { color:var(--muted); font-size:13px; margin-top:4px; }
.install-cta { padding:14px 20px; font-size:15px; }
.install-device-card { display:flex; gap:16px; align-items:center; padding:19px; border-radius:18px; background:var(--mint); }
.install-device-card .share-symbol { display:grid; place-items:center; width:48px; height:48px; flex:none; border-radius:14px; background:var(--green); color:white; font-size:26px; }
.install-device-card strong { display:block; margin-bottom:4px; }
.install-device-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.compact-list { margin:18px 0; }
.install-actions { display:grid; gap:9px; text-align:center; }

.about-strip { margin-top:72px; padding:42px; border-radius:28px; background:var(--mint); }
.about-strip h2 { margin:0 0 14px; font-size:clamp(30px,4vw,48px); letter-spacing:-.035em; max-width:720px; }
.about-strip > p:last-child { color:#4d6385; line-height:1.7; max-width:760px; margin:0; }
.support-strip { margin-top:24px; padding:36px 42px; border:1px solid var(--line); border-radius:24px; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.support-strip h2 { margin:0; font-size:clamp(28px,3.5vw,42px); letter-spacing:-.035em; }
.support-strip p { color:var(--muted); line-height:1.6; margin-top:0; }
.support-link { color:var(--green); font-weight:800; text-decoration:none; }
.support-link:hover { text-decoration:underline; }
.site-footer { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:start; margin-top:30px; padding:38px 0 10px; border-top:1px solid rgba(20,40,74,.12); }
.footer-brand { width:max-content; }
.site-footer p { color:var(--muted); font-size:13px; }
.site-footer a { color:var(--green); }
.site-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:14px 22px; }
.site-footer nav a { font-size:13px; font-weight:700; text-decoration:none; }
.site-footer nav a:hover { text-decoration:underline; }
.copyright { grid-column:1 / -1; margin:12px 0 0; }

.legal-shell { width:min(780px,calc(100% - 40px)); margin:0 auto; padding-bottom:70px; }
.legal-main { padding:56px 0; }
.legal-main h1 { font-size:clamp(44px,7vw,72px); margin-bottom:18px; }
.legal-main h2 { font-size:25px; margin:38px 0 10px; }
.legal-main p, .legal-main li { color:#536581; line-height:1.75; }
.legal-main .updated { color:var(--muted); font-size:13px; margin-bottom:34px; }
.legal-main a { color:var(--green); }
.back-link { color:var(--green); font-weight:700; text-decoration:none; }

@media (max-width:780px) {
  .title-break { display:none; }
  .title-tail { white-space:nowrap; }
  .shell { width:min(100% - 28px,680px); }
  .topbar { height:82px; }
  .brand { font-size:25px; gap:10px; }
  .brand-mark { width:50px; height:50px; border-radius:15px; }
  .privacy-pill { display:none; }
  .install-nav { padding:9px 11px; }
  .privacy-dot { margin:0; }
  .hero { padding:48px 0 34px; }
  .hero-brand-visual { padding:19px; grid-template-columns:1fr; align-content:start; justify-items:start; gap:0; }
  .hero-brand-visual img { width:72px; }
  .hero-brand-copy strong { font-size:15px; }
  .hero-brand-copy small { font-size:11px; }
  h1 { font-size:57px; }
  .hero-sub { font-size:17px; margin:20px 0 25px; }
  .item-grid { grid-template-columns:1fr 1fr; }
  .premium-strip { grid-template-columns:1fr; padding:36px; gap:32px; }
  .care-strip { grid-template-columns:1fr; padding:34px; gap:28px; }
  .home-check-strip { grid-template-columns:auto 1fr; }
  .home-check-actions { grid-column:1 / -1; grid-template-columns:1fr 1fr; }
  .care-circle-strip { grid-template-columns:auto 1fr; }
  .care-circle-strip > .primary { grid-column:1 / -1; width:100%; }
  .step-grid { grid-template-columns:1fr; }
  .install-strip,.support-strip { grid-template-columns:1fr; }
  .fab { right:18px; bottom:18px; }
  .home-helper { left:12px; bottom:14px; }
  .home-helper-avatar { width:72px; height:72px; }
  .home-helper-avatar img { width:72px; height:72px; }
  .home-helper-panel { bottom:82px; }
}
@media (max-width:520px) {
  .brand { font-size:20px; line-height:1.05; }
  .brand-mark { width:46px; height:46px; border-radius:14px; }
  .hero-brand-visual { width:100%; min-height:112px; grid-template-columns:1fr; align-content:start; justify-items:start; }
  .hero-brand-visual img { width:72px; }
  h1 { font-size:49px; }
  .hero-action-grid { grid-template-columns:1fr; }
  .task-action { min-height:112px; }
  .home-check-strip { grid-template-columns:1fr; text-align:left; padding:22px; }
  .home-check-icon { width:46px; height:46px; }
  .home-check-actions { grid-column:auto; grid-template-columns:1fr; width:100%; }
  .care-circle-strip { grid-template-columns:1fr; padding:24px 22px; }
  .care-circle-mark { width:48px; height:48px; }
  .item-grid { grid-template-columns:1fr; }
  .topbar-actions { gap:6px; }
  .premium-nav { font-size:11px; padding:10px 12px; }
  .install-nav { font-size:11px; width:auto; height:auto; padding:9px 11px; }
  .premium-nav::after { content:""; }
  .section-head { align-items:flex-start; }
  .collection-meta { gap:7px; }
  .sync-account { justify-items:start; }
  .sync-account button { justify-items:start; text-align:left; }
  .backup-actions { flex-direction:column; }
  .premium-strip { padding:30px 22px; }
  .premium-progress { gap:5px; }
  .premium-progress > div { display:grid; justify-items:center; padding:9px 4px; text-align:center; }
  .premium-progress strong { font-size:10px; }
  .premium-next-step > strong { font-size:20px; }
  .premium-copy ul { grid-template-columns:1fr; }
  .section-head h2 { font-size:29px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .modal { padding:22px; border-radius:22px; }
  .step-card { min-height:155px; }
  .detail-hero { margin:-22px -22px 22px; }
  .search-wrap kbd { display:none; }
  .search-wrap input { padding-right:20px; }
  .about-strip { padding:28px 22px; margin-top:50px; }
  .how-strip,.care-strip,.install-strip,.support-strip { padding:28px 22px; }
  .site-footer { grid-template-columns:1fr; }
  .site-footer nav { justify-content:flex-start; }
  .copyright { grid-column:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-brand-visual:hover { transform:none; }
  .home-helper-avatar img { animation:none; }
}
