:root{--color-bg:#fffdf9;--color-text:#4a3728;--color-text-muted:#8b7355;--color-primary:#ffbfa8;--color-primary-hover:#ffd5c6;--color-secondary:#fff3cd;--color-accent:#a8e6cf;--color-card-bg:#fff;--color-border:#f0e6d2;--font-main:"Quicksand","Pretendard","Noto Sans KR","Inter",sans-serif;--shadow-soft:0 10px 40px rgba(74,55,40,.08);--shadow-sm:0 4px 12px rgba(74,55,40,.05);--radius-xl:32px;--radius-lg:24px;--radius-md:16px;--radius-pill:9999px}*{box-sizing:border-box}#__nuxt,body,html{margin:0;min-height:100%;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-main);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:inherit;outline:none}.container{margin:0 auto;max-width:1100px}.section{padding:100px 20px}.section-title{color:var(--color-text);font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0 0 48px;text-align:center}.primary-btn,.secondary-btn{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:16px;font-weight:700;justify-content:center;padding:14px 28px;transition:all .2s cubic-bezier(.25,.8,.25,1)}.primary-btn{background:var(--color-primary);box-shadow:var(--shadow-sm);color:var(--color-text)}.primary-btn:hover{background:var(--color-primary-hover);box-shadow:0 6px 16px #ffbfa866;transform:translateY(-2px)}.primary-btn:active{transform:translateY(1px)}.secondary-btn{background:var(--color-card-bg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text)}.secondary-btn:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.soft-card{background:var(--color-card-bg);border:1px solid hsla(0,0%,100%,.5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;transition:transform .3s ease,box-shadow .3s ease}.soft-card:hover{box-shadow:var(--shadow-soft);transform:translateY(-6px)}.grid{display:grid;gap:32px}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.grid-3{grid-template-columns:1fr}.section{padding:60px 20px}}.features-error-hint{color:var(--color-text-muted);font-size:14px;margin-top:20px;text-align:center}.pet-img-large{border-radius:var(--radius-xl);height:auto;max-width:400px;transition:transform .3s ease;width:100%}.pet-img-large:hover{transform:translateY(-8px) scale(1.02)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1}.site-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#fffdf9d9;border-bottom:1px solid rgba(74,55,40,.05);position:sticky;top:0;z-index:50}.site-header .inner{gap:20px;justify-content:space-between;margin:0 auto;max-width:1100px;padding:16px 20px}.logo-area,.site-header .inner{align-items:center;display:flex}.logo-area{gap:12px}.logo-icon{border-radius:50%;box-shadow:0 4px 10px #ffbfa84d;height:36px;-o-object-fit:cover;object-fit:cover;width:36px}.logo{color:var(--color-text);font-size:22px;font-weight:800;letter-spacing:-.5px}.nav{display:flex;gap:8px}.nav a{border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:15px;font-weight:600;padding:8px 16px;transition:all .2s ease}.nav a:hover{background:#4a37280a;color:var(--color-text)}.actions{align-items:center;display:flex}.login-btn{background:var(--color-text);border-radius:var(--radius-pill);box-shadow:0 4px 12px #4a372826;color:var(--color-bg);font-size:14px;font-weight:700;padding:10px 24px;transition:all .2s ease}.login-btn:hover{background:#362619;box-shadow:0 6px 16px #4a372833;transform:translateY(-2px)}.login-btn:active{transform:translateY(1px)}.user-info{align-items:center;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);display:flex;gap:16px;padding:6px 8px 6px 20px}.user-nickname{color:var(--color-text);font-size:14px;font-weight:700}.logout-btn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:13px;font-weight:600;padding:6px 16px;transition:all .2s}.logout-btn:hover{background:#f5efeb;color:var(--color-text)}.site-footer{background:var(--color-card-bg);margin-top:auto}.footer-inner{align-items:center;border-top:1px dashed var(--color-border);color:var(--color-text-muted);display:flex;flex-direction:column;margin:0 auto;max-width:1100px;padding:48px 20px;text-align:center}.footer-brand{color:var(--color-text);font-size:20px;font-weight:800;margin:0 0 12px}.footer-desc{font-size:14px;margin:0 0 16px}.footer-copy{font-size:13px;margin:0;opacity:.8}@media(max-width:900px){.site-header .inner{flex-wrap:wrap}.nav{justify-content:center;margin-top:16px;order:3;overflow-x:auto;padding-bottom:8px;padding-top:8px;width:100%}}.hero{background:var(--color-bg);overflow:hidden;padding:100px 20px 120px;position:relative}.hero:before{background:radial-gradient(circle,#fff3cd 0,#fff3cd00 70%);height:600px;opacity:.6;right:-5%;top:-10%;width:600px}.hero:after,.hero:before{border-radius:50%;content:"";position:absolute;z-index:0}.hero:after{background:radial-gradient(circle,#ffd5c6 0,#ffd5c600 70%);bottom:-20%;height:500px;left:5%;opacity:.5;width:500px}.hero-inner{align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1100px;position:relative;z-index:10}.badge.cute-badge{background:var(--color-primary);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);display:inline-block;font-size:14px;margin-bottom:24px;padding:8px 16px}.badge.cute-badge,.hero-title{color:var(--color-text);font-weight:800}.hero-title{font-size:44px;letter-spacing:-1px;line-height:1.3;margin:0 0 24px;word-break:keep-all}.hero-sub{color:var(--color-text-muted);font-size:18px;line-height:1.6;margin:0 0 40px}.hero-actions{display:flex;flex-wrap:wrap;gap:16px}.hero-card{aspect-ratio:1/1;background-image:url(../images/hero_background.png);background-position:50%;background-size:cover;border:6px solid #fff;border-radius:var(--radius-xl);box-shadow:0 40px 80px #4a372826;max-width:500px;overflow:hidden;position:relative;width:100%}.hero-card,.pet-container{align-items:center;display:flex;justify-content:center}.pet-container{cursor:pointer;height:80px;pointer-events:auto;position:absolute;transition:filter .3s;width:80px;z-index:5}.pet-sprite{background-position:50%;background-repeat:no-repeat;background-size:contain;height:100%;image-rendering:pixelated;width:100%}.pet-choco .pet-sprite{background-image:url(../pets/choco/pet_idle.png)}.pet-choco.is-walking .pet-sprite{animation:choco-walk-frames .8s steps(1) infinite}@keyframes choco-walk-frames{0%{background-image:url(../pets/choco/walk_1.png)}12.5%{background-image:url(../pets/choco/walk_2.png)}25%{background-image:url(../pets/choco/walk_3.png)}37.5%{background-image:url(../pets/choco/walk_4.png)}50%{background-image:url(../pets/choco/walk_5.png)}62.5%{background-image:url(../pets/choco/walk_6.png)}75%{background-image:url(../pets/choco/walk_7.png)}87.5%{background-image:url(../pets/choco/walk_8.png)}}.pet-yorkshire .pet-sprite{background-image:url(../pets/yorkshire/pet_idle.png)}.pet-yorkshire.is-walking .pet-sprite{animation:york-walk-frames .7s steps(1) infinite}@keyframes york-walk-frames{0%{background-image:url(../pets/yorkshire/walk_1.png)}11.1%{background-image:url(../pets/yorkshire/walk_2.png)}22.2%{background-image:url(../pets/yorkshire/walk_3.png)}33.3%{background-image:url(../pets/yorkshire/walk_4.png)}44.4%{background-image:url(../pets/yorkshire/walk_5.png)}55.5%{background-image:url(../pets/yorkshire/walk_6.png)}66.6%{background-image:url(../pets/yorkshire/walk_7.png)}77.7%{background-image:url(../pets/yorkshire/walk_8.png)}88.8%{background-image:url(../pets/yorkshire/walk_9.png)}}.pet-container:hover{filter:brightness(1.2)}.pet-container:hover .pet-sprite{animation-play-state:paused}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.card-header h3{color:var(--color-text);font-size:22px;font-weight:800;margin:0}.soft-card p{color:var(--color-text-muted);font-size:16px;line-height:1.6;margin:0}.pet-icon-small{background:var(--color-bg);border-radius:50%;box-shadow:var(--shadow-sm);height:56px;-o-object-fit:contain;object-fit:contain;padding:4px;width:56px}.alt-bg{background:#faf8f5;border-bottom:1px dashed var(--color-border);border-top:1px dashed var(--color-border)}@media(max-width:900px){.hero-inner{gap:40px;grid-template-columns:1fr;text-align:center}.hero-actions{justify-content:center}.hero-title{font-size:42px}}.page-section .container{background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 8px 24px #0000000a;padding:32px}.modal-overlay{align-items:center;animation:overlay-fade-in .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#4a372866;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:1000}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.modal-container{align-items:center;animation:modal-slide-up .3s cubic-bezier(.175,.885,.32,1.275);background:var(--color-card-bg);border-radius:var(--radius-xl);box-shadow:0 24px 64px #4a372826;display:flex;flex-direction:column;max-width:420px;padding:40px 32px;position:relative;width:100%}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-close{align-items:center;background:var(--color-bg);border-radius:50%;color:var(--color-text-muted);display:flex;font-size:16px;height:32px;justify-content:center;position:absolute;right:24px;top:24px;transition:all .2s ease;width:32px}.modal-close:hover{background:#feece1;color:var(--color-text);transform:rotate(90deg)}.modal-logo{border-radius:50%;box-shadow:var(--shadow-sm);height:64px;margin-bottom:16px;-o-object-fit:cover;object-fit:cover;width:64px}.modal-title-text{color:var(--color-text);font-size:24px;font-weight:800;letter-spacing:-.5px;margin:0 0 8px}.modal-instruction{color:var(--color-text-muted);font-size:15px;margin:0 0 32px;text-align:center}.auth-tabs{background:var(--color-bg);display:flex;margin-bottom:24px;padding:4px;width:100%}.auth-tab,.auth-tabs{border-radius:var(--radius-pill)}.auth-tab{background:transparent;color:var(--color-text-muted);cursor:pointer;flex:1;font-size:15px;font-weight:700;padding:10px;text-align:center;transition:all .2s ease}.auth-tab.active{background:#fff;box-shadow:var(--shadow-sm)}.auth-tab.active,.auth-tab:hover:not(.active){color:var(--color-text)}.modal-form{gap:20px;width:100%}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-label{color:var(--color-text);font-size:14px;font-weight:700;margin-left:12px}.form-input{background:var(--color-bg);border:2px solid transparent;border-radius:var(--radius-pill);box-shadow:inset 0 2px 4px #4a372805;color:var(--color-text);font-size:15px;outline:none;padding:14px 20px;transition:all .2s;width:100%}.form-input:focus{background:var(--color-card-bg);border-color:var(--color-primary);box-shadow:0 0 0 4px #ffbfa84d}.form-input.is-error{background:#fff5f5;border-color:#ff8787}.error-message{color:#ff6b6b;font-size:13px;font-weight:700;margin-top:4px;text-align:center}.modal-submit-btn{background:var(--color-primary);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);color:var(--color-text);font-size:16px;font-weight:800;margin-top:12px;padding:16px;transition:all .2s cubic-bezier(.25,.8,.25,1);width:100%}.modal-submit-btn:hover{background:var(--color-primary-hover);box-shadow:0 8px 20px #ffbfa880;transform:translateY(-2px)}.modal-submit-btn:active{transform:translateY(1px)}.btn-spinner{animation:spin 1s linear infinite;border:3px solid rgba(74,55,40,.2);border-radius:50%;border-top:3px solid var(--color-text);display:inline-block;height:14px;margin-right:8px;vertical-align:sub;width:14px}@keyframes spin{to{transform:rotate(1turn)}}.modal-footer{color:var(--color-text-muted);font-size:14px;margin-top:24px;text-align:center}.skeleton-card{animation:skeleton-pulse 1.5s ease-in-out infinite;background:var(--color-card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px}.skeleton-title{height:24px;margin-bottom:20px;width:50%}.skeleton-text,.skeleton-title{background:var(--color-bg);border-radius:var(--radius-pill)}.skeleton-text{height:16px;margin-bottom:12px}.skeleton-text:last-child{width:80%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.6}}
