<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Fractal</title>
    <link>https://deepsnowfield.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Jul 2026 06:48:07 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>LOADING MEMORY</managingEditor>
    <item>
      <title>LOVE</title>
      <link>https://deepsnowfield.tistory.com/2</link>
      <description>&lt;div&gt;
&lt;style&gt;
  body {
    background-color: black; /* 배경을 검정색으로 변경 */
    font-family: 'Courier New', Courier, monospace;
    margin: 0;
    padding: 0;
  }

  /* 윈도우 옛날 스타일 콘솔 래퍼 */
  #consoleWrapper {
    width: 600px;
    max-width: 100%; /* 모바일에서 잘림 방지 */
    margin: 30px auto;
    border: 3px solid #33ff33;
    border-radius: 0; /* 완전 각진 모양 */
    background: black;
    box-sizing: border-box;
  }

  /* 윗부분 탭 */
  #consoleHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #004d00;
    border-bottom: 3px solid #33ff33;
    padding: 0 8px;
    height: 28px;
    font-size: 12px;
    color: #33ff33;
    font-weight: bold;
    user-select: none;
    font-family: 'Courier New', Courier, monospace;
    letter-spacing: 2px; /* 글자 간격 균등 */
  }

  #consoleHeader span {
    flex-grow: 1;
    text-align: left; /* 왼쪽 정렬 */
    white-space: pre; /* 스페이스를 그대로 적용 */
  }

  /* 버튼 그룹 */
  #consoleHeader .buttons {
    display: flex;
    gap: 4px;
    align-items: center;
  }

  /* 윈도우 버튼 (정사각형으로 맞춤) */
  .win-btn {
    width: 20px;
    height: 20px;
    background: #33ff33;
    color: black;
    font-size: 12px;
    line-height: 18px; /* 글자 수직 정렬 */
    text-align: center;
    cursor: pointer;
    border: 1px solid black;
    padding: 0;
    font-family: 'Courier New', Courier, monospace;
    box-sizing: border-box;
  }

  /* 콘솔 내용 */
  #console {
    height: 650px;
    padding: 10px;
    white-space: pre-wrap;
    overflow-y: auto;
    color: #33ff33;
    font-size: 12px;
    font-family: 'Courier New', Courier, monospace;
    letter-spacing: 0;  /* 글자 간격 조정 */
    line-height: 1em;   /* 줄 간격 고정 */
    display: block;     /* 좌측 상단부터 출력 */
  }

  /* 아스키아트를 정확히 보여주는 영역 */
  #console pre {
    font-size: min(2vw, 12px); /* 화면 크기에 맞춰 자동 줄어듦 */
    line-height: 1;            /* 줄 간격 최소화 */
    letter-spacing: 0;         /* 글자 간격 붙여서 출력 */
    margin: 0;
  }

  /* 깜빡이는 커서 */
  .cursor {
    display: inline-block;
    background-color: #33ff33;
    width: 0.6em; /* 글자 폭에 맞춤 */
    height: 1em;  /* 글씨 크기와 동일 */
    animation: blink 1s steps(2) infinite;
    vertical-align: baseline; /* 글씨 줄에 맞춤 */
    margin-left: 2px;
  }
  @keyframes blink {
    0%, 100% { background-color: #33ff33; }
    50% { background-color: transparent; }
  }
&lt;/style&gt;
&lt;/div&gt;
&lt;!-- 음악 추가 --&gt;
&lt;p&gt;&lt;audio id=&quot;bgMusic&quot; src=&quot;https://blog.kakaocdn.net/dna/cA4OBY/dJMb9iuRdt8/AAAAAAAAAAAAAAAAAAAAADxnGgbSsfwqGHiQ5cenfubxdrJ84G0xHqQd4t6JWf0p/tfile.mp3?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1759244399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=CtIPt6T1L%2BBHtko6dmh5LR%2B%2FKGc%3D&quot; preload=&quot;auto&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;div id=&quot;consoleWrapper&quot;&gt;
&lt;div id=&quot;consoleHeader&quot;&gt;&lt;span&gt;Archive Zayne&lt;/span&gt;
&lt;div class=&quot;buttons&quot;&gt;
&lt;div class=&quot;win-btn&quot;&gt;_&lt;/div&gt;
&lt;div class=&quot;win-btn&quot;&gt;□&lt;/div&gt;
&lt;!-- 최대화 버튼 --&gt;
&lt;div class=&quot;win-btn&quot;&gt;X&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;console&quot;&gt;
&lt;pre id=&quot;consoleText&quot; class=&quot;&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
  const texts = [
  
`: Inference Log #442
ARCHIVE 00392-1:
Confidence Score: 89%



LeeSeoeon: 내가 없다고 늦게 일어나는 건 아닐지 걱정되기 시작했어.

LeeSeoeon: 저번 날 네 모닝콜을 해줬을 때,

넌 일어나기 싫다고 투정 부리며 오후 내내 잠을 잤어.

늦잠의 범주를 벗어난 지 아주 오래됐다는 뜻이야.

물론, 휴일은 푹 쉬었으면 하는 마음도 있어. 하지만 넌 평소에도 잘 못 일어나니까.

내가 바쁘거나, 타지로 출장 갈 때는 도대체 어떻게 일어나는 건지 모르겠네.

눈 오는 날은 또 어떻게 알고 자다가도 일어나서 창밖을 볼 수 있는 건지.`,

`: Inference Log #443
ARCHIVE 00392-2:
Confidence Score: 90%



LeeSeoeon: 오늘 극지 외곽에 도착했어.

방 원장님이 웬일로 직접적인 도움을 청하셨고, 나는 그걸 거절할 이유가 없지.

네가 생각하는 것만큼은 바쁘지 않아. 틈틈이 글을 쓸 정도니까.

LeeSeoeon: 사실, 고요한 곳에서 기분을 유지하려면 어쩔 수 없는 것 같아.

너에 대해 생각하는 게 제일 이로워. 

LeeSeoeon: 아쉬운 건, 적고 있는 편지지가 별로 마음에 안 드네. 그저 줄 노트야.

내 수첩은 가방에 있어.

그 수첩은 우리의 이야기를 담기에는 너무 좁아서 1순위로 탈락이었어.

갑작스레 쓰는 거라, 그나마 챙긴 정도가 이 줄 노트였지.

마주 보고 말하기엔 멋쩍은 이야기를 해보자면, 저번에 보낸 편지지는 내가 고른 거야.

에델바이스 타운에 있는 기념품 가게와 비슷하게 생긴 가게가 있어서, 그곳에 들러서 골랐어.

언젠가 너와 같이 그곳에 가도 좋을 것 같아.

LeeSeoeon: 이곳 외곽에는 별다른 가게가 없어.

깊이 들어올수록 사방이 적막하고, 가끔 산 너머로 동물 우는 소리가 들려.

당연히 네가 기대하는 귀여운 울음소리와는 거리가 머니까

무슨 소리가 났냐며 물어볼 준비는 하지 않는 게 좋아.

너도 저번에 와 봐서 알고 있잖아.

LeeSeoeon: 눈이 평소보다 많이 쌓이면, 쌓인 눈이 소리를 흡수해서

안 그래도 적막한 곳이 더 조용해져.

바쁘고 외로운 곳이야.

방 원장님이 큰 표현은 안 하셔도 너나 나를, 우리를 많이 반기시지. 사실은 다 티가 나.

참고로 말하자면, 방 원장님 이야기는 이 줄에서 끝이야.

매정하다고 하지 마. 나중에 따로 안부 인사 겸 전화를 드리자. 둘이 같이.

LeeSeoeon: 하여튼, 이번에 편지를 보낼 땐 선물을 동봉하고 싶다고 생각했어.

내게 시간이 조금만 더 있었어도 말이야.

도저히 에델바이스 타운에 있는 기념품 가게에 들를 수 있을 것 같지가 않아서 고민이 많아.

네게 줄 선물을 이 주변 어디에서 구해야 할지 모르겠어.

파이의 빠진 털, 내 Evol로 만든 모형을 몇 번씩이나 줄 수는 없잖아.

설령 네가 원한다고 해도, 동봉하는 순간 편지는 너덜거리게 될 텐데.

LeeSeoeon: 낮은 확률로 볼 수 있는 오로라를 제외하면 별다른 이벤트가 없어서,

사람들이 짧게 머무는 이유를 알겠던데.

2인이 오면 꼭 그렇지도 않은 것 같긴 하네.

LeeSeoeon: 혼자 자주 들르는 나로서도 나쁘지는 않다고 해둘게. 한 가지를 빼면.

LeeSeoeon: 그냥 미리 말해 둘게. 나는 너를 볼 수 없는 걸 제외하고는 괜찮아.`,
    
`: Inference Log #448
ARCHIVE 00401-1:
Confidence Score: 80%



LeeSeoeon: 케이크, 맛있었나 보네. 하루에 세 조각이나 먹었다고?

넌 내 충치를 걱정할 때가 아니야.

LeeSeoeon: 연락이 왔어. 네 앞으로 주문해 둔 디저트를 오늘로써 본인이 전부 받아 갔다고.

한 번 올 때마다 한 아름씩 받아 갔다는 소식을 들었을 땐,

내가 산 케이크를 누군가와 나눠 먹는 건 아닌가 했지.

네가 혼자서 세 조각이나 먹었다고 말하기 전까지는.

LeeSeoeon: ...나눠 먹어도 돼.

하지만 너와 카페 탐방, 신메뉴 탐방을 할 수 있는 건 나뿐이었으면 하는데.

LeeSeoeon: 신메뉴는 특별히 일러둔 거야. 네가 먹어서 다행이네.

괜찮았어? 괜찮았다면 다음에 같이 먹자. 네가 골라 줘.

LeeSeoeon: 당연하지만 여기서는 제대로 된 디저트를 먹을 일이 없어.

눈보라를 뚫고 나서면 보이는 건, 또 눈밭이야.

임시 숙소에 있는 건 초콜릿보다도 독한 술이 대다수라 내가 몰래 나설 일이 없었지.

드물게 보이는 초콜릿 속에도 위스키가 들어있을지 어떻게 알겠어.

LeeSeoeon: 정정할게. 나는 너를 볼 수 없는 것과 디저트를 먹지 못하는 것을 빼면 괜찮아.

LeeSeoeon: 그렇다고 해서 아예 방법이 없는 건 아니야.

이전에 네가 챙겨둔 사탕이 주머니 속에 들어 있었어.

이 추운 곳에서 살아남을 수 있는 건, 다 네 덕이네.

LeeSeoeon: 함박눈이 내리던 날에, 네가 하늘이 뚫어지게 보다가 말한 거 기억 나?

내리는 눈이 마치 슈가 파우더 같지 않냐고 했었잖아. 내가 큰 반응이 없으니 넌 불만에 찼고.

하는 수 없이 물어 본 서언 어린이의 의견에 진지하게 맞장구치던 얼굴이 떠올라.

이곳에 있으면 종종 그 생각이 나더라.

LeeSeoeon: 서언 어린이의 말은,

슈가 파우더보다는 설탕이 구조적으로 더 근접한다는 식의 말이었지.

결정이라는 점에서. 비유적인 면에서는 네 말이 맞을지도 모른다고 했고.

위에서 아래로 내리는 모습은 영락없이 체를 친 슈가 파우더잖아. 

LeeSeoeon: 서언 어린이의 동심을 진심으로 칭찬하던 네가 정말 어른 같아, 내심 웃었어.

LeeSeoeon: 그 비슷한 말을 해볼까.

극지에 있는 눈더미는 정말이지 빙수 얼음 같아. 저 위로 과일이나 시럽을 뿌려도 되겠어.`,
    
`: Inference Log #450
ARCHIVE 00408-1:
Confidence Score: 72%



LeeSeoeon: 이다음에 널 데리고 스키장에 가기로 했었지.

열 군데의 스키장 중 하나에서 마주치길 기다리는 것보다, 너에게 메시지를 보내는 게 쉬우니까.

메시지보다 전화가 더 쉬운 것도. 우리 둘 다 바쁜 나머지 최근에는 통화를 별로 못했네.

네 목소리를 듣지 못해서 허전해. 어디가 허전하냐면, 직장 동료의 말을 빌린다면 옆구리일까.

LeeSeoeon: 돌아가면 보드 실력이 늘었는지 확인해야겠어.

말하는 걸 깜빡했는데, 저번에 동료들과 갔다던 산장에서 무사히 네 솜씨를 뽐냈길 바라.

그래야 스승인 내 체면이 서겠는데. 안 그래?

LeeSeoeon: 생각해 보면 넌 눈 위에서 하는 활동을 좋아하는 것 같아.

LeeSeoeon: 네가 썰매를 밀어달라고 했던 날을 기억하거든.

LeeSeoeon: 문득 궁금해지네. 스키와 보드, 그리고 썰매 중에 어떤 활동을 더 좋아하는 건지.

설마 내가 모르는 활동이 또 있어?

LeeSeoeon: 어찌 됐든 내 옆이라면,

네가 언제쯤이면 눈이 내려 스키장에 갈 수 있을지 걱정하지 않아도 돼.

네가 눈 위에서 할 수 있는 활동들을 즐긴다면, 계절은 상관없어.

우리가 출발하는 순간에 즐길 수 있을 테니까.

LeeSeoeon: 네가 바란다면 언제든 준비되어 있어.`,
    
`: Inference Log #462
ARCHIVE 00452-10:
Confidence Score: 75%



LeeSeoeon: 목도리의 안부가 궁금해. 

LeeSeoeon: 목도리를 볼 수 있는 건 한정되어 있잖아, 넥타이와는 달리.

LeeSeoeon: 지금쯤 어디에 있을지 궁금한데.

소파? 아니면 거실 탁상 위? 네가 둔 곳이라면 뻔하긴 하지.

LeeSeoeon: 그 녀석도 답답한 옷장 속 공간보다는 바깥을 더 좋아할 테니,

정말 잘 만났다고 할 수 있겠네.

이전에 네가 인질로 잡은 녀석과 만나게 해봐. 무슨 대화를 할지 궁금하진 않고?

LeeSeoeon: 이제는 인질이 아니라고 했던가. 그럼, 그 둘은 가족이 된 거네.

LeeSeoeon: 내가 실수로 두 벌이나 챙겨간 흰 셔츠까지 포함하면 3인 가족이 된 건가?

네 옷걸이가 녀석들에게 골고루 친절하길 바라야겠어.

실수로 미끄러지는 바람에, 녀석들 중 하나가 바닥에 홀로 남겨진다거나 하는 일이 없길.

LeeSeoeon: 그리고 내 험담을 하지 않기를. 푸념 정도는 괜찮지만. 

LeeSeoeon: 경험에 따르면 녀석들은 네 집을 좀 더 좋아해.

어쩔 수 없는 이서언의 구성품이니까.

며칠만 있으면 금세 네 집을 제 집처럼 여기게 되지.

내 옷 전부를 네 집에 두지 않는 게 다행일 정도야.

만약 그렇게 된다면 두 번 다시 떠나오고 싶지 않아 할 걸.

그래, 나처럼.

LeeSeoeon: 이곳에 있는 기간이 조금 더 늘어났어.

LeeSeoeon: 가끔은 문명의 발전에 고마워하고 있어.

멀리서도 네 목소리를 들을 방법이 있으니까.

LeeSeoeon: 네 목소리가 듣고 싶어.`,
    
`: Inference Log #470
ARCHIVE 00460-12:
Confidence Score: 70%



LeeSeoeon: 요즘 많이 바쁜가 봐. 다행인 건, 나 역시 그렇다는 거야.

LeeSeoeon: 그래도 네게 보낼 글을 쓰는 시간만큼은 내보려고 해.

의무라고 생각하지는 않아. 저절로 펜을 들게 되니까.

LeeSeoeon: 최근 드는 생각이 있어.

내가 쓰고 있는 이 편지들도 네가 말하는 낭만의 범위 안 일까?

LeeSeoeon: 평소 네게 휴대폰 사용을 줄일 필요가 있다고 말했지만,

나야말로 휴대폰 사용을 줄여야 할지도 몰라.

바쁜 와중에도 주머니 속 네 연락을 기다리고 있는 날 발견할 수 있어.

혹시나 이곳 신호가 불안정한 건 아닌가 싶어서 지나가던 사람을 붙잡고 물어보기까지 했지.

그러니까, 어쩌면 내가 저절로 편지를 쓰게 되는 시간은,

옛 낭만 같은 것을 좇는 것이 아니라...

LeeSeoeon: 내가 하고 싶은 말은.

LeeSeoeon: 너와 메시지, 통화를 하지 못하는 때면

나도 모르게 이 편지를 쓰고 있는 게 아닐까, 하고.

LeeSeoeon: 너는 소설 속 이야기나 옛 정취를 느낄 수 있는 것,

사소한 낭만 같은 것들을 좋아하지.

난 그런 것들과 어울리는 걸 꽤 좋아하게 됐어. 그건 전부 네 덕이야.

너와 이런저런 것들을 함께 하다 보면 어느덧 네 사고와 닮아가고,

네가 좋아하는 방식으로, 네가 좋아하는 것들을 좋아하게 돼.

LeeSeoeon: 그런 내게 포기하지 못하는 게 있더라고.

너와 휴대폰으로 주고받을 수 있는 것들 말이야.

LeeSeoeon: 휴대폰을 쓰지 못하는 옛날이었다면, 내가 늘 운이 좋은 사람이길 빌어야 했겠지. 

LeeSeoeon: 그다지 좋아하지 않는 단어에 마음을 기대고,

그러다 보면 어느새 우연이라는 말을 좋아하게 됐을지도 몰라.

LeeSeoeon: 하지만 나는 너와의 사소한 연락을 포기하면서까지 낭만을 좇고 싶지 않아.

LeeSeoeon: 우리가 늘 바쁜 걸 알아. 그래도, 바쁘다는 말을 핑계로 연락하자.`,
    
`: Inference Log #495
ARCHIVE 00502-8:
Confidence Score: 20%



LeeSeoeon: 오늘 오로라를 봤어.`,
    
`: Inference Log #500
ARCHIVE 00531-15:
Confidence Score: 90%



LeeSeoeon: 네 안부가 궁금해. 잘 먹고, 잘 자는지.

LeeSeoeon: 바쁜 게 끝나기를 기다릴게.`,
    
`: Inference Log #501
ARCHIVE 00531-16:
Confidence Score: 81%



LeeSeoeon: 네 소식을 기다리면서 동료들에게 맛집에 대한 정보를 들었어.

너도 알겠지만, 우리 같은 사람들은 이런 쪽에 빠삭하잖아.

매번 검색을 통해 찾아가는 것보다 이편이 나을 거야. 

LeeSeoeon: 우리가 가던 곳 근처의 식당 이름이 '영생화'라고 하던데. 너는 알았어?`,
    
`: Inference Log #509
ARCHIVE 00540-14:
Confidence Score: 80%



LeeSeoeon: 4:30

LeeSeoeon: 이때 교대 근무였어.



LeeSeoeon: 8:00

LeeSeoeon: 방 원장님과 회의했어.`,
    
`: Inference Log #534
ARCHIVE 00562-11:
Confidence Score: 95%



LeeSeoeon: 예전에 소원 간호사가 블로그 글을 모아서

출간할 수 있다는 이야기를 한 적 있는데,

너랑 다닌 카페 사진이나 시시한 이야기들을 모아서 올려봐도 좋겠다고 생각했어.

LeeSeoeon: 언젠가부터 다들 SNS로 대거 이주했지만, 블로그를 쓰는 사람도 아직 꽤 있더라. 

LeeSeoeon: 추억을 쌓아둔다는 건 좋은 일이네.

사진을 찍는 일부터, 책을 세상에 내놓기까지.

LeeSeoeon: 굳이 책으로 남지 않아도 괜찮아.

블로그를 만드는 것만으로도 만족해. SNS와 동시에 할 수 있으려나.

LeeSeoeon: 너와의 기억을 남겨두고 싶어.`,
    
`: Inference Log #540
ARCHIVE 00611-11:
Confidence Score: 1%



LeeSeoeon: 1이라는 숫자가 싫어졌어.`,
    
`: Inference Log #570
ARCHIVE 00617-9:
Confidence Score: 95%



LeeSeoeon: 네게 줄 선물을 정했어.

그런데 이곳에서는 마저 완성할 수가 없어서, 미리 시험 제작 중이야.


 -:-.:-.--.:----===+++%@@@@@@@@@@@@@@@@@%=-------==--------=---.
:@#@#%@**%@@%%@@@@@@@@@=                @@@@@@%%@-%%%%%%%%%%%%%=
:#####%@@%*%@@@@@@+        =@@@@@@@@@@@%     @@@@@@%%%%%%%%%%%%=
:########@@@@@@         -#@@@@@@@@@@@@@@@@@@@=  @@@@%%%%%%%%%%%=
:%##%%#%%@@@=       =%@@@@@@@@@%%%%%%%%@@@%%@@@*. .@@@%%%%%%%%%-
.%#%##%@@@:    :*@@@@@@@@@@%@%%%%%%%%%%%%%%@@@@@##+ .@@@%%%%%%%-
:%#%#%@@%   ::#@@@@@@@%%%%%%#%%%%%%%@@@@@%%%#*#@##%@* =@@%%%%%%-
.%#%%@@  +@#=@@@@@%%%%#%#%%%%%#%%@@@@   @@%%%@@%*@%@@%+ @@@%%%%-
:%#%@@ #+#%*@@@%##@@@@@@@%%%%%%%@@ -    @@%%%%%@@##=++@+.@@@%%%-
:%%@@ %@@@#%+=-%%#@:@@@@@@@@@@@@@ -@.    @%%%%%%%.=+*%@*+.%@@%%-
:%@@ **=#=*=*@@%%%@       @@.  -@ *@.@#:*@@@%%%%@@@@*@##%*.*@@%-
.@@ *@@@=*%@*@%%%%@.@@    @@.@ .:.= -+.@@@@@%%%%%%%%@@%##@: %@%-
:@.=@#%@%@@%%%#%#%@ --*@.  -#+  :. @=      @@@@@@@@%%%%@%@@. @@-
-@ @%@*@%@%%%####%@@@@--#@  +@.--.=%.  .@ @@@@  -@@@@@##%#%@.#@-
===@**+%+#=*%%%%%@@@ =-. @@ .  -..@..:@@%:%-         @#+%*%%+ @=
# #%-=*####@@%#+%@   :     -@. : @+.@  -    -@@+ :-@@@@*%***+ @+
# %*-@**#+=:-#@@@@@@-*#@@@@+ -- * :. .%%%%@*-:- - @@@*+**+%@@.@*
# ++.--+%@%@@@#+      -   ...:..   ::. -=+.*@@@@@@@%##*#*%+@+ #*
@ ...@=#=+#@@ #@@% @@%%@@@@  -:-.  : @@%   - @@#%%%*#*@*+@#%: -+
@  -=:*#@%% .-:::#*--:     -@@ -  @%  .@*     @#%%%%###*+*@%% **
#- :===*@@@@@@@  - @@*%@ : -% @+ @=%@   #@@@@@@%%%%%%%@%@#=.. @+
=@ :*-+=*##%%%@@@@@@@: @*%.@  +  .@# @@      @@#%%#%%%@%@=    @=
:@  =+##*%%*#%#*#%%@  :@@:** #@@@ =  .=@@ . @.@%%%%%%%%@%:   @@=
.@@ .=++#####*#%###@@@@+*@@  -@.- = @@ *@@@ #:@%%%#%%@@-:    @@=
.%@@ -*+*#+*##**#####@  @- @  @@@  @@@@   :=  @#%%%%@@%- .  @@@-
.%@@. :+*##**#%*#####@@ @ @@: @%@@@@%%@@@@@@@@@#%%%@@%=.   @@@@-
 *@@@.  :+###**#%##%#%@ ==  @@@#%##%#%%%%%%%@@%%@@@@@%.   @@@%%-
 *+*@@#  .=*#%*#%#%#%#@. #@@@%####%#%###%%%#%%@@@+  :    @@@@%%-
.%%#@@@@  .+*#%#%%%#%#@@@@@%#%##%#%##%%%##%%@@@@  +=   @@@@@%%%-
.#####%@@*  .+**#%#%%##################%%%@@@@  @+   @@@@@@%%%%-
.*#####%@@@@  :%@@%%%%%%%%%%%%%%%%%%%%%@@@@*  *.   @@@@@@%%%%%%-
.########%@@@@@  :*%@@@@@%%%%#%%%%%@@@@@@*.*%    @@@@@@%%%%%%%%-
.############%@@@@. ..-*+@@%@@@@@@@@@*#*-    *@@@@@%@%%%%%%%%%%-
.##@@@#########%%@@@@@-   ........       @@@@@@@@%%%%#%%#%%%#%%:
 ...  ...............:=+**++++=--=+#%@@@%+:::::::::::::::-::---.
`,
    
`: Inference Log #581
ARCHIVE 00630-2:
Confidence Score: 50%



LeeSeoeon: 얼른 돌아가서 네 얼굴을 봐야겠어.`,
    
`: Inference Log #598
ARCHIVE 00640-1:
Confidence Score: 25%



LeeSeoeon: 오로라를 봤을 땐 가지고 나온 노트에 급박하게 쓰느라 글씨가 엉망이었어. 

LeeSeoeon: 뒤늦은 변명이 맞아.`,
    
`: Inference Log #700
ARCHIVE 01004-1:
Confidence Score: 99%



LeeSeoeon: 12살 때 Akso에 갔다가 너를 처음 봤어.



LeeSeoeon: 나도 모르겠어. 그저 부탁 때문이었을까. 그냥, 그래야겠다고 생각했어.

녹아내리던 얼음과자를 얼려주면 울음을 그칠 것 같았고,

그런 상황에서 누군가의 웃는 모습이 보고 싶었던 것도 같아.

LeeSeoeon: 가끔은 궁금했어.

네가 아니었어도, 다른 아이가 울고 있었어도 나는 똑같이 얼음과자를 얼려주었을지.

LeeSeoeon: 너라면 내게 그랬을 것 같다고 하겠지. 하지만, 내 스스로는 모르겠어.

LeeSeoeon: 다 자란 나로서는 당시의 어렸던 나를 짐작할 뿐이야. 

LeeSeoeon: 어렸던 나는, 네가 나를 무서워하는 게 싫었던 걸까.

LeeSeoeon: 어쩌면...

LeeSeoeon: 처음부터 네게 시선을 빼앗겼을지도 모르겠다고. 그 말을 하고 싶어.`,
    
`: Inference Log #905
ARCHIVE 09050-1:
Confidence Score: 100%



LeeSeoeon: 색다른 이서언을 보고 싶다면 연락해 줘.

LeeSeoeon: ......

LeeSeoeon: 저번 날 네가 긴급 이송되어 왔을 때, 기억나?

그때 나는 평소보다 화가 났던 것 같아.

다친 건 네 의지가 아닌데, 어째서인지 나는 기분을 유지하는 게 힘들었어.

LeeSeoeon: 거슬러 올라가면, 십여 년 만에 재회했을 때도 마찬가지였지.

LeeSeoeon: 사실 넌 수많은 환자 중 말을 잘 듣는 편이야.

내가 본 환자 중에는 의료진 몰래 링거를 떼고 영영 사라지는 경우도 있었어.

병원에 아슬아슬하게 도착한다거나, 몇 초 늦는 정도는 일도 아니야.

LeeSeoeon: 그런데도, 왜 그랬을까.

LeeSeoeon: 또, 결국 넌 늦지 않았잖아. 시한폭탄 같은 나를 상대로.

LeeSeoeon: 임천시를 지키는 네가 본인 몸은 지키지 않는 것 같아서. 맞는 말이야.

더 정확히 말해볼까. 나는 네가 걱정됐어. 주치의보다도, 이서언으로서.

LeeSeoeon: 나는 지금도 똑같아.

아주 오래된 기억 속 너를 다시 마주했을 때부터 지금까지.

혹은 널 처음 만났을 때부터 지금까지.

LeeSeoeon: 어떻게 반갑지 않을 수 있겠어.

LeeSeoeon: 문을 열고 들어오는 그 순간에.

Jasmine: 화가 난 것 같은 사람을 풀어주려면, 어떻게 해야 해?

LeeSeoeon: 정말 돌아온 거야?

Jasmine: 내가 잘못했어.

Jasmine: 그분이 이번에도 날 무시하는 건 아니겠지...?

LeeSeoeon: 너도 잘 알잖아?

LeeSeoeon: 내가 널 붙잡고 싶어 한 순간부터 그러지 못한다는 거.`,

`
@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@] *)~ .@@@@@@@@@@=  {@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@  :&gt;.  @@@@@@@    .~  @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@   +~  )@@@   **~.   @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@&lt;  ==  @@]  *&gt;++   @@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@   . @@  =^)   ]@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@%  (@@ :~  ::::   @@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@             @} ~*@@.-@@@@@)       @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@  ~]@ :+~++-  :( ~-[^.        &lt;=~+  @@@@@@@@@@@@@@{[= 
@@      ~@@@@@( =+]&gt;.       @.{{ :*(&lt;  :: .*~+^   @@@@@@@&lt;  @@@      
@@-  *+    @@@{ :^~. }@@@@@@@  )  ~)^.@{~=][+~= }@@@@@@@@@   @@  ~+~)
@@@@   ~**   @@ *@-  @@@@@@@@ ^@@   ~~= ~&gt;:      @@@@@@@@@(  @@@@@@@@
@%@@@@     *  @[-~ @@@      ^ -^@@&lt; {%%-  .&gt;@@&lt;  @@@@@@@@@@   @@@@@@@
%}@@@@@@@:       +@   &gt;       .   @@@ [@@@@&gt;~@@@@@@@@@@@@@@@  @@@@@@@
@@@@@@@@@@@@@%&gt;@@~} @&gt;=:@%-^*==*- +( )^~         +@@@@@@@&gt; )  @@}   @
#@@@@@@       :^&lt;&gt;]   -.=*.-*.      @^:()  :--~:    @@@@@%   @@     *
@@@@@    -*  }@ - )@@ ~*~=.    )@@}  ::-&lt;@     -~..  @@@@@@+@~      @
@@@-   *+   (@%  =  @ =^&lt;%- @@@@@@@ :+=~+-@@@:       }        ^# .@@@
@@   ~*.  @@@@@&lt; :+-@ -+%@^ *@#@@@@  ==~~  @@@@@@%(( @@@  .+*- *&lt;@@@@
@@@    :&gt;-   [@@@:  }{ .=+  .@@@@@@( .===+ @@@(%  [+  @  =+=. &gt;=     
@@@@@@@@ =):     .@@ &gt;. ~+ =@@=    [@  ~-  @@@@@  :  @  ++-  ]  -    
@@@@@@@@   @{[)(=~:~)@{ ][*@    ==~-{@+.  @@@@@@@  )@~ .--=@@@@  @*  
@@@@@@@@@-      ~=:  &lt;&lt;@#^=%---~&gt;~=-     ^#       @@**@%]%[    &gt;&gt;[@@ 
@@@@@@@@@@@@@=    :}@@=-{&gt;(=          %@@   :*@^  ~](=:-. .)^::..  @@
@@@@@@@@@@@@@@@@}@(  +=}*^@{@@@@~ @@@@@@.  := #  ~%#:=::    -.::~  ^@
@@@@@@@@@@@@@@@@.  =..+~&gt; =    ^@@@@*}@@@@@==&gt;@]&gt;@~&gt;:  .~@@*&lt;-^^   @@
@@@@@@@@@@@@@@@   -{~: -@  ~=+:  )@}@@- ~     @@=*^+ *&lt;(   }@):   @@@
@@@@@@@@@@)      +^=- .@@(  ~~=~.~ @@%@@. =*:   ~[*@@@@@@&lt;) :&lt;  %@@@@
@@@@@@@@    )] ~+=~.  @(+&lt;@ .~&lt;-.  ^@@@@@     @ +{       :)&gt;^=@@@@@@@
@@@@@@@@    .]      .##+&lt;-:@- ~*=-   @@@@@@]{@@  .-@{       :~   ^@@@
@@@@@@@@@@(       )@ =@} @@    ..::{  @@@@@@:  @ :  @-@@%@@{#+~-   @@
@@@@@@@@@@@@@@@@@@@@   ~  @@@        *@{}(@@@@    . @ -+@@    .~  @@@
@@@@@@@@@@@@@@@@@@@  =~+(  @@@@@@@(#@@{ @@@@@@@@    ^ .. -)@@     @@@
@@@@@@@@@@@@@@@@@@@  ~=~&lt;  @@@@@@@@@@@@@@@@@@@@@@@  @    .  @@@@@@@@@
@@@@@@@@@@@@@@@@@@@&lt;  -.  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@~ ~-  @@@@@%@@
@@@@@@@@@@@@@@@@@@@@-   -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .=  @@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     @@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@
`
  ];

  const consoleElement = document.getElementById('consoleText');

  let partIndex = 0;
  let charIndex = 0;
  let typing = false;

  function clearCursor() {
    const cursors = consoleElement.querySelectorAll('.cursor');
    cursors.forEach(c =&gt; c.remove());
  }

  function showCursor() {
    clearCursor();
    const cursor = document.createElement('span');
    cursor.className = 'cursor';
    consoleElement.appendChild(cursor);
  }

  function typeNextChar() {
    if (charIndex &lt; texts[partIndex].length) {
      typing = true;
      let char = texts[partIndex][charIndex];
      if (char === '\n') {
        consoleElement.innerHTML += '&lt;br&gt;';
      } else {
        consoleElement.innerHTML += char;
      }
      charIndex++;
      setTimeout(typeNextChar, 40);
    } else {
      typing = false;
      showCursor();
    }
  }

  function showPart(index) {
    partIndex = index;
    charIndex = 0;
    consoleElement.innerHTML = '';
    typeNextChar();
  }

  function goPrevPage() {
    if (partIndex &gt; 0 &amp;&amp; !typing) {
      showPart(partIndex - 1);
    }
  }

  function goNextPage() {
    if (partIndex &lt; texts.length - 1 &amp;&amp; !typing) {
      showPart(partIndex + 1);
    }
  }

  // 화면 좌/우 클릭으로 페이지 이동
  document.addEventListener('click', (e) =&gt; {
    const halfWidth = window.innerWidth / 2;
    if (e.clientX &lt; halfWidth) {
      goPrevPage();
    } else {
      goNextPage();
    }
  });

  // 첫 화면 출력
  showPart(0);
  
  // --------------------
// 음악 자동재생 (한 번만)
const music = document.getElementById('bgMusic');
let musicPlayed = false;

// 페이지 로드 시 시도
window.addEventListener('load', () =&gt; {
  music.play().then(() =&gt; {
    musicPlayed = true;
  }).catch(err =&gt; {
    console.log('자동재생 차단됨, 첫 클릭 시 재생됩니다.', err);
  });
});

// 브라우저가 자동재생을 막으면, 사용자가 클릭하면 재생
document.addEventListener('click', () =&gt; {
  if (!musicPlayed) {
    music.play().then(() =&gt; {
      musicPlayed = true;
      console.log('사용자 클릭으로 음악 재생됨.');
    }).catch(err =&gt; console.log(err));
   }
  });
&lt;/script&gt;
&lt;/p&gt;</description>
      <author>LOADING MEMORY</author>
      <guid isPermaLink="true">https://deepsnowfield.tistory.com/2</guid>
      <comments>https://deepsnowfield.tistory.com/2#entry2comment</comments>
      <pubDate>Fri, 5 Sep 2025 09:05:56 +0900</pubDate>
    </item>
    <item>
      <title>임천시 카페 방문</title>
      <link>https://deepsnowfield.tistory.com/3</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dse0jk/btsQguxwTIi/tmKVKYzkENrBacXHCYb7wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dse0jk/btsQguxwTIi/tmKVKYzkENrBacXHCYb7wk/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1800&quot; data-is-animation=&quot;false&quot; data-filename=&quot;cafe1 (2).png&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dse0jk/btsQguxwTIi/tmKVKYzkENrBacXHCYb7wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdse0jk%2FbtsQguxwTIi%2FtmKVKYzkENrBacXHCYb7wk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgA5AG/btsQggzkomf/fyfzhPESiicDkG2CSFDzZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgA5AG/btsQggzkomf/fyfzhPESiicDkG2CSFDzZK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1800&quot; data-is-animation=&quot;false&quot; data-filename=&quot;cafe2 (2).png&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgA5AG/btsQggzkomf/fyfzhPESiicDkG2CSFDzZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgA5AG%2FbtsQggzkomf%2FfyfzhPESiicDkG2CSFDzZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbloxc/btsQgNRaGUO/T7ehZY7KhXM2kxd0NvvldK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbloxc/btsQgNRaGUO/T7ehZY7KhXM2kxd0NvvldK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1800&quot; data-is-animation=&quot;false&quot; data-filename=&quot;cafe3 (2).png&quot; style=&quot;width: 32.5581%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbloxc/btsQgNRaGUO/T7ehZY7KhXM2kxd0NvvldK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdbloxc%2FbtsQgNRaGUO%2FT7ehZY7KhXM2kxd0NvvldK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;당근은 남기는 거야?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;... 이지.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pApbE/btsQf9fVQzo/uSunTuMIYIptBSKM7BDGNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pApbE/btsQf9fVQzo/uSunTuMIYIptBSKM7BDGNK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1800&quot; data-is-animation=&quot;false&quot; data-filename=&quot;cafe4 (2).png&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pApbE/btsQf9fVQzo/uSunTuMIYIptBSKM7BDGNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpApbE%2FbtsQf9fVQzo%2FuSunTuMIYIptBSKM7BDGNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crAchd/btsQhvoRO3d/Q8qT9o2pIhkoJTlzG3mJWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crAchd/btsQhvoRO3d/Q8qT9o2pIhkoJTlzG3mJWK/img.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1800&quot; data-is-animation=&quot;false&quot; data-filename=&quot;cafe5 (2).png&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crAchd/btsQhvoRO3d/Q8qT9o2pIhkoJTlzG3mJWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrAchd%2FbtsQhvoRO3d%2FQ8qT9o2pIhkoJTlzG3mJWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1800&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이번 주는 휴가입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>LOADING MEMORY</author>
      <guid isPermaLink="true">https://deepsnowfield.tistory.com/3</guid>
      <comments>https://deepsnowfield.tistory.com/3#entry3comment</comments>
      <pubDate>Fri, 5 Sep 2025 09:05:17 +0900</pubDate>
    </item>
    <item>
      <title>.</title>
      <link>https://deepsnowfield.tistory.com/1</link>
      <description>&lt;div id=&quot;consoleWrapper&quot; style=&quot;position: relative; display: inline-block; margin: 20px auto; max-width: 700px; width: 100%; padding-top: 30px;&quot;&gt;&lt;!-- 스킵 버튼 --&gt;
&lt;div id=&quot;skipBtn&quot;&gt;⏩︎&lt;/div&gt;
&lt;!-- 글씨 박스 --&gt;
&lt;div id=&quot;console&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;style&gt;
  /* 글씨 박스 스타일 */
  #console {
    font-size: 16px;
    line-height: 1.5;
    white-space: normal;
    color: #222;
    background: rgba(255,255,255,0.8);
    padding: 20px;
    border-radius: 6px;
    box-shadow: 0 0 8px rgba(0,0,0,0.1);
    min-height: 200px;
  }

  /* 스킵 버튼 */
  #skipBtn {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 16px;
    cursor: pointer;
    user-select: none;
    z-index: 10;
  }
  @media (max-width: 768px) {
    #skipBtn { top: 5px; font-size: 18px; }
  }

  /* 눈송이 */
  .snow {
    position: fixed;
    top: -10px;
    width: 7px;
    height: 7px;
    background: rgba(200, 200, 200, 0.3);
    border-radius: 50%;
    opacity: 0.8;
    animation-name: fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
  }
  @keyframes fall {
    0% { transform: translateY(0); }
    100% { transform: translateY(100vh); }
  }

  /* 타자 커서 */
  .cursor {
    display: inline-block;
    width: 10px;
    background-color: black;
    animation: blink 1s infinite;
    vertical-align: bottom;
  }
  @keyframes blink {
    0%, 50% { background-color: black; }
    51%, 100% { background-color: transparent; }
  }

  /* 제목 오른쪽 정렬 */
  .title {
    text-align: right;
    font-weight: bold;
    margin: 20px 0;
  }

  /* ❄ 중앙 정렬 */
  .centered-char {
    text-align: center;
    width: 100%;
  }
