@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Gowun+Batang:wght@400;700&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Noto Sans KR,sans-serif;color:#3b3030;background:#f3eee8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;background:#f3eee8}button,a{-webkit-tap-highlight-color:transparent}.direct-experience{position:fixed;inset:0;overflow:hidden;background:#111}.direct-stage{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;background:#111}.camera-feed{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111}.direct-photo{position:absolute;z-index:1;top:50%;left:50%;display:block;width:min(96vw,580px);height:96dvh;object-fit:contain;transform:translate(-50%,-50%) scale(.3)}.camera-error{position:absolute;z-index:10;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:28px;color:#fff8f2;background:#0f0d0dcc;text-align:center}.camera-error p{max-width:320px;font-size:15px;line-height:1.8}.camera-error button{border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:12px 20px;color:#fff8f2;background:#ffffff1f;font:inherit}.experience-page{position:relative;isolation:isolate;display:flex;flex-direction:column;width:min(100%,560px);height:100dvh;min-height:650px;margin:0 auto;overflow:hidden;padding:max(16px,env(safe-area-inset-top)) 24px max(18px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 48%,#ffffffd1,#fff0 43%),linear-gradient(155deg,#f6f1eb,#f1e9e1 55%,#eee5de);box-shadow:0 0 90px #482f2814}.experience-grain{position:absolute;z-index:-1;inset:0;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E")}.ambient-light{position:absolute;z-index:-1;width:240px;height:240px;border-radius:50%;filter:blur(70px);opacity:.24;pointer-events:none}.ambient-light-one{top:29%;left:-170px;background:#dfb4ae}.ambient-light-two{top:34%;right:-175px;background:#ead2a9}.experience-header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;flex:0 0 46px}.monogram,.header-link{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(138,102,80,.26);border-radius:50%;color:#755847;text-decoration:none}.monogram{font:18px/1 Gowun Batang,Georgia,serif}.header-link{justify-self:end;font-size:16px}.header-caption{display:flex;align-items:center;justify-content:center;gap:10px;color:#8e796c;font-size:9px;font-weight:600;letter-spacing:.18em}.header-divider{width:20px;height:1px;background:#cbb9ab}.experience-intro{z-index:1;flex:0 0 auto;padding-top:clamp(18px,4.2vh,36px);text-align:center;animation:intro-in .8s ease-out both}.eyebrow{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:13px;color:#9e7a64;font-size:8px;font-weight:700;letter-spacing:.22em}.eyebrow span{color:#ba8a68;font-size:12px}.experience-intro h1{margin:0;color:#413331;font:400 clamp(31px,8.2vw,41px)/1.28 "Gowun Batang",Georgia,serif;letter-spacing:-.075em}.experience-intro h1 em{color:#9c675d;font-style:normal}.experience-intro p{margin:12px 0 0;color:#907e74;font-size:12px;line-height:1.8;letter-spacing:-.02em}.mobile-break{display:none}.model-stage{position:relative;display:grid;flex:1 1 auto;min-height:245px;place-items:center;margin:0 -14px;isolation:isolate}.wedding-model{position:relative;z-index:2;display:block;width:min(100%,450px);height:100%;min-height:280px;outline:none;background:transparent;--poster-color: transparent;--progress-bar-color: #a76f62;--progress-mask: transparent}.stage-orbit{position:absolute;z-index:0;left:50%;top:51%;width:min(76vw,390px);aspect-ratio:1;border:1px solid rgba(163,126,100,.13);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.orbit-two{width:min(62vw,320px);border-style:dashed;opacity:.6;animation:orbit-turn 70s linear infinite}.model-fallback{position:absolute;z-index:1;left:50%;top:50%;width:min(39vw,174px);aspect-ratio:.575;padding:6px;border:1px solid rgba(176,136,88,.75);background:linear-gradient(135deg,#fff9ef,#e5d0b8);box-shadow:0 22px 36px #52382e3d,inset 0 0 0 3px #ffffffad;transform:translate(-50%,-50%) rotate(-2deg);transition:opacity .45s ease,transform .65s cubic-bezier(.2,.8,.2,1);pointer-events:none}.model-fallback.is-loaded{opacity:0;transform:translate(-50%,-45%) scale(.96)}.model-fallback img{display:block;width:100%;height:100%;object-fit:cover}.model-fallback span{position:absolute;bottom:-8px;left:-17%;width:134%;height:10px;border:1px solid rgba(177,139,91,.38);border-radius:2px;background:linear-gradient(90deg,#e6d0b4,#faf1df 48%,#ddc3a4);box-shadow:0 8px 14px #52382e21}.stage-label{position:absolute;z-index:3;left:50%;color:#aa9485;font-size:7px;font-weight:700;letter-spacing:.2em;white-space:nowrap;transform:translate(-50%);pointer-events:none}.stage-label-top{top:5%}.stage-label-top span,.hint-dot{display:inline-block;width:5px;height:5px;margin-right:6px;border-radius:50%;background:#b68d70;vertical-align:1px}.stage-label-bottom{bottom:4%}.stage-label-bottom span{color:#b68d70;font-size:10px;vertical-align:-1px}.experience-footer{z-index:4;flex:0 0 auto;padding:5px 2px 0;text-align:center;animation:intro-in .8s .12s ease-out both}.ar-launch{position:relative;display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:58px;border:1px solid rgba(255,255,255,.28);border-radius:18px;padding:0 18px;color:#fffaf4;background:linear-gradient(110deg,#674844,#80584e 52%,#956857);box-shadow:0 12px 26px #5d3e3533,inset 0 1px #ffffff2e;font:600 14px DM Sans,Noto Sans KR,sans-serif;letter-spacing:-.02em;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.ar-launch:not(:disabled):active{transform:translateY(1px) scale(.99);box-shadow:0 6px 16px #5d3e352e}.ar-launch:disabled{opacity:.65;cursor:wait}.ar-launch-icon{font-size:17px;color:#f0cf9d}.ar-launch-arrow{position:absolute;right:19px;font-size:18px;font-weight:400}.ar-hint{min-height:31px;padding:10px 2px 0;color:#99867b;font-size:10px;line-height:1.55}.hint-dot{width:5px;height:5px;background:#bc8e69}.invitation-link{display:inline-flex;align-items:center;gap:8px;margin-top:5px;color:#725b50;font-size:11px;font-weight:600;text-decoration:none}.invitation-link span{color:#b1856a;font-size:15px}@keyframes intro-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes orbit-turn{to{transform:translate(-50%,-50%) rotate(360deg)}}.qr-page{position:relative;isolation:isolate;display:grid;min-height:100dvh;place-items:center;overflow:hidden;padding:28px;background:radial-gradient(ellipse at 50% 28%,rgba(255,255,255,.9),transparent 58%),linear-gradient(145deg,#f6f1eb,#eee4db)}.qr-page:before,.qr-page:after{content:"";position:absolute;z-index:-1;width:420px;aspect-ratio:1;border:1px solid rgba(155,116,91,.12);border-radius:50%}.qr-page:after{width:560px;border-style:dashed}.qr-card{width:min(100%,430px);padding:34px 34px 27px;border:1px solid rgba(151,119,99,.16);border-radius:28px;background:#fffcf8d4;box-shadow:0 28px 90px #523a301f,inset 0 1px #fff;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.qr-eyebrow{color:#a27b62;font-size:9px;font-weight:700;letter-spacing:.24em}.qr-card h1{margin:15px 0 8px;color:#493836;font:400 30px/1.3 Gowun Batang,Georgia,serif;letter-spacing:-.06em}.qr-card p{margin:0;color:#8e7c72;font-size:13px;line-height:1.85}.qr-code-wrap{display:grid;width:276px;height:276px;place-items:center;margin:22px auto 14px;border:1px solid #eadfd4;border-radius:21px;background:#fff;box-shadow:0 12px 35px #553d3217}.qr-code{display:block;width:240px;max-width:100%;height:auto}.qr-url{margin:0 0 19px;color:#a28f83;font-size:10px;word-break:break-all}.direct-button{display:block;padding:15px;border:1px solid rgba(143,101,82,.2);border-radius:14px;color:#70534a;background:#f3e9e1;text-decoration:none;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .2s ease}.direct-button:hover{background:#ead9cc}.qr-footnote{margin-top:17px;color:#ad9c90;font-size:10px}@media(max-height:740px){.experience-page{min-height:0}.experience-intro{padding-top:14px}.experience-intro h1{font-size:clamp(29px,7.7vw,36px)}.experience-intro p{margin-top:7px}.model-stage{min-height:215px}.wedding-model{min-height:230px}.experience-footer{padding-top:0}.ar-launch{min-height:54px}}@media(max-width:370px){.experience-page{padding-left:18px;padding-right:18px}.experience-intro h1{font-size:30px}.experience-intro p{font-size:11px}.mobile-break{display:initial}.stage-label{font-size:6px;letter-spacing:.16em}.ar-hint{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.model-fallback img{object-fit:contain;background:transparent}.petal-field{position:absolute;z-index:2;inset:0;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent)}.petal-field i{position:absolute;top:-8%;left:var(--x);width:var(--size);height:calc(var(--size) * 1.5);border-radius:100% 0;background:linear-gradient(145deg,#f9d7d9,#d9909e);opacity:.82;filter:drop-shadow(0 2px 3px rgba(126,76,78,.14));animation:petal-drift var(--duration) var(--delay) linear infinite}.petal-field i:nth-child(3n){background:linear-gradient(145deg,#fff0e6,#e6b5af)}.petal-field i:nth-child(4n){opacity:.55}.letter-reveal{position:absolute;z-index:3;top:50%;left:50%;display:block;width:min(80vw,420px);aspect-ratio:.68;border:1px solid #e8e5e2;padding:0;background:#fff;color:inherit;cursor:pointer;opacity:0;pointer-events:none;transform:translate(-50%,-50%);text-decoration:none;box-shadow:0 14px 50px #18121242;transition:opacity .35s ease}.letter-reveal.is-visible{opacity:1;pointer-events:auto;animation:letter-arrive .85s cubic-bezier(.18,.7,.22,1) both}.letter-paper{display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;width:100%;height:100%;padding:7% 6%;border:9px solid #fff;outline:1px solid #f0efed;outline-offset:-13px;color:#383331;background:#fff;text-align:center;font-family:Gowun Batang,"Noto Serif KR",AppleMyungjo,serif}.letter-paper-title{font-size:clamp(16px,4.5vw,23px);font-weight:700;line-height:1.55;letter-spacing:-.04em}.letter-flourish{color:#b28379;font-size:12px;letter-spacing:.3em}.letter-paper-copy{font-size:clamp(10px,2.9vw,13px);line-height:1.85;word-break:keep-all}.letter-paper-message{margin-top:-2%}.letter-paper-names{font-size:clamp(9px,2.55vw,12px);line-height:2;word-break:keep-all}.letter-paper-names b{font-weight:700}.bride-family-line{white-space:nowrap}.bride-family-line img{width:22px;height:24px;margin-right:1px;object-fit:contain;vertical-align:-7px}.letter-tap-hint{padding-top:3%;border-top:1px solid #e4ddd7;color:#9b7666;font-size:clamp(10px,2.7vw,12px);letter-spacing:.06em}@keyframes letter-arrive{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes petal-drift{0%{transform:translate3d(0,-8vh,0) rotate(0)}to{transform:translate3d(var(--drift),90vh,0) rotate(var(--spin))}}.letter-reveal:focus-visible{outline:2px solid #a47465;outline-offset:3px}@media(prefers-reduced-motion:reduce){.petal-field i{animation-duration:var(--duration)!important;animation-iteration-count:infinite!important}}
