@font-face{font-family:Nanum Pen Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nanum-pen-script-latin-400-normal-_AdqYBm1.woff2) format("woff2"),url(/assets/nanum-pen-script-latin-400-normal-CEV0Fmsy.woff) format("woff")}:root{--black: #000;--gray-1: #1c1c1e;--gray-2: #262629;--gray-3: #3a3a3c;--gray-4: #8e8e93;--white: #f5f5f7;--paper: #fcfbf7;--ink: #1f3a8a;--red: #c2262e;--gold: #c99a2e;--line: rgba(92,120,190,.55);--line-thin: rgba(122,150,205,.28);--sys: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Roboto, Arial, sans-serif;--hand: "Nanum Pen Script", "Bradley Hand", "Segoe Print", cursive;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#000;color:var(--white);font-family:var(--sys);-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{display:grid;place-items:center}button{font:inherit}.phone{position:relative;width:100%;height:100%;max-width:460px;overflow:hidden;background:var(--black);user-select:none;-webkit-user-select:none;touch-action:manipulation;perspective:1600px}@media (min-width: 520px){.phone{height:min(100%,920px);border-radius:28px;box-shadow:0 30px 80px #0009}}.scene{position:absolute;top:0;right:0;bottom:0;left:0}.grow{flex:1}.in-fade{animation:fade .5s ease both}@keyframes fade{0%{opacity:0}}.in-paper{animation:paperIn 1s cubic-bezier(.2,.8,.2,1) both}@keyframes paperIn{0%{transform:translateY(100%) rotate(4deg)}}.turn-next{transform-origin:left center;animation:turnNext .8s cubic-bezier(.3,.7,.2,1) both}@keyframes turnNext{0%{transform:rotateY(-70deg);box-shadow:-30px 0 60px #0006}to{transform:none}}.turn-prev{animation:fade .4s ease both}.mute{position:absolute;z-index:30;top:calc(12px + env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px));border:0;background:transparent;padding:8px 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--gray-4)}.is-paper .mute{color:var(--ink);opacity:.55}.next-hint{position:absolute;z-index:20;margin:0;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));font-size:14px;color:var(--gray-4);animation:nudge 1.5s ease-in-out infinite;pointer-events:none}.next-hint.hand{font-family:var(--hand);font-size:30px;color:var(--ink);bottom:calc(10px + env(safe-area-inset-bottom,0px))}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;background:#0b0b0c;touch-action:none;cursor:grab;padding-block:calc(92px + env(safe-area-inset-top,0px)) calc(10px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.lock-date{margin:0;font-size:19px;font-weight:500;color:#d1d1d6}.lock-time{margin:0;font-size:92px;font-weight:600;letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}.notif{width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;background:var(--gray-1);color:var(--white);border:0;border-radius:20px;padding:14px 16px;cursor:pointer;animation:notif .7s cubic-bezier(.2,.9,.3,1.2) 1.2s both}@keyframes notif{0%{opacity:0;transform:translateY(-16px) scale(.97)}}.notif-av,.chat-av{flex:none;width:38px;height:38px;border-radius:50%;background:var(--gray-3);display:grid;place-items:center;font-weight:600;font-size:16px}.notif-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notif-head{display:flex;justify-content:space-between;font-size:15px}.notif-head b{font-weight:600}.notif-head span{color:#98989f;font-size:13px}.notif-text{font-size:15px;line-height:1.3;color:#e5e5ea}.lock-hint{margin:0 0 12px;font-size:15px;color:#98989f;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{opacity:.45}}.home-bar{width:134px;height:5px;border-radius:3px;background:var(--white)}.chat{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--black)}.chat-top{display:flex;flex-direction:column;align-items:center;gap:4px;border-bottom:1px solid var(--gray-1);padding-block:calc(40px + env(safe-area-inset-top,0px)) 10px}.chat-top .chat-av{width:50px;height:50px;font-size:21px}.chat-name{font-size:12px;color:#d1d1d6}.chat-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-block:14px 16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.chat-day{margin:0 0 8px;align-self:center;font-size:12px;color:var(--gray-4)}.bubble{margin:0;align-self:flex-start;max-width:78%;background:var(--gray-2);padding:8px 13px;border-radius:18px;font-size:16px;line-height:1.32;overflow-wrap:anywhere;animation:bub .28s cubic-bezier(.2,.9,.3,1.3) both;transform-origin:bottom left}.bubble.gap{margin-top:10px}@keyframes bub{0%{opacity:0;transform:scale(.85) translateY(6px)}}.typing{display:flex;gap:4px;padding:13px 15px}.typing i{width:8px;height:8px;border-radius:50%;background:var(--gray-4);animation:dot 1.1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,60%,to{opacity:.4}30%{opacity:1}}.chat-input{padding-block:8px calc(16px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.chat-input span{display:block;border:1px solid var(--gray-3);border-radius:20px;padding:9px 14px;color:var(--gray-4);font-size:16px}.seyes{background-color:var(--paper);color:var(--ink);color-scheme:light;background-image:linear-gradient(90deg,transparent 63px,#e8747c 63px,#e8747c 65px,transparent 65px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(122,150,205,.32) 31px 32px),repeating-linear-gradient(180deg,transparent 0 31px,var(--line) 31px 32px),repeating-linear-gradient(180deg,transparent 0 7px,var(--line-thin) 7px 8px)}.page-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;font-family:var(--hand);font-size:28px;line-height:32px;padding-block:64px 48px;padding-left:max(80px,calc(80px + env(safe-area-inset-left,0px)));padding-right:max(16px,env(safe-area-inset-right,0px))}.page-num{position:absolute;margin:0;left:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font-family:var(--hand);font-size:24px;color:var(--ink);opacity:.6}.row-gap{height:32px;flex:none}.ink{display:flex;flex-direction:column}.ink.right{align-items:flex-end}.ink-line{display:block;width:max-content;max-width:100%;clip-path:inset(0 100% 0 0);animation-name:write;animation-timing-function:linear;animation-fill-mode:both}@keyframes write{to{clip-path:inset(0 -2% 0 0)}}.red{color:var(--red)}.title-red{margin:0;font-size:40px;line-height:64px}.draw-under{position:relative;align-self:flex-start}.draw-under:after{content:"";position:absolute;left:0;right:0;bottom:14px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;animation:under .5s ease-out both;animation-delay:inherit}@keyframes under{to{transform:scaleX(1)}}.stamp-note{align-self:flex-end;margin:0 0 48px;border:2px solid var(--red);border-radius:6px;padding:2px 14px;color:var(--red);font-size:30px;transform:rotate(-6deg);animation:stamp .45s cubic-bezier(.3,1.6,.5,1) both}@keyframes stamp{0%{opacity:0;transform:rotate(-14deg) scale(1.8)}}.pen{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation-name:draw;animation-timing-function:ease-in-out;animation-fill-mode:both}@keyframes draw{to{stroke-dashoffset:0}}.red-pen{stroke:var(--red);stroke-width:3}.memories{display:flex;flex-direction:column;gap:6px;margin-top:14px}.memory{display:flex;align-items:center;gap:10px}.memory.flip{flex-direction:row-reverse}.doodle{width:128px;flex:none;height:auto;overflow:visible}.cap{font-size:26px;line-height:28px;min-width:0}.memory.flip .cap{align-items:flex-start}.kheart{position:relative;width:min(64vw,250px);align-self:center;margin:10px 0 2px}.kheart svg{width:100%;height:auto;display:block;overflow:visible}.heart-line{stroke-width:4}.crack{stroke-width:2;opacity:.8}.gold{fill:none;stroke:var(--gold);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s ease-in-out;pointer-events:none;opacity:.92}.gold.on{stroke-dashoffset:0}.crack-hint{fill:none;stroke:var(--gold);stroke-width:10;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:hint 1.6s ease-in-out infinite;pointer-events:none}@keyframes hint{50%{opacity:.35}}.hit.off{pointer-events:none}.hit{fill:none;stroke:transparent;stroke-width:40;stroke-linecap:round;pointer-events:stroke;cursor:pointer;outline:none}.margin-note{margin:4px 0 0;text-align:center;transform:rotate(-3deg);color:var(--red);font-size:24px;white-space:nowrap;animation:fade .6s both}.apologies{display:flex;flex-direction:column;margin-top:22px}.hint-hand{margin:0;color:var(--gold);animation:breathe 2s ease-in-out infinite}.big-hand{font-size:52px;line-height:64px}.choices{display:flex;flex-direction:column;gap:0;margin-top:8px}.choice{display:flex;align-items:center;gap:12px;min-height:48px;cursor:pointer;animation:fade .5s both}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice svg{width:30px;height:30px;flex:none;overflow:visible}.choice .box{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round}.choice .tick{fill:none;stroke:var(--ink);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw .45s ease-out .1s forwards}.choice:has(input:disabled){opacity:.35}.choice:has(input:focus-visible) .box{stroke:var(--gold);stroke-width:3}.answer{position:relative;margin-top:18px;min-height:120px}.wolof-hand{font-size:34px;line-height:40px;color:var(--ink)}.doodle-heart{position:absolute;height:auto;overflow:visible;pointer-events:none}.grade{position:absolute;right:2px;top:92px;width:98px;height:98px;border:3px solid var(--red);border-radius:50%;color:var(--red);display:grid;place-content:center;text-align:center;font-size:36px;line-height:1;transform:rotate(-10deg);animation:stamp .45s cubic-bezier(.3,1.6,.5,1) 3.2s both}.grade small{display:block;font-size:20px;margin-top:2px}.end-row{margin-top:auto;display:flex;flex-direction:column;gap:6px;animation:fade .6s both}.sign{display:flex;flex-direction:column;font-size:26px;line-height:28px}.sign canvas{width:190px;height:64px;border-bottom:2px solid var(--ink);touch-action:none;cursor:crosshair}.end-links{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;font-size:24px}.wa{color:var(--ink);text-underline-offset:4px}.replay{border:0;background:none;padding:0;color:var(--ink);opacity:.6;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font-family:var(--hand);font-size:24px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}
