/* One continuous cylindrical surface, built from small mirrored live slices. */
.curved-gallery{--cg-card-width:300px;--cg-card-height:300px;position:relative;width:100%;max-width:none;background:#fff;padding:110px 0 30px;overflow:hidden;color:#191919}
[data-curved-gallery][hidden]{display:none}
.cg-viewport{position:relative;width:100%;height:calc(var(--cg-card-height) + 110px);overflow:hidden;touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none}
.curved-gallery.is-dragging .cg-viewport{cursor:grabbing}
.cg-scene{position:absolute;inset:0;perspective-origin:50% 50%}
.cg-ring{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.cg-card{position:absolute;left:50%;top:50%;width:0;height:0;margin:0;padding:0;border:0;background:none;transform-style:preserve-3d;cursor:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.cg-card[hidden]{display:none}
.cg-slice{display:block;position:absolute;left:0;top:0;height:var(--cg-card-height);overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cg-slice-content{display:block;position:absolute;top:0;width:var(--cg-card-width);height:var(--cg-card-height)}
.cg-card:focus-visible{outline:none}
.cg-card:focus-visible .cg-widget{box-shadow:inset 0 0 0 3px #555}
.cg-widget{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:22%;overflow:hidden;container-type:inline-size;isolation:isolate;box-shadow:0 4px 14px #00000012;background:#f6f5f1;letter-spacing:0;text-align:left}
.cg-native{position:absolute;inset:0;transform-origin:top left;pointer-events:none}
.cg-bar{width:calc(100% - 40px);margin:12px auto 0;min-height:70px;display:flex;align-items:center;justify-content:center}
.cg-caption{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;pointer-events:none}
.curved-gallery.is-hovering .cg-caption{opacity:1;transform:none}
.cg-caption>strong{font-size:19px;font-weight:400;letter-spacing:-.025em}
.cg-person{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#797974;white-space:nowrap}
.cg-person img{width:23px;height:23px;border-radius:50%;object-fit:cover}
.cg-dialog button:focus-visible{outline:2px solid #191919;outline-offset:4px}
.curved-gallery:not([hidden])+.closing{padding-top:clamp(80px,8vw,120px);border-top:0}
.cg-quest{height:100%;padding:9cqw;display:flex;flex-direction:column;align-items:flex-start;background:radial-gradient(circle at 80% 20%,#ead3ff,transparent 60%),#f1e8da;color:#604b7c}
.cg-quest-kicker{font-size:5cqw;letter-spacing:.13em;font-weight:600}
.cg-quest-icon{display:grid;place-items:center;margin:6cqw 0;width:23cqw;height:23cqw;background:#fff7;border:1px solid #fff9;border-radius:50%;font-size:15cqw;line-height:1;box-shadow:0 3cqw 8cqw #72538b13}
.cg-quest strong{font-size:9cqw;line-height:1.05;letter-spacing:-.05em;font-weight:400}
.cg-quest-detail{font-size:5.2cqw;line-height:1.3;margin-top:3cqw;max-width:26ch;color:#7d718d}
.cg-quest-reward{font-size:4.5cqw;margin-top:auto;padding-top:4cqw;color:#897394}
html{scrollbar-gutter:stable}
html.cg-modal-open,html.cg-modal-open body{overflow:hidden}
.cg-dialog{position:fixed;inset:0;width:min(1040px,calc(100% - 64px));height:auto;max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid #ffffffb3;border-radius:32px;background:#fafaf6eb;color:#191919;box-shadow:0 28px 100px #2424282b;overscroll-behavior:contain;font-family:Selecta,Arial,sans-serif;z-index:200;overflow:auto}
.cg-dialog::backdrop{background:#e8e8e14d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:cg-backdrop-in .36s ease both}
.cg-dialog[open]{display:flex;flex-direction:column;animation:cg-open .38s cubic-bezier(.2,.75,.25,1) both}
.cg-dialog.is-closing{animation:cg-close .22s ease both;pointer-events:none}
.cg-dialog.is-closing::backdrop{animation:cg-backdrop-out .22s ease both}
@keyframes cg-open{from{opacity:0;transform:translateY(18px) scale(.965)}to{opacity:1;transform:none}}
@keyframes cg-close{to{opacity:0;transform:translateY(12px) scale(.975)}}
@keyframes cg-backdrop-in{from{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px)}}
@keyframes cg-backdrop-out{to{opacity:0;backdrop-filter:blur(0)}}
.cg-dialog-top{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 34px 18px;background:#fafaf6ed;border-radius:32px 32px 0 0}
.cg-dialog-heading h2{font-size:32px;font-weight:400;letter-spacing:-.04em;line-height:1.1;margin:0 0 10px}
.cg-close{flex:none;border:1px solid #1919191a;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:30px;line-height:1;background:#fff9;color:#333;cursor:pointer}
.cg-dialog-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;width:100%;padding:4px 65px 10px;align-items:center}
.cg-widget-side,.cg-app-side{display:flex;flex-direction:column;align-items:center;gap:18px;min-width:0}
.cg-view-label{font-size:14px;color:#898981}
.cg-ios-crop{width:100%;max-width:350px;height:350px;overflow:hidden;mask-image:linear-gradient(#000 80%,transparent 100%);-webkit-mask-image:linear-gradient(#000 80%,transparent 100%)}
.cg-ios-phone{position:relative;width:100%;height:710px;overflow:hidden;border:8px solid #111312;border-radius:48px;background:var(--cg-wallpaper);background-image:radial-gradient(ellipse at 20% 10%,#fff6,transparent 75%);box-shadow:inset 0 0 0 1px #fff7;container-type:inline-size;text-align:left}
.cg-status{display:flex;justify-content:space-between;align-items:center;position:relative;height:19cqw;padding:0 8cqw;color:#fff;font-size:4.2cqw;font-weight:600;text-shadow:0 1px 4px #0001}
.cg-island{position:absolute;left:50%;top:5.5cqw;transform:translateX(-50%);width:28cqw;height:8cqw;border-radius:10cqw;background:#131414}
.cg-signal{width:17cqw;display:block;line-height:0}
.cg-signal svg{display:block;width:100%;height:auto}
.cg-ios-widget{width:44cqw;margin:16cqw 0 0 6cqw}
.cg-widget-label{display:block;padding-top:3cqw;text-align:center;font-size:3.5cqw;color:#fff;text-shadow:0 1px 3px #0003;white-space:nowrap}
.cg-app-phone{position:relative;display:flex;flex-direction:column;width:100%;max-width:330px;height:600px;min-height:0;overflow:hidden;background:#fbfaf7;border:8px solid #181919;border-radius:44px;padding-top:30px;box-shadow:0 14px 34px -18px #161a263d;container-type:inline-size}
.cg-app-island{position:absolute;z-index:2;left:35%;right:35%;top:9px;height:18px;border-radius:16px;background:#141515}
.cg-wabi-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 17px;border-bottom:1px solid #1b1b1b0b;background:#fff;flex:none}
.cg-wabi-mark{display:block;width:69px;height:24px;flex:none}
.cg-wabi-mark svg{width:100%;height:100%}
.cg-wabi-title{font-size:12px;color:#777770;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-app-surface{position:relative;flex:1;min-height:0;overflow:hidden;background:#f4f3ef}
.cg-app-homebar{position:absolute;z-index:2;bottom:5px;left:34%;right:34%;height:4px;border-radius:8px;background:#13131385;pointer-events:none}
.cg-app-embed{position:absolute;inset:0;overflow:hidden}
.cg-app-embed iframe{position:absolute;inset:0;border:0;width:390px;height:680px;transform-origin:top left;opacity:0;transition:opacity .3s}
.cg-app-surface.is-loaded iframe{opacity:1}
.cg-app-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.cg-app-content{height:100%;overflow:auto;overscroll-behavior:contain;padding:22px 20px 30px;scrollbar-width:thin}
.cg-app-eyebrow{display:block;font-size:9px;letter-spacing:.12em;color:#8a8880;margin-bottom:18px}
.cg-app-content>.cg-widget{width:100%;border-radius:20px;box-shadow:0 5px 14px #00000008}
.cg-app-details{margin-top:20px}
.cg-app-row{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #1717170c;font-size:12px;line-height:1.4}
.cg-app-row>span{color:#95938b}
.cg-app-row>strong{font-weight:400;color:#4d4d46;text-align:right;max-width:65%}
.cg-app-action{width:100%;margin-top:22px;padding:14px 12px;background:#242522;color:#fff;border:0;border-radius:30px;font:400 12px Selecta,Arial,sans-serif;cursor:pointer}
.cg-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 34px 24px;flex:none}
.cg-dialog-bottom button{border:0;background:none;color:#55554e;cursor:pointer;font:400 14px Selecta,Arial,sans-serif;padding:10px 0}
.cg-dialog-bottom>span{font-size:12px;color:#92928a}
.cg-jot-sheet{height:100%;padding:9cqw;background:repeating-linear-gradient(#fcf5e6 0 11.9cqw,#e5dac5 12cqw 12.3cqw)}
.cg-jot-title{font:italic 12cqw Georgia,serif;color:#806a51}
.cg-jot textarea{display:block;border:0;outline:0;resize:none;background:transparent;width:100%;height:75%;margin-top:7cqw;font:5.2cqw/1.5 Georgia,serif;color:#806a51}
@media(max-height:820px) and (min-width:701px){.cg-app-phone{height:510px;max-width:290px}.cg-ios-crop{max-width:320px;height:330px}.cg-dialog-top{padding-top:20px;padding-bottom:12px}.cg-dialog-heading h2{font-size:28px}.cg-dialog-bottom{padding-top:10px;padding-bottom:14px}}
@media(max-width:700px){
  .curved-gallery{padding:74px 0 10px}
  .cg-viewport{height:calc(var(--cg-card-height) + 70px)}
  .cg-bar{margin-top:0;min-height:70px}
  .cg-caption>strong{font-size:17px}
  .cg-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:26px}
  .cg-dialog-top{padding:20px 20px 16px;border-radius:26px 26px 0 0}.cg-dialog-heading h2{font-size:27px}
  .cg-dialog-content{grid-template-columns:1fr;gap:24px;padding:8px 24px 12px}
  .cg-widget-side{gap:14px}.cg-ios-crop{width:285px;max-width:100%;height:280px}.cg-ios-phone{border-radius:40px;border-width:7px}
  .cg-app-side{gap:16px}.cg-app-phone{height:570px;max-width:310px;border-radius:40px}
  .cg-dialog-bottom{position:sticky;bottom:0;background:#fafaf6ed;padding:12px 20px max(16px,env(safe-area-inset-bottom))}.cg-dialog-bottom>span{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.cg-caption,.cg-dialog[open],.cg-dialog::backdrop,.cg-dialog.is-closing::backdrop,.cg-app-embed iframe{animation:none;transition:none}}
