@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;550;600;650;700;750;800&display=swap');
:root{--canvas:#f1f4ff;--ink:#172347;--muted:#697693;--teal:#6055ed;--line:#d4dbf0;--peach:#e3d9ff;--sage:#d2f3ff;--butter:#e1e6ff;--white:#fafdff;--glass:rgba(255,255,255,.46);--serif:'Manrope',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px 'DM Sans',system-ui,sans-serif;min-height:100svh;background-image:radial-gradient(ellipse at 3% 24%,#7de6ff85,transparent 44%),radial-gradient(ellipse at 98% 70%,#a38aff90,transparent 46%),radial-gradient(ellipse at 72% 0%,#c4d8ff90,transparent 42%),radial-gradient(ellipse at 10% 100%,#edbaff66,transparent 44%);background-attachment:fixed}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:5px}input:focus,textarea:focus,select:focus{outline:2px solid #6055ed70;outline-offset:2px}[hidden]{display:none!important}.sprite{position:absolute;width:0;height:0;overflow:hidden}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.glass{background:var(--glass);border:1px solid #fafdffcc;box-shadow:0 6px 22px #244d3d0a,inset 0 1px 0 #fff;backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3)}.app-header{max-width:1440px;margin:auto;height:112px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:4}.wordmark{display:flex;gap:13px;align-items:center;font:800 23px var(--serif);letter-spacing:-1.25px;text-decoration:none}.wordmark-dot{color:#d68c6f}.logo{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:45px;border:1.5px solid var(--ink);border-radius:15px 15px 18px 18px;font:750 25px var(--serif);letter-spacing:-3px;padding-right:3px;transform:rotate(-5deg)}.logo span{color:var(--teal)}.logo i{position:absolute;bottom:6px;width:17px;height:6px;border-bottom:1.5px solid var(--ink);border-radius:0 0 15px 15px;left:12px}.desktop-nav{display:flex;gap:5px;padding:5px;border-radius:40px;position:absolute;left:50%;transform:translateX(-50%)}.desktop-nav button{padding:12px 27px;font-size:12px;border-radius:30px;color:#61756e}.desktop-nav .active{background:#e0ebe3;color:var(--ink);box-shadow:inset 0 1px 0 #ffffff80}.header-tools{display:flex;gap:20px;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;flex-shrink:0}.icon-btn:hover{background:#17234709}.avatar{background:#e4ebe0;border:1px solid #fff9;color:var(--ink);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:11px;font-weight:600;flex-shrink:0}.account-avatar{width:39px;height:39px;background:#e8dccc}.account-avatar svg{width:19px;height:19px}main{max-width:1200px;margin:auto;padding:20px 32px 60px}#view-toolbar{max-width:640px;margin:0 auto 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:40px}.segment{display:inline-flex;gap:3px;align-items:center;padding:4px;border-radius:28px;background:#e5e9df90}.segment button{padding:9px 20px;border-radius:22px;color:#77857b;font-size:11px;font-weight:500;white-space:nowrap}.segment .active{background:var(--white);color:var(--ink);box-shadow:0 2px 5px #264d3910}.subtle-label{font-size:10px;letter-spacing:.4px;color:#859087}.view-title{font:650 23px var(--serif);letter-spacing:-.8px;margin:0}.stage{max-width:640px;margin:auto;position:relative}.joke-card{--card:var(--white);background:var(--card);border:1px solid #ffffffa6;border-radius:31px;position:relative;padding:30px 34px;box-shadow:0 18px 50px -24px #38584725;overflow:hidden;display:flex;flex-direction:column;min-height:400px;isolation:isolate}.joke-card:before{content:'';position:absolute;inset:0;background:linear-gradient(140deg,#ffffff30,transparent 60%);z-index:-1;pointer-events:none}.tone-0{--card:#fafdff}.tone-1{--card:#f2d1bf}.tone-2{--card:#e0ece1}.tone-3{--card:#f3e4bd}.deck .joke-card{touch-action:pan-y;user-select:none;min-height:410px;will-change:transform}.deck:before,.deck:after{content:'';position:absolute;background:#e1e5d9;border:1px solid #ffffff70;height:70px;bottom:-9px;left:15px;right:15px;border-radius:0 0 28px 28px;z-index:-1}.deck:after{bottom:-17px;left:30px;right:30px;background:#e9eadd;z-index:-2}.author-row{display:flex;align-items:center;gap:10px}.author-trigger{display:flex;align-items:center;gap:10px;text-align:left;padding:0;min-width:0}.author-meta{display:flex;flex-direction:column;gap:2px}.author-meta strong{font-weight:550;font-size:12px}.author-meta small{color:#708277;font-size:10px}.author-row .more{margin-left:auto;width:30px;height:32px}.author-row .more svg{width:21px}.joke-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0 30px;min-height:235px}.joke-body h2{font:650 32px/1.43 var(--serif);letter-spacing:-1.2px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.joke-body.long h2{font-size:24px;letter-spacing:-.7px}.punchline{font:600 25px/1.45 var(--serif);color:var(--teal);letter-spacing:-.6px;margin:20px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.reveal{align-self:flex-start;font-size:11px;display:flex;align-items:center;gap:8px;background:#ffffff80;border:1px solid #ffffff8a;border-radius:24px;padding:12px 17px;margin-top:27px;min-height:40px}.reveal svg{width:14px;height:14px}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:15px}.topic-tags{display:flex;flex-wrap:wrap;gap:7px;max-width:55%}.topic-tag{font-size:9px;padding:5px 8px;border:1px solid #1723471c;border-radius:20px;color:#667b6e;white-space:nowrap}.card-utilities{display:flex;gap:5px;align-items:center}.card-utilities button{padding:8px;min-height:36px;display:flex;gap:4px;align-items:center;border-radius:50%;color:#4e6e62}.card-utilities button:hover{background:#fff5}.card-utilities svg{width:18px;height:18px}.card-utilities small{font-size:10px}.card-utilities .on{color:var(--teal)}.on svg.fill{fill:currentColor}.decision-bar{display:flex;align-items:center;justify-content:center;gap:22px;margin:39px auto 0;position:relative;width:230px}.decision{border-radius:50%;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border:1px solid #fff;box-shadow:0 4px 14px #274d3b0a;background:#ffffffb5;transition:transform .2s}.decision:hover{transform:translateY(-2px)}.decision svg{width:23px;height:23px}.decision.like{background:var(--teal);color:#fff;border-color:#6055ed;box-shadow:0 5px 20px #6055ed25}.decision.like svg{width:24px;height:24px}.decision-bar .undo{position:absolute;left:-37px;width:35px;height:35px;color:#8c998e}.decision-bar .undo svg{width:17px;height:17px}.decision-label{font-size:10px;color:#859287;display:block;text-align:center;margin-top:10px}.decision-wrap{display:flex;flex-direction:column;align-items:center}.swipe-label{display:none;position:absolute;top:100px;padding:10px 18px;border:1.5px solid currentColor;font-size:15px;border-radius:12px;z-index:2;background:#ffffffa6}.swipe-label.left{right:25px;transform:rotate(10deg);color:#7b6f62}.swipe-label.right{left:25px;transform:rotate(-10deg);color:var(--teal)}.drag-left .swipe-label.left,.drag-right .swipe-label.right{display:block}.leaving{transition:transform .2s ease,opacity .2s ease;opacity:0}.leaving.left{transform:translateX(-110%) rotate(-10deg)!important}.leaving.right{transform:translateX(110%) rotate(10deg)!important}.empty{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.empty svg{width:30px;height:30px;color:#a1ad9f}.empty h2{font:600 22px var(--serif);letter-spacing:-.6px;margin:0}.empty p{font-size:12px;color:var(--muted);line-height:1.8;margin:0;max-width:310px}.primary{background:var(--teal);color:white;border-radius:25px;padding:13px 22px;font-weight:500;font-size:12px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px}.primary svg{width:18px;height:18px}.secondary{border:1px solid #17234726;background:#fff7;padding:11px 20px;border-radius:24px;font-size:12px;min-height:42px}.full{width:100%}.muted{color:var(--muted);font-size:12px}.text-button{font-size:12px;color:var(--teal);padding:12px;display:block;margin:8px auto 0}.mobile-dock{display:none}.searchbar{width:100%;display:flex;align-items:center;gap:12px;border:1px solid #fff;border-radius:30px;background:#ffffff95;padding:11px 18px;box-shadow:0 3px 15px #30534405}.searchbar svg{width:18px;height:18px;color:var(--muted)}.searchbar input{width:100%;min-width:0;background:none;border:0;outline:0;font-size:13px}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding-top:4px}.mini-card{border:1px solid #fff;border-radius:23px;padding:25px;background:var(--white);text-align:left;display:flex;flex-direction:column;min-height:240px;gap:18px;box-shadow:0 5px 20px #36533d03}.mini-card.tone-1{background:#f2d1bf}.mini-card.tone-2{background:#e0ece1}.mini-card.tone-3{background:#f3e4bd}.mini-card strong{font:600 20px/1.5 var(--serif);letter-spacing:-.6px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.mini-card small{font-size:10px;color:#6e8375}.mini-card .mini-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#6e8375}.mini-meta svg{width:14px;height:14px}.more-feed{display:block;margin:25px auto}.back-button{display:flex;align-items:center;gap:7px;font-size:12px;color:#6b7d72}.back-button svg{width:15px;height:15px}dialog{border:1px solid #fff;background:#fafdff;color:var(--ink);border-radius:30px;padding:32px;box-shadow:0 25px 100px #17234725;max-height:90svh;width:calc(100% - 32px);max-width:450px}dialog::backdrop{background:#17234735;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}dialog h2{font:650 25px var(--serif);letter-spacing:-.9px;margin:0 0 10px}.dialog-close{position:absolute;top:18px;right:16px}.form-mark{font:750 30px var(--serif);letter-spacing:-2px;margin-bottom:22px;color:var(--teal)}label{display:block;font-size:12px;font-weight:500;margin-top:18px}label .muted{font-size:10px;font-weight:400;margin-left:5px}input,textarea,select{width:100%;border:1px solid #dde3d9;border-radius:12px;padding:13px;background:#fafaf5;margin-top:8px;resize:vertical}textarea{line-height:1.6}form .primary{margin-top:20px}.local-note{font-size:10px;color:#9ba396;text-align:center;margin:22px 0 0}.form-error{color:#ac4f3e;font-size:12px;line-height:1.5}.composer-preview{background:#e0ece1;border-radius:15px;padding:18px;white-space:pre-wrap;font-size:13px;line-height:1.6;margin-top:20px;overflow-wrap:anywhere}.side-sheet{margin:0 20px 0 auto;position:fixed;top:20px;bottom:20px;height:calc(100svh - 40px);max-height:none;padding:0;max-width:420px;overflow:hidden}.side-sheet[open]{display:flex;flex-direction:column}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid #e4e8dd;flex-shrink:0}.sheet-head h2{font-size:20px;margin:0;letter-spacing:-.5px}.sheet-body{padding:22px 24px;overflow:auto;flex:1;overscroll-behavior:contain}.sheet-quote{padding:18px;background:#eef0e6;border-radius:14px;margin-bottom:25px;font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.comment-row{padding:15px 0;border-bottom:1px solid #edf0e6}.comment-top{display:flex;align-items:center;justify-content:space-between}.comment-author{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;padding:0}.comment-author .avatar{width:27px;height:27px;font-size:9px}.comment-row p{font-size:13px;line-height:1.7;margin:10px 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}.comment-actions{display:flex;align-items:center;gap:15px;color:var(--muted)}.comment-actions button{font-size:10px;display:flex;align-items:center;gap:4px;min-height:30px}.comment-actions svg{width:13px;height:13px}.comment-row.reply{margin-left:30px}.comment-row .icon-btn{height:25px;width:25px}.comment-row .icon-btn svg{width:17px}.comment-form{padding:16px 22px 22px;background:#fafdff;border-top:1px solid #e4e8dd;flex-shrink:0}.comment-form textarea{font-size:13px;margin:0;min-height:60px;max-height:110px}.comment-form .primary{margin-top:10px;padding:9px 18px;min-height:36px;font-size:11px}.replying{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.replying button{font-size:11px}.profile-top{text-align:center;padding:5px 0 20px}.profile-top .avatar{width:74px;height:74px;font-size:22px;margin:0 auto 15px;background:#f0d4c1;border:3px solid #fff}.profile-top h3{font:650 24px var(--serif);letter-spacing:-.8px;margin:0}.profile-top .handle{font-size:12px;color:var(--muted);margin:6px 0 13px}.profile-top p{font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.stats{display:flex;justify-content:center;gap:26px;margin:22px 0}.stats button,.stats span{padding:0;color:var(--muted);font-size:10px}.stats strong{display:block;font:650 21px var(--serif);color:var(--ink);margin-bottom:3px}.profile-buttons{display:flex;justify-content:center;gap:8px}.profile-buttons .primary,.profile-buttons .secondary{font-size:11px;min-height:38px;padding:9px 18px}.person{display:flex;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid #e8ecdf}.person .person-name{flex:1;text-align:left;font-size:12px;font-weight:500}.person .person-name small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.person .secondary{padding:6px 12px;font-size:10px;min-height:32px}.list-menu{display:grid;gap:4px}.list-menu button{padding:15px 12px;border-radius:12px;text-align:left;display:flex;align-items:center;gap:12px;font-size:13px}.list-menu button:hover{background:#edf0e6}.list-menu svg{width:18px;height:18px}.danger{color:#a04c3c!important}.section-label{font-size:10px;color:var(--muted);margin:22px 0 10px;text-transform:uppercase;letter-spacing:1px}.profile-post{padding:16px;background:#f2f2e9;border-radius:13px;margin:10px 0;text-align:left;width:100%;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.report-item{padding:18px;background:#f1f0e7;border-radius:15px;margin-bottom:14px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.report-item .buttons{display:flex;gap:8px;margin-top:15px}.tell-dialog{max-width:none;width:100%;height:100svh;max-height:none;border-radius:0;border:0;background:var(--canvas);padding:60px 10vw}.tell-dialog #tell-body{height:100%;display:flex;flex-direction:column;justify-content:center;max-width:1000px;margin:auto}.tell-dialog h2{font-size:clamp(30px,5vw,66px);line-height:1.35;letter-spacing:-2px;white-space:pre-wrap;overflow-wrap:anywhere}.tell-dialog .punchline{font-size:clamp(27px,4vw,52px)}.tell-dialog .reveal{background:var(--teal);color:white;padding:13px 22px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#173f38;color:white;border:1px solid #ffffff40;padding:13px 18px;border-radius:20px;font-size:12px;z-index:100;display:flex;align-items:center;gap:18px;box-shadow:0 5px 25px #17234720;max-width:90%;width:max-content}.toast button{color:#cfe6d6;font-size:12px;text-decoration:underline}#toast:empty{display:none}.loading{color:var(--muted);padding:100px 20px;text-align:center;font-size:12px}
@media(min-width:1500px){main{padding-top:40px}.deck .joke-card{min-height:450px}.joke-body h2{font-size:35px}}
@media(max-width:900px){.app-header{padding:0 30px;height:100px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.app-header{height:90px;padding:0 24px}.wordmark{font-size:20px;gap:10px;letter-spacing:-1px}.logo{width:36px;height:38px;border-radius:12px 12px 15px 15px;font-size:22px}.logo i{width:14px;left:10px;bottom:5px}.desktop-nav{display:none}.header-tools{gap:9px}.account-avatar{width:34px;height:34px}.header-tools>.icon-btn{width:34px;height:34px}.header-tools svg{width:20px;height:20px}main{padding:5px 23px calc(125px + env(safe-area-inset-bottom))}#view-toolbar{margin-bottom:25px;min-height:35px;gap:10px}.segment button{padding:8px 16px;font-size:11px}.subtle-label{font-size:9px}.joke-card{padding:23px;border-radius:27px;min-height:380px}.deck .joke-card{min-height:min(430px,53svh)}.joke-body{padding:32px 0 25px;min-height:230px}.joke-body h2{font-size:28px;line-height:1.42;letter-spacing:-1px}.joke-body.long h2{font-size:22px;letter-spacing:-.5px}.punchline{font-size:23px;letter-spacing:-.6px}.author-meta strong{font-size:11px}.author-meta small{font-size:9px}.author-row .avatar{width:31px;height:31px;font-size:10px}.reveal{font-size:10px;margin-top:25px;padding:10px 14px}.card-bottom{align-items:flex-end;gap:8px}.topic-tags{gap:4px;max-width:40%}.topic-tag{font-size:8px;padding:4px 6px}.card-utilities{gap:1px}.card-utilities button{padding:7px;min-height:36px}.card-utilities svg{width:17px;height:17px}.card-utilities small{font-size:9px}.decision-bar{margin-top:34px;gap:25px}.decision{width:59px;height:59px}.decision-label{font-size:9px;margin-top:8px}.decision-bar .undo{left:-24px}.mobile-dock{display:flex;align-items:center;justify-content:space-between;position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:240px;padding:6px;border-radius:38px;z-index:5;background:#fafdffd4;box-shadow:0 8px 26px #28493616,inset 0 1px 0 #fff}.mobile-dock button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;min-width:72px;min-height:48px;border-radius:28px;color:#6f8376;font-size:8px}.mobile-dock button svg{width:20px;height:20px}.mobile-dock .active{background:#e4ece1;color:var(--ink)}.collection-grid{gap:12px}.mini-card{padding:17px;border-radius:20px;min-height:200px;gap:14px}.mini-card strong{font-size:16px;letter-spacing:-.5px}.mini-card small{font-size:9px}.side-sheet{top:auto;bottom:0;left:0;right:0;margin:0;width:100%;max-width:none;border-radius:27px 27px 0 0;height:82svh;max-height:90svh}.side-sheet:before{content:'';position:absolute;top:8px;left:calc(50% - 18px);width:36px;height:4px;background:#d9dfd1;border-radius:5px}.sheet-head{padding:21px 22px 14px}.sheet-body{padding:20px 22px}.comment-form{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.form-dialog{padding:28px;max-height:90svh}.form-dialog h2{font-size:23px}.tell-dialog{padding:65px 25px}.tell-dialog h2{letter-spacing:-1px}.toast{bottom:calc(100px + env(safe-area-inset-bottom));font-size:11px;max-width:90%;border-radius:18px}.profile-top .avatar{width:65px;height:65px}.view-title{font-size:21px}}
@media(max-height:760px) and (max-width:650px){.app-header{height:74px}#view-toolbar{margin-bottom:18px}.deck .joke-card{min-height:350px}.joke-body{min-height:190px;padding:25px 0 20px}.joke-body h2{font-size:25px}.decision-bar{margin-top:28px}.decision{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.leaving,.decision{transition:none!important}.drag-left,.drag-right{rotate:0deg!important}}
@media(prefers-reduced-transparency:reduce){.glass{background:#fafdff;backdrop-filter:none;-webkit-backdrop-filter:none}dialog::backdrop{backdrop-filter:none;background:#17234766}}
@supports not (backdrop-filter:blur(1px)){.glass{background:#fafdff}}
@media(prefers-contrast:more){:root{--muted:#455c50;--line:#788d7e}.glass{background:#fafdff;border-color:#788d7e}.topic-tag{color:var(--ink);border-color:#607568}}

/* Liquid Glass revision: cool light, refractive layers, no warm paper surfaces. */
:root{--ink:#172347;--muted:#657393;--teal:#6055ed;--canvas:#f1f4ff;--line:#d4dbf0}
body{background-color:#f1f4ff;background-image:radial-gradient(ellipse at 0% 25%,#71dfff9c,transparent 48%),radial-gradient(ellipse at 100% 64%,#a48bffa6,transparent 48%),radial-gradient(ellipse at 65% 0%,#bfd3ff8c,transparent 44%),radial-gradient(ellipse at 15% 100%,#edbaff70,transparent 45%)}
.wordmark{letter-spacing:-1.1px;font-weight:750}.wordmark-dot{color:#7466ff}.logo{border-color:#ffffffd9;color:#302d6f;background:linear-gradient(135deg,#ffffffc9,#ffffff3b);box-shadow:inset 0 1px 0 #fff,0 4px 14px #7276b92b;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transform:none}.logo span{color:#6655e7}.logo i{border-color:#6655e7}.account-avatar{background:linear-gradient(135deg,#fffdfdba,#c7c9ff88);border-color:#fffd;color:#4d4c8d;box-shadow:inset 0 1px 0 #fff,0 4px 15px #6978b512}.icon-btn:hover{background:#ffffff65}
.glass,.segment{background:linear-gradient(135deg,#ffffffa6,#ffffff48);border:1px solid #ffffffc9;box-shadow:inset 0 1px 0 #fff,0 8px 28px #6377ad12,inset 0 -1px 0 #ffffff50;backdrop-filter:blur(26px) saturate(1.65);-webkit-backdrop-filter:blur(26px) saturate(1.65)}
.desktop-nav button,.segment button{color:#6c7592}.desktop-nav .active,.segment .active{background:linear-gradient(135deg,#ffffffee,#f1f1ff8a);color:#5145bf;box-shadow:0 2px 8px #6a67b412,inset 0 1px 0 white;border:1px solid #ffffffa0}.segment .active{padding:8px 19px}.subtle-label{color:#7783a2}
.joke-card{--glow:#c6dfff;--glow2:#ddcdff;background:linear-gradient(135deg,#ffffffae,#ffffff4d 70%,#ffffff70);border:1px solid #ffffffd9;box-shadow:inset 0 1px 0 #fff,inset 1px 0 0 #ffffffa0,inset 0 -1px 0 #ffffff69,0 24px 70px -28px #6175b34d,0 2px 8px #7681af0a;backdrop-filter:blur(34px) saturate(1.5);-webkit-backdrop-filter:blur(34px) saturate(1.5)}
.joke-card:before{background:radial-gradient(ellipse at 0 0,var(--glow),transparent 68%),radial-gradient(ellipse at 100% 100%,var(--glow2),transparent 72%),linear-gradient(130deg,#ffffff85,transparent 45%);opacity:.45}.joke-card:after{content:'';position:absolute;inset:1px;border-radius:inherit;border:1px solid #ffffff32;pointer-events:none;z-index:-1}.tone-0{--glow:#b7e9ff;--glow2:#ded4ff}.tone-1{--glow:#d4cbff;--glow2:#d1f4ff}.tone-2{--glow:#aee8ff;--glow2:#d9d3ff}.tone-3{--glow:#d8ddff;--glow2:#e9cfff}
.deck:before,.deck:after{background:linear-gradient(100deg,#d7e4ff90,#e0d7ff75);border-color:#ffffffb3;box-shadow:0 4px 15px #737dad08;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.deck:after{background:linear-gradient(100deg,#dbe9ff70,#ddd7ff60)}
.avatar{background:linear-gradient(135deg,#ffffffbc,#c5d5ff80);border-color:#ffffffba;color:#5759a0;box-shadow:inset 0 1px 0 #ffffffb3}.author-meta small{color:#7b84a0}.author-meta strong{color:#4b5274}.joke-body h2{color:#202b53;font-weight:600;letter-spacing:-1.05px}.punchline{color:#6354d9}.reveal{background:linear-gradient(135deg,#ffffffc7,#ffffff66);border-color:#ffffffcf;color:#6354bd;box-shadow:inset 0 1px 0 #ffffffc9,0 4px 14px #687fc00b;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}.topic-tag{background:#ffffff20;border-color:#6b79b01a;color:#7a84a1}.card-utilities button{color:#6879a2}.card-utilities .on{color:#6556e6}.card-utilities button:hover{background:#ffffff72}
.decision{background:linear-gradient(135deg,#ffffffd4,#ffffff5c);border:1px solid #fff;color:#7580a8;box-shadow:inset 0 1px 0 #fff,0 8px 28px #6577b71f;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.decision.like{background:linear-gradient(145deg,#8276ffbd,#6856eeda);color:#fff;border:1px solid #cfc8ff;box-shadow:inset 0 1px 1px #fff9,inset 0 -1px 2px #3934a350,0 9px 25px #6557e743}.decision-label{color:#818aa7}.decision-bar .undo{color:#98a0b9}.primary{background:linear-gradient(135deg,#8070f3,#6251dc);border:1px solid #a797ff8c;box-shadow:inset 0 1px 0 #ffffff55,0 5px 18px #6355cf1a}.secondary{background:linear-gradient(135deg,#ffffff9c,#ffffff45);border:1px solid #ffffffb5;color:#5d638d;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.searchbar{background:linear-gradient(135deg,#ffffffa1,#ffffff45);border-color:#ffffffc9;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.mini-card,.mini-card.tone-1,.mini-card.tone-2,.mini-card.tone-3{background:linear-gradient(135deg,#ffffffa8,#ffffff4f);border-color:#ffffffba;box-shadow:inset 0 1px 0 #fff,0 8px 25px #6874a80c;backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5)}.mini-card.tone-1{background:linear-gradient(135deg,#e5deffb0,#ffffff61)}.mini-card.tone-2{background:linear-gradient(135deg,#d5f2ffb0,#ffffff61)}.mini-card.tone-3{background:linear-gradient(135deg,#e1e7ffb0,#ffffff61)}.mini-card small,.mini-meta{color:#7c86a0}
dialog{background:linear-gradient(145deg,#fdfdffd9,#eef0ffd1);border:1px solid #ffffffdb;box-shadow:inset 0 1px 0 #fff,0 25px 100px #46528738;backdrop-filter:blur(35px) saturate(1.7);-webkit-backdrop-filter:blur(35px) saturate(1.7)}dialog::backdrop{background:#3542631a;backdrop-filter:blur(7px) saturate(1.12);-webkit-backdrop-filter:blur(7px) saturate(1.12)}input,textarea,select{background:#ffffff70;border-color:#ffffffba;box-shadow:inset 0 1px 0 #fff8}.form-mark{color:#7261ed}.comment-form{background:#ffffff46;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-color:#ffffff8f}.sheet-head,.comment-row,.person{border-color:#ffffff80}.side-sheet:before{background:#aeb4d160}.sheet-quote,.profile-post,.report-item,.composer-preview{background:linear-gradient(135deg,#e7e9ff80,#ffffff60);border:1px solid #ffffff9c}.list-menu button:hover{background:#ffffff70}.section-label{color:#858eab}.profile-top .avatar{background:linear-gradient(135deg,#e3e9ff,#cbc1ff99);border-color:#ffffffc9}.local-note{color:#8a92aa}.tell-dialog{background:linear-gradient(135deg,#edf6ffec,#efe8ffec)}.tell-dialog .reveal{background:linear-gradient(135deg,#8276f6,#6657df);color:white}.toast{background:linear-gradient(135deg,#5c548ce8,#3c4264e8);border:1px solid #ffffff60;backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);box-shadow:0 8px 30px #414b7d26}.toast button{color:#e0ddff}
@media(max-width:650px){.mobile-dock{background:linear-gradient(135deg,#ffffffb0,#ffffff60);border:1px solid #ffffffdd;box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #ffffff66,0 12px 32px #6678ad25;backdrop-filter:blur(30px) saturate(1.8);-webkit-backdrop-filter:blur(30px) saturate(1.8)}.mobile-dock button{color:#7b83a6}.mobile-dock .active{background:linear-gradient(135deg,#f8f7ffeb,#dcd8ff75);color:#6655df;box-shadow:inset 0 1px 0 #fff,0 3px 10px #6d63b510}.deck .joke-card{min-height:min(430px,53svh)}}
@media(prefers-reduced-transparency:reduce){.glass,.segment,.joke-card,.mini-card,dialog,.comment-form,.mobile-dock,.decision,.reveal{background:#f5f7ff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.decision.like,.primary{background:#6554e4!important}.joke-card:before{opacity:.2}}
@media(prefers-contrast:more){:root{--muted:#45516e}.joke-card,.glass,dialog{background:#fafdff!important;border-color:#8290ba}.author-meta small,.topic-tag,.decision-label,.muted{color:#4c597a}}
@supports not (backdrop-filter:blur(1px)){.joke-card,.glass,dialog,.mini-card{background:#f3f4ff}}
/* A real next card and unambiguous, centred swipe reactions. */
.deck{isolation:isolate;--drag-progress:0}
.deck:before,.deck:after{display:none}
.deck .front-card{position:relative;z-index:2;transform-origin:50% 80%}
.deck .under-card{position:absolute;inset:0;z-index:1;pointer-events:none;min-height:0!important;opacity:calc(.15 + var(--drag-progress)*.85);transform:translateY(calc(10px - var(--drag-progress)*10px)) scale(calc(.965 + var(--drag-progress)*.035));filter:saturate(.9);transition:opacity .15s ease;overflow:hidden}
.deck:not(.dragging):not(.committing) .under-card{opacity:0}
.deck .under-card .joke-body{min-height:0}
.deck .front-card{background:linear-gradient(135deg,#ffffffd9,#f7f8ffb8 70%,#ffffffc9)}
.deck.dragging .under-card,.deck.committing .under-card{filter:none}
.swipe-feedback{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:4;overflow:visible}
.reaction{grid-area:1/1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;width:106px;height:118px;border-radius:32px;opacity:0;transform:scale(.68) rotate(-9deg);background:linear-gradient(135deg,#ffffffed,#ffffffb8);border:1px solid #fff;box-shadow:inset 0 2px 1px #fff,0 14px 36px #44567b25;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:opacity .1s ease,transform .18s cubic-bezier(.2,1.7,.4,1);color:#6555e7}
.reaction svg{width:43px;height:43px;stroke-width:1.75}
.reaction span{font-size:12px;font-weight:600;letter-spacing:.1px}
.reaction.negative{color:#c15b7a;transform:scale(.68) rotate(9deg)}
.deck.positive.dragging .reaction.positive,.deck.positive.committing .reaction.positive,.deck.negative.dragging .reaction.negative,.deck.negative.committing .reaction.negative{opacity:var(--drag-progress);transform:scale(calc(.85 + var(--drag-progress)*.15)) rotate(0deg)}
.deck.committing .under-card{transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease}
.front-card.returning{transition:transform .22s cubic-bezier(.22,1.25,.5,1)}
.front-card.leaving{transition:transform .28s cubic-bezier(.25,.65,.4,1),opacity .26s ease;opacity:0}
.front-card.leaving.left{transform:translateX(var(--exit-x,-120vw)) rotate(-12deg)!important}
.front-card.leaving.right{transform:translateX(var(--exit-x,120vw)) rotate(12deg)!important}
.decision.dislike{color:#b45778;background:linear-gradient(145deg,#fffafde8,#ffe8f18c);border-color:#fff5fa;box-shadow:inset 0 1px 0 #fff,0 7px 24px #a764841c}
.decision.dislike svg,.decision.like svg{width:25px;height:25px}
@media(prefers-reduced-motion:reduce){.reaction,.deck .under-card,.front-card.returning,.front-card.leaving{transition:none!important}.front-card.leaving.left,.front-card.leaving.right{transform:none!important}.reaction{transform:none!important}}
@media(prefers-reduced-transparency:reduce){.reaction{background:#f9faff;backdrop-filter:none;-webkit-backdrop-filter:none}}
@keyframes thumb-pop{0%{transform:scale(.82) rotate(-7deg)}65%{transform:scale(1.08) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
.deck.committing.positive .reaction.positive,.deck.committing.negative .reaction.negative{animation:thumb-pop .28s ease-out}
@media(prefers-reduced-motion:reduce){.reaction{animation:none!important}}
/* Accounts and community safety */
[hidden]{display:none!important}.password-field{position:relative;display:block}.password-field input{padding-right:70px}.password-field button{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:0;font-size:12px;color:#6055c7;padding:8px}.rules-consent{display:flex!important;align-items:flex-start;gap:10px;font-size:12px!important;font-weight:400!important;line-height:1.6}.rules-consent[hidden]{display:none!important}.rules-consent input{width:18px!important;height:18px;flex-shrink:0;margin-top:2px;accent-color:#7161db}.form-dialog a,.sheet-body a{color:#6055c7}.form-dialog label small{font-size:12px;color:#697392;font-weight:400;line-height:1.6;display:block;margin-top:8px}.recovery-code{display:block;overflow-wrap:anywhere;padding:20px;border:1px solid white;background:#ffffff88;border-radius:18px;letter-spacing:2px;font-size:17px;margin:20px 0}.sheet-body .full+.full{margin-top:12px}.app-footer{display:flex;gap:20px;justify-content:center;font-size:11px;padding:20px;margin:20px auto 0;color:#697392}.app-footer a{color:inherit}.report-item small{display:block;color:#697392;margin:10px 0}.report-item .buttons{flex-wrap:wrap;gap:8px}.policy-page{max-width:760px;margin:40px auto;padding:0 24px 70px;line-height:1.8}.policy-page section{scroll-margin-top:30px;padding:20px 0}.policy-page h1{font-size:32px;letter-spacing:-1px}.policy-page h2{font-size:22px}.policy-page a{color:#6055c7}@media(max-width:700px){.app-footer{padding-bottom:100px;gap:16px}.rules-consent{font-size:11px!important}}

.share-preview{border-radius:22px;overflow:hidden;background:#e9edff;border:1px solid #fff;min-height:200px;display:flex;justify-content:center}.share-preview img{display:block;width:100%;max-height:55vh;object-fit:contain}.share-status{text-align:center;font-size:12px;margin:12px 0 18px;min-height:18px}.share-buttons{display:grid;gap:10px}.share-buttons .full+.full{margin-top:0}.share-buttons .text-button{justify-self:center}.share-preview img:not([src]){visibility:hidden}

.activity-button{position:relative}.activity-count{position:absolute;top:0;right:-3px;min-width:17px;height:17px;border-radius:9px;background:#7560df;color:white;box-shadow:0 0 0 2px #edf2ff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.topic-manage{margin-left:auto!important;padding:8px 12px!important}#view-toolbar{flex-wrap:wrap}#topic-follow-bar{flex-basis:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px auto 0;max-width:600px;width:100%;font-size:14px}#topic-follow-bar .secondary{padding:8px 14px}.topic-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.topic-heading .section-label{margin:0}.topic-filter{display:grid;gap:8px;font-size:13px;color:#697392;margin:0 0 16px}.topic-filter input{width:100%;border:1px solid #fff;border-radius:16px;background:#ffffff99;padding:13px 15px;color:#172347;outline-color:#8572d7}.topic-follow-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #9a9fc31c}.topic-name{flex:1;text-align:left;background:none;border:0;font-size:16px;font-weight:600;color:#273451}.topic-follow-row .secondary,.topic-following{min-width:96px;padding:9px 14px;font-size:12px}.topic-following{border:1px solid #9c8ad749;border-radius:20px;background:#e1dcfb66;color:#6f59ba}.activity-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}.activity-tools .text-button{font-size:12px;padding:4px 0}.activity-row{display:flex;align-items:flex-start;gap:12px;width:100%;background:transparent;border:0;border-bottom:1px solid #9a9fc322;text-align:left;padding:18px 8px;color:#25304f;border-radius:15px}.activity-row.unread{background:#e4e1ff70}.activity-row .avatar{width:36px;height:36px;font-size:12px;flex-shrink:0}.activity-copy{display:grid;gap:7px;min-width:0;flex:1}.activity-copy strong{font-size:14px;line-height:1.5}.activity-copy>span{font-size:12px;color:#697392;line-height:1.6;overflow-wrap:anywhere}.activity-copy .activity-comment{color:#66599d}.activity-copy small{font-size:10px;color:#838ba8}.unread-dot{width:6px;height:6px;border-radius:50%;background:#8470df;flex-shrink:0;margin-top:7px}.activity-empty{text-align:center;padding:50px 10px}.activity-empty>svg{width:38px;height:38px;fill:none;stroke:#8678ca;stroke-width:1.5}.activity-empty h3{font-size:18px;margin:20px 0 12px}.preference-row{display:flex;align-items:center;gap:20px;padding:20px 0}.preference-row>span{flex:1}.preference-row strong{display:block;font-size:15px;line-height:1.5}.preference-row small{display:block;font-size:12px;line-height:1.7;color:#77809c;margin-top:6px}.preference-row .secondary{flex-shrink:0;min-width:64px}.activity-highlight{background:#e1ddff99;border-radius:16px;transition:background .5s}@media(max-width:600px){.header-tools{gap:7px}.topic-manage{font-size:12px}.activity-copy strong{font-size:13px}}

/* Puntrest identity and account photos */
.wordmark .brand-wordmark{width:210px;height:auto;display:block;object-fit:contain}.avatar{position:relative;overflow:hidden;flex-shrink:0}.avatar-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}.form-mark{background:none!important;padding:0!important}.form-mark img{width:64px;height:64px;border-radius:17px;display:block}.photo-editor{display:flex;align-items:center;gap:18px}.photo-editor>.avatar{width:76px;height:76px;font-size:24px}.photo-editor label{flex:1;min-width:0}.photo-editor input{width:100%;font-size:13px}.photo-editor small{display:block;font-size:12px;color:var(--muted,#69748b);margin-top:8px}#photo-form{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid #a0aac333}.reported-avatar{width:128px;height:128px;object-fit:cover;border-radius:24px}@media(max-width:600px){.wordmark .brand-wordmark{width:150px}}

.mini-author{display:flex;align-items:center;gap:8px}.mini-author .avatar{width:26px;height:26px;font-size:10px}

.social-buttons{display:grid;gap:10px;margin:24px 0 18px}.social-button{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #cbd0e4;border-radius:14px;min-height:48px;padding:10px 15px;background:#fff;color:#232846;font-family:inherit;font-weight:600;font-size:14px;width:100%}.social-button.apple{background:#20243b;color:white;border-color:#20243b}.social-button:disabled{opacity:.5;cursor:default}.social-button small{font-size:10px;font-weight:400}.provider-symbol{font-size:24px;line-height:1}.google-symbol{color:#4285f4;font-family:Arial,sans-serif;font-size:20px;font-weight:700}.auth-divider{display:flex;align-items:center;gap:12px;color:#727b92;font-size:12px;margin-top:10px}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:#b9bfd840;flex:1}.list-menu button span{float:right;color:#797c96;font-size:12px}

/* On-device profile photo cropper */
.photo-crop{margin:20px 0;padding:16px;border:1px solid #fff;border-radius:22px;background:#ffffff60}.crop-window{position:relative;width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#d9dff3}.crop-window canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.crop-window canvas:active{cursor:grabbing}.crop-mask{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle closest-side,transparent calc(100% - 2px),#fff9 calc(100% - 1px),#17234770 100%)}.photo-crop input[type=range]{padding:0;min-height:32px;accent-color:var(--teal);background:transparent;border:0;cursor:pointer}.photo-crop label{margin-top:10px}.crop-position{display:grid;grid-template-columns:1fr 1fr;gap:14px}.photo-crop .secondary{margin-top:10px}.photo-editor small{display:block;line-height:1.5;margin-top:6px}

.sheet-head{gap:10px}.sheet-head h2{flex:1}.sheet-head #panel-back{margin-left:-10px}.topic-manage{margin:0;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:40px;padding:9px 18px;flex-shrink:0}.composer-topics{border:0;padding:0;margin:20px 0 0;min-width:0}.composer-topics legend{font-size:12px}.post-topic-options{display:flex;flex-wrap:wrap;gap:8px;max-height:160px;overflow:auto;margin-top:12px;padding:3px}.post-topic-options .secondary{font-size:11px;padding:7px 12px;min-height:36px}.selected-topics{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.topic-chip{background:#6055ed16;border:1px solid #6055ed45;border-radius:22px;padding:8px 12px;color:var(--teal);min-height:36px}.topic-chip span{margin-left:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.legal-nav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.legal-nav a{background:#ffffff90;border:1px solid white;border-radius:22px;padding:10px 16px;text-decoration:none;font-size:12px}.policy-page section{scroll-margin-top:24px}.policy-page h3{font-size:17px;margin-top:28px}.policy-page p{overflow-wrap:anywhere}
.composer{padding:0}.composer-head{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:#f5f5ffeb;backdrop-filter:blur(16px);border-bottom:1px solid #fff9}.composer-head h2{margin:0}.composer-head .dialog-close{position:static}.composer #post-form{padding:0 32px 28px}

/* Comments remain inside the visual viewport when the mobile keyboard opens. */
.comments-sheet .sheet-body{min-height:0;overflow-y:auto;overflow-x:hidden;scroll-padding-bottom:12px;-webkit-overflow-scrolling:touch}.comments-sheet #panel-foot{flex:0 0 auto;min-height:0;overflow:visible}.comments-sheet .sheet-quote{font-size:12px;padding:12px 14px;margin-bottom:12px;max-height:100px;overflow:auto}.comment-form{position:relative}.comment-form textarea{font-size:16px;line-height:1.4;min-height:44px;max-height:96px;resize:none;overflow-y:auto;overflow-wrap:anywhere;box-sizing:border-box;scroll-margin:0}.comment-input-wrap{position:relative;min-width:0}.comment-form .form-error:empty{display:none}.comment-form .primary{min-height:40px;font-size:12px;margin-top:8px}.comment-mention{display:inline;padding:0;color:var(--teal);font:inherit;line-height:inherit;vertical-align:baseline;font-weight:600;overflow-wrap:anywhere}.mention-suggestions{position:absolute;bottom:calc(100% + 8px);left:0;right:0;z-index:5;background:#f7f7fff5;border:1px solid white;border-radius:18px;box-shadow:0 -8px 32px #26355a20;max-height:min(250px,35dvh);overflow:auto;overscroll-behavior:contain;padding:5px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.mention-option{display:flex;gap:10px;align-items:center;text-align:left;width:100%;min-height:54px;padding:9px 10px;border-radius:13px}.mention-option span:not(.avatar){display:flex;flex-direction:column;gap:2px;min-width:0}.mention-option strong{font-size:13px;overflow:hidden;text-overflow:ellipsis}.mention-option small{font-size:12px;color:var(--muted)}.mention-option[aria-selected=true]{background:#7362e81a}.mention-empty{font-size:13px;padding:8px 12px;color:var(--muted)}
@media(max-width:700px){.comments-sheet{top:var(--comment-top,0px);height:var(--comment-vh,100dvh);max-height:var(--comment-vh,100dvh);bottom:auto;width:100%;max-width:100%;margin:0;left:0;right:0;border-radius:22px 22px 0 0}.comments-sheet .sheet-head{padding:13px 16px 10px;min-height:54px}.comments-sheet .sheet-body{padding:10px 16px}.comments-sheet .comment-form{padding:10px 16px max(10px,env(safe-area-inset-bottom))}.comments-sheet.comment-typing .comment-form{padding-bottom:8px}.comments-sheet.comment-typing .sheet-quote{max-height:58px;padding:8px 10px}.comments-sheet .comment-row{padding:11px 0}.comments-sheet .comment-row p{font-size:14px}.comments-sheet .replying{margin-bottom:6px}.comments-sheet textarea{width:100%;font-size:16px}.comments-sheet .mention-suggestions{max-height:min(220px,calc(var(--comment-vh,100dvh) * .43))}}
.message-button{position:relative}.dm-thread-row{display:flex;align-items:center;gap:12px;width:100%;padding:18px 0;text-align:left;border-bottom:1px solid #9a9fc325}.dm-thread-row>span{min-width:0;flex:1;display:grid;gap:6px}.dm-thread-row strong{font-size:14px}.dm-thread-row small{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.dm-unread{background:var(--teal);color:#fff;font-size:11px;border-radius:14px;padding:4px 7px}.dm-conversation-head{display:flex;align-items:center;gap:6px;margin-bottom:18px}.dm-person{display:flex;align-items:center;gap:8px;min-width:0;margin-right:auto}.dm-person span{font-size:12px;overflow:hidden;text-overflow:ellipsis}.dm-conversation-head .text-button{margin:0;font-size:11px;padding:6px}.dm-conversation-head .secondary{padding:6px 10px;min-height:34px;font-size:11px}.dm-log{display:flex;flex-direction:column;gap:15px}.dm-row{align-self:flex-start;max-width:88%;min-width:0}.dm-row.mine{align-self:flex-end}.dm-bubble{background:#ffffffa0;border:1px solid #fff;border-radius:18px 18px 18px 4px;padding:12px 15px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;font-size:14px}.mine .dm-bubble{background:#6655e5;color:#fff;border-color:#7464ec;border-radius:18px 18px 4px 18px}.dm-meta{display:flex;align-items:center;gap:12px;padding:4px 6px;color:var(--muted);font-size:10px}.mine .dm-meta{justify-content:flex-end}.dm-meta button{font-size:10px;color:var(--muted);padding:5px}.dm-form textarea{font-size:16px;line-height:1.4;min-height:44px;max-height:96px}.reply-context{display:block;color:var(--muted);font-size:11px;margin-top:8px}.comment-row.reply{margin-left:18px;border-left:2px solid #8e82d530;padding-left:12px}@media(max-width:600px){.header-tools{gap:3px}.header-tools .icon-btn{width:34px;height:36px}.wordmark .brand-wordmark{width:140px}.dm-form textarea,#dm-search{font-size:16px}.dm-conversation-head{margin-bottom:12px}}
.sheet-head h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:380px){.wordmark .brand-wordmark{width:118px}.header-tools .icon-btn{width:30px}.header-tools .account-avatar{width:32px;height:32px}.header-tools{gap:1px}}

/* Let the canvas fill the native window while controls respect the notch/home indicator.
   iOS auto-zooms focused controls below 16px; retain user pinch zoom. */
@media(max-width:700px){
 html body input:not([type=checkbox]):not([type=radio]):not([type=range]),html body textarea,html body select{font-size:16px}
 .app-header{padding-top:env(safe-area-inset-top);height:calc(90px + env(safe-area-inset-top))}
 .comments-sheet .sheet-head{padding-top:calc(13px + env(safe-area-inset-top))}
 .form-dialog{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)}
}

/* Every editable control uses iOS's non-zooming size, including landscape/iPad. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html body input:not([type=checkbox]):not([type=radio]):not([type=range]),html body textarea,html body select,html body [contenteditable=true]{font-size:16px}
@media(max-width:700px),(hover:none) and (pointer:coarse){
 dialog.keyboard-sheet:not(.comments-sheet){top:var(--keyboard-top);bottom:auto;height:var(--keyboard-height);max-height:var(--keyboard-height);margin-top:0;margin-bottom:0}
 dialog.form-dialog.keyboard-sheet{height:auto;overflow-y:auto;overscroll-behavior:contain}
 .keyboard-sheet:not(.comments-sheet) .sheet-head{padding-top:calc(22px + env(safe-area-inset-top))}
 .keyboard-sheet .sheet-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}
 .keyboard-sheet input,.keyboard-sheet textarea,.keyboard-sheet select{scroll-margin-block:20px}
}

/* Stop viewport rubber-banding and scroll chaining; lists retain normal scrolling. */
html,body{overscroll-behavior:none}
.sheet-body,.form-dialog,.joke-body,.mention-suggestions,.post-topic-options{overscroll-behavior:contain}
@media(max-width:700px){
 body.deck-screen{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
 body.deck-screen>.app-header{flex-shrink:0;width:100%}
 body.deck-screen>main{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;padding-bottom:calc(110px + env(safe-area-inset-bottom))}
 body.deck-screen #view-toolbar{flex-shrink:0;width:100%;margin-bottom:20px}
 body.deck-screen #content{flex:1;min-height:0;display:flex;flex-direction:column}
 body.deck-screen #stage{flex:1;min-height:0;max-height:430px;width:100%;margin:0 auto}
 body.deck-screen #stage>.joke-card{height:100%;min-height:0}
 body.deck-screen .joke-body{min-height:0;overflow-y:auto;padding:20px 0;touch-action:pan-y}
 body.deck-screen .decision-bar{flex-shrink:0;margin-top:24px}
 body.deck-screen>.app-footer{display:none}
 body.deck-screen #content>.empty{overflow-y:auto}
}

/* Reaction is part of the moving card, directly proportional to drag distance. */
.card-reaction{position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;display:grid;place-items:center;opacity:0}
.card-reaction.positive{background:linear-gradient(135deg,#37d89280,#84edc76b);color:#086e46}
.card-reaction.negative{background:linear-gradient(135deg,#f07b8980,#ffb6ad6b);color:#a0273c}
.card-reaction svg{width:78px;height:78px;stroke-width:1.6;opacity:.65}
.deck.positive .front-card>.card-reaction.positive,.deck.negative .front-card>.card-reaction.negative{opacity:var(--drag-progress)}
.front-card.returning .card-reaction{transition:opacity .16s ease-out}
.deck .front-card>.joke-body{opacity:calc(1 - var(--drag-progress));will-change:opacity}
.front-card.returning>.joke-body{transition:opacity .16s ease-out}
.front-card.leaving{transition-duration:.18s,.18s}
.deck.committing .under-card{transition-duration:.18s,.18s}

/* Consistent affordances for menus, secondary actions and touch navigation. */
.list-menu{gap:8px;margin:12px 0 24px}
.list-menu>button,.list-menu>a{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:14px 44px 14px 16px;border:1px solid #ffffffde;border-radius:16px;background:linear-gradient(135deg,#ffffffbf,#eeeaff80);box-shadow:inset 0 1px 0 #fff,0 3px 10px #6252a308;color:#354365;text-align:left;text-decoration:none;font-size:14px;font-weight:550;line-height:1.45;overflow-wrap:anywhere}
.list-menu>button::after,.list-menu>a::after{content:'';position:absolute;right:19px;width:7px;height:7px;border-top:1.7px solid currentColor;border-right:1.7px solid currentColor;transform:rotate(45deg);opacity:.6}
.list-menu>a[target=_blank]::after{transform:rotate(-45deg)}
.list-menu>.danger{color:#a62d51;background:linear-gradient(135deg,#fff4f8d9,#ffe6ee80);border-color:#f6c4d4}
.list-menu>button:active,.list-menu>a:active{background:#ded8ffb8;box-shadow:inset 0 1px 4px #7261ac18}
.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #d4cff0;border-radius:14px;background:#ffffff80;color:#5746b4;font-size:13px;line-height:1.4;text-decoration:none}
.text-button.full{display:flex;width:100%}
.back-button{min-height:44px;padding:10px 14px;border:1px solid #ffffffd9;border-radius:14px;background:#ffffff85;color:#5549a0;font-size:14px}
.stats button{min-width:76px;min-height:56px;padding:8px 12px;border:1px solid #ffffffd9;border-radius:15px;background:#ffffff80;color:#51478d}
.profile-post{position:relative;min-height:52px;padding-right:36px;color:#354365}
.profile-post::after{content:'›';position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:23px;color:#7667bb}
.activity-tools{gap:8px;flex-wrap:wrap}.activity-tools .text-button,.dm-conversation-head .text-button{min-height:44px;padding:10px 12px;font-size:12px}
.dm-meta button{min-height:44px;padding:8px 10px;text-decoration:underline;text-underline-offset:3px}
button:focus-visible,a:focus-visible{outline:3px solid #7560dc;outline-offset:3px}
#panel-body p a,.rules-consent a{color:#5845b2;text-decoration:underline;text-underline-offset:3px}
@media(hover:hover){.list-menu>button:hover,.list-menu>a:hover,.text-button:hover,.back-button:hover,.stats button:hover,.profile-post:hover{background:#ffffffed;border-color:#c8bff0}}
@media(prefers-reduced-transparency:reduce){.list-menu>button,.list-menu>a,.text-button,.back-button,.stats button{background:#f4f2ff}}

.icon-btn,.header-tools>.icon-btn,.comment-row .icon-btn{width:44px;height:44px;min-width:44px;min-height:44px}
.secondary,.profile-buttons .primary,.profile-buttons .secondary,.person .secondary,.comment-form .primary{min-height:44px}
.comment-actions{gap:8px;flex-wrap:wrap}.comment-actions button{min-height:44px;min-width:44px;padding:8px;font-size:12px;border-radius:12px;background:#ffffff65}
.comment-author{min-height:44px}.card-utilities button{min-width:44px;min-height:44px}
.topic-tag{min-height:32px;padding:7px 10px;font-size:11px;background:#ffffff80;color:#59618a;border-color:#c9c9e780}
.policy a{color:#5845b2;text-underline-offset:3px}

/* Screen hierarchy: respect device insets on every page, not just the feed. */
body>.app-header{padding-top:calc(20px + env(safe-area-inset-top));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
.awards-page{padding-bottom:calc(60px + env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
#panel .award-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0 32px}#panel .award-tile:last-child{grid-column:1/-1}#panel .award-tile{padding:24px 12px}#panel .award-tile h3{font-size:15px}#panel .space-badge.large{width:80px;height:80px}
.achievement-demo{min-height:180px;display:flex;flex-direction:column;justify-content:center;position:relative}.achievement-demo p{margin-bottom:0}.joke-achievement-gallery{gap:30px!important}#panel>.award-effect{position:fixed;z-index:10}
.stats>button{flex:1;max-width:100px}.topic-name{min-height:44px;text-align:left;color:#5546a4;text-decoration:underline;text-underline-offset:3px}.topic-following{min-height:44px;padding:9px 16px;border-radius:24px;background:#ded8ff;border:1px solid #c3b8f1;color:#5746ab}
#view-toolbar:has(.view-title) .view-title{flex:1}.activity-count{pointer-events:none}.activity-count[hidden]{display:none}.message-button{position:relative}
