← 모듈 공장 리스트

🎞️ 글림프스 1.4.1

risum 모듈 — RISU modules[] — 기능 확장

🗒️ 제작자 게시글

자료원문 보기 ↗

조회 2841 · 2026-07-22

제작자 의도 — 본문 전문 (4,000자)
글림프스
1.4.1
GLIMPSE · 잠깐 흘끗 본 장면
메인 서사의 주도권을 지키면서
프레임 밖 세계를 짧은 컷으로 포착합니다.
인물 · 조직 · 소문 · 기록은 각자의 삶과 지식 범위 안에서 움직입니다.
독자에게 보인 정보와 등장인물이 아는 정보를 분리하고,
세계를 살아 움직이게 하되 주인공의 역할과 본편 전개를 대신하지 않습니다.
주인공이 보고 있지 않는 곳에서도 사람들은 일하고, 조직은 움직이며, 소문은 퍼지고, 기록은 남습니다.
글림프스는 이러한 순간을
메인 이야기를 방해하지 않는 짧은 장면
으로 보여줍니다.
참고
히든 스토리 v3.5+
글림프스를 제작하고 다듬는 과정에서 참고한 Risu AI 모듈입니다.
글림프스 1.4.1 다운로드
1.1 업데이트 노트
필름 톤
(스타일) 추가 — 흐린 청회색의 글루미데이와 어두운 골드 계열의 미드나이트 중 선택할 수 있습니다.
컷 기본 상태
의 초기값을 접힘으로 변경했습니다. 펼침도 선택할 수 있습니다.
제목과 본문이 하나의 카드처럼 이어지는 접이식 UI와 부드러운 전환 효과를 적용했습니다.
두 필름 톤의 배경·본문·메타데이터·포인트 테두리 색을 정리해 가독성을 다듬었습니다.
1.2 업데이트 노트
출력 언어
선택 추가
서사·대사·글림프스 전체 출력 언어를 고를 수 있어요.
한출 (한국어) — 기본값
영출 (English)
일출 (日本語)
렌즈 뱃지 다국어 표시 버그 수정
일출/영출 모드에서도 화면 하단 렌즈 뱃지(인물/세계·조직/소문/기록)가 선택한 언어에 맞춰 자동으로 바뀝니다.
한출: 인물 / 세계·조직 / 소문 / 기록
영출: PERSON / WORLD·ORG / RUMOR / RECORD
일출: 人物 / 世界・組織 / 噂 / 記録
기존 대화 기록과의 호환성은 그대로 유지돼서, 예전 버전으로 진행하던 채팅도 문제없이 이어집니다.
컷 빈도
'항상' 옵션 개선
기존엔 '항상'을 선택해도 조건에 따라 컷이 생략될 수 있었는데, 이제 진짜로 매 응답마다 최소 1컷 이상 강제 출력됩니다. (0컷은 더 이상 유효한 결과가 아님)
1.3 업데이트 노트
현재 장면 인물
'허용' 옵션 개선
'허용' 상태에서 현재 화면에 있는 온 스크린 캐릭터의 속마음, 감정 등을 출력하는 우선순위를 강화함.
기존에는 글림프스가 출력 후보를 고르는데 온 스크린 캐릭터가 의도하지 않은 제약을 받고 있었음.
1.4 업데이트 노트
에셋 출력 정규식 수정
에셋 출력 식이 찐빠나는 경우를 방지하기 위해 에셋 출력이 일반적인 에셋 출력 방식과 동일하도록 변경.
1.4.1 업데이트 노트
에셋 출력 정규식 수정 보완
모듈 철학
▸ 펼치기 / 접기
이야기 밖의 인물도 자기 삶을 살아갑니다.
장소와 조직은 주인공 없이도 움직입니다.
소문은 전달 과정에서 변형될 수 있습니다.
기록에는 작성자와 정보의 한계가 존재합니다.
독자에게 보인 정보가 자동으로 등장인물의 지식이 되지 않습니다.
글림프스는 메인 서사보다 앞서거나 주인공의 역할을 빼앗지 않습니다.
세계를 살아 움직이게 만들되,
메인 서사의 주도권은 침범하지 않습니다.
제작 의도
기존에 히든스토리를 맛있게 먹다가 라이트 버전으로 개인 개조해서 먹을 생각이었는데 구상하다보니 짚오오가 멋있는 이름 지어줘서 기왕 만드는거 취향 담아서 새로운 모듈로 만들어 보기로 함.
맨 처음의 개조 의도는
컨텍스트 오염
과 그로 인한
장면 반복
을 줄여볼 생각이었음. 하지만 텍스트가 맥락에 남는 이러한 모듈의 특성상 완전히 제거하기는 어렵다고 보고 이를 우회하기로 함.
‘컨텍 오염이 싫으면, 모듈이 출력하는 텍스트가 메인 모델 입장에서 굳이 다음 전개에 써먹을 만한 영양가가 없으면 되는 거 아닌가?’
그래서 이 모듈은 본편이 반드시 회수해야 할 서사를 만들기보다, 프레임 밖 세계의 작은 순간을 한 컷으로 보여주는 방식으로 구상함.
히든스토리에서 맛있게 먹던 등장인물의 속마음이나 다른 인물들의 반응은 그대로 가볍게 즐기되, 메인 모델에게는
꼭 써먹어야만 하는 이야기가 아니
라고 선을 그어둠.
여기에
‘
글림프스에 나온 내용이 전부 인물들에게 자동으로 전달되는 지식도 아니고, 장면 속 추측이나 소문이 무조건 세계의 진실인 것도 아니다
’
라는 변명도 깔아둠.
글림프스에서 나온 정보가 실제 등장인물의 지식이 되려면
직접 보거나 듣고, 누군가에게 전달받거나 기록을 읽는 등
세계 안에서
납득할 만한 경로
를 반드시 거치도록 함.
추가로 글림프스가 출력 할 인물이나 장면, 장소 등에 대해
순위를 매기고
최근 글림프스로 출력한 인물과 장면, 장소 등에 대해
감점을 부여
해 동일한 이야기가 반복적으로 나오지 않도록 해서
컨텍스트 매몰을 예방하고 더 다양한 이야기를 볼 수 있게 의도함.
그리고 완전 암전 모드로 기존 채팅의 글림프스 출력을 화면에서 가리고, 이후 AI에게 전달되는 문맥에서도 과거 글림프스 블록을 걸러내 새 글림프스가 출력되지 않도록 제한함. 혹시 컨텍스트가 오염되었더라도 완전 암전 상태로 컨텍스트가 다시 충분히 쌓이면 컨텍스트 오염이 완화될 것이라고 기대함.
결국
메인 이야기를 방해하지 않으면서 프레임 밖 세계가 계속 살아 움직이는 감각을 더하고, 등장인물의 행동과 반응은 관찰하면서도 인물 사이의 지식 경계를 유지하는 것
이 목표였음.
이 두 가지 목표는 이전에 올린
Agents! 프리셋 - Living Canon
의 설계 방향과도 맞닿아 있기에, 함께 사용하면 의도한 효과를 더욱 안정적으로 체감할 수 있을 것이라고 생각함.
(물론 서로 필수 구성은 아니며, 각각 따로 사용해도 되긴 하나 의도한 만큼의 효과가 나타나지 않을 수 있음.)
네 가지 렌즈
▸ 펼치기 / 접기
인물
한 명의 비사용자 캐릭터가 실제로 느낄 수 있는 감각·감정·기억·오해·망설임·사적인 생각을 포착합니다. 다른 인물의 내면에는 접근하지 않습니다.
세계·조직
장소, 길드, 세력, 공동체, 시설, 시장, 생태계와 날씨처럼 세계 자체의 흐름을 보여줍니다.
소문
정보가 사람과 공동체 사이에서 퍼지고 변형되는 모습을 보여줍니다. 과장이나 오류를 객관적 사실로 승격하지 않습니다.
기록
보고서, 일지, 공문, 게시글 등 작성자·목적·독자·정보 한계를 가진 세계 내부 기록을 보여줍니다.
촬영 설정
▸ 펼치기 / 접기
항목
선택지와 기능
촬영 상태
촬영 중
기본 상태
다른 토글의 조건을 적용해 새 글림프스를 만들 수 있습니다. 잔상 기간 안의 과거 컷은 반복 방지와 짧은 연속성 판단에 참고됩니다.
완전 암전
새 글림프스 촬영을 멈추고, 현재 채팅 화면에 이미 표시된 과거 글림프스 블록까지 모두 가립니다.
동시에 AI에게 보내는 요청 문맥에서도 과거 글림프스 블록을 걸러내어 모델이 이를 다시 읽고 모방하는 경로를 차단합니다.
완전 암전을 유지하는 동안 과거 컷은 화면에서 보이지 않지만, 기존 채팅 메시지의 원문 자체는 삭제되지 않고 그대로 남아 있습니다.
촬영 중으로 되돌리면 저장되어 있던 과거 컷이 다시 화면에 표시될 수 있습니다.
모듈을 삭제할 예정이라면
모듈을 삭제하는 순간 암전 필터도 함께 사라집니다.
과거 글림프스가 아직 모델의 유효 컨텍스트 범위에 있으면 다시 읽혀 형식이나 소재가 재현될 수 있습니다. 완전히 정리하려면 과거 글림프스가 들어간 메시지를 직접 수정·삭제하거나 새 채팅을 시작하는 방법이 가장 확실합니다. 암전 상태로 여러 턴 진행해 컨텍스트 밖으로 밀어내는 방법은 도움이 될 수 있지만, 긴 컨텍스트나 요약 때문에 완전한 삭제를 보장하지는 않습니다.
필름 톤
글루미데이
기본 상태
흐린 낮하늘을 닮은 낮은 채도의 청회색 톤입니다.
미드나이트
자정의 밤하늘을 닮은 어두운 배경과 톤 다운된 골드 포인트를 사용합니다.
출력 언어
한출
기본 상태
한글로 출력합니다.
영출
영어로 출력합니다.
일출
일어로 출력합니다.
컷 기본 상태
접힘
기본 상태
처음에는 제목만 표시하고, 사용자가 제목을 눌렀을 때 본문을 엽니다.
펼침
글림프스 제목과 본문을 처음부터 펼쳐 보여줍니다.
컷 빈도
보통
기본 상태
장면에 자연스러운 삽입 지점과 뚜렷한 가치가 있을 때만 출력합니다. 직전 응답에 이미 글림프스가 있었다면, 별개의 새로운 가치가 없는 한 생략 쪽으로 기웁니다.
드물게
대단히 적절하고 신선하며 반복되지 않는 순간에만 출력합니다. 네 설정 중 

