PageSourceSearch

https://www.utchinese.org/static/js/953.0932646a.chunk.js

js utchinese.org collected 2026-10-04 10:07:33 UTC 30,678 bytes, 548 lines download raw bytes

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.