/* Matched to the owner's supplied layouts and original PNG components. */
:root{--ink:#594c35;--chocolate:#59452e;--muted:#a59b7e;--paper:#fffdf3;--rose:#bc8195;--leaf:#91a65e;--leaf-light:#e8edc9;--stitch:#e5ddc1}
html{background:#f3f3e6;width:100%;height:100%;overflow:hidden;scrollbar-width:none}
body.hanbi-mobile{width:100%;height:100dvh;overflow:hidden;background:#fbf9ef;line-height:1.45;color:var(--ink)}
body.hanbi-mobile *{scrollbar-width:none!important}
body.hanbi-mobile ::-webkit-scrollbar,html::-webkit-scrollbar{display:none;width:0;height:0}
.desktop-scene{padding:0;max-width:480px;height:100dvh!important;min-height:0;isolation:isolate;background:transparent;overflow:hidden;box-shadow:none}
.page-scroll{position:absolute;inset:132px 0 0;overflow:hidden auto;overscroll-behavior:contain;padding-bottom:100px;scrollbar-width:none;touch-action:pan-y}
body[data-view=map]{height:100dvh;overflow:hidden}
body[data-view=map] .desktop-scene{height:100dvh!important;min-height:100dvh;padding:0;isolation:isolate}
body[data-view=calendar]{background:#fff5f7 url('assets/handmade/calendar-background.png') center top/100% auto repeat-y}
body[data-view=other]{background:#e8efb6 url('assets/handmade/other-background.png') center top/100% auto repeat-y}
#mobile-masthead{position:fixed;left:50%;top:0;transform:translateX(-50%);width:calc(min(100vw,480px) - 16px);z-index:35;isolation:isolate;height:132px;padding:0;margin:0;pointer-events:none}
#mobile-masthead:before{display:none}
#mobile-masthead button,#mobile-masthead .languages{pointer-events:auto}
.handmade-brand{position:absolute;left:0;top:34px;width:59%;height:auto;z-index:2;padding:0;filter:drop-shadow(0 1px 0 #fff8)}
.handmade-brand img{display:block;width:100%;height:auto}
.handmade-corner{position:absolute;right:-8px;top:0;width:84px;height:67px;background:url('assets/handmade/corner.png') right top/contain no-repeat;z-index:-1;pointer-events:none}
.handmade-header-bubble{position:absolute;right:1px;top:46px;width:39%;height:34px;overflow:visible;border:1px solid #d9d5b2;border-radius:18px;background:var(--paper-texture),#fffdf4;box-shadow:0 1px 3px #7d89531a,inset 0 0 0 2px #fffdf2;pointer-events:auto}
.bubble-legacy{display:none!important}
.bubble-viewport{position:absolute;inset:3px 15px 3px 7px;overflow:hidden;border-radius:12px}
.bubble-slide{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:11px 14px;align-content:center;gap:0;width:100%;min-width:0;text-align:left;color:#867953;border-radius:0}
.bubble-slide[data-kind=player]{display:flex;align-items:center;justify-content:center;width:calc(100% - 22px);gap:0;padding-left:0}
.bubble-caption{display:flex;align-items:center;justify-content:center;gap:3px;max-width:100%;font-size:7px;line-height:11px;color:#9b9572;white-space:nowrap;overflow:hidden}
.bubble-slide[data-kind=player] .bubble-caption{display:none}
.bubble-slide[data-kind=player] .bubble-caption>span{display:none}
.bubble-caption>span{overflow:hidden;text-overflow:ellipsis}
.bubble-caption svg{width:11px;height:11px;fill:none;stroke:#a5b875;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.bubble-value{display:flex;align-items:center;justify-content:center;gap:5px;max-width:100%;min-width:0;height:14px;line-height:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.bubble-value>strong{font-size:9px;line-height:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;color:#8d7c56}
.bubble-value>.bubble-day{display:flex;align-items:center;height:20px;font-size:10px;line-height:20px;font-weight:600;letter-spacing:-.2px;overflow:visible;flex-shrink:0;color:#806342}
.bubble-time{display:flex;align-items:center;gap:2px;height:20px;font-size:10px;line-height:20px;font-weight:550;color:#806e50;font-variant-numeric:tabular-nums}.bubble-time small{font-size:6px;line-height:20px;margin:0}
.handmade-header-bubble #music-play{position:absolute;right:13px;top:6px;display:grid;place-items:center;height:20px;width:20px;min-width:20px;border:1px solid #edc9d8;border-radius:50%;background:linear-gradient(#fbe6ed,#efc1d3);color:#967148;font-size:10px;box-shadow:inset 0 1px 0 #fff9}
.bubble-pages{position:absolute;top:50%;bottom:auto;left:auto;right:3px;transform:translateY(-50%);display:flex;flex-direction:column;width:8px;height:auto;gap:1px}
.bubble-pages button{display:grid;place-items:center;width:8px;height:4px;min-width:0;min-height:0;flex:0 0 4px;line-height:0;padding:0;border-radius:3px;box-sizing:border-box}
.bubble-pages span{width:3px;height:3px;border-radius:50%;background:#d8d1b5;transition:background-color .15s}.bubble-pages button[aria-pressed=true] span{background:#99aa70}
#mobile-masthead>.languages,.non-map #mobile-masthead>.languages{position:absolute;right:2px;top:100px;border:1px solid #eee8cf;border-radius:12px;background:#fffdf2f2;padding:2px;gap:0;box-shadow:inset 0 0 0 1px #fff;z-index:3}
#mobile-masthead>.languages button{font-size:9px;padding:4px 7px;min-height:25px;border-radius:9px;color:#9a997e}
#mobile-masthead>.languages button.active{background:#e7edcb;color:#869a51;font-weight:650}
.floating-nav{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 29px;align-items:center;width:calc(100% - 120px);max-width:306px;height:44px;bottom:max(14px,env(safe-area-inset-bottom));padding:5px 6px;display:grid;gap:5px;border-radius:17px;border:1px solid #b8c78e;z-index:80;box-shadow:0 4px 12px #75805229,inset 0 0 0 1px #e7edcd}
.floating-nav:before{inset:2px;border-radius:17px}
.floating-nav:after{content:'';position:absolute;inset:4px;z-index:-1;border-radius:14px;background:#fffdf2;pointer-events:none}
.floating-nav nav{flex:1;min-width:0;gap:0;padding:1px;background:none;border-radius:15px}
.floating-nav nav button{font-size:8px;line-height:11px;min-height:34px;border-radius:12px;gap:1px;white-space:nowrap;color:#a29c80}
.floating-nav nav button.active{background:linear-gradient(#ecf0d9,#e0e8ba);color:#8a9e58;box-shadow:inset 0 1px 2px #b9c89433}
.floating-nav nav button.active[data-view=calendar]{background:linear-gradient(#fff4cf,#f6e6ab);color:#ad9453;box-shadow:inset 0 1px 2px #decb882b}
.floating-nav nav button.active[data-view=other]{background:linear-gradient(#fbe7ee,#f1ccdc);color:#b77d96;box-shadow:inset 0 1px 2px #dfadc32b}
.floating-nav .ui-icon{width:16px;height:16px;stroke-width:1.6}
.floating-nav #search-toggle{position:static;min-width:0;min-height:0;padding:0;flex:0 0 29px;width:29px;height:29px;align-self:center;justify-self:center;margin:0;border-radius:10px;color:#948368;background:#fffdf3;border:1px solid #e8e1ca;box-shadow:inset 0 1px 1px #fff;z-index:2}
.floating-nav #search-toggle svg{width:17px;height:17px}
#map-postcard{position:fixed;inset:0;z-index:-1;width:100%;max-width:480px;margin:0 auto;padding:0;border:0;border-radius:0;background:#edf0dd;box-shadow:none}
#map-postcard:before,.postcard-heading,.postcard-footer{display:none}
.map-stage{position:absolute;inset:0;height:100%;border:0;border-radius:0;overflow:hidden}
.map-canvas{border-radius:0;background:#eef0e1}
.map-world{width:210%;height:105%;left:-55%;top:-5%}
.map-drawing{opacity:1;filter:sepia(.13) saturate(.75);background:#f5f2e8}
.map-drawing text{font-size:12px;fill:#7b886d}
.map-wash{border-radius:22px;box-shadow:inset 0 0 22px 8px #fffdf3b0}
.hanbi-mobile .map-stage .pin{width:28px;height:35px;filter:drop-shadow(0 2px 2px #72784c25);transform-origin:50% 100%;transition:scale 260ms cubic-bezier(.2,.8,.2,1),filter 260ms ease-out}
.hanbi-mobile .map-stage .pin.active{width:28px;height:35px;scale:1.1;filter:drop-shadow(0 0 3px var(--marker-glow,#b4c18c)) drop-shadow(0 0 7px color-mix(in srgb,var(--marker-glow,#b4c18c) 55%,transparent));z-index:15}
@media(prefers-reduced-motion:reduce){.hanbi-mobile .map-stage .pin{transition:none}}
.region-pin .region-dot{width:28px;height:35px;transform:none;border:0;border-radius:0;background:none;box-shadow:none}
.region-dot:before{display:none}.region-dot .heart-map-marker{display:block;width:100%;height:100%;overflow:visible}
.region-dot b{top:-3px;right:-6px;min-width:15px;height:15px;transform:none;background:#fffdf2;color:#8c9d60;border:1px solid #ccd7ad;box-shadow:0 1px 2px #8d9c651a;font-size:8px}
.region-pin small{background:#fffdf3c9;color:#71844e;font-size:9px}
.overview-shell{position:fixed;inset:auto auto 0 50%!important;transform:translateX(-50%);width:calc(100% - 68px)!important;max-width:398px;height:54dvh!important;min-height:270px;margin:0;padding:5px 5px 0;border-radius:24px 24px 0 0;border:1px solid #b6c98e;background:radial-gradient(circle,#fff9 1px,transparent 1.6px) 0 0/8px 8px,#c6d69e;box-shadow:0 -3px 16px #72844c1f;z-index:30}
.overview-shell:before{content:'';position:absolute;inset:3px 3px 0;border:1px dashed #f5f7df;border-radius:21px 21px 0 0;pointer-events:none}
.list-panel{height:100%;display:flex;flex-direction:column;padding:12px 8px 0;border-radius:19px 19px 0 0;overflow:hidden;border-color:#e4dec5;background:var(--paper-texture),#fffdf3}
.list-panel:before{inset:4px 4px 0;border-radius:16px 16px 0 0;z-index:1}
.panel-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;min-height:29px;padding:0 26px 5px 4px;flex-shrink:0;align-items:center}
#list-heading{font-size:14px;font-weight:650;letter-spacing:-.5px}
.stats{font-size:8px;gap:6px;justify-content:flex-end;align-items:center;color:#9d9b87;margin:0 5px 0 0;line-height:18px;min-height:18px}
.stats>span{display:flex;align-items:center;gap:3px}.stats>span+span{display:none}.stats>.overview-live{display:flex!important;font-size:7px;gap:4px}
.overview-live i,.agenda-live i{width:4px;height:4px;border-radius:50%;background:#85ad58;display:inline-block}
#hide-list{display:grid;place-items:center;height:19px;width:19px;min-width:19px;top:2px;right:3px;line-height:16px;font-size:14px;color:#c0a55e;background:#fff8de;border-color:#eee2b6}
#hide-list .ui-icon{width:11px;height:11px}
#hide-list[data-awaiting-double]{background:#fff0b3;box-shadow:0 0 0 2px #ead69a66}
.overview-shell.is-expanded{height:calc(100dvh - 150px)!important}
#overview-tip{position:fixed;z-index:95;width:205px;max-width:calc(100vw - 20px);padding:8px 10px;border:1px solid #e5d7ab;border-radius:12px;background:#fffdf2;box-shadow:0 3px 12px #95855320;font-size:9px;line-height:16px;color:#9b8655;pointer-events:none}
#overview-tip:after{content:'';position:absolute;right:12px;bottom:-5px;width:8px;height:8px;transform:rotate(45deg);background:#fffdf2;border-right:1px solid #e5d7ab;border-bottom:1px solid #e5d7ab}
.overview-tabs{margin:3px 2px 8px;padding:2px;min-height:33px;flex-shrink:0}
.overview-tabs>button{height:28px;min-height:28px;font-size:11px;border-radius:14px;color:#a19b80}
.overview-tabs>button.active{background:linear-gradient(#f9e5ec,#f1cedd);color:#ad738b;border-color:#e6c3d0;box-shadow:inset 0 1px 1px #fff9}
#journey-counter{width:15px;height:15px;min-width:15px;font-size:9px;margin-left:5px}
.timeline-heading{padding:0 7px 0 4px;min-height:25px;font-size:9px;flex-shrink:0;align-items:center}.timeline-heading>div{display:grid;grid-template-columns:20px 76px 20px;gap:3px;align-items:center}.timeline-heading b{display:flex;align-items:center;justify-content:center;height:24px;line-height:24px;white-space:nowrap;font-size:11px;letter-spacing:0;font-variant-numeric:tabular-nums;color:#9d8b69}.timeline-heading button{display:flex;align-items:center;justify-content:center;width:20px;height:24px;line-height:24px;padding:0;font-size:18px}
.timeline-ruler{flex-shrink:0;margin:1px 2px 3px;gap:0;padding-bottom:3px;min-height:24px;align-items:center}
.timeline-ruler button{height:20px;min-width:16px;flex-basis:calc((100% - 3px)/17);line-height:20px;font-size:9px;aspect-ratio:1;max-width:22px}
.timeline-ruler .today{box-shadow:none;outline:1px solid #bfd18e;outline-offset:-1px}.timeline-ruler .picked:not(.date-all){background:#f8e5a3;color:#957a43;box-shadow:inset 0 0 0 1px #e9cf81}.timeline-ruler .birthday-date{background:#f2c2d5;color:#a96a88}.timeline-ruler .birthday-date.picked{background:#f2c2d5;box-shadow:inset 0 0 0 2px #ecd185}
#project-list{flex:1;min-height:0;overflow:auto;padding:0 1px 95px;scrollbar-width:none;overscroll-behavior:contain}
.region-heading{font-size:14px;margin:8px 2px 10px;gap:5px;color:#7b7950}.region-heading:before{display:none}.region-heading small{font-size:9px;color:#a49f82}.handmade-clover{height:20px;width:19px;object-fit:contain;display:inline-block;flex-shrink:0}
.project-row.compact-project{gap:8px;padding:7px 6px;margin-bottom:10px;border:1px solid #eae6d0;border-radius:13px;min-height:83px;background:#fffdf7c9;box-shadow:0 1px 3px #ab95660a}
.project-row.compact-project.selected{border-color:#e5afc3;box-shadow:inset 0 0 0 1px #f3dce5;background:#fffaf4}
.compact-project .thumb{width:45px;height:63px;border-width:2px;border-radius:6px}
.compact-heading{display:grid;grid-template-columns:minmax(0,1fr) 64px auto;gap:4px;min-width:0;align-items:center}
.compact-heading .row-title{grid-column:1;grid-row:1;font-size:11px;line-height:16px;font-weight:650;display:block;min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;letter-spacing:-.25px}
.row-title-text{display:inline-block;white-space:nowrap;vertical-align:top}.row-title.title-overflow{mask-image:linear-gradient(90deg,#000 calc(100% - 4px),transparent)}
.compact-date{grid-column:2;grid-row:1;justify-self:stretch;text-align:right;padding-right:6px;font-size:8px;white-space:nowrap;color:#a69a7d;line-height:16px}
.compact-heading>.status{grid-column:3;grid-row:1;margin:0;padding:1px 4px;font-size:7px;line-height:14px;align-self:center}
.status{background:#eeede6;color:#a8a390}.status.live{background:#e8efc9;color:#8b9d58}.status.upcoming{background:#ecece6;color:#a39f90}
.duration-track{margin:8px 0 9px;height:3px;overflow:visible;background:#edf0d9}.duration-fill{background:#b6d46f}
.duration-today{position:absolute;top:50%;transform:translate(-50%,-50%);width:5px;height:5px;border-radius:50%;background:#91a765;box-shadow:0 0 0 1px #fffdf3}
.compact-footer{gap:4px}.compact-type{font-size:8px;gap:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#a9a68d}.compact-type .ui-icon{height:9px;width:9px}
.compact-project .row-actions{display:grid;grid-template-columns:repeat(2,56px);gap:7px;align-items:center}
.compact-project .row-actions button{display:flex;align-items:center;justify-content:center;width:56px;height:23px;min-height:23px;min-width:0;padding:0 3px;border:1px solid #edd0dc;border-radius:9px;font-size:8px!important;line-height:21px;background:#f7e4eb;color:#b57d94}
.row-actions button[data-todo]{background:#fff3c8;border-color:#eadca4;color:#aa9257}.row-actions button.saved{background:#f2f5e4;border-color:#d4dfa9;color:#9aaa6c}
.map-tools,.non-map .map-tools{position:fixed;z-index:50;inset:auto max(3px,calc((100vw - 480px)/2 + 3px)) 88px auto;width:23px;height:auto;pointer-events:none}
.tool-buttons,.non-map .tool-buttons{position:relative;inset:auto;display:flex;flex-direction:column;gap:1px;padding:4px 1px;border-radius:15px;border:1px solid #e7dfc1;background:#fffdf2f5;box-shadow:0 2px 5px #8b7b4d17;pointer-events:auto}
.tool-buttons button,.non-map .tool-buttons button{width:20px;height:26px;min-height:26px;font-size:16px;color:#9f997c;border-radius:12px}
.tool-buttons button svg{width:13px;height:13px}
.tool-buttons button[aria-pressed=true]{background:#f5dfe8;color:#b57e95}
.non-map .tool-buttons.non-map button:not(#admin-open):not(#refresh){display:none}
.overview-restore{position:fixed;z-index:35;bottom:92px;left:50%;transform:translateX(-50%);font-size:11px;margin:0;background:#fffdf2;box-shadow:0 2px 9px #77774d22}
.desktop-scene.focus-mode .map-stage{height:100%}.poster-carousel,#gallery-show{display:none!important}
.gallery-swapped{display:none!important}
#poster-carousel.handmade-poster-card{position:fixed;left:50%;bottom:109px;transform:translateX(-50%);width:calc(100% - 58px);max-width:410px;height:153px;min-height:0;margin:0;padding:31px 23px 0;border:0;border-radius:0;background:none;box-shadow:none;z-index:31}
body[data-view=map] #poster-carousel.inline-gallery{display:block!important}
.handmade-poster-card:before{display:none}
.handmade-poster-card .carousel-caption{top:0;width:auto;max-width:calc(100% - 30px);height:28px;transform:translateX(-50%);justify-content:center;gap:7px;padding:3px 9px;background:#fffef7f5;border:1px solid #fff;border-radius:20px;box-shadow:0 2px 7px #8196a226;font-size:10px}
.handmade-poster-card #carousel-title{min-width:0;overflow:hidden;text-overflow:ellipsis}.handmade-poster-card .carousel-caption button{flex-shrink:0}
.handmade-poster-card .poster-fan{position:relative;width:100%;height:122px;display:block;touch-action:pan-y;overflow:visible;border-radius:0;background:none}
.handmade-poster-card .fan-poster{position:absolute;left:50%;top:50%;width:23%;height:101px;margin:0;display:block;border:3px solid #fff;box-shadow:0 3px 8px #54708733;transform-origin:center;opacity:0;border-radius:5px}
.handmade-poster-card .carousel-arrow{z-index:6;top:83px;width:27px;height:27px;background:#fffffff2;border:1px solid #fff;box-shadow:0 2px 8px #839baa25;color:#61757c}.handmade-poster-card .carousel-arrow.prev{left:-2px}.handmade-poster-card .carousel-arrow.next{right:-2px}
/* Calendar is drawn directly on the pink page; the agenda is a separate cream sheet. */
.independent-page{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.independent-page:before{display:none}.view-heading{padding:0;margin:0;gap:0;display:block}
.view-heading .mini-label,.page-decoration{display:none!important}
#calendar-view>.view-heading{padding:0 16px 5px}
.calendar-title-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:29px;margin-top:12px}
#calendar-view .calendar-title-line>p{min-width:0;margin:0;font-size:8px;line-height:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.view-heading h2{font-size:21px;line-height:1.3;color:#79613d;letter-spacing:-.6px;font-weight:600;margin:0}
.view-heading p{font-size:10px;line-height:1.65;color:#b1a282;margin:8px 0 0}
.calendar-controls{display:flex;align-items:center;justify-content:center;gap:2px;width:auto;height:27px;margin:0;flex:0 0 auto;min-width:0}
.calendar-controls strong{font-size:10px;color:#9a8967;font-weight:550;white-space:nowrap}
.calendar-controls .icon-button{height:27px;min-width:17px;width:17px;font-size:18px}
.calendar-controls .soft{padding:3px 5px;font-size:8px;min-height:25px;border-radius:8px;white-space:nowrap}.calendar-controls .soft.pink{background:#f7e1e9;color:#ba8ca3}
.calendar-grid{margin:0 13px 16px;gap:0;grid-template-columns:repeat(7,minmax(0,1fr));min-height:217px}
.calendar-grid .week{padding:8px 0 10px;text-align:center;line-height:16px;color:#7f8b67;font-size:10px;font-family:Georgia,Hanbi,serif;font-weight:650;border-bottom:1px solid #bca69122}
.calendar-grid .day{padding:0;display:grid;place-items:center;position:relative;height:34px;min-height:34px;border:0;border-radius:0;box-shadow:none;background:none}
.calendar-grid .day b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-family:Georgia,Hanbi,serif;font-size:13px;font-weight:550;color:#7e8766;line-height:27px;position:relative;z-index:1}
.calendar-grid .day.birthday b{color:#bd7f94;box-shadow:inset 0 0 0 1.5px #de9bb4;background:#f8e0e6aa}
.calendar-grid .day.calendar-today b{box-shadow:inset 0 0 0 1.5px #a8bf76;background:#e8eecf66}
.calendar-grid .day.selected b{background:#f4d6c5;color:#8c7658}.calendar-grid .day.selected.birthday b{background:#f4d4e1}
.birthday-flower{position:absolute;left:calc(50% - 22px);top:0;font-size:21px;color:#d5ad77;line-height:22px;transform:rotate(-12deg)}
.calendar-agenda{position:relative;padding:34px 21px 22px;margin:8px 0 0;min-height:350px;border:1px solid #e6e5d6;border-radius:29px 29px 0 0;background:#fffdf3}
.calendar-layout{position:static}
.agenda-heading{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 9px 23px;color:#a99b7a}
.agenda-heading h3{font-size:10px!important;font-weight:500;margin:0;line-height:18px}
.agenda-live{font-size:9px;display:flex;align-items:center;gap:5px;color:#999780;white-space:nowrap}
.agenda-heart{position:absolute;left:50%;top:-51px;transform:translateX(-50%);width:41px;height:41px;padding:8px 5px;display:grid;place-items:center;border-radius:50%;background:#fffdf3;box-shadow:0 2px 3px #8d8b6f25;border:1px solid #f5f0e3}
.agenda-heart img{display:block;width:31px;height:25px;object-fit:contain}
.agenda-heart{cursor:pointer}.agenda-heart[aria-expanded=true]{box-shadow:0 0 0 2px #f6e4aa,0 2px 3px #8d8b6f25}
body.agenda-expanded{overflow:hidden}
body.agenda-expanded #calendar-scroll{overflow:hidden}
body.agenda-expanded #calendar-view>.view-heading,body.agenda-expanded .calendar-grid{visibility:hidden}
.calendar-agenda.is-expanded{position:absolute;z-index:36;top:18px;bottom:auto;left:0;transform:none;width:100%;max-width:480px;height:calc(100dvh - 150px);margin:0;min-height:0}
.calendar-agenda.is-expanded>.agenda{max-height:calc(100dvh - 250px);overflow:auto;overscroll-behavior:contain;padding:2px 4px 70px;margin-inline:-4px;scrollbar-width:none}
.art-card-grid,.agenda.art-card-grid,.other-grid.art-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:23px;align-items:start;justify-items:center}
.art-card{width:100%;max-width:min(108px,22.6vw)}
.art-card{display:flex;flex-direction:column;align-items:stretch;gap:0;position:relative;aspect-ratio:1/1.48;padding:4px 4px 5px;margin:0;min-width:0;isolation:isolate;border:1px solid #e0e9bb;border-radius:11px;background:linear-gradient(130deg,#f4f7d2,#fffdf0);box-shadow:3px 4px 0 #f3ccd9,1px 0 0 2px #fff9;cursor:pointer;overflow:visible}
.art-card:before{content:'';position:absolute;inset:2px;border:1px dashed #e2ddbc;border-radius:8px;pointer-events:none;z-index:2}
.art-card:after{content:'';position:absolute;left:50%;top:1px;width:4px;height:4px;border-radius:50%;background:#c6af79;box-shadow:0 1px 2px #baa773;z-index:3}
.art-card-picture{position:relative;flex:1;min-height:0;height:auto;overflow:hidden;border:1px solid #efd1dc;border-radius:8px;background:#f5f0df}
.art-card-picture .thumb{width:100%;height:100%;border:0;border-radius:0;box-shadow:none}.art-card-picture .thumb img{object-fit:cover;object-position:top}
.art-card-badges{position:absolute;left:3px;right:3px;top:4px;display:flex;gap:2px;align-items:center;overflow:hidden;white-space:nowrap}
.art-card-badges .status{font-size:6px;line-height:11px;padding:0 4px;background:#fffdf2e8;color:#a29b87;border:1px solid #e6e8d1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.art-card-badges .status.live{background:#e2efc3ec;color:#8fa35c}
.art-type{font-size:6px;line-height:11px;color:#99a774;background:#f8fae8eb;border:1px solid #e3e8ce;padding:0 3px;border-radius:6px;overflow:hidden;text-overflow:ellipsis}
.art-card-caption{position:relative;z-index:1;flex-shrink:0;min-width:0;background:#fffdf4;border-radius:11px 11px 7px 7px;padding:5px 4px 3px;margin-top:-10px;min-height:0;box-shadow:0 -1px 0 #fffef5}
.art-card-caption h3{font-size:9px;font-weight:650;line-height:14px;margin:0;color:#6c6249;display:block;white-space:nowrap;overflow:hidden;min-height:14px;max-height:14px;letter-spacing:-.15px}
.art-card-caption h3.title-overflow{mask-image:linear-gradient(90deg,#000 calc(100% - 3px),transparent)}
.art-card-caption>p{font-size:7px;line-height:11px;color:#a29b83;margin:1px 0 3px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.art-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:3px}
.art-card-actions button{font-size:6.5px;line-height:13px;min-height:17px;min-width:0;padding:0 1px;border-radius:6px;background:#f8e3eb;color:#b6849b;border:1px solid #f1d9e2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.art-card-actions button[data-todo]{background:#fff3cc;border-color:#eadca4;color:#ad9659}.art-card-actions button.saved{background:#f0f5df;border-color:#dce6b5;color:#98aa68}
.art-card-grid>.empty{grid-column:1/-1}
/* The other page uses the owner's green pattern and a file-tab shaped cream sheet. */
#other-view{position:relative;isolation:isolate;margin:2px 17px 0;padding:10px 14px 35px;min-height:calc(100dvh - 134px);border:0;border-radius:0;background:none}
#other-view:before{display:none}
.folder-surface{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.folder-outline{fill:#fffdf3;stroke:#d1dcb0;stroke-width:1.5;vector-effect:non-scaling-stroke}.folder-stitch{fill:none;stroke:#ddd5b5;stroke-width:1;stroke-dasharray:2.5 3;vector-effect:non-scaling-stroke}
#other-view>.view-heading{position:relative;margin:0 0 15px;z-index:1}
.folder-title{display:flex;align-items:center;width:max-content;max-width:calc(100% - 24px);padding:0 0 2px;min-height:28px;background:none;border-radius:18px 18px 0 0}
.folder-title h2{font-size:20px}.folder-subline{display:flex;align-items:center;gap:8px;margin-top:6px}.folder-subline .page-count{font-size:8px;line-height:15px;color:#a99d7d;white-space:nowrap;flex-shrink:0;margin-left:auto}
#other-view .view-heading p{flex:1;min-width:0;font-size:8px;line-height:15px;margin:0;padding:0;background:none}
.category-tabs{position:relative;display:flex;padding:3px;gap:2px;margin:0 7px 10px;border:1px solid #f1dce4;border-radius:22px;background:#fff0f5;box-shadow:inset 0 1px 1px #fff}
.category-tabs button{min-height:29px;flex:1;padding:4px 1px;color:#b88c9e;font-size:10px;font-weight:500;border-radius:18px;white-space:nowrap}
.category-tabs button.active{background:linear-gradient(#f9dfe8,#f1cad8);border:1px solid #edbdce;color:#a96a85;box-shadow:inset 0 1px 0 #fff9}
.type-tabs{position:relative;display:flex;gap:2px;align-items:center;flex-wrap:wrap;justify-content:center;margin:0 4px 16px;padding:6px 0;border-top:1px dashed #e7e0c4}
.type-tabs button{padding:3px 4px;font-size:8px;color:#a1957a;border-radius:7px;min-height:22px}.type-tabs button.active{color:#8b9a59;background:#eef3d9}
.other-group{margin:0 7px 22px}.other-group .region-heading{margin:0 0 19px;font-size:17px;font-weight:600;color:#7d7852}.other-group .region-heading .handmade-clover{height:22px;width:21px}.other-group .region-heading small{font-size:9px;color:#a89f7f}
.other-grid.art-card-grid{gap:23px 16px}
/* Ticket: compact header and five actions in one row, as annotated. */
.ticket-card{left:12px;bottom:calc(50dvh - 124px);width:calc(100% - 24px);max-width:456px;max-height:74dvh;overflow:visible;border-width:4px;border-radius:17px;padding:22px 12px 0;background:var(--paper-texture),#fffdf3;color:#827254;box-shadow:0 9px 30px #524b3133}
.ticket-heading{top:5px;right:12px}.ticket-heading #close-ticket{display:grid;place-items:center;height:14px;min-height:14px;min-width:14px;width:14px;padding:0;font-size:14px;line-height:14px;color:#a59b7c}
.ticket-card:before{left:15px;top:-10px;width:71px;height:17px}
.ticket-main{grid-template-columns:88px minmax(0,1fr);grid-template-rows:21px auto;gap:10px 11px;max-height:55dvh;padding-bottom:17px;align-items:start;overflow:visible}
.ticket-title-row .ticket-meta{order:0;display:block;font-size:7px;line-height:14px;color:#aba181;white-space:nowrap;flex:0 0 auto;margin:0;max-width:40%;overflow:hidden;text-overflow:ellipsis}
.ticket-main>.ticket-title-row{display:flex;grid-column:2;grid-row:1;padding:0;gap:7px;min-width:0;min-height:21px;height:21px;align-items:center}
.ticket-title-row h2{flex:1;min-width:0;font-size:14px;font-weight:650;line-height:21px;height:21px;letter-spacing:-.3px;color:#6a5337;margin:0;white-space:nowrap;overflow:hidden}
[data-ticket-scroll]{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:clip}[data-ticket-scroll].title-overflow{mask-image:linear-gradient(90deg,#000 calc(100% - 4px),transparent)}
.ticket-main>.ticket-image-preview{position:relative;grid-column:1;grid-row:1/3;width:100%;height:140px;min-height:140px;max-height:140px;align-self:start;border-width:2px;border-radius:4px}
.ticket-poster-status{position:absolute;top:4px;left:4px;max-width:calc(100% - 8px)}.ticket-poster-status .status{display:block;font-size:7px;line-height:13px;padding:0 5px;overflow:hidden;text-overflow:ellipsis}
.ticket-main>.ticket-info{grid-column:2;grid-row:2;min-width:0}
.ticket-source{display:grid;place-items:center;width:15px;height:15px;color:#ae987b}.ticket-source .ui-icon{width:12px;height:12px}
.ticket-fields{margin:0;gap:10px 12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ticket-fields>div{min-width:0}.ticket-fields dt{font-size:9px;line-height:13px;color:#b1a587;margin:0 0 4px}.ticket-fields dd{font-size:10px;color:#8c7a5b;line-height:16px;min-height:16px;margin:0;max-height:32px;overflow:auto;overflow-wrap:anywhere}.ticket-fields dd[data-ticket-scroll]{height:16px;max-height:16px;overflow:hidden;white-space:nowrap}
.ticket-info .playback-info{font-size:9px;line-height:16px;margin-top:9px;padding:2px 6px;background:linear-gradient(90deg,#e9efd1,#eff2df33);border:0;border-radius:5px;color:#a09d7b}
.ticket-stub{padding:10px 0 12px;border-top:1px dashed #dcd0b1}.ticket-stub:before{left:-21px}.ticket-stub:after{right:-21px}
.ticket-stub-actions{display:flex;align-items:stretch;gap:5px}
.ticket-stub-actions .soft,.ticket-stub-actions .soft[data-todo],.ticket-stub-actions .soft[data-done]{display:flex;flex:1;gap:3px;min-width:0;min-height:32px;padding:5px 4px;font-size:8px;line-height:15px;border-radius:9px;font-weight:500;white-space:nowrap}
.ticket-stub-actions .soft[data-todo],.ticket-stub-actions .soft[data-done]{flex:1.2;background:linear-gradient(#f7dfe9,#f0c4d8);color:#b67b96;border-color:#e5bace}
.ticket-stub-actions .ui-icon{width:12px;height:12px;stroke-width:1.8}
.ticket-stub-actions .soft[data-remind]{flex:0 0 27px;min-width:27px;width:27px;padding:4px;color:#b48da2;font-size:0;background:#fffdf2}.ticket-stub-actions .soft[data-remind] .ui-icon{width:16px;height:16px}
.mobile-veil{z-index:45;backdrop-filter:none;background:#49462c14}.has-ticket .floating-nav{z-index:40}
dialog:not(.opening-screen)::backdrop{backdrop-filter:none;background:#6f70532b}
body:has(#detail-dialog[open]) .mobile-veil{opacity:0;visibility:hidden;transition:none;pointer-events:none}
.ticket-heading #close-ticket,.detail-dialog .close-detail,.feature-dialog #feature-close{position:relative}
.ticket-heading #close-ticket:after,.detail-dialog .close-detail:after,.feature-dialog #feature-close:after{content:'';position:absolute;inset:-5px}
body[data-view=map] .mobile-veil{top:46dvh}
.ticket-stub-actions .soft[data-todo]:not(.saved){background:#fff2c6;color:#a99050;border-color:#e6d89e}.ticket-stub-actions .soft[data-todo].saved{background:linear-gradient(#f7dfe9,#f0c4d8);color:#b67b96;border-color:#e5bace}
/* Detail keeps the original scrollable poster and action handlers, with paired fields. */
.detail-dialog{max-height:calc(100dvh - 110px);width:calc(100% - 42px);max-width:438px;border:3px solid #d7e3b4;border-radius:17px;background:var(--paper-texture),#fffdf3;overflow:auto}
.detail-dialog .dialog-header{min-height:35px;height:35px;padding:4px 12px 3px;background:#fffdf3;align-items:center}.detail-dialog .dialog-header h2{font-size:13px;line-height:20px;transform:translateY(2px);color:#a3926e;font-weight:500;margin:0}.detail-dialog .close-detail{display:grid;place-items:center;width:17px;min-width:17px;height:17px;min-height:17px;padding:0;line-height:16px;border:0;border-radius:50%;background:#f5f2e5;box-shadow:none;font-size:16px;color:#a59676}
.detail-body{padding:11px 12px 18px;gap:13px}.detail-body .poster-scroll{height:29dvh;max-height:29dvh;border-radius:8px;background:#f4efe0;min-height:29dvh;overscroll-behavior:contain}.detail-body .poster-scroll img{width:100%;height:auto;display:block}
.poster-controls{font-size:9px;padding-top:7px}.poster-controls .soft{min-height:28px;font-size:10px;padding:4px 9px}
.detail-body .poster-scroll{position:relative}.poster-scroll[data-loading]:after{content:attr(data-loading);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;line-height:18px;color:#a59777;white-space:nowrap}.poster-scroll img{opacity:1;transition:opacity 160ms ease-out}.poster-scroll[data-loading] img{opacity:0}
.detail-info{display:grid;gap:12px;align-content:start}
.detail-status-line{display:flex;align-items:center;gap:10px;margin:0}.detail-status-line .status{font-size:9px;line-height:16px}.detail-status-line .source-link{font-size:10px;color:#bf8ba3}
.detail-info h3{font-size:18px;color:#78623e;margin:0!important;line-height:1.4}
.detail-info .playback-info{font-size:10px;line-height:17px;color:#9fa37c;background:linear-gradient(90deg,#e4edcb,#eff1da00);padding:3px 5px;margin:0;border-radius:0}
.detail-info dl.detail-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:0}.detail-fields>div{min-width:0}.detail-info .detail-fields dt{font-size:10px;line-height:15px;color:#b1a586;margin:0 0 5px}.detail-info .detail-fields dd{font-size:11px;line-height:1.6;margin:0;color:#8d7b5d;max-height:66px;overflow:auto;overflow-wrap:anywhere}
.detail-info .selected-buttons{margin:0;gap:6px}.detail-info .selected-buttons .soft{min-height:31px;padding:4px 9px;font-size:10px}
.detail-info dl:not(.detail-fields){margin:0}.detail-info dl:not(.detail-fields) dt{font-size:9px;margin:0;color:#afa384}
.detail-info .navigation-links{margin:0;gap:5px}.detail-info .navigation-links .soft{min-height:30px;font-size:10px;padding:4px 8px}
.navigation-panel{bottom:83px}.feature-dialog.bubble-detail{bottom:86px}.toast{bottom:81px;z-index:400}
#handmade-gallery-open{display:grid!important}
body.non-map #handmade-gallery-open{display:none!important}
#nav-search{z-index:120;inset:124px 22px auto;max-width:410px;max-height:calc(100dvh - 205px);padding:12px 13px;border-width:3px;border-radius:18px}
.search-dialog-heading{margin-bottom:8px}.search-dialog-heading b{font-size:13px}.search-dialog-heading button{width:23px;height:23px;font-size:21px}
.search{padding:3px 7px;border-radius:10px;gap:4px}.search>span{font-size:16px}.search input{min-height:27px;font-size:11px}.search button{width:21px;height:21px;font-size:18px}
.search-filter-grid{margin-top:10px;gap:9px 11px;grid-template-columns:repeat(2,minmax(0,1fr))}
.search-filter-grid label{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:9px;line-height:13px;color:#a29273}
.search-filter-grid input,.search-filter-grid select{height:30px;min-height:30px;flex-shrink:0;font-size:10px;padding:4px 6px}
.search-filter-footer{padding-top:10px}.search-filter-footer button{padding:5px 8px;font-size:9px}
.search-results{max-height:155px;margin:8px 0 0}.search-result{padding:7px 0;gap:8px}.search-result b{font-size:10px}.search-result small{font-size:8px}.search-result .thumb{width:31px;height:40px}
.search-advanced{margin-top:8px;border-bottom:1px dashed #e8dfc4;padding-bottom:4px}.search-advanced summary{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 0;cursor:pointer;font-size:10px;line-height:18px;color:#988568;list-style:none}.search-advanced summary::-webkit-details-marker{display:none}.search-advanced summary small{font-size:8px;line-height:18px;margin-left:auto;color:#b1a385}.filter-chevron{align-self:center;display:grid;place-items:center;width:12px;height:18px;font-size:0;line-height:18px;transition:transform 180ms}.filter-chevron::before{content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-1px) rotate(45deg)}.search-advanced[open] .filter-chevron{transform:rotate(180deg)}
#nav-search:has(.search-advanced:not([open])) .search-results{max-height:min(330px,calc(100dvh - 338px))}
.journey-toolbar{padding:0 2px 8px;gap:5px}.journey-toolbar .soft{min-height:26px;height:26px;padding:3px 7px;font-size:9px;border-radius:8px}
.compact-route-next{display:flex;align-items:center;gap:5px;min-height:25px;padding:3px 5px;margin:0 2px 8px;background:linear-gradient(90deg,#e5efc7,#f4f6df99,transparent);font-size:10px;color:#8d9a5b}.compact-route-next a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:inherit}.compact-route-next button{margin-left:auto;flex-shrink:0;padding:0 2px;min-height:21px;font-size:9px;color:#8d9a5b}
.checkin-group .compact-project{gap:9px;min-height:97px;padding:8px 6px}.checkin-group .compact-project .thumb{height:75px;width:48px}
.checkin-group .compact-footer{flex-wrap:nowrap;gap:3px}.checkin-group .compact-project .row-actions{grid-template-columns:50px 50px 23px;gap:5px}.checkin-group .compact-project .row-actions button{width:100%;height:23px;min-height:23px;padding:0 2px;font-size:8px!important;border-radius:7px}.checkin-group .row-actions button[data-done]{background:#fff2c6;border-color:#eadca4;color:#a99050}.checkin-group .row-actions button[data-todo]{background:#efebed;border-color:#e9e3e6;color:#9b9598;font-size:12px!important}
/* Keep reminder copy inside one opaque, scrollable sheet. */
.feature-dialog.bubble-detail{max-height:min(68dvh,calc(100dvh - 218px));overflow:hidden;background:var(--paper-texture),#fffdf3;border-width:3px}
.feature-dialog.bubble-detail[open]{display:flex;flex-direction:column}
.feature-dialog.bubble-detail .dialog-header{position:relative;flex:0 0 auto;min-height:40px;padding:8px 12px;gap:10px}
.feature-dialog.bubble-detail .dialog-header h2{font-size:13px;line-height:20px;margin:0}
.feature-dialog.bubble-detail #feature-close{display:grid;place-items:center;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border:0;border-radius:50%;font-size:17px;line-height:18px;background:#f3f0e4}
.feature-dialog.bubble-detail .feature-body{flex:1 1 auto;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;padding:12px 14px 16px;background:var(--paper-texture),#fffdf3;font-size:11px;line-height:1.75}
.feature-body .active-screen-list> b{display:block;margin:0 0 3px}.feature-body .active-screen-list article{gap:5px 8px;padding:10px 0;align-items:center}.feature-body .active-screen-list article>button.soft{grid-column:1/-1;min-height:28px;font-size:10px}.feature-body .active-screen-list small{white-space:normal;text-align:right;max-width:105px;line-height:16px}.feature-body .broadcast-project{min-width:0;font-size:11px;line-height:18px;overflow-wrap:anywhere}
.feature-body .notice{font-size:10px;line-height:1.75;margin:12px 0;padding:10px;border-radius:9px;overflow-wrap:anywhere}
.feature-body .reminder-list article{display:grid;gap:7px;padding:12px 0;border-bottom:1px dashed #e4dcc2;min-width:0}.reminder-list article>b{font-size:11px;line-height:18px;font-weight:550;overflow-wrap:anywhere}.reminder-list .playback-info{margin:0;padding:4px 6px;font-size:10px;line-height:17px;background:#edf1da;color:#939a72;overflow-wrap:anywhere}.reminder-list .soft{justify-self:start;min-height:28px;padding:3px 8px;font-size:10px}
/* Saved and unsaved visit buttons share the requested yellow treatment. */
.compact-project .row-actions button.saved,.art-card-actions button.saved,.ticket-stub-actions .soft[data-todo].saved{background:#fff3c8;color:#aa9257;border-color:#eadca4}
@media(max-width:375px){#mobile-masthead{margin-inline:0}.handmade-brand{width:58%}.handmade-header-bubble{width:39%}.overview-shell{width:calc(100% - 58px)!important}#list-heading{font-size:13px}.stats{font-size:7px}.stats>.overview-live{font-size:6px}.compact-project .thumb{width:43px}.compact-heading .row-title{font-size:10px}.compact-date{font-size:7px}.row-actions button{padding-inline:5px}.calendar-controls .soft{font-size:7px;padding-inline:4px}.view-heading h2{font-size:19px}.calendar-controls strong{font-size:9px}.calendar-controls .icon-button{width:15px;min-width:15px}.calendar-agenda{padding-inline:17px}.art-card-grid,.agenda.art-card-grid,.other-grid.art-card-grid{column-gap:13px}.art-card-caption{padding-inline:3px}.art-card-caption h3{font-size:8px}.art-card-actions{gap:1px}.art-card-actions button{font-size:6px;padding-inline:1px}.category-tabs{margin-inline:8px}.category-tabs button{font-size:9px}.ticket-main{grid-template-columns:84px minmax(0,1fr);gap:9px}.ticket-image-preview{width:84px;height:140px}.ticket-info h2{font-size:14px}.ticket-fields{gap:8px 9px}.ticket-fields dd{font-size:9px}.ticket-stub-actions{gap:4px}.ticket-stub-actions .soft,.ticket-stub-actions .soft[data-todo],.ticket-stub-actions .soft[data-done]{font-size:7px;padding-inline:3px}}
@media(min-width:481px){#mobile-masthead{margin-inline:0}.handmade-brand{width:60%}.ticket-card{left:50%;transform:translateX(-50%)}.floating-nav{bottom:16px}.desktop-scene{padding-inline:0}.art-card-picture{height:auto}.art-card-caption h3{font-size:11px}.art-card-caption>p{font-size:9px}.art-card-actions button{font-size:8px}.art-card-actions>span{font-size:7px}}
.opening-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffdf8;box-shadow:none}
.opening-screen:not([open]){display:none}
.opening-screen>img{width:auto;height:auto;max-width:100%;max-height:calc(100% - 72px - env(safe-area-inset-bottom));object-fit:contain;object-position:center;flex:0 1 auto;mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 91%,transparent)}
.opening-screen .opening-entry{position:static;left:auto;bottom:auto;transform:none;flex-shrink:0;margin:8px 0 calc(16px + env(safe-area-inset-bottom));min-height:44px;padding:9px 18px;background:#f6f8e9;box-shadow:inset 0 1px 0 #fff,0 2px 8px #8a9c5a1a}
.opening-screen .opening-entry:active{transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}.row-title.title-overflow{mask-image:none;overflow-x:auto;scrollbar-width:none}}
.location-details{margin-top:16px;border-top:1px dashed #ded5b7;padding-top:10px;font-size:11px;line-height:1.65;color:#998769}
.location-details summary{cursor:pointer;color:#7d8e52;font-weight:600;min-height:28px;padding:4px 0}
.location-details dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 13px;margin:8px 0}.location-details dt{color:#ac9b7a}.location-details dd{margin:0;overflow-wrap:anywhere}.location-details p{margin:8px 0}.location-details a{display:inline-block;color:#ad7d93;padding:6px 0}
/* The final poster frame dissolves into the fully prepared map without moving UI. */
.map-desktop .opening-screen{display:none;position:fixed;inset:0;margin:0;padding:0;border:0;max-width:none;max-height:none;zoom:calc(1 / var(--desktop-scale,1));width:100vw;height:100dvh;background:#fffdf7;opacity:1;transform:none;box-shadow:none;transition:opacity 720ms cubic-bezier(.4,0,.2,1)}
.map-desktop .opening-screen[open]{display:block}
.opening-screen>video{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:contain;object-position:center;background:#fffdf7;pointer-events:none}
.opening-screen::backdrop{background:#fffdf7;opacity:1;backdrop-filter:none;transition:opacity 720ms cubic-bezier(.4,0,.2,1)}
.map-desktop .opening-screen.leaving{opacity:0;transform:none;pointer-events:none}
.opening-screen.leaving::backdrop{opacity:0}
@media(prefers-reduced-motion:reduce){.map-desktop .opening-screen,.opening-screen::backdrop{transition:opacity 120ms linear!important}}

#other-scroll{overflow:hidden;padding-bottom:0}
#other-view{display:flex;flex-direction:column;min-height:0;overflow:hidden}
#other-view>.view-heading{flex:0 0 auto;z-index:2}
.other-content-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;clip-path:inset(0);padding:4px 0 8px;touch-action:pan-y}
@media(max-width:768px){#other-scroll{bottom:80px}#other-view{height:calc(100% - 2px);padding-bottom:14px}}

/* The icon stays inside; only the page dots sit in a small circle outside. */
.bubble-avatar{position:absolute;right:6px;left:auto;top:50%;transform:translateY(-50%);width:20px;height:20px;min-width:20px;min-height:20px;aspect-ratio:1;padding:0;border:1px solid #e5dec4;border-radius:50%;overflow:hidden;background:#f5f3e5;display:grid;place-items:center;color:#9caa72;pointer-events:auto}
.bubble-avatar[hidden]{display:none}.bubble-avatar img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%}.bubble-avatar svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5}
.handmade-header-bubble .bubble-pages{left:calc(100% + 7px);right:auto;top:50%;bottom:auto;transform:translateY(-50%);width:28px;height:28px;min-width:28px;min-height:28px;padding:3px 0;border:1px solid #dedbbd;border-radius:50%;background:var(--paper-texture),#fffdf3;box-shadow:0 1px 3px #7d89531a;align-items:center;justify-content:center;gap:0}
.handmade-header-bubble .bubble-pages button{width:14px;height:4px;min-height:0;flex:0 0 4px}
@media(max-width:768px){
 .handmade-header-bubble{right:32px;width:calc(39% - 31px)}
 .handmade-header-bubble .bubble-viewport{right:31px}
 .handmade-header-bubble #music-play{left:auto;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;min-width:20px;min-height:20px}
 .bubble-slide[data-kind=player]{width:100%}.bubble-slide[data-kind=player] .bubble-value{gap:3px}.bubble-time{font-size:9px}.bubble-value>.bubble-day{font-size:9px}
}
@media(max-width:375px){.bubble-time small{display:none}}
@media(min-width:769px){
 .bubble-avatar{right:8px;width:28px;height:28px;min-width:28px;min-height:28px}.bubble-avatar svg{width:17px;height:17px}
 .handmade-header-bubble .bubble-viewport{right:45px}
 .handmade-header-bubble .bubble-pages{left:calc(100% + 10px);right:auto;gap:1px}
}