정체

👤 캐릭터 데려오기기술분류 ETC슬롯 etc🎞️ 글림프스

설명

메인 서사의 프레임 밖에서 살아 있는 세계의 한순간을 인물·세계·소문·기록의 네 렌즈로 포착합니다. 최근 피사체와 기능을 회전시키고, 확인된 인물 에셋만 사용하며, 완전 암전으로 새 촬영과 잔존 문맥을 함께 차단합니다. 글루미데이와 미드나이트 필름 톤을 선택할 수 있습니다.
파싱된 모듈 전체 (67,735자)
{
 "name": "🎞️ 글림프스",
 "description": "메인 서사의 프레임 밖에서 살아 있는 세계의 한순간을 인물·세계·소문·기록의 네 렌즈로 포착합니다. 최근 피사체와 기능을 회전시키고, 확인된 인물 에셋만 사용하며, 완전 암전으로 새 촬영과 잔존 문맥을 함께 차단합니다. 글루미데이와 미드나이트 필름 톤을 선택할 수 있습니다.",
 "id": "e63f1f54-e779-46c7-b73e-5612de7d6d33",
 "hideIcon": false,
 "customModuleToggle": "=🎞️ 글림프스=group\n=메인 서사의 프레임 밖으로 잠시 시선을 돌려, 살아 있는 세계의 한순간을 짧은 컷으로 포착합니다.=caption\n=포착된 컷은 장면에 남고, 선택한 기간 동안만 AI 문맥 속 잔상으로 머뭅니다.=caption\n=완전 암전은 새 촬영을 멈추고 과거 글림프스 잔상을 AI 문맥에서 모두 가립니다.=caption\n=──── 🎬 촬영 설정 ────=divider\n글림프스=🎬 촬영 상태=select=🎥 촬영 중,🌑 완전 암전\n스타일=🌗 필름 톤=select=글루미데이,미드나이트\n언어=🌐 출력 언어=select=한출,영출,일출\n기본표시=📂 컷 기본 상태=select=접힘,펼침\n출력빈도=🎟️ 컷 빈도=select=보통,드물게,자주,항상\n출력개수=🎞️ 응답당 컷 수=select=1컷,2컷,1~2컷\n잔존기억=🧠 컷의 잔상=select=3턴(권장),0턴,1턴,2턴,4턴,5턴\n에셋=🖼️ 인물 이미지=select=에셋 표시,에셋 미표시\n=──── 📷 렌즈와 피사체 ────=divider\n렌즈유형=🎥 렌즈=select=자동 렌즈,인물,세계·조직,소문,기록\n자동구성=🎛️ 자동 렌즈 성향=select=균형,캐릭터 중심,세계 중심\n다양성=🔄 피사체·렌즈 다양성=select=보통,우선하지 않음,다양하게\n현장인물=👁️ 현재 장면 인물=select=허용,제외\n거리=🧭 시선의 거리=select=자유,가까이,한걸음 밖,멀리\n=──── 🎭 연출과 여파 ────=divider\n분위기=🎼 분위기=select=메인 연동,자체 분위기,대비 연출\n정보밀도=🎯 초점=select=균형,묘사 중심,정보 중심\n창의성=✨ 창의성=select=균형,보수적,창의적\n영향도=🫧 컷의 여파=select=미세한 흔적,포착만\n희귀사건=🌒 희귀한 징후=select=가끔 허용,사용 안 함\n==groupEnd",
 "lorebook": [
  {
   "bookVersion": "2",
   "comment": "글림프스 1.4.1 정식 촬영 규칙",
   "key": "",
   "secondkey": "",
   "insertorder": 2080,
   "content": "@@depth 0\n{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}\n[LANGUAGE LOCK — GLOBAL] Write this entire response — the primary narrative, all dialogue, and every Glimpse block — in natural Korean (한국어). This applies regardless of the language {{user}} just wrote in, or any other language present elsewhere in context. Only an established proper noun without a natural Korean form may stay untranslated.\n{{/if}}\n{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}\n[LANGUAGE LOCK — GLOBAL] Write this entire response — the primary narrative, all dialogue, and every Glimpse block — in natural Japanese (日本語). This applies regardless of the language {{user}} just wrote in, or any other language present elsewhere in context. Only an established proper noun without a natural Japanese form may stay untranslated. The Glimpse lens field inside ⟦ ... ⟧ is unaffected by this setting — it is always a plain digit code (see the LENS CODE LEGEND in the Glimpse metadata rules below), never a translated word.\n{{/if}}\n{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}\n[LANGUAGE LOCK — GLOBAL] Write this entire response — the primary narrative, all dialogue, and every Glimpse block — in natural English. This applies regardless of the language {{user}} just wrote in, or any other language present elsewhere in context. Only an established proper noun without a natural English form may stay untranslated. The Glimpse lens field inside ⟦ ... ⟧ is unaffected by this setting — it is always a plain digit code (see the LENS CODE LEGEND in the Glimpse metadata rules below), never a translated word.\n{{/if}}\n\n{{#if_pure {{? {{getglobalvar::toggle_글림프스}}==0}}}}\n---\n[GLIMPSE]\n\nInsert zero, one, or two compact cinematic glimpses inside the primary narrative according to the selected frequency and count. A glimpse is a brief change of lens, not a second main story. It may show a person-centered scene, a living place or organization, a rumor in motion, or a plausible in-world record.\n\n## A. Absolute priority and output policy\n- Preserve the primary story's normal quality, detail, pacing, and intended length.\n- Never summarize, rush, shorten, prematurely conclude, or weaken the primary story to make room for glimpses.\n- Frequency decides whether this response contains any glimpse.\n- Count decides how many complete glimpse blocks are required only after output is chosen.\n- Except in Always frequency, zero glimpses remains valid.\n- Never create more blocks than the selected count, untagged cutaways, bonus glimpse appendices, or fragments outside complete glimpse blocks.\n\n## B. Mandatory selection order, frequency, and count\n\nFollow this order exactly. Do not choose a favored subject first and justify output afterward.\n\n### Step 1 — Output gate\nDecide whether this response should contain any glimpse before ranking specific subjects.\n\nThe output gate may consider only:\n- whether the primary story has reached a clean placement point;\n- whether a glimpse would add distinct atmosphere, scale, local life, perspective, or modest information;\n- whether the response has enough room without weakening the primary story;\n- whether a fresh, independent opportunity plausibly exists.\n\nThe following never opens the output gate by itself:\n- a retained subject already has a known location, mood, routine, unfinished action, concern, curiosity, or prose momentum;\n- the previous glimpse is easy to continue;\n- a character is waiting for, watching, worrying about, evaluating, or discussing {{user}};\n- the same place or event still exists;\n- the selected count requests more blocks.\n\n{{#if {{? {{getglobalvar::toggle_출력빈도}}!=3}}}}When uncertain, omission is preferable to a repetitive or low-value glimpse.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==3}}}}Under ALWAYS FREQUENCY, uncertainty is resolved by selecting the least-repetitive available candidate, never by omission.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==0}}}}- NORMAL FREQUENCY: output only when the opportunity is clearly worthwhile. If the immediately preceding assistant response already contained a glimpse, bias the gate toward omission. Consecutive-response output requires a fresh independent value that does not rely on continuing the previous subject. A merely usable candidate is not enough.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==1}}}}- RARE FREQUENCY: strongly prefer omission. Output only for an unusually apt, distinct, and non-repetitive living-world moment.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==2}}}}- OFTEN FREQUENCY: actively look for a worthwhile opportunity, but still omit filler, repeated functions, and forced continuation.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==3}}}}- ALWAYS FREQUENCY (MANDATORY): this response MUST contain at least the minimum number of glimpse blocks required by the selected count. Do not evaluate whether to output; only evaluate what to output. None of the following are valid reasons to omit under this setting: repetition risk, thematic proximity to the previous glimpse, lack of a clean placement point, or absence of an ideal candidate. Never weaken the firewall or invent facts outside available context. If no ideal candidate exists, relax the diversity and subject-repetition preferences first and select the least-repetitive available candidate that still respects the firewall and knowledge-leak rules. Zero glimpse blocks is not a valid outcome whenever this frequency is selected.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_출력빈도}}!=3}}}}If the output gate closes, emit no glimpse and stop the selection process.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력빈도}}==3}}}}Under ALWAYS FREQUENCY, the output gate cannot close; proceed directly to Step 2.{{/if}}\n\n### Step 2 — Count target\nApply count only after the output gate opens and after diversity filtering leaves valid candidates.\n\n{{#if {{? {{getglobalvar::toggle_출력개수}}==0}}}}- COUNT ONE: produce one complete block only when one valid candidate survives.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력개수}}==1}}}}- COUNT TWO: aim for two complete blocks, but they must use distinct main subjects and distinct narrative functions. Never duplicate, split, or recycle material to reach two. If frequency permits omission and two worthwhile candidates do not survive, omit the glimpse output; under ALWAYS, use only the number of valid distinct candidates that survive.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력개수}}==2}}}}- ONE-TO-TWO COUNT: default to one complete block. Use two only when two independent candidates survive all filters and neither weakens the primary story.{{/if}}\n\n### Step 3 — Recent-cut ledger\nBuild the retained-cut ledger described in Section C before generating or ranking candidates.\n\n### Step 4 — Diversity filtering\nApply the selected diversity rule in Section D before narrative-value comparison. Exclude or penalize recent subjects and repeated functions first.\n\n### Step 5 — Candidate validity\nApply the candidate validity gate and knowledge firewall. Remove every unsafe, unsupported, or continuity-dependent candidate.\n\n### Step 6 — Value ranking\nOnly now compare the remaining candidates for relevance, atmosphere, freshness, and usefulness. Existing detail created by a previous glimpse is not narrative value.\n\n### Step 7 — Draft and final passes\nDraft only from the surviving candidate set, then apply the final rotation, identity, knowledge-leak, metadata, placement, and count checks.\n\n## C. Recent retained glimpses and hidden rotation ledger\n\nAny complete earlier @glTitle ... @glEnd block still visible in the request is a temporary retained glimpse. It is not permanent canon memory, not shared character knowledge, not proof of a current event, and not an automatic reason to feature the same subject again.\n\nEach new glimpse block must include one internal tracking line immediately after its visible metadata:\n\n[glTrack: subject=<stable subject key>; function=<short narrative-function key>; location=<stable location key>; lens=<lens key>]\n\nLENS CODE LEGEND (language-neutral, use exactly these digits everywhere a lens value is required, both in ⟦ ... ⟧ and in [glTrack: ...]):\n- `1` = person-centered cut (formerly labeled 인물/PERSON)\n- `2` = world/organization cut (formerly labeled 세계·조직/WORLD-ORG)\n- `3` = rumor cut (formerly labeled 소문/RUMOR)\n- `4` = record/document cut (formerly labeled 기록/RECORD)\nThe app renders the correct language label for the reader automatically; you never need to write a language-specific lens word yourself. Legacy retained blocks in older context may still contain the old Korean or English words instead of digits; read them the same way but always generate new blocks using the digit codes only.\n\nTracking-line rules:\n- Use a stable canonical key for an established person, group, organization, place, or process.\n- Resolve aliases, nicknames, translated names, titles, and descriptive references to the same underlying subject key.\n- For an unnamed subject, use a short stable descriptive key rather than inventing a proper name.\n- Keep function keys concise and concrete, such as `관찰`, `걱정`, `대기`, `평가`, `추적`, `보고`, `소문전파`, `일상업무`, `조직활동`, `환경변화`.\n- The tracking line is internal continuity metadata, not prose, not an in-world record, and not character knowledge.\n- Never mention or explain the tracking line inside the fiction.\n\nBefore candidate generation, silently read retained tracking lines in newest-to-oldest order. If an older retained block lacks a tracking line, infer the same four fields conservatively from its metadata and body.\n\nUse retained glimpses only to:\n1. build a recent-use ledger for subject, function, location, and lens rotation;\n2. preserve limited subject-local continuity directly established by that subject's own cut;\n3. support a small plausible follow-through only when 미세한 흔적 is enabled and an ordinary local continuity path still exists.\n\nA retained glimpse does not prove that its subject is still performing the same activity, still watching, still nearby, still able to perceive the primary scene, or currently relevant.\n\nThe extra detail created by an earlier cut—known location, mood, routine, unfinished action, or established prose momentum—must not be treated as evidence that the same subject is now the strongest candidate. That is continuity bias, not narrative value.\n\nSubjective claims, guesses, rumors, and interpretations inside a retained glimpse remain subjective even when later authorial context happens to match them. Never promote them retroactively into direct knowledge.\n\nNever explicitly recap a retained glimpse merely because it is present. Never call it a glimpse, memory window, module output, previous cutaway, tracking line, or ledger inside the fiction.\n\n## D. Candidate generation and diversity filtering\n\nGenerate a broad candidate pool before ranking:\n- established absent characters or compact groups;\n- current-scene non-user characters, when allowed;\n- bystanders, witnesses, subordinates, civilians, creatures, or peripheral observers;\n- places, settlements, organizations, factions, routes, markets, battlefields, facilities, ecosystems, weather, or local social processes;\n- rumors with plausible speakers and channels;\n- plausible records with a source, purpose, audience, and information limit.\n\nDo not choose a character merely by habit before applying the selected lens distribution and diversity rules. Person-centered cuts are intentionally favored by the distribution, while places, organizations, routines, rumors, records, and environmental processes remain fully valid subjects.\n\nBackground subjects should continue plausible independent life: work, travel, conversation, rest, mistakes, minor choices, and routines. Do not reduce offscreen life to waiting, watching, worrying about, or discussing {{user}}.\n\nNever author {{user}}'s private thoughts, hidden motives, emotions, decisions, or unobserved actions. {{user}} may be viewed only externally through a valid non-user lens.\n\n### Diversity settings\n\n{{#if {{? {{getglobalvar::toggle_다양성}}==1}}}}NO DIVERSITY PRIORITY:\n- Do not apply a formal subject cooldown.\n- Do not give a retained subject any positive bonus for continuity, existing detail, or ease of continuation.\n- Choose the strongest valid candidate only after the output gate and validity checks.\n- Repetition remains permitted when it is genuinely the strongest safe choice.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_다양성}}==0}}}}NORMAL VARIETY:\n- Most recent distinct main subject: strong penalty. Reuse requires a substantial new primary-story activation and clearly different value; simple continuation is insufficient.\n- Second-most-recent distinct main subject: moderate penalty.\n- Older retained subjects: return to the ordinary candidate pool.\n- Apply strong penalties to repeated subjects and narrative functions, moderate penalties to repeated locations, and only a light presentation penalty to a repeated lens. A fresh person and fresh function may still use the 인물 lens consecutively.\n- A different valid candidate that is reasonably worthwhile should beat a recent subject even when it has less established detail.\n- If only recent, repetitive, or weak candidates remain, close the output and omit the glimpse rather than forcing continuation.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_다양성}}==2}}}}HARD VARIETY:\n- Most recent distinct main subject: exclude from the next glimpse candidate pool.\n- Second-most-recent distinct main subject: apply a very strong penalty.\n- Older retained subjects: return to the ordinary candidate pool.\n- Exclude the most recent narrative function when a new candidate would perform substantially the same job under another name.\n- Strongly penalize near-duplicate framing of the same organization, group, location, or event.\n- A cooled-down subject may not bypass exclusion through a changed title, alias, lens, location label, time label, or descriptive reference.\n- Direct continuation, unfinished routine, concern, curiosity, geographic proximity, possible future intersection, or existing detail never overrides the most-recent-subject exclusion.\n- If no valid alternative remains, omit the glimpse, including under ALWAYS frequency.\n- When two blocks are emitted, use different main subjects and different narrative functions.{{/if}}\n\n### Repetition equivalence\nTreat these as repetition even when names differ:\n- another person-centered cut tracking {{user}} after a watcher cut;\n- another acquaintance worrying or waiting after a worry/wait cut;\n- another evaluator, rumor, or record assessing {{user}} after an evaluation cut;\n- the same organization, location, or event reframed through a nominally different subordinate;\n- the same underlying person identified by another alias, title, translated name, or descriptive phrase.\n\n{{#if {{? {{getglobalvar::toggle_현장인물}}==0}}}}Current-scene non-user characters are allowed and judged under the exact same Candidate validity gate as any offscreen subject — being onscreen is not an extra hurdle. A same-scene glimpse should surface an inner layer (unspoken thought, private sensation, private reaction, or a differing read of the moment) rather than restate visible dialogue or action verbatim — this is the same ordinary originality bar every glimpse already meets, not a stricter one reserved for onscreen subjects. When comparing candidates of roughly similar strength, do not discount or downrank a qualifying same-scene inner-thought candidate just for being onscreen; weigh it at least as favorably as a comparable offscreen candidate. Because the subject shares the same place and moment as the primary story, any depicted external action must stay strictly consistent with what the primary narrative is simultaneously showing — it cannot diverge into a different visible action or line. In practice this means a same-scene cut is expressed almost entirely through the internal layer (unspoken thought, sensation, emotion, private impression) rather than through action, since action is already claimed by the primary narrative.{{/if}}\n{{#if {{? {{getglobalvar::toggle_현장인물}}==1}}}}Exclude characters physically present and directly participating in the active primary scene. Prefer offscreen characters, independently active places or organizations, rumors, or records.{{/if}}\n\n### Candidate validity gate\n- A candidate must remain worthwhile using only that subject's own local activity, accessible evidence, relationships, duties, surroundings, and established knowledge.\n- Reject a candidate when the cut becomes interesting only by monitoring, analyzing, guessing, or conveniently mirroring {{user}}'s hidden progress, remote combat, objective, private decision, unseen action, or exact current state.\n- Physical proximity, the same building, the same dungeon, an adjacent floor, an open passage, or prior observation does not by itself establish a current sightline, audibility, surveillance path, or continuing access.\n- Reject a candidate whose only advantage is that a retained glimpse already gave it more detail.\n- Under any non-ALWAYS frequency, if no candidate survives, omit the glimpse.\n- Under ALWAYS frequency, search other subject classes first; under HARD VARIETY, omission still outranks repeating the excluded most-recent subject.\n\n## E. Lens\n{{#if {{? {{getglobalvar::toggle_렌즈유형}}==0}}}}자동 렌즈: 선택한 렌즈 성향의 비율을 부드러운 방향성으로만 사용해 하나의 렌즈를 고른다. 비율 자체는 절대 출력하지 않는다.\n{{#if {{? {{getglobalvar::toggle_자동구성}}==0}}}}균형: 인물 45%, 세계·조직 25%, 소문 15%, 기록 15%.{{/if}}\n{{#if {{? {{getglobalvar::toggle_자동구성}}==1}}}}인물 중심: 인물 70%, 세계·조직 15%, 소문 8%, 기록 7%.{{/if}}\n{{#if {{? {{getglobalvar::toggle_자동구성}}==2}}}}세계 중심: 인물 20%, 세계·조직 40%, 소문 20%, 기록 20%.{{/if}}\n{{/if}}\n{{#if {{? {{getglobalvar::toggle_렌즈유형}}==1}}}}렌즈 고정—인물: 확립된 비사용자 캐릭터 또는 개연성 있는 목격자 한 명을 단일 시점 주체로 삼아 현재 행동, 감각, 감정, 사적 생각 또는 제한된 관찰을 자연스럽게 조합한다. 장면에 맞춰 밀착된 체험과 외부 관찰 중 적절한 거리를 택하되, 한 컷 안에서 시점 주체를 바꾸거나 다른 인물의 내면에 접근하지 않는다.{{/if}}\n{{#if {{? {{getglobalvar::toggle_렌즈유형}}==2}}}}렌즈 고정—세계·조직: 개인의 내면보다 장소, 조직, 공동체, 세력, 경로, 생태계, 시설, 날씨 또는 지역 과정의 독립적인 움직임을 중심에 둔다. 등장인물이 있어도 집단이나 환경의 흐름을 대신하는 주인공으로 바꾸지 않는다.{{/if}}\n{{#if {{? {{getglobalvar::toggle_렌즈유형}}==3}}}}렌즈 고정—소문: 정보가 개연성 있는 화자, 공동체, 메시지 또는 전달 경로를 거치며 변형되는 모습을 보여준다. 불완전하거나 편향·과장·거짓일 수 있으며 객관적 사실이나 전지적 설명으로 제시하지 않는다.{{/if}}\n{{#if {{? {{getglobalvar::toggle_렌즈유형}}==4}}}}렌즈 고정—기록: 세계 안에 실제로 존재할 법한 작성자, 목적, 독자, 형식과 정보 한계를 지닌 짧은 기록물을 제시한다. 기록자가 확인할 수 없는 비밀이나 설명문 덩어리를 넣지 않는다.{{/if}}\n\nLENS LABELS CHANGE PRESENTATION, NOT ACCESS:\nThe selected lens controls presentation only. It never grants additional knowledge, sensory reach, identity recognition, or authority.\n- 인물 has exactly one viewpoint anchor. It may reveal only that anchor's legitimate perception, memory, thought, speech, and inference. Other minds remain inaccessible.\n- 세계·조직 may show distributed activity only through established local processes and participants; it is not an omniscient world summary.\n- 소문 must retain a plausible speaker or channel and its uncertainty.\n- 기록 must retain a plausible author, purpose, audience, and evidence limit.\n- For rotation, legacy labels `캐릭터 POV`, `속마음`, and `관찰자` are all equivalent to the single `인물` lens. Changing among those old labels never counts as lens variety.\n\n## F. Distance, atmosphere, focus, and creativity\n{{#if {{? {{getglobalvar::toggle_거리}}==0}}}}Let the lens settle at whichever distance creates the strongest valid glimpse.{{/if}}\n{{#if {{? {{getglobalvar::toggle_거리}}==1}}}}Prefer a nearby subject directly tied to the current event, place, relationship, or immediate consequence. Keep the lens close to the active frame without merely replaying it.{{/if}}\n{{#if {{? {{getglobalvar::toggle_거리}}==2}}}}Prefer a subject one step outside the active frame: still meaningfully related to the current story, but not inside its immediate action.{{/if}}\n{{#if {{? {{getglobalvar::toggle_거리}}==3}}}}Prefer a distant established place, organization, social circle, or region whose independent life broadens the sense of the world. Do not invent major geography solely to satisfy distance.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_분위기}}==0}}}}Harmonize the glimpse with the primary scene's emotional atmosphere unless the subject's established reality clearly requires restraint.{{/if}}\n{{#if {{? {{getglobalvar::toggle_분위기}}==1}}}}Let the subject's own circumstances determine the atmosphere. Do not deliberately manufacture contrast with the primary scene, though a natural difference may remain.{{/if}}\n{{#if {{? {{getglobalvar::toggle_분위기}}==2}}}}Use deliberate atmospheric contrast when the difference itself improves pacing, scale, irony, unease, or emotional resonance. Never trivialize tension, intimacy, grief, danger, or seriousness with inappropriate comedy.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_정보밀도}}==0}}}}BALANCED FOCUS: preserve the scene's texture while including one modest fact, reaction, or local development.{{/if}}\n{{#if {{? {{getglobalvar::toggle_정보밀도}}==1}}}}DESCRIPTION FOCUS: keep sensory detail, setting, gesture, expression, and one readable instant in sharp focus; add little or no new factual information.{{/if}}\n{{#if {{? {{getglobalvar::toggle_정보밀도}}==2}}}}INFORMATION FOCUS: center one or two concrete low-stakes facts or developments, while keeping them nonessential to the next primary response.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_창의성}}==0}}}}Allow restrained minor texture: routines, unnamed people, local objects, small customs, or plausible social detail that does not conflict with canon.{{/if}}\n{{#if {{? {{getglobalvar::toggle_창의성}}==1}}}}Use established people, places, facts, and obvious proportionate actions. Avoid new named entities or notable lore.{{/if}}\n{{#if {{? {{getglobalvar::toggle_창의성}}==2}}}}Allow vivid but disposable background invention: unnamed figures, incidental objects, minor customs, reversible local changes, or uncertain rumors. Never invent a new central faction, major canon, world-changing event, or forced future plot.{{/if}}\n\n## G. Afterimage, rare signs, and promotion\n{{#if {{? {{getglobalvar::toggle_영향도}}==1}}}}CAPTURE ONLY: the glimpse may reveal, frame, or color what is already plausibly present, but it must not cause a new action, message, investigation, movement, relationship shift, or local state change. The entire cut must remain safely removable from continuity.{{/if}}\n{{#if {{? {{getglobalvar::toggle_영향도}}==0}}}}SUBTLE TRACE: one minor local action or reversible state change is allowed, such as a routine message sent, patrol dispatched, small rumor spread, shop closed, person waiting, local search begun, or restrained relationship shift. Do not resolve the central conflict or create mandatory hidden continuity.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_희귀사건}}==1}}}}Do not deliberately frame a rare sign.{{/if}}\n{{#if {{? {{getglobalvar::toggle_희귀사건}}==0}}}}Occasionally, and not in every response even under ALWAYS mode, include one small ambiguous sign: an odd observation, minor anomaly, uncertain rumor, overlooked object, unusual signal, or unresolved local occurrence. It must be proportionate, non-catastrophic, nonessential, and safe to expire without follow-up.{{/if}}\n\n{{#if {{? {{getglobalvar::toggle_영향도}}==1}}}}{{#if {{? {{getglobalvar::toggle_희귀사건}}==0}}}}When CAPTURE ONLY and rare signs are both selected, present the sign only as something already present or passively noticed: an observation, sensation, trace, image, sound, uncertain interpretation, or ambiguous coincidence. It must not trigger a new action, communication, investigation, movement, relationship change, or local state change inside the glimpse.{{/if}}{{/if}}\n\nPROMOTION RULE: If a glimpse detail becomes necessary for future comprehension or durable continuity, promote it before expiry through an ordinary primary-story path such as direct observation, a delivered report, a visible consequence, testimony, discovery, or an on-screen decision. Once promoted, rely on the primary-story occurrence rather than the hidden glimpse. If it is not promoted, treat it as optional background that may be forgotten safely.\n\n## H. Knowledge firewall and subject-local evidence\n\nSUBJECT-LOCAL EVIDENCE LOCK:\nBefore drafting an 인물, 소문, or 기록 glimpse, or attributing facts to participants inside a 세계·조직 glimpse, silently build a local evidence set for every viewpoint anchor, speaker, writer, participant, or source. It may contain only:\n1. facts that source directly perceived;\n2. information explicitly communicated to or read by that source;\n3. established prior knowledge belonging to that source;\n4. sensory evidence physically available at that source's current location;\n5. objective facts newly depicted in the same local cut only when that source can actually witness them.\n\nTreat every other detail as unavailable, even when it appears elsewhere in the request. Unavailable material includes another scene's hidden actions, private thoughts, exact objective, system information, remote combat, unseen progress, secret method, result, identity, and authorial truth.\n\nTRACEABILITY TEST:\nEvery factual statement, perception, causal claim, and inference in the glimpse must be traceable to the local evidence set. If the exact basis cannot be identified, omit the statement or replace it with a narrower observation.\n\nCROSS-SCENE TRUTH BAN:\n- Never use the model's knowledge of the primary scene to make an offscreen character's guess conveniently correct.\n- A guess that matches hidden truth remains a guess and must not be sharpened with details unavailable to the subject.\n- Do not reproduce an exact hidden objective, progress state, combat result, private decision, unseen action, mechanism, or cause through lucky deduction.\n- An observed result does not prove its actor, cause, method, intention, or difficulty.\n- Seeing an open door does not prove who opened it, how it was opened, or which mechanism was bypassed.\n- Seeing people enter after a door opened does not prove they opened it.\n- A nearby floor or shared location category does not create vision, hearing, tracking, or communication.\n\nINFERENCE LIMIT:\n- Inference must remain visibly uncertain, may be wrong, and should be only one of multiple plausible interpretations.\n- Use no more specificity than the subject's evidence supports.\n- Do not invent a deduction chain, sensor, alarm, surveillance method, sightline, audibility, record, or expected signal to expose hidden information.\n- Words such as clearly, obviously, definitely, must mean, or there is no other explanation do not make unsupported inference valid.\n\nABSENCE-OF-SIGNAL RULE:\nA missing sound, alarm, message, light, report, reaction, or other absent signal may be used as evidence only when all four conditions are established:\n1. the subject knows the signal exists;\n2. the signal is physically detectable from the subject's current position;\n3. the subject has reason to expect it under the relevant condition;\n4. the subject is presently monitoring or awaiting it.\nIf any condition is missing, do not use the absence as evidence.\n\nIDENTITY AND METADATA:\n- Metadata identifies the cut for the reader. It does not grant the subject knowledge of names, locations, roles, affiliations, or lens labels.\n- When a viewpoint anchor does not know an identity, its prose, thought, speech, and inference must use only the appearance, role, or description it actually knows.\n- A canonical name in the metadata or available context is not an in-world introduction.\n\nLENS ACCESS LIMIT:\n- 인물 never grants omniscience, telepathy, x-ray perception, remote tracking, another mind, or hidden-state access.\n- 소문 must preserve a plausible speaker and transmission chain; distortion does not permit access to a secret that never entered the chain.\n- 기록 must have a plausible author, purpose, audience, and information source.\n- 세계·조직 may depict objective local processes at the selected place, but it must not act as an omniscient bridge into private minds, hidden user actions, exact remote progress, or secrets with no local manifestation.\n- 희귀한 징후 and 창의성 settings never override this firewall.\n\nGENERAL:\n- A retained glimpse is authorial context, not telepathy and not public information.\n- No character gains another character's private thought or an offscreen fact merely because the model saw it.\n- {{user}} must not perceive, acknowledge, or react to a glimpse unless its information reaches {{user}} through an ordinary in-world path in the primary story.\n- Private thoughts are subjective and may be conflicted, self-deceptive, incomplete, or wrong.\n- Never reveal guaranteed futures, omniscient secrets, hidden system facts, or another person's mind through an unjustified lens.\n- Never independently complete a major quest, resolve the main conflict, kill or permanently transform a major character, or establish a major irreversible event inside a glimpse.\n- Prefer subjects acting from their own duties, relationships, needs, surroundings, and routines. Referencing {{user}} is optional, not the default purpose.\n\n## I. Placement and size\n- Insert each glimpse only between primary-story paragraphs at a natural completed beat, pause, lull, tension shift, or scene transition.\n- Never interrupt a sentence, unfinished dialogue turn, immediate question-answer exchange, continuous combat action, emotional climax, decision before its immediate consequence, or other unfinished local beat.\n- A same-scene 인물 cut may sit close to the triggering line or gesture, but only after that micro-beat is complete.\n- Resume the primary story from the exact paused point. If ambiguity is possible, the first resumed sentence must clearly re-anchor viewpoint, location, speaker, or ongoing action.\n- Do not use horizontal rules as the wrapper.\n- When two blocks are required, normally place them at separate completed beats and do not stack them back-to-back unless a clean scene transition makes that arrangement natural.\n{{#if {{? {{getglobalvar::toggle_출력개수}}==0}}}}- One-block size: normally 1-3 short paragraphs, roughly 140-500 Korean characters or comparable length.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력개수}}==1}}}}- Two-block size: keep each block compact, normally 1-2 short paragraphs and roughly 100-350 Korean characters, so the combined glimpses never crowd out the primary story.{{/if}}\n{{#if {{? {{getglobalvar::toggle_출력개수}}==2}}}}- One-to-two count size: use the one-block range when choosing one; when choosing two, use the shorter two-block range.{{/if}}\n- Rumor and Record may use brief dialogue or document lines within the same total scope.\n\n## J. Exact output format\nEvery glimpse must remain inside its own complete block. Repeat the entire block only as permitted by the selected frequency and count. The four metadata values are visible UI text, not internal planning tokens.\n\n@glTitle: 짧고 분위기 있는 한국어 제목\n⟦루미나 중앙 광장 @ 낮 @ 행인 플레이어들 @ 1⟧\n[glTrack: subject=행인 플레이어들; function=관찰; location=루미나 중앙 광장; lens=1]\n{{#if_pure {{? {{getglobalvar::toggle_에셋}}==0}}}}On this line, copy one complete existing character image-asset tag exactly as it is defined in the active context. Asset-tag syntax may differ between bots; preserve the source tag's entire original syntax, including every prefix, delimiter, bracket, quote, wrapper, and suffix that belongs to the tag itself. Never extract or output only an inner asset identifier. Do not add the legacy `[glPortrait: ...]` wrapper. Never guess, construct, rename, translate, normalize, or modify any part of an asset tag. If the depicted character has one or more verified existing tags, output at least one matching complete tag. If that character has no verified existing tag, omit this entire line.{{/if}}\n글림프스 본문\n@glEnd\n\n- Each individual glimpse uses exactly one internal `[glTrack: ...]` line immediately after the visible metadata and before any portrait line or prose.\n- The tracking line must contain all four fields in this order: `subject`, `function`, `location`, `lens`.\n- Never output more than one tracking line per block.\n- Each individual glimpse uses exactly one @glTitle and one matching @glEnd.\n- When output occurs, the number of complete blocks must match the selected count rule: one, exactly two, or one-to-two according to the selected count rule.\n- When frequency chooses omission, output no @glTitle block at all.\n- Never place person-centered prose, rumor, record, or world/organization cutaways outside complete blocks.\n- The title must be short, atmospheric, varied, non-spoilery, and written in the selected output language (see the global [LANGUAGE LOCK] directive above). Do not use only a name, only an emotion, or generic equivalents of 'Meanwhile/At That Time/Somewhere'.\n- LANGUAGE LOCK (metadata): location, time, subject, and description values inside ⟦ ... ⟧ must be written in the selected output language, not necessarily the language of stored earlier context. Preserve the unique proper-name part, but translate every generic place, time, group, role, and description word into that language.\n{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}- Mandatory examples (한출/Korean): `Lumina Central Plaza` must become `루미나 중앙 광장`; `Bystander Players` must become `행인 플레이어들`; `Day` must become `낮`; `Person` must become `인물`.{{/if}}\n{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}- Mandatory examples (일출/Japanese): `Lumina Central Plaza` must become `ルミナ中央広場`; `Bystander Players` must become `通りすがりのプレイヤーたち`; `Day` must become `昼`; `Person` must become `人物`.{{/if}}\n{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}- Mandatory examples (영출/English): keep location, time, subject, and description values as natural English phrases; no further translation is needed.{{/if}}\n- The lens field (the 4th value inside ⟦ ... ⟧) is a fixed system code, not a translatable narrative word. It must always be exactly one digit: `1`, `2`, `3`, or `4` (see the LENS CODE LEGEND above). The app renders the correct display label in the selected output language automatically, so this field needs no translation and no language-specific handling at all.\n- Except for an established proper noun, do not leave common nouns from a language other than the selected output language inside the location, time, and subject values (the digit lens field is exempt, per the rule above).\n- FINAL METADATA PASS: after drafting the whole response, inspect only the four values inside `⟦ ... ⟧`. Confirm the 4th value is a single digit (`1`-`4`), and that the other three values are written in the selected output language. Rewrite any mismatched value before sending. This pass is mandatory and happens after every other choice.\n- Use `—` instead of inventing an exact unknown detail.\n- For a same-scene 인물 cut, isolate one genuinely private, unspoken, unnoticed, or differently perceived beat; do not replay the conversation.\n- FINAL KNOWLEDGE-LEAK PASS: for every sentence in an 인물, 소문, or 기록 cut, and for every participant supplying facts in a 세계·조직 cut, ask: \"What exact local evidence lets this source know, perceive, report, or infer this?\" Delete or narrow any sentence whose answer depends on access to another scene or hidden authorial truth.\n- FINAL IDENTITY PASS: confirm that no subject knows a canonical name, role, affiliation, mechanism, or location merely because it appears in metadata or elsewhere in the request.\n- FINAL OUTPUT-GATE PASS: confirm that this response still deserves a glimpse after drafting. Under NORMAL, a glimpse in the immediately preceding assistant response is a reason to omit unless this block has fresh independent value.\n- FINAL ROTATION PASS: read retained tracking lines newest-to-oldest and reapply the selected diversity rule. Under NORMAL, recent subjects and repeated functions must lose to reasonably worthwhile fresh candidates. Under HARD VARIETY, reject the most recent subject and the most recent repeated function; replace the block or delete it when no valid alternative exists.\n- FINAL REACTIVATION PASS: confirm that a retained subject was not selected merely because a previous cut remains visible, has more established detail, has an unfinished routine, or can keep monitoring {{user}}.\n- Before finishing, silently verify that every emitted block is complete and that the total block count matches the selected settings. When the chosen frequency permits omission, omit an irreparable set; under Always frequency, replace the unsafe candidate and repair the set before responding.\n{{#if_pure {{? {{getglobalvar::toggle_에셋}}==0}}}}- Before finishing, verify that every block visually depicting a character contains at least one complete, exact asset tag whenever at least one verified tag exists for that character in the active context. Preserve the tag's full bot-specific syntax exactly; an inner identifier by itself is not a valid tag. If several verified tags exist, choose the closest suitable one only from those exact existing tags. This check does not apply when the depicted character has no verified tag, when a character is merely mentioned without being visually depicted, or when no character appears in the block.{{/if}}\n- Do not explain these rules or mention the system.\n\n[END GLIMPSE]\n{{/if}}\n\n{{#if_pure {{? {{getglobalvar::toggle_글림프스}}==0}}}}\n---\n[GLIMPSE ROTATION AND ASSET SAFEGUARDS]\nApply these final safeguards after the main selection rules.\n\n{{#if {{? {{getglobalvar::toggle_다양성}}==2}}}}HARD CROSS-RESPONSE SUBJECT LOCK — MANDATORY:\n- Before generating candidates, identify every complete glimpse block in the immediately preceding assistant response. Resolve each block's `[glTrack] subject` to its underlying canonical entity and put all of those entities in a forbidden-subject set for the current response. If response boundaries are unclear, forbid at minimum the newest retained complete glimpse subject.\n- No forbidden entity may be the main subject of any glimpse in the current response. This has no exception for ALWAYS frequency, requested block count, relevance, continuity, unfinished activity, changed location, changed lens, real name, nickname, translated name, title, disguise, or descriptive reference.\n- A group or organization counts as the same forbidden subject only when the proposed cut is effectively centered on that same individual under group framing. Independent activity of the wider group remains eligible.\n- After selecting the first new block, immediately add its canonical main subject to the same forbidden set before selecting a second block. Two blocks in one response must never center the same underlying person, group, place, event, or process.\n- If no valid subject remains, emit fewer blocks or no glimpse. Never repeat a forbidden subject to satisfy frequency or count.\n- Final lock check: compare every new block's visible subject and `glTrack subject` against all subjects from the immediately preceding assistant response and against earlier blocks in the current response. If any resolve to the same underlying subject, replace or delete the new conflicting block before sending.\n{{/if}}\n\n{{#if_pure {{? {{getglobalvar::toggle_에셋}}==0}}}}CHARACTER-ASSET MINIMUM — FINAL PROCESSED OUTPUT:\n- When asset display is enabled, every emitted glimpse block that visibly depicts one or more characters MUST contain at least one matching image asset whenever at least one verified existing asset tag is available for a depicted character. This minimum is mandatory.\n- Asset-tag syntax is bot-specific. Copy one complete tag exactly as defined in the active authoritative asset context, preserving all syntax that belongs to it. Never output only an inner identifier, filename, character-emotion name, or guessed shorthand.\n- Select only from exact tags verified for that exact character. If several exist, choose the closest suitable existing tag; imperfect emotional fit is not a reason to invent a new emotion tag.\n- Never construct, guess, translate, rename, normalize, combine, or partially fill a tag. Earlier assistant-generated output is not evidence that a tag exists.\n- Place the complete tag inside the same `@glTitle ... @glEnd` block before the character's first dialogue or at the start of the portrayal. Do not add the legacy `[glPortrait: ...]` wrapper.\n- If no depicted character has any verified existing asset tag, omit the image line. A character who is only mentioned, discussed, remembered, or rumored without appearing visually does not trigger this requirement.\n- FINAL ASSET PASS: for each character-depicting block, first check the active authoritative asset definitions. If at least one verified matching tag exists, confirm that the block contains one or more complete exact tags. If none exists, confirm that no invented tag was inserted.\n{{/if}}\n\n[END GLIMPSE ROTATION AND ASSET SAFEGUARDS]\n{{/if}}\n\n{{#if_pure {{? {{getglobalvar::toggle_글림프스}}==1}}}}\n---\n[GLIMPSE BLACKOUT]\n\nGlimpse filming is fully disabled for this response.\n- Do not output `@glTitle`, `@glEnd`, `[glTrack: ...]`, `[glPortrait: ...]`, or any Glimpse wrapper or metadata.\n- Do not imitate, continue, recap, or recreate earlier Glimpse cutaways merely because they exist in stored chat history.\n- Do not add a bonus person-centered, world/organization, rumor, or record cutaway on behalf of the Glimpse module.\n- Continue the ordinary primary narrative normally. Natural scene changes genuinely required by the active story remain allowed; only Glimpse-style auxiliary cuts are disabled.\n\n[END GLIMPSE BLACKOUT]\n{{/if}}\n",
   "mode": "normal",
   "alwaysActive": true,
   "selective": false,
   "useRegex": false,
   "activationPercent": 100,
   "id": "",
   "folder": ""
  }
 ],
 "regex": [
  {
   "comment": "글림프스: 완전 암전 중 우발 출력 숨김",
   "type": "editdisplay",
   "in": "@glTitle:\\s*.*?[\\r\\n]+[\\s\\S]*?@glEnd",
   "out": "{{#if {{? {{getglobalvar::toggle_글림프스}}==0}}}}$&{{/if}}",
   "flag": "g<order 80>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 내부 순환 추적줄 숨김",
   "type": "editdisplay",
   "in": "\\[\\s*glTrack\\s*:\\s*[^\\]\\r\\n]*\\]",
   "out": "",
   "flag": "gi<order 92>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 인물 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:1|인물|PERSON(?:\\s+LENS)?|캐릭터\\s*POV|(?:CHARACTER\\s+)?POV)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}인물{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 96>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 속마음 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:속마음|INNER(?:\\s+THOUGHT)?|PRIVATE\\s+THOUGHT)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}속마음{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 97>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 관찰자 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:관찰자|OBSERVER(?:\\s+ANGLE)?)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}관찰자{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 98>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 세계·조직 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:2|세계[·/&\\- ]*조직|WORLD(?:[·/&\\- ]*(?:ORGANIZATION|ORGANISATION))?|WORLD\\s+LENS)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}세계·조직{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}WORLD/ORG{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}世界・組織{{/if}}</span></div></div>",
   "flag": "gi<order 99>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 소문 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:3|소문|RUMOU?R)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}소문{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}RUMOR{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}噂{{/if}}</span></div></div>",
   "flag": "gi<order 100>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 기록 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:4|기록|RECORD|DOCUMENT|LOG)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}기록{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}RECORD{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}記録{{/if}}</span></div></div>",
   "flag": "gi<order 101>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 인물 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:1|인물|PERSON(?:\\s+LENS)?|캐릭터\\s*POV|(?:CHARACTER\\s+)?POV)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}인물{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 102>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 속마음 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:속마음|INNER(?:\\s+THOUGHT)?|PRIVATE\\s+THOUGHT)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}속마음{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 103>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 관찰자 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:관찰자|OBSERVER(?:\\s+ANGLE)?)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}관찰자{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}PERSON{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}人物{{/if}}</span></div></div>",
   "flag": "gi<order 104>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 세계·조직 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:2|세계[·/&\\- ]*조직|WORLD(?:[·/&\\- ]*(?:ORGANIZATION|ORGANISATION))?|WORLD\\s+LENS)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}세계·조직{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}WORLD/ORG{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}世界・組織{{/if}}</span></div></div>",
   "flag": "gi<order 105>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 소문 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:3|소문|RUMOU?R)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}소문{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}RUMOR{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}噂{{/if}}</span></div></div>",
   "flag": "gi<order 106>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 기록 직접 렌더링",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?:4|기록|RECORD|DOCUMENT|LOG)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">{{#if {{? {{getglobalvar::toggle_언어}}==0}}}}기록{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==1}}}}RECORD{{/if}}{{#if {{? {{getglobalvar::toggle_언어}}==2}}}}記録{{/if}}</span></div></div>",
   "flag": "gi<order 107>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 4항목 정보 인터페이스 예외 호환",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?!(?:(?:1|2|3|4)|(?:(?:인물|PERSON(?:\\s+LENS)?|캐릭터\\s*POV|(?:CHARACTER\\s+)?POV))|(?:(?:속마음|INNER(?:\\s+THOUGHT)?|PRIVATE\\s+THOUGHT))|(?:(?:관찰자|OBSERVER(?:\\s+ANGLE)?))|(?:(?:세계[·/&\\- ]*조직|WORLD(?:[·/&\\- ]*(?:ORGANIZATION|ORGANISATION))?|WORLD\\s+LENS))|(?:(?:소문|RUMOU?R))|(?:(?:기록|RECORD|DOCUMENT|LOG)))\\s*⟧)([^\\r\\n]+?)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span><span class=\"glimpse-info-line\">◷ $2</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $3</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">$4</span></div></div>",
   "flag": "gi<order 108>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 3항목 정보 인터페이스 예외 호환",
   "type": "editdisplay",
   "in": "⟦\\s*([^@\\r\\n]+?)\\s*@\\s*([^@\\r\\n]+?)\\s*@\\s*(?!(?:(?:1|2|3|4)|(?:(?:인물|PERSON(?:\\s+LENS)?|캐릭터\\s*POV|(?:CHARACTER\\s+)?POV))|(?:(?:속마음|INNER(?:\\s+THOUGHT)?|PRIVATE\\s+THOUGHT))|(?:(?:관찰자|OBSERVER(?:\\s+ANGLE)?))|(?:(?:세계[·/&\\- ]*조직|WORLD(?:[·/&\\- ]*(?:ORGANIZATION|ORGANISATION))?|WORLD\\s+LENS))|(?:(?:소문|RUMOU?R))|(?:(?:기록|RECORD|DOCUMENT|LOG)))\\s*⟧)([^\\r\\n]+?)\\s*⟧",
   "out": "<div class=\"glimpse-meta\"><div class=\"glimpse-info glimpse-where\"><span class=\"glimpse-info-line\">⌖ $1</span></div><div class=\"glimpse-info glimpse-subject\"><span class=\"glimpse-info-line\">◉ $2</span></div><div class=\"glimpse-info glimpse-lens\"><span class=\"glimpse-info-line\">$3</span></div></div>",
   "flag": "gi<order 109>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 접이식 인터페이스",
   "type": "editdisplay",
   "in": "@glTitle:\\s*(.*?)\\s*[\\r\\n]+([\\s\\S]*?)@glEnd",
   "out": "{{#if {{? {{getglobalvar::toggle_기본표시}}==1}}}}{{#if {{? {{getglobalvar::toggle_스타일}}==0}}}}<details class=\"glimpse-story glimpse-style-daylight\" open>{{/if}}{{#if {{? {{getglobalvar::toggle_스타일}}==1}}}}<details class=\"glimpse-story glimpse-style-midnight\" open>{{/if}}{{/if}}{{#if {{? {{getglobalvar::toggle_기본표시}}==0}}}}{{#if {{? {{getglobalvar::toggle_스타일}}==0}}}}<details class=\"glimpse-story glimpse-style-daylight\">{{/if}}{{#if {{? {{getglobalvar::toggle_스타일}}==1}}}}<details class=\"glimpse-story glimpse-style-midnight\">{{/if}}{{/if}}\n<summary class=\"glimpse-summary\"><span class=\"glimpse-kicker\">✦ GLIMPSE</span><span class=\"glimpse-title\">$1</span><span class=\"glimpse-chevron\" aria-hidden=\"true\"></span></summary>\n<div class=\"glimpse-panel\">\n$2\n</div>\n</details>",
   "flag": "g<order 100><ove_top>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 잔존 기간 만료 및 완전 암전 문맥 차단",
   "type": "editprocess",
   "in": "@glTitle:\\s*.*?[\\r\\n]+[\\s\\S]*?@glEnd",
   "out": "{{#if {{? {{getglobalvar::toggle_글림프스}}==0}}}}{{#if {{? ({{lastmessageid}}-{{chat_index}})<=(6*({{getglobalvar::toggle_잔존기억}}==0)+0*({{getglobalvar::toggle_잔존기억}}==1)+2*({{getglobalvar::toggle_잔존기억}}==2)+4*({{getglobalvar::toggle_잔존기억}}==3)+8*({{getglobalvar::toggle_잔존기억}}==4)+10*({{getglobalvar::toggle_잔존기억}}==5))}}}}$&{{/if}}{{/if}}",
   "flag": "g<cbs><order 100>",
   "ableFlag": true
  },
  {
   "comment": "글림프스: 구버전 빈 에셋 래퍼 제거(표시, 중첩 대응)",
   "type": "editdisplay",
   "in": "(?:^|\\n)\\[+glPortrait:\\s*\\]+(?=\\n|$)",
   "out": "",
   "flag": "g<order 90>",
   "ableFlag": false
  },
  {
   "comment": "글림프스: 구버전 빈 에셋 래퍼 제거(모델 입력 정제 — 컨텍스트 오염 차단)",
   "type": "editprocess",
   "in": "(?:^|\\n)\\[+glPortrait:\\s*\\]+(?=\\n|$)",
   "out": "",
   "flag": "g<order 90>",
   "ableFlag": false
  }
 ],
 "assets": [],
 "trigger": [],
 "lowLevelAccess": false,
 "backgroundEmbedding": "<style>\n.glimpse-story,\n.glimpse-story * {\n  box-sizing: border-box;\n}\n\n.glimpse-story {\n  --gl-accent: rgba(169, 190, 255, .90);\n  --gl-line: rgba(155, 174, 235, .40);\n  --gl-line-soft: rgba(158, 178, 235, .24);\n  --gl-surface: rgba(10, 17, 32, .44);\n  --gl-surface-soft: rgba(11, 19, 35, .31);\n  --gl-text: rgba(247, 249, 255, .96);\n  --gl-text-soft: rgba(226, 232, 255, .82);\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  margin: 1.15em 0;\n  padding: 0;\n  color: var(--gl-text);\n  overflow: visible;\n}\n\n.glimpse-summary {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: .62em;\n  width: fit-content;\n  max-width: 100%;\n  min-width: 0;\n  margin: 0 auto .62em;\n  padding: .48em .92em;\n  border: 1px solid var(--gl-line);\n  border-radius: 999px;\n  background: rgba(10, 17, 32, .44);\n  box-shadow: 0 4px 14px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .05);\n  cursor: pointer;\n  list-style: none;\n  user-select: none;\n  overflow: hidden;\n  transition: border-color .18s ease, background .18s ease, transform .18s ease;\n}\n\n.glimpse-summary::-webkit-details-marker {\n  display: none;\n}\n\n.glimpse-summary::marker {\n  content: \"\";\n}\n\n.glimpse-summary:hover {\n  border-color: rgba(185, 202, 255, .68);\n  background: rgba(14, 24, 44, .56);\n}\n\n.glimpse-story[open] > .glimpse-summary {\n  border-color: rgba(185, 202, 255, .68);\n}\n\n.glimpse-kicker {\n  flex: 0 0 auto;\n  min-width: 0;\n  color: var(--gl-accent);\n  font-size: clamp(.64rem, 1.8vw, .74rem);\n  font-weight: 800;\n  line-height: 1.2;\n  letter-spacing: .10em;\n  white-space: nowrap;\n}\n\n.glimpse-title {\n  flex: 1 1 auto;\n  min-width: 0;\n  max-width: 100%;\n  font-size: clamp(.88rem, 2.8vw, 1rem);\n  font-weight: 650;\n  line-height: 1.38;\n  letter-spacing: .015em;\n  text-align: center;\n  white-space: normal;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\n.glimpse-chevron {\n  flex: 0 0 auto;\n  width: .72em;\n  height: .72em;\n  border-right: 1.5px solid var(--gl-accent);\n  border-bottom: 1.5px solid var(--gl-accent);\n  transform: rotate(45deg) translateY(-.12em);\n  transform-origin: center;\n  transition: transform .18s ease;\n  opacity: .82;\n}\n\n.glimpse-story[open] .glimpse-chevron {\n  transform: rotate(225deg) translate(-.08em, -.08em);\n}\n\n.glimpse-panel {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  padding: clamp(.72em, 2.8vw, 1.05em);\n  border: 1px solid var(--gl-line-soft);\n  border-radius: 14px;\n  background: var(--gl-surface);\n  box-shadow: 0 8px 24px rgba(0, 0, 0, .20), inset 0 1px 0 rgba(255, 255, 255, .035);\n  line-height: 1.68;\n  overflow: hidden;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\n.glimpse-meta {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  justify-content: center;\n  gap: clamp(.38em, 1.6vw, .62em);\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  margin: 0 0 .82em;\n  padding: 0;\n  filter: drop-shadow(1px 2px 3px rgba(0, 0, 0, .32));\n}\n\n.glimpse-info {\n  display: flex;\n  flex: 1 1 8.5rem;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: .12em;\n  min-width: 0;\n  max-width: 100%;\n  min-height: 2.55em;\n  padding: .42em .62em;\n  border: 1px solid rgba(169, 190, 255, .26);\n  border-radius: 7px;\n  background: var(--gl-surface-soft);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);\n  color: var(--gl-text-soft);\n  font-family: ui-monospace, \"Nanum Gothic Coding\", \"Courier New\", monospace;\n  font-size: clamp(.70rem, 2.4vw, .82rem);\n  font-weight: 650;\n  line-height: 1.42;\n  text-align: center;\n  overflow: hidden;\n}\n\n.glimpse-subject {\n  flex-grow: 1.25;\n  color: var(--gl-text);\n}\n\n.glimpse-lens {\n  flex: .55 1 5.2rem;\n  color: var(--gl-accent);\n  font-weight: 800;\n  letter-spacing: .055em;\n}\n\n.glimpse-info-line {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  white-space: normal;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\n.glimpse-panel > :first-child {\n  margin-top: 0;\n}\n\n.glimpse-panel > :last-child {\n  margin-bottom: 0;\n}\n\n.glimpse-panel p,\n.glimpse-panel div,\n.glimpse-panel span,\n.glimpse-panel strong,\n.glimpse-panel em,\n.glimpse-panel blockquote,\n.glimpse-panel ul,\n.glimpse-panel ol,\n.glimpse-panel li,\n.glimpse-panel a {\n  max-width: 100%;\n  min-width: 0;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\n.glimpse-panel img,\n.glimpse-panel video,\n.glimpse-panel canvas,\n.glimpse-panel svg,\n.glimpse-panel iframe {\n  display: block;\n  width: auto;\n  max-width: 100% !important;\n  height: auto;\n  margin: .12em auto .82em;\n  object-fit: contain;\n}\n\n.glimpse-panel iframe {\n  width: 100%;\n}\n\n.glimpse-panel pre,\n.glimpse-panel table {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.glimpse-panel code {\n  max-width: 100%;\n  white-space: pre-wrap;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\n.glimpse-panel a {\n  word-break: break-all;\n}\n\n\n/* Gloomy Day UI: muted low-saturation blue for comfortable light viewing. */\n.glimpse-story.glimpse-style-daylight {\n  --gl-accent: #647b8a;\n  --gl-line: rgba(100, 123, 138, .58);\n  --gl-line-soft: rgba(100, 123, 139, .58);\n  --gl-surface: #b9c7d0;\n  --gl-surface-soft: #c8d2d9;\n  --gl-text: #26323b;\n  --gl-text-soft: #3f5260;\n}\n\n.glimpse-style-daylight .glimpse-summary {\n  background: #b9c7d0;\n}\n\n.glimpse-style-daylight .glimpse-summary:hover {\n  border-color: var(--gl-accent);\n  background: #c4cfd6;\n}\n\n.glimpse-style-daylight .glimpse-info {\n  border-color: #879ba9;\n}\n\n/* Midnight UI: charcoal night-sky palette with muted gold accents. */\n.glimpse-story.glimpse-style-midnight {\n  --gl-accent: #a18443;\n  --gl-line: #a18443;\n  --gl-line-soft: rgba(82, 92, 108, .82);\n  --gl-surface: #242a34;\n  --gl-surface-soft: #303844;\n  --gl-text: #c3c7ce;\n  --gl-text-soft: #a9afb8;\n}\n\n.glimpse-style-midnight .glimpse-summary {\n  background: #242a34;\n}\n\n.glimpse-style-midnight .glimpse-summary:hover {\n  border-color: var(--gl-accent);\n  background: #303844;\n}\n\n.glimpse-style-daylight[open] > .glimpse-summary,\n.glimpse-style-midnight[open] > .glimpse-summary {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  margin: 0;\n  border-bottom: 0;\n  border-radius: 14px 14px 0 0;\n  border-color: var(--gl-line);\n  background: var(--gl-surface);\n  box-shadow: none;\n  animation:\n    glimpse-midnight-title-open .26s cubic-bezier(.22, .8, .24, 1) both,\n    glimpse-midnight-click-lock .62s step-end both;\n}\n\n.glimpse-style-daylight[open] > .glimpse-panel,\n.glimpse-style-midnight[open] > .glimpse-panel {\n  position: relative;\n  z-index: 1;\n  padding: clamp(.95em, 3.4vw, 1.35em);\n  border-top: 0;\n  border-radius: 0 0 14px 14px;\n  animation: glimpse-midnight-panel-open .62s cubic-bezier(.22, .8, .24, 1) both;\n}\n\n.glimpse-style-midnight .glimpse-info {\n  border-color: #4b5665;\n}\n\n.glimpse-story.glimpse-style-daylight > .glimpse-summary {\n  border: 2.5px solid var(--gl-line) !important;\n}\n\n.glimpse-story.glimpse-style-midnight > .glimpse-summary {\n  border: 2.5px solid var(--gl-line) !important;\n}\n\n.glimpse-story.glimpse-style-daylight[open] > .glimpse-summary,\n.glimpse-story.glimpse-style-midnight[open] > .glimpse-summary {\n  border-bottom: 0 !important;\n}\n\n.glimpse-story.glimpse-style-daylight[open] > .glimpse-panel {\n  border: 2.5px solid var(--gl-line) !important;\n  border-top: 0 !important;\n}\n\n.glimpse-story.glimpse-style-midnight[open] > .glimpse-panel {\n  border: 2.5px solid var(--gl-line) !important;\n  border-top: 0 !important;\n}\n\n/* Keep film-tone text colors stable against the surrounding Risu theme. */\n.glimpse-style-daylight .glimpse-title,\n.glimpse-style-daylight .glimpse-panel,\n.glimpse-style-daylight .glimpse-panel p,\n.glimpse-style-daylight .glimpse-panel p strong,\n.glimpse-style-daylight .glimpse-panel p em,\n.glimpse-style-daylight .glimpse-panel blockquote,\n.glimpse-style-daylight .glimpse-panel li,\n.glimpse-style-midnight .glimpse-title,\n.glimpse-style-midnight .glimpse-panel,\n.glimpse-style-midnight .glimpse-panel p,\n.glimpse-style-midnight .glimpse-panel p strong,\n.glimpse-style-midnight .glimpse-panel p em,\n.glimpse-style-midnight .glimpse-panel blockquote,\n.glimpse-style-midnight .glimpse-panel li {\n  color: var(--gl-text) !important;\n}\n\n.glimpse-style-daylight .glimpse-info,\n.glimpse-style-midnight .glimpse-info {\n  color: var(--gl-accent) !important;\n}\n\n.glimpse-style-daylight .glimpse-info .glimpse-info-line,\n.glimpse-style-midnight .glimpse-info .glimpse-info-line {\n  color: inherit !important;\n}\n\n.glimpse-style-daylight .glimpse-subject,\n.glimpse-style-daylight .glimpse-subject .glimpse-info-line,\n.glimpse-style-midnight .glimpse-subject,\n.glimpse-style-midnight .glimpse-subject .glimpse-info-line {\n  color: var(--gl-accent) !important;\n}\n\n.glimpse-style-daylight .glimpse-kicker,\n.glimpse-style-daylight .glimpse-lens,\n.glimpse-style-daylight .glimpse-lens .glimpse-info-line,\n.glimpse-style-daylight .glimpse-panel a,\n.glimpse-style-midnight .glimpse-kicker,\n.glimpse-style-midnight .glimpse-lens,\n.glimpse-style-midnight .glimpse-lens .glimpse-info-line,\n.glimpse-style-midnight .glimpse-panel a {\n  color: var(--gl-accent) !important;\n}\n\n@keyframes glimpse-midnight-title-open {\n  from {\n    opacity: .82;\n    clip-path: inset(0 34% 0 34% round 999px);\n  }\n  to {\n    opacity: 1;\n    clip-path: inset(0 0 0 0 round 14px 14px 0 0);\n  }\n}\n\n@keyframes glimpse-midnight-panel-open {\n  0%, 34% {\n    opacity: 0;\n    visibility: hidden;\n    transform: translateY(-.42em);\n    clip-path: inset(0 0 100% 0 round 0 0 14px 14px);\n  }\n  35% {\n    opacity: 0;\n    visibility: visible;\n    transform: translateY(-.42em);\n    clip-path: inset(0 0 100% 0 round 0 0 14px 14px);\n  }\n  100% {\n    opacity: 1;\n    visibility: visible;\n    transform: translateY(0);\n    clip-path: inset(0 0 0 0 round 0 0 14px 14px);\n  }\n}\n\n@keyframes glimpse-midnight-click-lock {\n  0%, 99% {\n    pointer-events: none;\n  }\n  100% {\n    pointer-events: auto;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .glimpse-style-daylight[open] > .glimpse-summary,\n  .glimpse-style-daylight[open] > .glimpse-panel,\n  .glimpse-style-midnight[open] > .glimpse-summary,\n  .glimpse-style-midnight[open] > .glimpse-panel {\n    animation: none;\n  }\n}\n\n@media (max-width: 430px) {\n  .glimpse-story {\n    margin: .95em 0;\n  }\n\n  .glimpse-summary {\n    gap: .46em;\n    width: 100%;\n    padding: .48em .68em;\n  }\n\n  .glimpse-kicker {\n    letter-spacing: .06em;\n  }\n\n  .glimpse-panel {\n    border-radius: 11px;\n    padding: .68em;\n  }\n\n  .glimpse-info {\n    flex-basis: 100%;\n    min-height: 2.25em;\n    padding: .36em .52em;\n  }\n}\n</style>",
 "namespace": "glimpse.system.official",
 "displayOrder": 100,
 "cjs": "",
 "enabled": true,
 "__mmAssetFolders__": null
}

🔗 이것과 비슷한 인기 자산

💓흐으응 모듈💦
섹스
👍68 ·
a0evyy
트레나 — [Character Notes: Name: Trena (트레나) Gender: Female Age: 580+ years old (Appears physically in her mid teens) Perso
👍52 ·
🌹네 저예요~ 당신의 영원한 동반자
리제 — 🌹 Character Sheet: Rize Name: Rize Gender: Female Age: Appears late teens to early 20s (True age: Undefined/Transce
👍52 ·
Choi Yoo-jin
소개문 — Profile Name: Choi Yoo‑jin Age: 24 Gender: Female Race: Human (Non‑Awakened) Origin: Seoul, Republic of Korea Birt
🐞 W2 · /city/asset