:root{--navy:#16294a;--navy-2:#1e3560;--navy-3:#2e4468;--gold:#e2b04a;--gold-2:#f0c66a;--gold-ink:#8a5a0b;--cream:#fbefd0;--paper:#f3f2ef;--card:#fbfbf8;--line:#e2e2dc;--ink:#1c2a44;--muted:#5e6b7e;--mist:#e3e8f1;--danger:#b4372f;--ok:#2f7a4a;--serif:"Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", serif;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius:10px;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.75}h1,h2,h3{margin:0 0 .5em;line-height:1.3}p{margin:0 0 .8em}a{color:inherit}button{font:inherit;color:inherit}img{max-width:100%}.display{font-family:var(--serif);letter-spacing:.01em;font-size:clamp(2.2rem,7vw,4.4rem);font-weight:900}.title{font-family:var(--serif);font-size:clamp(1.6rem,4.4vw,2.4rem);font-weight:900}.eyebrow{letter-spacing:.2em;color:var(--gold);margin-bottom:.6em;font-size:.85rem;font-weight:700}.eyebrow.dark{color:var(--gold-ink)}.lead{max-width:34em;font-size:1.12rem}.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}.mono{font-family:var(--mono);font-size:.85em}.break{word-break:break-all}.prewrap{white-space:pre-wrap}.fineprint{color:var(--muted);margin-top:1.4em;font-size:.82rem}.btn{cursor:pointer;min-height:48px;transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4em;padding:0 1.5em;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-gold{background:var(--gold);color:var(--navy);box-shadow:0 6px 24px -8px #e2b04ab3}.btn-gold:hover:not(:disabled){background:var(--gold-2);box-shadow:0 10px 30px -8px #e2b04ad9}.btn-ghost{color:#fff;border-color:#ffffff59}.btn-ghost:hover{border-color:#fff}.btn-ghost-dark{border-color:var(--line);color:var(--ink);background:#fff}.btn-ghost-dark:hover:not(:disabled){border-color:var(--ink)}.btn.block{width:100%}.link{color:var(--gold-ink);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.site-header,.admin-header{justify-content:space-between;align-items:center;padding:14px clamp(16px,5vw,56px);display:flex}.site-header.dark{z-index:5;color:#fff;position:absolute;inset:0 0 auto}.brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:linear-gradient(var(--gold) 0 0) 50% 0 / 6px 6px no-repeat, linear-gradient(var(--gold) 0 0) 50% 6px / 18px 6px no-repeat, linear-gradient(var(--mist) 0 0) 50% 13px / 18px 3px no-repeat;border-radius:2px;width:18px;height:18px}.brand-zh{font-family:var(--serif);font-size:1.15rem;font-weight:900}.nav-cta{border:1.5px solid;border-radius:999px;padding:6px 18px;font-weight:700;text-decoration:none}.dawn-sun{width:100%;height:auto;display:block;overflow:visible}.c-gold{fill:var(--gold)}.c-light{fill:var(--gold-2)}.c-core{fill:var(--cream)}.c-horizon{fill:var(--mist)}.c-reflect,.c-spark{fill:#9c8250}.c-water{fill:var(--navy-3)}.dawn-sun .sun-body{transition:transform .9s var(--ease)}.dawn-sun .reflect,.dawn-sun .sparks{transition:opacity .9s var(--ease)}.dawn-sun.auto .sun-body{animation:rise 2.6s var(--ease) .2s both}.dawn-sun.auto .reflect{animation:1.6s 1.4s both fade-in}.dawn-sun.auto .sparks rect{animation:3.2s ease-in-out infinite both twinkle}.dawn-sun.auto .sparks rect:nth-child(2n){animation-delay:.8s}.dawn-sun.auto .sparks rect:nth-child(3n){animation-delay:1.6s}.dawn-sun.auto .water rect{animation:4s ease-in-out infinite shimmer}.dawn-sun.auto .water rect:nth-child(odd){animation-delay:2s}@keyframes rise{0%{transform:translateY(6px)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:1}}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:1}}.hero{background:var(--navy);color:#fff;grid-template-columns:1.1fr 1fr;align-items:center;gap:4vw;min-height:min(100svh,860px);padding:120px clamp(20px,6vw,96px) 72px;display:grid;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#e2b04a47,#e2b04a00 62%);width:52vw;max-width:720px;height:52vw;max-height:720px;animation:6s ease-in-out infinite glow;position:absolute;top:38%;right:8%;transform:translate(10%,-50%)}@keyframes glow{0%,to{opacity:.7}50%{opacity:1}}.hero-text{z-index:1;position:relative}.hero .display em{color:var(--gold);font-style:normal}.hero .lead{color:#c9d3e4}.hero-actions{flex-wrap:wrap;gap:12px;margin:28px 0 18px;display:flex}.hero-meta{color:#8fa0bd;font-size:.9rem}.hero-sun{justify-self:center;max-width:560px;position:relative}.band{padding:clamp(56px,9vw,112px) clamp(20px,6vw,96px)}.band.alt{background:#eceae4}.band>.title{max-width:18em}.section-lead{max-width:40em;color:var(--muted);font-size:1.05rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}.card h3{font-family:var(--serif);font-size:1.25rem;font-weight:900}.card p:last-child{margin-bottom:0}.card.rule{border-left:4px solid var(--gold)}.steps{counter-reset:s;grid-template-columns:repeat(3,1fr);gap:18px;margin:32px 0 0;padding:0;list-style:none;display:grid}.step{transition:transform .3s var(--ease), box-shadow .3s var(--ease);position:relative}.step:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px #16294a73}.step-n{font-family:var(--serif);color:var(--gold-ink);margin-bottom:10px;font-size:2.2rem;font-weight:900;line-height:1;display:block}.timeline{grid-template-columns:repeat(4,1fr);gap:18px;margin:40px 0 0;padding:0;list-style:none;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(90deg, var(--navy-3), var(--gold));height:2px;position:absolute;top:7px;left:8px;right:8px}.timeline li{padding-top:34px;position:relative}.tl-dot{background:var(--navy-3);width:16px;height:16px;animation:light-up .6s var(--ease) both;animation-delay:calc(var(--i) * .35s + .3s);border-radius:2px;position:absolute;top:0;left:0}@keyframes light-up{to{background:var(--gold);box-shadow:0 0 0 6px #e2b04a33}}.tl-when{color:var(--gold-ink);margin-bottom:2px;font-size:.9rem;font-weight:700}.timeline h3{font-family:var(--serif);font-size:1.35rem;font-weight:900}.stats{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px;display:grid}.stat{border-left:4px solid var(--gold);padding:4px 0 4px 18px}.stat-n{font-family:var(--serif);color:var(--gold-ink);margin-bottom:8px;font-size:clamp(2rem,5vw,3rem);font-weight:900;line-height:1.1}.grid3{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;display:grid}.grid2{grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px;display:grid}.cta{background:var(--navy);color:#fff;text-align:center;padding:clamp(72px,10vw,128px) 24px}.cta p{color:#c9d3e4;max-width:30em;margin:0 auto 28px}.site-footer{background:var(--navy);color:#7c8cab;text-align:center;border-top:1px solid var(--navy-2);padding:24px;font-size:.85rem}.page{padding:24px clamp(16px,5vw,40px) 96px}.page.narrow{max-width:720px;margin:0 auto}.form{gap:22px;margin-top:28px;display:grid}.form-sec{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:16px;padding:22px clamp(16px,4vw,28px);display:grid}.form-sec h2{font-family:var(--serif);align-items:baseline;gap:10px;margin:0;font-size:1.3rem;font-weight:900;display:flex}.form-sec .count{font-family:var(--sans);color:var(--gold-ink);font-size:.9rem}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field-label{font-size:.95rem;font-weight:700}.field-label .opt{color:var(--muted);margin-left:6px;font-size:.8rem;font-style:normal;font-weight:400}.field-hint{color:var(--muted);font-size:.82rem}input[type=text],input[type=tel],input[type=email],input[type=date],input[type=password],input[type=search],textarea{width:100%;font:inherit;color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:8px;min-height:48px;padding:11px 14px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical}input:focus,textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #16294a1f}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line);cursor:pointer;transition:all .15s var(--ease);background:#fff;border-radius:999px;padding:8px 16px}.chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.check-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.check-card{text-align:left;cursor:pointer;border:1.5px solid var(--line);border-radius:var(--radius);transition:all .2s var(--ease);background:#fff;align-content:start;gap:2px;padding:14px 14px 14px 44px;display:grid;position:relative}.check-card strong{font-family:var(--serif);font-size:1.05rem}.check-card span:last-child{color:var(--muted);font-size:.85rem;line-height:1.5}.check-card .px{background:var(--mist);width:16px;height:16px;transition:all .25s var(--ease);border-radius:2px;position:absolute;top:18px;left:14px}.check-card.on{border-color:var(--gold);background:#fffaf0}.check-card.on .px{background:var(--gold);box-shadow:0 0 0 5px #e2b04a38}.form-error{color:var(--danger);background:#fbeceb;border-radius:8px;margin:0;padding:10px 14px}.sign-head{z-index:4;-webkit-backdrop-filter:blur(10px);text-align:center;background:#f3f2eff5;margin:0 -16px 8px;padding:10px 16px 8px;position:sticky;top:0}.sign-sun{max-width:128px;margin:0 auto 4px}.sign-head .c-water{fill:#c8d0dd}.pips{justify-content:center;gap:4px;margin-bottom:2px;display:flex}.pip{width:14px;height:6px;transition:background .4s var(--ease);background:#d5d9e0;border-radius:1px}.pip.lit{background:var(--gold)}.pip.now{background:var(--navy)}.sign-head p{margin:0}.intro{background:var(--mist);border-radius:var(--radius);padding:14px 18px;font-size:1.05rem}.chapter{animation:page-in .5s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.summary{background:var(--mist);border-left:4px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;gap:4px;margin:0 0 22px;padding:16px 18px;list-style:none;display:grid}.summary li{font-weight:700}.summary li:before{content:"要点 ";color:var(--gold-ink);letter-spacing:.1em;font-size:.78rem}.chapter-body h3{margin-top:1.4em;font-size:1.05rem}.chapter-body .li{padding-left:20px;position:relative}.chapter-body .li:before{content:"";background:var(--navy);width:7px;height:7px;position:absolute;top:.72em;left:2px}.chapter-body .note{border-top:3px solid var(--gold);background:#fff;border-radius:0 0 8px 8px;padding:12px 16px}.ack{cursor:pointer;border:1.5px solid var(--gold);border-radius:var(--radius);background:#fff;align-items:flex-start;gap:12px;margin:22px 0 6px;padding:14px 16px;font-weight:700;display:flex}.ack.optional{border-color:var(--line);margin-top:10px;font-weight:400}.ack input{width:22px;height:22px;accent-color:var(--navy);flex:none;margin-top:3px}.chapter .field{margin-top:16px}.sign-nav{padding:14px 0 calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--paper) 30%);justify-content:space-between;gap:10px;margin-top:18px;display:flex;position:sticky;bottom:0}.sign-nav .btn-gold{flex:1}.sigpad{border-radius:var(--radius);touch-action:none;background:#fff;border:1.5px dashed #b9c1cf;height:210px;margin-top:8px;position:relative}.sigpad canvas{touch-action:none;cursor:crosshair;z-index:1;width:100%;height:100%;position:absolute;inset:0}.sigpad-hint{color:#a3acbb;pointer-events:none;place-items:center;transition:opacity .2s;display:grid;position:absolute;inset:0}.sigpad.filled .sigpad-hint{opacity:0}.sigpad-line{pointer-events:none;border-bottom:1px solid #d5d9e0;position:absolute;bottom:48px;left:24px;right:24px}.sigpad-clear{z-index:2;position:absolute;bottom:10px;right:12px}.done{text-align:center;padding-top:24px}.done .dawn-sun{max-width:320px;margin:0 auto 24px}.done .lead{margin:0 auto 24px}.share{text-align:left;gap:10px;display:grid}.share-link{background:var(--mist);font-family:var(--mono);word-break:break-all;border-radius:8px;margin-bottom:8px;padding:10px 12px;font-size:.82rem;display:block}.admin-header{background:var(--navy);color:#fff}.admin{max-width:1180px;margin:0 auto;padding:28px clamp(16px,4vw,32px) 80px}.admin-top{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:16px;display:flex}.admin-top .title{flex:auto;margin:0}.search{max-width:280px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tab{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px}.tab.on{background:var(--navy);color:#fff;border-color:var(--navy)}.tab-n{opacity:.7;margin-left:8px;font-size:.8rem}.table{border-collapse:collapse;border-radius:var(--radius);border:1px solid var(--line);background:#fff;width:100%;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:12px 14px}.table th{background:var(--mist);color:var(--muted);font-size:.85rem;font-weight:700}.table tbody tr:hover{background:#fbfaf5}.table a{color:var(--navy);font-weight:700}.badge{white-space:nowrap;border-radius:999px;margin-left:4px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-block}.badge.submitted{color:var(--muted);background:#eef0f4}.badge.guardian_pending{color:var(--gold-ink);background:#fff3d6}.badge.signed{color:var(--ok);background:#e3f1e8}.badge.minor{color:var(--danger);background:#fbe9e7}.empty{text-align:center;color:var(--muted);padding:48px 0}.login{background:var(--navy);place-items:center;min-height:100svh;display:grid}.login .card{width:min(380px,100%)}.detail-grid{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}.detail-grid .card h2{font-family:var(--serif);font-size:1.25rem;font-weight:900}.kv{grid-template-columns:7em 1fr;gap:6px 12px;margin:0 0 16px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.sig-record{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.sig-record:first-of-type{border-top:0;margin-top:0;padding-top:0}.sig-role{font-weight:700}.sig-img{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-height:160px;margin-bottom:10px;display:block}@media (max-width:860px){.hero{text-align:left;grid-template-columns:minmax(0,1fr);padding-top:96px}.hero-sun{order:-1;max-width:360px}.hero:before{width:120vw;height:120vw;top:22%;right:50%;transform:translate(50%,-50%)}.steps,.stats,.grid3,.grid2,.detail-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr;gap:26px;padding-left:34px}.timeline:before{background:linear-gradient(var(--navy-3), var(--gold));width:2px;height:auto;inset:8px auto 8px 7px}.timeline li{padding-top:0}.tl-dot{top:6px;left:-34px}.search{max-width:none}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block}.table tr{border-bottom:1px solid var(--line);padding:10px 4px}.table td{border:0;gap:12px;padding:3px 12px;display:flex}.table td:before{content:attr(data-k);color:var(--muted);flex:none;width:3.5em;font-size:.85rem}}@media (max-width:520px){.check-grid{grid-template-columns:1fr}.sign-nav .btn-ghost-dark{padding:0 1em}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.admin-header,.print-hide{display:none!important}body{background:#fff}.detail-grid{grid-template-columns:1fr}.card{break-inside:avoid;border-color:#ccc}}.page .c-horizon{fill:#bcc6d6}.page .c-water{fill:#c8d0dd}.mission{text-align:center}.mission .display{color:var(--navy);margin-bottom:.6em}.mission blockquote{font-family:var(--serif);margin:0 auto 1.4em;font-size:1.25rem;font-weight:700}.mission blockquote p{margin:0}.mission cite{font-style:normal;font-family:var(--sans);color:var(--muted);font-size:.85rem}.mission .section-lead{margin:0 auto}.closing{margin-top:36px;font-size:1.08rem;font-weight:700}.project.next{border-style:dashed;border-color:var(--gold-ink);background:var(--mist)}.hero .display{font-size:clamp(2.1rem,5.4vw,3.8rem)}.hero .display .line{white-space:nowrap;display:block}
