:root{--navy: #144e8c;--navy-deep: #0f3a6b;--navy-soft: #1565a8;--paper: #eef3f8;--card: #ffffff;--ink: #1f3347;--muted: #64748b;--line: #d9e2ec;--gold: #ffa14e;--gold-soft: #ffe0bf;--seal: #e65100;--seal-dark: #bf360c;--st-proposed: #b45309;--st-proposed-bg: #fdf1e0;--st-processing: #1565a8;--st-processing-bg: #e3eef8;--st-signed: #15803d;--st-signed-bg: #e4f3ea;--st-expired: #6b7280;--st-expired-bg: #eceef1;--font-display: "Roboto", system-ui, sans-serif;--font-body: "Roboto", system-ui, sans-serif;--radius: 10px;--shadow-sm: 0 1px 2px rgba(20, 78, 140, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer}input,select,textarea{font-family:var(--font-body);font-size:13.5px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--navy)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.cc-tag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.06em;padding:1px 5px;border-radius:4px;background:var(--paper);border:1px solid var(--line);color:var(--muted);vertical-align:1px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-soft) 100%);color:#fff;display:flex;align-items:center;gap:20px;padding:0 20px;height:52px;position:sticky;top:0;z-index:50;box-shadow:0 1px #ffffff0f inset}.brand{display:flex;align-items:center;gap:10px}.brand-logo{height:30px;width:auto;display:block}.brand-name{font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:-.01em;color:#fff}.brand-name .accent{color:var(--gold)}.brand-sub{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#a8c4de}.nav{display:flex;gap:2px;margin-left:auto}.nav a{padding:6px 12px;border-radius:7px;font-size:13px;font-weight:500;color:#c9d6e2}.nav a:hover{background:var(--navy-soft);color:#fff}.nav a.active{background:var(--navy-soft);color:var(--gold);font-weight:600}.userchip{display:flex;align-items:center;gap:10px;font-size:12.5px;color:#c9d6e2}.userchip button{background:none;border:1px solid #4a77a8;color:#d6e5f2;padding:4px 10px;border-radius:6px;font-size:12px}.userchip button:hover{border-color:var(--gold);color:var(--gold)}.content{flex:1;max-width:1240px;width:100%;margin:0 auto;padding:20px 20px 48px}.page-title{font-size:21px;font-weight:700;margin:0 0 2px}.page-sub{color:var(--muted);font-size:13px;margin:0 0 16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}a.card:hover{box-shadow:0 6px 20px #0e2a471f;transform:translateY(-1px);border-color:#b9c6d4}.logo-badge{width:44px;height:44px;border-radius:9px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--navy);overflow:hidden;flex-shrink:0}.logo-badge img{width:100%;height:100%;object-fit:contain}.logo-badge.logo-lg{width:56px;height:56px;background:#fff;padding:4px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.01em;padding:2px 9px;border-radius:999px}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.proposed{color:var(--st-proposed);background:var(--st-proposed-bg)}.badge.processing{color:var(--st-processing);background:var(--st-processing-bg)}.badge.signed{color:var(--st-signed);background:var(--st-signed-bg)}.badge.expired{color:var(--st-expired);background:var(--st-expired-bg)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filters input[type=search]{min-width:220px;flex:1}.btn{border:none;border-radius:8px;padding:8px 15px;font-size:13px;font-weight:600;background:var(--navy);color:#fff}.btn:hover{background:var(--navy-soft)}.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink)}.btn.ghost:hover{border-color:var(--navy)}.btn:disabled{opacity:.5;cursor:not-allowed}.seal-btn{border:none;background:var(--seal);color:#fff;font-weight:700;font-size:12.5px;letter-spacing:.07em;padding:9px 18px;border-radius:8px;box-shadow:inset 0 0 0 1.5px #ffffff59,inset 0 0 0 3px var(--seal);transition:transform .1s ease,background .15s ease}.seal-btn:hover{background:var(--seal-dark)}.seal-btn:active{transform:scale(.97)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#081b3099;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--card);border-radius:14px;padding:26px;max-width:420px;width:100%;text-align:center;box-shadow:0 20px 60px #081b3059}.modal h3{font-size:18px;margin:0 0 10px}.modal p{color:var(--muted);font-size:13.5px;margin:0 0 20px}.modal .actions{display:flex;gap:10px;justify-content:center}.ceremony{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:radial-gradient(ellipse at 50% 35%,var(--navy-soft) 0%,var(--navy-deep) 70%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;overflow:hidden}.ceremony canvas{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ceremony .kicker{font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;animation:rise .6s ease both}.ceremony h1{font-weight:800;font-size:clamp(28px,5vw,50px);margin:0 0 26px;animation:rise .6s .15s ease both}.ceremony .pair,.stage-moment .pair{display:flex;align-items:center;gap:24px;margin-bottom:26px;animation:rise .6s .3s ease both}.ceremony .emblem,.stage-moment .emblem{width:88px;height:88px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:26px;border:3px solid var(--gold);overflow:hidden}.ceremony .emblem img,.stage-moment .emblem img{width:100%;height:100%;object-fit:contain;background:#fff}.ceremony .link-line,.stage-moment .link-line{width:clamp(60px,12vw,130px);height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);position:relative;animation:draw 1s .5s ease both;transform-origin:center}.ceremony .link-line:after,.stage-moment .link-line:after{content:"✕";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--gold);font-size:14px}.ceremony .names,.stage-moment .names{font-family:var(--font-display);font-weight:700;font-size:clamp(17px,3vw,26px);margin-bottom:12px;animation:rise .6s .45s ease both}.ceremony .blessing,.stage-moment .blessing{max-width:500px;color:#b9c8d8;font-size:14px;margin-bottom:30px;animation:rise .6s .6s ease both}.ceremony .btn-continue{background:var(--gold);color:var(--navy-deep);border:none;border-radius:999px;font-weight:700;letter-spacing:.08em;font-size:13px;padding:12px 36px;animation:rise .6s .75s ease both}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.wall-hero{background:radial-gradient(ellipse at 50% 30%,var(--navy-soft) 0%,var(--navy-deep) 75%);color:#fff;padding:8px;margin-bottom:14px;position:relative;overflow:hidden}.wall-hero-bleed{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:-20px;border-radius:0}.wall-hero:fullscreen{display:flex;align-items:center;justify-content:center;padding:0;margin:0}.wall-hero:fullscreen .wall-svg{max-height:100vh;width:100%}.wall-svg{display:block;width:100%;height:auto;max-width:1280px;margin:0 auto}.fs-btn{position:absolute;top:14px;right:16px;z-index:6;background:#ffffff1f;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fs-btn:hover{background:#ffffff38;border-color:var(--gold)}.hero-celebrate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:radial-gradient(ellipse at 50% 35%,#1565a8f7,#0f3a6bfb 75%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:20px;animation:rise .4s ease both}.hero-celebrate .kicker{font-size:13px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;animation:rise .5s ease both}.hero-celebrate .pair{display:flex;align-items:center;gap:24px;margin-bottom:22px}.hero-celebrate .emblem{width:104px;height:104px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:26px;border:3px solid var(--gold);overflow:hidden}.hero-celebrate .emblem img{width:100%;height:100%;object-fit:contain;background:#fff}.hero-celebrate .link-line{width:clamp(70px,12vw,150px);height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);position:relative;animation:draw 1s .4s ease both;transform-origin:center}.hero-celebrate .link-line:after{content:"✕";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--gold);font-size:14px}.hero-celebrate .names{font-family:var(--font-display);font-weight:900;font-size:clamp(22px,3.4vw,44px);margin-bottom:10px;animation:rise .6s .3s ease both}.hero-celebrate .blessing{max-width:560px;color:#cfe0f0;font-size:15px;margin:0;animation:rise .6s .5s ease both}.btn-primary-lg{width:100%;padding:14px 20px;font-size:15px;font-weight:700;letter-spacing:.04em;border-radius:10px}.highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-sm)}.stat .num{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--navy);line-height:1.2}.stat .lbl{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.live-feed{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}.live-feed h2{font-size:15px;margin:0 0 8px;display:flex;align-items:center;gap:8px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--seal);animation:pulse 1.8s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.feed-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.feed-item:last-child{border-bottom:none;padding-bottom:2px}.feed-item .meta{font-size:12px;color:var(--muted)}.toast{position:fixed;top:62px;right:16px;z-index:90;background:var(--navy);color:#fff;border-left:3px solid var(--gold);border-radius:9px;padding:11px 16px;font-size:13px;font-weight:500;box-shadow:0 8px 30px #081b3059;animation:rise .35s ease both}.detail-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}@media (max-width: 860px){.detail-grid{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.panel h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13.5px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}.timeline{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 14px 14px}.timeline li:last-child{padding-bottom:2px}.timeline li:before{content:"";position:absolute;left:-21px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--gold);border:2px solid var(--card)}.timeline .t-date{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.doc-row{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink)}.doc-row:last-child{border-bottom:none}.doc-row svg{color:var(--muted);flex-shrink:0}.mou-card{display:flex;flex-direction:column;gap:10px}.mou-card .head{display:flex;gap:10px;align-items:center}.mou-card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.stage{height:100vh;background:radial-gradient(ellipse at 50% 30%,var(--navy-soft) 0%,var(--navy-deep) 75%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:16px 0 0;overflow:hidden;position:relative}.stage-head{position:relative;text-align:center;flex-shrink:0}.stage-head .sub{margin:2px 0 0}.stage-wall{flex:1;min-height:0;width:100%;position:relative;display:flex;align-items:center;justify-content:center}.stage-wall .wall-svg{height:100%;width:auto;max-width:99vw}.stage-moment{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:30px;z-index:4}.stage-moment .kicker{font-weight:700;text-transform:uppercase;color:var(--gold);margin-bottom:8px;animation:rise .5s ease both}.stage .waiting-kicker{font-size:clamp(15px,1.6vw,24px);font-weight:700;letter-spacing:.4em;text-transform:uppercase;color:var(--gold)}.stage h1{font-weight:900;font-size:clamp(52px,8vw,118px);margin:12px 0}.stage .sub{color:#cfe0f0;font-size:clamp(20px,2.6vw,34px);font-weight:500}.login-wrap{min-height:100vh;background:radial-gradient(ellipse at 50% 25%,var(--navy-soft) 0%,var(--navy-deep) 80%);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--card);border-radius:14px;padding:32px;width:100%;max-width:380px;box-shadow:0 20px 60px #081b3066}.login-card .brand-name{color:var(--navy);font-size:26px}.login-card form{display:flex;flex-direction:column;gap:10px;margin-top:20px}.err{color:var(--seal);font-size:13px}.landing-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;width:100%;max-width:680px}.landing-card{background:var(--card);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:8px;border:1px solid transparent;box-shadow:0 12px 40px #081b3059;transition:transform .15s ease,border-color .15s ease}.landing-card:hover{transform:translateY(-2px);border-color:var(--gold)}.landing-card .lc-icon{width:40px;height:40px;border-radius:10px;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:4px}.landing-card h3{font-size:17px;margin:0}.landing-card p{color:var(--muted);font-size:13px;line-height:1.5;margin:0;flex:1}.landing-card .lc-go{color:var(--seal);font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .full{grid-column:1 / -1}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}}label.fld{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:500;color:var(--muted)}@media (max-width: 760px){.topbar{height:auto;flex-wrap:wrap;padding:8px 14px;gap:8px}.nav{width:100%;overflow-x:auto;margin-left:0}.content{padding:16px 14px 40px}}.rays{position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(255,200,140,.07) 0deg 7deg,transparent 7deg 26deg);-webkit-mask-image:radial-gradient(circle at 50% 45%,black 0%,transparent 62%);mask-image:radial-gradient(circle at 50% 45%,black 0%,transparent 62%);animation:rays-spin 46s linear infinite}@keyframes rays-spin{to{transform:rotate(360deg)}}.flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#fff;opacity:0;animation:flash-out 1.1s ease-out forwards}@keyframes flash-out{0%{opacity:.85}to{opacity:0}}.emblem-l{animation:emb-l .9s cubic-bezier(.18,1.25,.4,1) both}.emblem-r{animation:emb-r .9s cubic-bezier(.18,1.25,.4,1) both}@keyframes emb-l{0%{opacity:0;transform:translate(-46vw) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes emb-r{0%{opacity:0;transform:translate(46vw) rotate(6deg)}to{opacity:1;transform:none}}.glow-wrap{position:relative;display:flex;align-items:center;justify-content:center}.glow-ring{position:absolute;width:170px;height:170px;border-radius:50%;border:1.5px solid rgba(255,161,78,.5);animation:glow-pulse 3.6s ease-out infinite}.glow-ring.r2{animation-delay:1.2s}.glow-ring.r3{animation-delay:2.4s}@keyframes glow-pulse{0%{transform:scale(.9);opacity:.8}to{transform:scale(2.1);opacity:0}}.marquee{position:relative;flex-shrink:0;width:100%;margin:10px 0 18px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent)}.marquee-track{display:flex;gap:16px;width:max-content;padding:4px 0;animation:marquee-x 70s linear infinite}@keyframes marquee-x{to{transform:translate(-50%)}}.marquee-tile{width:108px;height:72px;flex-shrink:0;background:#fffffff5;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:8px}.marquee-tile img{max-width:100%;max-height:100%;object-fit:contain}.marquee-tile span{font-weight:800;color:var(--navy);font-size:16px}.psign-grid{display:grid;grid-template-columns:1fr;gap:16px;max-width:560px;margin:0 auto}.psign-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:26px 22px 22px;border-top:3px solid var(--navy)}.psign-logo{width:100%;height:118px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:34px;color:var(--navy)}.psign-logo img{max-width:100%;max-height:100%;object-fit:contain}.psign-name{font-weight:700;font-size:17px;line-height:1.35;color:var(--ink)}.psign-divider{display:block;width:46px;height:2.5px;border-radius:2px;background:linear-gradient(90deg,var(--navy),var(--seal));margin:0 auto 2px}.psign-card .seal-btn{width:100%;padding:14px 0;font-size:14.5px}@media (max-width: 560px){.psign-card{padding:20px 16px 18px}.psign-logo{height:96px}.psign-name{font-size:15.5px}}@media (max-width: 560px){.ceremony .emblem,.stage-moment .emblem{width:72px;height:72px;font-size:20px}.ceremony .pair,.stage-moment .pair{gap:14px}.ceremony h1{font-size:34px}.ceremony .names,.stage-moment .names{font-size:18px}.ceremony .blessing,.stage-moment .blessing{font-size:13.5px}}.seal-btn.pulse{animation:seal-pulse 2.2s ease-in-out infinite}@keyframes seal-pulse{0%,to{box-shadow:inset 0 0 0 1.5px #ffffff59,inset 0 0 0 3px var(--seal),0 0 #e6510073}50%{box-shadow:inset 0 0 0 1.5px #ffffff59,inset 0 0 0 3px var(--seal),0 0 18px 2px #e6510073}}@media (prefers-reduced-motion: reduce){.rays,.flash,.glow-ring,.marquee-track{animation:none!important}}
