@charset "UTF-8";.page-cover{position:relative;min-height:100vh;min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#faf6ee}.bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}.overlay{position:absolute;inset:0;background:linear-gradient(180deg,#00000040,#0006,#0009);z-index:1}.content{position:relative;z-index:2;text-align:center;padding:0 var(--space-5)}.eyebrow{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);letter-spacing:.4em;opacity:.85;margin-bottom:var(--space-5)}.couple{font-family:var(--font-display);font-size:var(--text-display);font-weight:400;line-height:1.1;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.amp{font-style:italic;font-size:.7em;opacity:.85}.date{margin-top:var(--space-5);font-size:var(--text-base);letter-spacing:.3em;font-family:var(--font-display)}.scroll-hint{position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.4em;opacity:.7}.page-story{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-section) var(--space-5);background:var(--color-bg-soft)}.inner{max-width:640px;text-align:center}.quote{font-family:var(--font-display);font-style:italic;font-size:var(--text-xl);line-height:1.8;color:var(--color-text);letter-spacing:.05em;position:relative}.quote:before,.quote:after{content:'"';font-size:1.5em;opacity:.4;margin:0 .2em}.signature{margin-top:var(--space-6);font-family:var(--font-handwritten);font-size:var(--text-xl);color:var(--color-accent-deep);letter-spacing:.05em}.countdown-timer{display:flex;align-items:baseline;justify-content:center;gap:var(--space-3);font-variant-numeric:tabular-nums}.block{display:flex;flex-direction:column;align-items:center;min-width:56px}.num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--color-accent-deep);line-height:1}.label{font-size:var(--text-xs);color:var(--color-text-soft);margin-top:var(--space-1);letter-spacing:.1em}.sep{font-size:var(--text-xl);color:var(--color-accent);font-family:var(--font-display)}.finished{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-accent-deep);font-style:italic}.map-navigation{display:flex;justify-content:center}.map-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:1px solid var(--color-accent);border-radius:999px;color:var(--color-accent-deep);font-size:var(--text-sm);letter-spacing:.08em;background:transparent;cursor:pointer;transition:all var(--duration-fast) var(--ease-out-expo)}.map-btn:hover:not(:disabled),.map-btn:focus-visible:not(:disabled){background:var(--color-accent);color:#fff;outline:none}.map-btn:active:not(:disabled){transform:scale(.96)}.map-btn:disabled{opacity:.5;cursor:wait}.map-btn-icon{display:inline-flex;align-items:center}.map-btn-text{white-space:nowrap}.page-info{padding:var(--space-section) var(--space-5);background:var(--color-bg)}.eyebrow{font-family:var(--font-display);font-style:italic;font-size:var(--text-base);letter-spacing:.4em;color:var(--color-accent);margin-bottom:var(--space-3)}.title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:400;color:var(--color-text);letter-spacing:.04em}.weekday{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-soft);letter-spacing:.2em}.countdown{margin:var(--space-8) 0}.cards{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-7)}@media(min-width:480px){.cards{grid-template-columns:1fr 1fr}}.card{padding:var(--space-5);background:var(--color-bg-soft);border-radius:4px;text-align:center;box-shadow:var(--shadow-soft)}.card-label{font-size:var(--text-xs);letter-spacing:.3em;color:var(--color-accent);margin-bottom:var(--space-3)}.card-value{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-2)}.card-sub{font-size:var(--text-sm);color:var(--color-text-soft)}.nav{margin-top:var(--space-7)}.page-blessing{padding:var(--space-section) var(--space-5);background:var(--color-bg-soft)}.container{max-width:600px;margin:0 auto}.head{text-align:center;margin-bottom:var(--space-7)}.eyebrow{font-family:var(--font-display);font-style:italic;letter-spacing:.4em;color:var(--color-accent);margin-bottom:var(--space-3)}.title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text)}.form{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-7)}.input,.textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:4px;background:#fff;font-family:var(--font-body);font-size:var(--text-base);resize:vertical}.input:focus,.textarea:focus{border-color:var(--color-accent);outline:none}.submit-btn{padding:var(--space-3);background:var(--color-accent);color:#fff;border-radius:4px;font-size:var(--text-base);letter-spacing:.2em;transition:background var(--duration-fast) var(--ease-out-expo)}.submit-btn:hover:not(:disabled){background:var(--color-accent-deep)}.submit-btn:disabled{opacity:.5}.blessings-list{display:flex;flex-direction:column;gap:var(--space-4);list-style:none;padding:0;margin:0}.blessing-item{padding:var(--space-4);background:#fff;border-radius:4px;box-shadow:var(--shadow-soft)}.text{font-family:var(--font-display);font-style:italic;font-size:var(--text-base);line-height:1.6;color:var(--color-text);margin-bottom:var(--space-2)}.meta{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-soft)}.name{font-weight:500}.empty{text-align:center;color:var(--color-text-soft);font-style:italic;padding:var(--space-7)}.music-player{position:fixed;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));width:44px;height:44px;border-radius:50%;background:#ffffffbf;color:var(--color-accent-deep);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);box-shadow:var(--shadow-soft);transition:transform var(--duration-fast) var(--ease-out-expo);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.music-player:active{transform:scale(.92)}.icon{display:flex;position:relative;z-index:2}.ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid currentColor;opacity:0}.music-player.playing .ring{animation:ring-pulse 2.4s var(--ease-in-out-quart) infinite}@keyframes ring-pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(1.8);opacity:0}}.falling-petals{position:fixed;inset:0;pointer-events:none;z-index:var(--z-overlay);overflow:hidden}.petal{position:absolute;top:-60px;border-radius:50% 0 50% 50%;opacity:0;will-change:transform,opacity;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.6),transparent 60%)}.invitation{width:100%;overflow-x:hidden}.footer{padding:var(--space-7) var(--space-5);text-align:center;background:var(--color-bg);color:var(--color-text-soft);font-family:var(--font-display);font-style:italic;letter-spacing:.4em}.scroll-canvas-scroller{position:relative;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.scroll-canvas-inner{width:100%;padding:0;margin:0}.scroll-canvas-end{width:100%;height:50vh;pointer-events:none;aria-hidden:true}.scroll-canvas{background:var(--color-bg, #FAF7F2);min-height:100vh}.scroll-canvas-screen{position:relative;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}@media(max-width:768px){.scroll-canvas-end{height:30vh}}.vp-stage{position:absolute;top:0;left:0;width:100%;z-index:20;background:var(--color-bg, #FAF7F2);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow:hidden}.vp-stage:focus-visible{outline:2px solid var(--color-accent, #B8624A);outline-offset:-4px}.vp-stage.is-locked{overscroll-behavior:contain}.vp-fit{position:relative;width:100%;height:100vh;overflow:hidden}.vp-canvas{position:absolute;left:50%;top:50%;transform-origin:center center;transform:translate(-50%,-50%)}.vp-camera{position:absolute;inset:0;width:100%;height:100%;perspective:1800px;perspective-origin:49.95% 57.78%;transform:scale(1);transform-origin:49.95% 57.78%;transition:transform var(--vp-push-ms) var(--vp-camera-ease);will-change:transform}.vp-layer{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.vp-space{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;transform-style:preserve-3d;transform:rotateX(var(--vp-tilt-x, 0deg)) rotateY(var(--vp-tilt-y, 0deg))}.vp-plate{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d;transform-origin:23.14% 52.02%;transform:rotateY(22deg);transition:transform var(--vp-swing-ms) var(--vp-swing-ease);will-change:transform}.vp-handle-pivot{position:absolute;inset:0;transform-origin:73.63% 53.71%;transform:rotate(0);transition:transform var(--vp-handle-ms) cubic-bezier(.34,1.4,.5,1)}.vp-stage.is-open .vp-handle-pivot{transform:rotate(var(--vp-handle-deg));transition-delay:0ms}.vp-stage.is-open .vp-plate{transform:rotateY(var(--vp-open-deg));transition-delay:var(--vp-press-lead)}.vp-stage.is-pushing .vp-camera{transform:scale(var(--vp-push-scale))}.vp-stage:not(.is-open) .vp-handle-pivot{transition-delay:var(--vp-press-lead)}.vp-stage:not(.is-open) .vp-plate{transition-delay:0ms}.vp-inside{z-index:1}.vp-hinges-fixed{z-index:3}.vp-frame{z-index:4}.vp-hinges-move,.vp-esc,.vp-door,.vp-handle-pivot{z-index:1}.vp-frame{transition:filter var(--vp-push-ms) var(--vp-camera-ease)}.vp-stage.is-pushing .vp-frame{filter:blur(var(--vp-blur))}.vp-flash{position:absolute;inset:0;pointer-events:none;z-index:9;background:var(--color-bg, #FAF7F2);opacity:0;transition:opacity var(--vp-flash-in-ms) var(--vp-camera-ease) var(--vp-flash-delay)}.vp-stage.is-pushing .vp-flash{opacity:1}.vp-hint{position:absolute;left:50%;bottom:72px;transform:translate(-50%);z-index:7;font-family:var(--font-display, "齐伋体", serif);font-size:30px;color:var(--color-text, #3B2F2F);letter-spacing:.3em;text-indent:.3em;white-space:nowrap;pointer-events:none;opacity:.65;animation:vp-breathe 2.6s ease-in-out infinite}.vp-stage.is-open .vp-hint{opacity:0}@keyframes vp-breathe{0%,to{opacity:.35}50%{opacity:.75}}.vp-veil{position:absolute;inset:0;z-index:10;background:var(--color-bg, #FAF7F2);display:grid;place-items:center;transition:opacity .7s ease}.vp-veil.is-hidden{opacity:0;pointer-events:none}.vp-veil-text{font-family:var(--font-display, "齐伋体", serif);color:var(--color-text-soft, #6B5F4F);letter-spacing:.5em;font-size:34px;text-indent:.5em;opacity:.85}.vp-stage{--vp-rest-deg: 22deg;--vp-open-deg: 100deg;--vp-swing-ms: 1s;--vp-swing-ease: cubic-bezier(.32, 1.18, .42, 1);--vp-handle-deg: -33deg;--vp-handle-ms: .34s;--vp-press-lead: .32s;--vp-push-ms: 2.2s;--vp-camera-ease: cubic-bezier(.65, 0, .7, 1);--vp-flash-delay: 1s;--vp-flash-in-ms: .45s;--vp-push-scale: 1.6;--vp-blur: 2px}@media(prefers-reduced-motion:reduce){.vp-camera,.vp-plate,.vp-handle-pivot,.vp-frame,.vp-flash,.vp-veil{transition-duration:1ms!important}.vp-hint{animation:none;opacity:.6}}.screen-1-door{position:relative;width:100%;height:100vh;background:var(--color-bg, #FAF7F2);overflow:hidden}.screen-1-door__stage{position:absolute;inset:0;will-change:transform}html,body{height:100%;overflow:hidden}.scroll-canvas-invitation{position:relative;width:100%;height:100%;background:var(--color-bg, #FAF7F2)}.scroll-canvas-scroller{height:100vh;height:100dvh}.screen-canvas-screen{position:relative;width:100%;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-bg, #FAF7F2)}.screen-text{max-width:80vw;text-align:left;font-family:var(--font-body, "汇文明朝体", serif);color:var(--color-text, #3B2F2F);opacity:0;transform:translateY(24px)}.screen-text .screen-title{font-family:var(--font-display, "齐伋体", serif);font-size:32px;font-weight:400;margin:0 0 16px;color:var(--color-text-deep, #1A1717)}.screen-text .screen-meta{font-size:14px;color:var(--color-text-soft, #6B5F4F);margin:8px 0;letter-spacing:.05em}.screen-text .screen-note{font-size:12px;color:var(--color-accent, #B8624A);margin-top:24px;opacity:.6}.screen-text--center{text-align:center;margin:0 auto}.screen-text--center .screen-invite-names{font-family:var(--font-display, "齐伋体", serif);font-size:clamp(48px,9vw,72px);font-weight:700;margin:0 0 24px;color:var(--color-text-deep, #1A1717);letter-spacing:.1em}.screen-text--center .screen-invite-date{font-family:var(--font-body, "汇文明朝体", serif);font-size:clamp(20px,3.5vw,28px);margin:0 0 16px;color:var(--color-text, #3B2F2F)}.screen-text--center .screen-invite-venue{font-family:var(--font-body, "汇文明朝体", serif);font-size:14px;color:var(--color-text-soft, #6B5F4F);margin:0;opacity:.7}.screen-rsvp-placeholder{margin-top:32px;padding:16px 20px;border:1px dashed rgba(59,47,47,.18);border-radius:0;font-size:13px;color:var(--color-text-soft, #6B5F4F);line-height:1.8;text-align:center}.interview-shell{--ink: #232624;--muted: #66706a;--faint: #8b938d;--canvas: #f2f3f0;--panel: #fbfbf9;--soft: #e7ebe7;--line: rgba(35, 38, 36, .16);--accent: #b34e45;min-height:100vh;min-height:100dvh;padding:26px max(22px,5vw) 22px;background:var(--canvas);color:var(--ink);position:relative;overflow:hidden;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}.interview-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(35,38,36,.07) 1px,transparent 1px);background-size:100% 42px;mask-image:linear-gradient(to bottom,black,transparent 70%)}.interview-shell>*{position:relative;z-index:1}.eyebrow,.section-kicker{margin:0 0 13px;color:var(--faint);font:10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em}.interview-shell h1,.summary-card h2{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-weight:500;letter-spacing:-.035em}.launcher h1{font-family:"Noto Serif SC",Songti SC,serif;font-weight:500;letter-spacing:-.045em}.launcher .intro{font-family:"Noto Serif SC",Songti SC,serif;font-weight:400;letter-spacing:.01em}.tool-header{display:flex;justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto}.tool-brand{display:flex;align-items:center;gap:10px;color:var(--muted);font:10px ui-monospace,monospace;letter-spacing:.1em}.brand-dot{width:7px;height:7px;background:var(--accent)}.tool-index{color:var(--faint);font:10px ui-monospace,monospace;letter-spacing:.13em}.header-status{display:flex;align-items:center;gap:16px}.stage-pill{padding:6px 9px;border:1px solid rgba(179,78,69,.45);color:var(--accent);font-size:10px;letter-spacing:.08em;white-space:nowrap}.project-label{max-width:200px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.launcher{display:flex;flex-direction:column}.launcher-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:center;gap:clamp(34px,7vw,92px);width:min(1120px,100%);margin:auto;padding:7vh 0 5vh}.launcher-content{max-width:590px;animation:rise-in .7s var(--ease-out-expo) both}.launcher h1{max-width:590px;margin:0;font-size:clamp(2.5rem,5.2vw,5.6rem);line-height:1.12;text-wrap:balance}.launcher h1 em{display:inline-block;color:var(--accent);font-style:normal}.intro{max-width:500px;margin:24px 0;color:var(--muted);font-size:16px;line-height:1.7}.launcher-meta{display:flex;flex-wrap:wrap;gap:9px 20px;color:var(--faint);font-size:11px}.launcher-meta span:before{content:"/";margin-right:8px;color:var(--accent)}.start-sheet{padding:23px;border:1px solid var(--line);background:var(--panel);box-shadow:12px 12px #23262414;animation:rise-in .8s .1s var(--ease-out-expo) both}.sheet-top,.chat-panel-head{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font:10px ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase}.sheet-top{padding-bottom:20px;border-bottom:1px solid var(--line)}.launcher-field{display:grid;gap:10px;margin:25px 0 20px;color:var(--muted);font-size:12px}.composer textarea,.launcher-field input{width:100%;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:14px 15px;outline:none;font:inherit}.launcher-field input{font-size:14px}.composer textarea:focus,.launcher-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b34e451f}.primary-action,.secondary-action,.send-button{min-height:46px;border:1px solid var(--ink);border-radius:0;padding:0 17px;cursor:pointer;font:inherit;font-size:12px;letter-spacing:.03em;transition:background .22s ease,border-color .22s ease,transform .22s ease}.primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--ink);color:#fff}.primary-action:hover:not(:disabled),.send-button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.primary-action b{font-size:17px;font-weight:400}.start-sheet .primary-action{width:100%}.sheet-note{display:grid;grid-template-columns:30px 1fr;gap:10px;margin-top:32px;padding-top:18px;border-top:1px solid var(--line)}.note-number{color:var(--accent);font:11px ui-monospace,monospace}.sheet-note p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.tool-footer{display:flex;justify-content:space-between;max-width:1280px;margin:auto 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--faint);font:9px ui-monospace,monospace;letter-spacing:.12em}.creator-page{min-height:100dvh}.creator-sheet{width:min(720px,100%);margin:clamp(46px,10vh,110px) auto;padding:clamp(24px,5vw,52px);border:1px solid var(--line);background:var(--panel);box-shadow:12px 12px #23262414}.creator-sheet h1{margin:34px 0 14px;font-family:"Noto Serif SC",Songti SC,serif;font-size:clamp(2.2rem,6vw,4.4rem);font-weight:500;line-height:1.15;letter-spacing:-.05em}.creator-sheet h1 em{color:var(--accent);font-style:normal}.creator-intro{max-width:560px;margin:0 0 30px;color:var(--muted);font-size:14px;line-height:1.8}.creator-form{display:grid;gap:18px}.creator-form label{display:grid;gap:8px;color:var(--muted);font-size:12px}.creator-form input,.creator-form textarea{width:100%;border:1px solid var(--line);border-radius:0;padding:12px;background:#fff;color:var(--ink);outline:none;font:inherit;line-height:1.6;resize:vertical}.creator-form input:focus,.creator-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b34e451a}.creator-form .primary-action{width:100%}.creator-result{display:grid;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.creator-result a{overflow-wrap:anywhere;color:var(--ink)}.creator-result button{width:max-content;border:1px solid var(--line);padding:8px 12px;cursor:pointer;background:#fff;color:var(--muted);font:inherit}.questionnaire-form{display:grid;gap:18px;margin-top:24px}.questionnaire-intro{display:grid;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--line)}.questionnaire-intro span,.questionnaire-form legend{color:var(--faint);font:10px ui-monospace,monospace;letter-spacing:.12em}.questionnaire-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.questionnaire-form label{display:grid;gap:8px;color:var(--muted);font-size:12px}.questionnaire-form input,.questionnaire-form textarea{width:100%;border:1px solid var(--line);border-radius:0;padding:11px 12px;background:#fff;color:var(--ink);outline:none;font:inherit;font-size:13px;line-height:1.5;resize:vertical}.questionnaire-form input:focus,.questionnaire-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b34e451a}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.questionnaire-form fieldset{display:grid;gap:10px;min-width:0;margin:0;padding:0;border:0}.questionnaire-form legend{margin-bottom:1px}.choice-grid{display:flex;flex-wrap:wrap;gap:7px}.choice-grid button{min-height:34px;border:1px solid var(--line);border-radius:17px;padding:0 11px;cursor:pointer;background:#fff;color:var(--muted);font:inherit;font-size:12px}.choice-grid button.selected{border-color:var(--accent);background:#b34e4514;color:var(--accent)}.questionnaire-submit{width:100%;margin-top:4px}.interview-page{padding-top:26px}.interview-title{width:min(1280px,100%);margin:7vh auto 32px}.interview-title h1{margin:0 0 10px;font-size:clamp(2.5rem,5vw,5.2rem);line-height:1.06}.interview-title>p:last-child{margin:0;color:var(--muted);font-size:14px}.progress-line{width:min(1280px,100%);height:1px;margin:0 auto 26px;background:var(--line)}.progress-line span{display:block;height:2px;margin-top:-1px;background:var(--accent);transition:width .6s var(--ease-out-expo)}.interview-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:22px;width:min(1280px,100%);margin:0 auto}.chat-panel{display:flex;flex-direction:column;min-height:600px;border:1px solid var(--line);background:var(--panel)}.chat-panel-head{padding:14px 18px;border-bottom:1px solid var(--line)}.chat-stream{flex:1;padding:30px clamp(18px,5vw,62px);overflow:auto}.message-row{display:flex;gap:11px;margin:0 0 26px;animation:rise-in .4s var(--ease-out-expo) both}.message-row-user{justify-content:flex-end}.message-avatar{display:grid;flex:0 0 24px;place-items:center;width:24px;height:24px;margin-top:20px;border:1px solid var(--accent);color:var(--accent);font:11px sans-serif}.message-author{margin:0 0 6px;color:var(--faint);font:9px ui-monospace,monospace;letter-spacing:.12em}.message-row-user .message-author{text-align:right}.message-bubble{max-width:min(82%,620px);padding:14px 17px;background:var(--soft);line-height:1.75;white-space:pre-wrap}.message-row-user .message-bubble{background:var(--ink);color:#fff}.starter-prompts{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:0 16px 13px}.starter-prompts span{width:100%;color:var(--faint);font-size:11px}.starter-prompts button{border:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted);padding:7px 9px;cursor:pointer;font-family:inherit;font-size:11px}.starter-prompts button:hover{border-color:var(--accent);color:var(--accent)}.composer{display:flex;gap:10px;align-items:end;padding:14px;border-top:1px solid var(--line);background:#f7f8f6}.composer textarea{min-height:50px;resize:vertical}.send-button{flex:0 0 auto;background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.45;cursor:wait}.summary-card{position:sticky;top:18px;align-self:start;padding:24px 21px;border:1px solid var(--line);border-top:2px solid var(--accent);background:var(--panel)}.summary-head{display:flex;justify-content:space-between;gap:10px}.summary-card h2{margin:0 0 10px;font-size:27px;line-height:1.15}.summary-status{display:flex;align-items:center;gap:5px;color:var(--accent);font:9px ui-monospace,monospace}.summary-status i{width:5px;height:5px;background:var(--accent)}.summary-intro{margin:0 0 22px;color:var(--muted);font-size:12px;line-height:1.7}.read-section{margin-top:22px}.read-title{display:flex;align-items:baseline;gap:9px;padding-bottom:8px;border-bottom:1px solid var(--line)}.read-title>span{color:var(--accent);font:10px ui-monospace,monospace}.read-title h3{margin:0;font-size:15px;font-weight:500}.read-title small{margin-left:6px;color:var(--faint);font:9px ui-monospace,monospace;letter-spacing:.1em}.summary-card dl{margin:0}.read-row{display:grid;grid-template-columns:76px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid rgba(35,38,36,.09)}.summary-card dt{color:var(--faint);font-size:11px}.summary-card dd{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.empty-read{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start;padding:18px 0;color:var(--muted)}.empty-read span{color:var(--accent);font-size:18px}.empty-read p{margin:0;font-size:13px;line-height:1.7}.summary-actions{display:flex;gap:9px;margin-top:25px}.secondary-action{border-color:var(--line);background:transparent;color:var(--muted)}.summary-card .primary-action{width:100%;margin-top:14px}.summary-actions .primary-action{margin-top:0}.conflict,.error-text{color:var(--accent);font-size:12px;line-height:1.5}.loading-state{display:grid;place-items:center}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.interview-shell{padding-left:28px;padding-right:28px}.launcher-grid{grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:30px;width:min(900px,100%);padding:6vh 0 5vh}.launcher h1{font-size:clamp(2.5rem,5.8vw,4.6rem)}.intro{font-size:15px}.interview-layout{grid-template-columns:minmax(0,1.18fr) minmax(250px,.82fr);gap:16px}.chat-stream{padding-left:28px;padding-right:28px}.summary-card{padding:21px 17px}}@media(max-width:760px){.interview-shell{padding:22px 15px 18px}.launcher-grid{grid-template-columns:1fr;gap:34px;padding:7vh 0 6vh}.launcher-content{margin-bottom:0}.launcher h1{max-width:100%;font-size:clamp(2.3rem,10.5vw,3.4rem);line-height:1.13}.intro{margin:20px 0 18px;font-size:15px;line-height:1.7}.launcher-meta{gap:8px 13px}.start-sheet{box-shadow:8px 8px #23262414}.tool-footer{gap:10px;flex-direction:column}.header-status{justify-content:space-between;margin-top:17px}.interview-title{margin:7vh auto 25px}.interview-title h1{font-size:40px}.interview-title>p:last-child{font-size:13px}.interview-layout{grid-template-columns:1fr}.chat-panel{min-height:560px}.summary-card{position:static}.message-bubble{max-width:90%}.composer{align-items:stretch;flex-direction:column}.send-button{width:100%}.summary-actions{flex-direction:column}}@media(max-width:420px){.tool-header{align-items:flex-start}.tool-index{display:none}.launcher h1{font-size:clamp(2.15rem,10.2vw,2.7rem)}.interview-title h1{font-size:36px}.chat-stream{padding:24px 16px}.read-row{grid-template-columns:64px 1fr}}.interview-page{--ink: #252525;--muted: #6f7073;--faint: #9b9da1;--canvas: #fff;--panel: #fff;--soft: #f5f6f7;--line: #e7e7e8;--accent: #252525;padding:0 20px;background:var(--canvas);overflow:visible}.interview-page:before{display:none}.interview-page .tool-header{width:min(900px,100%);height:64px;border-bottom:1px solid var(--line)}.interview-page .tool-brand{color:var(--ink);font-size:10px;letter-spacing:.14em}.interview-page .brand-dot{width:5px;height:5px;background:var(--ink)}.interview-page .project-label{max-width:220px;color:var(--faint);font-size:12px}.interview-page .header-context{display:flex;align-items:center;gap:14px}.interview-page .interview-phase{color:var(--muted);font-size:11px}.interview-page .interview-layout{display:block;width:min(900px,100%);margin:0 auto}.interview-page .chat-panel{min-height:0;border:0;background:transparent}.interview-page .chat-stream{flex:none;padding:58px 28px 120px;overflow:visible}.interview-page .message-row,.interview-page .starter-prompts{width:min(700px,100%);margin-right:auto;margin-left:auto}.interview-page .message-row{gap:12px;margin-bottom:30px}.interview-page .message-avatar{flex-basis:22px;width:22px;height:22px;margin-top:24px;border:0;color:var(--ink);font-size:10px}.interview-page .message-author{margin-bottom:7px;color:var(--faint);font-size:9px;letter-spacing:.14em}.interview-page .message-bubble{max-width:min(640px,88%);padding:0;background:transparent;color:var(--ink);font-size:16px;line-height:1.8}.interview-page .message-row-user .message-bubble{padding:12px 16px;border-radius:18px;background:var(--soft);color:var(--ink)}.interview-page .message-row-user .message-author{color:var(--faint)}.interview-page .markdown-body{overflow-wrap:anywhere}.interview-page .markdown-body>:first-child{margin-top:0}.interview-page .markdown-body>:last-child{margin-bottom:0}.interview-page .markdown-body p{margin:0 0 14px}.interview-page .markdown-body h1,.interview-page .markdown-body h2,.interview-page .markdown-body h3{margin:22px 0 10px;font-family:inherit;font-size:1em;font-weight:600;line-height:1.5;letter-spacing:0}.interview-page .markdown-body ul,.interview-page .markdown-body ol{margin:10px 0 16px;padding-left:1.35em}.interview-page .markdown-body li{margin:6px 0;padding-left:3px}.interview-page .markdown-body blockquote{margin:14px 0;padding:2px 0 2px 14px;border-left:2px solid #d9dbde;color:var(--muted)}.interview-page .markdown-body code{padding:2px 5px;border-radius:4px;background:#f1f2f3;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}.interview-page .markdown-body pre{margin:14px 0;padding:13px 15px;overflow-x:auto;border-radius:8px;background:#f1f2f3}.interview-page .markdown-body pre code{padding:0;background:transparent}.interview-page .markdown-body a{color:inherit;text-decoration:underline;text-underline-offset:3px}.interview-page .starter-prompts{gap:8px;padding:8px 0 26px 34px}.interview-page .starter-prompts span{margin-bottom:3px;color:var(--faint)}.interview-page .starter-prompts button{border-color:var(--line);border-radius:16px;padding:8px 12px;color:var(--muted);background:#fff}.interview-page .starter-prompts button:hover{border-color:var(--ink);color:var(--ink)}.interview-page .composer{position:sticky;bottom:16px;z-index:3;align-items:end;gap:8px;margin-top:12px;padding:8px;border:1px solid #dedfe1;border-radius:14px;background:#fffffff5;box-shadow:0 4px 18px #0000000f}.interview-page .composer textarea{min-height:42px;max-height:160px;padding:10px 11px;border:0;background:transparent;font-size:15px;line-height:1.5}.interview-page .composer textarea:focus{box-shadow:none}.interview-page .send-button{min-height:38px;border:0;border-radius:10px;padding:0 14px;background:var(--ink);font-size:12px}.interview-page .chat-actions{display:flex;gap:8px;margin:20px 0 12px 34px}.interview-page .chat-action,.interview-page .chat-actions button{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 13px;cursor:pointer;font:inherit;font-size:12px}.interview-page .chat-actions .primary-action{border-color:var(--ink);background:var(--ink);color:#fff}.interview-page .chat-actions .secondary-action{background:#fff;color:var(--muted)}.interview-page .chat-action{display:flex;align-items:center;justify-content:space-between;width:min(640px,100% - 34px);margin:18px 0 16px 34px;background:var(--ink);color:#fff}.interview-page .error-text{margin:10px 0 0 34px}.interview-page .suggestion-dock{width:min(600px,100%);margin:0 auto 8px;padding:10px 0 2px;animation:suggestion-in .24s ease-out both}.interview-page .suggestion-dock>span{display:block;margin:0 0 8px 2px;color:var(--faint);font-size:11px}.interview-page .suggestion-dock>div{display:flex;flex-wrap:wrap;gap:8px}.interview-page .suggestion-dock button{min-height:36px;border:1px solid #dfe1e4;border-radius:18px;padding:0 13px;cursor:pointer;background:#fff;color:var(--muted);font:inherit;font-size:12px;transition:border-color .18s ease,color .18s ease,background .18s ease}.interview-page .suggestion-dock button:hover:not(:disabled){border-color:var(--ink);background:#f8f8f8;color:var(--ink)}.interview-page .suggestion-dock button:disabled{cursor:wait;opacity:.48}@keyframes suggestion-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.interview-page{padding:0 16px}.interview-page .tool-header{height:58px}.interview-page .header-context{gap:8px}.interview-page .interview-phase{display:none}.interview-page .chat-stream{padding:42px 0 120px}.interview-page .message-row,.interview-page .starter-prompts{width:100%}.interview-page .composer{width:100%;margin-left:0}.interview-page .message-bubble{max-width:92%;font-size:15px}.interview-page .composer{bottom:10px}.interview-page .chat-actions{margin-left:0;flex-wrap:wrap}.interview-page .chat-action,.interview-page .error-text{margin-left:0}.interview-page .suggestion-dock{width:100%}.form-grid{grid-template-columns:1fr}}.interview-page .composer{isolation:isolate;position:fixed;z-index:20;right:50%;bottom:24px;display:flex;flex-direction:row;align-items:flex-end;min-height:56px;padding:7px 8px 7px 14px;border:1px solid #dfe1e4;border-radius:18px;background:#fff;box-shadow:0 5px 20px #1e202312}.interview-page .composer{transform:translate(50%)}.interview-page .composer:before{content:"";position:absolute;z-index:-1;top:calc(100% - 1px);right:-100vw;bottom:auto;left:-100vw;height:120px;background:#fff}.interview-page .composer:focus-within{border-color:#bfc2c6;box-shadow:0 5px 20px #1e202317}.interview-page .composer{width:min(600px,100%);margin-right:auto;margin-left:auto}.interview-page .composer textarea{flex:1;width:auto;min-width:0;min-height:40px;max-height:120px;margin:0;padding:9px 4px;resize:none;overflow-y:auto;overflow-wrap:anywhere;font-size:15px}.interview-page .composer textarea::placeholder{color:#a4a7ab}.interview-page .send-button{display:grid;flex:0 0 38px;place-items:center;width:38px;height:38px;min-height:38px;margin-left:7px;padding:0;border-radius:50%;background:#242628;font-size:20px;line-height:1}.interview-page .send-button:disabled{background:#d8dade;opacity:1}.interview-page .send-button:hover:not(:disabled){background:#45484b;transform:none}.interview-page .send-button span{transform:translateY(-1px)}@media(max-width:760px){.interview-page .composer{right:16px;left:16px;width:auto;margin:0;transform:none;bottom:12px;align-items:flex-end;flex-direction:row;padding-left:12px}.interview-page .composer textarea{min-height:38px}.interview-page .send-button{width:36px;height:36px;flex-basis:36px;min-height:36px}}.mint-night-text{position:fixed;inset:0;pointer-events:none;z-index:2;display:block}.mint-night{position:fixed;inset:0;background:#e8f1ec;overflow:hidden}.mint-night__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;pointer-events:none;z-index:0;user-select:none;-webkit-user-drag:none}.mint-night__stage{position:absolute;inset:0;z-index:2}.mint-night__meta{position:fixed;bottom:env(safe-area-inset-bottom,0);left:0;right:0;z-index:10;padding:14px 16px 18px;font-size:clamp(10px,.7vw,12px);line-height:1.5;font-family:var(--font-body);color:#2d37328c;letter-spacing:.25em;text-align:center;pointer-events:none}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@supports (-webkit-touch-callout: none){body{min-height:-webkit-fill-available}}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0;margin:0}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}:root{--color-bg: #FAF7F2;--color-bg-soft: #F4ECD8;--color-text: #3B2F2F;--color-text-soft: #6B5F4F;--color-text-deep: #1A1717;--color-accent: #B8624A;--color-accent-deep: #8B3A3A;--color-line: rgba(59, 47, 47, .12);--font-display: "齐伋体", "汇文明朝体", serif;--font-body: "汇文明朝体", "思源宋体 SC", serif;--font-numeric: "Playfair Display", serif;--font-handwritten: "沐瑶软笔手写体", "Caveat", cursive;--text-xs: clamp(.7rem, .65rem + .2vw, .8rem);--text-sm: clamp(.8rem, .75rem + .3vw, .95rem);--text-base: clamp(.95rem, .9rem + .3vw, 1.1rem);--text-lg: clamp(1.15rem, 1rem + .6vw, 1.4rem);--text-xl: clamp(1.4rem, 1.1rem + 1.2vw, 2rem);--text-2xl: clamp(1.8rem, 1.4rem + 1.8vw, 2.8rem);--text-3xl: clamp(2.4rem, 1.6rem + 3.2vw, 4.2rem);--text-display: clamp(3rem, 2rem + 5vw, 6rem);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 128px;--space-section: clamp(4rem, 3rem + 5vw, 10rem);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out-quart: cubic-bezier(.76, 0, .24, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-scroll: cubic-bezier(.4, 0, .2, 1);--duration-fast: .2s;--duration-normal: .3s;--duration-slow: .8s;--duration-glacial: 2.4s;--design-variance: 3;--motion-intensity: 2;--visual-density: 2;--z-base: 1;--z-elevated: 10;--z-overlay: 100;--z-modal: 1000;--shadow-soft: 0 1px 2px rgba(0, 0, 0, .04);--shadow-elevated: 0 1px 2px rgba(0, 0, 0, .04)}@font-face{font-family:Huiwen Mincho;src:url(/fonts/huiwenmincho-improved.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;letter-spacing:.02em;overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--scroll-canvas-screen-height: 100vh;--scroll-canvas-total-screens: 8;--scroll-canvas-total-height: calc(var(--scroll-canvas-screen-height) * var(--scroll-canvas-total-screens))}.branch-path{stroke-dasharray:5000;stroke-dashoffset:5000;will-change:stroke-dashoffset}.candle-flame{opacity:0;will-change:opacity;transform-origin:center bottom}.candle-ignited .candle-flame{opacity:1;transition:opacity .3s ease-out}.invitation-finale{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg, #FAF7F2);pointer-events:auto;opacity:0;transition:opacity .5s ease-out}.invitation-finale--visible{opacity:1}.invitation-finale__couple-names{font-family:var(--font-display, "齐伋体", serif);font-size:clamp(2.5rem,6vw,4.5rem);color:var(--color-text-deep, #1A1717);margin:0;font-weight:700;letter-spacing:.05em}.invitation-finale__wedding-date{font-family:var(--font-body, "汇文明朝体", serif);font-size:clamp(1.25rem,3vw,2rem);color:var(--color-text, #3B2F2F);margin:1rem 0 .5rem}.invitation-finale__venue{font-family:var(--font-body, "汇文明朝体", serif);font-size:.875rem;color:var(--color-text-soft, #6B5F4F);opacity:.6;margin:0}.invitation-finale__rsvp-cta{font-family:var(--font-body, "汇文明朝体", serif);font-size:1rem;color:var(--color-accent, #B8624A);background:transparent;border:1px solid var(--color-accent, #B8624A);padding:.5rem 1.5rem;border-radius:0;cursor:pointer;margin-top:2rem;transition:opacity .2s ease}.invitation-finale__rsvp-cta:hover{opacity:.7}body.candle-warmth{filter:hue-rotate(-5deg) saturate(1.05);transition:filter .8s ease-out}.screen-text{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}.screen-text--visible{opacity:1;transform:translateY(0)}.leaf-overlay{position:fixed;inset:0;pointer-events:none;z-index:5}@media(max-width:768px){.invitation-finale__couple-names{font-size:clamp(2rem,8vw,3rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.branch-path{stroke-dashoffset:0!important}.candle-flame{opacity:1!important}}
