.arrival{opacity:.01;transform:translateY(20px);transition:opacity .65s ease var(--arrival-delay,0ms),transform .75s cubic-bezier(.22,1,.36,1) var(--arrival-delay,0ms)}
.arrival.has-arrived,.arrival:focus-within{opacity:1;transform:none}
.place-ribbon{display:flex;align-items:center;gap:10px;border-block:1px solid #b7c6af70;background:#e9eddf;margin:8px 0 0;padding:15px clamp(18px,4vw,60px);overflow:hidden;color:#3e6252}
.ribbon-window{overflow:hidden;flex:1;min-width:0;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ribbon-track{display:flex;width:max-content;animation:ribbon-drift 40s linear infinite;animation-play-state:paused}
.ribbon-copy{display:flex;align-items:center;gap:48px;padding-right:48px;flex-shrink:0;min-width:70vw;justify-content:space-around}
.ribbon-copy span{font:400 clamp(20px,2vw,28px)/1.6 var(--serif);white-space:nowrap}.ribbon-copy i{font-style:normal;color:#9a8052;font-size:14px}
.ribbon-toggle{flex-shrink:0;border:1px solid #758d7060;width:36px;height:36px;border-radius:50%;color:#315547;background:transparent;cursor:pointer}
.ribbon-visible .ribbon-track{animation-play-state:running}.place-ribbon:hover .ribbon-track,.place-ribbon:focus-within .ribbon-track,.motion-paused .ribbon-track,.motion-background .ribbon-track{animation-play-state:paused}
@keyframes ribbon-drift{to{transform:translateX(-50%)}}
.btn,.nav-book,.nav-utility,.bill-type,.date-mode button,.calendar-grid button,.sample-example{transition:transform .18s cubic-bezier(.22,1,.36,1),box-shadow .2s,background .2s}
.btn:active,.nav-book:active,.nav-utility:active,.bill-type:active,.date-mode button:active,.calendar-grid button:active,.sample-example:active{transform:scale(.975)}
dialog[open]{animation:dialog-arrive .24s cubic-bezier(.22,1,.36,1)}
dialog[open]::backdrop{animation:backdrop-arrive .2s ease}
@keyframes dialog-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(hover:hover){.local-frame img{transition:transform .8s cubic-bezier(.22,1,.36,1)}.local-frame:hover img{transform:scale(1.035)}.btn:hover{box-shadow:0 5px 15px #173f3519}}
@media(max-width:760px){.place-ribbon{padding-block:10px}.ribbon-copy{gap:28px;padding-right:28px}.ribbon-copy span{font-size:20px}.arrival{transform:translateY(14px)}}
@media(prefers-reduced-motion:reduce){.arrival{opacity:1;transform:none;transition:none}.ribbon-track{animation:none}.ribbon-copy[aria-hidden]{display:none}.ribbon-copy{min-width:0;flex-wrap:wrap;justify-content:center;gap:10px 18px;padding:0}.ribbon-window{mask-image:none}.ribbon-track{width:auto}.ribbon-toggle{display:none}dialog[open],dialog[open]::backdrop{animation:none}.btn,.nav-book,.nav-utility,.bill-type,.date-mode button,.calendar-grid button,.sample-example{transition:none;transform:none}}
@media print{.arrival{opacity:1;transform:none}.place-ribbon{display:none}}
