/* App-first surface: a single consistent layout at every viewport. */
html{background:#ede7e2;scroll-padding-top:90px}body{max-width:480px;min-height:100dvh;margin:0 auto;background:var(--cream);box-shadow:0 0 70px #432d2212;overflow-x:hidden}#sidebar{display:none!important}.shell{margin:0;width:100%;min-height:100dvh}#topbar{height:76px;position:sticky;top:0;z-index:25;padding:10px 20px;background:#fffbf7f5;backdrop-filter:blur(16px);border-bottom:1px solid #eaded8;gap:12px}.app-brand{display:flex;align-items:center;gap:11px;padding:0;text-align:left;min-width:0}.app-brand img{width:43px;height:52px;object-fit:contain;flex-shrink:0}.app-brand>span{font-size:10px;letter-spacing:1.05px;color:var(--wine);font-weight:700;line-height:1.6}.app-brand small{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted)}.app-header-actions{display:flex;gap:8px;align-items:center}.circle{height:36px;width:36px}.avatar{display:grid!important;background:var(--wine);color:white;font-size:14px}main{padding:24px 20px 110px;max-width:none}footer{display:none}h1{font-size:35px;line-height:1.2}h2{font-size:29px;line-height:1.18}h3{font-size:18px}.heading{display:block;margin-bottom:23px}.heading .eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:8px}.heading p{font-size:14px;max-width:none;margin-top:9px}.heading>.btn{margin-top:14px}.passport-greeting h1{font-family:'Hero New',sans-serif;font-size:28px;font-weight:500;letter-spacing:-.5px}.passport-greeting p{font-size:14px;line-height:1.55;margin-top:6px;max-width:none;color:var(--muted)}.date-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:22px 0}.date-tile{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:86px;padding:9px 4px;border:1px solid #e8deda;background:#fff;border-radius:15px;transition:.2s}.date-tile>span{font-size:10px;letter-spacing:.7px;color:var(--muted)}.date-tile strong{font-size:24px;line-height:1.1;font-weight:500}.date-tile small{font-size:10px;color:var(--muted);letter-spacing:.8px}.date-tile.active{background:var(--wine);color:white;border-color:var(--wine);box-shadow:0 5px 12px #6b0e241e}.date-tile.active span,.date-tile.active small{color:#fff}.app-hero{min-height:215px;height:215px;border-radius:17px;align-items:center}.app-hero .hero-copy{padding:23px}.app-hero .eyebrow{font-family:'Hero New',sans-serif;font-size:10px;font-weight:500;letter-spacing:1.2px}.hero h2.biennale-theme{font-size:40px;line-height:1.05;letter-spacing:.5px;margin:16px 0 20px}.biennale-theme span{font-size:19px;margin-top:10px;line-height:1.3}.hero-action{padding:0;display:flex;align-items:center;gap:12px;color:white;font-size:13px;font-weight:500}.hero-action .icon{width:17px;height:17px}.app-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:22px 0}.app-shortcuts button{display:flex;flex-direction:column;align-items:center;gap:9px;padding:0;font-size:12px;min-height:72px;color:var(--ink)}.app-shortcuts button>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#f1e6e7;color:var(--wine)}.app-shortcuts button:nth-child(2)>span{background:#e4efe7;color:#06775d}.app-shortcuts button:nth-child(3)>span{background:#f9ebd8;color:#976322}.app-shortcuts button:nth-child(4)>span{background:#eee6ed;color:#6b0e24}.day-summary{width:100%;display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:13px;padding:15px;text-align:left}.summary-icon{flex-shrink:0;color:var(--wine)}.day-summary>span:nth-child(2){flex:1;min-width:0}.day-summary strong{display:block;font-size:14px;font-weight:600;line-height:1.4}.day-summary small{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:3px}.summary-action{font-size:12px;color:var(--wine);font-weight:600}.section-title{margin:27px 0 16px;align-items:center;gap:10px}.section-title h2{font-family:'Modern Romance',serif;font-size:27px;line-height:1.2}.section-title .textbtn{font-size:12px;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}.count{font-size:12px;white-space:nowrap}.programme-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.programme-controls .select{padding:8px 10px;background:transparent;border:1px solid var(--line);max-width:65%;font-size:12px;min-height:36px;border-radius:8px}.interest-strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-right:-20px;padding-right:20px}.interest-strip::-webkit-scrollbar,.horizontal-cards::-webkit-scrollbar,.curator-grid::-webkit-scrollbar{display:none}.chip{font-size:13px;padding:9px 14px;min-height:37px}.interest-strip .chip{flex-shrink:0}.app-search{display:flex;align-items:center;gap:9px;margin:14px 0 17px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:0 12px;color:var(--muted)}.app-search .icon{width:18px;flex-shrink:0}.app-search .search{font-size:14px;padding:12px 0;border:0;background:transparent;min-width:0}.cards{display:grid;grid-template-columns:1fr;gap:17px}.card{border-radius:14px;min-width:0}.card-image{height:180px}.card-body{padding:16px}.card-body h3{font-family:'Hero New',sans-serif;font-size:18px;line-height:1.4;min-height:0;margin:9px 0;font-weight:500}.card-body p{font-size:13px;margin:7px 0;display:flex;gap:5px;align-items:center;line-height:1.4}.card-body p .icon{width:15px;height:15px}.card-bottom{font-size:12px;margin-top:13px;padding-top:10px}.card-bottom .textbtn{font-size:12px}.horizontal-cards{display:flex;overflow-x:auto;gap:13px;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -20px;padding:0 20px 3px;scroll-padding-left:20px}.horizontal-cards>.card{width:258px;flex:0 0 258px;scroll-snap-align:start}.horizontal-cards .card-image{height:161px}.horizontal-cards .card-body h3{min-height:50px}.horizontal-cards>.card:last-child{margin-right:0}.tag{font-size:10px;padding:5px 8px;line-height:1.3}.save{width:35px;height:35px}.app-thread{display:grid;width:100%;grid-template-columns:1fr 65px;padding:0;text-align:left;border-radius:15px;margin:25px 0 0}.thread-banner .copy{padding:22px 18px}.thread-banner h2{font-size:28px;margin:10px 0}.thread-banner .eyebrow{font-size:10px;letter-spacing:1.1px}.thread-banner p{font-size:12px;line-height:1.6}.thread-cta{display:inline-block;margin-top:16px;color:#fff;font-size:13px;font-weight:600}.weave{min-height:185px}.curator-grid{display:flex;overflow-x:auto;gap:12px;scrollbar-width:none;scroll-snap-type:x mandatory;margin:0 -20px;padding:0 20px 3px}.curator-card{display:block;flex:0 0 132px;width:132px;padding:0;scroll-snap-align:start;align-self:start}.curator-photo{height:154px;width:132px;border-radius:13px;background:#ece6e3}.curator-photo img{display:block;width:132px;height:154px;object-fit:cover;object-position:center 20%;opacity:1;visibility:visible}.curator-card h3{font-family:'Hero New',sans-serif;font-size:15px;font-weight:500;line-height:1.4;color:var(--wine);margin:12px 0 5px}.curator-card p{font-size:12px;line-height:1.4;min-height:34px}.curator-card .textbtn{font-size:11px;margin-top:5px}.partners-section{margin-top:27px;padding-top:0;border-top:1px solid var(--line)}.partners-section .section-title{align-items:center;margin:23px 0 14px}.partners-section .section-title h2{font-size:26px}.partners-section .section-title a{font-size:0}.partners-section .section-title a:after{content:'View all';font-size:12px}.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.partner-grid.government{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-logo{padding:13px;min-height:85px;height:85px;border-radius:11px;min-width:0;background:#fff;overflow:hidden}.partner-logo img{display:block;max-width:100%;width:100%;height:60px;max-height:60px;object-fit:contain;opacity:1;visibility:visible}.partner-grid.government .partner-logo{height:94px}.partner-grid.government .partner-logo img{height:65px;max-height:65px}.preview-footnote{font-size:11px;line-height:1.6;color:var(--muted);margin-top:25px;padding-top:18px;border-top:1px solid var(--line)}#mobile-nav{position:fixed;display:grid!important;grid-template-columns:repeat(5,1fr);left:50%;right:auto;transform:translateX(-50%);bottom:0;width:min(100%,480px);height:calc(73px + env(safe-area-inset-bottom));padding:5px 8px calc(7px + env(safe-area-inset-bottom));background:#fffdfaf7;backdrop-filter:blur(20px);border-top:1px solid #e6dbd5;box-shadow:0 -6px 25px #60362e08;z-index:40}#mobile-nav button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;font-size:11px;font-weight:500;color:#887c79;padding:0}#mobile-nav button>span{width:45px;height:29px;display:grid;place-items:center;border-radius:10px}#mobile-nav button.active{color:var(--wine)}#mobile-nav button.active>span{background:#f2e5e8}#mobile-nav .icon{width:21px;height:21px}.two-col,.feature-grid,.map-layout{display:grid;grid-template-columns:1fr;gap:18px}.panel{padding:20px;border-radius:14px;min-width:0}.panel h2{font-size:28px}.toolbar{gap:9px;margin:17px 0}.toolbar .select{margin-left:0;width:100%}.btn{border-radius:10px;min-height:44px;font-size:14px;padding:12px 17px}.textbtn{min-height:36px}.field{font-size:14px}.field input,.field textarea,.search{font-size:16px;border-radius:9px}.schedule-item{padding:14px;gap:12px;flex-wrap:wrap;border-radius:12px}.schedule-item .time{width:48px;font-size:12px}.schedule-item .details{min-width:150px}.schedule-item h3{font-size:16px}.schedule-item .textbtn{margin-left:auto}.empty{padding:30px 18px;border-radius:13px}.empty h2{font-size:29px}.empty p{font-size:14px}.discovery{display:grid;grid-template-columns:1fr;gap:10px}.quick-card{display:flex;flex-direction:row;align-items:center;gap:17px;padding:17px;text-align:left;border-radius:13px;min-height:78px}.quick-card>.icon{width:24px;height:24px}.quick-card strong{font-size:15px}.quick-card span{font-size:12px}.venue-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.venue-btn{padding:13px;font-size:13px;margin:0;min-width:0;border-radius:12px}.venue-btn small{font-size:11px}.map-panel,.map-panel iframe{height:350px;min-height:350px}.pass{width:100%;border-radius:18px}.pass-head{padding:23px}.pass-body{padding:23px}.pass-head h2{font-size:29px}.audio-card{padding:16px;gap:12px;border-radius:13px;align-items:flex-start}.audio-card .play{width:42px;height:42px}.audio-card h3{font-size:17px}.audio-card .select{font-size:13px;max-width:140px;padding:8px}.audio-card .save{width:31px;height:31px}.audio-card .textbtn{font-size:12px}.notice{font-size:12px;border-radius:0 9px 9px 0;padding:12px;margin:17px 0}.tapestry{height:240px}.thread-options{gap:8px}.thread-options button{font-size:13px;border-radius:9px;padding:14px 10px}dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,480px);max-height:92dvh;border-radius:23px 23px 0 0;padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain;box-shadow:0 -15px 60px #26111840}dialog:before{content:'';display:block;position:absolute;z-index:3;left:calc(50% - 19px);top:9px;width:38px;height:4px;border-radius:5px;background:#bcaeaa}.modal-content,.curator-modal{padding:25px 22px}.modal-content h2,.curator-modal h2{font-size:32px;line-height:1.2}.modal-content .toolbar{display:grid;grid-template-columns:1fr}.modal-content .btn{width:100%;white-space:normal;text-align:center}.modal-img{height:210px}.close{top:17px;right:15px;width:34px;height:34px}.curator-modal>img{width:120px;height:150px;margin-top:5px}.curator-modal p{font-size:14px}.curator-modal .btn{max-width:100%}#toast{bottom:90px;width:max-content;max-width:min(90%,430px);font-size:13px;text-align:center}.chips{gap:7px}details{padding:17px 0}summary{font-size:15px}.app-hero:after{background:linear-gradient(90deg,#1b1720c9,#15151e35)}@media(min-width:481px){body{border-left:1px solid #e5d8d1;border-right:1px solid #e5d8d1}}@media(max-width:359px){main{padding-left:16px;padding-right:16px}#topbar{padding-left:16px;padding-right:16px}.app-brand>span{font-size:9px}.app-brand small{font-size:11px}.app-header-actions{gap:5px}.app-header-actions .circle{width:30px;height:30px}.date-strip{gap:7px}.passport-greeting p{font-size:13px}.section-title h2{font-size:25px}.day-summary{padding:12px;gap:8px}.day-summary small{font-size:11px}.app-hero .hero-copy{padding:20px}.hero h2.biennale-theme{font-size:36px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
