.auth-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--s4);background:#0000008c;overflow-y:auto;overscroll-behavior:contain}.auth-overlay .auth-panel{position:relative;width:100%;max-width:26rem;margin:auto}.auth-close{position:absolute;top:var(--s2);right:var(--s2);width:var(--tap);height:var(--tap);display:grid;place-items:center;border:none;border-radius:var(--radius);background:transparent;color:var(--text-dim);font-size:1.5rem;line-height:1;cursor:pointer}.auth-close:hover{color:var(--text);background:var(--surface-2)}.auth-close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.auth-panel{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.5rem}.auth-title{margin:0 0 .25rem;font-size:1.375rem;letter-spacing:-.02em}.auth-sub{margin:0 0 1.25rem;color:var(--text-dim);font-size:.9375rem}.auth-error{margin:0 0 1rem;padding:.625rem .75rem;border-radius:.5rem;background:var(--error-bg);color:var(--error);font-size:.9375rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-field{display:flex;flex-direction:column;gap:.375rem}.auth-field>span{font-size:.875rem;font-weight:550;color:var(--text-dim)}.auth-field em{font-style:normal;font-weight:400;opacity:.75}.auth-field input{min-height:var(--btn-h);padding:0 .75rem;border:1px solid var(--border);border-radius:var(--btn-radius);background:var(--bg);color:var(--text);width:100%}.auth-hint{color:var(--text-dim);font-size:.8125rem}.auth-submit{min-height:var(--btn-h);border:none;border-radius:var(--btn-radius);background:var(--accent);color:var(--accent-ink);font-weight:650;font-size:var(--btn-text)}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--text-dim);font-size:.875rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-oauth{display:flex;align-items:center;justify-content:center;min-height:var(--btn-h);border:1px solid var(--border);border-radius:var(--btn-radius);background:var(--surface-2);color:var(--text);font-weight:550;text-decoration:none;font-size:var(--btn-text)}.auth-switch{margin:1.25rem 0 0;text-align:center;color:var(--text-dim);font-size:.9375rem}.auth-switch button{border:none;background:none;padding:.25rem;color:var(--accent);font-weight:550;text-decoration:underline}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;min-height:var(--btn-h);padding:0 .5rem;border:1px solid transparent;border-radius:var(--btn-radius);background:none;color:var(--text);max-width:48vw;font-size:var(--btn-text)}.user-menu-trigger:hover{border-color:var(--border)}.user-menu-avatar{display:grid;place-items:center;width:1.75rem;height:1.75rem;flex:0 0 auto;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:.8125rem;font-weight:700}.user-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem}@media(max-width:400px){.user-menu-label{display:none}}.user-menu-popover{position:absolute;top:calc(100% + .375rem);right:0;z-index:10;min-width:15rem;padding:.5rem;border:1px solid var(--border);border-radius:.625rem;background:var(--surface-2);box-shadow:0 12px 32px #00000047}.user-menu-email{margin:.25rem .5rem .5rem;color:var(--text-dim);font-size:.8125rem;overflow-wrap:anywhere}.user-menu-note{margin:0 .5rem .5rem;color:var(--accent);font-size:.8125rem}.user-menu-popover button{display:block;width:100%;min-height:var(--btn-h);padding:0 .5rem;border:none;border-radius:var(--btn-radius);background:none;color:var(--text);text-align:left;font-size:var(--btn-text)}.user-menu-popover button:hover{background:var(--surface)}.user-menu-danger{color:var(--error)}.user-menu-signin{display:inline-flex;align-items:center;min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:transparent;color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease)}.user-menu-signin:hover{background:var(--surface-2)}.user-menu-signin:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ring{flex:0 0 auto;display:block}.ring-track{stroke:var(--border)}.ring-value{stroke:var(--accent);transition:stroke-dashoffset var(--dur) var(--ease)}.ring-text{fill:var(--text-dim);font-family:var(--font-text);font-size:.72rem;font-variant-numeric:tabular-nums}.state-empty{padding:var(--s7) var(--s4);text-align:center}.state-title{margin:0 0 var(--s2);font-family:var(--font-display);font-size:var(--text-lg);color:var(--text)}.state-body{margin:0 auto;max-width:34ch;color:var(--text-dim);font-size:var(--text-sm)}.state-action{margin-top:var(--s4);min-height:var(--btn-h);padding:0 var(--s4);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--surface-2);color:var(--text);font-size:var(--btn-text)}.skeleton-list{list-style:none;margin:0;padding:0}.skeleton-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border)}.skeleton-box,.skeleton-line{display:block;border-radius:4px;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:200% 100%;animation:skeleton 1.4s ease-in-out infinite}.skeleton-box{width:22px;height:22px;flex:0 0 auto}.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:var(--s2)}.skeleton-line{height:.9rem}.skeleton-line.short{width:22%;height:.7rem;opacity:.6}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:var(--s4);background:#00000080}.dialog{width:min(28rem,100%);padding:var(--s5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.dialog-title{margin:0 0 var(--s4);font-size:var(--text-xl)}.dialog-field{display:flex;flex-direction:column;gap:var(--s2)}.dialog-field>span{font-size:var(--text-sm);color:var(--text-dim);font-weight:550}.dialog-field input{min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--bg);color:var(--text)}.dialog-toggle{display:flex;align-items:flex-start;gap:var(--s3);margin-top:var(--s4);padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.dialog-toggle input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--accent)}.dialog-toggle span{font-size:var(--text-sm)}.dialog-toggle small{display:block;margin-top:.15rem;color:var(--text-dim);font-size:var(--text-xs)}.dialog-error{margin:var(--s3) 0 0;color:var(--error);font-size:var(--text-sm)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--s2);margin-top:var(--s5)}.dialog-cancel,.dialog-create{min-height:var(--btn-h);padding:0 var(--s4);border-radius:var(--btn-radius);font-weight:600;font-size:var(--btn-text)}.dialog-cancel{border:1px solid var(--border);background:none;color:var(--text-dim)}.dialog-create{border:none;background:var(--accent);color:var(--accent-ink)}.dialog-create:disabled{opacity:.5;cursor:default}.dialog-body{margin:0;color:var(--text-dim);font-size:var(--text-sm)}.dialog-create.is-danger{background:var(--error);color:var(--bg)}.shelf{max-width:48rem;margin:0 auto}.shelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);padding:var(--s5) var(--s4) var(--s4)}.shelf-title{font-size:var(--text-2xl)}.shelf-new{min-height:var(--btn-h);padding:0 var(--s4);border:none;border-radius:var(--btn-radius);background:var(--accent);color:var(--accent-ink);font-weight:650;font-size:var(--btn-text)}.shelf-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.shelf-row{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);min-height:var(--tap);border-bottom:1px solid var(--border);color:inherit;text-decoration:none}.shelf-row:hover{background:var(--surface)}.shelf-row-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.shelf-row-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em}.shelf-row-reading{color:var(--text-dim);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.shelf-row-reading em{font-style:normal;opacity:.85}.shelf-empty-actions{display:flex;flex-direction:column;align-items:center;gap:var(--s2)}.state-action.is-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:650}.state-action:disabled{opacity:.45;cursor:default}.shelf-soon{margin:var(--s2) 0 0;color:var(--text-dim);font-size:var(--text-xs)}@media(max-width:30rem){.shelf-head{padding:var(--s4) var(--s3) var(--s3)}.shelf-row{padding:var(--s3);gap:var(--s3)}}.shelf-actions{display:flex;align-items:center;gap:var(--s2)}.shelf-browse{display:inline-flex;align-items:center;min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);color:var(--text);text-decoration:none;font-size:var(--btn-text);font-weight:600;white-space:nowrap}.shelf-browse:hover{background:var(--surface-2)}.shelf-browse:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.catalog{max-width:44rem;margin:0 auto;padding:var(--s5) var(--s4) var(--s8)}.catalog-head{margin-bottom:var(--s6)}.catalog-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin:0;color:var(--text)}.catalog-section+.catalog-section{margin-top:var(--s7)}.catalog-section-h{display:flex;align-items:baseline;gap:var(--s2);font-family:var(--font-text);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0 0 var(--s3)}.catalog-count{font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--text-dim);background:var(--surface-2);border-radius:999px;padding:0 var(--s2);font-size:var(--text-xs)}.catalog-section-note{margin:calc(var(--s3) * -1) 0 var(--s4);font-size:var(--text-sm);color:var(--text-dim)}.catalog-none{margin:0;padding:var(--s4) 0;color:var(--text-dim);font-size:var(--text-sm)}.catalog-filters{margin-bottom:var(--s4)}.catalog-search{display:block;margin-bottom:var(--s3)}.catalog-search-label{display:block;font-size:var(--text-xs);color:var(--text-dim);margin-bottom:var(--s1)}.catalog-search input{width:100%;min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-base)}.catalog-search input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.catalog-chips{display:flex;gap:var(--s2);overflow-x:auto;scrollbar-width:none;padding-bottom:var(--s1);-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent 100%)}.catalog-chips::-webkit-scrollbar{display:none}.catalog-chip{flex:0 0 auto;min-height:2.25rem;padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:999px;background:transparent;color:var(--text-dim);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.catalog-chip:hover{color:var(--text)}.catalog-chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.catalog-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-list{list-style:none;margin:0;padding:0}.cat-row{display:flex;align-items:center;gap:var(--s3);min-height:var(--tap);padding:var(--s3) 0;border-bottom:1px solid var(--border)}.cat-row:last-child{border-bottom:none}.cat-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.cat-row-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text);text-decoration:none;display:inline-block;padding:var(--s1) 0}.cat-row-title:hover{text-decoration:underline}.cat-row-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.cat-row-meta{font-size:var(--text-sm);color:var(--text-dim);font-variant-numeric:tabular-nums}.cat-row-adopted{font-style:normal;color:var(--accent)}.cat-row-action{flex:0 0 auto;display:inline-flex;align-items:center;min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);color:var(--text);text-decoration:none;font-size:var(--btn-text);font-weight:600;white-space:nowrap}.cat-row-action:hover{background:var(--surface-2)}.cat-row-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-row-action.is-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.cat-row-action.is-primary:hover{filter:brightness(1.08)}.tpl-thumb{flex:0 0 auto;display:grid;place-items:center;width:64px;height:40px;border-radius:var(--radius);background:var(--surface-2);color:var(--accent)}.tpl-thumb svg circle{fill:currentColor}.tpl-thumb.is-glyph{color:var(--text-dim)}.cat-row-glyph{flex:0 0 auto;display:grid;place-items:center;width:64px;height:40px;color:var(--text-dim)}.cat-row.is-starter .cat-row-title{font-family:var(--font-text);font-size:var(--text-base)}@media(max-width:32rem){.catalog{padding:var(--s4) var(--s3) var(--s7)}.cat-row{gap:var(--s2)}.cat-row-body{min-width:0}.cat-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.cat-row-action{padding:0 var(--s2)}.tpl-thumb,.cat-row-glyph{width:48px;height:32px}.tpl-thumb svg{width:48px;height:32px}}.entry{max-width:40rem;margin:0 auto;padding:var(--s4) var(--s4) var(--s8)}.entry-back{margin:0 0 var(--s4);font-size:var(--text-sm)}.entry-back a,.entry-back-note a{color:var(--text-dim);text-decoration:none;display:inline-block;min-height:var(--tap);line-height:var(--tap)}.entry-back a:hover{color:var(--text);text-decoration:underline}.entry-back a:focus-visible,.entry-back-note a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.entry-head{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}.entry-glyph{flex:0 0 auto;display:grid;place-items:center;width:64px;height:40px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-dim)}.entry-head-body{min-width:0}.entry-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:1.15;margin:0;color:var(--text)}.entry-meta{margin:var(--s1) 0 0;font-size:var(--text-sm);color:var(--text-dim);font-variant-numeric:tabular-nums}.entry-desc{margin:0 0 var(--s5);font-size:var(--text-base);line-height:1.55;color:var(--text)}.entry-adopted,.entry-error{margin:0 0 var(--s3);padding:var(--s3);border-radius:var(--radius);font-size:var(--text-sm)}.entry-adopted{background:var(--surface-2);color:var(--text-dim)}.entry-error{background:var(--error-bg);color:var(--error)}.entry-adopt{width:100%;min-height:var(--btn-h);padding:0 var(--s4);border:none;border-radius:var(--btn-radius);background:var(--accent);color:var(--accent-ink);font:inherit;font-size:var(--btn-text);font-weight:600;cursor:pointer;transition:filter var(--dur-fast) var(--ease)}.entry-adopt:hover:not(:disabled){filter:brightness(1.08)}.entry-adopt:disabled{filter:saturate(.4);cursor:progress}.entry-adopt:focus-visible{outline:2px solid var(--text);outline-offset:2px}.entry-anon{margin:var(--s2) 0 0;font-size:var(--text-xs);color:var(--text-dim);text-align:center}.entry-link{margin:var(--s4) 0 0;padding:var(--s3);border-left:2px solid var(--border-interactive);font-size:var(--text-sm);color:var(--text-dim)}.entry-link a{color:var(--accent)}.entry-preview{margin-top:var(--s6)}.entry-preview-h,.entry-source-h{font-family:var(--font-text);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0 0 var(--s3)}.entry-items{list-style:none;margin:0;padding:0;counter-reset:preview}.entry-items li{display:flex;align-items:baseline;gap:var(--s2);padding:var(--s2) 0;border-bottom:1px solid var(--border)}.entry-items li:before{counter-increment:preview;content:counter(preview);flex:0 0 1.75rem;font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:right}.entry-item-title{color:var(--text)}.entry-item-sub{font-size:var(--text-sm);color:var(--text-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-more{margin:var(--s3) 0 0;font-size:var(--text-sm);color:var(--text-dim)}.entry-source{margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-dim)}.entry-source p{margin:0 0 var(--s2)}.entry-source a{color:var(--accent)}.entry-license{font-size:var(--text-xs);line-height:1.5}@media(max-width:32rem){.entry{padding:var(--s3) var(--s3) var(--s7)}.entry-title{font-size:var(--text-xl)}}.toast{position:fixed;left:50%;bottom:calc(var(--s5) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:var(--s3);max-width:min(30rem,calc(100vw - var(--s5)));padding:var(--s3) var(--s3) var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);box-shadow:0 8px 24px #0000004d}.toast button{min-width:var(--tap);min-height:var(--btn-h);border:none;background:none;color:var(--text-dim);font-size:var(--btn-text);line-height:1}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);padding-bottom:var(--s3)}.filters .filter-tabs{padding-right:0}.filters .filter-secondary{padding:0 var(--s4) 0 0;margin-left:auto}.filters-OLD{border-bottom:1px solid var(--border)}.filter-tabs{display:flex;align-items:center;gap:var(--s1);padding:0 var(--s4);flex-wrap:wrap;row-gap:var(--s2)}.filter-tab{flex:1 1 0;min-height:var(--btn-h);padding:0 var(--s3);border:none;border-bottom:2px solid transparent;background:none;color:var(--text-dim);font-size:var(--btn-text);display:inline-flex;align-items:center;justify-content:center;gap:var(--s2)}.filter-tab.is-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.filter-count{color:var(--text-dim);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.filter-tab.is-active .filter-count{color:var(--accent)}.filter-secondary{display:flex;align-items:center;gap:var(--s2);padding:0 var(--s4) var(--s3);margin-top:calc(var(--s2) * -1);margin-left:auto}.filter-select select{min-height:2rem;padding:0 var(--s2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-dim);font-size:var(--text-sm)}@media(max-width:30rem){.filter-tabs,.filter-secondary{padding-left:var(--s3);padding-right:var(--s3)}.filter-tab{font-size:var(--text-sm);padding:0 var(--s2)}}.additem{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border)}.additem-row{display:flex;gap:var(--s2);align-items:stretch}.additem-input{flex:1 1 auto;min-height:var(--btn-h);padding:var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--bg);color:var(--text);resize:vertical;line-height:1.4}.additem-input::placeholder{color:var(--text-dim)}.additem-submit{flex:0 0 auto;min-height:var(--btn-h);padding:0 var(--s4);border:none;border-radius:var(--btn-radius);background:var(--accent);color:var(--accent-ink);font-weight:650;font-size:var(--btn-text)}.additem-submit:disabled{opacity:.5;cursor:default}.additem-done{display:inline-flex;align-items:center;gap:var(--s2);margin-top:var(--s2);min-height:2rem;color:var(--text-dim);font-size:var(--text-sm);cursor:pointer}.additem-done input{width:16px;height:16px;accent-color:var(--accent)}.additem-error{margin:var(--s2) 0 0;color:var(--error);font-size:var(--text-sm)}@media(max-width:30rem){.additem{padding:var(--s3)}}.item{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);min-height:var(--tap);cursor:pointer}.item:hover{background:var(--surface-2)}.item-dates,.item-remove{cursor:auto}.item-date-edit,.item-remove{cursor:pointer}.item-thumb{flex:none;align-self:stretch;width:44px;min-height:44px;object-fit:cover;border-radius:var(--btn-radius);background:var(--surface-2)}.listview[data-template=us-states] .item-thumb,.listview[data-template=countries-visited] .item-thumb{width:72px}.item-check{display:flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);margin:calc(var(--s2) * -1) 0 0 calc(var(--s3) * -1);cursor:pointer}.item-check input{width:20px;height:20px;margin:0;cursor:pointer;accent-color:var(--accent);outline-offset:2px}.item-check input:not(:checked){appearance:none;border:2px solid var(--border-interactive);border-radius:4px;background:transparent}.item-body{flex:1 1 auto;min-width:0}.item-title{display:flex;align-items:baseline;gap:var(--s2);margin:0;flex-wrap:wrap}.item-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--text);letter-spacing:-.01em}.is-done .item-name{color:var(--text-dim);text-decoration:line-through;text-decoration-thickness:1px;transition:color var(--dur) var(--ease)}.item-chip{flex:0 0 auto;padding:.1rem var(--s2);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:var(--text-xs);text-transform:lowercase;letter-spacing:.02em}.item-sub{margin:.1rem 0 0;color:var(--text-dim);font-size:var(--text-sm)}.item-notes{margin:.15rem 0 0;color:var(--text-dim);font-size:var(--text-sm);opacity:.85;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.item-dates{flex:0 0 auto;padding-top:.2rem;text-align:right;font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.item-done-on{color:var(--text-dim)}.item-target-on{color:var(--text-dim);font-weight:300;opacity:.85}@media(max-width:30rem){.item{padding:var(--s3)}.item-dates{font-size:var(--text-xs)}.item-name{font-size:var(--text-base)}}.item-remove{flex:0 0 auto;min-width:var(--tap);min-height:var(--tap);margin:calc(var(--s2) * -1) calc(var(--s3) * -1) 0 0;border:none;background:none;color:var(--text-dim);font-size:1.15rem;line-height:1;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.item:hover .item-remove,.item:focus-within .item-remove{opacity:1}.item-remove:hover{color:var(--error)}@media(pointer:coarse){.item-remove{opacity:.6}}.item-check input:not(:checked){background:var(--surface-2)}.item-date-edit{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;min-height:var(--tap);cursor:pointer}.item-date-edit input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.item-date-face{padding:var(--s1) var(--s2);border-radius:var(--radius);color:var(--text-dim);font-size:var(--text-sm);white-space:nowrap}.item-date-edit:hover .item-date-face{background:var(--surface-2);color:var(--text)}.item-date-edit:has(input:focus-visible) .item-date-face{outline:2px solid var(--accent);outline-offset:1px;color:var(--text)}.listmenu{position:relative;flex:0 0 auto}.listmenu-trigger{min-width:var(--tap);min-height:var(--btn-h);border:1px solid transparent;border-radius:var(--btn-radius);background:none;color:var(--text-dim);font-size:var(--btn-text);line-height:1}.listmenu-trigger:hover{border-color:var(--border);color:var(--text)}.listmenu-popover{position:absolute;top:calc(100% + var(--s1));right:0;z-index:20;min-width:17rem;padding:var(--s2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2);box-shadow:0 12px 32px #00000047}.listmenu-popover>button{display:block;width:100%;min-height:var(--btn-h);padding:var(--s2);border:none;border-radius:var(--btn-radius);background:none;color:var(--text);text-align:left;font-size:var(--btn-text)}.listmenu-popover>button:hover{background:var(--surface)}.listmenu-popover>button small{display:block;margin-top:.1rem;color:var(--text-dim);font-size:var(--text-xs)}.listmenu-danger{color:var(--error)}.listmenu-rename{display:flex;gap:var(--s2);padding:var(--s1)}.listmenu-rename input{flex:1 1 auto;min-width:0;min-height:2.25rem;padding:0 var(--s2);border:1px solid var(--border-interactive);border-radius:var(--radius);background:var(--bg);color:var(--text)}.listmenu-rename button{min-height:2.25rem;padding:0 var(--s3);border:none;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font-weight:600}.viewswitcher{display:flex;gap:var(--s2);margin:0;padding:0;overflow-x:auto;scrollbar-width:none}.viewswitcher::-webkit-scrollbar{display:none}.viewswitcher-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--btn-h);padding:0 var(--s3);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:transparent;color:var(--text-dim);font:inherit;font-size:var(--btn-text);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.viewswitcher-tab:hover{color:var(--text);background:var(--surface-2)}.viewswitcher-tab.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.viewswitcher-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:24rem){.viewswitcher-tab{padding:0 var(--s2);font-size:var(--text-xs)}}.timeline{max-width:44rem;margin:0 auto;padding:var(--s4) var(--s4) var(--s8)}.timeline-caveat{margin:0 0 var(--s4);padding:var(--s3);background:var(--surface-2);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text-dim)}.timeline-caveat button{border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline}.timeline-caveat button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.timeline-year{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s5);font-size:var(--text-sm);color:var(--text-dim)}.timeline-year select{min-height:var(--btn-h);padding:0 var(--s2);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-base)}.timeline-scale{position:relative;list-style:none;margin:0;padding:0;height:8.5rem}.timeline-scale:before{content:"";position:absolute;left:0;right:0;top:1.25rem;height:2px;background:var(--border);border-radius:1px}.timeline-dot{position:absolute;top:0;transform:translate(-50%)}.timeline-dot button{display:flex;flex-direction:column;align-items:center;gap:var(--s2);min-width:var(--tap);min-height:var(--btn-h);padding:0;border:none;background:none;color:inherit;font:inherit;cursor:pointer;font-size:var(--btn-text)}.timeline-mark{display:grid;place-items:center;width:14px;height:14px;margin-top:.9rem;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:.625rem;font-weight:700}.timeline-mark em{font-style:normal;line-height:1}.timeline-dot button:has(.timeline-mark em) .timeline-mark{width:22px;height:22px;margin-top:.55rem}.timeline-label{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:6rem;font-size:var(--text-xs);color:var(--text-dim);text-align:center;opacity:0;transition:opacity var(--dur-fast) var(--ease)}.timeline-dot button:hover .timeline-label,.timeline-dot button:focus-visible .timeline-label{opacity:1}.timeline-label em{font-style:normal;opacity:.75}.timeline-dot button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.timeline-ends{display:flex;justify-content:space-between;margin:0;font-size:var(--text-xs);color:var(--text-dim);font-variant-numeric:tabular-nums}.timeline-skeleton{padding:var(--s6) 0}.timeline-skeleton-line{display:block;height:2px;background:var(--border);border-radius:1px;animation:timeline-pulse 1.4s ease-in-out infinite}@keyframes timeline-pulse{0%,to{opacity:.4}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.timeline-skeleton-line{animation:none}.timeline-label{transition:none}}.listview{display:flex;flex-direction:column;min-height:100%;max-width:48rem;margin:0 auto}.listview-head{padding:var(--s4) var(--s4) var(--s3)}.listview-lockup{display:flex;align-items:center;gap:var(--s4)}.listview-heading{flex:1 1 auto;min-width:0}.listview-title{font-size:var(--text-2xl);line-height:1.15}.listview-reading{margin:.2rem 0 0;color:var(--text-dim);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.listview-items{list-style:none;margin:0;padding:0}.listview-foot{display:flex;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s5) var(--s4)}.listview-foot p{margin:0;color:var(--text-dim);font-size:var(--text-sm)}.listview-foot button{min-height:var(--btn-h);padding:0 var(--s4);border:1px solid var(--border-interactive);border-radius:var(--btn-radius);background:var(--surface);color:var(--text);font-size:var(--btn-text)}.listview-toast{position:fixed;left:50%;bottom:calc(var(--s5) + env(safe-area-inset-bottom));transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);box-shadow:0 8px 24px #0000004d}.listview-toast button{min-width:2rem;min-height:2rem;border:none;background:none;color:var(--text-dim);font-size:1.25rem;line-height:1}@media(max-width:30rem){.listview-head{padding:var(--s3)}.listview-lockup{gap:var(--s3)}.listview-title{font-size:var(--text-xl)}}.listview-topbar{display:flex;align-items:center;gap:var(--s2) var(--s3);min-height:var(--btn-h);flex-wrap:wrap}.listview-topbar .viewswitcher{flex:0 1 auto;min-width:0}.listview-undo{border:none;background:none;padding:0 var(--s2);font:inherit;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:underline}.listview-undo:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.listview-maploading{position:fixed;inset:0;background:var(--bg);z-index:20}@media(min-width:48rem){.app-main:has(.listview.is-map){display:flex;padding:0;overflow:hidden}.listview.is-map{max-width:none;width:100%;position:relative;margin:0}.listview.is-map .mapmode{margin:0}.listview.is-map .listview-head{position:absolute;inset:0 0 auto;z-index:10;padding:var(--s4);pointer-events:none;background:none}.listview.is-map .listview-topbar{align-items:flex-start}.listview.is-map .viewswitcher,.listview.is-map .listview-lockup{pointer-events:auto;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000002e}.listview.is-map .viewswitcher{padding:var(--s1)}.listview.is-map .listview-controls{margin-left:auto;display:flex;gap:var(--s2)}.listview.is-map .listview-lockup{width:fit-content;max-width:min(32rem,60%);padding:var(--s3)}.listview.is-map .listview-lockup .listmenu-trigger{background:none;border:0}}#root{width:100%;height:100vh;height:100dvh;overflow:hidden}.app{display:flex;flex-direction:column;height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);flex:0 0 auto}.app-brand{display:flex;align-items:center;gap:.5rem}.app-brand{color:var(--accent);text-decoration:none}.app-brand span{color:var(--text);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;letter-spacing:-.015em;line-height:1.15}.app-brand svg{display:block}@media(max-width:30rem){.app-brand span{font-size:var(--text-xl)}}.app-main{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom))}.app-centered{max-width:26rem;margin:0 auto}.app-loading{display:grid;place-items:center;height:100%;color:var(--text-dim)}.app-empty{text-align:center;padding:2rem 0}.app-banner{margin:0;padding:var(--s3) var(--s4);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-sm);text-align:center}.app-banner.is-error{background:var(--error-bg);color:var(--error)}.app-banner button{border:none;background:none;color:inherit;text-decoration:underline;padding:var(--s1) var(--s2);min-height:2rem}.app-signin-note{max-width:32rem;margin:var(--s6) auto 0;padding:0 var(--s4) var(--s7);color:var(--text-dim);font-size:var(--text-sm);text-align:center;line-height:1.5}.app-signin-note button{border:none;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline}.app-signin-note button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.app-empty h2{margin:0 0 .5rem;font-size:1.25rem}.app-empty p{margin:0 auto;max-width:32ch;color:var(--text-dim)}.app-next{margin-top:2rem;padding:1rem;border:1px dashed var(--border);border-radius:.75rem;color:var(--text-dim);font-size:.9375rem;text-align:left}.app-next code{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.875em}@media(min-width:640px){.app-main{padding:2.5rem 1.5rem}}@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-var.woff2) format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #12211c;--surface: #1b3a2f;--surface-2: #23493c;--border: #2f5c4b;--border-interactive: #6f9e89;--text: #e8f3ee;--text-dim: #a3bdb1;--accent: #7fd6a8;--accent-ink: #0d1a15;--error: #ff9b8a;--error-bg: #3a1f1c;--font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-text: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 2rem;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.5rem;--s6: 2rem;--s7: 3rem;--s8: 4rem;--radius: .5rem;--radius-lg: .75rem;--dur-fast: .12s;--dur: .15s;--ease: cubic-bezier(.2, 0, .2, 1);--tap: 44px;--btn-h: 40px;--btn-radius: 5px;--btn-text: .875rem;color-scheme:dark}@media(prefers-color-scheme:light){:root{--bg: #f4f8f6;--surface: #ffffff;--surface-2: #eaf2ee;--border: #cfe0d7;--border-interactive: #6d8b7d;--text: #12211c;--text-dim: #4d6a5e;--accent: #1b7a4f;--accent-ink: #ffffff;--error: #a3271a;--error-bg: #fdecea;color-scheme:light}}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-text);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em;margin:0}input,select,textarea,button{font:inherit;font-family:var(--font-text);font-size:max(16px,1rem)}button{cursor:pointer}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.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}
