@font-face{font-family:notoSerifKR;src:url(../media/NotoSerifKR_400_subset-s.p.1djyh3hkz0k7k.woff2)format("woff2");font-display:block;font-weight:400;font-style:normal}@font-face{font-family:notoSerifKR;src:url(../media/NotoSerifKR_600_subset-s.p.10t048365c0id.woff2)format("woff2");font-display:block;font-weight:600;font-style:normal}@font-face{font-family:notoSerifKR Fallback;src:local(Arial);ascent-override:103.96%;descent-override:25.83%;line-gap-override:0.0%;size-adjust:110.71%}.notoserifkr_8199f8cc-module__4k6_Uq__className{font-family:notoSerifKR,notoSerifKR Fallback}.notoserifkr_8199f8cc-module__4k6_Uq__variable{--font-serif-kr:"notoSerifKR", "notoSerifKR Fallback"}
:root{--paper:#f1ebdf;--ink:#2b2823;--ink-soft:#6b655b;--seal:#9b2d20}html,body{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif-kr), "Apple SD Gothic Neo", serif;margin:0;overflow:hidden}.hero-canvas{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{z-index:10}#zoomReadout{left:12px;bottom:max(12px, env(safe-area-inset-bottom,0px) + 12px);z-index:10;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--ink-soft);pointer-events:none;background:#f2e9d6b8;border-radius:4px;padding:4px 8px;font:12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed}#fpsMark{top:calc(env(safe-area-inset-top,0px) + 10px);z-index:10;color:#6b6259;pointer-events:none;background:#f7f2e8b3;border-radius:4px;padding:5px 10px;font:600 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;left:50%;transform:translate(-50%)}.route-layer.out{opacity:0}.route-layer{z-index:3;pointer-events:none;transition-property:opacity;transition-timing-function:ease-out;position:fixed;inset:0}.route-stroke{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.route-stroke path{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1ms linear forwards route-draw}@keyframes route-draw{to{stroke-dashoffset:0}}.route-blot{fill:var(--ink);opacity:0;transform-box:fill-box;transform-origin:50%;animation:.8s cubic-bezier(.2,.7,.3,1) forwards route-blot;transform:scale(0)}@keyframes route-blot{0%{opacity:.9;transform:scale(0)}35%{opacity:.35;transform:scale(.7)}to{opacity:.12;transform:scale(1)}}.route-label{--lx:12px;--ly:0px;transform:translate(var(--lx), -50%) translateY(calc(var(--ly) + 3px));letter-spacing:.12em;color:var(--ink);white-space:nowrap;opacity:0;filter:blur(5px);text-shadow:0 0 6px var(--paper), 0 0 14px var(--paper);font-size:clamp(12px,1.5vh,14px);animation:.6s cubic-bezier(.2,.6,.3,1) forwards route-label;position:absolute}@keyframes route-label{to{opacity:1;filter:blur();transform:translate(var(--lx), -50%) translateY(var(--ly))}}#inscription{z-index:6;pointer-events:none;max-width:calc(100vw - 2*min(40px,2.5vw));animation:.9s ease-out both inscription-in;position:fixed;top:50%;right:min(40px,2.5vw);transform:translateY(-50%)}@keyframes inscription-in{0%{opacity:0}to{opacity:1}}#inscription.inscription-fading{animation:2.5s ease-in both inscription-out}@keyframes inscription-out{0%{opacity:1}to{opacity:0}}#drawLayer{z-index:5;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}#blots{z-index:4;pointer-events:none;position:fixed;inset:0}.blot{filter:blur(6px);background:radial-gradient(circle,#2b282338 0%,#2b28231a 38%,#2b282300 70%);border-radius:50%;width:140px;height:140px;margin:-70px 0 0 -70px;animation:.9s ease-out both blot;position:absolute}.blot.big{width:260px;height:260px;margin:-130px 0 0 -130px;animation-duration:1.6s}@keyframes blot{0%{opacity:0;transform:scale(.25)}12%{opacity:1}to{opacity:0;transform:scale(1)}}#diag{z-index:50;text-align:left;max-width:min(92vw,720px);color:var(--ink);white-space:pre-wrap;background:#f1ebdfeb;border:1px solid #2b282340;border-radius:4px;padding:6px 10px;font:12px/1.5 ui-monospace,Menlo,monospace;position:fixed;top:12px;left:50%;transform:translate(-50%)}@media (max-width:640px){.lil-gui{display:none}}.lil-gui{--width:260px;--background-color:#e8e1d3;--text-color:#2b2823;--title-background-color:#ddd5c4;--widget-color:#d3cbb9;--hover-color:#c9c0ad;--focus-color:#bcb29c;--number-color:#7a3a2c;--string-color:#7a3a2c;font-family:ui-monospace,monospace}#head-mark{z-index:3;pointer-events:none;width:9px;height:9px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}#head-mark:before{content:"";background:var(--seal);border-radius:50%;position:absolute;inset:0}#head-mark:after{content:"";border:.8px solid var(--seal);opacity:.5;border-radius:50%;position:absolute;inset:-4.5px}#head-mark:before{animation:.46s cubic-bezier(.18,.9,.24,1) both seal-strike}#head-mark:after{animation:.62s ease-out both seal-rim}@keyframes seal-strike{0%{opacity:0;transform:scale(1.95);box-shadow:0 0 #a8332a00}22%{opacity:.9;transform:scale(1.2);box-shadow:0 0 #a8332a00}34%{opacity:1;transform:scale(.9);box-shadow:0 0 0 1px #a8332a73}52%{transform:scale(1.06)}70%{box-shadow:0 0 0 9px #a8332a1a}to{opacity:1;transform:scale(1);box-shadow:0 0 0 14px #a8332a00}}@keyframes seal-rim{0%{opacity:0;inset:-1px}34%{opacity:0;inset:-1px}to{opacity:.5;inset:-4.5px}}@media (prefers-reduced-motion:reduce){#head-mark:before,#head-mark:after{animation:none}}.nav{top:calc(env(safe-area-inset-top,0px) + 20px);z-index:40;font-family:var(--font-serif-kr), "Apple SD Gothic Neo", serif;color:var(--ink);pointer-events:none;position:fixed;left:24px}.nav a{color:inherit;pointer-events:auto;text-decoration:none}.nav-logo{letter-spacing:.3em;align-items:center;gap:.55em;font-size:16px;font-weight:600;display:inline-flex}.nav-seal{background:var(--seal);opacity:.9;border-radius:2px;width:.75em;height:.75em;display:inline-block}.nav-links{letter-spacing:.04em;gap:1.1em;margin-top:7px;font-size:13px;display:flex}.nav-links a{color:var(--ink-soft);border-bottom:1px solid #0000;padding-bottom:1px}.nav-links a:hover,.nav-links a:focus-visible{color:var(--ink);border-bottom-color:currentColor}.nav-in{animation:1.4s ease-out both nav-rise}@keyframes nav-rise{0%{opacity:0;transform:translateY(-5px)}to{opacity:1}}@media (prefers-reduced-motion:reduce){.nav-in{animation:none}}@media (max-width:560px){.nav{left:18px}}.nav-on-dark{color:#e8eaf0;text-shadow:0 1px 8px #000000d9}.nav-on-dark .nav-links a{color:#e8eaf0ad}.nav-on-dark .nav-links a:hover,.nav-on-dark .nav-links a:focus-visible{color:#fff}#brush-tip{z-index:30;pointer-events:none;background:radial-gradient(circle at 42% 38%, var(--ink) 0%, color-mix(in srgb, var(--ink) 62%, transparent) 46%, transparent 72%);opacity:0;border-radius:50%;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;transition:opacity .18s,width .14s,height .14s,margin .14s;position:fixed;top:0;left:0}#brush-tip[data-on="1"]{opacity:.62}#brush-tip[data-down="1"]{opacity:.8;width:22px;height:22px;margin:-11px 0 0 -11px}@media (hover:none){#brush-tip{display:none}}@media (prefers-reduced-motion:reduce){#brush-tip{display:none}}.nav-early{opacity:.4}.nav{transition:opacity .9s}.clocknote{z-index:25;text-align:right;pointer-events:none;max-width:330px;color:var(--ink-soft);text-shadow:0 0 5px var(--paper), 0 0 12px var(--paper), 0 0 20px var(--paper);font-size:.78rem;line-height:1.85;animation:1.1s .4s both clocknote-in;position:fixed;bottom:24px;right:26px}.clocknote p{margin:0}.clocknote b{color:var(--ink);font-weight:600}.clocknote-now{font-size:.88rem}.clocknote-rule{margin-top:7px!important}.clocknote-check{opacity:.82;margin-top:7px!important}@keyframes clocknote-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width:720px){.clocknote{text-align:left;max-width:none;left:18px;right:18px}}@media (prefers-reduced-motion:reduce){.clocknote{animation:none}}.bw{z-index:26;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.bw-sheet{max-width:92vw;filter:drop-shadow(0 0 22px color-mix(in srgb, var(--paper) 72%, transparent));grid-area:1/1}.bw-panel{pointer-events:auto;text-shadow:0 0 5px var(--paper), 0 0 12px var(--paper);flex-direction:column;grid-area:1/1;place-self:end center;align-items:center;gap:13px;margin-bottom:7vh;display:flex}.bw-field{align-items:baseline;gap:10px;display:flex}.bw-label{color:var(--ink-soft);letter-spacing:.08em;font-size:.74rem}.bw-field input{width:8.5em;font:inherit;text-align:center;color:var(--ink);border:0;border-bottom:1.5px solid color-mix(in srgb, var(--ink) 34%, transparent);background:0 0;outline:none;padding:2px 4px 5px;font-size:1.18rem;transition:border-color .22s}.bw-field input:focus{border-bottom-color:var(--ink)}.bw-hands{flex-wrap:wrap;justify-content:center;gap:4px 2px;max-width:min(560px,92vw);display:flex}.bw-hand{font:inherit;cursor:pointer;color:var(--ink-soft);background:0 0;border:0;border-bottom:1px solid #0000;padding:3px 9px;font-size:.78rem;transition:color .18s,border-color .18s}.bw-hand:hover{color:var(--ink)}.bw-hand-on{color:var(--ink);border-bottom-color:var(--seal)}.bw-again{font:inherit;cursor:pointer;color:var(--ink-soft);border:1px solid color-mix(in srgb, var(--ink) 22%, transparent);background:0 0;border-radius:2px;padding:4px 16px;font-size:.78rem;transition:color .18s,border-color .18s}.bw-again:hover:not(:disabled){color:var(--ink);border-color:var(--ink)}.bw-again:disabled{opacity:.45;cursor:default}.seals{z-index:7;flex-direction:column;align-items:flex-end;gap:10px;max-width:min(300px,46vw);animation:1.2s .6s both seals-in;display:flex;position:fixed;bottom:148px;right:min(40px,2.5vw)}@keyframes seals-in{0%{opacity:0}to{opacity:1}}.seals-stack{flex-wrap:wrap-reverse;justify-content:flex-end;gap:0;width:128px;margin-bottom:6px;display:flex}.seal-one{transform:rotate(var(--rot,0deg)) translate(var(--dx,0), var(--dy,0));filter:drop-shadow(0 0 1.5px color-mix(in srgb, var(--seal) 30%, transparent));margin:0 -14px -16px 0}.seal-mine{z-index:2;animation:.62s cubic-bezier(.2,1.4,.4,1) both seal-press}@keyframes seal-press{0%{opacity:0;transform:scale(1.5)rotate(-7deg)}60%{opacity:1;transform:scale(.95)rotate(2deg)}to{opacity:1;transform:none}}.seals-slot{cursor:pointer;font:inherit;color:var(--ink-soft);text-shadow:0 0 5px var(--paper), 0 0 12px var(--paper);background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.seals-slot:disabled{cursor:default}.seals-slot-mark{border:1.5px dashed color-mix(in srgb, var(--seal) 58%, transparent);background:color-mix(in srgb, var(--seal) 7%, transparent);border-radius:3px;width:38px;height:38px;transition:background .2s,border-color .2s,transform .2s;animation:3.6s ease-in-out infinite seals-breathe;position:relative}.seals-slot-mark:after{content:"";border:1px solid color-mix(in srgb, var(--seal) 26%, transparent);border-radius:1px;position:absolute;inset:4px}.seals-slot:hover:not(:disabled) .seals-slot-mark{background:color-mix(in srgb, var(--seal) 20%, transparent);border-style:solid;border-color:var(--seal);transform:translateY(-1px)}.seals-slot:hover:not(:disabled) .seals-slot-say{color:var(--ink)}@keyframes seals-breathe{0%,to{opacity:.55}50%{opacity:1}}.seals-slot-say{letter-spacing:.02em;font-size:.8rem;transition:color .2s}.seals-slot-off{opacity:.4;border-color:color-mix(in srgb, var(--ink) 28%, transparent)!important;background:0 0!important;animation:none!important}.seals-slot-off:after{border-color:color-mix(in srgb, var(--ink) 16%, transparent)}.seals-carve{background:radial-gradient(ellipse at 50% 42%, color-mix(in srgb, var(--paper) 94%, transparent) 0%, color-mix(in srgb, var(--paper) 86%, transparent) 52%, transparent 78%);flex-direction:column;align-items:center;gap:10px;padding:6px 10px 2px;animation:.32s cubic-bezier(.2,.9,.3,1) both seals-open;display:flex}@keyframes seals-open{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:none}}.sealpad{touch-action:none;cursor:crosshair;border:2px solid color-mix(in srgb, var(--ink) 70%, transparent);box-shadow:0 1px 0 #0000000a, 0 6px 20px color-mix(in srgb, var(--ink) 9%, transparent);background:repeating-linear-gradient(91deg,#765e3a08 0 1px,#0000 1px 4px),repeating-linear-gradient(1deg,#765e3a0a 0 1px,#0000 1px 24px),radial-gradient(40% 30% at 22% 28%,#92764a0d,#0000 70%),radial-gradient(34% 44% at 78% 70%,#92764a0b,#0000 72%),linear-gradient(176deg,#f3ecda 0%,#efe6d0 52%,#f2ead6 100%);position:relative}.sealpad:before{content:"";pointer-events:none;z-index:2;border:1px solid color-mix(in srgb, var(--ink) 40%, transparent);position:absolute;inset:5px}.sealpad canvas{z-index:1;width:100%;height:100%;display:block;position:relative}.sealpad-hint{z-index:3;pointer-events:none;letter-spacing:.04em;color:color-mix(in srgb, var(--ink) 32%, transparent);place-items:center;font-size:.8rem;animation:3.6s ease-in-out infinite seals-breathe;display:grid;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.sealpad-hint{animation:none}}.seals-act{align-items:center;gap:16px;margin-top:3px;display:flex}.seals-press{font:inherit;cursor:pointer;color:var(--paper);background:var(--seal);letter-spacing:.04em;border:0;border-radius:2px;padding:5px 20px;font-size:.84rem;transition:opacity .18s,transform .12s}.seals-press:hover:not(:disabled){opacity:.88}.seals-press:active:not(:disabled){transform:translateY(1px)}.seals-press:disabled{opacity:.28;cursor:default}.seals-no{font:inherit;cursor:pointer;color:var(--ink-soft);text-shadow:0 0 5px var(--paper), 0 0 10px var(--paper);background:0 0;border:0;border-bottom:1px solid #0000;padding:0;font-size:.76rem}.seals-no:hover:not(:disabled){color:var(--ink);border-bottom-color:currentColor}.seals-no:disabled{opacity:.3;cursor:default}.seals-err{color:var(--seal);margin:0;font-size:.74rem}.seals-gyeong{text-align:right;color:color-mix(in srgb, var(--ink-soft) 78%, transparent);text-shadow:0 0 5px var(--paper), 0 0 12px var(--paper);margin:2px 0 0;font-size:.72rem;line-height:1.75}@media (max-width:720px){.seals{max-width:62vw;bottom:176px}}@media (prefers-reduced-motion:reduce){.seals,.seals-mine{animation:none}.seals-slot-mark{opacity:.8;animation:none}}.samwon{z-index:8;pointer-events:none;text-align:center;opacity:0;text-shadow:0 0 6px var(--paper), 0 0 14px var(--paper);margin:0;transition:opacity .76s;position:fixed;top:17%;left:50%;transform:translate(-50%)}.samwon-on{opacity:1}.samwon b{letter-spacing:.16em;color:var(--ink);font-size:1.12rem;font-weight:600;display:block}.samwon b i{color:var(--ink-soft);letter-spacing:.08em;font-size:.72em;font-style:normal;font-weight:400}.samwon span{color:var(--ink);letter-spacing:.01em;margin-top:4px;font-size:.8rem;display:block}.samwon em{color:color-mix(in srgb, var(--ink-soft) 76%, transparent);margin-top:5px;font-size:.68rem;font-style:normal;display:block}@media (prefers-reduced-motion:reduce){.samwon{transition:none}}.wayu{z-index:7;pointer-events:none;max-width:min(340px,46vw);text-shadow:0 0 5px var(--paper), 0 0 13px var(--paper);animation:1.6s .9s both wayu-in;position:fixed;bottom:7vh;left:min(40px,2.5vw)}@keyframes wayu-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.wayu h2{letter-spacing:.3em;color:var(--ink);margin:0;font-size:1.9rem;font-weight:600;line-height:1.1}.wayu h2 .wayu-ko{letter-spacing:.06em;color:var(--ink-soft);vertical-align:.5em;margin-left:2px;font-size:.86rem;font-weight:400}.wayu-say{color:var(--ink);letter-spacing:.02em;margin:6px 0 0;font-size:.88rem}.wayu-who{color:var(--ink-soft);margin:11px 0 0;font-size:.74rem;line-height:1.8}.wayu-this{color:var(--ink);margin:9px 0 0;font-size:.82rem}@media (max-width:720px){.wayu{max-width:62vw;bottom:20vh}}@media (prefers-reduced-motion:reduce){.wayu{animation:none}}.wayu-term{border-top:1px solid color-mix(in srgb, var(--ink) 13%, transparent);flex-wrap:wrap;align-items:baseline;gap:0 8px;margin:14px 0 0;padding-top:11px;font-size:.76rem;line-height:1.7;display:flex}.wayu-term-day{color:var(--ink-soft);letter-spacing:.08em}.wayu-term b{color:var(--ink);letter-spacing:.04em;font-size:.98rem;font-weight:600}.wayu-term b i{color:var(--ink-soft);letter-spacing:.06em;font-size:.72em;font-style:normal;font-weight:400}.wayu-term-say{color:var(--ink)}.wayu-term-next{width:100%;color:color-mix(in srgb, var(--ink-soft) 82%, transparent);font-size:.72rem}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
