:root{--bg:#0a1124;--navy:#0e1830;--navy2:#131f3d;--navy3:#1a2949;--line:#28395f;--gold:#b8934e;--gold-l:#d4b276;--gold-dim:#7d6535;--parch:#f1e8d3;--parch2:#e7dcc0;--parch3:#ddd0ae;--ink:#3b3122;--ink2:#66562f;--ink3:#8a7947;--text:#dfe3ee;--muted:#a3aec4}*{box-sizing:border-box}body{color:var(--text);background:#070d1c;min-height:100svh;margin:0;font-family:Noto Sans KR,Malgun Gothic,sans-serif;font-size:13px;line-height:1.7}button,input,textarea,select,a{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px}[hidden]{display:none!important}button{touch-action:manipulation}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Noto Serif KR,Batang,serif;font-weight:500;line-height:1.8}h1{font-size:19px}h2{font-size:17px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}h1[tabindex="-1"]:focus{outline:none}.app-shell{border:1px solid var(--line);background:linear-gradient(#0e1830,#0a1124 60%);border-radius:26px;width:390px;max-width:100%;margin:28px auto;position:relative;overflow:hidden;box-shadow:0 18px 55px #0008}.stars{pointer-events:none;opacity:.6;background-image:radial-gradient(1px 1px at 15% 10%,#cdd6ee,transparent),radial-gradient(1px 1px at 78% 6%,#cdd6ee,transparent),radial-gradient(1.4px 1.4px at 88% 20%,var(--gold-l),transparent),radial-gradient(1px 1px at 35% 26%,#cdd6ee,transparent),radial-gradient(1px 1px at 8% 42%,#cdd6ee,transparent),radial-gradient(1.4px 1.4px at 64% 47%,#cdd6ee,transparent),radial-gradient(1px 1px at 92% 58%,var(--gold-l),transparent),radial-gradient(1px 1px at 22% 68%,#cdd6ee,transparent),radial-gradient(1px 1px at 50% 84%,#cdd6ee,transparent),radial-gradient(1.2px 1.2px at 80% 90%,var(--gold-l),transparent);position:absolute;inset:0}.topbar{z-index:1;height:62px;color:var(--muted);justify-content:space-between;align-items:center;padding:16px 18px 7px;display:flex;position:relative}.logo-s{color:var(--gold-l);font-family:Playfair Display,Georgia,serif;font-size:26px;text-decoration:none}.icon-button{color:var(--muted);background:0 0;border:0;width:36px;height:36px;padding:0;font-size:23px}main{z-index:1;padding:10px 20px 20px;position:relative}.screen{overflow-wrap:anywhere;flex-direction:column;min-height:624px;display:flex}.page-title,.qtitle{text-align:center;color:var(--parch);margin:9px 0 19px;font-size:17px;line-height:1.9}.step-label{text-align:center;letter-spacing:.07em;color:var(--gold-l);margin:0 0 14px;font-size:10px}.helper{color:var(--muted);margin-bottom:17px;font-size:12px;line-height:1.85}.centered-copy{text-align:center}.footnote{color:var(--muted);text-align:center;margin:12px 0 0;font-size:10px;line-height:1.9}.bottom-actions{margin-top:auto;padding-top:18px}.bottomrow{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:22px;display:flex}.btn{text-align:center;cursor:pointer;border:1px solid var(--gold-dim);width:100%;color:var(--gold-l);letter-spacing:.06em;background:linear-gradient(#1a2949,#131f3d);border-radius:10px;min-height:46px;margin:10px 0 0;padding:13px;font-size:13px;font-weight:500;display:block}.btn.parchment{background:linear-gradient(180deg,var(--parch),var(--parch2));color:var(--ink)}.btn.plain{border-color:var(--line);color:var(--muted);background:0 0}.btn:hover:not(:disabled),.btn-next:hover{filter:brightness(1.1)}.btn-next{border:1px solid var(--gold);min-height:44px;color:var(--gold-l);white-space:nowrap;background:linear-gradient(#1a2949,#0e1830);border-radius:8px;padding:11px 25px;font-size:13px}.text-button{color:var(--muted);text-underline-offset:4px;background:0 0;border:0;min-height:44px;padding:12px 5px;font-size:11px}.text-button:hover{text-decoration:underline}.centered{margin:0 auto;display:block}.ornate{border:1px solid var(--gold-dim);border-radius:10px;padding:4px;position:relative}.ornate .inner{border:1px solid #b8934e73;border-radius:7px;flex-direction:column;height:100%;padding:18px 16px;display:flex}.corner{border-color:var(--gold);z-index:2;pointer-events:none;border-style:solid;width:14px;height:14px;position:absolute}.c-tl{border-width:2px 0 0 2px;border-radius:3px 0 0;top:-2px;left:-2px}.c-tr{border-width:2px 2px 0 0;border-radius:0 3px 0 0;top:-2px;right:-2px}.c-bl{border-width:0 0 2px 2px;border-radius:0 0 0 3px;bottom:-2px;left:-2px}.c-br{border-width:0 2px 2px 0;border-radius:0 0 3px;bottom:-2px;right:-2px}.greet{text-align:center;color:var(--parch);margin:8px 0 25px;font-size:15px;line-height:1.9}.greet small{color:var(--muted);margin-top:5px;font-family:Noto Sans KR,sans-serif;font-size:11px;font-weight:400;display:block}.home-card{flex:1;min-height:414px;margin:0 8px;display:flex}.home-card .inner{text-align:center;background:linear-gradient(174deg,var(--parch),var(--parch2));justify-content:center;align-items:center;width:100%}.home-card h2{color:var(--ink);margin:0 0 24px;font-size:17px;line-height:1.8}.btn-navy{width:auto;margin:0;padding:12px 30px}.compass{border:1px solid var(--gold-dim);width:110px;height:110px;color:var(--gold);background:radial-gradient(circle,#b8934e26,#0000 65%);border-radius:50%;justify-content:center;align-items:center;margin-bottom:30px;font-size:34px;display:flex;position:relative}.compass:before{content:"";border:1px dashed #b8934e80;border-radius:50%;position:absolute;inset:10px}.panel{background:linear-gradient(174deg,var(--parch),var(--parch2) 70%,var(--parch3));color:var(--ink);border-radius:10px;box-shadow:0 8px 26px #0006}.record-panel{padding:20px 18px}.record-panel h1{text-align:center;color:var(--ink);margin:0 0 18px;font-size:18px}#record .record-panel{flex-direction:column;flex:1;display:flex}.field-label{color:var(--ink2);justify-content:space-between;align-items:center;margin:6px 0 8px;font-size:11px;display:flex}.field-label small{font-size:10px;font-weight:400}input,select,textarea{border:1px solid var(--line);background:var(--navy2);width:100%;min-width:0;color:var(--parch);border-radius:8px;margin:0 0 12px;padding:12px;font-size:12px}textarea{resize:vertical;min-height:145px;line-height:1.9}.panel input,.panel textarea,.panel select{color:var(--ink);background:#ffffff80;border-color:#c9b98d}input::placeholder,textarea::placeholder{color:var(--ink3)}#search::placeholder{color:var(--muted)}#dream{flex:1;min-height:240px;margin:0}.counter{color:var(--ink2);justify-content:space-between;align-items:center;gap:8px;margin-top:7px;font-size:9px;display:flex}.tip{border:1px solid var(--gold-dim);margin:14px 0 0;padding:11px 13px;font-size:11px;line-height:1.8}.paper-note{color:var(--ink3);margin:12px 0 0;font-size:10px}.inline{align-items:flex-start;gap:9px;display:flex}.inline input,.inline select{flex:1}.inline .btn-next{padding:11px 14px}.emo-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.emo{aspect-ratio:1;background:linear-gradient(174deg,var(--parch),var(--parch2));border:1px solid var(--gold-dim);color:var(--ink2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex;position:relative}.emo .ic{color:#8a6d3a;font-size:25px;line-height:1.3}.emo[aria-pressed=true]{outline:2px solid var(--gold);outline-offset:-3px;color:var(--ink);background:linear-gradient(174deg,#f5ead1,#dbc596)}.emo[aria-pressed=true]:after{content:"✓";color:var(--ink2);font-size:10px;position:absolute;top:5px;right:8px}#emotion-strengths{gap:10px;margin-top:18px;display:grid}.strength-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr auto;gap:4px;padding:12px;font-size:11px;display:grid}.strength-row input{accent-color:var(--gold-l);grid-column:1/-1;margin:6px 0 0;padding:0}.kw-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.kw{border:1px solid var(--gold-dim);text-align:center;color:var(--ink2);overflow-wrap:anywhere;background:#fffaf066;border-radius:8px;min-height:44px;padding:13px 6px;font-size:12px}.chips{flex-wrap:wrap;gap:7px;margin:14px 0 0;display:flex}.chip{color:var(--ink2);background:#ffffff25;border:1px solid #a9905e80;border-radius:15px;padding:4px 9px;font-size:10px}.arch-tabs{border-bottom:1px solid var(--line);gap:17px;margin:0 0 16px;display:flex}.arch-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;min-height:44px;padding:10px 0;font-size:12px}.arch-tabs button[aria-selected=true]{color:var(--gold-l);border-bottom-color:var(--gold)}.source-switch{gap:8px;margin:10px 0 0;display:flex}.source-switch button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;flex:1;min-height:40px;padding:8px;font-size:11px}.source-switch button[aria-pressed=true]{border-color:var(--gold-dim);color:var(--gold-l);background:var(--navy2)}.library-scope{margin:10px 0;font-size:10px}.check-label{color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.check-label input{width:16px;height:16px;accent-color:var(--gold);margin:0}.case-list{gap:10px;margin:0 0 15px;display:grid}.library-item{border:1px solid var(--line);color:var(--parch);text-align:left;background:#131f3db3;border-radius:10px;align-items:center;gap:12px;width:100%;min-width:0;padding:12px 10px;display:flex}.archive-thumb{border:1px solid var(--gold-dim);width:48px;height:54px;color:var(--gold-l);background:radial-gradient(at 50% 25%,#3d5277,#14203c 75%);border-radius:6px;flex:none;place-items:center;font-size:24px;display:grid}.archive-copy{flex:1;min-width:0}.archive-copy strong{font-family:Noto Serif KR,Batang,serif;font-size:13px;font-weight:500;display:block}.case-description{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:10px;line-height:1.8;display:-webkit-box;overflow:hidden}.archive-date{color:var(--muted);white-space:nowrap;align-self:flex-start;padding-top:3px;font-size:9px}.archive-copy .chips{gap:4px;margin-top:6px}.archive-copy .chip{color:var(--gold-l);padding:1px 6px;font-size:9px}.empty-state{text-align:center;color:var(--muted);padding:24px 0;font-size:12px}.empty-state>span{color:var(--gold-l);font-size:40px}.note-panel{padding:22px 19px;line-height:2}.note-panel h2{border-top:1px solid #c9b98d;margin-top:22px;padding-top:14px;font-size:15px}.pre-wrap{white-space:pre-wrap;overflow-wrap:anywhere}#favorite-dream[aria-pressed=true]{color:var(--gold-l)}.cardback{border:1px solid var(--gold);background:radial-gradient(circle at 50% 42%,#1c2f57,#0e1830 70%);border-radius:12px;flex:1;min-height:325px;margin:6px 10px 16px;position:relative;overflow:hidden}.cardback .ring{border:1px solid #d4b27666;border-radius:50%;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.r1{width:120px;height:120px}.r2{width:180px;height:180px;border-style:dashed!important}.r3{opacity:.5;width:240px;height:240px}.cardback .moon{color:var(--gold-l);font-size:44px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.cardback .Dm{color:var(--gold);font-family:Playfair Display,Georgia,serif;font-size:20px;position:absolute;top:62%;left:50%;transform:translate(-50%)}.cardback .inframe{border:1px solid #b8934e73;border-radius:8px;position:absolute;inset:10px}.quote{text-align:center;color:var(--muted);padding:0 10px 6px;font-family:Noto Serif KR,Batang,serif;font-size:11px;line-height:1.8}.cardback.miniature{width:140px;height:205px;min-height:0;margin:12px auto 25px}.miniature .ring{width:90px;height:90px}.miniature .moon{font-size:30px}.miniature .Dm{font-size:15px}.result-meta{letter-spacing:.12em;color:var(--gold-l);justify-content:space-between;margin:3px 3px 15px;font-size:10px;display:flex}.generated-card{margin:0;padding:0;line-height:0}.generated-card img{object-fit:contain;border-radius:8px;width:100%;height:auto;display:block}#image-cards{touch-action:pan-y}#image-cards.overview{gap:20px;display:grid}.card-navigation{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.arrow-button{border:1px solid var(--gold-dim);width:44px;height:44px;color:var(--gold-l);background:0 0;border-radius:8px;font-size:18px}.card-dots{gap:6px;display:flex}.card-dot{width:33px;height:44px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;font-size:11px}.card-dot[aria-current=true]{color:var(--gold-l);border-bottom-color:var(--gold)}.card-file-actions .btn{margin:0;font-size:11px}.done-title{text-align:center;color:var(--parch);margin:18px 0 12px;font-size:18px;line-height:1.9}.envelope{background:linear-gradient(160deg,#e8d9b8,#c9ae7d 60%,#a98b58);border-radius:6px;justify-content:center;align-items:center;width:190px;height:130px;margin:12px auto 25px;display:flex;position:relative;box-shadow:0 12px 30px #0007}.envelope:before{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(175deg,#d9c69a,#b89a68);height:62px;position:absolute;top:0;left:0;right:0}.envelope .seal{z-index:1;background:radial-gradient(circle at 35% 35%,#8a2f2b,#5c1e1c);border-radius:50%;width:30px;height:30px;margin-top:20px}.envelope .sprig{font-size:22px;position:absolute;bottom:-8px;right:-12px}.auth-frame{margin-bottom:18px}.auth-frame .inner{padding:22px 20px}.auth-D{text-align:center;font-family:Playfair Display,Georgia,serif;font-size:32px}.auth-frame h2{text-align:center;margin:5px 0 18px;font-size:18px}.auth-frame .btn.plain{color:var(--ink2);border-color:#b6a77d}.divider{color:var(--ink3);align-items:center;gap:12px;margin:20px 0 8px;font-size:10px;display:flex}.divider:before,.divider:after{content:"";background:#b6a77d;flex:1;height:1px}.profile-panel{margin-bottom:12px}.profile-panel .btn{font-size:12px}.splash-frame{flex:1;min-height:465px;margin:12px 9px 20px}.splash-frame .inner{text-align:center;justify-content:center;align-items:center;height:100%;min-height:455px}.splash-D{color:var(--gold-l);font-family:Playfair Display,Georgia,serif;font-size:88px;line-height:1}.splash-sub{color:var(--gold);margin:8px 0 34px;font-family:Playfair Display,Georgia,serif;font-size:19px}.splash-frame h1{color:var(--parch);font-size:14px;line-height:2}.splash-moon{color:var(--gold);margin-top:30px;font-size:26px}.feature-list{gap:12px;margin-top:25px;display:grid}.feature-list article{border:1px solid var(--line);background:var(--navy2);border-radius:10px;gap:17px;padding:18px 15px;display:flex}.feature-list article>span{color:var(--gold-l);font-size:25px}.feature-list h2{margin:0 0 4px;font-size:14px}.feature-list p,.feature-list small{color:var(--muted);margin:0;font-size:10px}.feature-list small{color:var(--gold-l)}.month-panel{text-align:center;justify-content:space-evenly;margin:10px 0 25px;padding:30px 15px;display:flex}.month-panel strong{color:var(--ink);font-family:Playfair Display,Georgia,serif;font-size:35px;font-weight:500;display:block}.month-panel span{color:var(--ink2);font-size:11px}.bottom-nav{z-index:2;border-top:1px solid var(--line);background:#0e1830f2;padding:8px 0 12px;display:flex;position:relative}.bottom-nav button{text-align:center;color:var(--muted);background:0 0;border:0;flex:1;min-height:45px;font-size:10px}.bottom-nav .nav-icon{margin-bottom:1px;font-size:21px;line-height:1.3;display:block}.bottom-nav button[aria-current=page]{color:var(--gold-l)}#notice{border:1px solid var(--gold-dim);color:var(--parch);background:#1e2b44;border-radius:8px;margin-bottom:16px;padding:13px;font-size:12px;line-height:1.8}.desktop-note{width:220px;color:var(--gold-l);position:fixed;top:130px;left:max(36px,50% - 470px)}.wordmark{color:var(--gold-l);font-family:Playfair Display,Georgia,serif;font-size:65px;line-height:1.1;text-decoration:none}.desktop-note>span{letter-spacing:.25em;margin-top:14px;font-family:Georgia,serif;font-size:10px;display:block}.desktop-note p{color:var(--parch);margin-top:45px;font-family:Noto Serif KR,Batang,serif;font-size:19px;line-height:2}.rule{border-top:1px solid var(--gold-dim);width:34px;margin:28px 0}.desktop-note small{color:var(--muted);font-size:11px;line-height:1.9}.home-card .inner,.splash-frame .inner{flex:1;height:auto}@media (width<=1000px){.desktop-note{display:none}}@media (width<=520px){body{background:var(--navy)}.app-shell{width:100%;min-height:100svh;box-shadow:none;border:0;border-radius:0;margin:0}.screen{min-height:calc(100svh - 163px)}.home-card{min-height:360px}.bottom-nav{padding-bottom:max(12px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;bottom:0}.app-shell{overflow:clip}.topbar{height:58px}main{padding:10px 18px 20px}.home-card{margin:0 7px}.greet{margin-bottom:20px}input,textarea,select{font-size:16px}.counter{font-size:9px}.splash-frame .inner{min-height:390px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.service-status{text-align:center;border:1px solid #c3a36844;border-radius:12px;margin-bottom:18px;padding:12px}.service-status .helper{margin:0 0 6px}.job-badge{color:var(--gold);margin-top:7px;font-size:11px;display:block}.auth-links{flex-wrap:wrap;justify-content:center;gap:4px 12px;display:flex}.auth-links .text-button,.panel .text-button{color:var(--ink2)}.password-visibility{color:var(--ink2);align-items:center;gap:7px;min-height:28px;margin:-3px 0 12px;font-size:11px;display:flex}.password-visibility input{width:16px;height:16px;accent-color:var(--gold-dim);margin:0}.auth-feedback{border:1px solid var(--gold-dim);color:var(--parch);border-radius:8px;padding:13px;font-size:12px}#password-form h2{margin-bottom:5px}#password-form .paper-note{margin:8px 0 12px}
