:root{color-scheme:dark;--bg:#14130f;--ink:#f1eee5;--muted:#aaa494;--gold:#f4ce72;--line:#484337;--gutter:clamp(28px,4.3vw,82px);--font:"PingFang SC","Hiragino Sans GB",system-ui,sans-serif;--portal-bg:var(--bg);--portal-ink:var(--ink);--portal-muted:var(--muted);--portal-accent:var(--gold)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,textarea{font:inherit}button{cursor:pointer;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button svg,a svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}::selection{background:var(--gold);color:var(--bg)}:focus-visible{outline:2px solid var(--gold);outline-offset:7px}[hidden]{display:none!important}
.skip{position:fixed;top:-100px;left:20px;padding:12px 18px;background:var(--ink);color:var(--bg);z-index:5}.skip:focus{top:12px}.field{position:fixed;inset:0;pointer-events:none;overflow:hidden}.field canvas{display:block;width:100%;height:100%}.masthead,.page-grid,.footer{position:relative;z-index:1}
.masthead{margin-inline:var(--gutter);min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:20px;font-weight:500;letter-spacing:.005em}.home-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font-size:15px;letter-spacing:.04em}.home-link:hover,.wordmark:hover{color:var(--gold)}
.page-nav{display:flex;align-items:center;gap:clamp(20px,3vw,40px)}.tools-link{padding:10px 0;min-height:44px;border:0;background:transparent;font-size:15px;letter-spacing:.04em}.tools-link:hover{color:var(--gold)}
.page-grid{width:calc(100% - var(--gutter)*2);flex:1;margin-inline:auto;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(60px,8.5vw,150px);align-items:center;padding-block:clamp(76px,10.6vh,120px) clamp(74px,9.5vh,108px)}.hero-copy{min-width:0}h1{margin:0;font-size:clamp(94px,8.6vw,144px);font-weight:600;letter-spacing:-.075em;line-height:1.12}.statement{margin:34px 0 0;font-size:clamp(43px,4.6vw,74px);font-weight:400;line-height:1.43;letter-spacing:-.055em}.statement span,.introduction span{display:block}.accent{color:var(--gold)}.introduction{margin:32px 0 0;font-size:clamp(15px,1.4vw,21px);font-weight:400;line-height:1.85;color:#b8b2a5;letter-spacing:.015em}.text-action{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;background:transparent;padding:10px 0;min-height:44px;color:#c5beb0;font-size:15px;letter-spacing:.025em;transition:color .2s}.text-action:hover{color:var(--gold)}.copy-button{margin-top:30px}
.contact{align-self:center;margin-top:140px;padding:0 0 0 clamp(30px,3.5vw,58px);border-left:1px solid #6a6250}.contact h2{margin:0;font-size:clamp(23px,1.8vw,29px);font-weight:500;line-height:1.5;letter-spacing:-.025em}.invitation{margin:9px 0 30px;font-size:clamp(13px,1.12vw,17px);color:#b8b2a5;line-height:1.8;white-space:nowrap}.qr-button{display:block;padding:0;border:0;background:transparent;text-align:left}.qr-frame{display:block;position:relative;width:clamp(174px,13.8vw,220px);aspect-ratio:1;padding:10px;background:#fff;color-scheme:light}.qr-crop{display:block;width:100%;height:100%;overflow:hidden;position:relative}
/* Original 664px square, including quiet zone: display only, no QR alteration. */
.qr-image{display:block;position:absolute;width:133.73494%;max-width:none;height:auto;left:-16.86747%;top:-42.16867%}.qr-error{position:absolute;inset:0;display:grid;place-content:center;padding:12px;color:#514a3d;background:white;text-align:center;font-size:14px;line-height:1.8}.qr-caption{display:flex;align-items:center;gap:12px;margin-top:12px;color:#b8b2a5;font-size:13px;line-height:1.7}.qr-caption svg{width:15px;height:15px;opacity:0;transform:translate(-3px,3px);transition:opacity .2s,transform .2s}.qr-button:hover .qr-caption,.qr-button:focus-visible .qr-caption{color:var(--gold)}.qr-button:hover .qr-caption svg,.qr-button:focus-visible .qr-caption svg{opacity:1;transform:none}
.footer{margin:0 var(--gutter);min-height:94px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;letter-spacing:.035em}.motion-toggle{font-size:13px;gap:10px}.motion-symbol{width:15px;font-size:14px;font-weight:600;text-align:center}.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}
dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;margin:auto;padding:52px 32px 28px;border:1px solid #625541;border-radius:3px;background:#1b1914;color:var(--ink);text-align:center;box-shadow:0 24px 120px #0009}dialog::backdrop{background:#0c0b09c7;backdrop-filter:blur(10px)}.close{position:absolute;top:9px;right:9px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--muted)}.close:hover{color:var(--gold)}dialog h2{margin:0;font-size:25px;line-height:1.5;font-weight:500;letter-spacing:-.025em}dialog p{margin:12px 0;font-size:14px;color:#b8b2a5;line-height:1.75}dialog .qr-frame{width:min(264px,100%);margin:28px auto 20px}dialog .dialog-note{margin-bottom:0;font-size:13px}textarea{width:100%;height:216px;display:block;resize:vertical;padding:15px;margin:24px 0 4px;border:1px solid #625541;border-radius:2px;background:#14130f;color:var(--ink);font-size:15px;line-height:1.85}
.toast{position:fixed;z-index:4;bottom:30px;left:50%;transform:translate(-50%,10px);width:max-content;max-width:calc(100vw - 32px);padding:13px 20px;background:#242117;border:1px solid #6b5837;color:var(--ink);border-radius:2px;font-size:14px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1100px) and (min-width:761px){.page-grid{grid-template-columns:1.3fr 1fr;gap:35px;padding-block:90px}h1{font-size:100px}.statement{font-size:50px;margin-top:26px}.introduction{font-size:14px;letter-spacing:0}.contact{margin-top:160px;padding-left:28px}.contact h2{font-size:22px}.invitation{font-size:12px}}
@media(max-width:760px){:root{--gutter:28px}.masthead{min-height:84px}.wordmark{font-size:16px}.home-link{font-size:12px;gap:8px}.home-link svg{width:16px;height:16px}.page-grid{display:block;padding-block:72px 58px}h1{font-size:clamp(82px,16vw,112px);letter-spacing:-.075em}.statement{margin-top:27px;font-size:clamp(43px,9vw,62px);line-height:1.43}.introduction{margin-top:23px;font-size:13px;line-height:1.9;letter-spacing:0}.copy-button{margin-top:17px;font-size:13px;gap:10px}.copy-button svg{width:18px;height:18px}.contact{margin:56px 0 0;padding-left:22px;border-color:#5a503e}.contact h2{font-size:23px}.invitation{margin:7px 0 23px;font-size:13px;white-space:normal}.qr-frame{width:174px}.qr-caption{font-size:12px;margin-top:10px}.qr-caption svg{opacity:1;transform:none;width:13px;height:13px}.footer{min-height:76px;font-size:11px}.motion-toggle{font-size:11px}dialog{padding:50px 24px 26px}}
@media(max-width:760px){.tools-link{font-size:12px}}
@media(max-width:350px){:root{--gutter:22px}.page-grid{padding-top:54px}h1{font-size:78px}.statement{font-size:40px}.introduction{font-size:12px}.contact{padding-left:18px}.invitation{font-size:12px}.masthead{gap:12px}.page-nav{gap:14px}.home-link svg{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{@page{size:A4 landscape;margin:16mm}:root{--bg:#fff;--ink:#171610;--muted:#575144;--gold:#9b722b;--gutter:0px}body{min-height:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}.field,.home-link,.copy-button,.motion-toggle,.toast,dialog,.skip{display:none!important}.masthead{min-height:50px}.page-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:70px;padding-block:35px 50px;break-inside:avoid}h1{font-size:78px}.statement{font-size:40px;margin-top:20px}.introduction,.invitation,.qr-caption{color:#575144}.introduction{font-size:14px}.contact{margin-top:70px;padding-left:30px}.contact h2{font-size:22px}.invitation{font-size:12px}.qr-frame{width:174px}.qr-caption svg{display:none}.footer{min-height:50px}}
