1"use strict";(self.webpackChunkutchinese_network_frontend=self.webpackChunkutchinese_network_frontend||[]).push([[953],{1291:(e,t,i)=>{i.d(t,{AN:()=>o,TY:()=>n,jU:()=>s,pd:()=>r});const a=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en";if(!e)return"";const a=new Date(e),r="zh"===i?"zh-CN":"en-US";if(t){const e={year:"numeric",month:"long",day:"numeric"},t={hour:"2-digit",minute:"2-digit",hour12:!1};return`${a.toLocaleDateString(r,e)} ${a.toLocaleTimeString(r,t)}`}{const e={year:"numeric",month:"long",day:"numeric"};return a.toLocaleDateString(r,e)}},r=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en";if(!e)return"";const r=new Date(e),n=t?new Date(t):null,o="zh"===i?"zh-CN":"en-US",s=0!==r.getHours()||0!==r.getMinutes(),l=n&&(0!==n.getHours()||0!==n.getMinutes()),d=s||l;if(!n)return a(r,d,i);if(r.toDateString()===n.toDateString()){if(d){return`${a(r,!1,i)} ${r.toLocaleTimeString(o,{hour:"2-digit",minute:"2-digit",hour12:!1})} - ${n.toLocaleTimeString(o,{hour:"2-digit",minute:"2-digit",hour12:!1})}`}return a(r,!1,i)}return`${a(r,d&&s,i)} - ${a(n,d&&l,i)}`},n=(e,t)=>{if(!e)return null;const i=t&&String(t).trim(),a=i?new Date(`${e}T${i}:00`):new Date(`${e}T00:00:00`);return Number.isNaN(a.getTime())?null:a.toISOString()},o=e=>{if(!e)return null;const t=new Date(`${e}T23:59:59.999`);return Number.isNaN(t.getTime())?null:t.toISOString()},s=e=>{if(!e)return{date:"",time:""};const t=new Date(e);if(Number.isNaN(t.getTime()))return{date:"",time:""};return{date:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`,time:`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}}},2208:(e,t,i)=>{i.d(t,{A:()=>n});i(5043);var a=i(9367),r=i(579);const n=e=>{let{title:t,description:i,keywords:n="UTChinese, \u591a\u5927\u4e2d\u6587, University of Toronto Chinese Network, UofT Chinese Club",url:o="https://www.utchinese.org/",image:s="/logo.png"}=e;return(0,r.jsxs)(a.mg,{children:[t&&(0,r.jsx)("title",{children:t}),i&&(0,r.jsx)("meta",{name:"description",content:i}),n&&(0,r.jsx)("meta",{name:"keywords",content:n}),(0,r.jsx)("meta",{name:"robots",content:"index,follow"}),(0,r.jsx)("meta",{property:"og:type",content:"website"}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{property:"og:description",content:i}),(0,r.jsx)("meta",{property:"og:url",content:o}),(0,r.jsx)("meta",{property:"og:image",content:s}),(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("meta",{name:"twitter:title",content:t}),(0,r.jsx)("meta",{name:"twitter:description",content:i}),(0,r.jsx)("meta",{name:"twitter:image",content:s}),(0,r.jsx)("link",{rel:"canonical",href:o})]})}},3953:(e,t,i)=>{i.r(t),i.d(t,{default:()=>te});var a=i(5043),r=i(5464),n=i(995),o=i(3546),s=i(4117),l=i(2208),d=i(8805),c=i(8180),g=i(579);const p=(0,c.gz)("/uploads/events/HaiHai.png"),h=r.Ay.div` 2 width: 100%; 3 background: var(--background); 4 color: var(--text); 5`,m=r.Ay.section` 6 padding: 5rem 2rem; 7 max-width: 900px; 8 margin: 0 auto; 9 line-height: 1.8; 10 font-size: 1.15rem; 11 background: var(--background); 12 position: relative; 13 14 &::before { 15 content: ''; 16 position: absolute; 17 top: 0; 18 left: 50%; 19 transform: translateX(-50%); 20 width: 80px; 21 height: 4px; 22 background: linear-gradient(90deg, var(--primary), var(--primary-light)); 23 border-radius: 2px; 24 } 25`,u=(0,r.Ay)(n.P.p)` 26 margin-bottom: 2rem; 27 color: var(--text); 28 font-weight: 400; 29 text-align: justify; 30 31 &:first-of-type { 32 font-size: 1.25rem; 33 font-weight: 500; 34 color: var(--primary); 35 text-align: center; 36 margin-bottom: 3rem; 37 position: relative; 38 39 &::after { 40 content: ''; 41 position: absolute; 42 bottom: -1rem; 43 left: 50%; 44 transform: translateX(-50%); 45 width: 50px; 46 height: 2px; 47 background: var(--primary-light); 48 border-radius: 1px; 49 } 50 } 51 52 &:last-of-type { 53 margin-bottom: 0; 54 } 55`,x=r.Ay.section` 56 padding: 6rem 2rem; 57 background: var(--background-alt); 58 border-top: 1px solid rgba(0, 0, 0, 0.05); 59 60 [data-theme='dark'] & { 61 border-top: 1px solid rgba(255, 255, 255, 0.05); 62 } 63`,y=r.Ay.div` 64 max-width: 1200px; 65 margin: 0 auto; 66`,f=(0,r.Ay)(n.P.div)` 67 max-width: 900px; 68 margin-bottom: 6rem; 69`,b=r.Ay.span` 70 display: block; 71 font-size: 0.85rem; 72 font-weight: 600; 73 text-transform: uppercase; 74 letter-spacing: 0.08em; 75 color: var(--primary); 76 margin-bottom: 1.5rem; 77`,w=r.Ay.h2` 78 font-size: clamp(2.5rem, 5vw, 4rem); 79 font-weight: 700; 80 line-height: 1.1; 81 letter-spacing: -0.02em; 82 margin: 0 0 1.5rem; 83 color: var(--text); 84`,v=r.Ay.p` 85 font-size: 1.25rem; 86 line-height: 1.6; 87 color: var(--text-light); 88 max-width: 700px; 89 margin: 0; 90`,j=r.Ay.div` 91 display: grid; 92 grid-template-columns: repeat(3, 1fr); 93 gap: 3rem 2rem; 94 margin-bottom: 6rem; 95 96 @media (max-width: 900px) { 97 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 98 } 99`,k=(0,r.Ay)(n.P.div)` 100 border-top: 2px solid var(--text); 101 padding-top: 1.5rem; 102 103 [data-theme='dark'] & { 104 border-top: 2px solid rgba(255, 255, 255, 0.2); 105 } 106`,A=r.Ay.div` 107 font-size: 0.85rem; 108 font-weight: 600; 109 color: var(--primary); 110 margin-bottom: 1rem; 111`,H=r.Ay.h3` 112 font-size: 1.5rem; 113 font-weight: 600; 114 line-height: 1.3; 115 margin: 0 0 1rem; 116 color: var(--text); 117`,T=r.Ay.p` 118 font-size: 1.05rem; 119 line-height: 1.6; 120 color: var(--text-light); 121 margin: 0; 122`,z=r.Ay.div` 123 margin-top: 4rem; 124`,S=(0,r.Ay)(n.P.div)` 125 margin-bottom: 3rem; 126 display: flex; 127 flex-direction: column; 128 gap: 2rem; 129`,$=r.Ay.div` 130 max-width: 100%; 131`,C=r.Ay.h2` 132 font-size: 2.5rem; 133 font-weight: 700; 134 letter-spacing: -0.02em; 135 margin: 0 0 1rem; 136 color: var(--text); 137`,N=r.Ay.p` 138 font-size: 1.1rem; 139 color: var(--text-light); 140 margin: 0; 141 line-height: 1.6; 142`,D=r.Ay.div` 143 display: grid; 144 grid-template-columns: repeat(6, 1fr); 145 grid-auto-rows: 120px; 146 grid-auto-flow: dense; 147 gap: 1rem; 148 149 @media (max-width: 768px) { 150 grid-template-columns: repeat(2, 1fr); 151 grid-auto-rows: 160px; 152 } 153`,I=(0,r.Ay)(n.P.button)` 154 position: relative; 155 grid-column: span ${e=>e.$col||2};
156 grid-row: span ${e=>e.$row||2}; 157 padding: 0; 158 border: none; 159 background: rgba(0, 0, 0, 0.05); 160 overflow: hidden; 161 cursor: pointer; 162 163 @media (max-width: 768px) { 164 grid-column: span 1 !important; 165 grid-row: span 1 !important; 166 } 167`,P=r.Ay.img` 168 width: 100%; 169 height: 100%; 170 object-fit: cover; 171 transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1); 172 173 ${I}:hover & { 174 transform: scale(1.04); 175 } 176`,L=r.Ay.div` 177 position: absolute; 178 inset: 0; 179 background: rgba(0, 0, 0, 0.5); 180 display: flex; 181 align-items: flex-end; 182 padding: 1.5rem; 183 opacity: 0; 184 transition: opacity 0.3s ease; 185 186 ${I}:hover & { 187 opacity: 1; 188 } 189`,U=r.Ay.div` 190 color: #ffffff; 191 font-size: 1rem; 192 font-weight: 500; 193 text-align: left; 194`,M=r.Ay.section` 195 padding: 6rem 2rem; 196 background: var(--background); 197 border-top: 1px solid rgba(0, 0, 0, 0.05); 198 199 [data-theme='dark'] & { 200 border-top: 1px solid rgba(255, 255, 255, 0.05); 201 } 202`,V=r.Ay.div` 203 max-width: 1200px; 204 margin: 0 auto; 205`,_=(0,r.Ay)(n.P.h2)` 206 font-size: 2.5rem; 207 font-weight: 700; 208 letter-spacing: -0.02em; 209 margin: 0 0 3rem; 210 color: var(--text); 211 text-align: center; 212`,F=r.Ay.div` 213 display: grid; 214 grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); 215 gap: 2rem; 216`,O=(0,r.Ay)(n.P.div)` 217 border-radius: 16px; 218 overflow: hidden; 219 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); 220 background: rgba(0, 0, 0, 0.02); 221 position: relative; 222 223 [data-theme='dark'] & { 224 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); 225 background: rgba(255, 255, 255, 0.02); 226 } 227`,q=r.Ay.div` 228 position: absolute; 229 bottom: 0; 230 left: 0; 231 right: 0; 232 background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%); 233 color: white; 234 padding: 2rem 1.5rem 1.5rem; 235 font-size: 1.5rem; 236 font-weight: 700; 237 letter-spacing: 0.05em; 238 text-align: center; 239 pointer-events: none; 240`,B=r.Ay.img` 241 width: 100%; 242 height: auto; 243 display: block; 244 transition: transform 0.5s ease; 245 246 &:hover { 247 transform: scale(1.02); 248 } 249`,Y=(0,r.Ay)(n.P.div)` 250 position: fixed; 251 inset: 0; 252 z-index: 9999; 253 display: flex; 254 align-items: center; 255 justify-content: center; 256 padding: 2rem; 257 background: rgba(0, 0, 0, 0.9); 258 backdrop-filter: blur(8px); 259`,E=(0,r.Ay)(n.P.div)` 260 position: relative; 261 width: 100%; 262 max-width: 1200px; 263 max-height: 90vh; 264 display: flex; 265 flex-direction: column; 266 background: var(--background); 267 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2); 268 overflow: hidden; 269`,G=r.Ay.button` 270 position: absolute; 271 top: 1.5rem; 272 right: 1.5rem; 273 width: 40px; 274 height: 40px; 275 border: none; 276 background: rgba(0, 0, 0, 0.05); 277 border-radius: 50%; 278 display: flex; 279 align-items: center; 280 justify-content: center; 281 font-size: 1.5rem; 282 line-height: 1; 283 color: var(--text); 284 cursor: pointer; 285 z-index: 10; 286 transition: background 0.2s ease; 287 padding: 0; 288 289 &:hover { 290 background: rgba(0, 0, 0, 0.1); 291 } 292 293 [data-theme='dark'] & { 294 background: rgba(255, 255, 255, 0.1); 295 &:hover { 296 background: rgba(255, 255, 255, 0.2); 297 } 298 } 299`,X=r.Ay.div` 300 display: flex; 301 flex-direction: column; 302 303 @media (min-width: 900px) { 304 flex-direction: row; 305 height: 75vh; 306 } 307`,W=r.Ay.div` 308 flex: 1; 309 background: #000; 310 display: flex; 311 align-items: center; 312 justify-content: center; 313 overflow: hidden; 314 315 @media (min-width: 900px) { 316 height: 100%; 317 } 318`,Q=r.Ay.img` 319 max-width: 100%; 320 max-height: 70vh; 321 object-fit: contain; 322 323 @media (min-width: 900px) { 324 max-height: 100%; 325 } 326`,R=r.Ay.div` 327 padding: 2rem; 328 width: 100%; 329 background: var(--background); 330 331 @media (min-width: 900px) { 332 width: 380px; 333 overflow-y: auto; 334 border-left: 1px solid rgba(0, 0, 0, 0.05); 335 336 [data-theme='dark'] & { 337 border-left: 1px solid rgba(255, 255, 255, 0.05); 338 } 339 } 340`,Z=r.Ay.h3` 341 font-size: 1.25rem; 342 font-weight: 600; 343 margin: 0 0 1rem; 344 color: var(--text); 345 line-height: 1.4; 346`,J=r.Ay.p` 347 font-size: 1rem; 348 line-height: 1.6; 349 color: var(--text-light); 350 margin: 0; 351`,K=[{col:4,row:3},{col:2,row:2},{col:2,row:2},{col:3,row:2},{col:3,row:2},{col:2,row:2},{col:4,row:2}],ee=[{src:"/images/Haihai/Haihai-poster-2026.png",year:"2026"},{src:"/images/Haihai/Haihai-poster-2025.jpg",year:"2025"},{src:"/images/Haihai/Haihai-poster-2024.png",year:"2024"},{src:"/images/Haihai/Haihai-poster-2.jpg",year:"2023"}],te=()=>{const{i18n:e}=(0,s.Bd)(),t="zh"===e.language,[i,r]=(0,a.useState)(null),n={en:{title:"HiHi | Haihai",seoTitle:"HiHi | Haihai | UTChinese Network",seoDescription:"Step into HiHi, UTChinese Network's cross-cultural social event created with the U of T Myanmar Culture Club.",slogan:"Life is vast like the ocean, yet as simple as it is.",introText:"In a world where people come and go, encounters are like ocean currents. Our events bring together people from all corners of the world, who eventually flow toward different futures. Different languages, different cultural backgrounds, yet sharing the same foreign land and the same hopes for the future. In these short four years of university life, we are so lucky to stand at the intersection of these differences, witnessing and embracing the colorfulness of this world together.",eyebrow:"Cross-Cultural Social",storyTitle:"China Meets Myanmar, and strangers quickly became tablemates.",storyText:"From opening conversations to the last group photo on the steps outside, HiHi turned cultural exchange into something tactile: listen, taste, paint, speak, and laugh together.",highlights:[{title:"Shared Culture, Not Parallel Booths",description:"The event was built around exchange, so students moved through the same prompts, stories, and activities together instead of staying inside separate circles."},{title:"Language Openers",description:"Short language interactions gave people easy first lines, making it natural to ask questions, compare expressions, and keep the conversation going."},{title:"Hands-On Tables & Warm Atmosphere",description:"Art-based stations, food, and music kept the afternoon grounded and relaxed. Guests learned through making, staying longer to chat and connect with new friends."}],galleryTitle:"The room in motion",gallerySubtitle:"These photos capture what made HiHi special: people gathering around the same table, trying something new, and letting culture become conversation.",postersTitle:"Past Posters",photos:[{src:"/images/Haihai/53d2876d1a9fad7ddfd32ccc9c4a1ef9.jpg",alt:"Group photo from HiHi",caption:"A sunlit closing photo after an afternoon of exchange.",detail:"The final group shot says a lot about the event: relaxed, open, and full of new connections."},{src:"/images/Haihai/eb1a758d05d65c2708d3019ae8c3790e.jpg",alt:"Guests mingling inside the venue",caption:"Conversation flowed across the entire room.",detail:"People moved naturally between stations, making the event feel more like a shared social space than a formal program."},{src:"/images/Haihai/19785919ba68a17a3a3e896733135f16.jpg",alt:"Students working on a craft table",caption:"Hands-on moments helped the room loosen up fast.",detail:"Interactive tables gave everyone something to do together, which made starting conversations much easier."},{src:"/images/Haihai/79f649e35134dd78de56442cc210a0f6.jpg",alt:"Food table at HiHi",caption:"Food became part of the cultural exchange too.",detail:"Tea and snacks turned into a natural gathering point, where introductions kept extending into longer chats."},{src:"/images/Haihai/dff52842c94d4dd00b06a40c3b694790.jpg",alt:"Creative activity table",caption:"Making together created its own rhythm.",detail:"Collaborative creative prompts gave students an easy way to participate even before they knew anyone in the room."},{src:"/images/Haihai/b6e3ce05a2a1dab8575ddfa9dd8f67b3.jpg",alt:"Students painting at a table",caption:"Small tables became small worlds of exchange.",detail:"The event worked because every corner invited people to stay a little longer and talk a little more."}
351,{src:"/images/Haihai/efab148a51daadf245149ccb6376ef3b.jpg",alt:"Wide view of the event space",caption:"HiHi felt busy in the best possible way.",detail:"The whole venue carried a soft buzz of making, tasting, listening, and meeting new people."}]},zh:{title:"\u6d77\u6d77 | HiHi",seoTitle:"\u6d77\u6d77 | HiHi | UTChinese Network",seoDescription:"\u8d70\u8fdb\u6d77\u6d77\uff0c\u4f53\u9a8c\u591a\u5927\u4e2d\u6587\u4e0e UofT Myanmar Culture Club \u8054\u5408\u7b56\u5212\u7684\u8de8\u6587\u5316\u793e\u4ea4\u6d3b\u52a8\u3002",slogan:"\u4eba\u751f\u6d77\u6d77\uff0c\u5c71\u5c71\u800c\u5ddd\uff0c\u4e0d\u8fc7\u5c14\u5c14\u3002",introText:"\u4eba\u6765\u4eba\u5f80\u7684\u4e16\u754c\u91cc\uff0c\u9645\u9047\u5c31\u50cf\u6d77\u91cc\u7684\u6d0b\u6d41\u3002\u6211\u4eec\u7684\u6d3b\u52a8\u4e5f\u662f\uff0c\u6765\u81ea\u4e94\u6e56\u56db\u6d77\u7684\u4eba\u6c47\u96c6\u5728\u4e00\u8d77\uff0c\u7ec8\u53c8\u6d41\u5411\u4e0d\u540c\u7684\u8fdc\u65b9\u3002\u4e0d\u540c\u7684\u8bed\u8a00\uff0c\u4e0d\u540c\u7684\u6587\u5316\u80cc\u666f\uff0c\u540c\u6837\u7684\u5f02\u56fd\u4ed6\u4e61\uff0c\u8fd8\u6709\u5bf9\u672a\u6765\u540c\u6837\u7684\u671f\u8bb8\u3002\u5927\u5b66\u751f\u6d3b\u77ed\u77ed\u56db\u5e74\uff0c\u6211\u4eec\u597d\u5e78\u8fd0\uff0c\u53ef\u4ee5\u7ad9\u5728\u8fd9\u4e9b\u5f02\u540c\u7684\u4ea4\u6c47\u70b9\uff0c\u5171\u540c\u89c1\u8bc1\u5e76\u62e5\u62b1\u8fd9\u4e2a\u4e16\u754c\u7684\u591a\u5f69\u3002",eyebrow:"\u8de8\u6587\u5316\u793e\u4ea4",storyTitle:"\u4e2d\u56fd\u9047\u89c1\u7f05\u7538\uff0c\u964c\u751f\u4eba\u5f88\u5feb\u5c31\u5750\u5230\u4e86\u540c\u4e00\u5f20\u684c\u8fb9\u3002",storyText:"\u4ece\u5f00\u573a\u5bd2\u6684\u5230\u6700\u540e\u8d70\u5230\u95e8\u53e3\u5408\u5f71\uff0c\u300c\u6d77\u6d77\u300d\u628a\u6587\u5316\u4ea4\u6d41\u505a\u6210\u4e86\u4e00\u79cd\u53ef\u4ee5\u542c\u3001\u53ef\u4ee5\u5c1d\u3001\u53ef\u4ee5\u753b\u3001\u53ef\u4ee5\u804a\u7684\u5171\u540c\u4f53\u9a8c\u3002",highlights:[{title:"\u4e0d\u662f\u5e76\u6392\u6446\u644a\uff0c\u800c\u662f\u771f\u7684\u4e00\u8d77\u4ea4\u6d41",description:"\u6d3b\u52a8\u56f4\u7ed5\u201c\u5171\u540c\u53c2\u4e0e\u201d\u6765\u8bbe\u8ba1\uff0c\u5927\u5bb6\u5728\u540c\u4e00\u6279\u95ee\u9898\u3001\u540c\u4e00\u5f20\u684c\u5b50\u3001\u540c\u4e00\u7ec4\u4e92\u52a8\u91cc\u6162\u6162\u8ba4\u8bc6\u5f7c\u6b64\uff0c\u800c\u4e0d\u662f\u505c\u7559\u5728\u5404\u81ea\u7684\u5c0f\u5708\u5b50\u3002"},{title:"\u8bed\u8a00\u4e92\u52a8\u6210\u4e3a\u6700\u81ea\u7136\u7684\u7834\u51b0",description:"\u7b80\u77ed\u7684\u8bed\u8a00\u4ea4\u6d41\u7ed9\u4e86\u5927\u5bb6\u4e00\u4e2a\u975e\u5e38\u8f7b\u677e\u7684\u5f00\u573a\u767d\uff0c\u4e5f\u8ba9\u4e0d\u540c\u6587\u5316\u80cc\u666f\u7684\u540c\u5b66\u66f4\u5bb9\u6613\u5ef6\u4f38\u51fa\u65b0\u7684\u8bdd\u9898\u3002"},{title:"\u624b\u4f5c\u4e0e\u8336\u70b9\uff0c\u8ba9\u4ea4\u6d41\u66f4\u5177\u6e29\u5ea6",description:"\u4ece\u5408\u4f5c\u586b\u8272\u5230\u624b\u4f5c\u4e92\u52a8\uff0c\u52a0\u4e0a\u7cbe\u5fc3\u51c6\u5907\u7684\u98df\u7269\u4e0e\u97f3\u4e50\uff0c\u8ba9\u6574\u573a\u6d3b\u52a8\u4fdd\u6301\u677e\u5f1b\u7684\u8282\u594f\u3002\u5927\u5bb6\u613f\u610f\u505c\u4e0b\u6765\uff0c\u8fb9\u505a\u8fb9\u804a\uff0c\u8ba4\u8bc6\u65b0\u670b\u53cb\u3002"}],galleryTitle:"\u90a3\u4e9b\u6b63\u5728\u53d1\u751f\u7684\u77ac\u95f4",gallerySubtitle:"\u8fd9\u4e9b\u7167\u7247\u8bb0\u5f55\u4e0b\u4e86\u300c\u6d77\u6d77\u300d\u6700\u52a8\u4eba\u7684\u90e8\u5206: \u5927\u5bb6\u56f4\u5750\u3001\u5c1d\u8bd5\u3001\u521b\u4f5c\u3001\u4ea4\u8c08\uff0c\u8ba9\u6587\u5316\u771f\u6b63\u53d8\u6210\u5f7c\u6b64\u4e4b\u95f4\u7684\u8fde\u63a5\u3002",postersTitle:"\u5f80\u671f\u6d77\u62a5",photos:[{src:"/images/Haihai/53d2876d1a9fad7ddfd32ccc9c4a1ef9.jpg",alt:"\u6d77\u6d77\u6d3b\u52a8\u5408\u5f71",caption:"\u6d3b\u52a8\u7ed3\u675f\u540e\uff0c\u9633\u5149\u843d\u5728\u5927\u5bb6\u7684\u5408\u5f71\u91cc\u3002",detail:"\u6700\u540e\u8fd9\u5f20\u95e8\u53e3\u5408\u7167\u5f88\u50cf\u6574\u573a\u6d3b\u52a8\u7684\u7f29\u5f71: \u8f7b\u677e\u3001\u81ea\u7136\uff0c\u4e5f\u771f\u7684\u8ba9\u4eba\u5f7c\u6b64\u719f\u7edc\u8d77\u6765\u4e86\u3002"},{src:"/images/Haihai/eb1a758d05d65c2708d3019ae8c3790e.jpg",alt:"\u6d3b\u52a8\u73b0\u573a\u5168\u666f",caption:"\u6574\u4e2a\u623f\u95f4\u90fd\u5728\u6d41\u52a8\u7740\u4ea4\u6d41\u7684\u58f0\u97f3\u3002",detail:"\u5927\u5bb6\u4f1a\u81ea\u7136\u5730\u5728\u4e0d\u540c\u684c\u4e4b\u95f4\u7a7f\u68ad\uff0c\u8ba9\u6574\u573a\u6d3b\u52a8\u
35166f4\u50cf\u4e00\u4e2a\u5171\u4eab\u793e\u4ea4\u7a7a\u95f4\uff0c\u800c\u4e0d\u662f\u6d41\u7a0b\u5316\u7684\u9879\u76ee\u5c55\u793a\u3002"},{src:"/images/Haihai/19785919ba68a17a3a3e896733135f16.jpg",alt:"\u540c\u5b66\u4eec\u56f4\u684c\u4e92\u52a8",caption:"\u4e00\u65e6\u52a8\u8d77\u624b\u6765\uff0c\u964c\u751f\u611f\u5c31\u6d88\u6563\u5f97\u5f88\u5feb\u3002",detail:"\u4e92\u52a8\u684c\u8ba9\u6bcf\u4e2a\u4eba\u90fd\u80fd\u8fc5\u901f\u53c2\u4e0e\u8fdb\u6765\uff0c\u4e5f\u8ba9\u539f\u672c\u4e0d\u719f\u6089\u7684\u540c\u5b66\u66f4\u5bb9\u6613\u987a\u7740\u624b\u8fb9\u7684\u8bdd\u9898\u804a\u4e0b\u53bb\u3002"},{src:"/images/Haihai/79f649e35134dd78de56442cc210a0f6.jpg",alt:"\u6d77\u6d77\u8336\u70b9\u533a",caption:"\u98df\u7269\u4e5f\u6210\u4e86\u6587\u5316\u4ea4\u6d41\u7684\u4e00\u90e8\u5206\u3002",detail:"\u8336\u70b9\u533a\u5929\u7136\u5c31\u662f\u4eba\u7fa4\u805a\u96c6\u7684\u5730\u65b9\uff0c\u5f88\u591a\u7b80\u5355\u7684\u95ee\u5019\u90fd\u4ece\u8fd9\u91cc\u5ef6\u4f38\u6210\u4e86\u66f4\u957f\u7684\u804a\u5929\u3002"},{src:"/images/Haihai/dff52842c94d4dd00b06a40c3b694790.jpg",alt:"\u521b\u4f5c\u4e92\u52a8\u684c",caption:"\u4e00\u8d77\u52a8\u624b\uff0c\u4f1a\u5f62\u6210\u4e00\u79cd\u7279\u522b\u8212\u670d\u7684\u8282\u594f\u3002",detail:"\u5408\u4f5c\u578b\u7684\u521b\u4f5c\u73af\u8282\u8ba9\u6bcf\u4f4d\u5230\u573a\u540c\u5b66\u90fd\u80fd\u53c2\u4e0e\u5176\u4e2d\uff0c\u5373\u4f7f\u4e00\u5f00\u59cb\u8c01\u90fd\u4e0d\u8ba4\u8bc6\uff0c\u4e5f\u80fd\u5f88\u5feb\u8fdb\u5165\u72b6\u6001\u3002"},{src:"/images/Haihai/b6e3ce05a2a1dab8575ddfa9dd8f67b3.jpg",alt:"\u684c\u8fb9\u521b\u4f5c\u7ec6\u8282",caption:"\u6bcf\u4e00\u5f20\u684c\u5b50\u90fd\u50cf\u4e00\u4e2a\u5c0f\u5c0f\u7684\u4ea4\u6d41\u73b0\u573a\u3002",detail:"\u8fd9\u573a\u6d3b\u52a8\u597d\u770b\u7684\u5730\u65b9\u5728\u4e8e\u6bcf\u4e2a\u89d2\u843d\u90fd\u5728\u53d1\u751f\u4e92\u52a8\uff0c\u5927\u5bb6\u613f\u610f\u505c\u4e0b\u6765\uff0c\u7ee7\u7eed\u804a\uff0c\u4e5f\u7ee7\u7eed\u505a\u3002"},{src:"/images/Haihai/efab148a51daadf245149ccb6376ef3b.jpg",alt:"\u6d77\u6d77\u6d3b\u52a8\u7a7a\u95f4",caption:"\u5fd9\u788c\u3001\u70ed\u95f9\uff0c\u4f46\u59cb\u7ec8\u5f88\u677e\u5f1b\u3002",detail:"\u6574\u4e2a\u73b0\u573a\u4e00\u76f4\u4fdd\u6301\u7740\u67d4\u548c\u800c\u7a33\u5b9a\u7684\u70ed\u5ea6: \u6709\u4eba\u5728\u505a\u624b\u5de5\uff0c\u6709\u4eba\u5728\u5c1d\u8336\u70b9\uff0c\u4e5f\u6709\u4eba\u521a\u521a\u8ba4\u8bc6\u4e86\u65b0\u670b\u53cb\u3002"}]}},c=t?n.zh:n.en;return(0,g.jsxs)(h,{children:[(0,g.jsx)(l.A,{title:c.seoTitle,description:c.seoDescription,url:"https://www.utchinese.org/events/hihi"}),(0,g.jsx)(d.A,{eventSlug:"hihi",defaultTitle:c.title,defaultImage:p}),(0,g.jsxs)(m,{children:[(0,g.jsx)(u,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.8},viewport:{once:!0,amount:.5},children:c.slogan}),(0,g.jsx)(u,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.8,delay:.2},viewport:{once:!0,amount:.5},children:c.introText})]}),(0,g.jsx)(x,{children:(0,g.jsxs)(y,{children:[(0,g.jsxs)(f,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},transition:{duration:.8},viewport:{once:!0,amount:.2},children:[(0,g.jsx)(b,{children:c.eyebrow}),(0,g.jsx)(w,{children:c.storyTitle}),(0,g.jsx)(v,{children:c.storyText})]}),(0,g.jsx)(j,{children:c.highlights.map(((e,t)=>(0,g.jsxs)(k,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.6,delay:.1*t},viewport:{once:!0,amount:.2},children:[(0,g.jsxs)(A,{children:["0",t+1]}),(0,g.jsx)(H,{children:e.title}),(0,g.jsx)(T,{children:e.description})]},e.title)))}),(0,g.jsxs)(z,{children:[(0,g.jsx)(S,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.6},viewport:{once:!0,amount:.2},children:(0,g.jsxs)($,{children:[(0,g.jsx)(C,{children:c.galleryTitle}),(0,g.jsx)(N,{children:c.gallerySubtitle})]})}),(0,g.jsx)(D,{children:c.photos.map(((e,t)=>{var i,a;return(0,g.jsxs)(I,{$col:null===(i=K[t])||void 0===i?void 0:i.col,$row:null===(a=K[t])||void 0===a?void 0:a.row,onClick:()=>r(e),initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.6,delay:.05*t},viewport:{once:!0,amount:.1},"aria-label":e.caption,children:[(0,g.jsx)(P,{src:e.src,alt:e.alt,loading:"lazy"}),(0,g.jsx)(L,{children:(0,g.jsx)(U,{children:e.caption})})]},e.src)}))})]})]})}),(0,g.jsx)(M,{children:(0,g.jsxs)(V,{children:[(0,g.jsx)(_,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.6},viewport:{once:!0,amount:.2},children:c.postersTitle}),(0,g.jsx)(F,{children:ee.map(((e,t)=>(0,g.jsxs)(O,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},transition:{duration:.6,delay:.1*t},viewport:{once:!0,amount:.2},children:[(0,g.jsx)(B,{src:e.src,alt:`Haihai Poster ${e.year}`,loading:"lazy"}),(0,g.jsx)(q,{children:e.year})]},t)))})]})}),(0,g.jsx)(o.N,{children:i&&(0,g.jsx)(Y,{initial:{opacity:0}
351,animate:{opacity:1},exit:{opacity:0},onClick:()=>r(null),children:(0,g.jsxs)(E,{initial:{opacity:0,scale:.98,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,y:10},transition:{duration:.3},onClick:e=>e.stopPropagation(),children:[(0,g.jsx)(G,{onClick:()=>r(null),"aria-label":t?"\u5173\u95ed\u56fe\u7247\u9884\u89c8":"Close image preview",children:"\xd7"}),(0,g.jsxs)(X,{children:[(0,g.jsx)(W,{children:(0,g.jsx)(Q,{src:i.src,alt:i.alt})}),(0,g.jsxs)(R,{children:[(0,g.jsx)(Z,{children:i.caption}),(0,g.jsx)(J,{children:i.detail})]})]})]})})})]})}},4695:(e,t,i)=>{i.d(t,{A:()=>x});i(5043);var a=i(5464),r=i(579);const n=a.i7` 352 0%, 80%, 100% { 353 transform: scale(0.8); 354 opacity: 0.5; 355 } 356 40% { 357 transform: scale(1.2); 358 opacity: 1; 359 } 360`,o=a.i7` 361 0%, 60%, 100% { 362 transform: initial; 363 } 364 30% { 365 transform: translateY(-10px); 366 } 367`,s=a.i7` 368 0%, 80%, 100% { 369 opacity: 0.3; 370 } 371 40% { 372 opacity: 1; 373 } 374`,l=a.i7` 375 0% { 376 transform: rotate(0deg); 377 } 378 100% { 379 transform: rotate(360deg); 380 } 381`,d=a.i7` 382 0% { 383 background-position: -468px 0; 384 } 385 100% { 386 background-position: 468px 0; 387 } 388`,c=a.Ay.div` 389 display: inline-flex; 390 align-items: center; 391 justify-content: center; 392 gap: 0.25rem; 393`,g=a.Ay.div` 394 width: 8px; 395 height: 8px; 396 border-radius: 50%; 397 background: var(--primary); 398 animation: ${n} 1.4s ease-in-out infinite both; 399 animation-delay: ${e=>e.delay}s; 400`,p=a.Ay.div` 401 width: 6px; 402 height: 20px; 403 border-radius: 3px; 404 background: linear-gradient(45deg, var(--primary), var(--accent)); 405 animation: ${o} 1.2s ease-in-out infinite; 406 animation-delay: ${e=>e.delay}s; 407`,h=a.Ay.div` 408 width: 10px; 409 height: 10px; 410 border-radius: 50%; 411 background: var(--primary); 412 animation: ${s} 1.4s linear infinite; 413 animation-delay: ${e=>e.delay}s; 414`,m=a.Ay.div` 415 width: ${e=>e.size||20}px; 416 height: ${e=>e.size||20}px; 417 border: 2px solid rgba(224, 43, 32, 0.1); 418 border-top: 2px solid var(--primary); 419 border-radius: 50%; 420 animation: ${l} 0.8s linear infinite; 421`,u=a.Ay.div` 422 width: ${e=>e.width||"100px"}; 423 height: ${e=>e.height||"20px"}; 424 border-radius: 4px; 425 background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); 426 background-size: 400% 100%; 427 animation: ${d} 1.2s ease-in-out infinite; 428 429 [data-theme="dark"] & { 430 background: linear-gradient(90deg, #2a2a2a 25%, #3a3a3a 50%, #2a2a2a 75%); 431 background-size: 400% 100%; 432 } 433`,x=e=>{let{type:t="pulse",size:i,color:a,className:n,...o}=e;switch(t){case"pulse":default:return(0,r.jsxs)(c,{className:n,...o,children:[(0,r.jsx)(g,{delay:0}),(0,r.jsx)(g,{delay:.2}),(0,r.jsx)(g,{delay:.4})]});case"wave":return(0,r.jsxs)(c,{className:n,...o,children:[(0,r.jsx)(p,{delay:0}),(0,r.jsx)(p,{delay:.1}),(0,r.jsx)(p,{delay:.2}),(0,r.jsx)(p,{delay:.3}),(0,r.jsx)(p,{delay:.4})]});case"fade":return(0,r.jsxs)(c,{className:n,...o,children:[(0,r.jsx)(h,{delay:0}),(0,r.jsx)(h,{delay:.5}),(0,r.jsx)(h,{delay:1})]});case"ring":return(0,r.jsx)(m,{size:i,className:n,...o});case"skeleton":return(0,r.jsx)(u,{width:o.width,height:o.height,className:n})}}},8805:(e,t,i)=>{i.d(t,{A:()=>b});var a=i(5043),r=i(5464),n=i(995),o=i(4117),s=i(3216),l=i(5200),d=i(8180),c=i(1291),g=i(4695),p=i(579);const h=(0,r.Ay)(n.P.button)` 434 position: fixed; 435 top: 100px; 436 left: 2rem; 437 z-index: 1000; 438 background: var(--primary); 439 border: none; 440 border-radius: 50px; 441 padding: 12px 20px; 442 display: flex; 443 align-items: center; 444 gap: 8px; 445 font-weight: 700; 446 color: white; 447 cursor: pointer; 448 transition: all 0.3s ease; 449 box-shadow: 0 6px 30px rgba(var(--primary-rgb), 0.4); 450 backdrop-filter: blur(10px); 451 452 &:hover { 453 background: var(--primary-dark); 454 transform: translateX(-3px) translateY(-2px); 455 box-shadow: 0 10px 40px rgba(var(--primary-rgb), 0.6); 456 } 457 458 svg { 459 color: white; 460 } 461`,m=r.Ay.section` 462 position: relative; 463 height: 70vh; 464 background-image: url(${e=>e.backgroundImage}); 465 background-size: cover; 466 background-position: center top; 467 display: flex; 468 align-items: flex-end; 469 overflow: hidden; 470 471 animation: backgroundScroll 40s ease-in-out infinite; 472 473 @keyframes backgroundScroll { 474 0% { 475 background-position: center top; 476 } 477 50% { 478 background-position: center bottom; 479 } 480 100% { 481 background-position: center top; 482 } 483 } 484 485 &::after { 486 content: ''; 487 position: absolute; 488 inset: 0; 489 background: linear-gradient( 490 180deg, 491 transparent 65%, 492 rgba(0, 0, 0, 0.6) 100% 493 ); 494 } 495 496 > div { 497 position: absolute; 498 left: 0; 499 right: 0; 500 bottom: 1rem; 501 z-index: 2; 502 padding: 0 2rem; 503 } 504`,u=(0,r.Ay)(n.P.h1)` 505 font-size: 4rem; 506 margin: 0 0 1.5rem 0; 507 font-weight: 900; 508 color: #ffffff; 509 letter-spacing: -0.02em; 510 line-height: 1.1; 511 512 @media (max-width: 768px) { 513 font-size: 2.8rem; 514 margin: 0 0 1rem 0; 515 } 516`,x=(0,r.Ay)(n.P.div)` 517 display: flex; 518 flex-direction: column; 519 gap: 0.8rem; 520 521 @media (max-width: 768px) { 522 gap: 0.6rem; 523 } 524`,y=r.Ay.div` 525 display: flex; 526 align-items: center; 527 gap: 0.8rem; 528 color: rgba(255, 255, 255, 0.9); 529 font-size: 1.1rem; 530 font-weight: 500; 531 532 svg { 533 color: var(--primary-light); 534 flex-shrink: 0; 535 } 536 537 @media (max-width: 768px) { 538 font-size: 1rem; 539 gap: 0.6rem; 540 } 541`,f=r.Ay.div` 542 display: flex; 543 justify-content: center; 544 align-items: center; 545 height: 70vh; 546 background: var(--background); 547`,b=e=>{let{eventSlug:t,defaultTitle:i,defaultImage:r}=e;const{t:n,i18n:b}=(0,o.Bd)(),w=(0,s.Zp)(),v="zh"===b.language,[j,k]=(0,a.useState)(null),[A,H]=(0,a.useState)(!0);if((0,a.useEffect)((()=>{(async()=>{try{const e=await(0,d.kQ)();let i=null;"qin-society"===t?i=e.find((e=>e.title.toLowerCase().includes("qin society")||e.title.includes("\u7434\u793e")||e.title.includes("\u53e4\u7434\u4f1a")||e.title.includes("\u7434\u4f1a"))):"new-year-concert"===t?i=e.find((e=>e.title.toLowerCase().includes("new year concert")||e.title.includes("\u65b0\u5e74\u97f3\u4e50\u4f1a"))):"hihi"===t?i=e.find((e=>e.title.toLowerCase().includes("hihi")||e.title.toLowerCase().includes("haihai")||e.title.includes("\u6d77\u6d77"))):"reading-club"===t&&(i=e.find((e=>e.title.toLowerCase().includes("reading club")||e.title.includes("\u8bfb\u4e66\u4f1a")))),i&&k(i)}catch(e){console.error("Error fetching event data:",e)}finally{H(!1)}})()}),[t]),A)return(0,p.jsx)(f,{children:(0,p.jsx)(g.A,{})});const T=r,z=j?j.title:i;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(h,{onClick:()=>w("/events"),initial:{opacity:0,x:-20}
547,animate:{opacity:1,x:0},transition:{delay:.5},whileHover:{scale:1.05},whileTap:{scale:.95},children:[(0,p.jsx)(l.kRp,{}),v?"\u8fd4\u56de\u6d3b\u52a8":"Back to Events"]}),(0,p.jsx)(m,{backgroundImage:T,children:(0,p.jsxs)("div",{children:[(0,p.jsx)(u,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:.8},children:z}),j&&(0,p.jsxs)(x,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.8,delay:.3},children:[(0,p.jsxs)(y,{children:[(0,p.jsx)(l.wIk,{}),(0,p.jsx)("span",{children:(0,c.pd)(j.startDate,j.endDate,b.language)})]}),j.location&&(0,p.jsxs)(y,{children:[(0,p.jsx)(l.HzC,{}),(0,p.jsx)("span",{children:j.location})]})]})]})})]})}}}]); 548//# sourceMappingURL=953.0932646a.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.