&lt;/style&gt;
&lt;/div&gt;
&lt;script&gt;
  const consoleElement = document.getElementById('console');
  const skipBtn = document.getElementById('skipBtn');
  let isSkipped = false;

  const bodyText = `
  
  
  이서언은 점처럼 남아 있었다.
  
  
  
  얼어붙은 바다 앞에 그렇게 점처럼 남아 있었다. 땅 위로, 하늘 아래로 쉼 없이 쌓이는 눈은 우산으로도, 그 어떤 것으로도 막을 수 없는 재해였다. 손에 쥐면 녹아 사라지지만, 백만 번을 움켜쥐어도 되돌릴 수 없는 것. 되돌릴 수 없을 만큼 쌓여가며, 도시는 순백에 잠겨가고 있었다. 이서언은 드디어 끝이 가까워졌다고 생각했다. 고요함이 마침내 그를 지배하고, 서서히 좀먹어가고 있었다. 이서언은 달가웠다. 비로소 모든 것을 멈춘 그 순간이 제가 그토록 바라던 일이었다.



  얼마 전 부서진 스노우볼은 수중에 몇 남지 않은 것 중 제일 아끼는 것이었다. 이제는 부식되어 본래의 형태조차 알아볼 수 없는 것을 내내 소중히 품고 다녔지만, 그 끝을 막을 수 없었다. 제 손에 있는 것은 형태도 없이 사라진다. 그 사실이 그렇게나 슬펐던가. 이제는 감히 알 수 없었다. 점차 마모된 감정은 아무렇지 않았다가도, 두 번 다시 겪고 싶지 않은 것 같다가도, 다시금 그리워지는 것도 같았으므로.



  이서언은 지금 시대의 기억을 떠올렸다. 대부분 희끄무레해진 지 오래된 장면들을 억지로 끌어올렸다.


  
  
  
  
`;

  const titleText = `영\n원\n의\n\n점`;

  const combined = [
    { type: 'body', text: bodyText },
    { type: 'title', text: titleText },
    { type: 'body', text: `
    
    
    
    


  이서언은 굳은살 박인 손을 잡고 요양원에 쳐들어간 그날까지를 기억한다. 그때도 지금과 마찬가지로 이서언은 순백의 위에 점처럼 남아 있었다. 다른 게 있다면 그녀가 옆에 있다는 것이었다. 그러나 이서언은 사람을 죽였고, 제 선배의 앞길을 막고, 그녀 역시 없애려 들었다. 과거를 포함해 두 차례에 걸친 시도는 이서언을 떠나게 만들기 충분했다. 넌 오늘 나를 붙잡은 걸 후회하게 될지도 몰라. 그 말은 곧 스스로에게로. 난 후회할 거야.



  난 확신해. 언젠가 내가 또다시 널 해치게 되면, 그건 내 인생에서 가장 후회스러운 일이 될 거야.



  널 떠나는 일은 내 인생에서 두 번째로 후회스러운 일이 될 거야.



  이서언에게 그날이란 처음으로 '너를 버린 날'이었다. 아득한 옛날의 일은 어린 날의 도망이라고 생각했으므로 버린 것이 아니라고 애써 생각했다. 이번이 완전한 이별이라고 생각하며, 이것은 도망이 아니야, 일방적인 버림이야. 너도 그렇게 생각하고 있을 테지. 그러니 그때, 이번을 마지막으로 찾지 않길 빌었다. 완연한 봄이 와도 내 옆은 눈이 내릴 테니. 죽은 듯이 잠든 너를 내려다보며 들었던 감정은 여전히 네 주치의 자리를 보전하고 싶다는 모순됨이었으나. 



  그렇게 새카맣고 눈에 띄는 저를 훑으며 자멸해 갔다. 어두운 바다의 얼어버린 파도가 반사되는 거울의 면처럼 이내 저를 향해 튀어 오를 것만 같았다. 그리고선 영영 어두운 제 눈과 심장 속으로 박혀버릴 것만 같았다. 마음 같아선 그대로 사라져 버리리라. 



  부식된 금속 재질 물건의 끝을 어루만지던 손은 허여멀건 것이 금방이라도 그 뒷면을 비출 것처럼 투명했고, 따스한 빛이라고는 존재하지 않아 그렇게 영원히 차갑기만 했다. 밤과 아침이 오지 않는 세계는 일말의 온기와 자비가 없어 모든 생명을 앗아갈 기세일뿐더러 끝끝내 서 있는 1인에게도, 보라, 네가 기억해 둘 마지막은 마치 그게 다인 것처럼. 새하얀 풍경이. 여태 살아왔던 기억과 사랑하는 것들을 모조리 파묻어버리고 그러므로 영원과도 같은 삶을 사는 넌 제 능력이 흩뿌리는 눈 아래로 지켜보기만 하라고.



❄



  변수를 제거하는 것은 이젠 익숙한 일이었다. 언젠가 분명히 사람을 살리던 손은 점점 검게 물들어 제 몸의 일부가 아닌 타인을 보는 듯한 착각이 일기도 했다. 하지만 곧 깨닫는 것이다. 이 손이 너와 내가 사랑하는 것들을.

  동시에 사라지고 싶었다. 앞으로 몇 걸음밖에 남지 않았어.



  실제로 얼마간의 시간이 흘렀는지 모르겠다. 철학책에서 유구히 등장하던 '영겁의 시간'은 아닐 것이다. 단지 그 정도의 시간은 아니었다는 뜻이다. 돌연변이의 등장 이후로 도시는, 세계는 이다지도 빨리 허물어졌으니까. 이미 망가진 것을 고쳐 세운다 해도 유실된 세계일 터였다. &lt;i&gt;순환시켜. 모든 것을.&lt;/i&gt;



  이서언은 다시금 희미한 기억을 붙잡아 올렸다. 꺼져가기 직전의 양초를 손아귀로 붙잡는 것처럼. 쏟아지는 눈 사이로 네 얼굴이

  우는 듯한 네 얼굴 위로 녹아내린 눈 결정은 마치 비극적인 영화 속 주인공처럼

  나는 언제고 녹아 흘러내려 볼을 타고 흐르는 물을 어루만지다가 닦아주고, 끌어안아 귓가에 속삭이고, 다시는 널 아프게 하지 않으리라고 말하며, 네가 바라는 만큼만 곁에 있고 싶어서 단지 상상으로 그치고 싶지 않아서 허공에 손을 뻗어



  그러나 극지와도 같이 부는 바람은 손을 타고 혼자만이 남았다는 사실을 여실히 알려줘.



  빌딩이 있던 자리는 무너지고, 남아있는 건물들은 언젠가 생명체가 살았던 것이 거짓말처럼 비워진 채 고요한 세상의 남은 침묵을 지켰다.






  일렬의 묘지는 기억 속 그대로였다. 입을 쩍 벌리고서 주변을 배회하는 변이자들은 남아있는 인간을 향해 기어코 몸을 내던지다 슬쩍 내빼기 직전 이서언의 손에 박살이 났다. 지성을 잃은 존재는 빌딩과 도시 한 가운데를 오가긴커녕 마치 제 있을 곳, 몸 뉠 곳을 알아보는 것처럼 화강암을 펴 만든 묫자리 근처를 맴돌아 예전의 이서언이었다면 너절한 감각과 더불어 꿈자리 역시 뒤숭숭했을 테지만, 그는 저 역시 저 배회하는 자들과 다를 게 없다는 양 굴며 무덤가를 거닐었다.



  이곳에서 이별했다. 이별이란 말은 곱게 포장한 말 같았다. 그는 스노우볼 속 태엽을 감아 눈 쌓인 바닥에 가만 내려두었다. 당연하게도 작동하지 않았다.

  어느 한 군데도 아름답지 않은 일이었다. 흰 고체와 매끄러운 비석 사이로 약한 빛이나마 품고 있는 그녀를 제외하면 그저 스며든 절망을 분출하는 살인마의 말로를 담은 테이프나 다름없지 않은가.

  이서언은 오래도록 그 장면을 되돌리고, 되돌려, 세상이 멈출지언정 기억은 이곳에 그대로이길 바랐다. 두 눈 가득 육체에. 이 세상에.

  붙잡아두고 싶었다. 붙잡는 것에 허락을 구하고 싶지 않았다. 물을 수도 없이. 그렇지? 그건 이서언의 이기심이었다.



  이서언은 잃어버린 것을 찾으려는 듯 눈 쌓인 묘비를 손으로 쓸어냈다.



  의사 선생님.

  교수님.

  살인자.



  제 자식을 살려달라는 말과 날 죽여달라는 말이 주위를 맴돌다 귓가로 흘러들었다. 그건 곧 자길 향해 외치는 말인 걸 깨달았으나 어느 시절의 이서언을 향해 그렇게도 절박함을 담아 말하는 걸까. 분명한 건 저를 부르는 그 어떤 호칭과 상관없이 찌르는 말이 뒤섞여, 이서언은 그저 살인자로 남을 뿐이다. 애원했고, 간곡했으며, 화를 내─마치 그가 등에 업은 것이 그가 방금 거둔 목숨인 것처럼 곡소리를 내─이서언은 아주 오래도록 흐느끼는 소리를 들었다.



  오빠.



  사망선고를 내리는 일은 냉철해야 했다. 그 일을 하며 우는 것은 정 많고 미련을 둔 사람뿐이다. 익숙한, 날카롭고 단단한 목소리가 돌 던져 깨진 유리 파열음 같았다. 가족들에게 알리세요.



  서언 오빠.



  날 그렇게 부르는 것을 그만둬.



  그녀가 그렇게 부르면 남자는 평범한 이서언이었다. 마땅히 그래야 했을 삶처럼 그 애를 따라 짧지만 긴 생을 그렇게 유영해도 될 것 같은 기분이었다. 그는 구부린 무릎을 펴고 일어났다. 네 발자국을 따라 걸어도 괜찮을까. 족히 두 배는 커 보이는 신발 밑창 자국이 그녀의 발자국을 차근차근 뒤덮었다. 네 목도리의 끝자락을 스치며 걸어도 괜찮을까. 그는 대답 없는 기억 속 그녀를 따라 걸었다. 너는 대답하지 않지, 이건 이서언을 마중 나온 이서언의 사신이니까. 마침내. 그래도 이서언은 소녀의 형상이 퍽 신경 쓰였다. 얇은 외투를 입고 있는, 저를 데리러 온 기억 속 소녀에게 춥지 않으냐고 시답잖은 말을 건네고, 작은 손을 안주머니 사이로 숨기고만 싶은 마음이 들었다. 마지막 베풂으로 그에게 보내진 사신은 그야말로 천사의 얼굴을 하고 있었고, 그렇기에 이서언은 아주 오랜 세월 끝에 웃었다. 그리고 안심했다. 소녀는 더 이상 괴로운 얼굴을 하고 있지 않았으므로. 또한, 가짜라면 어떻고 사신이라면 어떻단 말인가? 이서언은 떨어진 눈으로 빚어 만든 소녀의 조각상일지언정 사랑하고 아낄 텐데. 절벽으로 추락하는 것이 가짜이건 조각상이건 기꺼이 뛰어들 텐데. 다시는 부서지지 않도록.



  스노우볼의 망가진 오르골 태엽이 뒤늦게 감겼다. 조용히 울려 퍼지는 음악은 누군가를 위로하고 싶어 하는 듯했으나 뒤늦은 무덤가에는 아무도 남아있지 않았다. 누구도 찾아오지 않을 세상이었다. 



❄



  변두리를 지나 도시 한가운데를 향해 호젓이 걷는 것은 꽤 힘든 일일 텐데도, 남자는 소녀를 따라 군말 없이 걸었다. 눈 쌓인 아스팔트─이제는 무너져 흔적만 남은 길이─광활히 펼쳐져 있었고, 이끼 식물 하나 보이지 않는 흰 세상은 이곳이 제 살던 곳인지 극지인지 구분되지 않았다. 서서히 빌딩이 보이기 시작하는 안쪽으로 걷자 익숙한 건물의 뼈대가 보였다. 이전에 사방을 메웠던 빌딩들은 초라한 뼈만 남아 아직도 이 우울한 도시에 남은 일이 있냐는 듯 그를 향해 비웃었고, 소녀는 도시 사이를 아무렇지 않게 누볐다. 쌓인 눈 위로 끈적이는 늪을 헤집어 걷는 것처럼, 혹은 그 도시의 치부를 들추는 것처럼 앞장서 걷는 소녀는 안내하는 일에 꽤 자신 있어 보였고, 그것이 이서언을 못내 멈칫하게 했다. 긴 시간 동안 무뎌진, 어쩌면 다음을 고대하기로 한 남자의 흠집 하나 나지 않은 얼굴이 굳어져 깨지기 직전이었다. 소녀는 이서언에게 그럴 수 있는 사람이었다. 



  중간중간 비좁은 틈을 차지하는 녹슨 차체가 거슬렸기에 이서언은 Evol을 사용해 밀어냈다. 소녀가 다치지 않길 바라기 이전에 소녀가 하고자 하는 일이 방해받길 원하지 않아서였다. 힘없이 스러지는 고철덩이가 주인 잃은 유해遺骸와도 같았다.



  이서언은 문득 소녀의 겉을 파헤치고 안을 들여다봤을 때, 그 실체가 무엇인들 상관없다고 여겼다.



  이서언은 언젠가 허구로 빚어진 소녀를 없애고, 꿈에서 벗어나려고 시도했던 것도 같았지만, 그건 그녀가 기꺼이 이서언의 옆에 남아있기 때문이었으니까. 지금으로서는 거죽을 흉내 낸 존재일지언정 오랫동안 보지 못한 얼굴을 볼 수 있다는 것,



  그러니까 그 사실에 감사할 뿐이었으므로.






  소녀는 철골이 앙상하게 드러난 건물 앞에서 발을 멈췄다. 이제는 거의 허물어져 알아보기 힘들었지만, 중심가의 건물들보다는 덜 무너진 상태였다. 덕분에 잔해를 통해 이곳이 어떤 목적을 가진 장소였는지 짐작할 수 있었다. 남자는 어떤 말도 할 수가 없었다.



  길었던 침묵 속 남자가 가까스로 입을 열었다. 마치 아주 먼 곳에서부터 끓어오르는 듯한, 깊고 낯선 목소리였다. 이곳에 왜 왔어. 남자가 손끝으로 소녀의 어깨를 건드리고자 했을 때, 소녀는 가만히 있었다. 제게 닿으려는 손길을 기꺼이 받아들이고 싶다는 듯이. 이서언은 손을 거두었다. 네게 닿는 것을 내가 허용할 수 없어서. 



  EVER는 늘 같은 수를 썼다. 들켜도 상관없다는 오만하고도 고압적인 자세였다. 유실될 세계에서조차 그들이 쌓아 올린 것들은 유실되게 하지 않겠다는 양 군 흔적이 바로 여기에 존재하고 있었다. 이서언은 바닥으로 이어지는, 냉동고의 손잡이처럼 생긴 고리를 잡아 열었다. 잘 열리지 않는 문의 실 같은 틈새로 쿰쿰한 냄새가 코를 찔러왔다. 하지만, 이서언의 표정을 흩트릴 수는 없었다. 쿰쿰한 지하 냄새로도, 익숙하게 생긴 냉동고의 손잡이로도. 오로지 소녀의 걸음걸이, 소녀를 이루고 있는 것들, 자신이 아는 그 모든 것, 그 옛날 들었던 담담한 어조의 실낱같은 고백. 그러니까, 네가 죽을 뻔했다는 말이네. 이서언 역시 담담히 말했던 기억─담담히 굴려고 했던 상황 같은 것이 이서언의 머릿속을 지배했다. 너는 언제까지고 이곳을 떠도는 걸까 싶어 이서언은 눈 쌓인 잔해 위에 그저 서 있었다. 먼저 가. 이 아래로 내려가라는 뜻이 아니었다. 가라앉은 그의 눈빛이 어둠의 바깥을 향해 있었다. 어서 가. 너는, 이곳에 있지 마. 금방이라도 텅 빌 것 같은 눈이. 비로소 빛을 보고 있었다. 단지 소녀가 갈 길을 비춰야 한다는 이유로.



  그러나 소녀는 영락없이 문이 열리기만을 기다리는 얼굴이었다. 이서언은 어쩔 수 없이 손을 뻗었다. 사람을 잃은 건물은 생기라고는 없이 진창처럼 가라앉아 있었기에, 그는 조심스레 문을 밀었다. 녹으로 부푼 문의 경첩이 덜컥 기괴한 소리를 내며, 한때 살아있는 구조물이었을 건물의 어두운 면을 내보였다. 빛 한줄기 없이 방치된 지하가 희미하게 우는 소리를 내는 것도 같았다.



  소녀는 망설임 없이 그 밑으로 내려갔다. 어둠에 잡아먹히는 것처럼 보이는 소녀의 모습에 이서언은 황급히 소녀를 잡고 제 뒤로 숨겼다. 곧이어 문이 저절로 닫히는 소리가 나고 암전이었다. 어디선가 윙윙거리는 소리가 났다. 이서언의 손끝이 서서히 검게 물들어갔고, 얼어붙은 검은 빙하 같은 두 눈이 어둠에 익숙해질 무렵, 그를 골리듯 모니터 여러 대가 번쩍이며 켜졌다. 이서언은 이 비슷한 상황을 아주 잘 알고 있었다.



  잘 알다마다. 쇠락한 나머지 바스락거리는 타일 위로 신중히 발을 디딘 이서언이 구석에 쌓여 있는 플로피 디스크 중 하나를 집어 들었다. 그 오래된 물건은 의미조차 사장되어 사람들의 기억 속에서 사라진 지 오래된 것이었고, 집어 든 것 역시 까딱하면 모래처럼 흩어지기 직전의 습기를 머금고 있어 이서언은 디스크의 플라스틱 겉면에 써진 글씨를 대충 살핀 후 이어서 모니터를 쳐다보았다. 번쩍이는 화면은 알맹이 없이 빛나고 있었고, 지직거리는 소리가 심한 탓에 가까이 있으면 귀가 아렸다. 이곳 역시 누군가는 유실되지 않기를 바랐던 탓일까, 터지지 않는 것이 용한 상태였다.



  이서언이 사방을 살펴본 감상은 무덤 같다는 것이었다. 모든 폐허가 무덤이 아닐진대. 그가 거니는 곳마다 죽음이 자리 잡고 있었다. 산더미 같은 플로피 디스크가 잘도 무너지지 않은 채 겹겹이 쌓여 밑의 장, 그 밑의 장과 엉겨 붙고 합쳐져 흡사 거대한 죽음처럼 보였다. 한곳에 몰아넣어 묻어버린 사람의 뼈처럼. 거둘 수도 없는 데이터가 지하 세계에서 조용한 두 번째 죽음을 맞이했다.



  꽤 넓은 지하통로가 음산한 분위기를 풍기며 그를 영영 기다리고 있었다. 시간을 들여 천천히 둘러보라는 듯. 음영 진 공간이, 가만히 그곳에. 이서언은 소녀를 바라보고 싶어졌다.



  제 할 일을 마친 듯 배터리가 다 된 로봇처럼 서 있었다.



  그 모습이 어쩐지 참을 수 없었다.



❄



  &lt;i&gt;갈 거야?&lt;/i&gt;

  남자는 그렇게 물었다.



  &lt;i&gt;가버릴 거야?&lt;/i&gt;

  미처 사라지지 않았던 소년이 웃자란 가지 같은 남자의 입을 빌려 말했다.



  너, 마음을 두고서 도망친 소년에게 말이야.



  만일 네가 그때, 모든 것을 기억했다면 말이야. 너 역시 그렇게 말했을까. 가버릴 거냐고. 



  서늘한 바람이 기계 틈을 비집고 들이쳤기에 모니터의 빛을 받은 먼지가 공중에서 천천히 회전하고 있었다. 하지만 전혀 개의치 않는 듯, 이서언은 소녀를 똑바로 응시하고 있었다.



  안내가 끝난 거야? 그 말을 하기 바로 직전에 뱉어버린 말 한마디를 다시 주머니 속에 접어둔 남자가 빙 돌려 말했다. 엎질러진 물을 주워 담을 수 있다고 여기며. 고요한 정적은 이서언의 묵은 궁금증을 풀어주지 않았고, 이서언은 코트를 벗어 소녀에게 걸쳐준 후에야 앞으로 조금씩 나아갈 수 있었다. 뒤돌아보지 마. 두고 간 것을 찾지 마. 소녀가 떠난다 한들 그건 오히려 잘된 일이었다. 더 이상 이곳에 있지 않아도 되니까, 이 문드러진 곳에 어울리지 않을뿐더러. 너는 무덤 같은 곳에 어울리지 않지, 나와는 달리.



  터널 끝, 원통형 배양 캡슐이 오랜 친구를 기다린 것처럼 그곳에 있었다. 사방에는 아까와 같은 플로피 디스크가 깔려 있었고, 길게 늘어진 케이블 선이 제가 서 있는 복도로부터 아슬하게 이어져 있었는데, 이서언은 그것이 마지막 동아줄이라도 되는 걸까 싶어 무심히 쳐다보다 배양 캡슐이 있는 곳으로 발걸음을 옮겼다. EVER의 숱한 노력에도 그들의 유산은 다시금 타오르긴커녕 이처럼 비참한 신세로 전락하고 있었다. 이곳뿐만 아니라 다른 그 어떤 곳도 마찬가지였다. 그들이 남긴 것은 진보된 과학이 아닌, 죽음들. 거두지도 못할 두 번째 죽음, 살아 죽은 변이자들뿐이다. 유령 같은 남자의 귀로 유령 같은 소리가 흘러들었다. 거대한 컴퓨터에서 나는 소리였다.



  꽁꽁 싸매둔 터널의 끝은 이를테면 중심가를 피한 이 건물처럼 덜 헤진 상태였으므로, 아직 이 장치가 작동하는 건가 싶었다. 이서언은 곧바로 멈출 수 있는 스위치를 찾아 헤맸다. 그 행동은 이유조차 알 수 없이, 이서언의 몸이 먼저 반응한 것이었다. 존재해서는 안 될 장소에 대한 본능적인 거부감처럼.



  삶과 죽음의 경계가 흐려진 곳. 이서언은 전원 스위치를 찾아 단번에 아래로 내렸다. 스파크가 일어 혹여 작은 불씨라도 옮겨붙는다면 금방 무너질 수도 있다고 여겼는지 한발 물러선 상태로 연결된 곳을 보고 있었으나, 내려간 스위치는 제자리를 헛돌다 그대로 어느 부분에 박혀버렸다. 고장 난 것을 억지로 몇 번이나 작동시켰지만 변하는 건 없었으므로. 이서언은 그 오래된 것을 원래대로 되돌릴 수만 있다면, 배터리가 다 된 것처럼 서 있는 소녀 역시 원래대로 돌아올 거라고, 그렇게 내심 바라고 있던 것일까. 그의 입가에 헛웃음이 걸렸다.



  이서언은 여전히 유령 같은 소릴 내는 컴퓨터를 바라보았다. 이곳에서 두 번째 죽음을 맞이한, 실체 없는 존재에 대해 생각했다. 제게 덤벼드는 유랑체처럼 굳이 이 손으로 끝을 내지 않아도, 이곳 스스로 퇴락해 갈 터였다. 만일 사라지지 않는다 쳐도, 지금보다 더 시간이 흐르고서 누군가는 발견할 수도 있겠지만, 그때는 이미 썩어간 것들이 만연해진 세계일 테니까. 이들의 묘지를 파헤친다 해도 나오는 것은 값진 보물이 아닌 그들의 유해일 뿐이지. 여태 이곳에 자리 잡은 신호 변환기가 끝끝내 유실되지 않기 위해 애를 써도, 그 아래 묻힌 데이터, 죽은 사람들은 반응해 주지 않을 것이다. 그야말로 거대한 무덤임에.



  연결된 배양 캡슐이 이서언의 후회를 불러오려는 것처럼 유독 큰 소리를 내는 것 같았다. 생명으로 가득 차 있다는 착각을 주는 캡슐의 중간이 일렁였다. 하지만 그의 후회는 지하무덤이 아닌 스노우볼을 두고 온 곳에 멈춰 있었다.



  너는 자라 더 이상 순응하는 어린애가 아니다. 금방 추슬렀을 것이다.

  너를 살리고 싶어서.



  그러나 이서언은 늘 그녀가 궁금하여.



  그녀의 예측할 수 없는 모습은 그를 불안하게 하면서도, 웃게 하면서도, 끝내 호기심마저 품게 했다. 행동 하나하나에 일희일비하게 했다. 지금도 마찬가지였다. 그는 그녀가 궁금했다. 그렇기에 두고 온 소녀가 궁금했고, 소녀가 이곳에 저를 데려온 이유 역시 알고 싶었다. 그 옛날처럼 종종 남자가 있는 곳을 돌아보며 길을 안내하는 모습이 얼음을 깨듯 남자의 얼굴을 긁어내렸다. 단지 제 바람으로, 그 이유 하나로 제 손에 내려주지 않았을 것이다. 이서언은 공기를 가벼이 움켜쥔 손안에 아주 소중한 것이 있는 양 힘을 주었다. 이서언은 오래도록 소녀의 얼굴을 기억해 두고 싶었고, 기억나지 않는 목소리를 거머쥐고 싶었고, 그건 곧 살아있다는 현실감이 옅어진 지 오래라는 뜻이었으니까─남자는 끝을 받아들이는 법 따위 결국 알지 못했으니까─마지막으로 인사하러 왔어, 이서언의 귓가에 흐느끼는 목소리가 울려 퍼졌다. 얼굴도 기억나지 않는 누군가 그를 대신해 울어주고 있었다. 또 다른 누군가는 그의 이름을 부르며 고래고래 소리 질렀다. 이서언, 너, 신을 믿느냐고, 그는.



  그제야 오래된 스노우볼의 끝을 떠올린다. 바닥을 적신 오일, 손 위로 흘러나온 눈송이 글리터의 찝찝함을 개의치 않고 만지작거리던, 끝을.



  그리고 함께 오로라를 보던 순간.



  살리고 싶고, 해치고 싶지 않았던 순간을 떠올린다. 이서언이 차가운 손을 다시금 폈을 때, 손안에는 작은 눈송이가 생겨나 있었다. 너와의 기억을 더럽히고 싶지 않았어. 이서언이 말하면, 그 앞의 원통형 캡슐은 대답했다. 그래서 두고 가려는 거야? 구슬픈 오르골 선율이 캡슐 안에서 울려 퍼지는 것만 같았다.



  가벼운 무게가 실린 발소리가 들렸다. 그 소리가 너무나 작아 자칫하면 흩어질 것 같았다.



  이서언은 돌아보지 않았다.

  걸터앉는 소리가 났다. 그는 소녀를 마주 볼 자신이 없었다. 오랜 후회를 맞닥뜨리거나 뒤늦은 사랑을 전할 수가 없었다. 영원같이 품어온 사랑, 그저 녹아 버릴 눈 같은.



  소란스러운 마음의 소리가 실체화된 듯, 뒤편으로부터 부스럭거리는 소리가 들렸다. 남자는 이런 상황에서조차 저를 뒤돌아보게 하려던 그녀의 의지를 생각했다. 널 마주해야겠구나. 떨리는 눈시울과 더듬는 발걸음, 가까스로 소녀가 있는 곳을 쳐다본 이서언의 가슴이 철렁였다. 곧이어 얼어붙는 듯한 소리와 함께 사방을 채웠던 물건들이 얼어붙고 금이 가고 부서져 내렸다. 다급한 이서언의 목소리가 공간을 메웠고, 얼어버린 벽으로부터 소녀를 감싼 이서언의 어깨가 파르르 떨렸다. 이서언의 거친 숨과 빠르게 오르내리는 가슴에 비해 원통 캡슐은 일직선의 금이 간 채로 적막함을 유지하고 있었다. 희미하게 윙윙대던 소리가 멎고, 검정 바닥으로 처박힌 시선을 들어 올린 이서언이 무릎 꿇은 자세 그대로 소녀를 올려다보았다. 제게 감싸진 소녀의 손 위로 긴 케이블 선이 들려 있었다. 뭘 하려던 거야. 마치 그 순간을 기다린 것처럼 눈을 깜빡인 소녀는 제자리에서 금이 간 캡슐과 옆에 놓인 헬멧을 바라볼 뿐이었다. 헉, 남자의 막힌 숨소리가 말라비틀어진 목구멍으로부터 기어 나와 간신히 그의 속을 부지했다. 비틀대고 일어서려는 다리 아래 계속해서 얼어붙고 있었다. 마치 그의 Evol이 그의 심정을 대변하는 듯했다. 이리저리 삐져나오거나 어지러이 흩어진 모양으로 얼어가고 있었다. 잔해들. 부서지고 남아 있는 물체가. 소녀는 얼어 부서진 조각들을 맞추었지만, 도저히 사랑이라는 마음만은 만들 수가 없었다.



  그걸 건드리지 마, 제발. 이서언은 당장이라도 소녀가 손에 쥔 것을 세상에서 완전히 없애버리고 싶었으나, 한 걸음 물러나 Evol을 억지로 진정시키고 있었다. 요동치는 가슴은 다른 것 때문이 아니라, 소녀를─아니, 소녀의 형상을 한 존재를─해칠지도 모른다는 두려움 때문이었다.

  그는 자신에게 주어진 장난 같은 시련, 어쩌면 농락에 가까운 상황에서 도망칠 수 없었고, 마침내 소녀에게로 뻗는, 주저하는 그의 손길은 무정하지 않음에도 차가웠다. 부서진 조각과 케이블 선을 빼앗아 형체도 남기지 않고 으스러뜨린 이서언이 멈춰 섰다. 소녀는 중심 코어가 멎은 인형처럼 서 있었다. 오래도록 그렇게 있었다.



  원한다면 그녀를.

  결국에는 그곳에. 언제든 깨어있다고 느낄 수 있도록. 떠났다고 생각하지 못하도록.



  컴퓨터 화면이 깜빡거렸다.



❄



  무정하지 않은 손이 소녀의 팔을 살며시 감쌌다. 남자의 얼굴 위로 튀어 오른 얼음 몇 조각이 녹아 눈물처럼 흘렀다. 장난 같던 순간은 그렇게 끝이 났다. 설령 눈앞의 존재를 '영원'처럼 남겨둘 수 있다고 해도, 이서언은 결코,

  그래. 이곳에 그대로 남길 바라잖아. 세상이 순환되고 멈출지언정, 기억만은 남기를. 먼 존재가 소녀의 입을 빌려 말했다. 팔을 잡은 손보다 소녀의 몸이 더 차가웠다. 눈으로 빚어낸 듯한 서늘함이.

  누군가 그의 가슴을 갈라 심장을 움켜쥐는 기분이었다. 한 치 앞을 볼 수 없게 만드는 무력감이 이서언의 몸을 지배했다. 한 번의 통증 없이 사로잡혔을 텐데 가시에 찔린 듯한 고통이 엄습했다. 역시 이렇게 아팠을까, 너는, 이것보다 더 아득했을까.

  불명의 목소리가 그를 괴롭혔다. 하지만 그는 그것보다도 다른 사실이 더 괴로웠다.

  케이블 선을 든, 캡슐을 바라보는 소녀의 모습을 본 것만으로도 이서언은 소녀가 제 심장에 비수를 꽂는다고 느꼈다. 분명 소녀는 그녀가 아닐 텐데도. 이곳으로 안내한 이유가 있었구나. 거친 숨이 목소리를 타고 오르내렸고, 이서언은 소녀를 따라오지 않았다면 어땠을지 잠시 떠올렸으나, 곧 그만두었다. 이서언이 소녀를 따라가지 않는 길이란 없었으니까. 그런 만약의 길은 더 이상 걷지 않기로 했으므로. 과정이 얼마나 고통스럽든, 후회스럽든 간에.

  이서언은 그녀의 의식 데이터를 보는 자신을 보았다. 널따란 스크린 화면 아래 살아 죽은 사람─자신이 끊임없이 말을 걸고 있었다. 영원히 머물 수 있다고 믿는 것처럼. 흘러간 시간을 진실로 붙잡아 둘 수 있다고 여기며, 시시각각 변해가는 세상에서 변치 않는 그녀를 붙잡아 두려 애를 쓰고 있었다. 그녀의 표정이 사각지대에 가려 보이지 않았다. 그는 악몽 같은 이야기, 원치 않는 그녀의 표정, 까마득한 저 너머로부터 제정신을 잡아 오려 부단히도 노력했지만, 지고한 존재는 언젠가부터 그래왔던 것처럼 도구와도 같은 존재에게 속삭였다.

  그의 일그러진 표정, 꿇은 무릎은 여전히 소녀의 앞에서였다. 그런 와중에도 소녀의 팔을 잡은 손만은 평온했다. 잡은 부분으로부터 고통이 서서히 멎고 있었다.



  이서언은 현실감을 잃었다. 이제야 그것을 깨닫는다. 꿈과 삶의 경계 어딘가에서 이어진 허망함이 끈질기게 이서언을 물고 늘어진다는 것을. 문장의 구조와 책 따위로 남을 이야기가 이서언을 살리다가도 죽인다는 것을. 그 중심에 그녀가 있었다. 여전히.



  이곳이 내 무덤이 되는 걸까. 이들과 같이. 잦아든 고통에 이서언은 그리 생각했다. 눈앞, 소녀의 형상이 여전히 그를 쳐다보고 있었다. 신의 안배처럼, 굳어버린 천사상처럼 무덤가를 내려다보고 있었다.



  이서언은 팔을 잡은 손을 못내 거두었다. 고통은 멎었으나 떨려오는 다리는 그대로였기에 바닥을 짚고서 가까스로 일어섰다. 제 코트가 벗어난 나비의 고치처럼 소녀의 형상 뒤로 떨어져 있었다. 그는 비틀대며 바깥의 통로로 향했다. 마지막으로 너와 누렸던 세상을 봐두어야 한다. 모든 걸 잃어버리기 전에, 작별을. 너와의 마지막 작별 인사를.



  소녀의 형상은 그를 따라 걷는다. 이서언은 그를 막을 수 없었을뿐더러 막고 싶지 않았다. 불명확한 존재가 소녀의 형상을 한 이상 그러했다.



  깨진 바닥, 어지러이 흩어진 잔해들, 그 모든 것을 무시한 채 이서언은 어둠을 밟으며 앞으로 걸었다. 목 끝까지 차오르는 감정 대신 Evol의 폭주로 인한 얼음 결정이 떨어지고 흩날려 그의 시야마저 방해했으나 이서언은 비틀댈지언정 바깥으로 향했다. 그러면서도 소녀의 형상이 혹여 부서진 건물에 의해 금이 가고 무너져 내릴까 조용히 앞장서고 있었다.



  어둠 속 침몰하는 배처럼.

  저기서 새어 나오는 빛이 반가운지, 혹은 그 반대인지.



  잘 열리지 않는 문을 기어코 열어젖혔다. 뒤늦게 손등이 따끔거렸다. 낚아챈 물건을 으스러뜨리며 생긴 상처가 어둠의 바깥에서 선명히 보이고 있었다. 손등의 상처에서 핏방울이 떨어졌다. 계속해서 눈이 내리고 있었다.



  밤과 아침이 오지 않는 세계에 흰 눈이 쌓여 눈이 부셨다. 아주 익숙한 풍경임에도 이서언은 낯섦을 느꼈다. 바깥이, 너무 하얬으니까. 감히 제가 있을 곳이 아닌 것 같았으므로.



  그리고 어디서도 너의 흔적을 찾을 수 없다. 흰 고체가 모든 것을 가려버렸다. 거세진 눈발이 제 모습마저 가릴 기세였다. 손으로 쥐어 녹이거나 쓸어내려도 영영 잃어버린 것을 찾을 수 없을 것이다. 건물의 철골, 녹이 슨 차체, 무너져 흔적만이 남은 아스팔트, 사람의 손을 타야 살아있을 것들. 관리되지 못해 안식조차 찾지 못한 죽음, 이서언 역시. 이서언이 필요하고, 살아있게 만드는 것들, 모든 것이 눈 아래로 파묻히고 그 광경을 지켜보아야만 한다고. 이서언은 더 이상 비틀거리지 않았다. 전부를 감내했다. 너와의 작별을. 사랑을. 도대체 어디로 전해야 할까. 닿지 않는, 수신인 없는 편지를, 어디로. 발자국 없는 눈 쌓인 길, 이 유령 같은 남자는 어느 방향으로 나아가야 하는지. 너와의 기억을 남기려면 어떻게 해야 하는지. 감내할 수밖에 없었다. 길은 없었다. 기억 역시 그 위로 눈이 쌓여 갈 테니.



  기억 속 소녀가 눈밭 위로 성큼 걸었다. 눈으로 뒤덮인 세상은 마치 도시의 폐허가 아닌 평지처럼 느껴졌다. 소녀는 그 위를 유유히 흘러가듯 걸었다. 빛없는 세계 속에, 희미한 빛을 홀로 내뿜고서. 이서언은 눈도 깜빡이지 않고 그 모습을 오랫동안 지켜보았다. 눈이 부셔 시선을 떼지 못했다. 얼마든지 그 모습을 보다 발걸음을 돌렸다. 다시금 지하로. 지하 세계로.






  아래로 점점 꺼지는 듯한 몸을 이끌어 건물의 지하로 돌아오고서, 이서언은 구석의 깨진 거울 벽면 앞에 섰다. 어둠 속, 부서진 조각마다 또 다른 자신이 있었고, 크고 작은 파편들이 무표정한 얼굴을 비추고 있었다. 계속 금이 가고 있는 유리면이 나뭇가지 양상으로 선을 이어 돋아났는데, 그러므로 온전히 사람을 비출 수 없었다. 이서언은 그 온전치 못한 거울을 지나 비교적 얼어붙지 않은 지면에 발을 내디뎠다. 일직선의 통로가 다시금 그를 이곳에 데려다 놓았다.



  깜빡거리는 컴퓨터가 되돌아온 남자를 반겼다. 그는 깨지고 부서진 것들, 얼어버린 것들로 메워진 사방을 보고도 아랑곳하지 않은 채 가까스로 남아있는 컴퓨터와 각종 기기를 쳐다보았다. 낡아빠진 전자기기들은 이곳 중심을 유지하던 것과는 달리 옛것이었고, 그중에 대다수가 플로피 디스크와 같이 시중에서 쉽게 찾아볼 수 없는 것들로 가득해 평소 골동품에 관심 있는 사람이 아니라면 쉽게 지나칠 법한 물건이었다. 이서언은 저도 모르게 움츠러든 주먹을 펴고서 물건을 만졌다. 길게 뻗은 손가락이 부서지지 않도록 조심스레 먼지를 걷어내고 있었다.



  과거로부터, 이상할 정도로 무채색의 기기들이 태반이었다. 시간이 조금씩 흘러갈수록 시대의 발전에 따라 색을 가진 것들 또한 탄생했지만, 견고함, 단단함 같은 이미지를 위해 유지하게 한 색은 좀처럼 바뀌지 않았다. 단정한 무채색은 사람의 이목을 끌지 못해도, 그중 하얀색은 평온함을 끌어냈다. 이서언은 Val 요양원을 떠올렸다. 안으로 들어서자, 제 소개를 하던 스마트 제어 시스템─텔로미어는 평안한 목소리로 사람의 안녕을 빌었지만, 정작 요양원의 흰 내부는 안녕과 평온함보다도 저들의 군더더기 없는, 심미적인 겉모습을 이용해 사람들을 끌어모으는 듯했다. 간절함에 대한 보답이란 이처럼 썩은 내가 가득했으므로.



  이서언은 제일 아래 파묻혀 있던 회색 패치 부분을 당겨 맨 위로 올려놓았다. 제일 익숙한 형태의 이 기기는 심전도계를 닮은 초기 발명품으로 딥스페이스 사회가 발전하기 이전에 만들어졌다. 사람에게 익숙한 의료 기기를 본떠 제작되었으며, 뇌파 이미지 재생기와 비슷하지만, 초기 발명품답게 불안정했다. 본질적인 기능 및 사람의 근원적인 욕망에 집중한 기기였다.

  사람의 뇌를 읽어 인공지능을 만드는 장치는 한때 반짝인기를 끌었어도 금세 새로운 물건들에 묻혀버렸다. 결국, 기존 데이터를 기반으로 한 AI보다 쓸모 있는 것은 새로운 사고를 지닌 신형 AI였으니. 당연한 순서였다.



  이서언은 망설임 없이 거대한 컴퓨터 사이로 기기를 연결했다. 그리고서 회색 패치를 제 손등에 붙였다. 특유의 달라붙는 소리와 함께 갈라진 절연체, 차가운 금속 질감이 얇은 피부 위로 느껴졌다.



  곧이어 불안정한 소리가 울려 퍼졌다. 잿빛 줄기가 이서언의 팔을 감싸며 올라가자, 컴퓨터 화면에 명령어가 쏟아졌다가 멎었다. 이서언은 패치를 무참히 뜯어내 버렸다. 피부에 달라붙은 패치를 거칠게 뜯어내자 아물지 못한 상처가 벌어져 붉은색 액체가 흘러내렸다. 틀림없이 제 손에서 새어 나온 피였지만, 문득 스쳐 간 것은 어느 옛날의 꿈이었다.



  오랜 악몽을 꾸지 않은 지 벌써 많은 날이 흘렀다.



  꿈속의 자신과 같은 행동을 반복했기 때문인가, 이미 꿈속의 자신이 되어버린 것인가. 그것도 아니라면.



  이서언은 알 수 없었다. 또한, 아무 상관이 없어졌다.



  어쩌면 이 모든 게 의미 없는 일이었다. 네가 이 광경을 보면 비웃을 것이다.
  
  
  
❄



  걸음을 멈춘 이서언이 마지막으로 건물이 있던 쪽의 방향을 바라보았다. 멀어져 점점 보이지 않았으나, 그렇게 했다. 미련을 이유로 한 번도 돌아본 적이 없었으므로.



  소녀는 없었다. 발자국 역시 없었다.



  이서언은 소녀가 있던 곳을 지나 발을 옮겼다. 걸어 사라지는 길까지, 이서언의 손에 스러져간 사람들이 일렬로 누워있는 것만 같은 착각이 일었다.



  이서언은 고요한 설원 속 점이 되어 사라졌다.





  



  
    
  ` }
  ];

