:root{color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#111;font-family:Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 20% 0,#ffffff1f,#0000 28rem),linear-gradient(140deg,#141414,#050505 80%);min-width:320px;min-height:100vh;margin:0}a{color:inherit}.invitation{isolation:isolate;width:min(100%,480px);min-height:100vh;color:var(--ink);background:var(--surface);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 28px 90px #0000006b}.invitation:after{content:"";z-index:0;pointer-events:none;opacity:.16;background:repeating-linear-gradient(90deg,#78582a1c 0 1px,#0000 1px 7px),repeating-linear-gradient(0deg,#ffffff2e 0 1px,#0000 1px 9px);position:absolute;inset:0}.invitation>section{z-index:1;padding:52px 24px;position:relative}.kicker{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 24px;font-family:Georgia,Times New Roman,serif;font-size:clamp(.78rem,3.2vw,1.05rem);font-variant-caps:small-caps;font-weight:700;line-height:1}h1,h2{word-break:keep-all;overflow-wrap:anywhere;margin:0;line-height:1.12}h1{letter-spacing:-.045em;margin-top:34px;font-size:clamp(2rem,10vw,3.35rem)}h2{letter-spacing:-.05em;margin-top:12px;font-size:clamp(1.45rem,7vw,2.25rem)}p{word-break:keep-all;overflow-wrap:anywhere}.detail-list{gap:0;margin:28px 0;display:grid}.detail-row{border-bottom:1px solid var(--line);grid-template-columns:62px minmax(0,1fr);align-items:baseline;gap:14px;padding:15px 0;display:grid}.detail-row dt,.detail-row dd{line-height:1.45}.detail-row dt{color:var(--accent);letter-spacing:.14em;font-size:.76rem;font-weight:800}.detail-row dd{color:var(--ink);margin:0;line-height:1.55}.text-link{color:var(--ink);border-bottom:1px solid;align-items:center;gap:8px;padding-bottom:6px;font-weight:700;text-decoration:none;display:inline-flex}.ceremony-details .text-link{width:fit-content;margin:0 auto}.attendance-panel{text-align:center}.attendance-panel h2{font-size:clamp(1.45rem,5.4vw,1.82rem)}.attendance-panel p{max-width:330px;color:var(--muted);margin:18px auto 0;font-size:.98rem;line-height:1.85}.attendance-button{min-height:48px;color:var(--ink);letter-spacing:-.02em;box-shadow:none;background:0 0;border:1px solid #9e7a3985;border-radius:999px;justify-content:center;align-items:center;gap:9px;margin-top:24px;padding:0 22px;font-family:Iropke Batang,Gowun Batang,Nanum Myeongjo,Georgia,serif;font-weight:800;text-decoration:none;transition:color .2s,border-color .2s,transform .2s;display:inline-flex;position:relative}.attendance-button:before{content:none}.attendance-button__text,.attendance-button__mark{z-index:1;position:relative}.attendance-button__mark{width:auto;height:auto;color:color-mix(in srgb, var(--accent) 76%, var(--ink));box-shadow:none;background:0 0;border:0;border-radius:0;font-size:.86rem;line-height:1;transition:transform .2s;display:inline-block;transform:translateY(-1px)}.attendance-button:hover,.attendance-button:focus-visible{box-shadow:none;color:color-mix(in srgb, var(--accent) 46%, var(--ink));border-color:#9e7a39eb;transform:translateY(-1px)}.attendance-button:hover .attendance-button__mark,.attendance-button:focus-visible .attendance-button__mark{background:0 0;transform:translate(2px,-2px)}.attendance-button:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 42%, transparent);outline-offset:6px}.photo-card{margin:0}.photo-card__image{border:1px solid var(--line);background:linear-gradient(145deg, #ffffffa8, transparent), color-mix(in srgb, var(--accent-soft) 58%, var(--surface));place-items:center;min-height:132px;display:grid}.photo-card__image span{color:var(--accent);letter-spacing:.16em;font-size:1.02rem;font-weight:800}.theme-dignified{--surface:#f7f1e6;--ink:#18231f;--muted:#6c6358;--accent:#b88a44;--accent-soft:#ead8b8;--line:#b88a4447;background:radial-gradient(circle at 50% -8%,#c29c5340,#0000 17rem),linear-gradient(#fbf7ed 0%,#f5efe1 52%,#e8ddc7 100%);font-family:Iropke Batang,Gowun Batang,Nanum Myeongjo,Georgia,serif}.theme-dignified:before{content:"";z-index:2;pointer-events:none;border:1px solid #9e7a395c;position:absolute;inset:12px}.theme-dignified:after{content:"";z-index:0;pointer-events:none;opacity:.46;background:linear-gradient(#9e7a39 0 0) 0 0/48px 1px no-repeat,linear-gradient(#9e7a39 0 0) 0 0/1px 48px no-repeat,linear-gradient(#9e7a39 0 0) 100% 0/48px 1px no-repeat,linear-gradient(#9e7a39 0 0) 100% 0/1px 48px no-repeat,linear-gradient(#9e7a39 0 0) 0 100%/48px 1px no-repeat,linear-gradient(#9e7a39 0 0) 0 100%/1px 48px no-repeat,linear-gradient(#9e7a39 0 0) 100% 100%/48px 1px no-repeat,linear-gradient(#9e7a39 0 0) 100% 100%/1px 48px no-repeat;position:absolute;inset:24px}.ceremony-hero{text-align:center;isolation:isolate;align-content:center;min-height:64svh;display:grid}.ceremony-details{padding-top:16px;position:relative}.ceremony-details:before{content:"";background:linear-gradient(90deg,#0000,#916c2d9e,#0000);width:min(72%,260px);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.ceremony-details h2{font-size:clamp(1.45rem,5.4vw,1.82rem)}.theme-dignified h1{color:var(--ink);font-size:clamp(1.18rem,5.4vw,1.82rem);font-weight:500;line-height:1.72}.hero-title__line{white-space:nowrap}.hero-photo{border:1px solid #231e1621;border-radius:2px;width:min(72%,240px);margin:28px auto 0;position:relative;overflow:hidden;box-shadow:0 8px 18px #2d231412}.hero-photo:before{content:"";z-index:1;pointer-events:none;border:1px solid #ffffff24;position:absolute;inset:0}.hero-photo img{width:100%;height:auto;display:block}.hero-photo+h1{margin-top:52px}.detail-list--formal .detail-row{border-color:#916c2d40;grid-template-columns:78px minmax(0,1fr);gap:16px;padding:18px 0}.detail-list--formal .detail-row dt{letter-spacing:.08em;font-size:clamp(.98rem,4vw,1.18rem);line-height:1.25}.detail-list--formal .detail-row dd{font-size:.98rem}.gallery--formal h2{color:var(--ink);text-align:center;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(.78rem,3.2vw,1.05rem)}.gallery--formal{content-visibility:auto;contain-intrinsic-size:1400px}.memories-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:34px;padding:8px 0 6px;display:grid}.photo-card--frames{width:100%;transition:opacity .18s;position:relative;transform:none}.photo-card--frames:nth-child(odd),.photo-card--frames:nth-child(2n){justify-self:stretch}.photo-card--frames .photo-card__image{aspect-ratio:4/3;background:linear-gradient(180deg, #ffffff42, #fff0), color-mix(in srgb, var(--surface) 86%, #d8c7a2);border:1px solid #231e1621;border-radius:2px;min-height:0;position:relative;overflow:hidden;box-shadow:0 8px 18px #2d231412}.photo-card--filled .photo-card__image{background:#e6dcc8;box-shadow:0 8px 18px #2d231412}.photo-card--filled .photo-card__image img{object-fit:cover;width:100%;height:100%;display:block}.photo-card--frames .photo-card__image:before{content:"";z-index:1;pointer-events:none;border:1px solid #ffffff2e;position:absolute;inset:0}.photo-card--filled .photo-card__image:before{border-color:#ffffff24;inset:0}.photo-card--frames:hover{opacity:.92}.photo-card--frames .photo-card__image span{color:color-mix(in srgb, var(--accent) 72%, var(--ink));letter-spacing:.12em;font-size:.72rem;font-weight:800;position:absolute;bottom:10px;right:12px}@media (width>=440px){.invitation>section{padding-inline:32px}}@media (width<=360px){.detail-row{grid-template-columns:54px minmax(0,1fr);gap:10px}.detail-list--formal .detail-row{grid-template-columns:70px minmax(0,1fr);gap:12px}.memories-grid{gap:8px}}@media (prefers-reduced-motion:no-preference){.ceremony-hero>:not(.hero-photo){animation:.78s cubic-bezier(.2,.72,.2,1) both rise-in}.ceremony-hero>.hero-photo{opacity:1;animation:none;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
