:root{--pink-50: #fff5f9;--pink-100: #ffe4ef;--pink-200: #ffc9dc;--pink-400: #ff8fb8;--pink-500: #ff6fa3;--pink-700: #d94f86;--ink: #6b2d4a;--ink-soft: #9a5675;--card: #ffffffcc;--font-body: "Fredoka", system-ui, sans-serif;--font-script: "Pacifico", cursive}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:linear-gradient(180deg,var(--pink-100) 0%,var(--pink-50) 45%,var(--pink-200) 100%);min-height:100vh;overflow-x:hidden}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.cat{display:block;filter:drop-shadow(0 6px 10px #d94f8633)}.hearts-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.floating-heart{position:absolute;top:0}.home>section{position:relative;z-index:1}.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px 96px;text-align:center;overflow:hidden}.title{line-height:1.05}.title-line{display:block;font-size:clamp(2.6rem,9vw,5.5rem);font-weight:700;color:var(--ink);letter-spacing:.01em}.letter{display:inline-block}.title-name{display:inline-block;margin-top:4px;font-family:var(--font-script);font-weight:400;font-size:clamp(3.4rem,13vw,8rem);color:var(--pink-500);text-shadow:3px 4px 0 #fff,6px 8px 0 var(--pink-200)}.title-heart{display:inline-block;margin-left:10px;font-size:.55em;color:var(--pink-500);vertical-align:middle}.hero-cat-wrap{margin-top:12px;display:flex;flex-direction:column;align-items:center}.cat-hero{width:clamp(150px,32vw,240px)}.cat-shadow{width:55%;height:14px;margin-top:-6px;border-radius:50%;background:radial-gradient(#d94f8633,transparent 70%)}.cat-peek{position:absolute;right:0;top:18%;width:clamp(90px,16vw,160px)}.cat-corner-left{position:absolute;left:3%;bottom:8%;width:clamp(80px,14vw,150px)}.scroll-hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.95rem;color:var(--ink-soft)}.paw{font-size:1.4rem;display:inline-block}.note-section{padding:64px 16px;display:flex;flex-direction:column;align-items:center;gap:40px}.note-card{position:relative;max-width:560px;width:100%;padding:72px 28px 36px;background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:3px dashed var(--pink-400);border-radius:28px;text-align:center;box-shadow:0 18px 40px #d94f861f}.cat-note{position:absolute;width:110px;top:-70px;left:50%;margin-left:-55px}.note-line{font-size:clamp(1.05rem,3.6vw,1.3rem);line-height:1.6;margin-bottom:14px}.note-strong{font-family:var(--font-script);color:var(--pink-500);font-size:clamp(1.5rem,5vw,2rem);margin:18px 0 0}.cat-row{display:flex;gap:clamp(12px,5vw,48px);align-items:flex-end;justify-content:center;flex-wrap:wrap}.cat-row-item{width:clamp(80px,20vw,130px);cursor:pointer}.survey-section{padding:48px 16px 64px;display:flex;flex-direction:column;align-items:center}.survey-card{margin-top:70px;max-width:480px;width:100%;padding:32px 28px 40px;background:#fff;border-radius:32px;text-align:center;box-shadow:0 0 0 6px var(--pink-200),0 24px 60px #d94f8633}.cat-walk{width:170px;margin:-90px auto 8px}.survey-card h2{font-size:clamp(1.5rem,5vw,2rem);margin-bottom:10px}.survey-card p{color:var(--ink-soft);line-height:1.6;margin-bottom:28px}.survey-btn{font-family:var(--font-body);font-size:1.25rem;font-weight:600;color:#fff;background:var(--pink-500);border:none;border-radius:999px;padding:16px 36px;cursor:pointer}.survey-btn:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.footer-note{margin-top:40px;font-size:.9rem;color:var(--ink-soft)}.survey{min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:20px 16px 48px}.survey>*{position:relative;z-index:1}.survey-top{width:100%;max-width:480px;display:flex;align-items:center;gap:14px;margin-bottom:24px}.survey-home{color:var(--pink-700);font-weight:600;text-decoration:none;white-space:nowrap}.progress{flex:1;height:12px;background:#fff;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 2px var(--pink-200)}.progress-fill{height:100%;background:var(--pink-500);border-radius:999px}.survey-stage{width:100%;display:flex;justify-content:center}.q-card{margin-top:0;display:flex;flex-direction:column;align-items:center;gap:14px}.q-cat-slot{position:relative;height:210px;width:100%;display:flex;align-items:flex-end;justify-content:center}.q-cat{width:160px;max-height:200px;object-fit:contain}.q-cat-buff{width:200px;max-height:210px}.buff-placeholder{display:flex;align-items:center;justify-content:center;gap:2px}.flex{font-size:3rem;display:inline-block}.buff-placeholder .flex-left{scale:-1 1}.burst{position:absolute;left:50%;top:50%;pointer-events:none}.burst span{position:absolute;font-size:1.8rem;margin:-.9rem 0 0 -.9rem}.q-number{font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--pink-500)}.q-title{font-size:clamp(1.5rem,5vw,2rem);font-weight:700}.q-hint{color:var(--ink-soft)}.q-input{width:100%;font-family:var(--font-body);font-size:1.3rem;text-align:center;color:var(--ink);padding:14px 18px;border:3px solid var(--pink-200);border-radius:18px;background:var(--pink-50);outline:none;transition:border-color .2s,background .2s}.q-input:focus{border-color:var(--pink-400);background:#fff}.q-input-buff{font-weight:700;color:var(--pink-700);border-color:var(--pink-500);background:#fff}.slider{position:relative;width:100%;height:44px;margin-top:8px}.slider-track{position:absolute;left:0;right:0;top:50%;height:14px;margin-top:-7px;background:var(--pink-100);border-radius:999px;box-shadow:inset 0 0 0 2px var(--pink-200);overflow:hidden}.slider-fill{height:100%;background:linear-gradient(90deg,var(--pink-400),var(--pink-500));border-radius:999px}.slider-thumb{position:absolute;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;display:grid;place-items:center;font-size:1.3rem;background:#fff;border:3px solid var(--pink-500);border-radius:50%;box-shadow:0 4px 10px #d94f8644;pointer-events:none}.slider input{position:absolute;top:0;right:-22px;bottom:0;left:-22px;width:calc(100% + 44px);height:100%;opacity:0;cursor:grab;margin:0}.slider input:active{cursor:grabbing}.slider:has(input:focus-visible) .slider-thumb{outline:3px solid var(--ink);outline-offset:3px}.slider-labels{position:relative;width:100%;height:56px}.slider-label{position:absolute;top:0;transform:translate(-50%);font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--ink-soft);background:none;border:none;cursor:pointer;white-space:nowrap;padding:4px;transition:color .2s,transform .2s}.slider-label:first-child{transform:none;left:0!important}.slider-label:last-child{transform:translate(-100%)}.slider-label.active{color:var(--pink-700);font-weight:700}.slider-icon{width:54px;display:block;transition:transform .2s}.slider-label.active .slider-icon{transform:scale(1.2) rotate(-6deg)}.q-actions{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:6px}.q-textarea{font-size:1.05rem;text-align:left;resize:vertical;min-height:90px;line-height:1.5}.q-card .q-hint{margin:-4px 0 0;text-align:center}.choice-list{width:100%;display:flex;flex-direction:column;gap:10px}.choice{font-family:var(--font-body);font-size:1.05rem;font-weight:500;color:var(--ink);padding:12px 16px;border-radius:16px;border:3px solid var(--pink-200);background:var(--pink-50);cursor:pointer;text-align:left;transition:border-color .2s,background .2s}.choice:hover{border-color:var(--pink-400)}.choice.active{border-color:var(--pink-500);background:var(--pink-500);color:#fff}.choice:focus-visible,.mood:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.followup{width:100%;overflow:hidden}.followup-q{font-weight:600;margin:4px 0 10px;text-align:center}.followup-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.followup-btns .choice{text-align:center}.gate{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:16px}.gate>*{position:relative;z-index:1}.gate .survey-card{margin-top:0}.gate-error{color:#c0264d;font-weight:500;min-height:1.4em}.mood-grid{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mood{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-family:var(--font-body);font-size:.78rem;font-weight:500;color:var(--ink);background:var(--pink-50);border:3px solid transparent;border-radius:16px;cursor:pointer}.mood img{width:100%;height:64px;object-fit:contain}.mood.active{border-color:var(--pink-500);background:#fff}.upload-btn{width:100%;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--pink-700);padding:14px;border:3px dashed var(--pink-400);border-radius:16px;background:var(--pink-50);cursor:pointer}.file-row{width:100%;display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:12px;background:var(--pink-50);overflow:hidden}.file-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none}.file-icon{display:grid;place-items:center;font-size:1.4rem;background:#fff}.file-name{flex:1;min-width:0;text-align:left;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name small{display:block;color:var(--ink-soft);font-size:.75rem;white-space:normal}.file-error .file-name small{color:#c0264d}.file-remove{border:none;background:none;color:var(--ink-soft);font-size:1rem;cursor:pointer;padding:6px}.form-error{color:#c0264d;font-weight:500;text-align:center}.friends-card{gap:18px}.friends-area{position:relative;width:100%;height:240px}.yes-wrap{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%)}.no-btn{font-family:var(--font-body);font-size:1.05rem;font-weight:600;color:var(--ink-soft);background:#fff;border:3px solid var(--pink-200);border-radius:999px;padding:12px 24px;cursor:pointer;white-space:nowrap;touch-action:none;z-index:2}.yes-btn{z-index:1}.celebrate{position:relative}.celebrate .burst{top:30%}.celebrate-cats{display:flex;align-items:flex-end;justify-content:center;gap:8px;height:170px}.celebrate-cats img{width:30%;max-height:160px;object-fit:contain}.survey-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.ghost-btn{font-family:var(--font-body);font-size:1rem;color:var(--pink-700);background:none;border:none;cursor:pointer;font-weight:600}@media (max-width: 600px){.cat-peek{top:8%}.cat-corner-left{bottom:12%}}
