@font-face{font-family:Pretendard;src:url('assets/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#fff}body{margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;color:#212121;background:#fff;-webkit-text-size-adjust:100%;font-size:16px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #7046ff;outline-offset:3px}#shell{width:100%;max-width:480px;min-height:100dvh;margin:0 auto;background:#fff}header{position:sticky;top:0;z-index:10;background:#fff;padding-top:env(safe-area-inset-top);height:calc(48px + env(safe-area-inset-top));display:flex;justify-content:center;align-items:center}nav{display:flex;align-items:center;gap:28px;height:48px;padding:0}nav a{position:relative;text-decoration:none;color:#797d85;font-size:16px;line-height:24px;font-weight:400;display:block;height:44px;padding:6px 0 14px;min-width:44px;text-align:center}nav a.active{color:#151515;font-weight:600}nav svg{position:absolute;bottom:4px;width:26px;height:8px;left:50%;transform:translateX(-50%);display:none;fill:none;stroke:#7046ff;stroke-width:3.4;stroke-linecap:round}nav a.active svg{display:block}#content{min-height:calc(100dvh - 48px - env(safe-area-inset-top));margin-top:0;padding-top:0}.platform{display:flex;flex-direction:column;gap:12px;padding-bottom:12px;background:white}.platform img{display:block;width:100%;height:auto;margin:0}.post{margin:0 0 12px;background:#fff}.media-track{width:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.media-track::-webkit-scrollbar{display:none}.media{width:100%;aspect-ratio:4/5;position:relative;flex:0 0 100%;overflow:hidden;scroll-snap-align:start}.media>img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.dots{height:23px;display:flex;align-items:center;justify-content:center;gap:7px}.dots span{width:6px;height:6px;background:#d5dae4;border-radius:50%;display:block}.dots span.on{background:#7249ff}.caption{padding:10px 16px 17px}.dots+.caption{padding-top:2px}.caption h2{font-size:16px;line-height:24px;font-weight:600;letter-spacing:0;margin:0 0 2px;overflow-wrap:anywhere}.caption p{font-size:16px;line-height:24px;font-weight:400;color:#212121;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.caption time{display:block;font-size:12px;color:#8b8f97;line-height:20px;margin-top:7px}.video-card{display:block;width:100%;height:100%;padding:0;border:0;background:#101010;color:white;position:relative}.video-card>img{width:100%;height:100%;object-fit:cover;display:block}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;display:grid;place-items:center;background:#fffdf4e8;border-radius:50%;box-shadow:0 3px 12px #0002}.play svg{width:25px;height:25px;fill:#171717;margin-left:4px}#top{position:fixed;z-index:15;bottom:calc(18px + env(safe-area-inset-bottom));right:max(10px,calc((100vw - 480px)/2 + 10px));width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;padding:0;color:#252525}#top::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1px solid #ffffffb3;background:rgba(255,255,255,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 5px #00000012;pointer-events:none}#top svg{position:relative;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}#notice{position:fixed;bottom:86px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);border-radius:8px;background:#242424;color:white;padding:12px 18px;font-size:14px;z-index:25}.admin{padding:20px 16px 90px}.admin h1{font-size:25px;line-height:34px;margin:10px 0}.admin h2{font-size:20px;margin:25px 0 13px}.admin .note{font-size:14px;line-height:22px;background:#f3f3f7;padding:13px;border-radius:6px;color:#5c6069}.admin-tabs{display:flex;gap:8px;margin:20px 0}.admin button,.admin .button{border:1px solid #dddfe5;border-radius:6px;background:#fff;color:#28282d;padding:10px 12px;text-decoration:none;display:inline-block}.admin-tabs button.active,.admin .primary{background:#242429;color:white;border-color:#242429}.admin label{display:block;font-size:14px;font-weight:600;margin:17px 0 7px}.admin input:not([type=checkbox]),.admin textarea,.admin select{display:block;width:100%;background:#fff;padding:12px;border:1px solid #d7d9e0;border-radius:6px;color:#26262a}.admin textarea{min-height:110px;resize:vertical;line-height:24px}.admin .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.thumbs img,.thumbs video{width:74px;height:90px;object-fit:cover}.manage-item{border-top:1px solid #e4e4e8;padding:17px 0;display:grid;grid-template-columns:68px 1fr;gap:13px}.manage-thumbnail{position:relative;width:68px;height:84px;overflow:hidden;background:#171717}.manage-thumbnail>img,.manage-thumbnail>video{display:block;width:100%;height:100%;object-fit:cover}.manage-thumbnail>[hidden]{display:none}.thumbnail-video-label{position:absolute;left:0;right:0;bottom:0;padding:3px 2px;background:#000a;color:#fff;font-size:10px;line-height:16px;text-align:center;pointer-events:none}.thumbnail-error{display:flex;align-items:center;justify-content:center;height:100%;padding:4px;color:#fff;font-size:11px;line-height:16px;text-align:center}.manage-item strong{font-size:15px}.manage-item p{font-size:13px;line-height:20px;margin:5px 0;color:#777}.manage-item button{font-size:13px;padding:7px 10px}.manage-item .actions{margin-top:7px;gap:6px}.empty{padding:50px 25px;text-align:center;color:#7b7f87;font-size:15px}button:disabled{opacity:.3;cursor:default}.admin details{margin-top:25px}.admin summary{font-size:15px;cursor:pointer}.editor-preview{margin:20px -16px;background:white;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.editor-preview .post{margin:0}.checkbox{display:flex!important;gap:9px;align-items:center}.checkbox input{width:18px;height:18px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

[hidden]{display:none!important}
/* Keep native document scrolling available for Safari's browser chrome. */
html,body{overflow-x:clip;overflow-y:visible}
html.video-mode,body.video-mode,body.video-mode #shell{background:#000}
html.video-mode,body.video-mode{overscroll-behavior-x:none}
body.video-mode #shell{min-height:100vh;min-height:100dvh}
#content.video-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;background:#000;color:#fff;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.video-nav,.video-sound{position:absolute;top:calc(10px + env(safe-area-inset-top));padding:0;z-index:2}
.video-nav{left:10px}
.video-sound{right:10px}
.video-nav button,.video-sound{display:grid;place-items:center;width:44px;height:44px;border:0;background:#000;border-radius:50%;padding:10px;color:white}
.video-nav svg,.video-sound svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.video-sound .sound-muted,.video-sound.is-muted .sound-waves{display:none}
.video-sound.is-muted .sound-muted{display:block}
.video-stage{flex:0 0 auto;width:100%;height:max(160px,calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)));height:max(160px,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)));display:flex;align-items:center;justify-content:center}
.video-page{touch-action:pan-y pinch-zoom}
.video-frame{position:relative;width:100%;height:100%}
.video-stage video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#000}
.video-surface{position:absolute;inset:0;width:100%;height:100%;min-height:44px;padding:0;border:0;background:transparent;color:#fff;touch-action:pan-y pinch-zoom}
.video-surface .play{display:none;pointer-events:none}
.video-surface.is-paused .play{display:grid}
.video-page .caption{flex-shrink:0;position:relative;z-index:1;margin-top:calc(0px - var(--video-caption-height,76px));padding:12px 16px;background:transparent;text-shadow:0 1px 3px #000,0 0 6px #0008}
.video-page .caption h2{color:#fff}
.video-page .caption p{color:#f1f1f1}

.video-card.is-playing .play{display:none}

.load-more{display:block;margin:16px auto 32px;padding:12px 24px;border:1px solid #ddd;border-radius:6px;background:#fff;min-height:44px}
.admin .hint{font-size:13px;line-height:20px;color:#666}
.admin .login-password-toggle{min-height:44px;margin:4px 0 0}
.admin .error{color:#a32121;background:#fff0f0;padding:12px;white-space:pre-wrap}
.edit-media-row{border:1px solid #ddd;padding:10px;margin:8px 0;border-radius:6px}
.edit-media-row>img,.edit-media-row>video{width:100px;height:125px;object-fit:cover}
.admin progress{width:100%;height:16px}
.admin input[type=file]{max-width:100%}

/* Reveal the life list underneath the video that follows the finger. */
.video-page.is-back-dragging{z-index:20;will-change:transform;box-shadow:-8px 0 24px #0003}
.video-backdrop{position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);overflow:hidden;background:#fff;z-index:19;pointer-events:none}
.video-backdrop header{position:relative}

/* Hint at the next photo without changing the real carousel selection. */
.media-track.is-photo-swipe-hint>.media{animation:photo-swipe-hint 1200ms ease-in-out;will-change:transform}
@keyframes photo-swipe-hint{0%,60%,100%{transform:translateX(0)}30%{transform:translateX(-18px)}80%{transform:translateX(-8px)}}
@media(prefers-reduced-motion:reduce){.media-track.is-photo-swipe-hint>.media{animation:none;will-change:auto}}
