@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--frame-width:480px;--safe-top:max(16px, env(safe-area-inset-top));--safe-bottom:max(24px, env(safe-area-inset-bottom));--font-sans:var(--font-wedding-sans), "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:var(--font-wedding-serif), "Noto Serif KR", Georgia, serif;--font-mono:var(--font-terminal-mono), "SFMono-Regular", Consolas, monospace;--bride-sky:#4d9ff0;--bride-sky-soft:#dff1ff;--bride-cream:#fff8eb;--bride-yellow:#ffd04f;--bride-red:#d94f48;--bride-green:#278659;--bride-blue-deep:#235f9e;--bride-text:#2d3953;--groom-bg:#0d1117;--groom-panel:#161b22;--groom-panel-2:#21262d;--groom-border:#30363d;--groom-text:#e6edf3;--groom-muted:#9aa5b1;--groom-green:#4ac15c;--groom-blue:#71b7ff;--groom-purple:#c7a0ff}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#e7ecf3;min-width:320px}body{color:#20293a;min-width:320px;font-family:var(--font-sans);font-feature-settings:"kern" 1;letter-spacing:-.01em;background:radial-gradient(circle at 20% 10%,#dceeff,#0000 28%),#e7ecf3;margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}a{color:inherit;text-decoration:none}img{object-fit:cover}:focus-visible{outline-offset:3px;outline:3px solid #ffbf47}.wedding-frame{width:min(100%, var(--frame-width));background:#fff;min-height:100vh;margin:0 auto;position:relative;overflow:clip;box-shadow:0 0 48px #161d2d2e}.wedding-shell{min-height:100vh;overflow:hidden}.mode-switcher{z-index:100;top:var(--safe-top);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0d1117d1;border:1px solid #ffffff38;border-radius:18px;grid-template-columns:1fr 1fr;gap:5px;width:min(100% - 28px,430px);min-height:56px;padding:6px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #03081247}.mode-switcher a{color:#c4ccd5;border-radius:13px;justify-content:center;align-items:center;gap:6px;min-height:44px;font-size:13px;font-weight:700;display:flex}.mode-switcher a[aria-current=page]{color:#182033;background:#fff}.mode-switcher svg{width:17px}.visit-dot{background:#6b7280;border-radius:999px;width:7px;height:7px}.visit-dot.visited{background:#55d369;box-shadow:0 0 0 4px #55d36921}.route-redirect,.not-found{text-align:center;background:#fff;place-content:center;gap:14px;min-height:100vh;padding:28px;display:grid}.route-redirect a,.not-found a{color:#fff;background:#235f9e;border-radius:14px;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;font-weight:800;display:inline-flex}.not-found>span{color:#4d9ff0;font-size:54px;font-weight:1000}.not-found h1,.not-found p{margin:0}.bride-world{color:var(--bride-text);background:var(--bride-cream)}.bride-hero{padding:calc(var(--safe-top) + 60px) 24px 22px;color:#fff;background:linear-gradient(#3f93ed 0%,#79bfff 58%,#e4f4ff 100%);position:relative;overflow:hidden}.bride-hero:after{content:"";background:linear-gradient(135deg,#d6a263,#aa6b32);border-radius:34px;width:270px;height:170px;position:absolute;bottom:-68px;right:-82px;transform:rotate(-8deg);box-shadow:inset 0 0 0 10px #ffffff1f}.cloud{filter:drop-shadow(0 6px 14px #1d5b9a1f);background:#ffffffeb;border-radius:999px;width:104px;height:34px;animation:9s ease-in-out infinite alternate float-cloud;position:absolute}.cloud:before,.cloud:after{background:inherit;content:"";border-radius:50%;position:absolute;bottom:0}.cloud:before{width:46px;height:46px;left:17px}.cloud:after{width:58px;height:58px;right:17px}.cloud-one{top:330px;left:-72px;transform:scale(.72)}.cloud-two{animation-delay:-2s;top:286px;right:-64px;transform:scale(.92)}.cloud-three{animation-delay:-4s;top:555px;left:-68px;transform:scale(1.05)}@keyframes float-cloud{0%{margin-left:-8px}to{margin-left:14px}}.hero-orbit{z-index:1;opacity:.8;gap:12px;display:grid;position:absolute;top:104px;right:26px}.hero-orbit svg:first-child{width:30px;height:30px;transform:rotate(-30deg)}.hero-orbit svg:last-child{width:18px;height:18px;color:var(--bride-yellow)}.bride-eyebrow{z-index:2;letter-spacing:.12em;background:#ffffff26;border:1px solid #ffffff6b;border-radius:999px;margin:0;padding:8px 12px;font-size:11px;font-weight:700;display:inline-flex;position:relative}.bride-hero h1{z-index:2;width:100%;max-width:100%;font-family:var(--font-display);text-align:center;text-shadow:0 8px 22px #1a549433;justify-items:center;margin:12px 0 7px;font-weight:600;line-height:1.08;display:grid;position:relative}.bride-couple-title{letter-spacing:-.05em;white-space:nowrap;flex-flow:row;justify-content:center;align-items:center;max-width:100%;font-size:clamp(28px,8vw,38px);display:flex}.bride-couple-title small{letter-spacing:.04em;flex:none;margin:0 .42em;font-size:.44em}.bride-invite-title{font-family:var(--font-sans);letter-spacing:-.035em;margin-top:5px;font-size:clamp(17px,4.8vw,21px);font-weight:800}.bride-hero-subtitle{z-index:2;color:#ffffffeb;letter-spacing:.02em;text-align:center;text-shadow:0 1px 2px #0a22414d;word-break:keep-all;width:fit-content;max-width:100%;margin:0 auto;font-size:13px;font-weight:700;line-height:1.5;position:relative}.polaroid{background:#fff;box-shadow:0 22px 50px #19487e3d}.hero-polaroid{z-index:2;width:82%;max-width:345px;margin:29px auto 0;padding:14px 14px 39px;position:relative;transform:rotate(-1.2deg)}.hero-image{background:#dbeeff;min-height:222px;position:relative;overflow:hidden}.hero-image img,.groom-couple-photo img{object-fit:cover}.hero-polaroid p{color:#505a70;font-family:var(--font-display);text-align:center;margin:12px 0 -25px;font-size:13px}.toy-blocks{z-index:3;align-items:flex-end;gap:5px;display:flex;position:absolute;bottom:38px;right:14px;transform:rotate(4deg)}.toy-blocks span{color:#4a3d16;background:var(--bride-yellow);border-radius:8px;place-items:center;width:40px;height:40px;font-weight:1000;display:grid;box-shadow:inset 0 -5px #00000014,0 8px 16px #14467d26}.toy-blocks span:nth-child(2){color:#fff;background:var(--bride-red);height:56px}.toy-blocks span:nth-child(3){color:#fff;background:var(--bride-green)}.bride-section{padding:12px 24px;position:relative}.bride-section h2{font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;margin:0 0 11px;font-size:clamp(25px,7vw,30px);font-weight:600;line-height:1.38}.section-eyebrow{color:var(--bride-red);letter-spacing:.13em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.section-description,.invitation-copy p{color:#5d697d;word-break:keep-all;font-size:15px;line-height:1.72}.invitation-section{background:radial-gradient(circle at 90% 16%, #ffd04f3b, transparent 25%), var(--bride-cream)}.invitation-copy p{margin:0 0 10px}.invitation-section blockquote{color:#4d5870;font-family:var(--font-display);text-align:center;background:#ffffffdb;border:1px solid #4d9ff033;border-radius:16px;gap:12px;margin:20px 0 0;padding:21px 19px;font-size:15px;line-height:1.78;display:grid;box-shadow:0 10px 28px #262d4614}.invitation-section blockquote svg{width:22px;color:var(--bride-red);fill:currentColor;margin:0 auto}.story-section{background:#eff8ff}.story-section .section-eyebrow{color:var(--bride-blue-deep)}.train-timeline{gap:13px;margin-top:22px;padding-left:43px;display:grid;position:relative}.train-timeline:before{content:"";background:repeating-linear-gradient(#8d6e54 0 8px,#d4c1ad 8px 13px);border-radius:999px;width:7px;position:absolute;top:8px;bottom:8px;left:18px}.train-icon{z-index:2;color:#fff;background:var(--bride-blue-deep);border-radius:12px;width:38px;height:38px;padding:8px;position:absolute;top:-12px;left:2px}.train-timeline article{background:#fff;border:1px solid #3b5b881a;border-radius:18px;padding:17px;position:relative;box-shadow:0 9px 24px #2c588914}.train-timeline article:before{background:var(--bride-yellow);width:17px;height:17px;box-shadow:0 0 0 2px var(--bride-blue-deep);content:"";border:4px solid #fff;border-radius:50%;position:absolute;top:25px;left:-34px}.train-timeline time{color:var(--bride-blue-deep);font-size:12px;font-weight:900}.train-timeline h3{margin:5px 0;font-size:17px}.train-timeline p{color:#647086;margin:0;font-size:13px;line-height:1.65}.event-section{color:#fff;background:var(--bride-blue-deep)}.event-section .section-eyebrow{color:var(--bride-yellow)}.calendar-card{color:var(--bride-text);background:#fff;border-radius:18px;grid-template-columns:78px 1fr;align-items:center;gap:17px;margin-top:20px;padding:19px;display:grid;box-shadow:0 17px 36px #08254b33}.calendar-number{color:#fff;background:var(--bride-red);height:78px;font-family:var(--font-sans);border-radius:14px;place-items:center;font-size:38px;font-weight:700;display:grid}.calendar-card strong,.calendar-card span,.calendar-card a{display:block}.calendar-card span,.calendar-card a{color:#647086;margin-top:5px;font-size:13px;line-height:1.55}.gallery-section{background:var(--bride-cream)}.gallery-section .section-eyebrow{color:var(--bride-green)}.video-section{background:#fff2df}.location-section{background:#e5f3ff}.contact-section,.account-section{background:#fff}.guestbook-section{background:#f6f0e6}.upload-section{background:#eef8f1}.passport-section{background:#f3eee4}.passport-card{border-radius:17px;margin-top:19px;padding:18px;position:relative;overflow:hidden}.passport-card.bride{color:#24314a;background:#f8fbff;border:1px solid #4d9ff03d;box-shadow:0 10px 28px #1c22381a}.passport-card.groom{border:1px solid var(--groom-border);color:#f0f6fc;background:var(--groom-panel);border-radius:12px}.passport-heading{justify-content:space-between;gap:16px;font-size:13px;display:flex}.passport-heading span{color:var(--bride-blue-deep);font-weight:900}.passport-card.groom .passport-heading span{color:var(--groom-green)}.passport-card ul{gap:8px;padding:0;list-style:none;display:grid}.passport-card li{align-items:center;gap:9px;font-size:12px;display:flex}.passport-card li>span{color:#fff;background:#7d8896;border-radius:50%;place-items:center;width:21px;height:21px;display:grid}.passport-card li>span svg{width:12px}.passport-card li.visited>span{background:var(--bride-green)}.passport-track{background:#808b9c33;border-radius:999px;height:7px;overflow:hidden}.passport-track span{border-radius:inherit;background:linear-gradient(90deg, var(--bride-sky), var(--bride-green));height:100%;transition:width .3s;display:block}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.gallery-item{cursor:pointer;min-width:0;padding:0;overflow:hidden}.gallery-grid.bride .gallery-item{background:#fff;border-radius:12px;box-shadow:0 7px 19px #1c22381f}.gallery-thumb{aspect-ratio:1;width:100%;min-height:0;display:block;position:relative;overflow:hidden}.gallery-thumb img{object-fit:cover}.gallery-caption{text-align:left;align-items:center;gap:4px;min-height:34px;padding:6px;font-size:8px;font-weight:800;line-height:1.25;display:flex;overflow:hidden}.gallery-caption svg{width:16px}.gallery-grid.groom .gallery-item{border:1px solid var(--groom-border);color:var(--groom-blue);background:var(--groom-panel);border-radius:9px;display:block}.gallery-grid.groom .gallery-thumb{min-height:0}.gallery-grid.groom .gallery-caption{padding:6px}.gallery-overlay{z-index:300;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050a12e0;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gallery-dialog{background:#fff;border-radius:22px;width:min(100%,720px);position:relative;overflow:hidden;box-shadow:0 28px 80px #00000073}.gallery-full-image{background:#182033;width:100%;min-height:min(70vh,720px);position:relative}.gallery-dialog>p{color:#344054;margin:0;padding:16px 60px 18px 18px;font-size:13px;line-height:1.6}.gallery-dialog button{z-index:2;color:#fff;cursor:pointer;background:#0d1117d1;border-radius:14px;place-items:center;width:46px;height:46px;display:grid;position:absolute}.gallery-close{top:12px;right:12px}.gallery-previous{top:50%;left:10px}.gallery-next{top:50%;right:10px}.video-component{margin-top:20px}.video-frame{aspect-ratio:16/9;background:#111827;border-radius:22px;width:100%;position:relative;overflow:hidden;box-shadow:0 16px 40px #18233733}.video-frame:after{pointer-events:none;content:"";background:linear-gradient(#0000 40%,#070c179e);position:absolute;inset:0}.video-frame iframe{z-index:3;border:0;width:100%;height:100%;position:absolute;inset:0}.video-frame>button{z-index:4;color:#fff;background:var(--bride-red);cursor:pointer;border-radius:50%;place-items:center;width:70px;height:70px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-frame>button svg{fill:currentColor;width:28px}.video-frame>span{z-index:2;color:#fff;font-size:12px;position:absolute;bottom:14px;left:16px;right:16px}.video-frame>.youtube-thumbnail{z-index:1;object-fit:cover;inset:0}.video-component>a,.video-unconfigured{color:#42516a;align-items:center;gap:6px;width:fit-content;min-height:44px;margin:10px 0 0 auto;font-size:12px;font-weight:800;display:flex}.video-component>a svg{width:15px}.location-card{background:#fff;border-radius:19px;margin-top:20px;position:relative;overflow:hidden;box-shadow:0 14px 35px #1c324a21}.live-map{background:#dfe7e2;width:100%;height:240px}.live-map:not(:empty)+.map-fallback{display:none}.live-map:empty+.map-fallback{position:absolute;top:0;left:0;right:0}.map-label{color:#20242a;white-space:nowrap;background:#fff;border:1px solid #d7dde3;border-radius:8px;padding:8px 11px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;font-weight:800;box-shadow:0 4px 13px #0003}.map-art{background:#eef1ee;height:240px;display:block;position:relative;overflow:hidden}.map-art>img{object-fit:cover}.map-art[href]{cursor:pointer}.location-content{padding:20px}.location-venue{align-items:center;gap:6px;display:flex}.location-venue>strong{word-break:keep-all;font-size:17px;line-height:1.5}.location-address{margin-bottom:7px}.location-address>p{color:#5e6a7e;word-break:keep-all;margin:0;font-size:13px;line-height:1.6;display:inline}.location-address-tail{white-space:nowrap;display:inline-block}.location-content .venue-call,.location-content .copy-button.icon-only{width:44px;height:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:inline-flex}.location-content .venue-call svg,.location-content .copy-button.icon-only svg{width:17px;height:17px}.location-address .copy-button.icon-only{vertical-align:middle;justify-content:flex-start;padding-left:4px}.location-content .venue-call:hover,.location-content .copy-button.icon-only:hover{background:#7d88961a}.location-content>p{color:#5e6a7e;margin:7px 0;font-size:13px;line-height:1.6}.route-note{align-items:flex-start;gap:8px;display:flex}.route-note svg{flex:0 0 18px;width:18px}.map-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:15px;display:grid}.map-links a{color:#34445d;white-space:nowrap;background:#edf2f7;border-radius:11px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:44px;padding:6px 3px;font-size:11px;font-weight:900;display:flex}.map-service-icon{border-radius:5px;flex:0 0 20px;place-items:center;width:20px;height:20px;display:grid}.map-service-icon.naver{color:#fff;background:#087d3d;font-family:Arial,sans-serif;font-size:15px;line-height:1}.map-service-icon img{object-fit:contain;border-radius:5px;width:20px;height:20px;display:block}.copy-button{color:#fff;background:var(--bride-blue-deep);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:5px;min-height:44px;padding:8px 12px;font-size:11px;font-weight:900;display:inline-flex}.copy-button svg{width:15px}.contact-groups section>h3,.account-groups section>h3{margin:0 0 12px;font-size:15px}.contact-groups section+section,.account-groups section+section{margin-top:18px}.contact-list{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contact-list article{text-align:center;background:#fff;border-radius:18px;padding:18px 12px;box-shadow:0 9px 25px #262d461a}.contact-avatar{background:#edf5fd;border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 9px;font-size:25px;display:grid}.contact-list strong,.contact-list>article>span{display:block}.contact-list>article>span{color:#59667b;margin:3px 0 11px;font-size:11px}.contact-list article>div:last-child{grid-template-columns:1fr 1fr;gap:6px;display:grid}.contact-list a{color:#2f4c6b;background:#edf4fb;border-radius:10px;justify-content:center;align-items:center;gap:4px;min-height:44px;font-size:11px;font-weight:800;display:flex}.contact-list a svg{width:15px}.account-groups{gap:15px;margin-top:19px;display:grid}.account-groups section{background:#fff;border:1px solid #e4e9f0;border-radius:18px;overflow:hidden}.account-groups section>h3{border-bottom:1px solid #e7ebf0;padding:15px 17px}.account-row{grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:15px;display:grid}.account-row>svg{width:21px}.account-row small,.account-row strong{display:block}.account-row small{color:#5d697d;font-size:11px}.account-row strong{margin-top:3px;font-size:13px}.celebration-actions{background:#ffffffe6;border:1px solid #e1e5ec;border-radius:15px;margin-top:14px;padding:12px;box-shadow:0 8px 22px #2a314814}.celebration-block+.celebration-block{border-top:1px solid #e7eaf0;margin-top:12px;padding-top:12px}.celebration-block-heading{align-items:center;gap:9px;display:flex}.celebration-block-heading>svg{color:#fff;background:var(--bride-blue-deep);border-radius:9px;flex:0 0 30px;width:30px;height:30px;padding:7px}.celebration-account-block .celebration-block-heading>svg{color:#47380d;background:var(--bride-yellow)}.celebration-block-heading h3{color:#2f3b51;font-family:var(--font-display);font-size:14px;line-height:1.25}.celebration-block-heading span{color:#7a8494;margin-top:1px;font-size:9px;font-weight:700;display:block}.contact-groups.is-compact{margin-top:9px}.contact-groups.is-compact .contact-list{gap:6px}.contact-groups.is-compact .contact-list article{box-shadow:none;border:1px solid #e5e9ef;border-radius:10px;padding:9px 8px 8px}.contact-groups.is-compact .contact-avatar{display:none}.contact-groups.is-compact .contact-list strong{font-size:12px}.contact-groups.is-compact .contact-list>article>span{margin:1px 0 6px;font-size:10px}.contact-groups.is-compact .contact-list article>div:last-child{gap:5px}.contact-groups.is-compact .contact-list a{min-height:44px;padding:5px}.celebration-actions .account-groups{gap:6px;margin-top:9px}.celebration-actions .account-groups section+section{margin-top:0}.celebration-actions .account-groups section{border-radius:10px}.celebration-actions .account-groups section>h3{padding:8px 10px;font-size:11px}.celebration-actions .account-row{grid-template-columns:22px 1fr auto;gap:7px;padding:8px 10px}.celebration-actions .account-row>svg{width:16px}.celebration-actions .account-row small{font-size:10px}.celebration-actions .account-row strong{font-size:12px}.account-row .copy-button.kakaopay-link{grid-column:1/-1;width:100%;min-height:40px;text-decoration:none}.kakaopay-link .kakao-mark{flex:none;width:18px;height:18px}.guestbook form{background:#fffffff0;border-radius:19px;padding:18px;box-shadow:0 10px 28px #372d2217}.guestbook-inline-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.guestbook label{color:#465269;gap:6px;font-size:12px;font-weight:800;display:grid}.guestbook input,.guestbook textarea{color:#263247;background:#fff;border:1px solid #d8dee8;border-radius:11px;outline:none;width:100%;min-height:46px;padding:11px 12px}.guestbook textarea{resize:vertical}.guestbook input:focus,.guestbook textarea:focus{border-color:var(--bride-sky);box-shadow:0 0 0 4px #4d9ff021}.field-help{color:#5f6c80;margin:7px 0 12px;font-size:11px;line-height:1.5}.form-error,.upload-message{color:#a62e29;font-size:12px;line-height:1.55}.guestbook-success{margin:11px 0 0;font-size:12px;line-height:1.5}.terminal-response{border:1px solid #4ac15c9e;border-left:4px solid var(--groom-green);color:#b7ffbf;min-height:40px;font-family:var(--font-mono);background:#010409;border-radius:7px;align-items:center;gap:8px;padding:9px 11px;font-weight:800;display:flex;box-shadow:0 7px 18px #0000003d,inset 0 0 15px #4ac15c0d}.terminal-response>span{color:var(--groom-green);text-shadow:0 0 8px;font-size:9px}.guestbook form>button{color:#fff;background:var(--bride-red);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:7px;width:100%;min-height:46px;margin-top:12px;padding:10px 15px;font-weight:900;display:inline-flex}.guestbook button svg{width:18px}.guestbook-list{gap:11px;margin-top:16px;display:grid}.guestbook-list article{background:#fff;border-radius:16px;padding:16px;position:relative;box-shadow:0 8px 22px #54412b14}.guestbook-list article>div{justify-content:space-between;gap:12px;display:flex}.guestbook-list time{color:#637084;font-size:11px}.guestbook-list p{color:#5d697b;white-space:pre-wrap;margin:9px 0 0;font-size:14px;line-height:1.7}.load-more{color:#445168;cursor:pointer;background:#fffc;border-radius:12px;width:100%;min-height:44px;margin-top:14px;font-weight:800;display:block}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bride-world-link{color:#f7fbff;background:radial-gradient(circle at 20% 20%, #4ac15c2b, transparent 25%), var(--groom-bg)}.bride-world-link,.groom-section.groom-world-link{text-align:left;grid-template-columns:max-content max-content minmax(0,1fr);align-items:center;gap:6px;padding-top:4px;padding-bottom:4px;display:grid}.bride-world-link>svg,.groom-section.groom-world-link>svg{display:none}.bride-world-link h2,.groom-section.groom-world-link>h2{color:#f7fbff;white-space:nowrap;margin:0;font-size:10px;line-height:1.2}.bride-world-link a,.groom-world-link a{color:#102016;white-space:nowrap;background:#70dc80;border-radius:9px;justify-content:center;align-items:center;gap:0;width:auto;min-width:0;min-height:44px;padding:0 6px;font-size:10px;font-weight:900;display:inline-flex}.groom-world-link a{color:#332500;background:var(--bride-yellow)}.bride-world-link a svg,.groom-world-link a svg{display:none}.combined-passport{border:0;min-width:0;margin:0;padding:0}.combined-passport .passport-card{text-align:left;box-shadow:none;border-radius:8px;grid-template-columns:max-content minmax(76px,1fr);align-items:center;gap:4px;margin:0;padding:5px 6px;display:grid}.combined-passport .passport-heading{white-space:nowrap;gap:3px;font-size:9px}.passport-short-label{display:none}.combined-passport .passport-card ul{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:4px;width:100%;min-width:76px;margin:0;display:grid}.combined-passport .passport-card li{white-space:nowrap;grid-template-columns:14px max-content;justify-content:start;align-items:center;gap:3px;min-width:0;font-size:9px;line-height:14px;display:grid}.combined-passport .passport-card li>span{aspect-ratio:1;flex:none;place-items:center;width:14px;min-width:14px;height:14px;line-height:0;display:grid}.combined-passport .passport-card li>span svg{flex:none;width:9px;height:9px;display:block}.combined-passport .passport-track{display:none}.bride-closing{padding:17px 24px calc(16px + var(--safe-bottom));color:#fff;text-align:center;background:linear-gradient(#255f9e,#173e6a);place-items:center;display:grid}.bride-closing>svg{color:var(--bride-yellow);fill:currentColor}.bride-closing h2{font-family:var(--font-display);margin:13px 0 8px;font-weight:600}.bride-closing p,.bride-closing time{color:#dbeafe;margin:3px}.groom-world{color:var(--groom-text);background:var(--groom-bg);font-family:var(--font-sans)}.groom-hero{background:radial-gradient(circle at 80% 12%, #58a6ff26, transparent 27%), radial-gradient(circle at 14% 52%, #3fb95017, transparent 32%), var(--groom-bg);padding:112px 20px 20px;position:relative;overflow:hidden}.groom-grid{opacity:.24;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 88%);mask-image:linear-gradient(#000,#0000 88%)}.repository-window{z-index:2;border:1px solid var(--groom-border);font-family:var(--font-mono);background:#0d1117eb;border-radius:16px;position:relative;overflow:hidden;box-shadow:0 24px 58px #00000061}.window-bar{border-bottom:1px solid var(--groom-border);background:var(--groom-panel);align-items:center;gap:7px;min-height:46px;padding:0 14px;display:flex}.window-bar i{background:#f85149;border-radius:50%;width:10px;height:10px}.window-bar i:nth-child(2){background:#d29922}.window-bar i:nth-child(3){background:var(--groom-green)}.window-bar span{color:var(--groom-muted);margin-left:5px;font-size:10px}.repository-window header{border-bottom:1px solid var(--groom-border);padding:20px}.repository-owner{color:var(--groom-blue);font-size:12px}.repository-window h1{letter-spacing:-.04em;overflow-wrap:anywhere;margin:8px 0 10px;font-size:clamp(28px,8.5vw,39px);font-weight:650;line-height:1.15}.repository-window header p{color:var(--groom-muted);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.65}.repository-window header .repository-intro{color:#82e491;font-family:var(--font-mono);text-shadow:0 0 10px #4ac15c29;font-size:15px;line-height:1.72}.repository-prompt{color:var(--groom-green);margin-right:3px;font-weight:900}.repository-intro strong{color:#b7ffbf;font-family:var(--font-sans);letter-spacing:-.02em;text-shadow:0 0 12px #4ac15c61;font-size:1.14em;font-weight:900;display:inline-block}.repository-chips{flex-wrap:wrap;gap:7px;margin-top:17px;display:flex}.repository-chips span{border:1px solid var(--groom-border);color:#cbd3dc;background:var(--groom-panel);border-radius:8px;align-items:center;gap:5px;min-height:31px;padding:6px 9px;font-size:10px;font-weight:800;display:flex}.repository-chips span.success{color:#86d492;border-color:#4ac15c59}.repository-chips svg{width:13px}.groom-section{border-top:1px solid var(--groom-border);padding:12px 20px}.groom-section>h2{font-family:var(--font-sans);letter-spacing:-.04em;text-wrap:balance;margin:8px 0 11px;font-size:26px;font-weight:650;line-height:1.3}.groom-eyebrow{color:var(--groom-green);font-family:var(--font-mono);letter-spacing:.06em;align-items:center;gap:7px;font-size:11px;font-weight:700;display:flex}.groom-eyebrow svg{width:16px}.readme-card{border:1px solid var(--groom-border);background:var(--groom-panel);border-radius:12px;margin-top:20px;overflow:hidden}.readme-card>div{border-bottom:1px solid var(--groom-border);padding:13px 15px;font-size:11px}.readme-card h3,.readme-card p,.readme-card blockquote{font-family:var(--font-sans);margin-left:18px;margin-right:18px}.readme-card h3{border-bottom:1px solid var(--groom-border);padding-bottom:12px;font-size:22px}.readme-card p,.readme-card blockquote{color:#c0c8d1;word-break:keep-all;font-size:14px;line-height:1.72}.readme-card blockquote{border-left:4px solid var(--groom-border);color:var(--groom-muted);margin-bottom:22px;padding-left:14px}.commit-list{border:1px solid var(--groom-border);background:var(--groom-panel);border-radius:12px;margin-top:20px;overflow:hidden}.commit-list article{border-bottom:1px solid var(--groom-border);grid-template-columns:37px 1fr;gap:11px;padding:16px;display:grid}.commit-list article:last-child{border-bottom:0}.commit-list article>span{border:1px solid var(--groom-border);width:33px;height:33px;color:var(--groom-green);background:var(--groom-bg);border-radius:50%;place-items:center;display:grid}.commit-list svg{width:17px}.commit-list h3{font-family:var(--font-mono);margin:0 0 5px;font-size:12px}.commit-list p{color:var(--groom-muted);margin:0 0 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:1.5}.commit-list code{color:var(--groom-blue);font-family:var(--font-mono);font-size:10px}.code-card{border:1px solid var(--groom-border);font-family:var(--font-mono);background:#010409;border-radius:12px;margin-top:20px;overflow:hidden}.code-card>div{border-bottom:1px solid var(--groom-border);color:var(--groom-muted);background:var(--groom-panel);justify-content:space-between;padding:12px 13px;font-size:10px;display:flex}.code-card>div span:last-child{color:var(--groom-green)}.code-card pre{color:#cad2db;margin:0;padding:17px;font-size:11px;line-height:1.75;overflow-x:auto}.code-card b{color:var(--groom-purple)}.code-card em{color:#acd6ff;font-style:normal}.groom-world .video-frame{border:1px solid var(--groom-border);border-radius:12px}.groom-world .video-frame>button{color:#0d1117;background:var(--groom-green)}.groom-world .video-component>a,.groom-world .video-unconfigured{color:var(--groom-muted)}.groom-note{color:var(--groom-muted);align-items:flex-start;gap:8px;font-size:12px;line-height:1.65;display:flex}.groom-note svg{flex:0 0 18px;width:18px}.groom-world .location-card{border:1px solid var(--groom-border);background:var(--groom-panel);box-shadow:none;border-radius:12px}.groom-world .location-content>p,.groom-world .location-address>p{color:var(--groom-muted)}.groom-world .copy-button,.groom-world .map-links a{border:1px solid var(--groom-border);color:#d4dbe3;background:var(--groom-panel-2)}.groom-world .contact-groups section>h3,.groom-world .account-groups section>h3{color:var(--groom-blue)}.groom-world .contact-list article,.groom-world .account-groups section{border:1px solid var(--groom-border);color:var(--groom-text);background:var(--groom-panel);box-shadow:none;border-radius:12px}.groom-world .contact-avatar{background:var(--groom-panel-2)}.groom-world .contact-list a{border:1px solid var(--groom-border);color:#d4dbe3;background:var(--groom-panel-2)}.groom-world .account-groups section>h3,.groom-world .account-row{border-color:var(--groom-border)}.groom-world .account-row small{color:var(--groom-muted)}.groom-world .guestbook form,.groom-world .guestbook-list article{border:1px solid var(--groom-border);color:var(--groom-text);background:var(--groom-panel);box-shadow:none;border-radius:12px}.groom-world .guestbook label{color:#cad2db}.groom-world .guestbook input,.groom-world .guestbook textarea{border-color:var(--groom-border);color:var(--groom-text);background:var(--groom-bg)}.groom-world .guestbook form>button{background:#238636}.groom-world .guestbook-list p{color:#c2cad3}.groom-world .contact-list>article>span,.groom-world .account-row small,.groom-world .field-help,.groom-world .guestbook-list time{color:#b8c2cc}.groom-world .form-error,.groom-world .upload-message{color:#ff9b97}.issue-status{color:#8bd697;background:#4ac15c14;border:1px solid #4ac15c5c;border-radius:999px;padding:4px 7px;font-size:9px;position:absolute;top:12px;right:12px}.groom-world .guestbook-list article>div{padding-right:75px}.groom-world .load-more{border:1px solid var(--groom-border);color:#d4dbe3;background:var(--groom-panel)}.groom-world-link{text-align:center;background:radial-gradient(circle at 80% 20%, #ffd04f1a, transparent 25%), var(--groom-bg)}.groom-world-link>svg{color:var(--bride-text);background:var(--bride-yellow)}.groom-passport-section{background:#11161d}.deploy-closing{padding:17px 22px calc(17px + var(--safe-bottom));border-top:1px solid var(--groom-border);text-align:center;background:#010409;place-items:center;display:grid}.deploy-closing>svg{width:44px;height:44px;color:var(--groom-blue)}.deploy-status{color:var(--groom-green);align-items:center;gap:6px;margin-top:18px;font-size:12px;font-weight:900;display:flex}.deploy-status svg{width:15px}.deploy-closing h2{margin:12px 0 7px}.deploy-closing p{color:var(--groom-muted);margin:0 0 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}.deploy-closing code{color:var(--groom-blue);font-size:11px}.wedding-toast{z-index:400;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));color:#fff;text-align:center;pointer-events:none;background:#111827f0;border-radius:13px;max-width:calc(100% - 32px);min-height:0;padding:0;font-size:13px;font-weight:800;position:fixed;transform:translate(-50%);box-shadow:0 16px 34px #00000040}.wedding-toast:not(:empty){min-height:46px;padding:13px 17px}.wedding-toast.terminal-toast:not(:empty){border:1px solid #4ac15cb8;border-left:5px solid var(--groom-green);color:#b7ffbf;min-width:min(330px,100% - 32px);min-height:52px;font-family:var(--font-mono);letter-spacing:.01em;text-align:left;background:#010409f7;border-radius:7px;justify-content:flex-start;align-items:center;gap:9px;font-size:12px;font-weight:800;display:flex;box-shadow:0 0 0 1px #4ac15c1f,0 16px 38px #00000085,0 0 22px #4ac15c1f}.wedding-toast.terminal-toast:not(:empty):before{color:var(--groom-green);content:"●";text-shadow:0 0 9px;font-size:10px}.section-reveal{isolation:isolate;position:relative}.section-reveal>*{transition:transform .38s cubic-bezier(.2,.75,.25,1),box-shadow .32s,border-color .32s}.section-reveal.is-reveal-pending:not(.is-visible)>*{transform:translateY(8px)}.section-reveal.is-visible>*{transform:translateY(0)}.section-reveal[data-kind=event].is-visible>*{box-shadow:inset 0 2px #ffffff14}.section-reveal[data-kind=celebration].is-visible .celebration-actions{border-color:#4ac15c59}.music-toggle{z-index:120;right:max(14px, calc((100vw - var(--frame-width)) / 2 + 14px));bottom:calc(16px + env(safe-area-inset-bottom));color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#0d11178c;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid;position:fixed;box-shadow:0 6px 16px #0000002e}.music-toggle svg{width:18px;height:18px}.music-toggle:not(.is-playing):after{content:"";border:2px solid #788cafbf;border-radius:50%;animation:1.8s ease-out infinite music-ping;position:absolute;inset:0}.music-bars{align-items:flex-end;gap:2px;height:16px;display:flex}.music-bars i{transform-origin:bottom;background:currentColor;border-radius:2px;width:3px;height:100%;animation:.9s ease-in-out infinite alternate music-bar}.music-bars i:nth-child(2){animation-delay:-.45s}.music-bars i:nth-child(3){animation-delay:-.2s}.music-bars i:nth-child(4){animation-delay:-.7s}@keyframes music-bar{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@keyframes music-ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}@media (max-width:360px){.bride-hero,.bride-section,.groom-section{padding-left:18px;padding-right:18px}.passport-full-label{display:none}.passport-short-label{display:inline}.mode-switcher{width:calc(100% - 18px)}.mode-switcher a{font-size:12px}.guestbook-inline-fields,.contact-list{grid-template-columns:1fr}.calendar-card{grid-template-columns:70px 1fr;padding:17px}.calendar-number{height:70px}.account-row{grid-template-columns:28px 1fr}.account-row .copy-button{grid-column:2;width:100%}}@media (min-width:700px){body{padding:30px 0}.wedding-frame{border-radius:34px;min-height:calc(100vh - 60px)}.mode-switcher{top:44px}.bride-hero{padding-top:116px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.mode-switcher{transition:opacity .32s,transform .32s}.mode-switcher.is-main-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-12px)}.main-world{color:#252321;background:#efede8}.main-hero{padding:calc(var(--vh,1svh) * 3) 20px;background:#d5d3cf;position:relative;overflow:hidden}.main-film-strip{height:clamp(480px, calc(var(--vh,1svh) * 76), 720px);position:relative}.main-hero-photo{background:#aaa8a4;border-radius:20px;margin:0;position:absolute;inset:0;overflow:hidden;box-shadow:0 25px 65px #0f0e0d3d}.main-hero-photo img{filter:grayscale()contrast(1.08);object-position:50% center;animation:6s ease-in-out infinite main-photo-color;transform:scale(1.025)}@keyframes main-photo-color{0%,to{filter:grayscale()contrast(1.08)}50%{filter:grayscale(0)contrast(1.04)}}.main-photo-caption{z-index:5;color:#fff;text-align:center;text-shadow:0 1px 6px #0006;pointer-events:none;background:linear-gradient(#24202180,#24202126 65%,#0000);justify-items:center;gap:8px;padding:24px 12px 66px;display:grid;position:absolute;inset:0 0 auto}.main-photo-caption>span{letter-spacing:.06em;font-size:12px;line-height:1.6}.main-photo-caption>span:first-child{font-family:var(--font-mono);letter-spacing:.2em;font-size:10px}.main-photo-caption strong{font-family:var(--font-display);letter-spacing:.08em;font-size:clamp(28px,8vw,36px);font-weight:500}.main-snow{z-index:4;pointer-events:none;position:absolute;inset:-30% 0 0;overflow:hidden}.main-snow i{background-image:radial-gradient(circle,#ffffffeb 0 1.4px,#0000 1.8px),radial-gradient(circle,#ffffffad 0 1px,#0000 1.5px),radial-gradient(circle,#ffffffc7 0 2px,#0000 2.5px);background-position:8px 12px,54px 43px,93px 78px;background-size:92px 108px,124px 136px,168px 192px;animation:11s linear infinite main-snowfall;position:absolute;inset:-45% 0 0}.main-snow i+i{opacity:.58;filter:blur(.4px);animation-duration:16s;animation-delay:-7s;transform:translate(25px)scale(.72)}@keyframes main-snowfall{to{transform:translate(22px,55%)}}.main-section{background:#f5f3ee;padding:12px 27px;position:relative}.main-section h2,.main-invitation-letter h2{max-width:360px;font-family:var(--font-display);letter-spacing:-.055em;text-wrap:balance;margin:8px 0 11px;font-size:clamp(28px,8vw,38px);font-weight:500;line-height:1.35}.main-eyebrow{color:#77716a;font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;font-size:9px;font-weight:600;display:block}.main-description{color:#706b64;word-break:keep-all;margin:-7px 0 22px;font-size:13px;line-height:1.8}.main-section-symbol{color:#7d7770;stroke-width:1.1px;width:25px;position:absolute;top:14px;right:28px}.main-date-invitation{background:#676663}.main-invitation-letter{color:#282624;text-align:center;background:#f3f0ea;padding:54px 28px}.main-invitation-letter h2{margin-inline:auto}.invitation-prose{word-break:keep-all;overflow-wrap:break-word;white-space:pre-line;margin:0;font-size:14px;line-height:2}.main-invitation-letter .invitation-prose{color:#68625c}.invitation-closing{display:block}.invitation-closing>svg{vertical-align:-.12em;fill:currentColor;width:14px;height:14px;margin-right:5px;display:inline}.bride-world .invitation-section .invitation-prose{color:#666376;font-family:var(--font-display);font-size:14px;line-height:2.1}.bride-world .invitation-closing>svg{color:#bc8090}.readme-card h3{border-bottom:0;margin-top:20px;margin-bottom:12px;padding-bottom:0}.readme-card .invitation-prose{margin-bottom:22px;line-height:2}.wedding-calendar-countdown{gap:16px;margin-top:26px;display:grid}.month-calendar,.countdown-panel{background:#fff;border-radius:17px;padding:22px;box-shadow:0 13px 32px #231f1b14}.month-calendar header{border-bottom:1px solid #dedbd5;justify-content:space-between;align-items:baseline;padding-bottom:17px;display:flex}.month-calendar header span{color:#77716a;letter-spacing:.13em;font-size:11px}.month-calendar header strong{font-family:var(--font-display);font-size:31px;font-weight:500}.calendar-weekdays,.calendar-days{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekdays{color:#99928b;margin-top:17px;font-size:9px}.calendar-days{row-gap:7px;margin-top:10px;font-size:11px}.calendar-days>span{border-radius:50%;justify-self:center;place-items:center;width:31px;height:31px;display:grid}.calendar-days .ceremony-day{color:#fff;font-weight:800}.countdown-panel{text-align:center}.countdown-panel>p{color:#77716a;letter-spacing:.08em;margin:0 0 17px;font-size:11px}.countdown-units{grid-template-columns:1.4fr repeat(3,1fr);gap:6px;display:grid}.countdown-units>span{gap:4px;display:grid}.countdown-units small{color:#918b83;font-family:var(--font-mono);letter-spacing:.1em;font-size:7px}.flip-number{justify-content:center;gap:3px;display:flex}.flip-digit{--flip-bg:#2f2d2a;--flip-fg:#f7f5f0;--flip-line:#00000073;perspective:240px;width:26px;height:40px;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:26px;line-height:40px;display:block;position:relative}.flip-flaps{position:absolute;inset:0}.flip-half{height:50%;color:var(--flip-fg);background:var(--flip-bg);backface-visibility:hidden;position:absolute;left:0;right:0;overflow:hidden}.flip-half>span{text-align:center;height:200%;display:block}.flip-top{border-bottom:1px solid var(--flip-line);border-radius:4px 4px 0 0;top:0}.flip-bottom{border-radius:0 0 4px 4px;bottom:0}.flip-bottom>span{transform:translateY(-50%)}.flip-flap-top{z-index:2;transform-origin:50% 100%;animation:.26s ease-in forwards flip-fold}.flip-flap-bottom{z-index:2;transform-origin:50% 0;animation:.26s ease-out .26s forwards flip-unfold;transform:rotateX(90deg)}@keyframes flip-fold{to{transform:rotateX(-90deg)}}@keyframes flip-unfold{to{transform:rotateX(0)}}.wedding-calendar-countdown.bride .flip-digit{--flip-bg:#fffaf1;--flip-fg:#2d3953;--flip-line:#e3d6c1}.wedding-calendar-countdown.bride .flip-half{box-shadow:inset 0 0 0 1px #e8dcc8}.wedding-calendar-countdown.groom .flip-digit{--flip-bg:#010409;--flip-fg:var(--groom-blue);--flip-line:var(--groom-border);font-family:var(--font-mono);font-size:21px}.wedding-calendar-countdown.groom .flip-half{box-shadow:inset 0 0 0 1px var(--groom-border)}@media (max-width:360px){.flip-digit{width:19px;height:30px;font-size:20px;line-height:30px}}.countdown-names{font-family:var(--font-display);margin-top:20px;font-size:13px;font-weight:500;display:block}.countdown-names i{color:#8f3d3d;margin:0 4px;font-style:normal}.couple-introduction{grid-template-columns:1fr 1fr;gap:13px;margin-top:25px;display:grid}.couple-introduction article{min-width:0}.couple-portrait{aspect-ratio:4/5;background:#d9d5ce;position:relative;overflow:hidden}.couple-portrait img{filter:grayscale();transition:filter .5s,transform .7s}.couple-introduction.main .couple-portrait{border-radius:16px}.couple-introduction article>span{color:#888179;font-family:var(--font-mono);letter-spacing:.15em;margin-top:13px;font-size:8px;display:block}.couple-introduction h3{font-family:var(--font-display);margin:5px 0;font-size:21px;font-weight:500}.couple-introduction p{color:#706a63;word-break:keep-all;margin:0;font-size:11px;line-height:1.7}.main-calendar-section{background:#ebe8e1}.main-about-section{background:#dfdcd6}.main-timeline-section{color:#efede8;background:#292826}.main-timeline-section .main-eyebrow{color:#aaa49b}.main-timeline{border-top:1px solid #57534e;margin-top:20px;display:grid}.main-timeline article{border-bottom:1px solid #57534e;grid-template-columns:30px 1fr;padding:20px 0;display:grid}.main-timeline article>span{color:#837d75;font-family:var(--font-mono);grid-row:1/4;font-size:9px}.main-timeline time{color:#aaa49b;font-family:var(--font-mono);letter-spacing:.08em;font-size:9px}.main-timeline h3{font-family:var(--font-display);margin:7px 0 5px;font-size:20px;font-weight:500}.main-timeline p{color:#bdb7af;margin:0;font-size:12px;line-height:1.7}.main-gallery-section{background:#f4f1eb}.gallery-grid.main .gallery-item{color:#34312e;background:0 0;border-radius:12px}.gallery-grid.main .gallery-thumb{aspect-ratio:3/4;border-radius:12px}.gallery-grid.main img{transition:transform .6s}.gallery-grid.main .gallery-caption{color:#77716a;font-family:var(--font-mono);letter-spacing:.04em;padding:7px 0;font-size:7px}.main-film{border-top:1px solid #d1ccc4;margin-top:38px;padding-top:19px}.main-film>span{color:#77716a;font-family:var(--font-mono);letter-spacing:.15em;font-size:8px}.main-world .video-frame{box-shadow:none;border-radius:16px}.main-world .video-frame>button{background:#23211fdb;width:58px;height:58px}.main-location-section{background:#dedbd4}.main-world .location-card{box-shadow:none;border:1px solid #cac5bc;border-radius:0}.main-world .map-links a{border-radius:0}.main-celebration-section{background:#f7f5f0}.main-world .celebration-actions{box-shadow:none;background:#ffffff57;border-color:#d8d3ca;border-radius:0}.main-world .celebration-block+.celebration-block{border-color:#d8d3ca}.main-world .celebration-block-heading>svg{color:#f7f5f0;background:#383532;border:1px solid #cbc5bc;border-radius:0}.main-world .celebration-account-block .celebration-block-heading>svg{color:#383532;background:#ded9d0}.main-world .celebration-block-heading span{color:#837d75;font-family:var(--font-mono)}.main-world .celebration-block-heading h3{color:#34312e}.main-world .celebration-actions .account-groups section{box-shadow:none;border-color:#d8d3ca;border-radius:0}.main-world .copy-button{background:#34312e;border-radius:0}.main-guestbook-section{background:#e7e3dc}.main-world .guestbook form,.main-world .guestbook-list article{box-shadow:none;border:1px solid #d5d0c7;border-radius:0}.main-world .guestbook form>button{background:#34312e;border-radius:0}.main-world .guestbook input,.main-world .guestbook textarea{border-radius:0}.main-celebration-section .contact-list article{box-shadow:none;border:1px solid #ddd8d0;border-radius:0}.main-celebration-section .contact-avatar{filter:grayscale();background:#ebe8e1}.main-celebration-section .contact-list a{color:#fff;background:#383532;border-radius:0}.main-worlds-section{color:#f3f0ea;background:#292826;padding-top:12px;padding-bottom:12px}.main-worlds-section .main-eyebrow{color:#aaa49b}.main-worlds-section h2{margin-bottom:12px;font-size:clamp(24px,7vw,30px)}.main-worlds-section .passport-card{margin-top:12px;padding:13px}.main-worlds-section .passport-card ul{margin-top:10px;margin-bottom:10px}.passport-card.main{color:#f3f0ea;background:0 0;border:1px solid #56514b;border-radius:0}.passport-card.main .passport-heading span{color:#d4cec5}.passport-card.main li>span{background:#625d56}.passport-card.main li.visited>span{color:#292826;background:#ede8df}.passport-card.main .passport-track{background:#45413c}.passport-card.main .passport-track span{background:#ede8df}.main-closing{padding:17px 32px calc(16px + var(--safe-bottom));color:#2d2a27;text-align:center;background:#d4d0c8;place-content:center;display:grid}.main-closing>span{color:#77716a;font-family:var(--font-mono);letter-spacing:.2em;font-size:9px}.main-closing h2{font-family:var(--font-display);letter-spacing:-.06em;margin:12px 0 11px;font-size:clamp(30px,9vw,43px);font-weight:500;line-height:1.45}.main-closing p{color:#68625c;word-break:keep-all;margin:0 auto 12px;font-size:13px;line-height:1.8}.main-closing strong{font-family:var(--font-display);font-size:18px;font-weight:500}.main-closing strong i{margin:0 7px;font-style:italic;font-weight:400}.main-closing time{color:#77716a;font-family:var(--font-mono);letter-spacing:.1em;margin-top:9px;font-size:9px}.bride-world{--bride-magic-gold:#f4c65d;--bride-magic-lilac:#8f79c8;--bride-magic-pink:#e879a7;background:linear-gradient(#fff9ec 0%,#faf2ff 48%,#eef8ff 100%)}.bride-world .bride-section:not(.event-section){background-image:radial-gradient(circle at calc(100% - 28px) 23px,#f4c65d5c 0 2px,#0000 2.8px),radial-gradient(circle at calc(100% - 43px) 39px,#8f79c83d 0 1.5px,#0000 2.3px)}.bride-world .section-eyebrow{color:#7d61b1;align-items:center;gap:6px;display:flex}.bride-world .section-eyebrow:before{color:var(--bride-magic-gold);content:"✦";text-shadow:0 0 9px #f4c65d9e;font-size:13px}.bride-world .event-section .section-eyebrow{color:#ffe8a3}.bride-world .bride-section:not(.bride-world-link)>h2:after{background:linear-gradient(90deg, var(--bride-magic-gold), var(--bride-magic-pink), transparent);content:"";border-radius:999px;width:42px;height:2px;margin-top:8px;display:block}.bride-world .invitation-section blockquote,.bride-world .calendar-card,.bride-world .train-timeline article{border-color:#f4c65d6b;box-shadow:0 12px 30px #624c8e1f,0 0 0 3px #ffffff75}.bride-world .celebration-section{background-color:#fff7f5}.bride-world .celebration-actions{background:#fffdf8eb;border-color:#f4c65d85;border-radius:18px;box-shadow:0 10px 24px #624c8e1a}.bride-world .celebration-block+.celebration-block{border-color:#8f79c82e}.bride-world .celebration-block-heading>svg{background:linear-gradient(145deg,#4d9ff0,#8f79c8);border-radius:50% 50% 46% 54%;box-shadow:0 4px 11px #5c59a82e}.bride-world .celebration-account-block .celebration-block-heading>svg{color:#594417;background:linear-gradient(145deg,#ffe898,#f4c65d)}.bride-world .celebration-block-heading span{color:#8f79c8}.bride-world .celebration-actions .account-groups section{background:#fffdf9;border-color:#8f79c833}.bride-calendar-section{background:#fff7e8}.bride-about-section{background:#e8f5ff}.bride-date-invitation .event-section,.bride-date-invitation .invitation-section{padding-top:54px;padding-bottom:54px}.couple-introduction.bride .couple-portrait{border:7px solid #fff;box-shadow:0 12px 25px #284b6e1f}.gallery-grid.bride,.gallery-grid.groom{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px 9px;padding:9px 3px 14px}.gallery-grid.bride .gallery-item{background:linear-gradient(145deg,#fffefb,#fff6df);border:2px solid #fff9e8;border-radius:6px;padding:6px 6px 19px;position:relative;overflow:visible;transform:rotate(-1.5deg);box-shadow:-3px 4px #ffd04f9e,0 10px 22px #45477e2b}.gallery-grid.bride .gallery-item:nth-child(3n+2){background:linear-gradient(145deg,#fffdf9,#fff0f3);transform:translateY(8px)rotate(1.3deg);box-shadow:3px 5px #e879a76b,0 10px 22px #45477e2b}.gallery-grid.bride .gallery-item:nth-child(3n){background:linear-gradient(145deg,#fffefb,#eef5ff);transform:rotate(-.4deg);box-shadow:-2px 5px #4c9be866,0 10px 22px #45477e2b}.gallery-grid.bride .gallery-item:before{z-index:3;content:"";background:repeating-linear-gradient(135deg,#ffd04fc2 0 6px,#ffe489c2 6px 12px);border:1px solid #aa762314;width:34px;height:12px;position:absolute;top:-7px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 2px 4px #2d39531c}.gallery-grid.bride .gallery-item:nth-child(3n+2):before{background:#ef625a6b;transform:translate(-50%)rotate(3deg)}.gallery-grid.bride .gallery-item:nth-child(3n):before{background:#4d9ff06b}.gallery-grid.bride .gallery-item:after{z-index:4;color:#fff;background:var(--bride-magic-gold);content:"★";border:2px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;display:grid;position:absolute;bottom:-7px;right:-7px;transform:rotate(9deg);box-shadow:0 5px 10px #4c3d6f33}.gallery-grid.bride .gallery-item:nth-child(3n+2):after{background:var(--bride-magic-pink);content:"♥";transform:rotate(-8deg)}.gallery-grid.bride .gallery-item:nth-child(3n):after{background:var(--bride-magic-lilac);content:"✦"}.gallery-grid.bride .gallery-thumb{aspect-ratio:4/5;background:#e9f4fb;border:2px solid #4c9be852;border-radius:3px}.gallery-grid.bride .gallery-thumb img{filter:saturate(1.08)contrast(1.02)}.gallery-grid.bride .gallery-caption{color:#67587e;min-height:24px;font-family:var(--font-display);text-align:center;justify-content:center;padding:7px 1px 0;font-size:8px;font-weight:700;line-height:1.2}.groom-world .celebration-actions{border-color:var(--groom-border);color:var(--groom-text);background:var(--groom-panel);box-shadow:none;border-radius:8px}.groom-world .celebration-block+.celebration-block{border-color:var(--groom-border)}.groom-world .celebration-block-heading>svg{border:1px solid var(--groom-border);color:var(--groom-green);background:#010409;border-radius:6px}.groom-world .celebration-account-block .celebration-block-heading>svg{color:var(--groom-blue);background:#010409}.groom-world .celebration-block-heading span{color:var(--groom-green);font-family:var(--font-mono)}.groom-world .celebration-block-heading h3{color:var(--groom-text);font-family:var(--font-mono)}.groom-world .celebration-actions .account-groups section{border-color:var(--groom-border);color:var(--groom-text);background:#010409;border-radius:6px}.groom-release-status{border:1px solid var(--groom-border);background:#010409;border-radius:8px;flex-wrap:wrap;gap:6px;margin-top:16px;padding:10px;display:flex}.groom-release-status code{color:var(--groom-green);font-family:var(--font-mono);background:#3fb9500f;border:1px solid #3fb9503d;border-radius:5px;padding:5px 7px;font-size:8px}.groom-release-status code:nth-child(2):before{color:var(--groom-green);content:"✓";margin-right:4px}.groom-release-status code:last-child{color:var(--groom-blue);background:#58a6ff12;border-color:#58a6ff42}.groom-date-invitation .groom-section{padding-top:52px;padding-bottom:52px}.groom-calendar-section,.groom-about-section{padding-top:54px;padding-bottom:54px}.wedding-calendar-countdown.groom .month-calendar,.wedding-calendar-countdown.groom .countdown-panel{border:1px solid var(--groom-border);color:var(--groom-text);background:var(--groom-panel);box-shadow:none;border-radius:8px;position:relative;overflow:hidden}.wedding-calendar-countdown.groom .month-calendar:before,.wedding-calendar-countdown.groom .countdown-panel:before{border-bottom:1px solid var(--groom-border);color:var(--groom-blue);content:"calendar.json";font-family:var(--font-mono);letter-spacing:.08em;text-align:left;background:#010409;margin:-22px -22px 18px;padding:8px 11px;font-size:8px;display:block}.wedding-calendar-countdown.groom .countdown-panel:before{content:"deploy.timer"}.wedding-calendar-countdown.groom .month-calendar header{border-color:var(--groom-border)}.wedding-calendar-countdown.groom .month-calendar header span,.wedding-calendar-countdown.groom .calendar-weekdays,.wedding-calendar-countdown.groom .countdown-panel>p,.wedding-calendar-countdown.groom .countdown-units small{color:var(--groom-muted)}.wedding-calendar-countdown.groom .countdown-panel>p{color:var(--groom-green);font-family:var(--font-mono);text-transform:uppercase;font-size:9px}.wedding-calendar-countdown.groom .countdown-names{color:var(--groom-text);font-family:var(--font-mono);font-size:11px}.wedding-calendar-countdown.groom .countdown-names i{color:var(--groom-green)}.wedding-calendar-countdown.groom .countdown-names small{color:var(--groom-muted);font-family:var(--font-mono);font-size:8px;font-weight:500}.wedding-calendar-countdown.groom .ceremony-day{color:#08110a}.couple-introduction.groom article{border:1px solid var(--groom-border);background:var(--groom-panel);padding:9px}.couple-introduction.groom h3{color:var(--groom-text);font-family:var(--font-mono);font-size:16px}.couple-introduction.groom p,.couple-introduction.groom article>span{color:var(--groom-muted)}.couple-introduction.groom .couple-portrait{aspect-ratio:1}.gallery-grid.groom{gap:12px 9px}.gallery-grid.groom .gallery-item{background:#0d1117;border-radius:5px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #0003}.gallery-grid.groom .gallery-caption{border-bottom:1px solid var(--groom-border);width:100%;min-height:24px;color:var(--groom-blue);font-family:var(--font-mono);background:#161b22;order:-1;padding:5px 6px;font-size:7px;font-weight:600}.gallery-grid.groom .gallery-caption:after{color:var(--groom-green);content:"✓";margin-left:auto}.gallery-grid.groom .gallery-caption svg{flex:none;width:11px;height:11px}.gallery-grid.groom .gallery-thumb{aspect-ratio:4/5;background:#080c11}.gallery-grid.groom .gallery-thumb img{filter:contrast(1.05)brightness(.94);transition:filter .26s,transform .42s}.gallery-grid.groom .gallery-thumb:after{pointer-events:none;content:"";background:linear-gradient(#58a6ff0f,#0000 28%,#3fb9500a);border:1px solid #58a6ff14;position:absolute;inset:0}.bride-world-link,.groom-section.groom-world-link{grid-template-columns:auto 1fr 1fr;padding-top:12px;padding-bottom:12px}.bride-world-link .combined-passport,.groom-world-link .combined-passport{grid-column:1/-1}.combined-passport .passport-card{grid-template-columns:max-content 1fr}.combined-passport .passport-card ul{grid-template-columns:repeat(3,minmax(0,1fr))}.section-reveal>*{opacity:1;transition:opacity .52s,transform .52s cubic-bezier(.2,.78,.2,1),box-shadow .32s,border-color .32s}.section-reveal.is-reveal-pending:not(.is-visible)>*{opacity:0;transform:translateY(20px)}.section-reveal.is-visible>*{opacity:1;transform:translateY(0)}@media (hover:hover){.gallery-grid.main .gallery-item:hover img,.couple-introduction.main article:hover img{transform:scale(1.025)}.gallery-grid.bride .gallery-item:hover{box-shadow:0 14px 27px #2a4b6c33}.gallery-grid.groom .gallery-item:hover{border-color:var(--groom-blue)}.gallery-grid.groom .gallery-item:hover img{filter:none;transform:scale(1.025)}}@media (max-width:360px){.main-section{padding-left:21px;padding-right:21px}.couple-introduction p{font-size:10px}.combined-passport .passport-heading{display:none}.combined-passport .passport-card{grid-template-columns:1fr}}
.repository-window{font-family:var(--font-terminal-mono), var(--font-sans)}.repository-window header{padding:18px}.repository-window h1{font-size:clamp(20px,5.8vw,28px);line-height:1.3}.repository-window header .repository-intro{font-family:var(--font-terminal-mono), var(--font-sans);font-size:13px;line-height:1.8}.window-bar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.repository-chips{margin-top:12px}.groom-terminal{--bash-animation-state:running;background:#080c10}.bash-toolbar{color:#9caaba;align-items:center;gap:10px;padding:13px 16px 0;font-size:10px;line-height:1.7;display:flex}.bash-toolbar>span:first-child{overflow-wrap:anywhere;min-width:0}.bash-shell-label{color:#f0c979;margin-right:5px;font-weight:700}.bash-branch{color:#c8a4ef;flex-shrink:0;margin-left:auto}.bash-viewport{overflow-anchor:none;scrollbar-width:thin;scrollbar-color:#364453 #080c10;height:222px;padding:16px;overflow-y:auto}.bash-fallback{padding:16px}.bash-transcript{min-height:100%}.bash-line{font-family:var(--font-terminal-mono), var(--font-sans);overflow-wrap:anywhere;white-space:pre-wrap;grid-template-columns:12px minmax(0,1fr);gap:8px;margin:0 0 9px;font-size:12px;line-height:1.8;display:grid}.bash-line:last-child{margin-bottom:0}.bash-command{color:#f0f4f8}.bash-prompt{color:#83d99c;-webkit-user-select:none;user-select:none}.bash-output{color:#a5b3c2}.bash-output .bash-prompt{color:#5f7183}.bash-success{color:#91e0aa}.bash-cursor{vertical-align:-2px;width:7px;height:13px;animation:bash-cursor-blink .95s steps(1) infinite var(--bash-animation-state);background:#a3ecb6;margin-left:3px;display:inline-block}.bash-idle{align-items:center}.bash-idle .bash-cursor{margin-left:0}.groom-terminal[data-complete=true] .bash-cursor{opacity:.65;animation:none}@keyframes bash-cursor-blink{50%{opacity:0}}.git-merge{background:linear-gradient(130deg,#101925,#101b1c);border-top:1px solid #263340;margin:0;padding:16px 18px 13px}.git-merge figcaption{color:#aabac9;align-items:center;gap:7px;font-size:10px;display:flex}.git-merge figcaption svg{color:#80c998;width:13px;height:13px}.git-merge figcaption code{color:#90d6a8;border:1px solid #334450;border-radius:4px;margin-left:auto;padding:2px 6px;font-family:inherit;font-size:9px}.git-merge-diagram{grid-template-columns:minmax(54px,auto) minmax(0,1fr);align-items:center;gap:4px;margin:10px 0 3px;display:grid}.git-merge-names{align-content:space-between;align-self:stretch;padding:4px 0;display:grid}.git-merge-names>span{color:#83bfff;gap:1px;display:grid}.git-merge-names>span:last-child{color:#efabce}.git-merge-names small{color:#92a3b5;font-size:8px;line-height:1.4}.git-merge-names strong{font-family:var(--font-sans);overflow-wrap:anywhere;font-size:12px;line-height:1.5}.merge-fig{width:100%;display:block;overflow:visible}.merge-fig path{fill:none;stroke-width:2px;stroke-linecap:round}.merge-rail{stroke:#344551}.merge-fig .br-g{stroke:#83bfff}.merge-fig .br-b{stroke:#efabce}.merge-fig .br-main{stroke:#87e3a4;stroke-width:2.6px}.dot-g{fill:#83bfff}.dot-b{fill:#efabce}.dot-m{fill:#87e3a4}.moving-commit{stroke:#f2fff6;stroke-width:1px}.merge-endpoint{fill:#18272e;stroke:#667b86;stroke-width:1.5px}.merge-ring{fill:none;stroke:#87e3a4;stroke-width:1px;opacity:0}.git-merge[data-phase=merged] .merge-endpoint{fill:#87e3a4;stroke:#c5f8d7}.git-merge[data-phase=merged] .merge-ring{opacity:.35;animation:merge-commit-arrival .75s ease-out both var(--bash-animation-state);transform-origin:200px 45px}.groom-terminal[data-enhanced=false] .merge-ring{animation:none}.git-merge-result{color:#a4b3bf;text-align:center;justify-content:center;align-items:center;gap:5px;min-height:20px;margin:4px 0 0;font-size:clamp(8px,2.6vw,10px);display:flex}.git-merge-result svg{opacity:0;width:12px;height:12px}.git-merge[data-phase=merged] .git-merge-result{color:#a2e3b6}.git-merge[data-phase=merged] .git-merge-result svg{opacity:1}@keyframes merge-commit-arrival{0%{opacity:1;transform:scale(.5)}to{opacity:.35;transform:scale(1.3)}}.groom-hero-photo{border-top:1px solid var(--groom-border);background:#0d1117;padding:16px}.groom-couple-photo{aspect-ratio:742/413;border:1px solid var(--groom-border);background:var(--groom-panel);border-radius:9px;width:100%;position:relative;overflow:hidden}.groom-hero-photo>p{color:#d5dee7;font-family:var(--font-sans);text-align:center;margin:10px 0 0;font-size:12px}.groom-hero-photo>p>span{color:#88ca9f;margin:0 6px}@media (max-width:360px){.repository-window header{padding:15px}.bash-toolbar{padding-left:12px;padding-right:12px;font-size:9px}.bash-viewport{padding-left:12px;padding-right:12px}.bash-line{font-size:11px}}
.bride-world{--bride-blue-deep:#384d7a;--bride-red:#a6485c;--bride-green:#416e62;--fairytale-gold:#997136;--fairytale-ink:#35466a;color:var(--fairytale-ink);background:#fcf8ef}.fairytale-hero.bride-hero{padding:max(20px, env(safe-area-inset-top)) 20px 28px;color:var(--fairytale-ink);background:radial-gradient(at 0 35%,#fff8e0,#0000 60%),linear-gradient(#d5e4f2,#eeeaf6 64%,#fcf8ef)}.fairytale-hero.bride-hero:after{display:none}.fairytale-photo{background:#fffaf0;border:1px solid #e8dcc5;border-radius:170px 170px 8px 8px;margin:0;padding:12px 12px 0;position:relative;box-shadow:0 16px 38px #44537920,inset 0 0 0 5px #fffdf8}.fairytale-photo-image{aspect-ratio:1.2;background:#e8e0d4;border:1px solid #cbb58d;border-radius:155px 155px 4px 4px;width:100%;position:relative;overflow:hidden}.fairytale-photo-image img{object-position:center}.fairytale-photo figcaption{color:#876332;font-family:var(--font-display);letter-spacing:.18em;text-align:center;padding:15px 0 14px;font-size:10px}.fairytale-photo-stars{pointer-events:none;color:#98732e;position:absolute;inset:0}.fairytale-photo-stars svg{fill:#fff5cd;width:27px;height:27px;position:absolute}.fairytale-photo-stars svg:first-child{top:20%;left:-8px}.fairytale-photo-stars svg:nth-child(2){width:19px;top:8%;right:12px}.fairytale-photo-stars svg:nth-child(3){width:23px;bottom:20%;right:-8px}.fairytale-hero.bride-hero h1{text-shadow:none;margin:25px 0 7px}.fairytale-hero .bride-couple-title{letter-spacing:.025em;font-size:clamp(28px,7.8vw,36px);font-weight:500}.fairytale-hero .bride-couple-title small{color:#a17e43;font-style:italic;font-weight:400}.fairytale-hero .bride-invite-title{font-family:var(--font-display);margin-top:13px;font-size:15px;font-weight:400}.fairytale-hero .bride-hero-subtitle{color:#6c7286;text-shadow:none;margin-top:9px;font-size:11px;font-weight:400}.bride-world .bride-section{padding:36px 24px}.bride-world .section-eyebrow{color:#886530;letter-spacing:.15em;font-size:9px}.bride-world .bride-section h2{letter-spacing:-.045em;font-size:clamp(23px,6.7vw,29px);font-weight:500}.bride-date-invitation .event-section{color:var(--fairytale-ink);text-align:center;background:#fcf8ef;padding:0 24px 30px;position:relative}.fairytale-rule{color:#a78548;justify-content:center;align-items:center;gap:14px;margin:0 auto 22px;display:flex}.fairytale-rule span{background:linear-gradient(90deg,#0000,#c1a675);width:58px;height:1px}.fairytale-rule span:last-child{transform:rotate(180deg)}.fairytale-rule svg{width:14px;height:14px}.fairytale-date{gap:5px;margin-top:12px;display:grid}.fairytale-date>span{color:#5f6681;letter-spacing:.16em;font-size:12px}.fairytale-date>span:first-child{color:#876937;font-family:var(--font-display);letter-spacing:.3em;font-size:16px}.fairytale-date strong{font-family:var(--font-display);font-size:51px;font-weight:500;line-height:1.35}.fairytale-date i{color:#ba9560;margin:0 14px;font-style:normal;font-weight:400}.fairytale-venue{margin-top:19px;font-size:13px}.fairytale-venue strong{font-size:15px;font-weight:500}.fairytale-venue>span{color:#747082;margin-left:7px;font-size:12px}.fairytale-venue p{color:#686e7d;word-break:keep-all;margin:7px 0 0;font-size:11px;line-height:1.7}.fairytale-venue a{color:#686e7d;align-items:center;min-height:44px;font-size:11px;display:inline-flex}.bride-storybook{isolation:isolate;color:#f8efd9;background:radial-gradient(at 50% 48%,#54648a,#293b61 72%);padding:30px 24px 14px;position:relative;overflow:hidden}.bride-storybook:before{z-index:-1;pointer-events:none;opacity:.65;content:"";background-image:radial-gradient(circle at 12% 16%,#f2d699 0 1px,#0000 2px),radial-gradient(circle at 86% 20%,#fff4d4 0 1px,#0000 2px),radial-gradient(circle at 8% 70%,#f2d699 0 1px,#0000 2px),radial-gradient(circle at 92% 64%,#fff4d4 0 1px,#0000 2px);position:absolute;inset:0}.storybook-heading{text-align:center}.storybook-heading>span:first-child{color:#e5c891;letter-spacing:.24em;font-size:8px}.storybook-heading h2{font-family:var(--font-display);margin:9px 0 8px;font-size:clamp(21px,6vw,26px);font-weight:500}.storybook-heading-stars{color:#d6b475;letter-spacing:.22em;font-size:11px}.storybook-star-trails{fill:#f0d28e;width:100%;height:65px;display:block;overflow:visible}.storybook-star-trails>path{fill:none;stroke-width:1px}.storybook-star-rail{stroke:#f5d99530;stroke-dasharray:2 5}.storybook-star-trace{stroke:#ffe3a3}.storybook-moving-star{filter:drop-shadow(0 0 4px #ffe5a0)}.storybook-star-trails .storybook-star-heart{fill:#f1c4b3;stroke:#ffe7c7}.storybook-stage{perspective:1000px;margin:0 0 10px;position:relative}.storybook-paper{color:#4a4756;text-align:center;background:linear-gradient(90deg,#e9dcc2,#fffaf0 5%,#fffdf6 48%,#eadfc9 50%,#f8f0df 52%,#fffaf1 98%,#dfcba8);border:1px solid #dacaa5;border-radius:7px 15px 15px 7px;min-height:226px;padding:26px 18px 48px;position:relative;box-shadow:0 3px #e1d2b7,0 6px #f0e2c6,0 9px #bc9a6a,0 20px 27px #0e192c50}.storybook-paper:before{pointer-events:none;content:"";border:1px solid #bda17055;border-radius:3px 9px 9px 3px;position:absolute;inset:9px}.storybook-chapter{color:#8b6b3c;letter-spacing:.2em;font-size:8px}.storybook-lines{margin-top:19px}.storybook-line{font-family:var(--font-display);word-break:keep-all;overflow-wrap:anywhere;margin:0 0 8px;font-size:13px;font-weight:500;line-height:2;display:grid}.storybook-line>span{grid-area:1/1}.storybook-measure{visibility:hidden}.storybook-pen{vertical-align:-2px;background:#a2763e;border-radius:2px;width:3px;height:12px;margin-left:4px;display:inline-block;transform:rotate(22deg)}.storybook-signature{color:#7a6b59;font-family:var(--font-display);letter-spacing:.1em;margin:20px 0 0;font-size:10px}.storybook-signature span{color:#ac8353;margin:0 8px;font-style:italic}.storybook-seal{color:#994353;opacity:0;border:1px solid #a8515f;border-radius:50%;place-content:center;gap:2px;width:44px;height:44px;display:grid;position:absolute;bottom:12px;right:14px;transform:rotate(-13deg)}.storybook-seal svg{width:17px;height:17px;margin:0 auto}.storybook-seal small{font-family:var(--font-sans);letter-spacing:.03em;font-size:5px}.storybook-motion[data-phase=sealed] .storybook-seal,.storybook-static .storybook-seal{opacity:1}.storybook-motion[data-phase=sealed] .storybook-seal{animation:.65s ease-out both storybook-stamp}@keyframes storybook-stamp{0%{opacity:0;transform:rotate(-22deg)scale(1.4)}to{opacity:1;transform:rotate(-13deg)scale(1)}}.storybook-cover{color:#f4ddb0;transform:rotateY(calc(-110deg * var(--book-opening)));transform-origin:0;backface-visibility:hidden;pointer-events:none;background:linear-gradient(105deg,#28354f 0 4%,#495579 5%,#354365 9%,#3e4c70 92%,#233250);border:1px solid #dbb971;border-radius:5px 12px 12px 5px;flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:20px;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 0 7px #354365,inset 0 0 0 8px #c3a76a,0 12px 24px #111e3560}.storybook-cover>svg{width:20px;height:20px}.storybook-cover>span:first-of-type{font-family:var(--font-display);font-size:19px;font-style:italic}.storybook-cover small{font-family:var(--font-display);font-size:10px}.storybook-cover-moon{border-radius:50%;width:38px;height:38px;margin:2px 0;transform:rotate(-25deg);box-shadow:inset 8px -5px #e5c78b}.storybook-cover-ornament{font-size:22px;line-height:1}.storybook-static{margin-top:25px}.bride-date-invitation .invitation-section{text-align:center;background:#fcf8ef;padding:36px 30px}.bride-world .invitation-copy p{color:#666376;font-family:var(--font-display);font-size:13px;line-height:2.1}.bride-world .invitation-section blockquote{color:#7e6371;box-shadow:none;background:0 0;border:0;border-top:1px solid #c3a57555;border-radius:0;gap:10px;padding:18px 0 0;font-size:13px}.bride-world .invitation-section blockquote svg{color:#bc8090;width:16px}.bride-world .bride-calendar-section{background:#eeeafa}.bride-world .month-calendar,.bride-world .countdown-panel{background:#fffcf5;border:1px solid #ded4c3;border-radius:15px;box-shadow:0 9px 20px #49516a0b}.bride-world .ceremony-day{position:relative}.bride-world .ceremony-day:after{color:#a6485c;content:"♥";font-size:13px;position:absolute;top:-8px;right:-4px}.bride-world .contact-section{background:#fcf8ef}.bride-world .contact-list article{border:1px solid #e5d7c2;border-radius:35px 35px 10px 10px;box-shadow:0 8px 20px #bda17016}.bride-world .contact-avatar{background:#f4e9de}.bride-world .contact-list a{color:#4d5378;background:#eeeaf4}.bride-world .bride-about-section{background:#eaf0f6}.bride-world .couple-portrait{border-radius:80px 80px 5px 5px}.bride-world .story-section{background:#fcf6e9}.bride-world .train-timeline article{border:1px solid #ddcbb0;border-radius:5px 20px 20px 5px;box-shadow:4px 4px #eee1cb}.bride-world .train-icon{color:#ffedc8;background:#526488}.bride-world .train-timeline article:before{background:#e2bd75;box-shadow:0 0 0 2px #a08b69}.bride-world .gallery-section{background:#eeeaf5}.bride-world .gallery-item{border:1px solid #e1d9cc;border-radius:3px;padding:5px 5px 0;box-shadow:0 5px 14px #52648820}.bride-world .gallery-grid{gap:9px}.bride-world .gallery-caption{color:#73697d;font-weight:500}.bride-world .video-section{background:0 0;padding:25px 0 0}.bride-world .location-section{background:#e9f1ef}.bride-world .location-card{border:1px solid #c8d7c9;box-shadow:0 9px 22px #4f786519}.bride-world .account-section{background:#fcf8ef}.bride-world .account-groups section{border-color:#dccaae;border-radius:4px 4px 18px 18px}.bride-world .account-groups section>h3{color:#79566a;background:linear-gradient(150deg,#f6e6d9,#fffaf1);border-color:#e5d7c2}.bride-world .guestbook-section{background:#f5e8e7}.bride-world .guestbook-list article{border:1px solid #e3c9c8;border-radius:3px 18px 18px 3px;box-shadow:3px 4px #ead5d2}.bride-world .bride-world-link{color:#ece4d9;background:#394966;padding-top:28px;padding-bottom:28px}.bride-world .bride-world-link>a{color:#f6e2ba;background:#ffffff08;border:1px solid #c4af85;border-radius:35px 35px 7px 7px}.bride-world .bride-closing{padding:56px 30px calc(48px + var(--safe-bottom));color:#384e76;background:radial-gradient(at 50% 0,#f6e8bf,#0000 65%),#edf0f5}.bride-world .bride-closing>svg{color:#ad8751}.bride-world .bride-closing h2{font-family:var(--font-display);font-weight:500;line-height:1.6}.bride-world .bride-closing p,.bride-world .bride-closing time{color:#384e76}.groom-photo-hero{padding:max(20px, env(safe-area-inset-top)) 20px 8px;text-align:center;background:#0d1117}.groom-photo-hero figure{background:#161d27;border:1px solid #394453;border-radius:11px;margin:0;padding:5px}.groom-cover-image{aspect-ratio:1.2;border-radius:6px;position:relative;overflow:hidden}.groom-photo-hero figcaption{color:#9faabd;font-family:var(--font-mono);justify-content:space-between;gap:12px;padding:12px 7px 8px;font-size:9px;display:flex}.groom-photo-hero h1{color:#ecf0f5;font-family:var(--font-sans);margin:23px 0 8px;font-size:29px;font-weight:500}.groom-photo-hero h1>span{color:#85c99c;margin:0 14px;font-size:18px}.groom-photo-hero>p{color:#9caabb;margin:0;font-size:12px}.groom-date-invitation>.groom-section:first-child{padding-top:26px;padding-bottom:28px}.groom-repository-intro{padding:0 20px}.repository-window h2{color:#edf2f7;margin:7px 0 12px;font-size:clamp(20px,5.8vw,28px);line-height:1.3}.groom-world .code-card pre,.groom-world .code-card code{font-family:var(--font-terminal-mono), var(--font-sans)}@media (max-width:360px){.fairytale-hero.bride-hero{padding-left:16px;padding-right:16px}.bride-storybook{padding-left:18px;padding-right:18px}.storybook-paper{padding-left:13px;padding-right:13px}.storybook-line{font-size:12px}.groom-repository-intro{padding-left:14px;padding-right:14px}}
.brick-guestbook{--brick-paper:#fffdf7;--brick-ink:#48443d;--brick-muted:#716b62;--brick-line:#d8d0c2;--brick-accent:#605c4e;--brick-soft:#f4f0e7;color:var(--brick-ink)}.brick-guestbook.bride{--brick-accent:#a74c66;--brick-line:#e3c8c8;--brick-soft:#fbf0ed}.brick-guestbook.groom{--brick-paper:#161d28;--brick-ink:#e0e7ee;--brick-muted:#acb9c8;--brick-line:#354253;--brick-accent:#86cda9;--brick-soft:#1f2a37}.brick-section-intro{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:22px 0 10px;display:flex}.brick-section-intro>span{font-family:var(--font-mono);letter-spacing:.09em;font-size:10px;font-weight:700}.brick-section-intro strong{color:var(--brick-muted);font-size:11px;font-weight:400}.brick-plaza{border:1px solid var(--brick-line);background:var(--brick-paper);box-shadow:0 5px 0 var(--brick-line);border-radius:12px;overflow:hidden}.brick-plaza-cta{border-top:1px solid var(--brick-line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;padding:10px;display:grid}.brick-cheer-button{border:1.5px solid var(--brick-accent);min-height:44px;color:var(--brick-accent);background:var(--brick-paper);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:15px;font-weight:800;display:inline-flex}.brick-cheer-button svg{width:18px;height:18px}.brick-cheer-button:disabled{opacity:.55;cursor:default}.brick-venue-enter{min-height:44px;color:var(--brick-paper);background:var(--brick-accent);box-shadow:0 3px 0 color-mix(in srgb, var(--brick-accent) 60%, #000);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:15px;font-weight:800;animation:2.4s ease-out infinite brick-venue-call;display:inline-flex}.brick-venue-enter:active{box-shadow:0 1px 0 color-mix(in srgb, var(--brick-accent) 60%, #000);transform:translateY(2px)}.brick-venue-enter svg{width:18px;height:18px}@keyframes brick-venue-call{0%,60%,to{outline:0 solid #0000}20%{outline:6px solid color-mix(in srgb, var(--brick-accent) 30%, transparent)}}@media (prefers-reduced-motion:reduce){.brick-venue-enter{animation:none}}.brick-message button{width:44px;height:44px;color:var(--brick-ink);cursor:pointer;background:0 0;place-items:center;padding:0;display:grid}.brick-scene{--plaza-base:clamp(700px, calc(var(--vh,1svh) * 92), 980px);--plaza-grow:min(var(--plaza-extra,0px), var(--plaza-base));height:calc(var(--plaza-base) + var(--plaza-grow));isolation:isolate;position:relative;overflow:hidden}.brick-scenery{width:100%;height:var(--plaza-base);position:absolute;top:0;left:0}.brick-scene:before{content:"";top:calc(var(--plaza-base) - 1px);width:100%;height:calc(var(--plaza-grow) + 1px);background:linear-gradient(90deg,#0000 43.75%,#b8334a 0 44.1%,#8f2338 0 55.9%,#b8334a 0 56.25%,#0000 0),radial-gradient(6px 5px,#7a5644 0 98%,#0000) 0 0/18px 18px,#6b4a3a;position:absolute;left:0}.brick-scene-sign{color:#c24d70;white-space:nowrap;font-family:var(--font-mono);letter-spacing:.13em;text-align:center;background:#fffdf8;border-radius:3px;padding:3px 10px;font-size:9px;font-weight:700;position:absolute;top:9px;left:50%;transform:translate(-50%);box-shadow:0 2px #c9a96a}.brick-scene-sign span{color:#ef7f9c}.brick-guestbook .brick-character{flex:none;width:36px;height:54px;display:block;overflow:visible}.brick-couple{top:calc(var(--plaza-base) * .26);gap:16px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.brick-couple>div{justify-items:center;gap:3px;display:grid}.brick-couple span{color:#45413b;white-space:nowrap;text-overflow:ellipsis;background:#fff9eb;max-width:90px;padding:3px 5px;font-size:13px;overflow:hidden}.brick-guest{color:#3d4446;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;width:80px;min-height:96px;margin-left:-40px;padding:2px 0;display:flex;position:absolute}.brick-guestbook .brick-guest .brick-character{transform-origin:50% 90%;pointer-events:none;width:46px;height:69px}.brick-guestbook .brick-couple .brick-character{width:50px;height:75px}.brick-guestbook img.brick-figure{object-fit:contain;-webkit-user-drag:none}.brick-stage-boundary{top:max(calc(var(--plaza-base) * .42), calc(var(--plaza-base) * .26 + 136px));pointer-events:none;z-index:4;border-top:1px dashed #f2c14e66;position:absolute;inset-inline:14px}.brick-guest>span{text-overflow:ellipsis;white-space:nowrap;color:#3d4446;pointer-events:none;background:#fffdf5f2;max-width:84px;margin-top:1px;padding:3px 5px;font-size:12px;line-height:1.5;display:block;overflow:hidden}.brick-guest:focus-visible{z-index:4}.brick-guest[aria-pressed=true]{z-index:2;border-color:var(--brick-accent);background:var(--brick-paper)}.brick-guest[data-walking=true] .brick-character{animation:.48s ease-in-out infinite alternate brick-step}.brick-guest.is-dragging{z-index:5;cursor:grabbing;background:#fff9df66;box-shadow:0 12px 15px #2b372b33}.brick-guest.is-dragging .brick-character{transform:translateY(-5px)rotate(-5deg)}.brick-scene-empty{top:calc(var(--plaza-base) * .74);color:#f6ead8;text-align:center;width:100%;padding:0 14px;font-size:12px;position:absolute}.brick-plaza-actions{z-index:4;pointer-events:auto;align-items:center;gap:6px;display:flex;position:absolute;top:8px;right:0}.brick-plaza-actions button{border:1px solid var(--brick-line);height:34px;color:var(--brick-ink);background:var(--brick-paper);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #243d3018}.brick-plaza-actions .brick-motion-button{width:34px;padding:0}.brick-plaza-actions svg{width:15px;height:15px}.brick-guest>.brick-cheer{z-index:3;border:0 solid var(--brick-paper);width:96px;max-width:none;color:var(--brick-ink);background:var(--brick-paper);box-shadow:0 0 0 1px var(--brick-line), 0 3px 10px #243d3022;white-space:normal;text-overflow:clip;-webkit-line-clamp:2;opacity:0;border-bottom-width:4px;border-radius:9px;-webkit-box-orient:vertical;margin:0;padding:4px 7px 0;font-size:10px;line-height:1.45;animation:.3s ease-out forwards brick-cheer-in;display:-webkit-box;position:absolute;bottom:calc(100% - 10px);left:50%;overflow:hidden;transform:translate(-50%,4px)}.brick-guest>.brick-cheer[data-below]{top:calc(100% - 8px);bottom:auto}.brick-plaza[data-cheering] .brick-guest{transition:transform .4s;transform:scale(.82)}.brick-guest{transition:transform .4s}@keyframes brick-cheer-in{to{opacity:1;transform:translate(-50%)}}.brick-plaza[data-cheering] .brick-guest{z-index:3}.brick-message{z-index:10;border:1px solid var(--brick-line);width:280px;max-width:calc(100% - 16px);color:var(--brick-ink);background:var(--brick-paper);border-radius:16px;padding:10px 14px 14px;font-size:16px;line-height:1.8;position:absolute;transform:translate(-50%,-100%);box-shadow:0 5px 20px #243d3026}.brick-message:after{content:"";top:100%;left:var(--bubble-tail,50%);border-right:1px solid var(--brick-line);border-bottom:1px solid var(--brick-line);background:var(--brick-paper);width:12px;height:12px;position:absolute;transform:translate(-50%,-6px)rotate(45deg)}.brick-message>div{justify-content:space-between;align-items:center;min-height:30px;margin-top:-8px;display:flex}.brick-message strong{color:var(--brick-accent);font-size:17px}.brick-message p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:190px;margin:0;overflow-y:auto}.brick-limit-note{color:var(--brick-muted);margin:0;padding:0 14px 12px;font-size:11px;line-height:1.7}.brick-compose-button{border:1px solid var(--brick-accent);background:var(--brick-accent);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;font-size:14px;font-weight:700;display:flex}.groom .brick-compose-button{color:#12251f}.brick-guestbook .brick-composer{border:1px solid var(--brick-line);background:var(--brick-paper);box-shadow:none;border-radius:10px;margin-top:14px;padding:16px}.brick-composer h3{color:var(--brick-ink);margin:0 0 20px;font-size:17px}.brick-form-fields,.brick-builder{border:0;min-width:0;margin:0;padding:0}.brick-builder legend,.brick-form-divider{color:var(--brick-accent);margin-bottom:14px;font-size:12px;font-weight:700}.brick-builder-preview{align-items:center;gap:12px;margin-bottom:16px;display:flex}.brick-preview-pedestal{border:1px solid var(--brick-line);background:radial-gradient(at 50% 89%,#d8d0c0 0 25%,#0000 26%),linear-gradient(145deg,#fffdf6,#ede6db);border-radius:9px;flex:0 0 132px;place-items:center;height:168px;display:grid;overflow:hidden;box-shadow:inset 0 2px #fff}.brick-guestbook .brick-preview-pedestal .brick-character{width:72px;height:108px}.brick-preview-3d{touch-action:pan-y;cursor:grab;place-items:center;width:100%;height:100%;display:grid;position:relative}.brick-preview-3d canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.brick-builder-preview strong{color:var(--brick-ink);font-size:13px}.brick-builder-preview p{color:var(--brick-muted);margin:5px 0;font-size:11px;line-height:1.7}.brick-secondary{border:1px solid var(--brick-line);min-height:44px;color:var(--brick-ink);background:var(--brick-soft);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font-size:11px;display:inline-flex}.brick-parts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px;display:grid}.brick-part>span{color:var(--brick-muted);margin-bottom:4px;font-size:11px;display:block}.brick-part>div{border:1px solid var(--brick-line);background:var(--brick-soft);border-radius:6px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-width:0;display:grid}.brick-part button{width:44px;height:44px;color:var(--brick-ink);cursor:pointer;background:0 0;border-radius:5px;place-items:center;padding:0;display:grid}.brick-part output{color:var(--brick-ink);text-align:center;word-break:keep-all;overflow-wrap:anywhere;font-size:11px;line-height:1.3}.brick-form-divider{border-top:1px dashed var(--brick-line);margin-top:22px;padding-top:18px}.brick-guestbook label{color:var(--brick-ink)}.brick-guestbook input,.brick-guestbook textarea{border-color:var(--brick-line);color:var(--brick-ink);background:var(--brick-paper);font-size:16px}.brick-guestbook .field-help{color:var(--brick-muted)}.brick-character-count{color:var(--brick-muted);text-align:right;margin-top:5px;font-size:11px;display:block}.brick-guestbook .brick-composer>button{background:var(--brick-accent)}.groom .brick-composer>button{color:#12251f}.brick-guestbook button:disabled{opacity:.6;cursor:wait}.brick-guestbook .form-error:empty{display:none}.brick-guestbook.groom .form-error{color:#ffb3ac}.brick-list-heading{align-items:center;gap:7px;margin-top:26px;display:flex}.brick-list-heading h3{margin:0;font-size:14px}.brick-guestbook .brick-search{margin-top:12px;display:block;position:relative}.brick-search>svg{width:18px;height:18px;color:var(--brick-muted);pointer-events:none;position:absolute;top:14px;left:12px}.brick-guestbook .brick-search input{padding-left:38px;font-size:13px}.brick-guestbook .brick-guestbook-list{gap:9px;margin-top:12px}.brick-guestbook .brick-guestbook-list article{border:1px solid var(--brick-line);background:var(--brick-paper);box-shadow:none;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.brick-guestbook .brick-guestbook-list article>.brick-card-copy{flex:1;grid-template-columns:1fr auto;align-items:center;column-gap:8px;min-width:0;padding:0;display:grid}.brick-guestbook .brick-guestbook-list article>.brick-card-avatar{flex:0 0 32px;justify-items:center;gap:7px;padding:0;display:grid}.brick-rank{color:var(--brick-accent);font-family:var(--font-mono);font-size:12px;font-weight:600}.brick-like{min-width:52px;min-height:40px;color:var(--brick-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:6px;margin:0;padding:0 8px;font-size:12px;display:flex}.brick-like[aria-pressed=true]{color:var(--brick-accent);background:var(--brick-soft);border-color:var(--brick-line)}.brick-like[aria-pressed=true] svg{fill:currentColor}.brick-like-label{font-size:10px}.brick-summary-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:16px;display:grid}.brick-summary-actions svg,.brick-page-header svg,.brick-page-back svg{width:18px;height:18px}.brick-more-link{min-width:70px;min-height:48px;color:var(--brick-ink);justify-content:center;align-items:center;gap:3px;font-size:13px;display:inline-flex}.brick-guestbook-page{background:#faf5ef;min-height:100dvh}.brick-page-header{z-index:50;min-height:64px;padding:max(8px, env(safe-area-inset-top)) 20px 8px;color:#56514e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf5eff5;border-bottom:1px solid #e6d9cf;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brick-page-header a,.brick-page-back{align-items:center;gap:7px;min-height:44px;font-size:12px;display:inline-flex}.brick-page-header a{color:#a74c66;background:#fff;border:1.5px solid #a74c66;border-radius:999px;min-height:40px;padding:0 16px 0 12px;font-size:13px;font-weight:700;box-shadow:0 2px 8px #a74c661f}.brick-page-header>span{font-family:var(--font-mono);letter-spacing:.08em;font-size:9px}.brick-page-body{padding:16px 20px max(28px, env(safe-area-inset-bottom))}.brick-page-eyebrow{color:#9c6a77;font-family:var(--font-mono);letter-spacing:.08em;font-size:9px}.brick-page-body h1{color:#4c403f;font-family:var(--font-display);margin:4px 0 6px;font-size:22px;font-weight:700}.brick-page-description{color:#776563;word-break:keep-all;margin:0 0 14px;font-size:13px;line-height:1.6}.brick-page-back{color:#fff;background:#a74c66;border-radius:14px;justify-content:center;width:100%;min-height:52px;margin-top:28px;padding:12px;font-size:15px;font-weight:700;display:flex;box-shadow:0 6px 18px #a74c6640}.brick-card-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;display:flex}.brick-card-meta strong{overflow-wrap:anywhere;font-size:16px}.brick-guestbook .brick-card-meta time{color:var(--brick-muted);font-size:12px}.brick-guestbook .brick-guestbook-list p{color:var(--brick-ink);overflow-wrap:anywhere;grid-column:1/-1;margin-top:2px;font-size:16px;line-height:1.6}.wedding-frame:has(.brick-guestbook-page){width:min(100%,960px)}.brick-page-body>.brick-guestbook>:not(.brick-plaza):not(.brick-success-overlay),.brick-page-body>.brick-page-back{max-width:620px;margin-inline:auto}.brick-guestbook-page .brick-plaza{margin-inline:-8px}.brick-guestbook-page .brick-list-heading h3{font-size:18px}.brick-empty{color:var(--brick-muted);text-align:center;padding:20px 10px;font-size:12px;line-height:1.8}.brick-guestbook .load-more{color:var(--brick-ink);border:1px solid var(--brick-line);background:var(--brick-paper)}@keyframes brick-step{0%{transform:translateY(0)rotate(-2deg)}to{transform:translateY(-2px)rotate(2deg)}}@media (max-width:374px){.brick-parts{grid-template-columns:1fr}}.brick-guestbook>.brick-compose-button{margin-top:12px}.brick-success-overlay{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#28202b66;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.brick-success-dialog{border:1px solid var(--brick-line);width:min(100%,340px);color:var(--brick-ink);background:var(--brick-paper);text-align:center;border-radius:20px;padding:28px 24px 24px;box-shadow:0 16px 60px #23162633}.brick-success-dialog>svg{width:32px;height:32px;color:var(--brick-accent);margin-inline:auto}.brick-guestbook .brick-success-dialog h2{margin:16px 0 12px;font-size:20px}.brick-success-dialog p{word-break:keep-all;margin:0 0 24px;font-size:16px;line-height:1.8}.brick-success-dialog button{background:var(--brick-accent);color:#fff;border-radius:8px;width:100%;min-height:48px;font-size:16px;font-weight:700}.brick-part-tabs{scrollbar-width:none;gap:6px;margin:0 -2px 10px;padding:2px 2px 6px;display:flex;overflow-x:auto}.brick-part-tabs::-webkit-scrollbar{display:none}.brick-part-tabs button{border:1px solid var(--brick-line);min-height:44px;color:var(--brick-muted);background:var(--brick-paper);cursor:pointer;border-radius:999px;flex:none;padding:0 12px;font-size:12px}.brick-part-tabs button[aria-selected=true]{border-color:var(--brick-accent);color:#fff;background:var(--brick-accent)}.brick-part-group{min-width:0}.brick-part-group+.brick-part-group{border-top:1px solid var(--brick-line);margin-top:10px;padding-top:14px}.brick-part-group>h4{color:var(--brick-ink);margin:0 0 6px;font-size:13px;font-weight:700}.brick-part-current{color:var(--brick-muted);margin:0 0 8px;font-size:12px}.brick-part-current strong{color:var(--brick-ink)}.brick-option-strip{overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;cursor:grab;-webkit-user-select:none;user-select:none;gap:9px;padding:4px 3px 12px;display:flex;position:relative;overflow-x:auto}.brick-option-strip button{border:1px solid var(--brick-line);background:var(--brick-paper);cursor:pointer;border-radius:8px;flex:0 0 62px;place-items:center;height:72px;padding:3px;display:grid}.brick-option-strip button[aria-checked=true]{border-color:var(--brick-accent);box-shadow:0 0 0 2px var(--brick-accent)}.brick-option-strip.is-shape button{background:var(--brick-soft)}.brick-guestbook .brick-option-strip .brick-character{width:100%;height:100%;overflow:hidden}.brick-swatch{aspect-ratio:1;border:1px solid #0000001f;border-radius:50%;width:72%;display:block;box-shadow:inset 0 -3px #0000001a,inset 0 2px #ffffff73}.brick-option-strip:active{cursor:grabbing}.brick-option-strip.is-color button{flex-basis:44px;height:44px}.brick-option-strip svg{pointer-events:none}.brick-option-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.brick-option-heading .brick-part-current{gap:3px;margin:0;display:grid}.brick-option-heading .brick-part-current span{font-size:11px}.brick-option-arrows{display:flex}.brick-option-arrows button{width:44px;height:44px;color:var(--brick-ink);cursor:pointer;background:0 0;border-radius:8px;place-items:center;display:grid}.brick-option-arrows svg{width:18px;height:18px}.brick-color-picker{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 14px;display:flex!important}.brick-color-picker input[type=color]{cursor:pointer;width:54px;height:44px;padding:3px}.brick-color-picker output{color:var(--brick-muted);font:12px monospace}.brick-card-actions{grid-area:1/2;align-items:center;gap:2px;display:flex}.brick-manage-button{min-height:40px;color:var(--brick-muted);cursor:pointer;background:0 0;padding:6px 8px;font-size:12px}.brick-notice{text-align:center;color:var(--brick-ink);margin-block:12px}.brick-manage-dialog{border:1px solid var(--brick-line);width:min(500px,100% - 24px);max-height:90dvh;color:var(--brick-ink);background:var(--brick-paper);border-radius:18px;margin:auto;padding:20px;overflow-y:auto}.brick-manage-dialog::backdrop{background:#0f141ea6}.brick-manage-dialog>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.brick-manage-dialog>header h2{font-size:19px;font-weight:700}.brick-manage-dialog>header button{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;place-items:center;display:grid}.brick-manage-dialog .brick-composer{box-shadow:none;border:0;margin:12px 0 0;padding:0}.brick-confirm p{color:var(--brick-muted);margin:12px 0 18px;font-size:14px;line-height:1.7}.brick-manage-actions{justify-content:space-between;gap:10px;display:flex}.brick-manage-actions button{color:#fff;background:var(--brick-accent);cursor:pointer;border-radius:8px;min-height:44px;padding:10px 14px}.brick-form-fields>small{color:var(--brick-muted);font-size:12px;line-height:1.6}.brick-photos,.brick-my-photos{gap:8px;margin-top:10px;display:grid}.brick-my-photos h3{margin:6px 0 0;font-size:14px}.brick-photo-add{justify-self:start;font-size:12px}.brick-photo-note{color:var(--brick-muted);margin:0;font-size:12px;line-height:1.6}.brick-photo-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;display:grid}.brick-photo-grid figure{aspect-ratio:1;background:var(--brick-soft);border-radius:8px;margin:0;position:relative;overflow:hidden}.brick-photo-grid figure[data-failed]{outline:2px solid #d23f3f}.brick-photo-grid img{object-fit:cover;width:100%;height:100%;display:block}.brick-photo-grid button{color:#fff;cursor:pointer;background:#0000008c;border-radius:50%;place-items:center;width:26px;height:26px;padding:0;display:grid;position:absolute;top:3px;right:3px}.brick-photo-grid button svg{width:14px;height:14px}.brick-photo-send{color:#fff;background:var(--brick-accent);cursor:pointer;border-radius:8px;min-height:44px}.brick-photo-status{z-index:130;right:16px;bottom:calc(68px + env(safe-area-inset-bottom));border:1px solid var(--brick-line);max-width:440px;color:var(--brick-ink);background:var(--brick-paper);border-radius:12px;gap:8px;margin:0 auto;padding:14px;font-size:13px;line-height:1.6;display:grid;position:fixed;left:16px;box-shadow:0 10px 30px #0000002e}.brick-photo-status progress{width:100%}
.story-timeline [data-story-item]{transition:opacity .6s,transform .65s cubic-bezier(.2,.7,.2,1)}.story-timeline[data-story-motion=active] [data-story-item]:not(.is-story-visible){opacity:0;transform:translateY(28px)}.story-timeline.main .story-index{transition:color .5s}.story-timeline.main .is-story-current .story-index{color:#edcf9e}.story-timeline.main[data-story-motion=active] .is-story-visible .story-index{animation:.6s both story-number-in}@keyframes story-number-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.story-timeline.train-timeline article:before{left:-30px}.story-timeline.train-timeline[data-story-motion=active] article:not(.is-story-visible){transform:translate(18px)}.story-rail-progress{z-index:1;width:7px;height:var(--story-rail-height,0px);pointer-events:none;background:#c49c52;border-radius:999px;transition:height .45s ease-out;position:absolute;top:33px;left:18px}.story-train{z-index:3;width:38px;height:38px;transform:translateY(var(--story-train-y,14px));pointer-events:none;transition:transform .45s ease-out;position:absolute;top:0;left:2px}.story-train .train-icon{display:block;position:static;box-shadow:0 4px 10px #52648840}.story-timeline.train-timeline .is-story-current:before{background:#d9ac53;box-shadow:0 0 0 4px #dfbd7355}.story-git-command{border-bottom:1px solid var(--groom-border);color:var(--groom-muted);background:var(--groom-bg);font-family:var(--font-mono);align-items:center;gap:8px;padding:13px 16px;font-size:11px;display:flex}.story-git-command>span{color:var(--groom-green)}.story-timeline.commit-list article{position:relative}.story-timeline.commit-list article>span{z-index:1;position:relative}.story-timeline.commit-list article>div{min-width:0}.story-timeline.commit-list h3{font-family:var(--font-terminal-mono), var(--font-wedding-sans), monospace}.story-timeline.commit-list p{font-family:var(--font-sans)}.story-timeline.commit-list article:before{z-index:0;background:var(--groom-border);content:"";transform-origin:top;width:1px;position:absolute;top:49px;bottom:-16px;left:32px}.story-timeline.commit-list article:last-child:before{display:none}.story-timeline.commit-list[data-story-motion=active] article:not(.is-story-visible){transform:translate(-18px)}.story-timeline.commit-list[data-story-motion=active] .is-story-visible{animation:1s both story-commit-add}.story-timeline.commit-list[data-story-motion=active] .is-story-visible:before{animation:.6s both story-commit-line}.story-timeline.commit-list[data-story-motion=active] .is-story-visible h3{animation:.7s steps(24,end) both story-commit-title}.story-timeline.commit-list .is-story-current>span{border-color:var(--groom-green);box-shadow:0 0 0 3px #4ac15c15}@keyframes story-commit-add{0%{background-color:#4ac15c20}to{background-color:#0000}}@keyframes story-commit-line{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes story-commit-title{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.story-timeline[data-story-paused=true] *,.story-timeline[data-story-paused=true] :before{animation-play-state:paused!important}
.wedding-invitation{padding:36px 24px}.wedding-invitation-heading{text-align:center;margin-bottom:22px}.invitation-couple{font-family:var(--font-display);justify-content:center;align-items:baseline;gap:12px;margin:0 0 14px;font-size:clamp(24px,7vw,30px);line-height:1.5;display:flex}.invitation-name-divider{opacity:.65;font-size:.65em;font-style:italic}.wedding-invitation-heading h2{max-width:none;font-family:var(--font-display);letter-spacing:-.04em;word-break:keep-all;margin:0;font-size:clamp(20px,5.7vw,26px);font-weight:500;line-height:1.5}.wedding-invitation .invitation-prose{text-align:center}.wedding-invitation.main .invitation-prose{color:#59534d;max-width:360px;font-family:var(--font-display);letter-spacing:-.02em;text-wrap:pretty;margin-inline:auto;font-size:15px;font-weight:400;line-height:2}.wedding-invitation.main .invitation-closing{text-wrap:balance;margin-top:12px}.invitation-families{font-family:var(--font-sans);text-align:center;gap:10px;margin:28px auto 0;display:grid}.invitation-family{word-break:keep-all;overflow-wrap:anywhere;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 10px;margin:0;font-size:15px;font-weight:400;line-height:1.8;display:flex}.invitation-family>strong{font-size:18px;font-weight:700}.wedding-invitation.main .invitation-families{color:var(--suit-text);font-family:var(--font-display)}.wedding-invitation.bride .invitation-families{color:var(--ts-ink)}.wedding-invitation.groom .invitation-families{color:var(--groom-text)}.wedding-invitation.groom{color:var(--groom-text);background:var(--groom-bg);padding-top:14px}.wedding-invitation.groom .invitation-couple,.wedding-invitation.groom .wedding-invitation-heading h2{font-family:var(--font-sans)}.wedding-invitation.groom .invitation-name-divider{color:var(--groom-green)}.invitation-repository{border:1px solid var(--groom-border);box-shadow:none;border-radius:12px;margin:0;overflow:hidden}.groom-invitation-terminal .bash-viewport{height:auto;overflow:visible}.groom-invitation-terminal .bash-line{font-family:var(--font-sans);word-break:keep-all;overflow-wrap:break-word;white-space:normal;font-size:14px;line-height:2}.groom-invitation-terminal .bash-command{font-family:var(--font-terminal-mono), var(--font-sans);font-size:11px}.bash-content{min-width:0;display:grid}.bash-content>span{grid-area:1/1}.bash-measure{visibility:hidden}.wedding-invitation.bride .wedding-invitation-heading{margin-bottom:0}.storybook-motion .storybook-lines{font-family:var(--font-display);margin:0}.storybook-motion .storybook-line{font:inherit;line-height:inherit;overflow-wrap:break-word;margin:0}.storybook-line .storybook-measure>svg,.storybook-line .storybook-typed>svg{vertical-align:-.12em;fill:currentColor;color:#bc8090;width:14px;height:14px;margin-right:5px;display:inline}.storybook-motion .storybook-paper{padding-top:24px}.storybook-fairy-dust{z-index:1;pointer-events:none;color:#b99044;position:absolute;inset:-7px}.fairy-flight{fill:#d8aa53;filter:drop-shadow(0 0 3px #ffdb8b);width:100%;height:100%;overflow:visible}.fairy-star{fill:#fff0bc;stroke:#cba057;stroke-width:.7px}.fairy-sparkle{fill:#ffe6a3;width:17px;height:17px;animation:3.2s ease-in-out infinite fairy-twinkle;position:absolute}.fairy-sparkle-one{top:9%;left:2%}.fairy-sparkle-two{animation-delay:-1.1s;top:42%;right:1%}.fairy-sparkle-three{animation-delay:-2.2s;bottom:10%;left:3%}@keyframes fairy-twinkle{0%,to{opacity:.3;transform:translateY(3px)scale(.75)rotate(-8deg)}50%{opacity:1;transform:translateY(-5px)scale(1.1)rotate(8deg)}}.storybook-motion .storybook-star-trails{height:45px}.fairytale-hero.bride-hero h1.visually-hidden,.groom-photo-hero h1.visually-hidden{width:1px;height:1px;margin:0;position:absolute}.wedding-event.main,.wedding-event.bride,.wedding-event.groom{padding:24px}.wedding-event-heading{text-align:center}.wedding-event-heading h2{text-align:center;max-width:none;margin:0 auto 12px;font-size:clamp(23px,6.7vw,29px);font-weight:500;line-height:1.4}.wedding-event-summary{font-family:var(--font-sans);word-break:keep-all;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 6px;margin:0;font-size:14px;line-height:1.8;display:flex}.wedding-event.groom .wedding-event-heading h2{color:var(--groom-text);font-family:var(--font-sans)}.wedding-event.groom .wedding-event-heading time{color:var(--groom-blue)}.main-worlds-section{grid-template-columns:auto 1fr 1fr;align-items:center;gap:6px;display:grid}.main-worlds-section>h2{font-family:var(--font-sans);white-space:nowrap;margin:0;font-size:10px;line-height:1.2}.main-worlds-section>a{color:#f3f0ea;border:1px solid #8b8276;border-radius:8px;justify-content:center;align-items:center;min-width:0;min-height:44px;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex}.main-worlds-section>a:hover{background:#45413c}.main-worlds-section .combined-passport{grid-column:1/-1}.main-worlds-section .combined-passport .passport-card{margin:0;padding:5px 6px}.main-worlds-section .combined-passport .passport-card ul{margin:0}@media (max-width:360px){.wedding-invitation,.wedding-event.main,.wedding-event.bride,.wedding-event.groom{padding-left:20px;padding-right:20px}}.groom-world .groom-section:not(.groom-world-link)>h2,.groom-world .wedding-event.groom .wedding-event-heading h2,.groom-world .wedding-invitation.groom .wedding-invitation-heading h2{letter-spacing:-.04em;text-align:left;margin:8px 0 0;font-size:26px;font-weight:650;line-height:1.3}.groom-world .groom-section:not(.groom-world-link)>h2:after,.groom-world .wedding-event.groom .wedding-event-heading h2:after,.groom-world .wedding-invitation.groom .wedding-invitation-heading h2:after{background:radial-gradient(circle at 4px 50%, var(--groom-green) 0 3px, transparent 3.6px), linear-gradient(90deg, var(--groom-green), transparent) 10px 50% / calc(100% - 10px) 1px no-repeat;content:"";width:72px;height:8px;margin:10px 0 14px;display:block}.groom-world .wedding-event.groom .wedding-event-heading,.groom-world .wedding-invitation.groom .wedding-invitation-heading{text-align:left}.groom-world .wedding-invitation.groom .invitation-couple{justify-content:flex-start}.groom-world .wedding-event.groom .wedding-event-summary{text-align:left;justify-content:flex-start}.main-world{--calendar-ring:var(--brass)}.bride-world{--calendar-ring:var(--ts-red,#c0504d)}.groom-world{--calendar-ring:var(--groom-green,#4ac15c)}.wedding-calendar-countdown .calendar-days .ceremony-day{isolation:isolate;box-shadow:none;color:#fff;background:0 0;border-radius:0;position:relative}.wedding-calendar-countdown.main{--ceremony-fill:var(--suit-navy,#33312e)}.wedding-calendar-countdown.bride{--ceremony-fill:var(--bb-burgundy,#9d3652)}.bride-world .ceremony-day:after{content:none}.ceremony-day .calendar-date-number{z-index:1;position:relative;transform:translateY(-1px)}.ceremony-heart-shape,.ceremony-ring{pointer-events:none;width:39px;height:36px;position:absolute;inset:-2px auto auto -4px}.ceremony-heart-shape{fill:var(--ceremony-fill)}.ceremony-ring{fill:none;stroke:var(--calendar-ring);stroke-width:1px;opacity:0}.month-calendar[data-calendar-motion=waiting] .calendar-days>span{opacity:0}.month-calendar[data-calendar-motion=playing] .calendar-days>span:not(:empty){animation:.42s cubic-bezier(.2,.7,.3,1) both calendar-day-in;animation-delay:calc(var(--day,0) * 24ms)}.month-calendar[data-calendar-motion=playing] .calendar-days>span.ceremony-day:not(:empty){animation:.56s cubic-bezier(.3,1.4,.5,1) both calendar-stamp;animation-delay:calc(var(--calendar-days,31) * 24ms + .18s)}.wedding-calendar-countdown.main .month-calendar .ceremony-day{animation-duration:1.1s}.wedding-calendar-countdown:is(.main,.bride) .ceremony-ring{stroke-width:1.6px;transform-origin:50%;animation:1.6s ease-out infinite calendar-heart-ripple}.wedding-calendar-countdown:is(.main,.bride) .ceremony-heart-shape{transform-origin:50%;animation:1.6s ease-in-out infinite calendar-heart-beat}.ceremony-fairies{pointer-events:none;position:absolute;inset:-8px}.ceremony-fairies i{color:var(--calendar-ring);font-size:12px;font-style:normal;animation:6s ease-in-out infinite calendar-fairy;position:absolute}.ceremony-fairies i:first-child{top:0;left:1px}.ceremony-fairies i:nth-child(2){font-size:10px;animation-delay:-2000ms;bottom:0;left:3px}.ceremony-fairies i:nth-child(3){animation-delay:-4000ms;bottom:8px;right:0}.wedding-calendar-countdown.groom .ceremony-ring{display:none}.wedding-calendar-countdown.groom .ceremony-heart-shape{fill:#143025;stroke:var(--groom-green);stroke-width:1.1px;transform-origin:50%;animation:4.2s steps(3,end) infinite calendar-pixel-heartbeat;overflow:visible}.wedding-calendar-countdown.groom .calendar-days .ceremony-day{color:#b9f7c3}@keyframes calendar-day-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes calendar-stamp{0%{opacity:0;transform:scale(1.3)}to{opacity:1;transform:none}}@keyframes calendar-heart-beat{0%,45%,to{transform:scale(1)}12%{transform:scale(1.2)}22%{transform:scale(1.04)}32%{transform:scale(1.14)}}@keyframes calendar-heart-ripple{0%,8%{opacity:0;transform:scale(1)}14%{opacity:.75}70%,to{opacity:0;transform:scale(1.75)}}@keyframes calendar-fairy{0%,to{opacity:.35;transform:scale(.85)rotate(-6deg)}50%{opacity:.75;transform:translateY(-1px)scale(1.05)rotate(6deg)}}@keyframes calendar-pixel-heartbeat{0%,55%,to{fill:#143025;stroke-opacity:.7;filter:none;transform:scale(1)}16%,38%{fill:#245c35;stroke-opacity:1;filter:drop-shadow(0 0 3px #4ac15c73);transform:scale(1.08)}26%{fill:#193e2a;stroke-opacity:.9;filter:none;transform:scale(1.025)}}.invitation-share{gap:8px;width:100%;max-width:300px;margin:26px auto 0;display:grid}.invitation-share .copy-button{width:100%;font-size:13px}
