:root{--brand-primary:#d53925;--brand-background:#5ec5f2;--brand-secondary:#2a5ba6;--text-primary:#000;--text-secondary:#333;--text-tertiary:#1a1a1a;--vh:1vh;--safe-area-inset-top:env(safe-area-inset-top,0px);--safe-area-inset-bottom:env(safe-area-inset-bottom,0px);--safe-area-inset-left:env(safe-area-inset-left,0px);--safe-area-inset-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;height:-webkit-fill-available;overflow:hidden}body{font-family:var(--font-noto-sans-kr),"Noto Sans CJK KR","Noto Sans KR","Malgun Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;margin:0;min-height:100vh;min-height:-webkit-fill-available;min-height:calc(var(--vh, 1vh)*100);padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layout-container,body{background:var(--brand-background);overflow:hidden;position:relative}.layout-container{justify-content:center}.content-wrapper,.layout-container{align-items:center;display:flex;flex-direction:column;height:100vh;height:calc(var(--vh, 1vh)*100);width:100%}.content-wrapper{justify-content:flex-start;margin:0 auto;max-width:100%;padding:1rem;padding-bottom:calc(200px + var(--safe-area-inset-bottom));padding-top:calc(1rem + var(--safe-area-inset-top));position:relative}@media (min-width:768px){.content-wrapper{max-width:600px;padding:2rem 2rem 110px}}@media (min-width:1024px){.content-wrapper{max-width:680px;padding:2rem 2rem 110px}}.top-section{flex-shrink:0;justify-content:flex-start;padding-top:2rem;position:relative;z-index:20}.bottom-section,.top-section{align-items:center;display:flex;flex-direction:column;width:100%}.bottom-section{background:var(--brand-background);bottom:calc(85px + var(--safe-area-inset-bottom));gap:.75rem;justify-content:center;left:0;padding:1rem 0;position:fixed;right:0;z-index:1}@media (min-width:1200px) and (min-height:700px){.bottom-section{bottom:auto;margin-top:auto;padding:1rem 0;position:relative}}.mobile-layout,.title-container{max-width:100%;width:100%}.title-container{align-items:center;display:flex;flex-shrink:0;justify-content:center}.title-container svg{height:auto;max-height:18vh;max-width:min(400px,85vw);pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;width:100%;-webkit-user-drag:none!important;-khtml-user-drag:none!important;-moz-user-drag:none!important;-o-user-drag:none!important;user-drag:none!important}@media (max-width:480px){.title-container svg{max-height:15vh;max-width:min(350px,80vw)}}.brand-name{align-items:center;display:flex;flex-shrink:0;justify-content:center;text-align:center;width:100%}.brand-name svg{height:auto;max-height:14vh;max-width:min(380px,85vw);pointer-events:none!important;user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;width:100%;-webkit-user-drag:none!important;-khtml-user-drag:none!important;-moz-user-drag:none!important;-o-user-drag:none!important;user-drag:none!important}.phone-icon svg{height:auto;max-height:35px;width:100%}@media (max-width:480px){.brand-name svg{max-height:12vh;max-width:min(320px,80vw)}}.korean-text{font-family:inherit;letter-spacing:-.01em;line-height:1.6}.fortune-container{align-items:center;display:flex;flex-direction:column;justify-content:center;left:50%;max-width:min(420px,75vw);padding:.5rem;position:absolute;top:55%;transform:translate(-50%,-50%);width:100%;z-index:10}@media (max-width:768px){.fortune-container{max-width:min(380px,85vw);top:52%}}.fortune-card{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) forwards;background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.1);max-width:min(400px,70vw);padding:clamp(.75rem,2.5vh,1.5rem)}.fortune-card,.fortune-text{align-items:center;display:flex;justify-content:center;width:100%}.fortune-text{color:var(--text-primary);flex-direction:column;font-size:clamp(.9rem,2.3vh,1.15rem);gap:.5rem;line-height:1.8;text-align:center}.brand-text,.fortune-text{font-family:inherit;font-weight:700}.loading-indicator{align-items:center;display:flex;flex-direction:column;gap:1rem;height:100vh;height:calc(var(--vh, 1vh)*100);justify-content:center;padding:2rem;width:100%}.spinner{animation:spin 1s linear infinite;border:4px solid hsla(0,0%,100%,.3);border-radius:50%;border-top:4px solid var(--brand-primary);height:48px;width:48px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-text{color:var(--text-secondary);font-family:inherit;font-size:1.1rem;font-weight:700}.error-container{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.1);display:flex;flex-direction:column;gap:1rem;height:auto;justify-content:center;margin:auto;max-width:min(320px,85vw);min-height:200px;padding:1.5rem}.error-icon{font-size:2.5rem;line-height:1}.error-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.error-message,.error-title{font-family:inherit;margin:0}.error-message{color:var(--text-secondary);font-size:.95rem;text-align:center}.retry-button{background:var(--brand-primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:700;padding:.6rem 1.5rem;transition:background .3s ease}.retry-button:hover{background:#b73a23}.retry-button:active{transform:scale(.98)}.phone-button{flex-shrink:0;margin:.25rem 0}.social-buttons{align-items:center;background:#34b6e7;bottom:0;bottom:var(--safe-area-inset-bottom);box-shadow:0 -2px 8px rgba(0,0,0,.3);display:flex;gap:clamp(2rem,5vw,3rem);justify-content:center;left:0;min-height:80px;padding:1rem .75rem;padding-bottom:calc(1rem + var(--safe-area-inset-bottom));position:fixed;right:0;z-index:100}@media (min-width:1200px) and (min-height:700px){.social-buttons{border-radius:0 12px 12px 0;bottom:auto;box-shadow:2px 0 8px rgba(0,0,0,.3);flex-direction:column;gap:1.5rem;height:auto;justify-content:center;left:0;min-height:320px;padding:1.5rem 1rem;right:auto;top:50%;transform:translateY(-50%);width:auto}.content-wrapper{padding-bottom:2rem}.fortune-container{top:65%}.social-btn{flex-shrink:0;height:60px;width:60px}.social-btn svg{height:32px;width:32px}}.social-btn{align-items:center;background:#fff;border:none;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.1);cursor:pointer;display:flex;height:clamp(45px,9vw,60px);justify-content:center;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:clamp(45px,9vw,60px)}.social-btn:hover{box-shadow:0 8px 20px rgba(0,0,0,.2);transform:translateY(-3px)}.social-btn:active{box-shadow:0 2px 8px rgba(0,0,0,.15);transform:translateY(-1px)}.social-btn svg{height:clamp(24px,4.5vw,30px);width:clamp(24px,4.5vw,30px)}.oasis-btn,.refresh-btn{background:#fff}.oasis-btn{color:var(--brand-secondary);line-height:1.1;padding:0;text-align:center}.download-btn,.share-btn{background:#fff}@media (max-width:480px){.fortune-text{font-size:.9rem}.fortune-card{padding:1.25rem}}@media (max-height:500px){.fortune-container{max-width:min(320px,65vw)}.fortune-card{max-width:min(300px,60vw);padding:clamp(.5rem,2vh,.875rem)}.fortune-text{font-size:clamp(.75rem,2vh,.9rem)}}@media (max-height:600px){.fortune-container{max-width:min(360px,70vw)}.fortune-card{max-width:min(340px,65vw);padding:clamp(.625rem,2.25vh,1rem)}.fortune-text{font-size:clamp(.8rem,2.1vh,1rem)}}@media (min-height:900px){.fortune-container{max-width:min(500px,80vw)}.fortune-card{max-width:min(460px,75vw);padding:clamp(1.25rem,3.5vh,1.75rem)}.fortune-text{font-size:clamp(1rem,2.5vh,1.25rem)}}@media (max-height:700px){.fortune-container{max-width:min(380px,72vw)}.fortune-card{max-width:min(360px,68vw);padding:clamp(.75rem,2.5vh,1.25rem)}.title-container svg{max-height:15vh}.brand-name svg{max-height:10vh}.fortune-text{font-size:.95rem}.fortune-card{padding:1rem}}@media (max-width:768px) and (min-height:700px){.fortune-container{max-width:min(460px,80vw)}.fortune-card{max-width:min(440px,75vw)}}@media (max-width:768px) and (min-height:800px){.fortune-container{max-width:min(480px,82vw)}.fortune-card{max-width:min(460px,78vw)}}