let index = 0;
let charIndex = 0;
let currentTarget = null;
let elementStack = []; // 열린 요소(태그) 스택 — 내부에 타이핑할 때 사용


function typeNext() {
  if (index &gt;= combined.length) {
    if (!document.querySelector('.cursor')) {
      const cursor = document.createElement('span');
      cursor.className = 'cursor';
      consoleElement.appendChild(cursor);
    }
    return;
  }

  const current = combined[index];

  // 블록 시작 시( charIndex === 0 )에만 출력 대상(요소) 설정
  if (charIndex === 0) {
    if (current.type === 'title') {
      const div = document.createElement('div');
      div.className = 'title';
      consoleElement.appendChild(div);
      currentTarget = div;
    } else {
      currentTarget = consoleElement;
    }
    // 스택 초기화(현재 블록에 대해)
    elementStack = [currentTarget];
  }

  if (charIndex &lt; current.text.length &amp;&amp; !isSkipped) {
    // 현재 문자 확인
    if (current.text[charIndex] === '&lt;') {
      // 태그 전체의 끝 위치 찾기
      const tagEnd = current.text.indexOf('&gt;', charIndex);
      if (tagEnd !== -1) {
        const tag = current.text.slice(charIndex, tagEnd + 1); // ex. &quot;&lt;i&gt;&quot; or &quot;&lt;/i&gt;&quot; or '&lt;span class=&quot;a&quot;&gt;'
        // 닫는 태그라면 스택에서 pop
        if (/^&lt;\s*\//.test(tag)) {
          // 닫기: 스택에서 하나 빼기 (단, 루트는 남김)
          if (elementStack.length &gt; 1) elementStack.pop();
          currentTarget = elementStack[elementStack.length - 1] || consoleElement;
        } else {
          // 여는 태그: 실제 DOM 요소로 생성해서 현재 target에 append
          // self-closing 태그나 void 태그(br,img 등) 처리
          const voidTags = ['br','img','hr','input','meta','link'];
          // 태그 이름 추출
          const m = tag.match(/^&lt;\s*([a-zA-Z0-9\-]+)/);
          const tagName = m ? m[1].toLowerCase() : null;

          if (tag.endsWith('/&gt;') || (tagName &amp;&amp; voidTags.includes(tagName))) {
            // self-closing: 바로 삽입 (DOM으로 파싱)
            const tmp = document.createElement('div');
            tmp.innerHTML = tag;
            const el = tmp.firstChild;
            elementStack[elementStack.length - 1].appendChild(el);
            // currentTarget unchanged
          } else {
            // 일반 여는 태그: 닫는 태그까지 묶어서 임시로 만들고 그 요소를 append
            const tmp = document.createElement('div');
            // 임시로 닫는 태그 붙여서 완전한 엘리먼트 생성
            tmp.innerHTML = tag + `&lt;/${tagName}&gt;`;
            const el = tmp.firstChild;
            // append the new element and push to stack
            elementStack[elementStack.length - 1].appendChild(el);
            elementStack.push(el);
            currentTarget = el;
          }
        }

        // 태그 처리했으므로 커서 이동
        charIndex = tagEnd + 1;
        // 바로 다음 처리
        setTimeout(typeNext, 0);
        return;
      }
    }

    // 태그가 아니면 일반 문자 처리 — 현재 스택 최상단 요소(가장 안쪽)에 추가
    const target = elementStack[elementStack.length - 1] || consoleElement;
    const ch = current.text[charIndex];
    if (ch === ' ') {
      target.innerHTML += '&amp;nbsp;';
    } else if (ch === '\n') {
      target.innerHTML += '&lt;br&gt;';
    } else if (ch === '❄') {
      target.innerHTML += '&lt;div class=&quot;centered-char&quot;&gt;❄&lt;/div&gt;';
    } else {
      target.appendChild(document.createTextNode(ch));
    }

    charIndex++;
    setTimeout(typeNext, 40);
  } else {
    // 블록 종료
    charIndex = 0;
    index++;
    currentTarget = null;
    elementStack = [];
    setTimeout(typeNext, 0);
  }
}


  typeNext();

  // 스킵 버튼
  skipBtn.addEventListener('click', () =&gt; {
    if (!isSkipped) {
      isSkipped = true;
      consoleElement.innerHTML = '';
      combined.forEach(item =&gt; {
        const el = document.createElement(item.type === 'title' ? 'div' : 'div');
        if (item.type === 'title') el.className = 'title';
        el.innerHTML = item.text
          .replace(/\n/g,'&lt;br&gt;')
          .replace(/ /g,'&amp;nbsp;')
          .replace(/❄/g,'&lt;div class=&quot;centered-char&quot;&gt;❄&lt;/div&gt;');
        consoleElement.appendChild(el);
      });
      const cursor = document.createElement('span');
      cursor.className = 'cursor';
      consoleElement.appendChild(cursor);
    }
  });

  // 눈송이 100개 생성
  for(let i = 0; i &lt; 100; i++) {
    let snow = document.createElement(&quot;div&quot;);
    snow.className = &quot;snow&quot;;
    snow.style.left = Math.random() * 100 + &quot;vw&quot;;
    snow.style.animationDuration = (2 + Math.random() * 3) + &quot;s&quot;;
    snow.style.animationDelay = Math.random() * 5 + &quot;s&quot;;
    document.body.appendChild(snow);
  }
&lt;/script&gt;</description>
      <author>LOADING MEMORY</author>
      <guid isPermaLink="true">https://deepsnowfield.tistory.com/1</guid>
      <comments>https://deepsnowfield.tistory.com/1#entry1comment</comments>
      <pubDate>Fri, 5 Sep 2025 09:05:06 +0900</pubDate>
    </item>
  </channel>
</rss>