:root{color-scheme:dark;--bg: #0c1112;--bg-raised: #11191a;--surface: #162022;--line: #2c3a3c;--text: #e6e3da;--muted: #9ba5a3;--accent: #78c7bd;--accent-deep: #173b38;--max: 1160px;font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 82% 12%,rgba(58,107,102,.12),transparent 28rem),linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),var(--bg);background-size:auto,100% 6px,auto;color:var(--text);line-height:1.7}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{position:fixed;z-index:100;left:1rem;top:1rem;padding:.7rem 1rem;background:var(--text);color:var(--bg);transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.section-shell{width:min(calc(100% - 40px),var(--max));margin-inline:auto}.site-header{position:relative;z-index:20;width:min(calc(100% - 40px),var(--max));height:76px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:.82rem;font-weight:800;letter-spacing:.25em;text-decoration:none}.site-nav{display:flex;align-items:center;gap:clamp(1.2rem,3vw,2.4rem)}.site-nav a{color:var(--muted);font-size:.86rem;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text)}.nav-toggle{display:none;border:0;background:none;color:var(--text);font:inherit}.hero{min-height:min(790px,calc(100svh - 76px));padding:clamp(6rem,14vh,9rem) 0 5rem;display:flex;flex-direction:column;justify-content:center}.eyebrow{margin:0 0 1.3rem;color:var(--accent);font-size:.72rem;font-weight:750;letter-spacing:.18em}h1,h2,h3,p{overflow-wrap:break-word}h1,h2{margin:0;line-height:1.18;letter-spacing:-.045em}h1{max-width:1120px;font-size:clamp(2.55rem,6.1vw,5.35rem);font-weight:640}h2{font-size:clamp(2rem,4vw,3.7rem);font-weight:610}.hero-copy{max-width:650px;margin:2rem 0 0;color:var(--muted);font-size:clamp(1rem,1.8vw,1.2rem)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.5rem}.button{min-height:48px;padding:.72rem 1.2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:2px;font-size:.92rem;font-weight:650;text-decoration:none}.button-primary{border-color:var(--accent);background:var(--accent);color:#071110}.button-primary:hover{background:#93d6ce}.button-secondary:hover{border-color:var(--muted);background:var(--surface)}.hero-note{margin:.8rem 0 0;color:#778280;font-size:.78rem}.section-block{padding-block:clamp(5.5rem,11vw,9rem);border-top:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);align-items:end;gap:3rem}.section-heading>p{max-width:500px;margin:0;color:var(--muted)}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:4rem;background:var(--line);border:1px solid var(--line)}.principle-grid article{min-height:230px;padding:2rem;background:var(--bg-raised)}.principle-grid span,.case-grid article>span{color:var(--accent);font:700 .7rem/1 monospace}.principle-grid h3{margin:4.5rem 0 .7rem;font-size:1.3rem}.principle-grid p{margin:0;color:var(--muted);font-size:.92rem}.world{display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);align-items:center;gap:clamp(3rem,8vw,7rem)}.world-copy>p:not(.eyebrow){color:var(--muted)}.text-links{margin-top:2rem;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.text-links a,.quiet-link{color:var(--text);text-underline-offset:.3em;text-decoration-color:var(--line)}.text-links a:hover,.quiet-link:hover{text-decoration-color:var(--accent)}.world-frame{position:relative;aspect-ratio:1;display:grid;place-content:center;overflow:hidden;border:1px solid var(--line);background:#090d0e;text-align:center;box-shadow:0 2.5rem 7rem #00000057}.world-frame:after{content:"";position:absolute;inset:5%;border:1px solid rgba(120,199,189,.14)}.frame-grid{position:absolute;inset:0;opacity:.25;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:12.5% 12.5%;-webkit-mask-image:radial-gradient(circle,black,transparent 75%);mask-image:radial-gradient(circle,black,transparent 75%)}.world-frame p{z-index:1;margin:0;color:var(--accent);font:700 .72rem/1 monospace;letter-spacing:.22em}.world-frame span{z-index:1;margin-top:.7rem;color:var(--muted);font-size:.78rem}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3.5rem}.note-card{min-height:280px;padding:1.7rem;display:flex;flex-direction:column;border:1px solid var(--line);background:#11191a99;text-decoration:none;transition:transform .16s ease,border-color .16s ease}.note-card:hover{transform:translateY(-3px);border-color:#58716e}.note-card span{color:var(--accent);font-size:.72rem}.note-card h3{margin:auto 0 .6rem;font-size:1.35rem;line-height:1.4}.note-card p{margin:0;color:var(--muted);font-size:.88rem}.life-note-grid{grid-template-columns:repeat(2,1fr);margin:0 0 3rem}.life-placeholder{margin-top:3.5rem;min-height:260px;display:grid;place-items:center;border:1px dashed var(--line);color:var(--muted);font-size:.86rem;background:linear-gradient(135deg,rgba(120,199,189,.035),transparent 45%)}.site-footer{min-height:340px;padding-block:5rem 2rem;display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid var(--line)}.site-footer h2{max-width:620px;font-size:clamp(1.8rem,4vw,3rem)}.site-footer>p{color:var(--muted)}.site-footer small{grid-column:1 / -1;align-self:end;color:#6e7977}.inner-page{min-height:calc(100svh - 76px);padding-block:clamp(6rem,13vw,10rem)}.inner-page h1{max-width:880px}.lead{max-width:650px;margin:2rem 0 5rem;color:var(--muted);font-size:1.08rem}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.case-grid article{min-height:300px;padding:2rem;background:var(--bg-raised)}.case-grid h2{margin-top:5rem;font-size:1.5rem;letter-spacing:-.025em}.case-grid p{color:var(--muted)}.log-list{border-top:1px solid var(--line)}.log-list article{display:grid;grid-template-columns:.55fr 1.3fr 1fr;gap:2rem;align-items:baseline;padding:2rem 0;border-bottom:1px solid var(--line)}.log-list p,.log-list span{margin:0;color:var(--muted);font-size:.82rem}.log-list h2{font-size:1.35rem;letter-spacing:-.02em}@media(max-width:760px){.section-shell,.site-header{width:min(calc(100% - 32px),var(--max))}.site-header{height:64px}.nav-toggle{display:block;min-width:44px;min-height:44px}.site-nav{position:absolute;top:64px;left:0;right:0;padding:1.2rem;display:none;align-items:stretch;flex-direction:column;gap:0;border:1px solid var(--line);background:#0c1112fa}.site-nav[data-open=true]{display:flex}.site-nav a{padding:.8rem}.hero{min-height:calc(100svh - 64px);padding-top:4rem}.section-heading,.world,.site-footer{grid-template-columns:1fr}.section-heading{align-items:start;gap:1.5rem}.principle-grid,.note-grid,.case-grid{grid-template-columns:1fr}.principle-grid article{min-height:180px}.principle-grid h3{margin-top:2.5rem}.world{gap:3rem}.world-frame{width:100%}.note-card{min-height:220px}.site-footer{min-height:300px}.log-list article{grid-template-columns:1fr;gap:.45rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.closed-face{transition-delay:0s!important}.map-insert.is-shaking{animation:none}}.privacy-note{margin-top:4rem;padding:clamp(1.5rem,4vw,2.5rem);border-left:2px solid var(--accent);background:#11191aa8}.privacy-note h2{font-size:1.25rem;letter-spacing:-.02em}.privacy-note p{max-width:720px;margin:.75rem 0 0;color:var(--muted)}.support-principles{display:grid;gap:0;border-top:1px solid var(--line)}.support-principles article{display:grid;grid-template-columns:minmax(180px,.65fr) 1.35fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.support-principles h2{font-size:1.3rem}.support-principles p{margin:0;color:var(--muted)}.life-placeholder>div{text-align:center}.life-placeholder p{margin:0 0 .75rem}.life-feature{margin:0 0 3rem;padding:clamp(1.5rem,4vw,2.5rem);display:grid;grid-template-columns:.55fr 1.45fr auto;gap:2rem;align-items:end;border:1px solid var(--line);background:linear-gradient(135deg,#78c7bd1a,#11191ab8);text-decoration:none}.life-feature>span{align-self:start;color:var(--accent);font:700 .7rem/1 monospace;letter-spacing:.12em}.life-feature h2{font-size:clamp(1.65rem,3vw,2.7rem)}.life-feature p{max-width:520px;margin:1rem 0 0;color:var(--muted)}.life-feature strong{color:var(--accent);font-size:.82rem}.life-feature:hover{border-color:#58716e}.wedding-article{overflow:hidden}.wedding-hero{padding-block:clamp(4.5rem,10vw,8rem) clamp(5rem,11vw,9rem)}.article-back{display:inline-block;margin-bottom:clamp(4rem,9vw,7rem);color:var(--muted);font-size:.82rem;text-underline-offset:.3em;text-decoration-color:var(--line)}.wedding-hero h1{max-width:1000px;font-size:clamp(2.8rem,7.3vw,6.5rem)}.wedding-dek{max-width:720px;margin:2rem 0 0;color:var(--muted);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.75}.article-meta{margin-top:3rem;display:flex;gap:1.5rem;color:#7f8b89;font-size:.76rem}.article-meta span+span:before{content:"·";margin-right:1.5rem}.wedding-copy{width:min(calc(100% - 40px),700px);margin-inline:auto}.life-essay-body{padding-bottom:clamp(7rem,14vw,12rem)}.wedding-copy p{margin:0 0 1.6em;color:#d7d5ce;font-size:clamp(1.04rem,1.5vw,1.16rem);line-height:2;letter-spacing:-.012em}.article-prologue{padding-bottom:clamp(6rem,12vw,10rem)}.article-prologue p:first-child:first-letter{margin:.13em .12em 0 0;float:left;color:var(--accent);font-size:4.5rem;font-weight:650;line-height:.78}.wedding-chapter{padding-block:clamp(6rem,12vw,11rem);border-top:1px solid var(--line)}.chapter-heading{margin-bottom:clamp(4rem,9vw,7rem);display:grid;grid-template-columns:.3fr 1.7fr;align-items:start}.chapter-heading>span{padding-top:.8rem;color:var(--accent);font:700 .72rem/1 monospace;letter-spacing:.18em}.chapter-heading h2{max-width:900px;font-size:clamp(2.25rem,5vw,4.2rem)}.wedding-stats{margin:clamp(4rem,8vw,6.5rem) 0;display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.wedding-stats div{min-height:150px;padding:2rem clamp(1rem,2.5vw,2rem);display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line)}.wedding-stats div:first-child{border-left:0}.wedding-stats strong{color:var(--text);font-size:clamp(1.8rem,3.6vw,3.3rem);font-weight:560;letter-spacing:-.04em}.wedding-stats span{margin-top:.4rem;color:var(--muted);font-size:.75rem}.invitation-figure{margin:clamp(5rem,10vw,8rem) 0}.invitation-toolbar{margin-bottom:1rem;display:flex;justify-content:space-between;align-items:end;gap:2rem}.invitation-toolbar span{display:block;font-weight:650}.invitation-toolbar small{display:block;margin-top:.3rem;color:var(--muted)}.invitation-progress{min-width:150px;text-align:right}.invitation-progress span{color:var(--accent);font:700 .68rem/1 monospace;letter-spacing:.12em}.invitation-progress strong{display:block;margin-top:.5rem;color:var(--text);font-size:.8rem;font-weight:600}.invitation-stage{padding:clamp(2rem,6vw,5rem);display:grid;place-items:center;overflow:hidden;background:#d9d3c8;perspective:1800px}.invitation-object{position:relative;width:min(100%,1010px);aspect-ratio:2016 / 694;padding:0;border:0;background:transparent;cursor:pointer;perspective:1800px;-webkit-text-size-adjust:none;text-size-adjust:none}.invitation-object:focus-visible{outline-color:#173b38}.closed-card{position:absolute;inset:0 25%;display:block;transform-style:preserve-3d;transition:opacity .18s ease}.closed-card-inner{position:absolute;inset:0;display:block;transform:rotateY(0);transform-style:preserve-3d;transition:transform .9s cubic-bezier(.22,.75,.2,1);filter:drop-shadow(0 1.7rem 2rem rgba(22,19,15,.28))}.closed-face{position:absolute;inset:0;display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:opacity 0s linear .45s}.finally-face{background-image:url(/images/wedding/invitation-front.webp);background-position:50% center;background-size:200% 100%}.finally-face:before,.finally-face:after{content:"";position:absolute;inset:0;clip-path:inset(9% 5% 37%);pointer-events:none}.finally-face:before{background:url(/images/wedding/finally-raised.png) center / 100% 100% no-repeat;opacity:.98;transform:translateY(-.35%);filter:drop-shadow(0 calc(var(--invitation-unit, 1px) * .18) 0 rgba(25,45,76,.55)) drop-shadow(0 calc(var(--invitation-unit, 1px) * -.1) 0 rgba(255,255,255,.42))}.finally-face:after{background:linear-gradient(118deg,#ffffff14 25%,#ffffffd1 43%,#ffffff1f 57%);-webkit-mask:url(/images/wedding/finally-raised.png) center / 100% 100% no-repeat;mask:url(/images/wedding/finally-raised.png) center / 100% 100% no-repeat;opacity:.48;mix-blend-mode:screen}.people-face{display:flex;opacity:0;transform:rotateY(180deg);background:#fff}.folded-person{position:relative;width:50%;height:100%;background-image:url(/images/wedding/invitation-front.webp);background-position-y:center;background-size:400% 100%}.folded-person:before{position:absolute;inset-inline:0;color:#456293;font-family:Agency FB,Liberation Sans Narrow,Arial Narrow,sans-serif;font-size:clamp(4.48px,calc(var(--invitation-unit, 1px) * 1.2),12.48px);font-stretch:condensed;font-weight:700;line-height:1;letter-spacing:-.045em;word-spacing:.16em;text-align:center;white-space:nowrap}.folded-person:after{content:"";position:absolute;left:50%;height:max(1px,calc(var(--invitation-unit, 1px) * .13));background:#456293;transform:translate(-50%)}.folded-bride:before{top:9.8%}.folded-groom:before{top:8.7%}.folded-bride:after{top:16.1%;width:9.3%}.folded-groom:after{top:14.8%;width:12.7%}.folded-bride{background-position-x:0%;transform:rotateY(1.2deg);transform-origin:right center}.folded-groom{background-position-x:100%;transform:rotateY(-1.2deg);transform-origin:left center}[data-state=people] .closed-card-inner{transform:rotateY(180deg) rotateX(1deg)}[data-state=people] .finally-face{opacity:0}[data-state=people] .people-face{opacity:1}.unfold-sheet{position:absolute;inset:0;display:block;opacity:0;visibility:hidden;transform-style:preserve-3d;filter:drop-shadow(0 1.7rem 2rem rgba(22,19,15,.24))}.unfold-sheet img{width:100%;height:100%;display:block;object-fit:fill;clip-path:inset(0 25%);transition:clip-path .95s cubic-bezier(.22,.75,.2,1)}.invitation-greeting{position:absolute;inset:0 auto 0 0;width:25%;display:block;color:#282420;font-family:서울한강체 L,"Noto Serif CJK KR","Noto Serif KR",serif;font-size:calc(var(--invitation-unit, 1px) * .98);font-weight:400;line-height:1.55;letter-spacing:-.035em;text-align:center;clip-path:inset(0 0 0 100%);transition:clip-path .95s cubic-bezier(.22,.75,.2,1)}.invitation-greeting>*{position:absolute;left:4%;width:92%;display:block}.greeting-title{top:9%;font-size:calc(var(--invitation-unit, 1px) * 1.2);font-weight:600}.greeting-opening{top:20%}.greeting-promise{top:33%}.greeting-welcome{top:57%}.greeting-couple{top:72%;padding-right:10%;text-align:right}.greeting-note{top:91%;font-size:calc(var(--invitation-unit, 1px) * .8)}[data-state=inside] .invitation-greeting{clip-path:inset(0)}.map-insert{position:absolute;top:5%;right:1.25%;width:22.5%;height:90%;display:block;background:#fff url(/images/wedding/map-insert.webp) center / 100% 100% no-repeat;box-shadow:0 calc(var(--invitation-unit, 1px) * .7) calc(var(--invitation-unit, 1px) * 1.4) #1f1a164d;transform-origin:50% 4%;cursor:grab}.map-insert:after{content:"";position:absolute;top:-1.8%;left:50%;width:26%;height:7%;background:#e7e2c66b;border:1px solid rgba(180,173,145,.18);box-shadow:0 calc(var(--invitation-unit, 1px) * .08) calc(var(--invitation-unit, 1px) * .2) #48412e1f;transform:translate(-50%) rotate(-.8deg)}.map-insert.is-shaking{animation:map-insert-shake .48s ease-in-out}@keyframes map-insert-shake{0%,to{transform:rotate(0)}22%{transform:rotate(-1.1deg) translate(-.25%)}48%{transform:rotate(.8deg) translate(.2%)}72%{transform:rotate(-.45deg)}}.gate-panel{position:absolute;top:0;width:25%;height:100%;display:block;background-image:url(/images/wedding/invitation-front.webp);background-position-y:center;background-size:400% 100%;backface-visibility:hidden;transition:transform .95s cubic-bezier(.22,.75,.2,1),opacity .18s linear .42s}.gate-bride{left:25%;background-position-x:0%;transform-origin:left center}.gate-groom{right:25%;background-position-x:100%;transform-origin:right center}[data-state=unfolding] .closed-card,[data-state=inside] .closed-card{opacity:0;visibility:hidden}[data-state=unfolding] .unfold-sheet,[data-state=inside] .unfold-sheet{opacity:1;visibility:visible}[data-state=inside] .unfold-sheet img{clip-path:inset(0)}[data-state=inside] .gate-bride{transform:translate(-100%) rotateY(-178deg);opacity:0}[data-state=inside] .gate-groom{transform:translate(100%) rotateY(178deg);opacity:0}.invitation-figure figcaption,.proposal-gallery figcaption,.venue-hero figcaption{margin-top:1rem;color:var(--muted);font-size:.78rem}.chapter-summary{width:min(100%,700px);margin:clamp(4rem,8vw,6rem) auto 0;padding-top:1.75rem;border-top:1px solid var(--line);color:var(--text);font-size:clamp(1.12rem,2vw,1.38rem);line-height:1.8;letter-spacing:-.02em}.proposal-gallery{margin:clamp(5rem,10vw,8rem) 0;display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:.8rem}.proposal-gallery img{width:100%;height:100%;min-height:320px;display:block;object-fit:cover}.proposal-wide{grid-row:span 2}.proposal-ring{grid-column:span 2}.proposal-gallery figcaption{grid-column:1 / -1}.venue-hero{margin:clamp(5rem,10vw,8rem) 0}.venue-hero img{width:100%;max-height:760px;display:block;object-fit:cover}.venue-grid{margin:clamp(5rem,10vw,8rem) 0;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.venue-grid figure{margin:0}.venue-grid img{width:100%;aspect-ratio:3 / 2;display:block;object-fit:cover}.venue-grid figcaption{margin-top:.65rem;color:var(--muted);font-size:.76rem}.wedding-quote-label{margin-bottom:.8rem!important;color:var(--muted)!important;font-size:.78rem!important}.wedding-quote-block{margin:0 0 2.8rem;padding:clamp(1.5rem,4vw,2.4rem);border-left:2px solid var(--accent);background:#ffffff09}.wedding-quote-block p{color:var(--text);font-size:clamp(1.02rem,1.4vw,1.12rem);line-height:1.9}.wedding-quote-block p:last-child{margin-bottom:0}.wedding-ending{padding-top:clamp(3rem,7vw,5rem)}.wedding-ending p:last-child{color:var(--text);font-size:clamp(1.3rem,2.5vw,1.8rem);line-height:1.8}.wedding-vow{padding-top:clamp(4rem,9vw,7rem)}.wedding-vow h3{margin-bottom:1rem;color:var(--muted);font-size:.82rem;font-weight:600;letter-spacing:.04em}.redacted-name,.folded-person:before{background-color:transparent;background-image:radial-gradient(circle,#24364b 0 .055em,transparent .07em);background-size:.26em .26em;background-position:center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}.redacted-name{width:2.6em;height:.82em;margin-inline:.14em;display:inline-block;vertical-align:-.05em}.folded-person:before{content:"";width:3.12em;height:.82em;left:50%;right:auto;transform:translate(-50%)}@media(max-width:760px){.support-principles article{grid-template-columns:1fr;gap:.6rem}.life-feature{grid-template-columns:1fr;gap:1.2rem;align-items:start}.life-feature strong{justify-self:end}.wedding-copy{width:min(calc(100% - 32px),700px)}.life-essay-body{padding-bottom:clamp(7rem,14vw,12rem)}.wedding-copy p{font-size:1rem;line-height:1.9}.chapter-heading{grid-template-columns:1fr;gap:1.2rem}.wedding-stats{grid-template-columns:repeat(2,1fr)}.wedding-stats div{min-height:120px;border-bottom:1px solid var(--line)}.wedding-stats div:nth-child(odd){border-left:0}.invitation-toolbar{align-items:stretch;flex-direction:column;gap:1rem}.invitation-progress{min-width:0;text-align:left}.invitation-stage{margin-inline:-16px;padding:2.5rem 1rem}.invitation-figure figcaption{padding-inline:0}.proposal-gallery{grid-template-columns:1fr 1fr;gap:.5rem}.proposal-gallery img{min-height:230px}.proposal-wide{grid-column:1 / -1;grid-row:auto;aspect-ratio:3 / 2}.proposal-ring{grid-column:1 / -1;aspect-ratio:3 / 2}.venue-grid{grid-template-columns:1fr}}.invitation-transcript{margin:1.5rem auto 2.5rem;padding:1rem 1.25rem;border:1px solid var(--line)}.invitation-transcript summary{cursor:pointer;color:var(--accent)}.invitation-transcript dl{margin:1rem 0}.invitation-transcript dl>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding-block:.6rem;border-bottom:1px solid var(--line)}.invitation-transcript dt,.invitation-transcript dd{margin:0}
