/* Watercolor paper, ink and sunlight. Shared by the home, directory and search pages. */
body:is([data-shell="splash"],[data-shell="search"]) {
  --paper:#fffefc; --ink:#203640; --sea:#3d8491; --sunlight:#e77d36;
  --bg:var(--paper); --surface:#ffffff; --surface-2:#f7f6f1; --text:var(--ink);
  --muted:#768185; --line:#e3e3da; --blue:#c9692b; --blue-soft:#fbecda;
  background:var(--paper); color:var(--ink);
}
body:is([data-shell="splash"],[data-shell="search"]) > .sidebar,
body:is([data-shell="splash"],[data-shell="search"]) > .nav-scrim,
body:is([data-shell="splash"],[data-shell="search"]) > .mobile-nav,
body:is([data-shell="splash"],[data-shell="search"]) .main-wrap > .topbar,
body:is([data-shell="splash"],[data-shell="search"]) .main-content > .footer {display:none!important}
body:is([data-shell="splash"],[data-shell="search"]) .main-wrap {margin:0;min-height:100svh}
body:is([data-shell="splash"],[data-shell="search"]) .main-content {padding:0!important;max-width:none;min-height:100svh;margin:0}
body:is([data-shell="splash"],[data-shell="search"]) #view {animation:none}
body:is([data-shell="splash"],[data-shell="search"]) ::selection {background:#f4d4ac;color:var(--ink)}
body:is([data-shell="splash"],[data-shell="search"]) :is(button,a,input,select):focus-visible {outline:2px solid var(--sea);outline-offset:4px;box-shadow:none}
body:is([data-shell="splash"],[data-shell="search"]) .toasts {bottom:22px}

.shore-page {position:relative;isolation:isolate;overflow:clip;min-height:100svh;max-width:1840px;margin:auto;background:var(--paper);font-family:"Segoe UI",Arial,sans-serif;letter-spacing:0}
.shore-page::before {content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.012;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.68' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.65' filter='url(%23n)'/%3E%3C/svg%3E")}
.shore-header {height:100px;padding:22px clamp(28px,4.2vw,78px);display:flex;align-items:center;gap:24px;position:relative;z-index:5}
.shore-brand {color:var(--ink);font-family:"Trebuchet MS","Segoe UI",sans-serif;font-size:46px;font-weight:800;line-height:1;letter-spacing:-4px;transform:rotate(-3deg);padding-right:5px}
.shore-brand span {color:var(--sunlight)}
.shore-brand-note {font-size:11px;letter-spacing:.04em;color:#6f7c80;padding-top:9px}
.shore-nav {margin-left:auto;display:flex;align-items:center;gap:30px;font-size:13px;font-weight:500}
.shore-nav a {color:var(--ink);position:relative}
.shore-nav-home {opacity:.6;padding:9px 0}
.shore-nav-home.is-current {opacity:1}
.shore-nav-home.is-current::after {content:"";position:absolute;bottom:4px;left:0;right:0;height:2px;background:var(--sunlight);transform:rotate(-3deg);border-radius:50%}
.shore-catalog-link {display:flex;align-items:center;gap:10px;padding:10px 0}
.shore-catalog-link>span {font-size:10px;background:#e9ece4;color:#657470;min-width:22px;line-height:20px;text-align:center;border-radius:50%}
.shore-catalog-link>svg {color:var(--sunlight);transition:transform .2s}
.shore-catalog-link:hover>svg {transform:translateX(4px)}
.shore-settings {width:34px;height:34px;display:grid;place-items:center;color:#63777c;border:1px solid #dbe0d7;border-radius:50%;padding:0}
.shore-settings:hover {background:#f2ecdf;color:var(--ink)}

.shore-stage {position:relative;min-height:calc(100svh - 160px)}
.shore-art {position:absolute;width:41%;left:-2%;top:0;bottom:0;z-index:1;pointer-events:none}
.shore-lighthouse {height:100%;width:auto;max-width:none;display:block;position:absolute;bottom:0;left:50%;transform:translateX(-50%);object-fit:contain}
.shore-art-caption {position:absolute;bottom:8%;left:11%;font:italic 13px Georgia,serif;color:#3c7179;transform:rotate(-8deg);writing-mode:vertical-rl;opacity:.8}
.shore-beam {position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none}
.shore-beam-fill {animation:shore-breathe 9s ease-in-out infinite;filter:blur(2px)}
.shore-beam-edge {opacity:.2}
.shore-lamp-glow {opacity:.65;filter:blur(6px);animation:shore-lamp 6s ease-in-out infinite}
@keyframes shore-breathe {0%,100%{opacity:.75}50%{opacity:1}}
@keyframes shore-lamp {0%,100%{opacity:.45}50%{opacity:.85}}
.shore-home-content {position:relative;z-index:3;margin-left:39.5%;padding:25px clamp(30px,4.2vw,78px) 40px 20px}
.shore-eyebrow {font-size:10px;font-weight:600;letter-spacing:2.3px;display:flex;align-items:center;gap:9px;color:#788382;line-height:1.6}
.shore-eyebrow>span {width:5px;height:5px;background:var(--sunlight);border-radius:50%;box-shadow:0 0 0 3px #ecbc8420}
.shore-welcome h1,.shore-catalog-heading h1 {font-family:Georgia,"Times New Roman",serif;font-size:clamp(43px,4.15vw,68px);line-height:1.06;font-weight:400;letter-spacing:-2.5px;margin:15px 0 14px;color:var(--ink)}
.shore-welcome h1 em,.shore-catalog-heading h1 em {font-weight:400;font-style:italic;position:relative;color:#b9622f;z-index:0}
.shore-welcome h1 em::after {content:"";position:absolute;left:1px;right:-7px;bottom:0;height:8px;z-index:-1;background:#edba623d;border-radius:60% 40% 50% 30%;transform:rotate(-2deg)}
.shore-subtitle {font-size:13px;line-height:1.65;color:#7c8584;letter-spacing:.05px}
.shore-section-line {display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.shore-section-line h2 {font-size:11px;line-height:1.5;letter-spacing:.3px;font-weight:500;color:#788482}
.shore-text-button {display:inline-flex;align-items:center;gap:6px;font-size:10px;line-height:1.4;color:#7d8785;padding:5px 0;white-space:nowrap}
.shore-text-button:hover {color:var(--sea)}
.shore-shortcuts {margin-top:29px}
.shore-shortcut-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;min-height:126px}
.shore-shortcut {display:flex;flex-direction:column;align-items:center;color:var(--ink);text-align:center;padding:2px 0 7px;border-radius:8px;position:relative;transition:transform .2s}
.shore-shortcut:hover,.shore-shortcut:focus-visible {transform:translateY(-4px)}
.shore-service-art {width:76px;height:68px;display:flex;align-items:center;justify-content:center;position:relative;color:#d28a3e;flex-shrink:0}
.shore-service-art .shore-ink-wash {position:absolute;inset:0;width:100%;height:100%;transition:transform .3s}
.shore-service-art>svg:not(.shore-ink-wash) {position:relative;z-index:1;color:var(--ink);transform:rotate(-5deg);stroke-width:1.35}
.shore-service-art.blue {color:#71a4ba}.shore-service-art.purple {color:#73959b}.shore-service-art.orange {color:#eaa160}.shore-service-art.amber {color:#d7b461}.shore-service-art.green {color:#6faaa0}.shore-service-art.pink {color:#d89376}
.shore-shortcut:nth-child(2n) .shore-service-art {transform:rotate(6deg)}
.shore-shortcut:hover .shore-ink-wash {transform:rotate(9deg) scale(1.06)}
.shore-shortcut-name {font-size:12px;font-weight:600;line-height:1.4;letter-spacing:-.1px;margin-top:5px}
.shore-shortcut small {font-size:9px;color:#87908d;line-height:1.45;margin-top:5px;max-width:105px}
.shore-empty-shortcuts {grid-column:1/-1;border:1px dashed #b9c7c5;color:var(--sea);border-radius:5px;margin:10px 0;display:flex;align-items:center;justify-content:center;gap:10px}

.shore-search-section {margin-top:22px}
.shore-search-modes {display:flex;align-items:center;gap:23px;margin-bottom:9px;min-height:25px}
.shore-search-modes button {position:relative;display:flex;gap:5px;align-items:center;padding:2px 0 7px;font-size:11px;color:#89918d;white-space:nowrap}
.shore-search-modes button.active {color:var(--ink)}
.shore-search-modes button.active::after {content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:#e7aa66;border-radius:60% 30% 40% 50%;transform:rotate(-1deg)}
.shore-search-key {margin-left:auto;font-size:9px;color:#9aa19b;white-space:nowrap}
.shore-search-key kbd {font-family:inherit;padding:0 4px;border:1px solid #e0e2d9;border-radius:3px;color:#7c8987}
.shore-search-box {display:flex;align-items:center;gap:11px;border:1.2px solid #aebeb9;background:#fffef9e6;border-radius:8px 10px 8px 7px;padding:7px 7px 7px 17px;box-shadow:0 3px 0 #ded7c422;min-height:58px;position:relative}
.shore-search-box::after {content:"";position:absolute;height:1px;left:10px;right:18px;bottom:-4px;background:#c7cbc080;transform:rotate(-.18deg);pointer-events:none}
.shore-search-box:focus-within {border-color:var(--sea)}
.shore-search-box>svg {color:#718c8e;stroke-width:1.4}
.shore-search-box input {font-size:14px;min-width:0;flex:1;width:100%;padding:8px 0;border:0;background:transparent;outline:none!important;box-shadow:none!important}
.shore-search-box input::placeholder {color:#9ba4a0}
.shore-search-provider {border-left:1px solid #e7e9df;padding-left:10px;max-width:126px}
.shore-search-provider select {background:transparent;border:0;padding:6px 0;max-width:112px;font-size:10px;color:#84908d;cursor:pointer}
.shore-search-submit {background:var(--sunlight);color:white;padding:12px 16px;border-radius:5px 6px 5px 7px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;transition:background .2s}
.shore-search-submit:hover {background:#cf6926}

.shore-information {margin-top:30px}
.shore-widgets {display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:22px}
.shore-widget {position:relative;min-width:0;padding:12px 0 0;border-top:1px solid #dce1d7}
.shore-widget-top {display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:22px}
.shore-widget-title {font-size:11px;font-weight:500;display:inline-flex;align-items:center;gap:6px;color:var(--ink);padding:0;line-height:1.45;text-align:left}
.shore-data-status {font-size:8px;color:#a17f47;white-space:nowrap;letter-spacing:.3px}
.shore-data-status[data-state="live"] {color:#4f8b7b}
.shore-data-status[data-state="saved"] {color:#8c887a}
.shore-data-status[data-state="pending"] {color:#697f88}
.shore-weather-now {display:flex;gap:10px;align-items:center;color:var(--ink);margin-top:7px}
.shore-temperature {font-family:Georgia,serif;font-size:36px;letter-spacing:-2px;line-height:1.2;white-space:nowrap}
.shore-weather-drawing {position:relative;color:#cb8e37}
.shore-weather-drawing:before {content:"";position:absolute;inset:-2px;background:#f2d59c70;transform:rotate(-10deg);border-radius:49% 55% 37% 50%}
.shore-weather-drawing svg {width:37px;height:37px;stroke-width:1.2;position:relative}
.shore-weather-detail {font-size:9px;color:#798884;line-height:1.4;max-width:115px}
.shore-weather-detail small {display:block;font-size:8px;margin-top:4px;color:#9a9f95}
.shore-weather-graph {height:32px;margin:3px 0 -4px;color:#83b6b6;overflow:hidden}
.shore-weather-graph svg {width:100%;height:38px;display:block}
.shore-weather-hours {display:grid;grid-template-columns:repeat(6,1fr);gap:2px}
.home-forecast-hour {display:flex;align-items:center;flex-direction:column;gap:2px;font-size:8px;color:#8c9890}
.home-forecast-hour strong {font-size:9px;font-weight:500;color:#607e7d}
.shore-data-source {font-size:8px;color:#9b9f94;line-height:1.4;margin-top:12px;min-height:12px}
.shore-data-error {font-size:10px;line-height:1.5;color:#a05b30;margin-top:8px}
.shore-rate-line {display:flex;justify-content:space-between;align-items:center;gap:6px;color:var(--ink);padding:7px 0;border-bottom:1px solid #e9e9dd;font-size:11px;font-variant-numeric:tabular-nums}
.shore-rate-line>span {display:flex;align-items:center;gap:8px;color:#798984;font-size:10px}
.shore-rate-line b {font:italic 17px Georgia,serif;color:#65949a;width:12px;text-align:center}
.shore-rate-line strong {font-size:14px;font-weight:500;white-space:nowrap}
.shore-rate-line strong small {font-size:10px;color:#9a9f91;font-weight:400}
.shore-rates .shore-data-source {margin-top:11px}
.shore-clock-dot {width:5px;height:5px;background:#71a999;border-radius:50%;box-shadow:0 0 0 3px #a8cfb81a}
.shore-time-main {display:flex;align-items:center;gap:8px;margin-top:15px}
.shore-clock-face {color:#608188;width:48px;height:48px;flex-shrink:0;transform:rotate(-4deg)}
.shore-digital-time {font:29px/1.1 Georgia,serif;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.shore-day {font-size:9px;text-transform:capitalize;color:#8a968d;margin-top:10px;line-height:1.6}
.shore-pause {font-size:9px;color:#b8884b;display:inline-flex;align-items:center;gap:7px;margin-top:14px;line-height:1.5}
.shore-footer {position:relative;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px clamp(28px,4.2vw,78px) 20px;min-height:60px;font-size:10px;color:#919c95}
.shore-footer-links {display:flex;align-items:center;gap:21px}
.shore-footer-links button {padding:4px 0;color:inherit;font-size:10px}
.shore-footer-links button:hover {color:var(--sea)}
.shore-footer-mark {display:inline-flex;align-items:center;gap:6px;letter-spacing:1.5px;color:#5d7a7f;font-size:9px}

.shore-picker-grid {display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:20px}
.shore-picker-item {display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:7px;cursor:pointer;font-size:12px}
.shore-picker-item input:disabled~* {opacity:.4}
.shore-picker-item:has(input:checked) {background:#f8ead755;border-color:#dcb58f}
.shore-picker-item>svg {color:#789394}

/* The directory is a coastal map, with a lighthouse in the page margin. */
.shore-directory-stage {display:grid;grid-template-columns:28% minmax(0,1fr);gap:32px;padding:22px clamp(28px,4.2vw,78px) 45px 0;position:relative}
.shore-directory-art {align-self:start;position:sticky;top:15px;height:calc(100svh - 40px);max-height:950px;min-height:570px;pointer-events:none;z-index:0}
.shore-directory-art .shore-lighthouse {height:100%;bottom:30px;left:42%}
.shore-directory-art>p {position:absolute;bottom:3%;left:32%;font:18px/1.5 Georgia,serif;color:#486d75;transform:rotate(-5deg);white-space:nowrap;text-align:center}
.shore-directory-art>p em {color:#be824c;font-weight:400}
.shore-catalog-content {position:relative;z-index:1;padding-top:9px}
.shore-catalog-heading h1 {font-size:clamp(40px,3.8vw,62px);margin-top:15px}
.shore-catalog-heading h1 br {display:none}
.shore-catalog-heading .shore-subtitle {margin-top:12px}
.shore-catalog-tools {margin-top:28px}
.shore-catalog-search {display:flex;align-items:center;gap:12px;background:#fffdf8;border:1px solid #bcc8bf;border-radius:7px;padding:12px 16px;min-height:51px;max-width:700px}
.shore-catalog-search>svg {color:#829e9c}
.shore-catalog-search input {width:100%;min-width:0;flex:1;background:none;border:0;font-size:13px;padding:2px 0;box-shadow:none;outline:none!important}
.shore-catalog-search:focus-within {border-color:var(--sea)}
.shore-catalog-search>span {white-space:nowrap;color:#98a399;font-size:10px}
.shore-catalog-filters {display:flex;gap:9px 22px;flex-wrap:wrap;margin-top:18px}
.shore-catalog-filters button {font-size:11px;line-height:1.7;position:relative;display:inline-flex;align-items:center;gap:5px;color:#89948c;padding:6px 0}
.shore-catalog-filters button.active {color:#254b54}
.shore-catalog-filters button.active:after {content:"";position:absolute;bottom:1px;left:0;right:0;height:3px;border-radius:50%;background:#e6ad70;transform:rotate(-2deg)}
.shore-catalog-summary {display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#929e94;border-top:1px solid #e2e5da;padding-top:16px;margin:18px 0 15px}
.shore-catalog-summary>span {display:flex;align-items:center;gap:7px}
.shore-catalog-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.shore-service-card {position:relative;background:#fffdf9a8;border:1px solid #e4e5d9;border-radius:4px 10px 5px 8px;transition:background .2s,border-color .2s,transform .2s}
.shore-service-card:nth-child(3n+2) {border-radius:9px 5px 8px 4px}
.shore-service-card:hover {background:#fffdf8;border-color:#bfcdc3;transform:translateY(-3px)}
.shore-catalog-open {display:block;padding:17px 19px 20px;color:var(--ink);height:100%;position:relative}
.shore-catalog-open .shore-service-art {width:64px;height:57px;margin-left:-9px}
.shore-catalog-open h3 {font-size:14px;font-weight:500;letter-spacing:-.2px;margin-top:9px;line-height:1.4;padding-right:5px}
.shore-catalog-open p {color:#86938b;font-size:10px;line-height:1.6;margin-top:7px;min-height:32px}
.shore-service-kind {display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.2px;color:#a19d88;margin-top:16px}
.shore-service-kind i {width:4px;height:4px;border-radius:50%;background:#d4ae78}
.shore-service-kind i.is-local {background:#7caaa2}
.shore-card-arrow {position:absolute;right:17px;bottom:15px;color:#b3b9aa;transition:transform .2s}
.shore-service-card:hover .shore-card-arrow {transform:translateX(4px);color:var(--sunlight)}
.shore-service-card .shore-favorite {position:absolute;right:12px;top:13px;color:#aeb9ad;width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:50%;background:transparent;opacity:1}
.shore-service-card .shore-favorite:hover {background:#f3eee0}
.shore-service-card .shore-favorite.selected {color:#ca984c;background:transparent}
.shore-favorite.selected>svg {fill:#efd7a750}
.shore-catalog-empty {grid-column:1/-1;text-align:center;padding:60px 20px;color:#7e9593}
.shore-catalog-empty h2 {font:23px Georgia,serif;margin-top:18px}
.shore-catalog-empty p {font-size:12px;margin:13px auto 20px;max-width:330px}
.shore-small-button {border:1px solid #bbc8be;border-radius:6px;padding:10px 18px;font-size:12px;color:var(--sea)}
.shore-catalog-note {display:flex;align-items:center;justify-content:center;gap:10px;font-size:10px;color:#9aa497;margin-top:30px;text-align:center}

/* Keep fine print readable against the paper, even beside the bright artwork. */
.shore-subtitle {color:#687b79}
.shore-section-line h2 {font-size:12px;color:#6c7c78}
.shore-text-button {font-size:11px;color:#6b7d78}
.shore-shortcut-name {font-size:13px}
.shore-shortcut small {font-size:10px;color:#76837e}
.shore-search-modes button {font-size:12px;color:#73817b}
.shore-weather-detail {font-size:10px;color:#687c78}
.shore-weather-detail small {font-size:9px;color:#77857e}
.shore-data-status {font-size:9px;color:#8d713e}
.shore-data-source {font-size:9px;color:#76857c}
.shore-day {font-size:10px;color:#718179}
.shore-rate-line strong {font-size:16px}
.shore-catalog-open p {font-size:11px;color:#74827a}
.shore-service-kind {font-size:9px;color:#89866f}
.shore-catalog-filters button {font-size:12px;color:#708278}
.shore-catalog-summary,.shore-catalog-note {color:#76867b}

@media (min-width:1500px) {
  .shore-home-content {padding-top:38px}
  .shore-shortcuts {margin-top:36px}
  .shore-shortcut-grid {gap:18px}
  .shore-service-art {width:88px;height:78px}
  .shore-shortcut-name {font-size:14px}
  .shore-shortcut small {font-size:10px}
  .shore-information {margin-top:38px}
  .shore-widget-title {font-size:12px}
  .shore-weather-detail {font-size:10px}
  .shore-digital-time {font-size:34px}
}
@media (min-width:1100px) and (max-height:830px) {
  .shore-header {height:83px;padding-top:16px;padding-bottom:16px}
  .shore-stage {min-height:calc(100svh - 137px)}
  .shore-home-content {padding-top:10px;padding-bottom:23px}
  .shore-welcome h1 {font-size:49px;margin-top:11px;margin-bottom:9px}
  .shore-shortcuts {margin-top:20px}
  .shore-shortcut-grid {min-height:110px}
  .shore-service-art {width:68px;height:61px}
  .shore-search-section {margin-top:15px}
  .shore-information {margin-top:22px}
  .shore-widgets {gap:19px}
  .shore-footer {min-height:54px}
}
@media (max-width:1190px) {
  .shore-brand-note {display:none}
  .shore-home-content {margin-left:35%;padding-right:30px}
  .shore-art {width:37%;left:-3%}
  .shore-welcome h1 {font-size:49px}
  .shore-shortcut-grid {gap:3px}
  .shore-shortcut-name {font-size:11px}
  .shore-shortcut small {font-size:8px}
  .shore-service-art {width:65px;height:60px}
  .shore-search-key {display:none}
  .shore-widgets {gap:16px}
  .shore-weather-now {gap:6px;flex-wrap:wrap}
  .shore-weather-detail {max-width:100%;flex-basis:100%;display:flex;gap:8px;align-items:center;font-size:9px}
  .shore-weather-detail small {margin:0;font-size:8px}
  .shore-time-main {flex-direction:column;align-items:flex-start;gap:7px;margin-top:9px}
  .shore-clock-face {height:34px;width:34px;position:absolute;right:0;top:45px;opacity:.7}
  .shore-digital-time {font-size:29px;margin-top:7px}
  .shore-day {max-width:100px;margin-top:13px}
  .shore-pause {margin-top:19px}
  .shore-catalog-grid {gap:13px}
  .shore-directory-stage {grid-template-columns:25% minmax(0,1fr);gap:22px}
}
@media (max-width:980px) and (min-width:721px) {
  .shore-header {height:90px;padding-left:30px;padding-right:30px}
  .shore-home-content {margin-left:32%;padding-left:12px;padding-top:15px}
  .shore-art {width:34%;left:-3%;max-height:900px;top:0;bottom:auto;height:100%;mask-image:linear-gradient(to right,#000 70%,transparent 100%)}
  .shore-art .shore-lighthouse {left:44%}
  .shore-welcome h1 {font-size:44px}
  .shore-eyebrow {font-size:9px;letter-spacing:1.7px}
  .shore-subtitle {font-size:11px}
  .shore-shortcuts {margin-top:22px}
  .shore-shortcut-grid {grid-template-columns:repeat(3,1fr);gap:7px 14px}
  .shore-shortcut {padding:0 0 8px}
  .shore-shortcut-name {font-size:12px}
  .shore-shortcut small {display:none}
  .shore-search-provider {display:none}
  .shore-search-modes {gap:20px}
  .shore-search-submit {padding:11px 12px}
  .shore-widgets {grid-template-columns:1.25fr 1fr;gap:18px}
  .shore-weather {grid-column:1/-1}
  .shore-weather-now {flex-wrap:nowrap}
  .shore-weather-detail {flex-basis:auto;display:block;margin-left:8px}
  .shore-weather-detail small {margin-top:4px}
  .shore-weather-graph {height:35px}
  .shore-weather-graph svg {height:44px}
  .shore-clock-face {position:static;opacity:1;width:44px;height:44px}
  .shore-time-main {flex-direction:row}
  .shore-digital-time {margin:0}
  .shore-day {max-width:none}
  .shore-directory-stage {grid-template-columns:20% minmax(0,1fr);gap:18px;padding-right:30px}
  .shore-directory-art {mask-image:linear-gradient(to right,#000 65%,transparent 100%)}
  .shore-directory-art .shore-lighthouse {left:23%;height:82%;bottom:auto;top:0}
  .shore-directory-art>p {display:none}
  .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .shore-catalog-heading h1 {font-size:42px}
  .shore-catalog-heading h1 br {display:block}
}
@media (max-width:720px) {
  .shore-header {height:76px;padding:16px 21px;gap:15px}
  .shore-brand {font-size:38px;letter-spacing:-3.3px}
  .shore-nav {gap:18px;font-size:12px}
  .shore-nav-home {display:none}
  .shore-catalog-link {gap:7px}
  .shore-catalog-link>svg {width:14px}
  .shore-catalog-link>span {font-size:9px;line-height:18px;min-width:18px}
  .shore-settings {height:30px;width:30px;border:0}
  .shore-stage {min-height:0}
  .shore-art {left:-26px;top:0;bottom:auto;width:184px;height:280px}
  .shore-art .shore-lighthouse {height:100%;left:50%}
  .shore-art-caption {display:none}
  .shore-home-content {margin:0;padding:5px 22px 31px}
  .shore-welcome {padding:30px 0 28px 133px;min-height:282px;display:flex;flex-direction:column;justify-content:center}
  .shore-eyebrow {font-size:8px;letter-spacing:1.1px;line-height:1.7;gap:6px}
  .shore-eyebrow>span {height:4px;width:4px;flex-shrink:0}
  .shore-welcome h1 {font-size:36px;line-height:1.08;letter-spacing:-1.7px;margin:12px 0 13px}
  .shore-subtitle {font-size:10px;line-height:1.65;max-width:250px}
  .shore-shortcuts {margin-top:8px}
  .shore-section-line {margin-bottom:7px}
  .shore-section-line h2 {font-size:10px;letter-spacing:0}
  .shore-text-button {font-size:9px}
  .shore-shortcut-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 10px}
  .shore-shortcut {padding:0 0 5px}
  .shore-service-art {width:74px;height:65px}
  .shore-shortcut-name {font-size:12px;margin-top:1px}
  .shore-shortcut small {font-size:8px;margin-top:3px}
  .shore-search-section {margin-top:24px}
  .shore-search-modes {gap:19px;margin-bottom:10px}
  .shore-search-modes button {font-size:10px}
  .shore-search-box {padding:6px 6px 6px 12px;min-height:55px;gap:9px}
  .shore-search-box>svg {width:18px;height:18px}
  .shore-search-box input {font-size:13px;padding:8px 0}
  .shore-search-provider {display:none}
  .shore-search-submit {padding:12px;font-size:11px;gap:6px}
  .shore-search-submit>svg {width:14px}
  .shore-information {margin-top:29px}
  .shore-widgets {grid-template-columns:1fr 1fr;gap:24px 22px}
  .shore-weather {grid-column:1/-1}
  .shore-widget {padding-top:12px}
  .shore-widget-title {font-size:12px}
  .shore-data-status {font-size:9px}
  .shore-weather-now {flex-wrap:nowrap;gap:15px;margin-top:10px}
  .shore-temperature {font-size:42px}
  .shore-weather-drawing svg {width:42px;height:42px}
  .shore-weather-detail {flex-basis:auto;display:block;font-size:11px}
  .shore-weather-detail small {font-size:10px;margin-top:5px}
  .shore-weather-graph {height:36px;margin:3px 0 0}
  .shore-weather-graph svg {height:44px}
  .home-forecast-hour {font-size:9px;gap:3px}
  .home-forecast-hour strong {font-size:10px}
  .shore-data-source {font-size:9px;margin-top:12px}
  .shore-rate-line {padding:9px 0;font-size:12px}
  .shore-rate-line>span {font-size:11px}
  .shore-rate-line strong {font-size:16px}
  .shore-time-main {flex-direction:row;align-items:center;margin-top:16px;gap:10px}
  .shore-clock-face {position:static;opacity:1;width:46px;height:46px}
  .shore-digital-time {font-size:29px;margin:0}
  .shore-day {max-width:none;font-size:10px;margin-top:13px}
  .shore-pause {margin-top:22px;font-size:9px;gap:4px}
  .shore-footer {padding:18px 22px 24px;flex-direction:column;gap:13px;align-items:flex-start;border-top:1px solid #e1e6da;font-size:9px}
  .shore-footer-links {width:100%;gap:22px}
  .shore-footer-links button {font-size:9px}
  .shore-footer-mark {margin-left:auto;font-size:8px}
  .shore-picker-grid {gap:5px;grid-template-columns:1fr}
  .shore-picker-item {padding:9px;font-size:12px}
  .shore-directory-stage {display:block;padding:0 22px 30px}
  .shore-directory-art {position:absolute;left:-24px;top:-5px;height:250px;min-height:0;width:163px;pointer-events:none}
  .shore-directory-art .shore-lighthouse {height:100%;bottom:0;left:45%}
  .shore-directory-art>p {display:none}
  .shore-catalog-content {padding:0}
  .shore-catalog-heading {padding:30px 0 20px 119px;min-height:232px;display:flex;flex-direction:column;justify-content:center}
  .shore-catalog-heading h1 {font-size:34px;line-height:1.13;letter-spacing:-1.7px;margin:12px 0 0}
  .shore-catalog-heading h1 br {display:none}
  .shore-catalog-heading .shore-subtitle {font-size:10px;margin-top:12px}
  .shore-catalog-tools {margin-top:20px}
  .shore-catalog-search {padding:12px;gap:9px;min-height:50px}
  .shore-catalog-search input {font-size:12px}
  .shore-catalog-search>span {font-size:9px}
  .shore-catalog-filters {gap:5px 18px;margin-top:13px}
  .shore-catalog-filters button {font-size:11px}
  .shore-catalog-summary {font-size:9px;margin:12px 0 14px;padding-top:13px}
  .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .shore-catalog-open {padding:14px 13px 16px}
  .shore-catalog-open .shore-service-art {width:60px;height:53px;margin-left:-7px}
  .shore-catalog-open h3 {font-size:13px;margin-top:8px;min-height:36px}
  .shore-catalog-open p {font-size:10px;min-height:46px;margin-top:3px}
  .shore-service-kind {font-size:8px;margin-top:12px;gap:5px}
  .shore-service-card .shore-favorite {right:5px;top:9px}
  .shore-card-arrow {right:10px;bottom:12px;opacity:.7}
  .shore-card-arrow>svg {width:13px}
  .shore-catalog-note {font-size:9px;line-height:1.7;margin-top:25px;align-items:flex-start;text-align:left}
}
@media (max-width:370px) {
  .shore-header {padding-left:17px;padding-right:17px}
  .shore-nav {gap:10px}
  .shore-home-content {padding-left:17px;padding-right:17px}
  .shore-welcome {padding-left:113px}
  .shore-welcome h1 {font-size:31px}
  .shore-art {left:-42px}
  .shore-search-modes {gap:14px}
  .shore-shortcut-name {font-size:11px}
  .shore-time-main {gap:4px}
  .shore-clock-face {width:37px;height:37px}
  .shore-digital-time {font-size:27px}
  .shore-catalog-heading {padding-left:99px}
  .shore-catalog-heading h1 {font-size:29px}
}


/* Restored original watercolor design, near-white paper, no oversized welcome.
   The main lighthouse stays still when content changes or the page scrolls. */
.shore-page {--shore-gutter:clamp(28px,4.2vw,78px);background:var(--paper);display:flex;flex-direction:column}
.shore-header {height:78px;flex-shrink:0;padding:14px var(--shore-gutter)}
.shore-stage {flex:1;min-height:calc(100svh - 135px)}
.shore-art {position:fixed;left:max(0px,calc((100vw - 1840px)/2));top:78px;bottom:12px;width:min(37vw,680px);height:auto;max-height:none;z-index:1;pointer-events:none;overflow:clip;mask-image:none}
.shore-lighthouse {height:100%;max-width:none;object-fit:contain}
.shore-home-content {margin-left:37%;padding:17px var(--shore-gutter) 28px 20px}
.shore-shortcuts {margin-top:0}
.shore-section-line h1 {font-size:16px;line-height:1.4;font-weight:600;letter-spacing:-.2px;margin:0;color:var(--ink)}
.shore-shortcut-grid {min-height:110px}
.shore-search-section {margin-top:20px}
.shore-information {margin-top:26px}
.shore-beam {position:fixed;inset:0;width:100vw;height:100svh;z-index:2;overflow:hidden;pointer-events:none}
.shore-beam-fill {animation:none;opacity:.70;filter:blur(2px)}
.shore-beam-edge {opacity:.13}
.shore-lamp-glow {display:none}
.shore-directory-stage {display:block;position:relative;flex:1;padding:18px var(--shore-gutter) 36px 29%}
.shore-directory-art {position:fixed;left:max(0px,calc((100vw - 1840px)/2));top:78px;bottom:12px;width:min(27vw,497px);height:auto;min-height:0;max-height:none;z-index:1;overflow:clip;pointer-events:none;mask-image:none}
.shore-directory-art .shore-lighthouse {height:100%;left:50%;bottom:0;top:auto}
.shore-catalog-content {position:relative;z-index:3;padding-top:0}
.shore-catalog-heading h1 {font-family:Georgia,"Times New Roman",serif;font-size:28px;font-weight:400;line-height:1.3;letter-spacing:-.6px;margin:0}
.shore-catalog-tools {margin-top:18px}
@media (min-width:1500px) {
 .shore-home-content {padding-top:23px}
 .shore-shortcuts {margin-top:0}
 .shore-search-section {margin-top:24px}
 .shore-information {margin-top:30px}
}
@media (max-width:1190px) and (min-width:721px) {
 .shore-art {width:32%;left:0}
 .shore-home-content {margin-left:34%;padding-right:28px}
 .shore-directory-stage {padding-left:27%;padding-right:28px}
 .shore-directory-art {width:25%;left:0}
}
@media (max-width:1050px) and (min-width:721px) {
 .shore-art {position:fixed;top:75px;bottom:20px;width:28%;left:0;height:auto;max-height:none;mask-image:none}
 .shore-home-content {margin-left:29%;padding:16px 26px 25px 8px}
 .shore-shortcut-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}
 .shore-service-art {width:68px;height:58px}
 .shore-shortcut-name {font-size:12px}
 .shore-shortcut small {display:none}
 .shore-search-provider {display:none}
 .shore-widgets {grid-template-columns:1.15fr 1fr;gap:21px}
 .shore-weather {grid-column:1/-1}
 .shore-directory-stage {padding-left:24%;padding-right:26px}
 .shore-directory-art {position:fixed;top:75px;bottom:20px;width:22%;left:0;height:auto;max-height:none;min-height:0;mask-image:none}
 .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px) {
 .shore-page {--shore-gutter:18px}
 .shore-header {height:66px;padding:12px 18px;gap:15px}
 .shore-brand {font-size:36px;letter-spacing:-3.3px}
 .shore-stage {min-height:0}
 .shore-beam {display:none}
 .shore-art {position:absolute;left:-8px;top:44px;bottom:auto;width:110px;height:176px;max-height:none;mask-image:none}
 .shore-lighthouse {height:100%}
 .shore-home-content {margin:0;padding:12px 18px 26px}
 .shore-shortcuts {margin:0 0 0 87px;min-height:204px}
 .shore-section-line {margin-bottom:10px;gap:8px}
 .shore-section-line h1 {font-size:15px;white-space:nowrap}
 .shore-shortcut-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 5px;min-height:0}
 .shore-shortcut {padding:0 0 4px}
 .shore-service-art {width:55px;height:48px}
 .shore-service-art>svg:not(.shore-ink-wash) {width:27px;height:27px}
 .shore-shortcut-name {font-size:11px;margin-top:3px;line-height:1.35}
 .shore-shortcut small {display:none}
 .shore-search-section {margin-top:12px}
 .shore-search-modes {gap:19px}
 .shore-search-box {min-height:53px}
 .shore-information {margin-top:23px}
 .shore-directory-stage {display:block;padding:13px 18px 28px}
 .shore-directory-art {position:absolute;left:10px;top:0;bottom:auto;height:88px;width:69px;min-height:0;max-height:none}
 .shore-directory-art .shore-lighthouse {height:100%;left:50%;bottom:0;top:auto}
 .shore-catalog-heading {padding:15px 0 22px 71px;min-height:78px;display:flex;align-items:center}
 .shore-catalog-heading h1 {font-size:24px;line-height:1.3}
 .shore-catalog-tools {margin-top:9px}
 .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:370px) {
 .shore-shortcuts {margin-left:72px}
 .shore-art {left:-16px;width:101px}
 .shore-section-line h1 {font-size:14px}
}


/* 2026-11-05: catalog lighthouse and compact service cards.
   Keep this illustration in the document grid, not in a clipped fixed layer. */
@media (min-width:721px) {
  .shore-directory .shore-directory-stage {
    display:grid;
    grid-template-columns:minmax(245px,27%) minmax(0,1fr);
    gap:clamp(20px,2.2vw,36px);
    align-items:start;
    padding:18px var(--shore-gutter) 36px clamp(14px,2.2vw,42px);
  }
  .shore-directory .shore-directory-art {
    position:sticky;
    top:86px;
    left:auto;
    bottom:auto;
    width:100%;
    height:calc(100svh - 102px);
    max-height:900px;
    min-height:460px;
    overflow:visible;
    align-self:start;
    z-index:1;
    mask-image:none;
  }
  .shore-directory .shore-directory-art .shore-lighthouse {
    position:relative;
    inset:auto;
    transform:none;
    display:block;
    width:100%;
    max-width:100%;
    height:100%;
    object-fit:contain;
    object-position:center top;
  }
  .shore-directory .shore-catalog-content {min-width:0;}
}
.shore-directory .shore-catalog-grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}
.shore-directory .shore-service-card {
  border-radius:8px;
  min-height:124px;
}
.shore-directory .shore-service-card:nth-child(3n+2) {border-radius:8px;}
.shore-directory .shore-catalog-open {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-rows:auto auto minmax(20px,1fr);
  align-content:start;
  column-gap:9px;
  padding:14px 12px 12px;
  min-height:124px;
  text-align:left;
}
.shore-directory .shore-catalog-open .shore-service-art {
  grid-column:1;
  grid-row:1 / span 2;
  width:48px;
  height:45px;
  margin-left:-4px;
}
.shore-directory .shore-catalog-open .shore-service-art>svg:not(.shore-ink-wash) {
  width:25px;
  height:25px;
}
.shore-directory .shore-catalog-open h3 {
  grid-column:2;
  grid-row:1;
  margin:4px 17px 0 0;
  padding:0;
  font-size:13px;
  font-weight:600;
  line-height:1.3;
  min-height:0;
}
.shore-directory .shore-catalog-open p {
  grid-column:2;
  grid-row:2;
  margin:4px 0 0;
  padding:0;
  min-height:0;
  color:#74827a;
  font-size:10px;
  line-height:1.4;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}
.shore-directory .shore-service-kind {
  grid-column:1 / -1;
  grid-row:3;
  align-self:end;
  margin:12px 20px 0 0;
  font-size:9px;
  min-height:12px;
}
.shore-directory .shore-card-arrow {right:11px;bottom:10px;}
.shore-directory .shore-favorite {right:6px;top:6px;}
.shore-directory .shore-catalog-tools {margin-top:13px;}
.shore-directory .shore-catalog-summary {margin:13px 0 13px;padding-top:11px;}

@media (min-width:721px) and (max-width:1399px) {
  .shore-directory .shore-catalog-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width:721px) and (max-width:1080px) {
  .shore-directory .shore-directory-stage {
    grid-template-columns:minmax(165px,24%) minmax(0,1fr);
    gap:14px;
    padding:15px 25px 28px 8px;
  }
  .shore-directory .shore-directory-art {top:76px;height:calc(100svh - 92px);min-height:350px;}
  .shore-directory .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:720px) {
  .shore-directory .shore-directory-stage {display:block;padding:13px 18px 28px;}
  .shore-directory .shore-directory-art {
    display:block;
    position:absolute;
    left:6px;
    top:1px;
    bottom:auto;
    width:86px;
    height:118px;
    max-height:none;
    min-height:0;
    overflow:visible;
    z-index:1;
  }
  .shore-directory .shore-directory-art .shore-lighthouse {
    position:relative;
    inset:auto;
    transform:none;
    display:block;
    height:100%;
    width:100%;
    max-width:100%;
    object-fit:contain;
  }
  .shore-directory .shore-catalog-heading {
    padding:16px 0 18px 88px;
    min-height:116px;
  }
  .shore-directory .shore-catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  .shore-directory .shore-service-card {min-height:142px;}
  .shore-directory .shore-catalog-open {
    display:block;
    min-height:142px;
    padding:11px 11px 12px;
  }
  .shore-directory .shore-catalog-open .shore-service-art {
    width:45px;height:39px;margin-left:-4px;
  }
  .shore-directory .shore-catalog-open h3 {margin:3px 15px 0 0;font-size:12px;line-height:1.3;}
  .shore-directory .shore-catalog-open p {
    margin-top:4px;
    min-height:0;
    font-size:10px;
    line-height:1.35;
  }
  .shore-directory .shore-service-kind {margin-top:10px;padding-right:14px;font-size:9px;}
  .shore-directory .shore-card-arrow {right:8px;bottom:9px;}
}
