:root{color-scheme:light;--forest:#123c35;--ink:#163b34;--gold:#f4b525;--muted:#607269;--line:#dce5de;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f5f8f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:280px}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b76500;outline-offset:4px}button:disabled{opacity:.6;cursor:not-allowed}[hidden]{display:none!important}.shell{max-width:620px;margin:auto;padding:max(24px,env(safe-area-inset-top)) 22px calc(100px + env(safe-area-inset-bottom))}.brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;letter-spacing:.08em}.brand img{border-radius:50%}.brand strong{display:block;font-size:12px;font-weight:500;letter-spacing:.22em}.member-label{margin-left:auto;font-size:12px;letter-spacing:.1em;font-weight:600;color:var(--muted)}.page-heading{padding:36px 0 22px}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:750;margin:0 0 12px;color:var(--muted)}h1{font-size:clamp(2rem,8vw,2.75rem);letter-spacing:-.045em;line-height:1.12;margin:0;font-weight:750}h2{font-size:1.25rem;letter-spacing:-.025em;margin:0 0 12px}h3{font-size:1rem;margin:0 0 8px}.intro{font-size:16px;color:var(--muted);line-height:1.6;margin:12px 0 0}p{line-height:1.6}.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;margin-bottom:16px;overflow-wrap:anywhere}.next{background:var(--forest);color:white;border:0;border-top:4px solid var(--gold);padding:26px}.next .eyebrow{color:#ffda83}.next .muted{color:#d5e2db}.muted{color:var(--muted);font-size:14px}.ticket-card{display:flex;align-items:center;gap:18px}.ticket-number{font-size:4.1rem;font-weight:750;line-height:1;letter-spacing:-.06em}.ticket-card .eyebrow{margin-bottom:8px}.ticket-card .detail{flex:1}.ticket-card .text-button{padding:8px 0;min-height:44px}.ticket-hero .ticket-number{font-size:5.5rem;margin:18px 0}.dog-row{display:flex;align-items:center;gap:12px;padding:14px 0}.dog-row+.dog-row{border-top:1px solid var(--line)}.dog-avatar{width:44px;height:44px;border-radius:50%;background:#e9f1eb;display:grid;place-items:center;font-weight:700;flex-shrink:0}.timing{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:15px}.timing div{border-left:2px solid #64847a;padding-left:12px}.timing span{display:block;font-size:13px;opacity:.8;margin-bottom:4px}.timing strong{font-size:1.25rem;font-weight:600}.next .dog-block+.dog-block{border-top:1px solid #4b6b60;padding-top:18px;margin-top:18px}.badge{display:inline-block;border-radius:7px;padding:4px 8px;font-size:12px;font-weight:650;background:#edf3ef;color:#335b4c;margin:5px 0 12px}.next .badge{background:#335b4c;color:#ecf4ee}.primary,.secondary{display:block;text-align:center;text-decoration:none;min-height:50px;width:100%;padding:14px 18px;border-radius:12px;font:inherit;font-weight:650;border:0;margin-top:16px}.primary{background:var(--gold);color:#16342b}.secondary{background:white;color:var(--forest);border:1px solid #b1c4b6}.text-button{background:none;border:0;color:var(--forest);font:inherit;font-size:14px;font-weight:650;min-height:48px;text-decoration:underline;cursor:pointer}.access{padding:46px 0 20px}.access h1{font-size:clamp(2.7rem,11vw,4rem)}.access h2{margin-top:40px}.access #status{color:var(--muted)}.empty{padding:28px 24px}.empty p{margin:8px 0 0;color:var(--muted);font-size:15px}.notice{border-left:3px solid #c98d06;padding:12px 16px;background:#fff7df;font-size:15px;line-height:1.55;margin:0 0 16px;border-radius:0 10px 10px 0}.booking-row{padding:12px 0;border-bottom:1px solid var(--line)}.booking-row:last-child{border-bottom:0}.booking-row .badge{margin:0 0 0 8px}.section-title{margin:30px 0 14px}.session-actions{display:flex;gap:14px;align-items:center}.session-actions .secondary{width:auto;margin:0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:620px;background:rgba(255,255,255,.98);border-top:1px solid var(--line);padding:8px 12px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);z-index:20}.bottom-nav button{border:0;background:none;border-radius:12px;color:#66766f;font-size:13px;min-height:58px;font-weight:600}.bottom-nav span{display:block;font-size:25px;line-height:1.2;margin-bottom:4px}.bottom-nav [aria-current=page]{background:var(--forest);color:white}footer{color:var(--muted);margin-top:25px;font-size:14px}summary{min-height:44px;padding:12px 0;font-size:14px}footer p{font-size:14px}.footer-note{font-size:11px;letter-spacing:.1em;margin-top:22px}.skeleton{height:140px;border-radius:22px;background:linear-gradient(90deg,#e5ede6,#f1f5f1,#e5ede6);background-size:200%;animation:shine 1.4s infinite;margin:16px 0}@keyframes shine{to{background-position:200%}}@media(min-width:800px){.shell{padding-top:38px}.card{padding:28px}.page-heading{padding-top:45px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.ticket-card{flex-wrap:wrap}.ticket-card>a{flex-basis:100%;margin-top:0}.session-actions:has(#logout:not([hidden])){justify-content:space-between}

.flow-top{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}.flow-back{background:none;border:0;color:var(--forest);font-weight:650;min-height:48px;padding:10px 0}.test-indicator{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:5px 9px;border-radius:20px}.choice{font:inherit;color:var(--ink);background:white;border:1px solid var(--line);border-radius:20px;text-align:left;min-height:82px;width:100%;padding:20px;cursor:pointer}.choice:hover,.choice:focus-visible{border-color:var(--forest)}.choice.selected{border:2px solid var(--forest);background:#edf4ed}.choice-grid,.package-list{display:grid;gap:12px}.dog-choice{display:flex;align-items:center;gap:16px}.choice-arrow{margin-left:auto;font-size:24px}.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.date-choice{min-height:112px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.date-choice strong{font-size:17px;line-height:1.4}.date-status{font-size:13px;color:var(--muted)}.date-choice:disabled{cursor:not-allowed;background:#f1f3f0;opacity:.6}.package-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px}.package-name,.unit-price,.validity{display:block}.package-name{font-size:20px}.unit-price{font-size:13px;margin-top:5px;color:var(--muted)}.validity{font-size:14px;margin-top:8px;color:var(--muted)}.package-price{font-size:22px;white-space:nowrap}.summary-price{font-size:34px;font-weight:750;letter-spacing:-.04em}.terms-choice{display:flex;gap:12px;align-items:center;line-height:1.5;min-height:56px;margin:22px 0}.terms-choice input{width:22px;height:22px;accent-color:var(--forest);flex-shrink:0}.terms-choice a{color:var(--forest);text-underline-offset:3px}.adventure-review{padding-top:28px;text-align:center}.adventure-review .dog-avatar{margin:0 auto 16px;width:64px;height:64px;font-size:24px}.adventure-date{font-size:20px;font-weight:600}.balance-change{font-size:22px;font-weight:650;background:#edf4ed;border-radius:14px;padding:18px 10px}.adventure-review .primary:disabled,.package-summary .primary:disabled{opacity:.55;cursor:not-allowed}@media(max-width:370px){.package-choice{padding:17px}.package-price{font-size:19px}.date-grid{grid-template-columns:1fr}}

#page-label:empty,#dog-proof:empty,#refresh-status:empty{display:none}.ticket-card>.primary{flex-basis:100%;margin-top:0}.booking-entry{margin:20px 0}.page-heading{padding:26px 0 20px}

.account-details h3{margin:24px 0 8px}.account-details p{margin:6px 0}.next{background:#fff;color:var(--ink);border:1px solid var(--line);border-top:1px solid var(--line)}.next .eyebrow{color:var(--muted);text-transform:none;letter-spacing:0;font-size:18px}.next .muted{color:var(--muted)}#greeting:empty,#status:empty{display:none}

.dog-avatar{position:relative;overflow:hidden;flex-shrink:0}.dog-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.adventure-dog{display:flex;align-items:center;gap:12px;margin:8px 0 14px}.adventure-dog h3{margin:0}.next .dog-avatar{background:#edf3ef;color:#123c35}

/* Dog avatars: compact cards 66px; selection 72px. Existing 384px media stays unchanged. */
:root{--dog-avatar:66px;--dog-avatar-choice:72px}.dog-avatar{width:var(--dog-avatar);height:var(--dog-avatar);font-size:24px}.dog-choice .dog-avatar{width:var(--dog-avatar-choice);height:var(--dog-avatar-choice)}.dog-row,.adventure-dog{gap:16px}.dog-choice{gap:18px}.dog-choice strong{min-width:0;overflow-wrap:anywhere}.dog-choice .choice-arrow{flex-shrink:0}.language-choice{display:flex;gap:10px;margin:12px 0}.language-option{flex:1;min-height:48px;border:1px solid var(--line);background:#fff;color:var(--forest);border-radius:12px;font:inherit;font-weight:650}.language-option[aria-pressed=true]{background:var(--forest);color:#fff}.bottom-nav button>span[data-i18n]{font-size:13px;line-height:1.4;margin:0}html[lang=zh-TW] h1{letter-spacing:0;line-height:1.3}html[lang=zh-TW] .eyebrow{letter-spacing:.03em}@media(max-width:370px){.dog-choice{padding:16px;gap:12px}.timing{gap:10px}.timing strong{font-size:1.05rem}.shell{padding-left:18px;padding-right:18px}}

/* Reveal the public shell only after its explicit device-language hint is applied. */
html[data-startup-pending] .shell{visibility:hidden}

.loading-spinner{width:24px;height:24px;margin:16px auto;border:3px solid #dae2dd;border-top-color:#123c35;border-radius:50%;animation:loading-spin .8s linear infinite}.timing-disclaimer{font-size:.75rem;color:#68736f;line-height:1.4;margin:10px 0 0}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none}}

.photos-ready{background:#edf5e9;border-color:#bdcfad}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:20px 0}.photo-tile{padding:0;aspect-ratio:1;border:0;border-radius:12px;overflow:hidden;background:#e9ede6;cursor:pointer}.photo-tile img{width:100%;height:100%;object-fit:cover}.photo-viewer img{width:100%;max-height:65vh;object-fit:contain;border-radius:16px;background:#e9ede6}.photo-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0}.photo-viewer>.primary,.photo-viewer>.secondary{margin:8px 8px 8px 0}@media(min-width:700px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}
/* Compact gallery and isolated, scroll-preserving native dialog. */
.photos-ready{padding:18px}.photos-ready h2{font-size:20px;margin:0 0 6px}.photos-ready p{margin:0 0 12px}.photos-ready .primary{width:auto;padding:10px 16px;font-size:13px}
.gallery-back,.gallery-download{background:none;border:0;color:var(--ink,#123c35);font:inherit;cursor:pointer;padding:10px 0;min-height:44px;width:auto}.gallery-back{font-size:15px}.gallery-download{font-size:14px;text-decoration:underline}.gallery-heading h2{font-size:22px;margin:8px 0 4px}.gallery-heading p{margin:4px 0}.gallery-heading .muted{font-size:12px}.photo-grid{gap:4px;margin:16px 0}.photo-tile{border-radius:5px;min-height:0}.photo-tile img{display:block}.page-heading:has(h1:empty){display:none}
.gallery-viewer{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;padding:0;border:0;background:#101311;color:#fff;overflow:hidden;box-sizing:border-box}.gallery-viewer[open]{display:flex;flex-direction:column}.gallery-viewer::backdrop{background:#101311}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;flex:none}.viewer-title{font-size:14px;line-height:1.4}.viewer-icon{color:#fff;background:none;border:0;width:44px;height:44px;min-height:44px;padding:0;font-size:32px;cursor:pointer}.viewer-icon:disabled{opacity:.25}.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom;overflow:hidden}.viewer-stage img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.viewer-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px calc(12px + env(safe-area-inset-bottom));flex:none}.viewer-save{width:auto;border:0;border-radius:24px;background:#fff;color:#17251f;padding:12px 24px;font:inherit;font-weight:600;min-height:44px}.viewer-save:disabled{opacity:.5}.viewer-status{font-size:12px;text-align:center;padding:0 18px;color:#cbd4ce}.viewer-status:empty{display:none}@media(min-width:700px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.viewer-bar,.viewer-footer{padding-left:24px;padding-right:24px}}
.photo-tile{position:relative}.photo-tile img{position:absolute;inset:0}
/* Authenticated image placeholders never expose unloaded/broken img text. */
.photo-frame{position:relative;display:block;width:100%;height:100%;min-height:0;background:#e9ede6;border-radius:inherit;overflow:hidden}.photo-frame [hidden]{display:none!important}.photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px}.photo-placeholder>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.photo-spinner{display:inline-block;flex:none;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:photo-spin .8s linear infinite;opacity:.55}.gallery-loading{display:flex;align-items:center;gap:9px;font-size:14px;color:#68766c;margin:16px 0}.photo-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;font-size:12px;line-height:1.5;color:#526357;text-align:center}.viewer-stage .photo-frame{background:transparent}.viewer-stage .photo-frame img{object-fit:contain}.viewer-stage .photo-placeholder,.viewer-stage .photo-fallback{color:#cad4cb}.viewer-stage .photo-fallback{cursor:pointer}.viewer-preparing{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px}.viewer-save{min-width:104px}@keyframes photo-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.photo-spinner{animation-duration:1.8s}}
.photo-placeholder{color:#809383}

.video-placeholder{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#e6ede6;color:#38594a;border-radius:inherit;font-weight:600}.video-symbol{font-size:2.3rem;line-height:1}.video-download-info{text-align:center;padding:32px 20px;color:white}.video-download-info .muted{color:#c9d1cb}.video-download-info h2{font-size:1.25rem}

.media-section{margin:1rem 0}.media-section-title{font-size:.8rem;letter-spacing:.1em;margin:.75rem 0;color:#587061}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.video-tile{padding:0;background:#f0f4ed;border:1px solid #dbe2d7;border-radius:14px;overflow:hidden;color:#244733;text-align:left}.video-tile .video-placeholder{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(140deg,#d8e7d2,#eef3e7);width:100%;height:auto}.video-size{display:block;padding:8px 12px 0;overflow-wrap:anywhere}.video-size{font-size:.75rem;padding-bottom:10px;color:#627064}.video-download-info h2{overflow-wrap:anywhere}.media-section{scroll-margin-top:12px}

.video-tile{width:100%}.video-placeholder{position:relative}.video-placeholder.has-poster>.video-brand{display:none}.video-placeholder.has-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.video-status{display:block;font-size:.75rem;color:#657166;margin:.4rem .2rem}.video-status:empty{display:none}

.video-download-pill{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;max-width:92%;padding:10px 16px;border-radius:999px;background:rgb(16 33 28 / 72%);color:#fff;font-size:.78rem;letter-spacing:.06em;line-height:1.4;white-space:nowrap;box-shadow:0 1px 5px #0002}.video-brand{padding-top:65px;font-size:.7rem}.video-download-loading{display:flex;align-items:center;gap:8px;letter-spacing:0}.video-download-pill .photo-spinner{width:16px;height:16px}.video-tile:disabled{opacity:1}.ios-share-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.15em;margin:0 .3em}.video-status{line-height:1.7}

.video-download-pill[data-preparing]{inset:0;transform:none;max-width:none;border-radius:inherit;padding:20px 16px;background:rgb(12 27 23 / 72%);flex-direction:column;gap:14px;white-space:normal;text-align:center;letter-spacing:0;box-shadow:none;font-size:1rem;line-height:1.45}.video-download-pill[data-preparing] .video-download-loading{flex-direction:column;gap:10px}.video-download-pill[data-preparing] .photo-spinner{width:32px;height:32px;border-width:3px}.video-preparing-hint{font-size:.9rem;line-height:1.5}.video-preparing-hint:empty{display:none}.video-status{font-size:.875rem}

.video-recovery{display:block;margin:.6rem 0;padding:8px 12px;font-size:.85rem;border:1px solid #bccabe;border-radius:8px;background:transparent;color:#244733}.video-recovery-note{display:block;margin-top:.5rem}
/* Adventure profiles and integrated rankings. */
/* Dog Friends: portraits, never ranking or statistic cards. */
.experience{padding:0 0 22px}.experience>.text-button{margin-bottom:12px}.experience-dogs{display:flex;gap:8px;overflow-x:auto;margin:3px 0 18px}.experience-dog{border:1px solid #b8cabe;border-radius:24px;padding:10px 18px;background:#fff;white-space:nowrap;color:#254e3f;min-height:44px;font:inherit;cursor:pointer}.experience-dog[aria-pressed=true]{background:#173e33;color:#fff;border-color:#173e33}.experience-hero{display:flex;align-items:center;gap:18px;margin:12px 0 28px}.experience-hero h2{font-size:clamp(24px,6.7vw,34px);line-height:1.2;margin:0;overflow-wrap:anywhere}.experience-avatar{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;background:#e2e9e1;color:#9eada0;overflow:hidden;flex-shrink:0}.experience-avatar img{width:100%;height:100%;object-fit:cover}.experience-avatar svg{width:72%;height:72%}.experience-hero .experience-avatar{width:96px;height:96px}.friends-heading{font-size:13px;font-weight:750;letter-spacing:.08em;line-height:1.5;margin:0 0 16px;color:#42604e;overflow-wrap:anywhere}.friends-section{margin:0 0 30px}.friends-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 10px;padding:0;margin:0;list-style:none}.friend{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.friend-name{font-size:14px;text-align:center;overflow-wrap:anywhere;color:#254e3f}.friends-waiting{display:flex;gap:16px;overflow-x:auto;padding:0 0 10px;scrollbar-width:thin}.anonymous-friend{background:#eceeec;color:#b5bdb6}.friends-empty{color:#6e7d71;font-size:13px;margin:0}.experience-status{padding:40px 12px;text-align:center;color:#526b5c}.experience-entry h2{font-size:23px}.community-settings{margin:25px 0}.community-disclosure{font-size:12px;line-height:1.5;color:#617166;margin:4px 0 10px}.community-setting{display:grid;gap:5px;border-top:1px solid #dfe8df;padding:15px 0}.community-setting span{font-size:13px;color:#617166}.community-setting .secondary{width:auto;justify-self:start;min-height:42px;margin-top:6px}@media(min-width:440px){.friends-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:350px){.experience-avatar{width:64px;height:64px}.experience-hero .experience-avatar{width:82px;height:82px}}

.friendship-invitation{padding:12px 0 22px}.friendship-invitation h3{font-size:22px;line-height:1.3}.friendship-invitation p{line-height:1.6}.friendship-terms{font-size:12px;color:#617166}.friendship-terms a{color:#234f3f;text-decoration:underline}.friendship-privacy{font-size:12px;color:#617166;margin-top:24px}.friendship-privacy summary{cursor:pointer;padding:10px 0}.friendship-privacy button{font-size:12px}

.home-booking-card .booking-entry{margin:0}

.package-disclosure{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.package-disclosure>summary{cursor:pointer;font-weight:650;padding:8px 0;min-height:44px}.package-usage{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px}.package-usage th,.package-usage td{text-align:left;padding:12px 0;border-bottom:1px solid var(--line);vertical-align:top}.package-usage th:last-child,.package-usage td:last-child{text-align:right;padding-left:12px;white-space:nowrap}.package-usage th{font-weight:500;color:var(--muted)}.previous-packages{border-top:0;margin-top:4px}.previous-packages>summary{margin-bottom:12px}.previous-packages .card{margin-bottom:12px}
