/* Updated side only: tap touches (Gino, Oct 23 2026, 5:22 PM). This sheet is disabled on the Original side.
   Motion: the app's own curve, everything at 0.4 s or less, the roll at 180 ms. Reduce Motion: an instant swap. */
:root{--dl-ease:var(--u-ease,var(--ease,cubic-bezier(.2,.8,.2,1)));--dl-amber:#E0A23A;--dl-roll:180ms}
.dl-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ROLL: one quiet line, two facts */
.dl-roll{appearance:none;-webkit-appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:6px;text-align:left;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.dl-roll:after{content:"";position:absolute;inset:-13px -6px}
.dl-rw{display:inline-grid;overflow:hidden;height:1.35em;line-height:1.35em}
.dl-f{grid-area:1/1;white-space:nowrap;transition:transform var(--dl-roll) var(--dl-ease),opacity var(--dl-roll) var(--dl-ease)}
.dl-b{transform:translateY(100%);opacity:0}
.dl-roll.on .dl-a{transform:translateY(-100%);opacity:0}
.dl-roll.on .dl-b{transform:none;opacity:1}
.dl-roll:focus-visible{outline:2px solid var(--u-ink,currentColor);outline-offset:4px;border-radius:6px}
/* open status */
.dl-dot{width:8px;height:8px;border-radius:50%;background:var(--u-open,#3BAA6B);flex:none}
.dl-open.last .dl-dot{background:var(--dl-amber)}
.dl-open.closed .dl-dot{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor;opacity:.7}
.dl-open.sm{font-size:13px;font-weight:600;color:var(--u-ink,inherit)}
.dl-open.big{font:inherit;gap:10px}.dl-open.big .dl-dot{width:10px;height:10px}
.u-todayb h2 .dl-open{display:inline-flex}
/* feed business line sits where the grey line was, outside the link */
.dl-head{position:relative}
.dl-meta{position:absolute;left:60px;top:27px;height:17px;display:flex;align-items:center;font-size:12px;line-height:17.4px;z-index:1}
.dl-meta .dl-open.sm{font-size:12px;font-weight:600;color:var(--u-mut,inherit)}
.dl-meta .dl-roll:after{inset:-9px -6px -14px}
/* exact time */
.dl-time{font-size:12px;line-height:17.4px;color:var(--u-mut,inherit)}
.dl-time:after{inset:-12px 0 -12px -10px}
/* Discover */
.dl-dline{margin:2px 0 4px}
.dl-dwrap{display:inline-flex;gap:4px;align-items:center}
.dl-travel.sm{font-size:inherit;color:inherit}
.dl-travel{text-decoration:none}
/* business page: travel time on its own row, outside the directions button */
.dl-trow{display:flex;align-items:center;min-height:44px;padding:0 0 4px;margin-top:-6px;font-size:14px;color:var(--u-mut,inherit)}
.dl-trow .dl-roll:after{inset:-6px -10px}
.dl-trow .dl-travel{min-height:44px}

/* EXPAND: one sentence (or the week) in place */
.dl-x{display:grid;grid-template-rows:0fr;transition:grid-template-rows 300ms var(--dl-ease),opacity 300ms var(--dl-ease);opacity:0;visibility:hidden}
.dl-x.open{grid-template-rows:1fr;opacity:1;visibility:visible}
.dl-x:not(.open){transition:grid-template-rows 300ms var(--dl-ease),opacity 200ms var(--dl-ease),visibility 0s 300ms}
.dl-xi{overflow:hidden;min-height:0}
.dl-x p{font-size:14px;line-height:1.45;color:var(--u-mut,var(--ink-2,inherit));padding:2px 0 10px 30px;margin:0}
.dl-area{appearance:none;border:0;background:none;font:inherit;color:inherit;width:100%;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.su-area.dl-area{display:flex}
.su-area.dl-area+.dl-x p{padding:8px 4px 4px}
.dl-hours{width:100%}
.dl-chev{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-left:auto;transition:transform 300ms var(--dl-ease);opacity:.6;flex:none}
.dl-hours[aria-expanded=true] .dl-chev{transform:rotate(180deg)}
.dl-week{list-style:none;margin:0;padding:0 0 10px;font-size:14px;line-height:1.3}
.dl-week li{display:flex;justify-content:space-between;padding:6px 0;color:var(--u-mut,inherit)}
.dl-week li.today{font-weight:700;color:var(--u-ink,inherit)}
.dl-week li.shut span:last-child{opacity:.7}

/* 5. photo stamp: the pin is struck through once (300 ms); the words stay */
.dl-stamp{display:flex;align-items:center;gap:8px;margin:10px 2px 0;font-size:13px;font-weight:600;color:var(--brand-ink,var(--u-ink,inherit))}
.dl-stamp svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;flex:none}
.dl-stamp .strike{stroke-dasharray:23;stroke-dashoffset:23;animation:dl-strike 300ms var(--dl-ease) 120ms forwards}
.dl-stamp.seen .strike{animation:none;stroke-dashoffset:0}
@keyframes dl-strike{to{stroke-dashoffset:0}}

/* 6. radius: number roll + one thin ring */
.dl-num{display:inline-grid;overflow:hidden;height:1.25em;line-height:1.25em;vertical-align:bottom}
.dl-num>span{grid-area:1/1;transition:transform var(--dl-roll) var(--dl-ease),opacity var(--dl-roll) var(--dl-ease)}
.dl-num.up .n{transform:translateY(100%);opacity:0}.dl-num.down .n{transform:translateY(-100%);opacity:0}
.dl-num.go .n{transform:none;opacity:1}.dl-num.up.go .o{transform:translateY(-100%);opacity:0}.dl-num.down.go .o{transform:translateY(100%);opacity:0}
.feed-town,.u-pill,.discover-radius{position:relative}
.dl-ring{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:1.5px solid var(--u-ink,currentColor);opacity:.5;pointer-events:none;transform:scale(.3);animation:dl-ring 400ms var(--dl-ease) forwards}
@keyframes dl-ring{to{transform:scale(4.2);opacity:0}}

/* 7. long-press to copy: a fill grows while you hold (400 ms), then a check */
.dl-press{position:relative;overflow:hidden;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.dl-press:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--u-ink,#000) 9%,transparent);transform:scaleX(0);transform-origin:left;pointer-events:none}
.dl-press.dl-holding:before{transform:scaleX(1);transition:transform 400ms linear}
.dl-press.dl-copied:before{transform:scaleX(1);transition:opacity 300ms var(--dl-ease)}
.dl-press b .dl-ck{width:16px;height:16px;vertical-align:-3px;margin-right:6px}

/* 9. confirm: the icon morphs into a check (180 ms) */
.dl-ck{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dl-ck path{stroke-dasharray:22;stroke-dashoffset:22;animation:dl-draw 180ms var(--dl-ease) forwards}
@keyframes dl-draw{to{stroke-dashoffset:0}}
[data-act=share],[data-ev=share]{position:relative}
.dl-okk{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0}
.dl-okk .dl-ck{width:20px;height:20px}
[data-act=share]>svg,[data-ev=share]>svg{transition:transform var(--dl-roll) var(--dl-ease),opacity var(--dl-roll) var(--dl-ease)}
.dl-ok>svg{transform:scale(.4);opacity:0}
.dl-ok>.dl-okk{opacity:1}
.dl-ok:not(:has(>svg))>.dl-okk{display:none}
.dl-fk{display:inline-grid;margin-right:6px}.dl-fk .dl-ck{width:15px;height:15px}

/* 10. logo long-press wiggle (≈300 ms) and the theme reveal (400 ms) */
.dl-logo{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:transform 120ms var(--dl-ease)}
.dl-logo img{-webkit-user-drag:none;pointer-events:none}
.dl-logo.dl-dip{transform:scale(.94)}
.dl-logo.dl-wig{animation:dl-wig 300ms var(--dl-ease)}
.dl-logo.dl-pulse{opacity:.6}
@keyframes dl-wig{0%{transform:scale(.94) rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}85%{transform:rotate(-3deg)}100%{transform:none}}
html.dl-vt::view-transition-old(root){animation:none}
html.dl-vt::view-transition-new(root){animation:dl-reveal 400ms var(--dl-ease)}
@keyframes dl-reveal{from{clip-path:circle(0 at var(--dl-x) var(--dl-y))}to{clip-path:circle(var(--dl-r,150vmax) at var(--dl-x) var(--dl-y))}}

@media (prefers-reduced-motion:reduce){
  .dl-f,.dl-num>span,.dl-x,.dl-chev,.dl-logo,[data-act=share]>svg,[data-ev=share]>svg,.dl-press:before{transition:none!important}
  .dl-ring{display:none}.dl-stamp .strike,.dl-ck path,.dl-logo.dl-wig{animation:none!important;stroke-dashoffset:0}
  html.dl-vt::view-transition-new(root){animation:none}
}

