/* 1181 × 2307 reference artwork; display at up to half size on desktop. */
body.h5-body{background:var(--forest)}
body.h5-body .site-header{height:76px;padding:0 23px;color:var(--cream);border-bottom:1px solid #aabd9d17}
body.h5-body .brand{gap:9px}
body.h5-body .brand-symbol{width:37px;height:37px;font-size:27px;border-color:#e2d7b757}
body.h5-body .brand>span:last-child{font-size:17px}
body.h5-body .brand i{font-size:9px;letter-spacing:2px}
body.h5-body .brand small{font-size:7px;letter-spacing:1.5px}
body.h5-body .desktop-nav{display:none}
body.h5-body .mobile-account{display:block;color:#d7dfc8}
body.h5-body main{margin:0;border-radius:0;box-shadow:none;min-height:calc(100svh - 130px)}
body.h5-body .site-footer{margin:0;padding:24px 23px 30px;gap:12px;font-size:8px;color:#8eaa91;letter-spacing:0}
body.h5-body .site-footer span:nth-child(2){display:none}
body.h5-body .hero{display:block;min-height:calc(100svh - 76px);overflow:hidden}
body.h5-body .hero-photo{position:absolute;inset:0;min-height:0;background-position:center 68%;opacity:.87}
body.h5-body .hero-photo:before{background:linear-gradient(180deg,#102c25e8 0%,#102c25a0 28%,#102c2510 54%,#102c25a0 78%,#102c25 100%)}
body.h5-body .hero-copy{min-height:calc(100svh - 76px);padding:29px 28px 30px;align-items:flex-start}
body.h5-body .hero-topline{padding-right:0}
body.h5-body .eyebrow{font-size:8px;letter-spacing:2.3px}
body.h5-body .eyebrow:before{width:18px}
body.h5-body .edition{font-size:11px}
body.h5-body .hero h1{font-size:53px;line-height:1.23;letter-spacing:-2px;margin-top:30px;margin-bottom:15px}
body.h5-body .hero h1 .hero-title-top{font-size:36px;letter-spacing:3px;margin-bottom:7px}
body.h5-body .hero-subtitle{font-size:11px;letter-spacing:1.5px}
body.h5-body .hero-rule{display:none}
body.h5-body .hero-caption{margin-top:18px;font-size:10px;line-height:1.9;color:#d2d4ba;text-shadow:0 1px 8px #102c25}
body.h5-body .hero-actions{margin-top:auto;padding-top:145px;width:100%;gap:21px}
body.h5-body .hero .primary{margin:0;min-width:0;flex:1;height:53px;max-width:260px}
body.h5-body .hero-actions .text-link{margin:0;font-size:11px;color:#e8e2c9;border-color:#d6d6bd80}
body.h5-body .hero-meta{padding-top:26px;margin-top:0;justify-content:space-between}
body.h5-body .hero-meta>div{padding-right:23px;margin-right:0;flex:1;text-align:center}
body.h5-body .hero-meta>div:first-child{text-align:left}
body.h5-body .hero-meta>div:last-child{text-align:right;flex:.85}
body.h5-body .hero-meta strong{font-size:25px}
body.h5-body .hero-meta p{font-size:8px;margin-top:5px;color:#aabb9b;letter-spacing:.5px}
body.h5-body .hero-meta strong small{font-size:10px}
body.h5-body .date-stamp{width:75px;height:75px;top:267px;right:25px;z-index:1;transform:rotate(12deg)}
body.h5-body .date-stamp strong{font-size:23px}
body.h5-body .date-stamp span{font-size:6px;letter-spacing:1px}
body.h5-body .photo-caption{display:none}
body.h5-body .content-page{padding:19px 23px 30px;min-height:calc(100svh - 130px)}
body.h5-body .page-top{margin-bottom:24px}
body.h5-body .back-button{font-size:11px}
body.h5-body .page-step{font-size:12px}
body.h5-body .page-heading{margin-bottom:25px}
body.h5-body .page-heading h1{font-size:28px;letter-spacing:.5px;line-height:1.5}
body.h5-body .page-heading p{font-size:11px}
body.h5-body .page-heading .small-label{display:none}
body.h5-body .steps{display:block;padding:7px 0 18px;margin-bottom:25px}
body.h5-body .step{padding:17px 0 0;gap:17px}
body.h5-body .step>span{font-size:24px}
body.h5-body .step h3{font-size:13px;margin-bottom:5px}
body.h5-body .step p{font-size:11px}
body.h5-body .venue-scroller{margin-right:-23px;padding-right:23px;gap:12px}
body.h5-body .venue-card{flex-basis:237px}
body.h5-body .venue-card img{height:158px}
body.h5-body .section-heading{margin-top:15px}
body.h5-body .section-heading h2{font-size:14px}
body.h5-body .section-heading small{font-size:8px}
body.h5-body .bottom-actions{margin-top:23px}
body.h5-body .bottom-actions .primary{width:100%;min-width:0}
body.h5-body .choice-grid{grid-template-columns:1fr;gap:15px}
body.h5-body .choice{padding:23px;min-height:0}
body.h5-body .choice-illustration{height:41px}
body.h5-body .choice-illustration svg{width:45px;height:45px}
body.h5-body .choice .choice-number{top:16px;font-size:38px}
body.h5-body .choice h2{font-size:22px;margin-top:14px;margin-bottom:8px}
body.h5-body .choice p{font-size:11px;min-height:0;max-width:100%}
body.h5-body .choice button{margin-top:18px;min-height:46px;font-size:12px}
body.h5-body .solo-note{font-size:10px;margin-top:22px;padding-top:18px;gap:15px}
body.h5-body .solo-note .text-link{font-size:11px;white-space:nowrap}
body.h5-body .form-layout{grid-template-columns:1fr;gap:25px}
body.h5-body .form-aside{display:none}
body.h5-body .form-fields{max-width:none}
body.h5-body .field{margin-bottom:23px}
body.h5-body .field-label{font-size:12px}
body.h5-body .field-label small{font-size:10px}
body.h5-body .field input,body.h5-body .field select{font-size:16px;padding:15px 13px}
body.h5-body .consent{font-size:10px}
body.h5-body .form-small{font-size:10px}
body.h5-body .form-small button{font-size:10px}
body.h5-body .team-layout{grid-template-columns:1fr;gap:26px}
body.h5-body .team-card-top{padding:24px}
body.h5-body .members{padding:22px 24px}
body.h5-body .team-card h2{font-size:23px}
body.h5-body .team-side{gap:17px}
body.h5-body .team-side-actions{grid-template-columns:1fr 1fr;gap:10px}
body.h5-body .team-side-actions button{font-size:12px;padding:15px;gap:7px}
body.h5-body .team-side-actions>a{grid-column:1/-1}
body.h5-body .note{padding:18px 0;font-size:10px}
body.h5-body .note strong{font-size:12px}
body.h5-body .team-code{font-size:11px;padding:15px 0}
body.h5-body .pass-layout{grid-template-columns:1fr;gap:27px;max-width:400px}
body.h5-body .pass-top{padding:23px 24px}
body.h5-body .pass-title{font-size:20px}
body.h5-body .pass-bottom{padding:18px 24px}
body.h5-body .pass-intro{display:none}
body.h5-body .pass-info{display:none}
body.h5-body .pass-actions{grid-template-columns:1fr 1fr;gap:10px}
body.h5-body .pass-actions button{font-size:12px;padding:14px 15px;gap:7px}
body.h5-body .pass-actions>a{grid-column:1/-1}
body.h5-body .tiny-note{font-size:9px;margin-top:13px}
body.h5-body .coupons{margin-top:18px}
body.h5-body .stamp-grid{grid-template-columns:repeat(3,1fr);gap:11px}
body.h5-body .stamp-tile{padding:18px 5px}
body.h5-body .stamp-icon{width:57px;height:57px}
body.h5-body .stamp-tile h3{font-size:12px}
body.h5-body .stamp-tile p{font-size:8px}
body.h5-body .stamp-result{font-size:12px}
body.h5-body .empty-state{margin:60px auto;max-width:310px}
body.h5-body .empty-state h1{font-size:24px}
body.h5-body .empty-state p{font-size:11px}
body.h5-body .empty-state>svg{width:65px;height:65px}
body.h5-body .loading{padding:80px 20px}
body.h5-body .primary,body.h5-body .secondary{font-size:13px}
body.h5-body #toast{bottom:25px;font-size:12px;line-height:1.7;width:max-content;max-width:calc(100vw - 38px);text-align:center}
body.h5-body dialog{padding:29px 24px;max-width:calc(100vw - 36px)}
body.h5-body dialog h2{font-size:23px}
body.h5-body dialog p{font-size:11px}
body.h5-body .share-actions button{font-size:11px}
body.h5-body{--h5-page-width:min(100vw,590.5px);--h5-page-height:calc(var(--h5-page-width) * 2307 / 1181);width:100%;max-width:590.5px;min-height:var(--h5-page-height);margin:0 auto;background:var(--forest)}
html:has(body.h5-body){background:var(--paper)}
body.h5-body .site-header{width:100%;max-width:none;height:76px}
body.h5-body main{width:100%;max-width:none;margin:0;min-height:calc(var(--h5-page-height) - 142px);border-radius:0;box-shadow:none}
body.h5-body .hero,body.h5-body .hero-copy{min-height:calc(var(--h5-page-height) - 142px)}
body.h5-body .hero-copy{padding:29px clamp(19px,7vw,42px) 28px}
body.h5-body .hero-actions{padding-top:clamp(26px,8vw,56px)}
body.h5-body .hero-event-time{margin-top:22px;padding:11px 14px;gap:3px 10px}
body.h5-body .hero-event-time span{font-size:21px}
body.h5-body .hero-event-time strong{font-size:25px}
body.h5-body .hero-event-time small{font-size:10px}
body.h5-body .content-page{min-height:calc(var(--h5-page-height) - 142px)}
body.h5-body .site-footer{max-width:none;min-height:66px;padding:24px 23px calc(24px + env(safe-area-inset-bottom,0px));align-items:center}
body.h5-body .text-link,body.h5-body .back-button,body.h5-body .icon-button{min-height:44px}
body.h5-body .hero-title-top{white-space:nowrap}
body.h5-body dialog:not(#wechat-share-guide){width:calc(100% - 36px);max-width:500px;max-height:calc(100dvh - 32px);overflow:auto}
body.h5-body .dialog-close{min-width:40px;min-height:40px}
@media(max-width:360px){
 body.h5-body .hero h1{font-size:40px}
 body.h5-body .hero h1 .hero-title-top{font-size:33px}
 body.h5-body .hero-actions{gap:13px}
 body.h5-body .hero-meta>div{padding-right:17px}
 body.h5-body .content-page{padding-left:19px;padding-right:19px}
 body.h5-body .team-card-top,body.h5-body .members{padding-left:19px;padding-right:19px}
 body.h5-body .team-card h2{font-size:21px}
 body.h5-body .status{font-size:9px;padding:5px 8px}
}

/* Header account control: one head outline and shoulders, with a 44px touch target. */
body.h5-body .account-button{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;padding:10px;border:0;border-radius:0;background:transparent;color:#e7e8d5;line-height:1}
body.h5-body .account-button .account-icon{display:block;width:22px;height:22px;flex-shrink:0}
body.h5-body .account-button:hover{color:#fff8e9}
body.h5-body .account-button:active{opacity:.7}

/* Mobile review: balanced card text, long names, and reachable controls. */
body.h5-body .team-layout,body.h5-body .pass-layout,body.h5-body .form-layout{grid-template-columns:minmax(0,1fr)}
body.h5-body .team-card,body.h5-body .team-side,body.h5-body .player-pass,body.h5-body .pass-layout>aside{min-width:0}
body.h5-body .team-card-title h2{min-width:0;flex:1}
body.h5-body .team-card-title .status{flex-shrink:0}
body.h5-body .pass-title{font-size:18px;line-height:1.55;letter-spacing:.5px}
body.h5-body .pass-title-kind{display:inline-block;white-space:nowrap}
body.h5-body .pass-title small{font-size:8px;letter-spacing:1.5px;line-height:1.8;overflow-wrap:anywhere}
body.h5-body .pass-name{flex-wrap:wrap;gap:10px;align-items:flex-start}
body.h5-body .pass-name strong{min-width:0;flex:1 1 160px;font-size:clamp(24px,7vw,30px);line-height:1.4}
body.h5-body .pass-name span{flex:0 0 auto}
body.h5-body .pass-team,body.h5-body dialog h2,body.h5-body dialog p,body.h5-body .leave-reward-summary{overflow-wrap:anywhere}
body.h5-body .pass-bottom{gap:12px;flex-wrap:wrap}
body.h5-body .refresh-button{min-height:44px;flex-shrink:0}
body.h5-body .refresh-button svg{width:16px;height:16px;display:block}
body.h5-body .download-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
body.h5-body dialog h2{text-wrap:balance}
@media(max-width:360px){body.h5-body dialog h2{font-size:20px;letter-spacing:.5px}body.h5-body .share-actions button{font-size:11px}}
body.h5-body .invite-context>svg{width:32px;height:32px;flex:0 0 32px}
body.h5-body .invite-context>div{min-width:0;overflow-wrap:anywhere}
