:root{--ink:#0c1f1c;--ink-2:#33433f;--kelp:#0e5a47;--kelp-2:#12735b;--kelp-dark:#083a2e;--flare:#ff5a1f;--flare-dark:#c63f0c;--sun:#ffb627;--foam:#f3f6ef;--paper:#fff;--mist:#d9e4dc;--sea:#9fd8c4;--head:"Big Shoulders Display", "Arial Narrow", sans-serif;--text:"Source Serif 4", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--wrap:1180px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--foam);color:var(--ink);font-family:var(--text);margin:0;font-size:1.08rem;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--kelp);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--flare-dark)}:focus-visible{outline:3px solid var(--flare);outline-offset:2px}h1,h2,h3{font-family:var(--head);letter-spacing:.005em;color:var(--ink);font-weight:800;line-height:1.02}.skip{background:var(--ink);color:#fff;z-index:50;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}.mono{font-family:var(--mono)}.top{background:var(--foam);border-bottom:3px solid var(--ink);z-index:5;position:relative}.top-in{justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.brand img{width:220px;height:auto}.dateline{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);text-align:right;font-size:.72rem}.navbar{background:var(--ink)}.nav{max-width:var(--wrap);flex-wrap:wrap;gap:0;margin:0 auto;padding:0 8px;display:flex}.nav a{color:var(--foam);font-family:var(--head);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;font-size:1.12rem;font-weight:700;text-decoration:none}.nav a:hover,.nav a[aria-current]{color:var(--sun)}.nav a.desk{color:var(--flare)}.navbtn{font-family:var(--head);letter-spacing:.08em;text-transform:uppercase;background:var(--ink);color:var(--foam);cursor:pointer;border:0;padding:9px 14px;font-size:1.05rem;font-weight:800;display:none}.wire{background:var(--flare);color:var(--ink);border-bottom:2px solid var(--ink);align-items:stretch;display:flex;overflow:hidden}.wire-k{background:var(--ink);color:var(--sun);font-family:var(--head);letter-spacing:.1em;text-transform:uppercase;flex:none;padding:6px 14px;font-weight:800}.wire-track{white-space:nowrap;gap:0;animation:90s linear infinite wire;display:flex}.wire:hover .wire-track,.wire:focus-within .wire-track{animation-play-state:paused}.wire-track a{color:var(--ink);font-family:var(--mono);border-right:1px solid #0c1f1c59;padding:7px 18px;font-size:.82rem;text-decoration:none}.wire-track a:hover{text-decoration:underline}@keyframes wire{0%{transform:translate(0)}to{transform:translate(-50%)}}main{min-height:60vh}.crumb{font-family:var(--mono);letter-spacing:.04em;margin:22px auto 0;font-size:.78rem}.crumb ol{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.crumb li+li:before{content:"/";color:var(--ink-2);margin-right:6px}.crumb a{color:var(--kelp)}.kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--kelp);padding:3px 9px;font-size:.74rem;font-weight:500;text-decoration:none;display:inline-block}a.kicker:hover,.kicker.alt{background:var(--flare);color:var(--ink)}.front{grid-template-columns:1.6fr 1fr;gap:28px;margin-top:12px;display:grid}.lead-card{background:var(--paper);border:2px solid var(--ink)}.lead-card img{aspect-ratio:16/9;object-fit:cover;border-bottom:2px solid var(--ink);width:100%}.lead-body{padding:18px 22px 22px}.lead-body h2{margin:10px 0;font-size:clamp(2rem,1.3rem + 2.6vw,3.3rem)}.lead-body h2 a{color:var(--ink);text-decoration:none}.lead-body h2 a:hover{color:var(--kelp)}.lead-body p{color:var(--ink-2);margin:0 0 10px}.meta{font-family:var(--mono);color:var(--ink-2);letter-spacing:.03em;font-size:.76rem}.stack{align-content:start;gap:14px;display:grid}.mini{background:var(--paper);border:1px solid var(--mist);border-left:5px solid var(--kelp);grid-template-columns:96px 1fr;gap:12px;padding:10px;display:grid}.mini img{object-fit:cover;width:96px;height:72px}.mini h3{margin:4px 0 2px;font-size:1.28rem}.mini h3 a{color:var(--ink);text-decoration:none}.mini h3 a:hover{color:var(--kelp)}.mini.noimg{grid-template-columns:1fr}.band{margin:48px auto 0}.band-head{border-top:6px solid var(--ink);border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;padding:8px 0 6px;display:flex}.band-head h2{text-transform:uppercase;margin:0;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.6rem)}.band-head a{font-family:var(--mono);font-size:.8rem}.cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;display:grid}.card{background:var(--paper);border:1px solid var(--mist);flex-direction:column;transition:border-color .2s,transform .2s;display:flex}.card:hover{border-color:var(--kelp);transform:translateY(-2px)}.card img{aspect-ratio:3/2;object-fit:cover;width:100%}.card .ph{aspect-ratio:3/2;background:var(--kelp) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24'%3E%3Cpath d='M0 12c15 0 15-8 30-8s15 8 30 8 15-8 30-8 15 8 30 8' fill='none' stroke='%239fd8c4' stroke-opacity='.28' stroke-width='2'/%3E%3C/svg%3E") repeat-x left bottom 18px;color:var(--foam);font-family:var(--head);flex-direction:column;justify-content:center;padding:0 18px;line-height:.95;display:flex}.card .ph span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sun);font-size:.72rem}.card .ph b{text-transform:uppercase;margin-top:6px;font-size:2.6rem;font-weight:900}.card .ph i{color:var(--sea);font-size:1.6rem;font-style:normal;font-weight:700}.lead-art{background:var(--kelp-dark);color:var(--foam);justify-content:space-between;align-items:flex-end;gap:12px;padding:22px 22px 0;display:flex}.lead-art b{font-family:var(--head);text-transform:uppercase;font-size:clamp(3rem,2rem + 4vw,5.6rem);font-weight:900;line-height:.85}.lead-art span{font-family:var(--mono);letter-spacing:.12em;color:var(--sun);text-align:right;padding-bottom:14px;font-size:.76rem}.lead-art svg{width:100%;height:40px;display:block}.card-b{gap:6px;padding:12px 14px 14px;display:grid}.card h3{margin:2px 0 0;font-size:1.42rem}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card{position:relative}.card h3 a:hover{color:var(--kelp)}.card p{color:var(--ink-2);margin:0;font-size:.96rem}.tides{background:var(--kelp-dark);color:var(--foam);margin-top:52px;padding:30px 0 26px}.tides h2{color:var(--foam);text-transform:uppercase;margin:0 0 4px;font-size:clamp(1.9rem,1.4rem + 1.8vw,2.8rem)}.tides p.sub{color:var(--sea);max-width:60ch;margin:0 0 16px}.tide-svg{width:100%;height:auto;display:block}.tide-svg .t-curve{fill:none;stroke:var(--sea);stroke-width:3px}.tide-svg .t-fill{fill:#9fd8c41f}.tide-svg a .t-mark{fill:var(--flare);stroke:var(--kelp-dark);stroke-width:3px;transition:r .2s,fill .2s}.tide-svg a:hover .t-mark,.tide-svg a:focus .t-mark{fill:var(--sun)}.tide-svg text{font-family:var(--mono);fill:var(--foam);font-size:13px}.tide-svg .t-year{font-family:var(--head);fill:var(--sun);font-size:26px;font-weight:800}.tide-table{border-collapse:collapse;width:100%;font-family:var(--mono);margin-top:10px;font-size:.82rem}.tide-table th,.tide-table td{text-align:left;border-bottom:1px solid #9fd8c440;padding:6px 8px}.tide-table th{color:var(--sea);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.tide-table a{color:var(--sun)}.secgrid{border:2px solid var(--ink);background:var(--paper);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;display:grid}.secgrid a{color:var(--ink);border-right:1px solid var(--mist);border-bottom:1px solid var(--mist);padding:16px 18px;text-decoration:none;display:block}.secgrid a:hover{background:var(--kelp);color:var(--foam)}.secgrid b{font-family:var(--head);text-transform:uppercase;font-size:1.6rem;font-weight:800;display:block}.secgrid span{font-family:var(--mono);font-size:.76rem}.story>*,.front>*{min-width:0}.copy,.prose,.side-card{overflow-wrap:anywhere}.story{grid-template-columns:minmax(0,1fr) 300px;gap:40px;margin-top:18px;display:grid}.story h1{margin:12px 0;font-size:clamp(2.2rem,1.3rem + 3.4vw,4rem)}.story .dek{color:var(--ink-2);margin:0 0 14px;font-size:1.2rem}.byline{border-top:2px solid var(--ink);border-bottom:1px solid var(--mist);font-family:var(--mono);flex-wrap:wrap;gap:6px 18px;padding:8px 0;font-size:.8rem;display:flex}.copy{margin-top:20px}.copy>p:first-of-type:first-letter{font-family:var(--head);float:left;color:var(--kelp);padding:6px 10px 0 0;font-size:4.2em;font-weight:900;line-height:.82}.copy p{margin:0 0 1.05em}.copy h2{margin:1.4em 0 .4em;font-size:1.9rem}.copy h3{margin:1.2em 0 .3em;font-size:1.5rem}.copy blockquote{border-left:6px solid var(--flare);margin:1.4em 0;padding:4px 0 4px 20px;font-style:italic}.copy figure{margin:1.6em 0}.copy figure img{border:1px solid var(--mist)}.copy figcaption,.credit{font-family:var(--mono);color:var(--ink-2);margin-top:6px;font-size:.74rem}.copy table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.95rem}.copy td,.copy th{border:1px solid var(--mist);padding:6px 8px}.tablewrap{overflow-x:auto}.stats{border:2px solid var(--ink);background:var(--paper);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;margin:1.4em 0;display:grid}.stats div{border-right:1px solid var(--mist);padding:12px 14px}.stats b{font-family:var(--head);color:var(--kelp);font-size:2.3rem;font-weight:900;line-height:1;display:block}.stats span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem}.rating{font-family:var(--mono);border:2px solid var(--ink);background:var(--paper);align-items:center;gap:10px;margin:.6em 0 1.2em;padding:6px 12px;font-size:.86rem;display:inline-flex}.rating b{font-family:var(--head);color:var(--flare-dark);font-size:1.6rem}.gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:1.4em 0;display:grid}.gallery img{aspect-ratio:3/2;object-fit:cover;width:100%}.update{background:var(--paper);border-top:6px solid var(--kelp);margin:2.2em 0 1.4em;padding:16px 20px 6px}.update .tag{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--kelp);font-size:.74rem}.update h2{margin:4px 0 10px;font-size:1.8rem}.update .src{font-family:var(--mono);color:var(--ink-2);font-size:.74rem}.discussed{font-family:var(--mono);border-top:1px dashed var(--kelp);border-bottom:1px dashed var(--kelp);margin:1.6em 0;padding:10px 0;font-size:.82rem}.qa{margin:2em 0}.qa h2{margin:0 0 10px;font-size:1.9rem}.qa details{border-top:1px solid var(--ink);padding:10px 0}.qa summary{cursor:pointer;font-weight:600}.qa details p{margin:8px 0 0}.side{position:relative}.side-in{gap:18px;display:grid;position:sticky;top:16px}.side-card{background:var(--paper);border:2px solid var(--ink);padding:14px 16px}.side-card h2{text-transform:uppercase;margin:0 0 8px;font-size:1.35rem}.side-card ul{gap:8px;margin:0;padding:0;font-size:.95rem;line-height:1.35;list-style:none;display:grid}.side-card a{color:var(--ink);text-decoration:none}.side-card a:hover{color:var(--kelp);text-decoration:underline}.tagrow{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.tagrow span{font-family:var(--mono);background:var(--mist);padding:2px 8px;font-size:.72rem}.hub-intro{max-width:70ch;font-size:1.08rem}.page-h{text-transform:uppercase;margin:18px 0 6px;font-size:clamp(2.4rem,1.5rem + 3.6vw,4.4rem)}.subnav{flex-wrap:wrap;gap:8px;margin:10px 0 20px;display:flex}.subnav a{font-family:var(--mono);border:1px solid var(--ink);color:var(--ink);background:var(--paper);padding:3px 10px;font-size:.8rem;text-decoration:none}.subnav a:hover,.subnav a[aria-current]{background:var(--ink);color:var(--foam)}.filters{flex-wrap:wrap;gap:8px;margin:14px 0 22px;display:flex}.filters button{font-family:var(--mono);border:2px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;padding:5px 12px;font-size:.82rem}.filters button[aria-pressed=true]{background:var(--kelp);border-color:var(--kelp);color:var(--foam)}.yearblock{margin-bottom:32px}.yearblock h2{border-bottom:3px solid var(--ink);padding-bottom:4px;font-size:2.2rem}.alist{margin:0;padding:0;list-style:none}.alist li{border-bottom:1px solid var(--mist);grid-template-columns:120px 1fr 130px;align-items:baseline;gap:12px;padding:8px 0;display:grid}.alist .d{font-family:var(--mono);color:var(--ink-2);font-size:.78rem}.alist .s{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--kelp);text-align:right;font-size:.72rem}.alist a{color:var(--ink);font-weight:600;text-decoration:none}.alist a:hover{color:var(--kelp);text-decoration:underline}.desk-hero{background:var(--kelp);color:var(--foam);margin-top:0;padding:34px 0 30px}.desk-hero h1{color:var(--foam);text-transform:uppercase;margin:6px 0 10px;font-size:clamp(2.6rem,1.6rem + 4vw,4.8rem)}.desk-hero p{color:#dcefe6;max-width:64ch;margin:0 0 10px}.desk-hero .kicker{background:var(--flare);color:var(--ink)}.prose{max-width:72ch}.prose p{margin:0 0 1.05em}.prose h2{margin:1.4em 0 .4em;font-size:2rem}.foot{background:var(--ink);color:var(--foam);border-top:6px solid var(--flare);margin-top:70px;padding:34px 0 24px}.foot a{color:var(--sea)}.foot-grid{grid-template-columns:1.4fr 1fr 1fr;gap:28px;display:grid}.foot h2{color:var(--foam);text-transform:uppercase;margin:0 0 8px;font-size:1.3rem}.foot ul{gap:4px;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}.foot p{color:#c9d9d1;margin:10px 0 0;font-size:.94rem}.foot-logo{width:220px}.foot-base{font-family:var(--mono);color:var(--sea);border-top:1px solid #9fd8c440;margin-top:26px;padding-top:12px;font-size:.74rem}.wave{width:100%;height:28px;color:var(--ink);display:block}html.js .up{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}html.js .up.on{opacity:1;transform:none}@media (width<=900px){.front,.story{grid-template-columns:minmax(0,1fr)}.side-in{position:static}.foot-grid{grid-template-columns:1fr}}@media (width<=720px){.navbtn{display:block}.nav{flex-direction:column;padding:4px 8px 10px;display:none}.nav.open{display:flex}.navbar{flex-direction:column;display:flex}.dateline{display:none}.brand img{width:180px}.alist li{grid-template-columns:1fr;gap:2px}.alist .s{text-align:left}.mini{grid-template-columns:80px 1fr}.mini img{width:80px;height:60px}.tide-table{font-size:.74rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html.js .up{opacity:1;transform:none}.wire{overflow-x:auto}}.front-h{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--kelp);margin:22px 0 0;font-size:.8rem;font-weight:500;line-height:1.4}
