:root{--paper: #f4ecd9;--paper-2: #ebe0c2;--paper-deep: #e2d4ae;--ink: #14171f;--ink-soft: #3d4250;--ink-faint: #7a7e8c;--rule: #d3c7a8;--land: #ece1c1;--land-line: #2b3344;--red: #c8102e;--red-deep: #8e0a20;--red-soft: #e74058;--navy: #1d3557;--navy-deep: #0f2240;--cream-bright: #fdf6e3;--display: "Archivo Black", Impact, "Helvetica Neue", sans-serif;--serif: "DM Serif Display", Georgia, serif;--sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--t-fast: .14s;--t-med: .24s;--t-slow: .42s}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:multiply;z-index:1}a{color:var(--red);text-underline-offset:.15em;transition:color var(--t-fast) var(--ease-out)}a:hover{color:var(--red-deep)}.skip-link{position:absolute;left:-9999px;background:var(--navy);color:var(--cream-bright);padding:8px 12px;border-radius:4px}.skip-link:focus{left:12px;top:12px;z-index:50}.app{position:relative;z-index:2;max-width:1320px;margin:0 auto;padding:28px 32px 80px}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes rise-in-soft{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes shadow-set{0%{box-shadow:0 0 0 var(--navy)}to{box-shadow:12px 12px 0 var(--navy)}}@keyframes underline-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.masthead{position:relative;text-align:center;padding:28px 28px 32px;border:6px solid var(--red);background:var(--paper);margin-bottom:0;box-shadow:12px 12px 0 var(--navy);opacity:0;transform:translateY(18px);animation:rise-in .5s var(--ease-out-expo) 40ms forwards,shadow-set .5s var(--ease-out-expo) 40ms forwards}.masthead .kicker{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin:0 auto 18px;padding-bottom:10px;border-bottom:2px solid var(--navy);text-align:center;display:inline-block;opacity:0;animation:rise-in-soft .44s var(--ease-out) .12s forwards}.masthead h1{margin:0;font-family:var(--display);font-weight:900;letter-spacing:-.01em;line-height:.86;text-transform:uppercase;color:var(--navy)}.masthead h1 .line-1{display:block;font-size:clamp(44px,11vw,156px);color:var(--red);white-space:nowrap;opacity:0;animation:rise-in .52s var(--ease-out-expo) .16s forwards}.masthead h1 .line-2{display:block;font-size:clamp(44px,11vw,168px);color:var(--navy);white-space:nowrap;margin-top:-.05em;opacity:0;animation:rise-in .52s var(--ease-out-expo) .24s forwards}.masthead .dek{margin:22px auto;max-width:640px;font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.6vw,19px);color:var(--ink-soft);line-height:1.4;opacity:0;animation:rise-in-soft .44s var(--ease-out) .32s forwards}.masthead .dek em{font-style:normal;font-weight:600;color:var(--navy);font-family:var(--sans)}.hero-stats{display:flex;justify-content:center;align-items:stretch;gap:28px;margin:24px auto;padding:18px 26px;border-top:2px solid var(--navy);border-bottom:2px solid var(--navy);width:fit-content;opacity:0;animation:rise-in-soft .44s var(--ease-out) .4s forwards}.hero-stats .stat{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:70px;transition:transform var(--t-med) var(--ease-spring)}.hero-stats .stat:hover{transform:translateY(-2px)}.hero-stats .stat .num{font-family:var(--display);font-size:clamp(34px,5vw,52px);letter-spacing:-.01em;line-height:1;color:var(--navy);display:inline-block;animation:pop-in .44s var(--ease-spring) .46s backwards}.hero-stats .stat.done .num{color:var(--red);animation-delay:.44s}.hero-stats .stat:nth-child(3) .num{animation-delay:.48s}.hero-stats .stat:nth-child(5) .num{animation-delay:.5s}.hero-stats .stat .lbl{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.hero-stats .stat-divider{width:1px;background:var(--rule)}.substack-cta{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;background:var(--red);color:var(--cream-bright);font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);position:relative;opacity:0;transform:translateY(8px);animation:rise-in-soft .44s var(--ease-out) .47s forwards;transition:transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.substack-cta:hover{background:var(--red-deep);color:var(--cream-bright);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.substack-cta:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);transition-duration:60ms}.substack-cta svg{transition:transform var(--t-med) var(--ease-spring)}.substack-cta:hover svg{transform:rotate(-8deg) scale(1.1)}#map{margin:28px 0 36px;background:var(--cream-bright);border:2px solid var(--navy);padding:12px 18px 6px;box-shadow:8px 8px 0 var(--navy);opacity:0;transform:translateY(14px);animation:rise-in .5s var(--ease-out-expo) .54s forwards}.map-wrap{position:relative;width:100%}.map-svg{width:100%;height:auto;display:block}.map-loading{padding:60px 20px;text-align:center;font-family:var(--sans);color:var(--ink-faint);animation:pulse-fade 1.4s ease-in-out infinite}@keyframes pulse-fade{0%,to{opacity:.45}50%{opacity:1}}.state-shape{fill:var(--land);stroke:var(--land-line);stroke-width:.7;cursor:pointer;transition:fill .12s var(--ease-out),stroke .12s var(--ease-out)}.state-shape:focus{outline:none;stroke:var(--navy);stroke-width:1.6}.state-shape.completed{fill:var(--red);stroke:var(--navy-deep);stroke-width:1.8;stroke-linejoin:round;paint-order:stroke fill;animation:state-fill-pop .6s var(--ease-spring)}@keyframes state-fill-pop{0%{fill:var(--land)}35%{fill:var(--red-soft)}to{fill:var(--red)}}.state-shape.completed.hover{fill:var(--red-deep)}.state-shape:not(.completed).hover{fill:var(--paper-deep)}.state-overlay{fill:var(--paper-deep);stroke:var(--navy-deep);stroke-width:3;stroke-linejoin:round;paint-order:stroke fill;filter:drop-shadow(0 1px 0 rgba(0,0,0,.18));pointer-events:none;transition:opacity .16s var(--ease-out)}.state-overlay.completed{fill:var(--red-deep);stroke:var(--navy-deep);stroke-width:3.2}.state-label{font-family:var(--display);font-size:11px;letter-spacing:.04em;fill:var(--navy-deep);stroke:var(--paper);stroke-width:2.4;paint-order:stroke fill;pointer-events:none;user-select:none;transition:fill .12s var(--ease-out),stroke .12s var(--ease-out),font-size .16s var(--ease-spring)}.state-label.completed{fill:var(--cream-bright);stroke:var(--red-deep);stroke-width:2.4}.state-label.hover{font-size:13px}.map-callouts .callout{cursor:pointer}.map-callouts .leader-hit{stroke:transparent;stroke-width:8;fill:none;pointer-events:stroke;cursor:pointer}.map-callouts .leader{stroke:var(--navy);stroke-width:1.4;fill:none;opacity:.7;pointer-events:none;transition:stroke .12s var(--ease-out),opacity .12s var(--ease-out),stroke-width .12s var(--ease-out)}.map-callouts .leader-dot{fill:var(--navy);opacity:.85;pointer-events:none;transition:fill .12s var(--ease-out),opacity .12s var(--ease-out)}.map-callouts .callout text{pointer-events:visiblePainted}.map-callouts .callout.completed .leader-dot{fill:var(--red-deep)}.map-callouts .callout.hover .leader{opacity:1;stroke-width:2.2}.map-callouts .callout.hover .leader-dot{opacity:1}.state-label.callout-label{font-size:12px;stroke-width:0}.state-label.callout-label.completed{fill:var(--red-deep);stroke:none;stroke-width:0}.map-tip{position:absolute;top:0;left:0;pointer-events:none;min-width:140px;max-width:220px;padding:8px 12px 10px;background:var(--cream-bright);border:2px solid var(--navy);box-shadow:4px 4px 0 var(--navy);font-family:var(--sans);z-index:5;opacity:0;transition:opacity .12s var(--ease-out);will-change:transform}.map-tip.visible{opacity:1}.map-tip-name{font-family:var(--display);font-size:16px;letter-spacing:-.01em;text-transform:uppercase;color:var(--navy);line-height:1;margin-bottom:4px}.map-tip-meta{font-family:var(--serif);font-style:italic;font-size:12px;color:var(--ink-faint)}.map-tip-meta.done{color:var(--red);font-style:normal;font-family:var(--sans);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:10px}@media(hover:none),(pointer:coarse){.map-tip{display:none!important}}.nation-outline{fill:none;stroke:var(--navy);stroke-width:1.4;pointer-events:none}.legend{display:flex;align-items:center;gap:20px;padding:6px 4px 8px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}.legend-item{display:inline-flex;align-items:center;gap:8px}.legend-swatch{display:inline-block;width:14px;height:14px;background:var(--land);border:1.5px solid var(--land-line);transition:transform var(--t-med) var(--ease-spring)}.legend-item:hover .legend-swatch{transform:rotate(-8deg) scale(1.15)}.legend-swatch.completed{background:var(--red);border-color:var(--navy-deep);border-width:2px}.states-index{padding:8px 0 0;opacity:0;animation:rise-in .44s var(--ease-out) .62s forwards}.index-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;padding-bottom:18px;border-bottom:2px solid var(--navy);margin-bottom:18px}.index-head h2{margin:0;font-family:var(--display);font-weight:900;font-size:clamp(32px,5vw,56px);letter-spacing:-.01em;text-transform:uppercase;color:var(--navy);position:relative}.index-head h2:after{content:"";position:absolute;left:0;bottom:-3px;width:64px;height:4px;background:var(--red);transform-origin:left;animation:underline-grow .44s var(--ease-out-expo) .72s backwards}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.filter-chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:transparent;color:var(--navy);border:2px solid var(--navy);font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;position:relative;overflow:hidden;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) var(--ease-out)}.chip:before{content:"";position:absolute;inset:0;background:var(--navy);transform:translateY(100%);transition:transform var(--t-med) var(--ease-out-expo);z-index:-1}.chip:hover{transform:translateY(-1px);box-shadow:0 3px 0 var(--navy)}.chip:active{transform:translateY(1px);box-shadow:0 0 0 var(--navy);transition-duration:60ms}.chip.active{background:var(--navy);color:var(--cream-bright)}.chip.done.active{background:var(--red);color:var(--cream-bright);border-color:var(--red)}.chip .count{font-weight:600;opacity:.65;font-size:10px}.filter-search-wrap{position:relative;display:inline-flex;align-items:center;border:2px solid var(--navy);background:var(--paper);transition:box-shadow var(--t-med) var(--ease-out),transform var(--t-fast) var(--ease-spring)}.filter-search-wrap:focus-within{box-shadow:0 0 0 3px #1d35572e;transform:translateY(-1px)}.filter-search-icon{position:absolute;left:10px;color:var(--navy);pointer-events:none;transition:transform var(--t-med) var(--ease-spring)}.filter-search-wrap:focus-within .filter-search-icon{transform:scale(1.15) rotate(-6deg)}.filter-search{padding:8px 12px 8px 30px;border:none;background:transparent;font-family:var(--sans);font-size:13px;color:var(--ink);width:200px;outline:none}.filter-search::placeholder{color:var(--ink-faint)}.state-list{display:flex;flex-direction:column;gap:0}.state-row{border-bottom:1.5px solid var(--rule);position:relative;background:transparent;transition:background var(--t-med) var(--ease-out)}.state-row:first-child{border-top:1.5px solid var(--rule)}.state-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform var(--t-med) var(--ease-out-expo)}.state-row.hover:before,.state-row.open:before{transform:scaleY(1)}.state-row.hover{background:var(--paper-deep)}.state-row.completed.open{background:var(--cream-bright)}.state-row-head{width:100%;display:grid;grid-template-columns:50px 60px 1fr auto 24px;align-items:center;gap:16px;padding:18px 20px 18px 24px;background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--sans);color:var(--ink);transition:background var(--t-fast) var(--ease-out),padding-left var(--t-med) var(--ease-out-expo)}.state-row.hover .state-row-head,.state-row.open .state-row-head{padding-left:32px}.state-num{font-family:var(--display);font-size:14px;color:var(--ink-faint);letter-spacing:.04em;transition:color var(--t-med) var(--ease-out)}.state-row.hover .state-num,.state-row.open .state-num{color:var(--red)}.state-postal{display:inline-block;font-family:var(--display);font-size:12px;letter-spacing:.08em;padding:5px 8px;background:var(--navy);color:var(--cream-bright);text-align:center;min-width:38px;transition:transform var(--t-med) var(--ease-spring),background var(--t-med) var(--ease-out)}.state-row.hover .state-postal{transform:rotate(-3deg) scale(1.05)}.state-row.completed .state-postal{background:var(--red)}.state-name{font-family:var(--display);font-size:clamp(20px,2.4vw,30px);letter-spacing:-.01em;color:var(--navy);text-transform:uppercase;line-height:1;transition:transform var(--t-med) var(--ease-out-expo)}.state-row.hover .state-name{transform:translate(2px)}.state-meta{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans)}.state-date{font-size:12px;color:var(--ink-soft);font-style:italic;font-family:var(--serif)}.badge{display:inline-block;padding:4px 10px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:1.5px solid currentColor;transition:transform var(--t-fast) var(--ease-spring)}.state-row.hover .badge{transform:translate(-3px)}.badge.done{color:var(--red);background:#c8102e14}.badge.pending{color:var(--ink-faint)}.chev{color:var(--navy);transition:transform var(--t-slow) var(--ease-spring)}.state-row.open .chev{transform:rotate(180deg)}.state-row-body-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s var(--ease-out-expo)}.state-row.open .state-row-body-wrap{grid-template-rows:1fr}.state-row-body-inner{overflow:hidden;min-height:0}.state-row-body{padding:4px 24px 24px;display:grid;grid-template-columns:1fr;gap:18px;opacity:0;transform:translateY(-6px);transition:opacity .32s var(--ease-out) 80ms,transform .32s var(--ease-out-expo) 80ms}.state-row.open .state-row-body{opacity:1;transform:none}.upcoming-note{margin:0;padding:14px 16px;background:var(--paper-deep);font-family:var(--serif);font-style:italic;color:var(--ink-soft);border-left:3px solid var(--navy)}.upcoming-note.done{background:#c8102e14;border-left-color:var(--red);color:var(--ink)}.menu-card{background:var(--paper);border:2px solid var(--navy);padding:18px 22px;box-shadow:6px 6px 0 var(--navy);transition:transform var(--t-med) var(--ease-out-expo),box-shadow var(--t-med) var(--ease-out)}.menu-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--navy)}.menu-card-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px;padding-bottom:12px;margin-bottom:14px;border-bottom:1.5px solid var(--navy)}.menu-eyebrow{font-family:var(--display);font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}.menu-source{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--ink-faint)}.menu-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.menu-item{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:baseline}.state-row.open .menu-item{animation:rise-in-soft .42s var(--ease-out-expo) backwards;animation-delay:calc(.22s + var(--i, 0) * 70ms)}.menu-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}.menu-dish{font-family:var(--serif);font-size:17px;line-height:1.3;color:var(--ink)}.state-notes{padding:14px 16px;background:var(--paper-2);border-left:3px solid var(--red);transition:transform var(--t-med) var(--ease-out-expo)}.state-notes:hover{transform:translate(3px)}.notes-label{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:6px}.state-notes p{margin:0;font-family:var(--serif);font-size:15px;line-height:1.5;color:var(--ink-soft)}.substack-link{display:inline-flex;align-items:center;gap:14px;padding:12px 18px;background:var(--navy);color:var(--cream-bright);text-decoration:none;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);width:fit-content;transition:transform var(--t-fast) var(--ease-spring),box-shadow var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.substack-link:hover{background:var(--navy-deep);color:var(--cream-bright);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.substack-link:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);transition-duration:60ms}.substack-link svg{transition:transform var(--t-med) var(--ease-spring)}.substack-link:hover svg{transform:translate(3px,-3px)}.substack-text{display:flex;flex-direction:column;gap:2px}.substack-eyebrow{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red-soft)}.substack-host{font-family:var(--serif);font-style:italic;font-size:14px}.index-empty{padding:30px;text-align:center;font-family:var(--serif);font-style:italic;color:var(--ink-faint);animation:rise-in-soft .32s var(--ease-out)}.site-footer{margin-top:56px;padding-top:24px;border-top:2px solid var(--navy);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-family:var(--sans);font-size:12px;color:var(--ink-soft);opacity:0;animation:rise-in-soft .44s var(--ease-out) .72s forwards}.site-footer p{margin:4px 0}.colophon{max-width:720px}.back-to-top{position:fixed;right:24px;bottom:24px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--navy);color:var(--cream-bright);cursor:pointer;box-shadow:0 8px 20px #0f224047,0 2px 4px #0f224033;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--t-med) var(--ease-out),transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out);z-index:40;padding:0}.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{background:var(--red);transform:translateY(-2px);box-shadow:0 12px 24px #c8102e52,0 2px 4px #0f224033}.back-to-top:active{transform:translateY(0);box-shadow:0 4px 10px #0f22403d}.back-to-top:focus-visible{outline:2px solid var(--red);outline-offset:3px}@media(max-width:720px){.back-to-top{right:14px;bottom:14px;width:42px;height:42px}}@media(max-width:720px){.app{padding:18px 16px 60px}.masthead{padding:22px 16px 24px;box-shadow:6px 6px 0 var(--navy)}.masthead .kicker{font-size:10px}.masthead h1 .line-1,.masthead h1 .line-2{font-size:clamp(36px,13vw,64px)}.hero-stats{gap:14px;padding:14px 12px;margin:16px auto}.hero-stats .stat{min-width:56px}.state-row-head{grid-template-columns:36px 50px 1fr 18px;grid-template-rows:auto auto;gap:6px 10px;padding:14px 12px}.state-row.hover .state-row-head,.state-row.open .state-row-head{padding-left:18px}.state-row-head .state-num{grid-column:1;grid-row:1}.state-row-head .state-postal{grid-column:2;grid-row:1}.state-row-head .state-name{grid-column:3;grid-row:1}.state-row-head .chev{grid-column:4;grid-row:1;justify-self:end}.state-row-head .state-meta{grid-column:2 / 5;grid-row:2;padding-left:0;justify-self:end}.state-row-body{padding:4px 12px 18px}.menu-item{grid-template-columns:1fr;gap:2px}.menu-label{font-size:10px}#map{padding:8px 8px 4px}.substack-cta{font-size:11px;padding:10px 16px}.filter-row{gap:10px}.filter-search-wrap{display:flex;flex:1 1 100%;min-width:0}.filter-search{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.masthead,.masthead .kicker,.masthead h1 .line-1,.masthead h1 .line-2,.masthead .dek,.hero-stats,.substack-cta,#map,.states-index,.site-footer,.hero-stats .stat .num{opacity:1!important;transform:none!important}}
