:root{color-scheme:light;--app-max-width: 430px;--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom);--color-bg-start: oklch(.995 .014 35);--color-bg-mid: oklch(.982 .022 350);--color-bg-end: oklch(.986 .016 215);--color-paper: oklch(.992 .01 62);--color-card: oklch(.995 .007 65 / .9);--color-card-strong: oklch(.997 .006 65);--color-border: oklch(.875 .022 45 / .72);--color-border-soft: oklch(.92 .018 48 / .66);--color-text: oklch(.225 .035 35);--color-text-soft: oklch(.43 .032 48);--color-text-muted: oklch(.56 .027 55);--color-ink-brown: oklch(.245 .045 32);--color-gold: oklch(.72 .09 78);--color-gold-soft: oklch(.93 .045 82 / .72);--color-seal: oklch(.61 .12 22);--color-primary: oklch(.735 .145 5);--color-primary-deep: oklch(.63 .155 5);--color-primary-soft: oklch(.957 .038 10);--color-primary-wash: oklch(.982 .024 8);--color-blue-soft: oklch(.955 .035 210);--color-water: oklch(.86 .07 205);--color-mountain: oklch(.82 .06 145);--paper-fiber: radial-gradient(circle at 18% 28%, oklch(.74 .025 70 / .08) 0 1px, transparent 1.2px), radial-gradient(circle at 76% 54%, oklch(.78 .03 32 / .07) 0 1px, transparent 1.3px), repeating-linear-gradient(96deg, oklch(.65 .02 70 / .035) 0 1px, transparent 1px 7px);--watercolor-wash: radial-gradient(ellipse at 14% 18%, oklch(.965 .055 12 / .72), transparent 240px), radial-gradient(ellipse at 88% 8%, oklch(.965 .045 205 / .68), transparent 260px), radial-gradient(ellipse at 82% 74%, oklch(.94 .05 145 / .35), transparent 240px);--gradient-page: var(--paper-fiber), var(--watercolor-wash), linear-gradient(180deg, var(--color-bg-start), var(--color-bg-mid) 48%, var(--color-bg-end));--gradient-shell: var(--paper-fiber), radial-gradient(circle at 82% 4%, oklch(.965 .05 8 / .5), transparent 138px), radial-gradient(circle at 5% 36%, oklch(.975 .035 210 / .74), transparent 188px), linear-gradient(180deg, oklch(.998 .008 62), var(--color-bg-mid) 52%, var(--color-bg-end));--gradient-primary: linear-gradient(135deg, oklch(.79 .125 8), oklch(.68 .15 4) 58%, oklch(.72 .13 355));--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-2xl: 28px;--radius-pill: 999px;--shadow-soft: 0 10px 24px oklch(.42 .035 45 / .08);--shadow-card: 0 16px 38px oklch(.42 .035 45 / .12), 0 1px 0 oklch(1 0 0 / .55) inset;--shadow-floating: 0 18px 44px oklch(.46 .035 50 / .14), 0 1px 0 oklch(1 0 0 / .52) inset;--shadow-button: 0 14px 28px oklch(.68 .16 5 / .22), 0 1px 0 oklch(1 0 0 / .5) inset;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--font-xs: 10px;--font-sm: 12px;--font-body: 14px;--font-md: 15px;--font-title: 18px;--font-display: 25px;--leading-tight: 1.16;--leading-body: 1.62;--motion-fast: .18s cubic-bezier(.22, 1, .36, 1);--motion-ui: .22s cubic-bezier(.22, 1, .36, 1);--motion-page: .32s cubic-bezier(.22, 1, .36, 1);--ink: var(--color-text);--muted: var(--color-text-muted);--paper: var(--color-paper);--page: var(--color-bg-mid);--panel: var(--color-card);--line: var(--color-border);--rose: var(--color-primary);--rose-deep: var(--color-primary-deep);--rose-soft: var(--color-primary-soft);--shadow: var(--shadow-floating);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--ink);background:var(--gradient-page)}button{font:inherit;-webkit-tap-highlight-color:transparent;transition:transform var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast),opacity var(--motion-fast)}.app-shell{position:relative;width:min(100vw,var(--app-max-width));min-height:100svh;margin:0 auto;overflow:hidden;background:var(--gradient-shell);box-shadow:0 0 0 1px #c5b4a94d,0 28px 80px #3b292233}.ambient-layer{position:absolute;inset:0;z-index:0;pointer-events:none}.ambient-layer:before,.ambient-layer:after{content:"";position:absolute;pointer-events:none}.ambient-layer:before{top:64px;right:-30px;width:150px;height:220px;opacity:.32;background:radial-gradient(ellipse at 50% 0%,oklch(.77 .1 12 / .72) 0 5px,transparent 6px),radial-gradient(ellipse at 33% 18%,oklch(.9 .07 10 / .58) 0 13px,transparent 14px),radial-gradient(ellipse at 66% 21%,oklch(.9 .07 10 / .5) 0 11px,transparent 12px),linear-gradient(145deg,transparent 0 42%,oklch(.47 .055 48 / .55) 43% 45%,transparent 46%);transform:rotate(-24deg)}.ambient-layer:after{left:18px;bottom:96px;width:180px;height:180px;opacity:.42;background:radial-gradient(circle at 22% 36%,oklch(.91 .055 8 / .58) 0 4px,transparent 5px),radial-gradient(circle at 62% 18%,oklch(.93 .05 12 / .5) 0 3px,transparent 4px),radial-gradient(circle at 74% 68%,oklch(.9 .06 8 / .54) 0 4px,transparent 5px),radial-gradient(circle at 34% 78%,oklch(.88 .05 18 / .42) 0 3px,transparent 4px);filter:blur(.2px)}.screen{position:relative;min-height:100svh;padding:calc(var(--space-4) + var(--safe-top)) 14px calc(var(--space-4) + var(--safe-bottom))}.screen>:not(.screen-ornament){z-index:1}.screen-ornament{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.screen-ornament:before,.screen-ornament:after{content:"";position:absolute;pointer-events:none}.screen-ornament:before{top:68px;right:18px;width:68px;height:68px;border:1px solid oklch(.74 .065 75 / .2);border-radius:50%;background:radial-gradient(circle,transparent 0 40%,oklch(.91 .04 75 / .2) 41% 42%,transparent 43%),linear-gradient(135deg,transparent,oklch(.92 .05 80 / .18));transform:rotate(18deg)}.screen-ornament:after{left:-32px;bottom:84px;width:150px;height:130px;opacity:.5;background:radial-gradient(ellipse at 32% 45%,oklch(.96 .055 8 / .58),transparent 48px),radial-gradient(ellipse at 70% 48%,oklch(.95 .04 206 / .42),transparent 54px);filter:blur(10px)}.phone-screen{animation:pageIn var(--motion-page) both}.map-screen{display:flex;flex-direction:column;gap:14px}.page-header{position:relative;padding:2px var(--space-1) 0}.page-header p{display:inline-flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--color-seal);font-size:var(--font-sm);font-weight:900;letter-spacing:.04em}.page-header p:before,.page-header p:after{content:"";width:18px;height:1px;background:linear-gradient(90deg,transparent,var(--color-gold))}.page-header p:after{background:linear-gradient(90deg,var(--color-gold),transparent)}.page-header h1{margin:0;color:var(--color-ink-brown);max-width:300px;font-size:30px;line-height:1.08;letter-spacing:0;text-shadow:0 1px 0 oklch(1 0 0 / .62),0 12px 24px oklch(.7 .08 18 / .12)}.title-focus{display:block;width:max-content;margin-top:4px;padding:2px 10px 4px;border:1px solid oklch(.82 .07 76 / .42);border-radius:var(--radius-pill);color:#7c483d;background:linear-gradient(90deg,#ffefdaa8,#fffdfa1a),var(--paper-fiber);background:linear-gradient(90deg,color(xyz 0.851 0.882 0.753 / 0.659),color(xyz 0.939 0.984 1.039 / 0.102)),var(--paper-fiber);box-shadow:0 10px 22px #69524814;font-size:20px;font-weight:950;line-height:1.15}.page-header span{display:block;margin-top:8px;color:var(--color-text-soft);font-size:13px;font-weight:720;line-height:1.45}.map-page-header:after{content:"南京企划";position:absolute;right:4px;top:10px;display:grid;place-items:center;width:52px;height:52px;border:1px solid oklch(.68 .11 22 / .34);border-radius:12px;color:#a75b5aad;background:linear-gradient(180deg,#fffdfa66,#ffe4e32e),#fffdfa33;background:linear-gradient(180deg,color(xyz 0.941 0.984 1.017 / 0.4),color(xyz 0.834 0.82 0.83 / 0.18)),oklch(.995 .006 65 / .2);font-size:11px;font-weight:900;transform:rotate(8deg)}.map-frame{position:relative;width:100%;aspect-ratio:1080 / 1700;min-height:0;overflow:hidden;border:1px solid oklch(.86 .035 56 / .72);border-radius:26px;background:linear-gradient(180deg,oklch(.995 .006 65 / .58),transparent),var(--paper);box-shadow:0 24px 58px #5e473d2e,0 0 0 7px #fffdfa57,0 1px #ffffff9e inset;box-shadow:0 24px 58px #5e473d2e,0 0 0 7px oklch(.995 .006 65 / .34),0 1px #ffffff9e inset}.map-frame:before,.map-frame:after{content:"";position:absolute;pointer-events:none}.map-frame:before{inset:0;z-index:2;background:radial-gradient(ellipse at 18% 9%,oklch(.95 .055 12 / .34),transparent 142px),radial-gradient(ellipse at 82% 30%,oklch(.94 .045 205 / .24),transparent 148px),radial-gradient(ellipse at 48% 52%,oklch(.88 .05 76 / .18),transparent 190px),linear-gradient(180deg,oklch(.995 .006 65 / .2),transparent 28%,oklch(.995 .006 65 / .38));mix-blend-mode:soft-light}.map-frame:after{right:13px;top:92px;z-index:3;width:62px;height:64px;opacity:.38;background:radial-gradient(ellipse at 50% 16%,oklch(.92 .07 8 / .88) 0 9px,transparent 10px),radial-gradient(ellipse at 28% 42%,oklch(.93 .055 8 / .72) 0 11px,transparent 12px),radial-gradient(ellipse at 72% 43%,oklch(.93 .055 8 / .72) 0 11px,transparent 12px),radial-gradient(circle at 50% 46%,oklch(.7 .1 18 / .58) 0 3px,transparent 4px);transform:rotate(18deg)}.map-base{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.map-vignette{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,oklch(.995 .008 65 / .48) 0 12%,transparent 25%),linear-gradient(0deg,oklch(.995 .008 65 / .82) 0 13%,transparent 28%);pointer-events:none}.map-compass{position:absolute;top:16px;right:22px;z-index:2;color:#2a130feb;font-size:26px;transform:rotate(18deg)}.locate-btn{position:absolute;right:16px;bottom:72px;z-index:6;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--color-border);border-radius:50%;color:var(--color-ink-brown);background:linear-gradient(180deg,#fffdfaeb,#fcefe5d1);background:linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.922),#fcefe5d1);box-shadow:0 10px 22px #48322924;cursor:pointer}.map-dim{position:absolute;inset:0;z-index:3;opacity:0;background:#1b0e0847;pointer-events:none;transition:opacity var(--motion-ui)}.map-dim.show{opacity:1}.marker-layer{position:absolute;inset:0;z-index:4}.school-marker{position:absolute;display:grid;place-items:center;width:38px;height:38px;margin:-19px 0 0 -19px;padding:0;border:0;background:transparent;cursor:pointer;animation:markerIn .48s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--marker-delay)}.school-marker:before{content:"";position:absolute;inset:11px;border:2px solid oklch(.995 .006 65 / .96);border-radius:50%;background:radial-gradient(circle at 34% 30%,oklch(1 0 0 / .9) 0 12%,transparent 13%),color-mix(in oklch,var(--marker-theme) 16%,var(--rose));box-shadow:0 7px 15px #563a362e,0 0 0 4px #fffdfa57;box-shadow:0 7px 15px #563a362e,0 0 0 4px oklch(.995 .006 65 / .34);transition:transform var(--motion-ui),box-shadow var(--motion-ui),background var(--motion-ui)}.school-marker:after{content:"";position:absolute;top:16px;left:16px;width:6px;height:6px;border-radius:50%;background:#fffdfa;background:oklch(.995 .006 65)}.school-marker span{position:absolute;left:50%;top:-12px;min-width:30px;max-width:70px;padding:3px 7px 4px;overflow:hidden;border:1px solid oklch(.88 .03 54 / .74);border-radius:var(--radius-pill);color:var(--color-ink-brown);background:linear-gradient(180deg,#fffdfae6,#fdf1e7d1);background:linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.902),#fdf1e7d1);box-shadow:0 6px 14px #533c341a;font-size:var(--font-xs);font-weight:850;line-height:1.1;opacity:.74;text-align:center;text-overflow:ellipsis;white-space:nowrap;transform:translate(calc(-50% + var(--label-offset-x, 0px)),calc(5px + var(--label-offset-y, 0px)));transition:opacity var(--motion-fast),transform var(--motion-fast),border-color var(--motion-fast)}.school-marker.selected{z-index:7}.school-marker.selected:before{background:radial-gradient(circle at 34% 30%,oklch(1 0 0 / .9) 0 13%,transparent 14%),color-mix(in oklch,var(--marker-theme) 24%,var(--rose));box-shadow:0 11px 20px #563a3647,0 0 0 8px #fffdfa94,0 0 0 14px #ff7ea033,0 0 0 28px #ff7ea014;box-shadow:0 11px 20px #563a3647,0 0 0 8px oklch(.995 .006 65 / .58),0 0 0 14px oklch(.75 .17 5 / .2),0 0 0 28px oklch(.75 .17 5 / .08);transform:scale(1.5)}.school-marker.selected span{opacity:1;border-color:#eac7c8e6;transform:translate(calc(-50% + var(--label-offset-x, 0px)),var(--label-offset-y, 0px))}.selection-ripple{position:absolute;z-index:5;display:none;width:82px;height:82px;margin:-41px 0 0 -41px;border-radius:50%;border:1px solid oklch(.78 .14 7 / .22);background:radial-gradient(circle,color-mix(in oklch,var(--marker-theme) 10%,var(--rose-soft)) 0 34%,transparent 35%),radial-gradient(circle,oklch(.74 .16 5 / .16),transparent 64%);pointer-events:none;animation:ripple 1.35s cubic-bezier(.22,1,.36,1) infinite}.selection-ripple.show{display:block}.map-home-stats{position:absolute;left:22px;right:22px;bottom:15px;z-index:6;display:flex;align-items:center;justify-content:center;gap:7px;overflow:hidden;min-height:42px;border:1px solid oklch(.83 .04 68 / .58);border-radius:18px;background:linear-gradient(90deg,oklch(.96 .035 74 / .52),transparent 18% 82%,oklch(.96 .035 74 / .52)),linear-gradient(180deg,#fffdfad6,#fdf1e7bd);background:linear-gradient(90deg,oklch(.96 .035 74 / .52),transparent 18% 82%,oklch(.96 .035 74 / .52)),linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.839),#fdf1e7bd);box-shadow:0 12px 28px #5e473d1a,0 1px #fff9 inset;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.map-home-stats:before,.map-home-stats:after{content:"";width:8px;height:8px;border:1px solid oklch(.69 .08 72 / .48);border-radius:50%}.map-home-stats:before{box-shadow:286px 0 0 -1px #fffdfab8;box-shadow:286px 0 0 -1px oklch(.995 .006 65 / .72)}.map-home-stats span{display:grid;place-items:center;min-height:40px;color:#553c31;font-size:11px;font-weight:780}.map-home-stats i{width:1px;height:13px;background:linear-gradient(180deg,transparent,oklch(.74 .045 72 / .64),transparent)}.map-home-stats span:first-child,.map-home-stats span:last-child{color:var(--rose)}.tap-school-card{position:absolute;left:50%;bottom:16px;z-index:8;display:grid;grid-template-columns:58px 1fr;gap:10px 12px;width:calc(100% - 32px);max-width:398px;padding:13px;border:1px solid oklch(.89 .035 60 / .64);border-radius:22px;background:var(--paper-fiber),linear-gradient(180deg,#fffefce6,#fff5ecd6),color-mix(in oklch,var(--school-theme) 8%,var(--color-card));background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.902),color(xyz 0.891 0.924 0.916 / 0.839)),color-mix(in oklch,var(--school-theme) 8%,var(--color-card));box-shadow:0 18px 38px #1b0e082e,0 1px #ffffff8f inset;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%);animation:cardUp var(--motion-page) both}.card-close{position:absolute;top:9px;right:10px;width:26px;height:26px;border:0;color:#857770d1;background:transparent;cursor:pointer;font-size:20px;line-height:1}.tap-card-image{width:58px;height:58px;overflow:hidden;border-radius:var(--radius-sm);background:var(--rose-soft);box-shadow:inset 0 0 0 1px #fffdfa70;box-shadow:inset 0 0 0 1px oklch(.995 .006 65 / .44)}.tap-card-copy{min-width:0;padding-right:20px}.tap-card-copy h2{margin:2px 0 6px;color:var(--color-ink-brown);font-size:17px;line-height:1.2}.tap-card-copy p{display:inline-flex;margin:0 0 6px;padding:4px 8px;border-radius:var(--radius-pill);color:var(--color-seal);background:linear-gradient(180deg,#fff5f6db,#ffe7e9b8);background:linear-gradient(180deg,color(xyz 0.938 0.931 0.978 / 0.859),color(xyz 0.87 0.844 0.875 / 0.722));font-size:11px;font-weight:850}.tap-card-copy span{display:-webkit-box;overflow:hidden;color:var(--color-text-soft);font-size:12px;line-height:1.48;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wide-cta,.secondary-action{position:relative;overflow:hidden;min-height:46px;border-radius:var(--radius-sm);cursor:pointer;font-weight:900}.wide-cta{width:100%;border:0;color:#fffdfa;color:oklch(.995 .006 65);background:var(--gradient-primary);box-shadow:var(--shadow-button)}.wide-cta:before{content:"";position:absolute;inset:1px 1px auto;height:45%;border-radius:inherit;background:linear-gradient(180deg,oklch(1 0 0 / .38),transparent);pointer-events:none}.wide-cta:after{content:"";position:absolute;inset:auto 18% -36%;height:70%;border-radius:50%;background:#fff3f62e;background:oklch(.98 .04 8 / .18);filter:blur(12px);pointer-events:none}.wide-cta:hover,.secondary-action:hover,.custom-text-btn:hover,.screen-top button:hover,.round-btn:hover,.locate-btn:hover{opacity:.92}.tap-card-actions{grid-column:1 / -1;display:grid;grid-template-columns:.82fr 1fr;gap:10px;margin-top:4px}.secondary-action.subtle{border-color:#e1cdbecc;color:var(--color-seal);background:var(--paper-fiber),linear-gradient(180deg,#fffefcd6,#fdf1e6c2);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.839),#fdf1e6c2)}.detail-screen,.compose-screen,.template-screen,.preview-screen,.success-screen{background:var(--paper-fiber),radial-gradient(ellipse at 76% 8%,oklch(.94 .055 205 / .3),transparent 180px),radial-gradient(ellipse at 14% 38%,oklch(.96 .05 12 / .36),transparent 210px),linear-gradient(180deg,var(--color-card-strong),var(--page))}.detail-screen{height:100svh;min-height:100svh;padding:0;overflow:hidden}.round-btn{position:absolute;z-index:220;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--color-border);border-radius:50%;color:var(--color-ink-brown);background:linear-gradient(180deg,#fffefceb,#fbefe6d1);background:linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.922),#fbefe6d1);box-shadow:0 10px 22px #533c3424,0 1px #fff9 inset;cursor:pointer;font-size:24px;pointer-events:auto;touch-action:manipulation}.back-floating{position:fixed;top:calc(18px + var(--safe-top));left:max(14px,calc((100vw - var(--app-max-width)) / 2 + 14px));width:42px;height:42px;font-size:28px}.heart-btn{position:fixed;top:calc(18px + var(--safe-top));right:max(14px,calc((100vw - var(--app-max-width)) / 2 + 14px));width:42px;height:42px;font-size:20px}.detail-hero{position:absolute;top:0;left:0;right:0;z-index:1;height:clamp(470px,65svh,620px);padding-top:var(--safe-top);margin:0;overflow:hidden;border-radius:0 0 30px 30px;background:radial-gradient(ellipse at 74% 18%,color-mix(in oklch,var(--school-theme) 16%,transparent),transparent 170px),linear-gradient(180deg,var(--color-blue-soft),oklch(.98 .016 65)),var(--paper);animation:heroLift var(--motion-page) both}.detail-hero img,.detail-hero .campus-fallback{width:100%;height:100%}.detail-hero img,.detail-hero .campus-fallback.has-promo img{object-fit:contain;object-position:center top}.detail-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 16% 18%,oklch(.96 .055 12 / .28),transparent 150px),linear-gradient(180deg,oklch(.18 .025 35 / .08) 0%,transparent 28%),linear-gradient(180deg,transparent 40%,oklch(.18 .04 34 / .78) 100%)}.detail-hero:before{content:"南京高校打卡企划";position:absolute;right:18px;bottom:72px;z-index:2;display:grid;place-items:center;width:116px;height:24px;border:1px solid oklch(.93 .03 65 / .58);border-radius:var(--radius-pill);color:#fffdfae6;color:oklch(.995 .006 65 / .9);background:#24100b42;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:11px;font-weight:850}.detail-panel{position:absolute;left:0;right:0;top:var(--detail-panel-top, clamp(330px, 48svh, 430px));bottom:0;z-index:3;margin:0;display:flex;flex-direction:column;padding:0;overflow-x:hidden;overflow-y:hidden;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--paper-fiber),linear-gradient(180deg,#fffefc,#fff9f3f5),var(--color-card-strong);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.04),color(xyz 0.916 0.954 0.978 / 0.961)),var(--color-card-strong);box-shadow:0 -14px 32px #1b0e091a,0 1px #ffffffb3 inset;transition:top .28s cubic-bezier(.22,1,.36,1);animation:panelFade var(--motion-page) both}.detail-panel.dragging{transition:none}.detail-panel-handle{position:relative;flex:0 0 40px;width:100%;border:0;background:transparent;cursor:grab;touch-action:none}.detail-panel-handle:active{cursor:grabbing;transform:none}.detail-panel-handle span{position:absolute;top:11px;left:50%;width:44px;height:5px;border-radius:var(--radius-pill);background:#b2a1966b;box-shadow:0 1px #ffffff94 inset;transform:translate(-50%)}.detail-panel-handle:after{content:"上滑展开 · 下滑看图";position:absolute;top:21px;left:50%;color:#827166b8;font-size:10px;font-weight:760;line-height:1;transform:translate(-50%);white-space:nowrap}.detail-panel-scroll{flex:1 1 auto;min-height:0;padding:0 16px calc(56px + var(--safe-bottom));overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.detail-inline-back{display:inline-flex;align-items:center;gap:4px;width:fit-content;min-height:34px;margin:0 0 10px;padding:0 12px 0 10px;border:1px solid oklch(.88 .032 58 / .72);border-radius:var(--radius-pill);color:var(--color-ink-brown);background:var(--paper-fiber),linear-gradient(180deg,#fffefcc7,#fdf1e79e);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.78),#fdf1e79e);box-shadow:0 8px 18px #5e473d0f,0 1px #fff9 inset;font-size:12px;font-weight:820;line-height:1;cursor:pointer;touch-action:manipulation}.detail-inline-back:active{transform:translateY(1px) scale(.98)}.pill-row,.keyword-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pill-row span,.keyword-list span{padding:6px 10px;border-radius:var(--radius-pill);color:var(--color-seal);background:linear-gradient(180deg,#fff7f7e6,#ffe9ebb8);background:linear-gradient(180deg,color(xyz 0.949 0.946 0.996 / 0.902),color(xyz 0.88 0.858 0.892 / 0.722));font-size:var(--font-sm);font-weight:850}.location-line{margin:13px 0 0;color:var(--color-ink-brown);font-size:13px;font-weight:800}.detail-desc{margin:14px 0 12px;color:var(--color-text-soft);font-size:var(--font-body);line-height:var(--leading-body);display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}.keyword-block h2{margin:16px 0 10px;font-size:var(--font-md);color:var(--color-ink-brown)}.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin:14px 0 18px}.mini-photo{height:70px;overflow:hidden;border-radius:var(--radius-sm);background:var(--rose-soft)}.soft-photo-strip{grid-template-columns:96px 1fr;align-items:stretch;margin-bottom:14px;padding:9px;border:1px solid oklch(.86 .035 58 / .72);border-radius:18px;background:linear-gradient(90deg,var(--color-gold-soft),transparent 34%),var(--paper-fiber),#fffdfa9e;background:linear-gradient(90deg,var(--color-gold-soft),transparent 34%),var(--paper-fiber),oklch(.995 .006 65 / .62);box-shadow:0 10px 24px #5e473d12}.featured-photo{height:64px;opacity:.86}.photo-note{display:flex;flex-direction:column;justify-content:center;min-width:0}.photo-note span{color:var(--ink);font-size:13px;font-weight:850}.photo-note small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.45}.campus-gallery-block{margin:16px 0 18px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.section-heading h2{margin:0;color:var(--color-ink-brown);font-size:var(--font-md);line-height:1.2}.section-heading span{flex:0 0 auto;color:var(--color-text-muted);font-size:11px;font-weight:760}.campus-gallery-scroll{display:flex;gap:10px;margin:0 -16px;padding:0 16px 4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch}.campus-gallery-scroll::-webkit-scrollbar{display:none}.gallery-image-card{position:relative;flex:0 0 154px;height:92px;overflow:hidden;border:1px solid oklch(.86 .032 58 / .62);border-radius:16px;background:var(--paper-fiber),linear-gradient(180deg,#e8fdff6b,#fffdfacc);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.863 0.949 1.097 / 0.42),color(xyz 0.939 0.984 1.039 / 0.8));box-shadow:0 12px 26px #5e473d14,0 1px #ffffff8a inset;scroll-snap-align:start}.gallery-image-card img,.gallery-image-card .campus-fallback{width:100%;height:100%}.gallery-image-card img{display:block;object-fit:cover}.gallery-image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 54%,oklch(.16 .025 35 / .18));pointer-events:none}.contribution-card{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:14px;align-items:center;margin:16px 0 18px;padding:14px;border:1px solid oklch(.88 .035 56 / .7);border-radius:20px;background:radial-gradient(ellipse at 16% 18%,oklch(.96 .055 12 / .32),transparent 120px),var(--paper-fiber),linear-gradient(180deg,#fffefce0,#fdf1e7b8);background:radial-gradient(ellipse at 16% 18%,oklch(.96 .055 12 / .32),transparent 120px),var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.878),#fdf1e7b8);box-shadow:0 14px 30px #5e473d17,0 1px #fff9 inset}.contribution-copy{min-width:0}.contribution-copy>span{display:inline-flex;margin-bottom:8px;padding:4px 8px;border-radius:var(--radius-pill);color:var(--color-seal);background:#ffeff0ad;background:oklch(.965 .038 10 / .68);font-size:10px;font-weight:880}.contribution-copy h2{margin:0;color:var(--color-ink-brown);font-size:17px;line-height:1.2}.contribution-copy p{margin:8px 0 0;color:#5c483e;font-size:12px;font-weight:700;line-height:1.55}.contribution-copy small{display:block;margin-top:9px;color:#827166db;font-size:10px;font-weight:650;line-height:1.45}.contribution-contact{display:grid;justify-items:center;gap:5px;min-width:0}.contribution-contact img{display:block;width:92px;height:92px;padding:6px;border:1px solid oklch(.88 .025 55 / .74);border-radius:16px;background:#fffdfaeb;background:oklch(.995 .006 65 / .92);box-shadow:0 10px 22px #533d331a;object-fit:contain}.contribution-contact>strong{color:var(--color-ink-brown);font-size:12px;line-height:1}.contribution-contact em{max-width:98px;color:var(--color-text-muted);font-size:9px;font-style:normal;font-weight:650;line-height:1.3;text-align:center}.wechat-qr-fallback{display:grid;place-items:center;width:92px;height:92px;border:1px dashed oklch(.78 .045 70 / .78);border-radius:16px;background:var(--paper-fiber),#fffdfab8;background:var(--paper-fiber),oklch(.995 .006 65 / .72);color:var(--color-ink-brown);text-align:center}.wechat-qr-fallback span{font-size:11px;color:var(--muted)}.wechat-qr-fallback strong{font-size:18px}.detail-panel>.wide-cta{position:sticky;bottom:calc(14px + var(--safe-bottom));min-height:57px;border-radius:17px;font-size:16px;letter-spacing:.02em}.screen-top{display:grid;grid-template-columns:54px 1fr 54px;align-items:center;gap:var(--space-2);height:44px;margin-bottom:10px}.screen-top h1{margin:0;color:var(--color-ink-brown);font-size:18px;line-height:1.2;text-align:center;text-shadow:0 1px 0 oklch(1 0 0 / .55)}.screen-top button{min-height:36px;border:0;color:var(--color-ink-brown);background:transparent;cursor:pointer;font-size:25px;font-weight:600}.screen-top button:last-child{color:var(--color-seal);font-size:13px;font-weight:850}.screen-subtitle{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 6px 14px;color:var(--color-text-muted);font-size:12px;font-weight:720;line-height:1.55;text-align:center}.screen-subtitle span,.step-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 9px;border:1px solid oklch(.83 .04 62 / .72);border-radius:var(--radius-pill);color:var(--color-seal);background:var(--paper-fiber),linear-gradient(180deg,#fffdfad6,#fef1e6b3);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.839),#fef1e6b3);box-shadow:0 6px 14px #5e473d0f;font-size:10px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.compose-screen{padding-bottom:calc(96px + var(--safe-bottom))}.compose-list{display:grid;gap:var(--space-3);padding-top:2px}.compose-school-card{display:flex;align-items:center;gap:10px;min-height:44px;margin:0 0 var(--space-3);padding:0 14px;border:1px solid oklch(.86 .032 58 / .68);border-radius:var(--radius-md);color:var(--muted);background:var(--paper-fiber),linear-gradient(180deg,#fffefcd1,#fff5ecad);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.82),color(xyz 0.892 0.924 0.906 / 0.678));box-shadow:var(--shadow-soft)}.compose-school-card .step-badge{flex:0 0 auto;margin-right:2px}.compose-context-copy{min-width:0;overflow:hidden;color:var(--muted);font-size:13px;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.compose-context-copy strong{color:var(--color-seal);font-size:14px}.text-choice{display:grid;grid-template-columns:1fr 22px;gap:var(--space-3);align-items:center;min-height:62px;padding:12px 14px;border:1px solid oklch(.88 .028 58 / .7);border-radius:var(--radius-md);color:var(--ink);background:var(--paper-fiber),linear-gradient(180deg,#fffefce6,#fff9f3d6);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.902),color(xyz 0.915 0.954 0.977 / 0.839));box-shadow:var(--shadow-soft);cursor:pointer;text-align:left;transition:transform var(--motion-ui),border-color var(--motion-ui),background var(--motion-ui),box-shadow var(--motion-ui)}.text-choice:active{transform:scale(.985)}.text-choice span{font-size:13px;color:var(--color-ink-brown);font-weight:780;line-height:1.55}.text-choice i{width:18px;height:18px;border:1px solid oklch(.78 .02 55);border-radius:50%;transition:transform var(--motion-ui),border-color var(--motion-ui),background var(--motion-ui)}.text-choice.active{border-color:var(--rose);background:radial-gradient(ellipse at 10% 12%,oklch(.96 .05 12 / .42),transparent 84px),var(--paper-fiber),var(--color-primary-wash);box-shadow:0 12px 26px #e26c8c1a,0 0 0 4px #ffe7ea66;box-shadow:0 12px 26px #e26c8c1a,0 0 0 4px oklch(.95 .038 10 / .4)}.text-choice.active i{position:relative;border:0;background:var(--rose);transform:scale(1.06)}.text-choice.active i:after{content:"";position:absolute;left:5px;top:3px;width:6px;height:9px;border-right:2px solid oklch(.995 .006 65);border-bottom:2px solid oklch(.995 .006 65);transform:rotate(45deg)}.custom-text-btn{display:flex;align-items:center;gap:var(--space-2);min-height:46px;padding:0 16px;border:1px dashed oklch(.78 .045 70 / .78);border-radius:var(--radius-md);color:#503e35;background:var(--paper-fiber),#fffdfa99;background:var(--paper-fiber),oklch(.995 .006 65 / .6);cursor:pointer;font-size:13px;font-weight:800}.bottom-cta{position:fixed;left:50%;bottom:calc(14px + var(--safe-bottom));z-index:30;width:min(calc(100vw - 28px),398px);transform:translate(-50%);min-height:57px;border-radius:15px}.template-screen{padding-bottom:calc(96px + var(--safe-bottom))}.template-feature{position:relative;padding:4px 10px 0}.template-feature:before,.template-feature:after{content:"";position:absolute;left:24px;right:24px;top:18px;height:390px;border:1px solid oklch(.84 .035 58 / .42);border-radius:20px;background:var(--paper-fiber),linear-gradient(180deg,#fffdfa9e,#c9f5fa2e);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.62),#c9f5fa2e);box-shadow:0 18px 38px #5e473d14;transform:rotate(-2.4deg)}.template-feature:after{left:32px;right:18px;top:24px;transform:rotate(2.2deg)}.template-preview{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:190px;padding:13px;overflow:hidden;border:1px solid oklch(.84 .035 58 / .72);border-radius:18px;background:radial-gradient(ellipse at 15% 12%,oklch(.96 .055 12 / .46),transparent 110px),linear-gradient(180deg,#fff4f55c,#fffdfae0),var(--map-base-image) center / cover;background:radial-gradient(ellipse at 15% 12%,oklch(.96 .055 12 / .46),transparent 110px),linear-gradient(180deg,color(xyz 0.945 0.929 0.97 / 0.361),color(xyz 0.939 0.984 1.039 / 0.878)),var(--map-base-image) center / cover;box-shadow:0 14px 30px #5e473d24,0 1px #fff9 inset}.template-preview.large{position:relative;z-index:1;height:414px;border-radius:20px;text-align:center;align-items:center;justify-content:center}.template-preview.large:before{content:"";position:absolute;inset:12px;border:1px solid oklch(.86 .04 65 / .32);border-radius:16px;pointer-events:none}.template-preview.large:after{content:"";position:absolute;left:50%;bottom:32px;width:74%;height:70px;border-radius:50%;background:#c49e6229;filter:blur(18px);transform:translate(-50%);pointer-events:none}.template-preview span{align-self:flex-start;padding:5px 8px;border-radius:var(--radius-pill);color:#fffdfa;color:oklch(.995 .006 65);background:linear-gradient(135deg,var(--color-seal),oklch(.7 .12 8));font-size:11px;font-weight:900}.template-preview.large span{position:absolute;top:13px;left:13px;z-index:2}.template-preview strong{position:relative;z-index:2;color:var(--color-ink-brown);font-size:20px;line-height:1.18}.template-preview.large strong{margin:120px 0 8px;font-size:28px;text-shadow:0 1px 0 oklch(1 0 0 / .72)}.template-preview small{position:relative;z-index:2;margin-top:7px;color:var(--color-text-soft);font-size:12px;line-height:1.45}.template-dots{display:flex;justify-content:center;gap:6px;margin:10px 0 12px}.template-dots span{width:6px;height:6px;border-radius:50%;background:#cfc1b8}.template-dots span.active{background:var(--rose)}.template-carousel{display:flex;gap:10px;margin:0 -14px;padding:0 14px 4px;overflow-x:auto;scrollbar-width:none}.template-carousel::-webkit-scrollbar{display:none}.template-card{flex:0 0 78px;padding:0;border:0;background:transparent;cursor:pointer;transition:transform var(--motion-fast),opacity var(--motion-fast)}.template-card:active{transform:scale(.96)}.template-card .template-preview{height:104px;padding:8px;border-radius:14px}.template-card.active .template-preview{border:2px solid var(--rose);box-shadow:0 10px 22px #e26c8c24,0 0 0 4px #ffeaed8f;box-shadow:0 10px 22px #e26c8c24,0 0 0 4px oklch(.96 .04 10 / .56)}.template-card .template-preview span,.template-card .template-preview small{display:none}.template-card .template-preview strong{font-size:12px}.template-card>span{display:block;margin-top:7px;overflow:hidden;color:var(--rose);font-size:10px;font-weight:850;text-align:center;text-overflow:ellipsis;white-space:nowrap}.preview-screen{display:flex;flex-direction:column;padding-bottom:calc(20px + var(--safe-bottom))}.poster-artwork{position:relative;width:min(100%,334px);aspect-ratio:1080 / 1600;margin:0 auto;overflow:hidden;border:1px solid oklch(.82 .035 60 / .68);border-radius:24px;background:var(--paper-fiber),var(--paper);box-shadow:0 24px 54px #5e473d2e,0 0 0 8px #fffdfa75;box-shadow:0 24px 54px #5e473d2e,0 0 0 8px oklch(.995 .006 65 / .46)}.preview-screen .poster-artwork{margin-top:4px}.poster-bg{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#fffdfa1a,#17090624),var(--poster-bg-image) center / cover no-repeat,var(--map-base-image) center / cover no-repeat;background:radial-gradient(ellipse at 50% 50%,color(xyz 0.939 0.984 1.039 / 0.102),#17090624),var(--poster-bg-image) center / cover no-repeat,var(--map-base-image) center / cover no-repeat}.poster-bg:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,oklch(.995 .006 65 / .08),transparent 26%,oklch(.18 .03 36 / .12) 76%,oklch(.18 .03 36 / .22)),var(--poster-bg-image) center / contain no-repeat}.poster-bg:after{content:"";position:absolute;inset:12px;z-index:2;border:1px solid oklch(.995 .006 65 / .22);border-radius:18px;box-shadow:none}.poster-stamp{position:absolute;top:54px;right:25px;z-index:2;display:grid;place-items:center;width:46px;height:46px;border:1px solid oklch(.62 .12 20 / .48);border-radius:14px;color:#b05457b8;background:#fffdfa52;background:oklch(.995 .006 65 / .32);font-size:10px;font-weight:900;line-height:1.2;text-align:center;transform:rotate(8deg)}.poster-artwork header,.poster-float-label,.poster-info-card{position:relative;z-index:1}.poster-artwork header{display:flex;justify-content:space-between;align-items:center;padding:19px 20px 0}.poster-artwork header span{color:#fffdfae6;color:oklch(.995 .006 65 / .9);font-size:12px;font-weight:900;text-shadow:0 8px 20px oklch(.15 .025 35 / .22)}.poster-artwork header small{padding:4px 8px;border:1px solid oklch(.995 .006 65 / .34);border-radius:var(--radius-pill);color:#fffdfadb;color:oklch(.995 .006 65 / .86);background:#1b0d0a2e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:10px;font-weight:800}.poster-float-label{position:absolute;left:20px;top:58px;display:inline-flex;width:max-content;padding:5px 10px;border:1px solid oklch(.995 .006 65 / .38);border-radius:var(--radius-pill);color:#fffdfae6;color:oklch(.995 .006 65 / .9);background:#1b0d0a29;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:10px;font-weight:850}.poster-info-card{position:absolute;left:28px;right:28px;bottom:16px;display:grid;grid-template-columns:minmax(0,1fr) 1px 54px;gap:8px;align-items:center;padding:10px 10px 10px 12px;border:1px solid oklch(1 0 0 / .54);border-radius:24px;background:var(--paper-fiber),linear-gradient(180deg,#fff9f3d1,#fceee4c2);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.916 0.954 0.942 / 0.82),#fceee4c2);box-shadow:0 10px 24px #3c201929,0 1px #ffffff8f inset;-webkit-backdrop-filter:blur(10px) saturate(1.02);backdrop-filter:blur(10px) saturate(1.02)}.poster-info-main{min-width:0}.poster-area-pill{display:inline-flex;width:fit-content;max-width:100%;margin:0 0 4px;padding:2px 7px 3px;overflow:hidden;border:1px solid oklch(.86 .052 10 / .38);border-radius:var(--radius-pill);color:#9f5a67e6;background:linear-gradient(180deg,#fff5f7bd,#ffe8ec8a);background:linear-gradient(180deg,color(xyz 0.942 0.937 0.998 / 0.741),color(xyz 0.868 0.851 0.902 / 0.541));box-shadow:0 1px #ffffff75 inset;font-size:7.5px;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap}.poster-info-main h1{margin:0;color:#361710;font-size:17px;font-weight:830;line-height:1.08;letter-spacing:0}.poster-info-main span,.poster-info-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poster-info-main span{margin-top:3px;color:#50362da3;font-size:8px;font-weight:680;line-height:1.25}.poster-info-main blockquote{position:relative;margin:5px 0 0;padding:0;border:0;border-radius:0;color:#3c2019d1;background:transparent;font-size:9px;font-weight:710;line-height:1.38;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.poster-info-main small{margin-top:5px;color:#5e473e6b;font-size:7.5px;font-weight:620;line-height:1.25}.poster-info-divider{width:1px;height:48px;border-radius:var(--radius-pill);background:linear-gradient(180deg,transparent,oklch(.62 .035 52 / .12),transparent)}.poster-qr-wrap{display:grid;justify-items:center;gap:4px;min-width:0;padding:5px 4px 4px;border:1px solid oklch(1 0 0 / .56);border-radius:14px;background:#fffdfad1;background:oklch(.995 .006 65 / .82);box-shadow:0 5px 12px #3c201914,0 1px #ffffff8a inset}.poster-qr-wrap span{color:#4b302894;font-size:7.5px;font-weight:700;line-height:1}.poster-info-card .qr-placeholder,.poster-info-card .qr-image{width:44px;height:44px;padding:2px;border-radius:9px;box-shadow:none}.poster-info-card-minimal{left:34px;right:34px;bottom:16px;grid-template-columns:minmax(0,1fr) 52px;gap:9px;padding:9px 9px 9px 12px;border-color:#ffffff75;border-radius:22px;background:var(--paper-fiber),linear-gradient(180deg,#fff9f3bd,#fceee4ad);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.916 0.954 0.942 / 0.741),#fceee4ad);box-shadow:0 8px 20px #3c201921,0 1px #ffffff75 inset}.poster-minimal-copy{min-width:0}.poster-minimal-copy blockquote{display:-webkit-box;margin:0;overflow:hidden;border:0;color:#371c14d6;font-size:10px;font-weight:760;line-height:1.42;-webkit-line-clamp:2;-webkit-box-orient:vertical}.poster-minimal-copy small{display:block;margin-top:5px;overflow:hidden;color:#5e473e6b;font-size:7.5px;font-weight:620;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.qr-placeholder{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:60px;height:60px;padding:5px;border-radius:8px;background:var(--paper-fiber),#fffdfa;background:var(--paper-fiber),oklch(.995 .006 65);box-shadow:0 8px 18px #533d331f}.qr-placeholder span{border-radius:1px;background:transparent}.qr-placeholder span.on{background:#2a1b17}.qr-image{display:block;width:60px;height:60px;padding:5px;border-radius:8px;background:var(--paper-fiber),#fffdfa;background:var(--paper-fiber),oklch(.995 .006 65);box-shadow:0 8px 18px #533d331f;object-fit:contain}.preview-actions{position:sticky;bottom:calc(14px + var(--safe-bottom));z-index:25;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding-top:4px}.preview-actions .wide-cta,.preview-actions .secondary-action{min-height:56px;border-radius:16px;font-weight:820}.preview-actions .wide-cta{background:linear-gradient(135deg,#e399a6f0,#c47388eb);box-shadow:0 10px 22px #bb5f7524,0 1px #ffffff57 inset}.preview-actions .wide-cta:before{height:38%;background:linear-gradient(180deg,oklch(1 0 0 / .24),transparent)}.preview-actions .wide-cta:after{opacity:.42;filter:blur(16px)}.preview-actions .secondary-action{border-color:#dbcabe8f;color:#422921c7;background:var(--paper-fiber),linear-gradient(180deg,#fffdfab8,#fdf1e794);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.939 0.984 1.039 / 0.722),#fdf1e794);box-shadow:0 8px 18px #4b38300f,0 1px #ffffff85 inset}.secondary-action{width:100%;border:1px solid var(--color-border);color:var(--color-ink-brown);background:var(--paper-fiber),linear-gradient(180deg,#fffefc,#fdf1e7);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046),#fdf1e7)}.success-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:100svh;padding:calc(18px + var(--safe-top)) 14px calc(24px + var(--safe-bottom));overflow-x:hidden;overflow-y:auto;background:var(--paper-fiber),radial-gradient(ellipse at 50% 38%,oklch(.985 .035 8 / .74),transparent 260px),radial-gradient(ellipse at 88% 12%,oklch(.955 .04 210 / .54),transparent 210px),radial-gradient(ellipse at 10% 82%,oklch(.95 .045 145 / .3),transparent 180px),linear-gradient(180deg,#fffefb,#fff7fb 54%,#eefcff);background:var(--paper-fiber),radial-gradient(ellipse at 50% 38%,oklch(.985 .035 8 / .74),transparent 260px),radial-gradient(ellipse at 88% 12%,oklch(.955 .04 210 / .54),transparent 210px),radial-gradient(ellipse at 10% 82%,oklch(.95 .045 145 / .3),transparent 180px),linear-gradient(180deg,color(xyz 0.947 0.99 1.036),color(xyz 0.942 0.948 1.055) 54%,color(xyz 0.879 0.952 1.091));text-align:center}.success-screen:before{content:"";position:absolute;top:88px;left:50%;z-index:0;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,oklch(.965 .055 8 / .4),transparent 56%),radial-gradient(circle at 50% 50%,transparent 0 48%,oklch(.8 .055 72 / .22) 49% 50%,transparent 51%),conic-gradient(from 20deg,transparent 0 7%,oklch(.78 .13 8 / .18) 7% 8%,transparent 8% 19%,oklch(.78 .1 75 / .16) 19% 20%,transparent 20% 36%,oklch(.78 .11 250 / .12) 36% 37%,transparent 37%);filter:blur(1.2px);transform:translate(-50%)}.success-screen:after{content:"";position:absolute;top:86px;left:50%;z-index:0;width:360px;height:560px;background:linear-gradient(115deg,transparent 0 47%,oklch(.74 .06 74 / .16) 47% 47.4%,transparent 47.4%),linear-gradient(25deg,transparent 0 58%,oklch(.82 .045 205 / .14) 58% 58.4%,transparent 58.4%),radial-gradient(circle at 8% 32%,oklch(.85 .12 8 / .62) 0 3px,transparent 4px),radial-gradient(circle at 24% 12%,oklch(.78 .11 70 / .56) 0 3px,transparent 4px),radial-gradient(circle at 72% 20%,oklch(.84 .1 8 / .56) 0 3px,transparent 4px),radial-gradient(circle at 90% 46%,oklch(.78 .1 250 / .46) 0 3px,transparent 4px),radial-gradient(circle at 18% 78%,oklch(.88 .08 12 / .48) 0 4px,transparent 5px);opacity:.78;transform:translate(-50%)}.success-hero{position:relative;z-index:1;display:grid;justify-items:center;gap:10px;padding-top:2px;animation:successRise .3s cubic-bezier(.22,1,.36,1) both}.success-mark{position:relative;z-index:1;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 34% 24%,oklch(1 0 0 / .56),transparent 25%),linear-gradient(135deg,oklch(.78 .14 8),var(--rose));box-shadow:0 14px 28px #ef5f892e,0 0 0 8px #ffe1e657;box-shadow:0 14px 28px #ef5f892e,0 0 0 8px oklch(.94 .05 8 / .34)}.success-mark span{color:#fffdfa;color:oklch(.995 .006 65);font-size:34px;line-height:1}.success-copy h1{position:relative;z-index:1;margin:0;color:var(--color-ink-brown);font-size:clamp(28px,7.6vw,34px);font-weight:900;line-height:1.12;letter-spacing:0;text-shadow:0 1px 0 oklch(1 0 0 / .62)}.success-copy p{position:relative;z-index:1;margin:7px 0 0;color:#6e584d;font-size:clamp(15px,4vw,16px);font-weight:720}.success-showcase{position:relative;z-index:1;display:grid;place-items:center;width:100%;min-height:0;padding:6px 0 2px;animation:posterFloatIn .36s 70ms cubic-bezier(.22,1,.36,1) both}.success-showcase:after{content:"";position:absolute;bottom:-4px;left:50%;z-index:-1;width:min(68vw,288px);height:32px;border-radius:50%;background:radial-gradient(ellipse,oklch(.32 .035 42 / .18),transparent 68%);filter:blur(5px);transform:translate(-50%)}.success-poster-badge{position:absolute;top:22px;right:max(22px,calc((100% - min(82vw,322px))/2 - 4px));z-index:4;padding:7px 11px;border:1px solid oklch(1 0 0 / .58);border-radius:var(--radius-pill);color:#fffdfa;color:oklch(.995 .006 65);background:linear-gradient(135deg,#f68ca1e0,#cc6783db);box-shadow:0 10px 20px #e36c872e,0 1px #ffffff7a inset;font-size:11px;font-weight:900}.success-poster-card{position:relative;z-index:1;width:min(82vw,322px);max-height:none;overflow:visible;border-radius:24px;box-shadow:0 24px 54px #48322a2e,0 0 0 1px #ffffff8a,0 0 0 8px #fffdfa57;box-shadow:0 24px 54px #48322a2e,0 0 0 1px #ffffff8a,0 0 0 8px oklch(.995 .006 65 / .34);transform:rotate(-1.6deg);transition:transform var(--motion-ui)}.success-poster-card:hover{transform:rotate(-.8deg) translateY(-2px)}.success-poster-card .poster-artwork{width:100%;margin:0;overflow:hidden;box-shadow:none}.success-poster-card .poster-info-card{left:22px;right:22px;bottom:14px;grid-template-columns:minmax(0,1fr) 1px 52px;gap:8px;padding:9px 9px 9px 11px;border-radius:22px}.success-poster-card .poster-info-card-minimal{left:28px;right:28px;bottom:14px;grid-template-columns:minmax(0,1fr) 50px;padding:8px 8px 8px 10px}.success-poster-card .poster-stamp{display:none}.success-poster-card .poster-info-main h1{font-size:clamp(15px,4.5vw,17px)}.success-poster-card .poster-info-main blockquote{margin-top:5px;font-size:8.5px;line-height:1.36;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.success-poster-card .qr-placeholder,.success-poster-card .qr-image{width:44px;height:44px;padding:2px}.success-poster-card .qr-image{object-fit:contain}.success-actions{position:relative;z-index:1;display:grid;gap:12px;width:min(100%,338px);margin:0 auto;animation:successRise .3s .12s cubic-bezier(.22,1,.36,1) both}.success-actions .wide-cta,.success-actions .secondary-action,.success-actions .tertiary-action{min-height:58px;border-radius:22px;font-size:15px;font-weight:850}.success-primary-action{box-shadow:0 16px 30px #e7688b33,0 1px #ffffff73 inset}.success-secondary-action{border-color:#e8d3c5b8;background:var(--paper-fiber),linear-gradient(180deg,#fffefcdb,#fdf1e7b8);background:var(--paper-fiber),linear-gradient(180deg,color(xyz 0.945 0.99 1.046 / 0.859),#fdf1e7b8);box-shadow:0 12px 28px #5e473d14,0 1px #ffffff9e inset;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tertiary-action{border:0;color:#6e584d;background:transparent;cursor:pointer}.tertiary-action:active{transform:translateY(1px) scale(.99)}@keyframes successRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes posterFloatIn{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.campus-fallback{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:hidden;background:radial-gradient(ellipse at 72% 18%,color-mix(in oklch,var(--school-theme) 13%,transparent),transparent 100px),linear-gradient(180deg,#ade3e9b8,#fff9f3),var(--paper);background:radial-gradient(ellipse at 72% 18%,color-mix(in oklch,var(--school-theme) 13%,transparent),transparent 100px),linear-gradient(180deg,#ade3e9b8,color(xyz 0.917 0.953 0.943)),var(--paper)}.campus-fallback.has-promo{background:#f4e9df}.campus-fallback.has-promo:before,.campus-fallback.has-promo:after{display:none}.campus-fallback.has-promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.campus-fallback:before{content:"";position:absolute;left:11%;right:11%;bottom:22%;height:34%;border:1px solid oklch(.76 .045 50 / .72);border-radius:9px 9px 4px 4px;background:linear-gradient(90deg,transparent 0 18%,oklch(.995 .006 65 / .72) 18% 26%,transparent 26% 46%,oklch(.995 .006 65 / .72) 46% 54%,transparent 54% 74%,oklch(.995 .006 65 / .72) 74% 82%,transparent 82%),linear-gradient(180deg,#ffeadc,#f6d6ca);background:linear-gradient(90deg,transparent 0 18%,oklch(.995 .006 65 / .72) 18% 26%,transparent 26% 46%,oklch(.995 .006 65 / .72) 46% 54%,transparent 54% 74%,oklch(.995 .006 65 / .72) 74% 82%,transparent 82%),linear-gradient(180deg,color(xyz 0.844 0.85 0.754),#f6d6ca)}.campus-fallback:after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(180deg,transparent,oklch(.78 .08 145 / .36))}.campus-fallback i{position:absolute;top:18%;width:72px;height:72px;border-radius:50%;background:#d1f7fbb3}.campus-fallback span{position:relative;z-index:2;color:var(--color-ink-brown);font-size:28px;font-weight:950}.campus-fallback b{position:absolute;left:20%;bottom:43%;width:60%;height:6px;border-radius:999px;background:#f4b0af8c}.campus-fallback.compact span{font-size:17px}.campus-fallback.compact i{width:42px;height:42px}.campus-fallback.has-promo{background:var(--paper)}.campus-fallback.has-promo:before,.campus-fallback.has-promo:after,.campus-fallback.has-promo i,.campus-fallback.has-promo span,.campus-fallback.has-promo b{display:none}.campus-fallback.has-promo img{width:100%;height:100%;object-fit:cover}.wide-cta:active,.secondary-action:active,.custom-text-btn:active,.round-btn:active,.locate-btn:active,.screen-top button:active{transform:translateY(1px) scale(.99)}.bottom-cta:active{transform:translate(-50%) translateY(1px) scale(.99)}.school-marker:active:before{transform:scale(.92)}.school-marker.selected:active:before{transform:scale(1.24)}@keyframes markerIn{0%{opacity:0;transform:translateY(8px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ripple{0%{opacity:.82;transform:scale(.55)}to{opacity:0;transform:scale(1.32)}}@keyframes cardUp{0%{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%)}}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes heroLift{0%{opacity:0;transform:translateY(8px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes panelRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes panelFade{0%{opacity:0}to{opacity:1}}@media(max-width:360px){.screen{padding-left:10px;padding-right:10px}.page-header h1{font-size:23px}.tap-school-card{left:50%;right:auto;width:calc(100% - 20px)}.template-preview.large{height:390px}}@media(min-width:391px){body{display:grid;place-items:start center;min-height:100svh;padding:18px 0}.app-shell{border-radius:28px}}
