.app-shell{max-width:430px;height:100dvh;max-height:100dvh;font-family:var(--font-noto-serif),"Noto Serif KR",serif;color:var(--app-text);background:0 0;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-main{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:0;overflow-y:auto}body.app-main-chat-route .app-main{overflow:hidden}.app-shell ::-webkit-scrollbar{width:0;height:0}.app-shell *{scrollbar-width:none}.app-shell{-webkit-text-size-adjust:100%;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.app-shell p,.app-shell input,.app-shell textarea,.app-shell [data-selectable]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}html.app-body,body.app-body{overscroll-behavior:none}body.app-scroll-locked .app-main{touch-action:none;overflow:hidden}@supports (text-wrap:pretty){.app-shell p,.app-shell [data-selectable]{text-wrap:pretty}}.app-shell button:not(:disabled):not([data-press=tone]):active{transform:scale(.97)}.app-shell button{transition:transform var(--app-dur-fast,.14s)var(--app-ease,cubic-bezier(.22,.61,.36,1)),background-color var(--app-dur-fast,.14s)var(--app-ease,cubic-bezier(.22,.61,.36,1)),box-shadow var(--app-dur-fast,.14s)var(--app-ease,cubic-bezier(.22,.61,.36,1)),opacity var(--app-dur-fast,.14s)var(--app-ease,cubic-bezier(.22,.61,.36,1))}.app-shell button[data-press=tone]:not(:disabled):active{box-shadow:var(--app-shadow-1)}.app-shell button:not(:disabled):active{transition-duration:90ms}@media (prefers-reduced-motion:reduce){.app-shell button:not(:disabled):active{transform:none}.app-shell *,.app-shell :before,.app-shell :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-page{padding:20px 32px}.app-page-title{letter-spacing:4px;color:var(--app-text);margin-bottom:20px;font-size:22px;font-weight:200}.app-section{margin-bottom:24px}.app-card{background:var(--app-card-surface);border:1px solid var(--app-card-border);box-shadow:var(--app-shadow-soft);border-radius:12px;padding:16px}.app-card-ink{background:var(--app-ink);color:var(--app-hanji);border:1px solid #2c2c2e4d;border-radius:12px;padding:16px}.app-accent-bar{border-top:2px solid var(--app-ink)}.app-btn{cursor:pointer;letter-spacing:1px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:300;transition:opacity .15s;display:inline-flex}.app-shell button:focus,.app-shell [role=button]:focus,.app-shell a:focus,.app-shell summary:focus{outline:none}.app-shell button,.app-shell [role=button],.app-shell a{-webkit-tap-highlight-color:transparent}@media (hover:hover){.app-btn:hover{opacity:.85}}.app-btn:active{opacity:.7}.app-btn:focus-visible{outline:2px solid var(--app-gold);outline-offset:2px}.app-btn:disabled{opacity:.4;cursor:not-allowed}.app-btn-primary{background:var(--app-ink);color:var(--app-hanji)}.app-btn-secondary{background:var(--app-surface);color:var(--app-text);border:1px solid var(--app-border)}.app-btn-full{width:100%}.app-input{background:var(--app-surface);border:1px solid var(--app-border);width:100%;color:var(--app-text);border-radius:8px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.app-input:focus{border-color:var(--app-gold)}.app-input::placeholder{color:var(--app-text-tertiary)}.app-loading{min-height:60vh;color:var(--app-text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.app-chat-header{border-bottom:.5px solid var(--app-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.app-chat-messages{flex-direction:column;flex:1;padding:16px 16px 24px;display:flex;overflow-y:auto}@media (min-width:768px){.app-shell{max-width:768px}.app-page{padding:28px 48px}.app-chat-header{padding:14px 32px}.app-chat-messages{padding:24px 32px 32px}}
